Added Mod to Unlock Locked Crates

This commit is contained in:
2025-01-06 07:57:43 -05:00
parent d7f2f5814a
commit 502af97377
9 changed files with 312 additions and 1 deletions
@@ -0,0 +1,174 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.addedCrafts = void 0;
export const addedCrafts = [
// Equip Epic
{
"_id": "6666d899eb78191c502350b3",
"areaType": 10,
"requirements": [
{ "areaType": 10, "requiredLevel": 2, "type": "Area" },
{ "templateId": "5d1b317c86f7742523398392", "type": "Tool" },
{ "templateId": "5d4042a986f7743185265463", "type": "Tool" },
{ "templateId": "5af04b6486f774195a3ebb49", "type": "Tool" },
{ "templateId": "6658285190486915542256c4", "count": 1, "isFunctional": false, "isEncoded": false, "type": "Item" }
],
"productionTime": 300,
"needFuelForAllProductionTime": false,
"locked": false,
"endProduct": "6658291eefd94e2d665b14a4",
"continuous": false,
"count": 1,
"productionLimitCount": 0,
"isEncoded": false,
"isCodeProduction": false
},
// Weapon Crate
{
"_id": "66575197464c4b4ba4671005",
"areaType": 10,
"requirements": [
{ "areaType": 10, "requiredLevel": 2, "type": "Area" },
{ "templateId": "5d1b317c86f7742523398392", "type": "Tool" },
{ "templateId": "5d4042a986f7743185265463", "type": "Tool" },
{ "templateId": "5af04b6486f774195a3ebb49", "type": "Tool" },
{ "templateId": "66582889efd94e2d665b14a2", "count": 1, "isFunctional": false, "isEncoded": false, "type": "Item" }
],
"productionTime": 300,
"needFuelForAllProductionTime": false,
"locked": false,
"endProduct": "665829424de4820934746ce6",
"continuous": false,
"count": 1,
"productionLimitCount": 0,
"isEncoded": false,
"isCodeProduction": false
},
// Supply Epic
{
"_id": "6666d829a8298779fc40e538",
"areaType": 10,
"requirements": [
{ "areaType": 10, "requiredLevel": 2, "type": "Area" },
{ "templateId": "5d1b317c86f7742523398392", "type": "Tool" },
{ "templateId": "5d4042a986f7743185265463", "type": "Tool" },
{ "templateId": "5af04b6486f774195a3ebb49", "type": "Tool" },
{ "templateId": "665828c44de4820934746ce4", "count": 1, "isFunctional": false, "isEncoded": false, "type": "Item" }
],
"productionTime": 300,
"needFuelForAllProductionTime": false,
"locked": false,
"endProduct": "66582972ac60f009f270d2aa",
"continuous": false,
"count": 1,
"productionLimitCount": 0,
"isEncoded": false,
"isCodeProduction": false
},
// Valuables Epic
{
"_id": "6666d7ea0b734650a91d0a43",
"areaType": 10,
"requirements": [
{ "areaType": 10, "requiredLevel": 2, "type": "Area" },
{ "templateId": "5d1b317c86f7742523398392", "type": "Tool" },
{ "templateId": "5d4042a986f7743185265463", "type": "Tool" },
{ "templateId": "5af04b6486f774195a3ebb49", "type": "Tool" },
{ "templateId": "665828f490486915542256c6", "count": 1, "isFunctional": false, "isEncoded": false, "type": "Item" }
],
"productionTime": 300,
"needFuelForAllProductionTime": false,
"locked": false,
"endProduct": "665829a6efd94e2d665b14a8",
"continuous": false,
"count": 1,
"productionLimitCount": 0,
"isEncoded": false,
"isCodeProduction": false
},
// Equip Common
{
"_id": "6666d899eb78191c502350b4",
"areaType": 10,
"requirements": [
{ "areaType": 10, "requiredLevel": 2, "type": "Area" },
{ "templateId": "5d1b317c86f7742523398392", "type": "Tool" },
{ "templateId": "5d4042a986f7743185265463", "type": "Tool" },
{ "templateId": "5af04b6486f774195a3ebb49", "type": "Tool" },
{ "templateId": "66588b514de4820934746dc6", "count": 1, "isFunctional": false, "isEncoded": false, "type": "Item" }
],
"productionTime": 300,
"needFuelForAllProductionTime": false,
"locked": false,
"endProduct": "6658876e146af22739040fad",
"continuous": false,
"count": 1,
"productionLimitCount": 0,
"isEncoded": false,
"isCodeProduction": false
},
// Weapon Common
{
"_id": "66575197464c4b4ba4671006",
"areaType": 10,
"requirements": [
{ "areaType": 10, "requiredLevel": 2, "type": "Area" },
{ "templateId": "5d1b317c86f7742523398392", "type": "Tool" },
{ "templateId": "5d4042a986f7743185265463", "type": "Tool" },
{ "templateId": "5af04b6486f774195a3ebb49", "type": "Tool" },
{ "templateId": "66588b6dcb48a73e674b2649", "count": 1, "isFunctional": false, "isEncoded": false, "type": "Item" }
],
"productionTime": 300,
"needFuelForAllProductionTime": false,
"locked": false,
"endProduct": "665888282c4a1b73af576b77",
"continuous": false,
"count": 1,
"productionLimitCount": 0,
"isEncoded": false,
"isCodeProduction": false
},
// Supply Common
{
"_id": "6666d829a8298779fc40e539",
"areaType": 10,
"requirements": [
{ "areaType": 10, "requiredLevel": 2, "type": "Area" },
{ "templateId": "5d1b317c86f7742523398392", "type": "Tool" },
{ "templateId": "5d4042a986f7743185265463", "type": "Tool" },
{ "templateId": "5af04b6486f774195a3ebb49", "type": "Tool" },
{ "templateId": "66588ba291f6e93c4c06efef", "count": 1, "isFunctional": false, "isEncoded": false, "type": "Item" }
],
"productionTime": 300,
"needFuelForAllProductionTime": false,
"locked": false,
"endProduct": "6658892e6e007c6f33662002",
"continuous": false,
"count": 1,
"productionLimitCount": 0,
"isEncoded": false,
"isCodeProduction": false
},
// Valuables Common
{
"_id": "6666d7ea0b734650a91d0a44",
"areaType": 10,
"requirements": [
{ "areaType": 10, "requiredLevel": 2, "type": "Area" },
{ "templateId": "5d1b317c86f7742523398392", "type": "Tool" },
{ "templateId": "5d4042a986f7743185265463", "type": "Tool" },
{ "templateId": "5af04b6486f774195a3ebb49", "type": "Tool" },
{ "templateId": "66588bb047fbd536a674240e", "count": 1, "isFunctional": false, "isEncoded": false, "type": "Item" }
],
"productionTime": 300,
"needFuelForAllProductionTime": false,
"locked": false,
"endProduct": "665886abdaadd1069736c539",
"continuous": false,
"count": 1,
"productionLimitCount": 0,
"isEncoded": false,
"isCodeProduction": false
}
];
//# sourceMappingURL=crafts.js.map
@@ -0,0 +1,44 @@
import { DependencyContainer } from "tsyringe";
import { IPostDBLoadMod } from "@spt/models/external/IPostDBLoadMod";
import { DatabaseServer } from "@spt/servers/DatabaseServer";
import { IDatabaseTables } from "@spt/models/spt/server/IDatabaseTables";
import { ILogger } from "@spt/models/spt/utils/ILogger";
import { addedCrafts } from "./crafts.js";
class ArenaLockboxMod implements IPostDBLoadMod
{
public postDBLoad(container: DependencyContainer): void
{
// Init logger
const logger = container.resolve<ILogger>("WinstonLogger");
// Get database from server
const databaseServer = container.resolve<DatabaseServer>("DatabaseServer");
const tables: IDatabaseTables = databaseServer.getTables();
let hideoutCrafts = tables.hideout.production.recipes;
// Loop and add new crafts
for (const newCraft of addedCrafts)
{
const alreadyAdded = hideoutCrafts.find((i) => i._id === newCraft._id);
if (!alreadyAdded)
{
hideoutCrafts.push(newCraft);
}
else
{
hideoutCrafts = hideoutCrafts.filter(i => i._id !== newCraft._id);
hideoutCrafts.push(newCraft);
}
}
logger.info(`ALM: Added ${addedCrafts.length} new crafting recipes for Arena Lockboxes`);
}
}
module.exports = { mod: new ArenaLockboxMod() };