From 27693cea029694e960787495ec740fc07ecce619 Mon Sep 17 00:00:00 2001 From: Shaun Date: Sat, 11 Feb 2023 13:35:19 +0200 Subject: [PATCH] modding #1946 --- .../components/extensions/socialCommands.js | 84 ------------------- src/server/items/generators/slots.js | 4 +- src/server/items/generators/types.js | 2 +- 3 files changed, 4 insertions(+), 86 deletions(-) diff --git a/src/server/components/extensions/socialCommands.js b/src/server/components/extensions/socialCommands.js index af6ceedc..d858bf7d 100644 --- a/src/server/components/extensions/socialCommands.js +++ b/src/server/components/extensions/socialCommands.js @@ -1,7 +1,4 @@ -const generator = require('../../items/generator'); -const configSlots = require('../../items/config/slots'); const configMaterials = require('../../items/config/materials'); -const factions = require('../../config/factions'); const connections = require('../../security/connections'); const events = require('../../misc/events'); @@ -25,7 +22,6 @@ let commandRoles = { saveAll: 8, //Admin - getItem: 10, getGold: 10, setLevel: 10, godMode: 10, @@ -365,86 +361,6 @@ module.exports = { .forEach(i => inventory.destroyItem({ itemId: i }, null, true)); }, - getItem: function (config) { - if (typeof config !== 'object') - return; - - if (config.slot === 'set') { - configSlots.slots.forEach(function (s) { - if (s === 'tool') - return; - - let newConfig = extend({}, config, { - slot: s - }); - - this.getItem(newConfig); - }, this); - - return; - } - - if (config.stats) - config.stats = config.stats.split(','); - - if (config.name) - config.name = config.name.split('_').join(' '); - - if (config.description) - config.description = config.description.split('_').join(' '); - - if (config.spellName) - config.spellName = config.spellName.split('_').join(' '); - - if (config.type) - config.type = config.type.split('_').join(' '); - - if (config.sprite) - config.sprite = config.sprite.split('_'); - - let spritesheet = config.spritesheet; - delete config.spritesheet; - - let factionList = (config.factions || '').split(','); - delete config.factions; - - let safe = config.safe; - delete config.safe; - - let eq = config.eq; - delete config.eq; - - let item = generator.generate(config); - - if (safe) { - item.noDrop = true; - item.noDestroy = true; - item.noSalvage = true; - } - - factionList.forEach(function (f) { - if (f === '') - return; - - let faction = factions.getFaction(f); - faction.uniqueStat.generate(item); - - item.factions = []; - item.factions.push({ - id: f, - tier: 3 - }); - }); - - if (spritesheet) - item.spritesheet = spritesheet; - - let newItem = this.obj.inventory.getItem(item); - - if (eq) - this.obj.equipment.equip({ itemId: newItem.id }); - }, - getGold: function (amount) { let newGold = this.obj.trade.gold + ~~amount; newGold = Math.max(-1000000000, Math.min(1000000000, newGold)); diff --git a/src/server/items/generators/slots.js b/src/server/items/generators/slots.js index 1551ac3c..be4b07bf 100644 --- a/src/server/items/generators/slots.js +++ b/src/server/items/generators/slots.js @@ -14,7 +14,9 @@ module.exports = { item.slot = blueprint.slot; else if (blueprint.type) item.slot = Object.keys(configTypes.types).find(c => configTypes.types[c][blueprint.type]); - else + + //If the slot doesn't exist or the type doesn't exist in the slot, pick a random type + if (!item.slot || !configSlots.slots.includes(item.slot)) item.slot = chances[~~(Math.random() * chances.length)]; } }; diff --git a/src/server/items/generators/types.js b/src/server/items/generators/types.js index 5ff5f0e3..437b71f4 100644 --- a/src/server/items/generators/types.js +++ b/src/server/items/generators/types.js @@ -5,7 +5,7 @@ module.exports = { generate: function (item, blueprint) { let type = blueprint.type; - if (!type) { + if (!type || !configTypes.types[item.slot][type]) { //Pick a material type first const types = configTypes.types[item.slot]; const typeArray = Object.entries(types);