0.0.1
This commit is contained in:
parent
79d3628a41
commit
f8303dd051
21
LICENSE
Normal file
21
LICENSE
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
MIT License
|
||||||
|
|
||||||
|
Copyright (c) 2024 0xNES
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
16
README.md
Normal file
16
README.md
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
# InsuranceTweaks
|
||||||
|
A simple mod with little to no configuration to tweak the insurance settings
|
||||||
|
|
||||||
|
# Config
|
||||||
|
| Setting | Default Value | Details |
|
||||||
|
|-------------------------|---------------|--------------------------------------------------------------------|
|
||||||
|
| PraporMinReturn | 2 | Minimum time (in hours) for Prapor to return your insured items |
|
||||||
|
| PraporMaxReturn | 4 | Maximum time (in hours) for Prapor to return your insured items |
|
||||||
|
| PraporMaxStorageTime | 72 | Number of hours Prapor insured items will stay in your inbox |
|
||||||
|
| TherapistMinReturn | 1 | Minimum time (in hours) for Therapist to return your insured items |
|
||||||
|
| TherapistMaxReturn | 2 | Maximum time (in hours) for Therapist to return your insured items |
|
||||||
|
| TherapistMaxStorageTime | 72 | Number of hours Therapist insured items will stay in your inbox |
|
||||||
|
|
||||||
|
# Thanks
|
||||||
|
- [chomp](https://dev.sp-tarkov.com/chomp) for the mod examples
|
||||||
|
- [DJLang](https://github.com/KillerDJLang) for [RaidOverhaul](https://hub.sp-tarkov.com/files/file/1673-raid-overhaul/) giving me the idea to make this mod
|
11
config/config.json5
Normal file
11
config/config.json5
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
{
|
||||||
|
//Prapor
|
||||||
|
"PraporMinReturn": 2,
|
||||||
|
"PraporMaxReturn": 4,
|
||||||
|
"PraporMaxStorageTime": 72,
|
||||||
|
|
||||||
|
//Therapist
|
||||||
|
"TherapistMinReturn": 1,
|
||||||
|
"TherapistMaxReturn": 2,
|
||||||
|
"TherapistMaxStorageTime": 72
|
||||||
|
}
|
13
package-lock.json
generated
13
package-lock.json
generated
@ -16,6 +16,7 @@
|
|||||||
"eslint": "8.57",
|
"eslint": "8.57",
|
||||||
"fs-extra": "11.2",
|
"fs-extra": "11.2",
|
||||||
"ignore": "^5.2",
|
"ignore": "^5.2",
|
||||||
|
"json5": "^2.2.3",
|
||||||
"tsyringe": "4.8.0",
|
"tsyringe": "4.8.0",
|
||||||
"typescript": "5.4",
|
"typescript": "5.4",
|
||||||
"winston": "3.12"
|
"winston": "3.12"
|
||||||
@ -1386,6 +1387,18 @@
|
|||||||
"integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==",
|
"integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"node_modules/json5": {
|
||||||
|
"version": "2.2.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
|
||||||
|
"integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
|
||||||
|
"dev": true,
|
||||||
|
"bin": {
|
||||||
|
"json5": "lib/cli.js"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=6"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/jsonfile": {
|
"node_modules/jsonfile": {
|
||||||
"version": "6.1.0",
|
"version": "6.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
|
||||||
|
@ -20,6 +20,7 @@
|
|||||||
"eslint": "8.57",
|
"eslint": "8.57",
|
||||||
"fs-extra": "11.2",
|
"fs-extra": "11.2",
|
||||||
"ignore": "^5.2",
|
"ignore": "^5.2",
|
||||||
|
"json5": "^2.2.3",
|
||||||
"tsyringe": "4.8.0",
|
"tsyringe": "4.8.0",
|
||||||
"typescript": "5.4",
|
"typescript": "5.4",
|
||||||
"winston": "3.12"
|
"winston": "3.12"
|
||||||
|
56
src/mod.ts
56
src/mod.ts
@ -1,23 +1,59 @@
|
|||||||
import { DependencyContainer } from "tsyringe";
|
import { DependencyContainer } from "tsyringe";
|
||||||
|
import json5 from "json5";
|
||||||
|
|
||||||
import { IPreSptLoadMod } from "@spt/models/external/IPreSptLoadMod";
|
import { IPreSptLoadMod } from "@spt/models/external/IPreSptLoadMod";
|
||||||
import { ILogger } from "@spt/models/spt/utils/ILogger";
|
import { ILogger } from "@spt/models/spt/utils/ILogger";
|
||||||
import { LogTextColor } from "@spt/models/spt/logging/LogTextColor";
|
import { LogTextColor } from "@spt/models/spt/logging/LogTextColor";
|
||||||
import { LogBackgroundColor } from "@spt/models/spt/logging/LogBackgroundColor";
|
import { IDatabaseTables } from "@spt/models/spt/server/IDatabaseTables";
|
||||||
|
import { DatabaseServer } from "@spt/servers/DatabaseServer";
|
||||||
|
import { IPostDBLoadMod } from "@spt/models/external/IPostDBLoadMod";
|
||||||
|
import { VFS } from "@spt/utils/VFS";
|
||||||
|
|
||||||
class Mod implements IPreSptLoadMod
|
import * as path from "node:path";
|
||||||
|
|
||||||
|
type ModConfig = {
|
||||||
|
PraporMinReturn: number,
|
||||||
|
PraporMaxReturn: number,
|
||||||
|
PraporMaxStorageTime: number,
|
||||||
|
TherapistMinReturn: number,
|
||||||
|
TherapistMaxReturn: number,
|
||||||
|
TherapistMaxStorageTime: number
|
||||||
|
}
|
||||||
|
|
||||||
|
class InsuranceTweaks implements IPreSptLoadMod, IPostDBLoadMod
|
||||||
{
|
{
|
||||||
// Code added here will load BEFORE the server has started loading
|
public logger: ILogger;
|
||||||
|
public tables: IDatabaseTables;
|
||||||
|
public modConfig: ModConfig;
|
||||||
|
|
||||||
public preSptLoad(container: DependencyContainer): void
|
public preSptLoad(container: DependencyContainer): void
|
||||||
{
|
{
|
||||||
// get the logger from the server container
|
this.logger = container.resolve<ILogger>("WinstonLogger");
|
||||||
const logger = container.resolve<ILogger>("WinstonLogger");
|
const vfs = container.resolve<VFS>("VFS");
|
||||||
|
this.modConfig = json5.parse(vfs.readFile(path.resolve(__dirname, "../config/config.json5")));
|
||||||
|
}
|
||||||
|
|
||||||
logger.info("I am logging info!");
|
public postDBLoad(container: DependencyContainer): void
|
||||||
logger.warning("I am logging a warning!");
|
{
|
||||||
logger.error("I am logging an error!");
|
this.tables = container.resolve<DatabaseServer>("DatabaseServer").getTables();
|
||||||
logger.logWithColor("I am logging with color!", LogTextColor.YELLOW, LogBackgroundColor.RED);
|
this.traderTweaks(this.modConfig);
|
||||||
|
}
|
||||||
|
|
||||||
|
private traderTweaks(modConfig: ModConfig): void
|
||||||
|
{
|
||||||
|
const traders = this.tables.traders;
|
||||||
|
|
||||||
|
// Prapor
|
||||||
|
traders["54cb50c76803fa8b248b4571"].base.insurance.min_return_hour = modConfig.PraporMinReturn
|
||||||
|
traders["54cb50c76803fa8b248b4571"].base.insurance.max_return_hour = modConfig.PraporMaxReturn
|
||||||
|
traders["54cb50c76803fa8b248b4571"].base.insurance.max_storage_time = modConfig.PraporMaxStorageTime
|
||||||
|
// Therapist
|
||||||
|
traders["54cb57776803fa99248b456e"].base.insurance.min_return_hour = modConfig.TherapistMinReturn
|
||||||
|
traders["54cb57776803fa99248b456e"].base.insurance.max_return_hour = modConfig.TherapistMaxReturn
|
||||||
|
traders["54cb57776803fa99248b456e"].base.insurance.max_storage_time = modConfig.TherapistMaxStorageTime
|
||||||
|
|
||||||
|
this.logger.logWithColor("[InsuranceTweaks] Applied insurance settings", LogTextColor.GREEN);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export const mod = new Mod();
|
export const mod = new InsuranceTweaks();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user