Localised various errors
This commit is contained in:
parent
4b8d9f7e22
commit
a37664f43a
@ -49,17 +49,23 @@
|
|||||||
"bot-unable_to_generate_item_pool_no_items": "Unable to generate an item pool of type: %s as no items were provided, this will pool will be skipped",
|
"bot-unable_to_generate_item_pool_no_items": "Unable to generate an item pool of type: %s as no items were provided, this will pool will be skipped",
|
||||||
"bot-unable_to_get_bot_difficulty_fallback_to_assault": "Unable to find bot: {{botType}} difficulty {{difficulty}}, using assault difficulty as fallback",
|
"bot-unable_to_get_bot_difficulty_fallback_to_assault": "Unable to find bot: {{botType}} difficulty {{difficulty}}, using assault difficulty as fallback",
|
||||||
"bot-unable_to_get_bot_fallback_to_assault": "Unable to find bot: %s JSON, using assault bot as fallback",
|
"bot-unable_to_get_bot_fallback_to_assault": "Unable to find bot: %s JSON, using assault bot as fallback",
|
||||||
|
"bot-unable_to_load_raid_settings_from_appcontext": "Unable to load raid settings from ApplicationContext",
|
||||||
"bot-weapon_contains_invalid_item": "Required slot: '{{modSlot}}' on weapon: {{weaponTpl}} has an invalid item: {{modName}}",
|
"bot-weapon_contains_invalid_item": "Required slot: '{{modSlot}}' on weapon: {{weaponTpl}} has an invalid item: {{modName}}",
|
||||||
"bot-weapon_generated_incorrect_using_default": "Weapon %s was generated incorrectly, falling back to weapon preset see error above",
|
"bot-weapon_generated_incorrect_using_default": "Weapon %s was generated incorrectly, falling back to weapon preset see error above",
|
||||||
"bot-weapon_missing_magazine_or_chamber": "Weapon with tpl: {{weaponId}} has no magazine or chamber - {{botRole}}",
|
"bot-weapon_missing_magazine_or_chamber": "Weapon with tpl: {{weaponId}} has no magazine or chamber - {{botRole}}",
|
||||||
"bot-weapon_missing_mod_slot": "Slot: {{modSlot}}' does not exist for weapon: {{weaponId}} {{weaponName}} on {{botRole}}",
|
"bot-weapon_missing_mod_slot": "Slot: {{modSlot}}' does not exist for weapon: {{weaponId}} {{weaponName}} on {{botRole}}",
|
||||||
"bot-weapons_required_slot_missing_item": "Required slot '{{modSlot}}' on {{modName}} {{slotId}} was empty on {{botRole}}",
|
"bot-weapons_required_slot_missing_item": "Required slot '{{modSlot}}' on {{modName}} {{slotId}} was empty on {{botRole}}",
|
||||||
"build-unable_to_delete_preset": "Unable to delete preset, cannot find %s in weapon, equipment or magazine presets",
|
"build-unable_to_delete_preset": "Unable to delete preset, cannot find %s in weapon, equipment or magazine presets",
|
||||||
|
"chat-unable_to_register_command_already_registered": "Unble to register already registed command: %s",
|
||||||
"client_request": "[Client Request] %s",
|
"client_request": "[Client Request] %s",
|
||||||
"client_request_ip": "[Client Request] {{ip}} {{url}}",
|
"client_request_ip": "[Client Request] {{ip}} {{url}}",
|
||||||
"customisation-item_already_purchased": "Clothing item {{itemId}} {{itemName}} already purchased",
|
"customisation-item_already_purchased": "Clothing item {{itemId}} {{itemName}} already purchased",
|
||||||
|
"customisation-suit_lacks_upd_or_stack_property": "Suit with tpl: %s lacks a upd object or stackobjectcount property",
|
||||||
"customisation-unable_to_find_clothing_item_in_inventory": "Clothing item not found in inventory with id: %s",
|
"customisation-unable_to_find_clothing_item_in_inventory": "Clothing item not found in inventory with id: %s",
|
||||||
"customisation-unable_to_find_suit_by_id": "Unable to find trader suit offer with id: %s",
|
"customisation-unable_to_find_suit_by_id": "Unable to find trader suit offer with id: %s",
|
||||||
|
"customisation-unable_to_find_suit_with_id": "Unable to find suit with offer id: %s",
|
||||||
|
"customisation-unable_to_get_trader_suits": "Unable to get suits from trader: %s",
|
||||||
|
"dialog-chatbot_id_already_exists": "Chat bot: %s being registered already exists, unable to register bot",
|
||||||
"dialog-missing_item_template": "Unable to find item tpl {{tpl}} in db, cannot send message of type {{type}}, skipping",
|
"dialog-missing_item_template": "Unable to find item tpl {{tpl}} in db, cannot send message of type {{type}}, skipping",
|
||||||
"dialogue-unable_to_find_dialogs_in_profile": "No dialog object in profile: {{sessionId}}",
|
"dialogue-unable_to_find_dialogs_in_profile": "No dialog object in profile: {{sessionId}}",
|
||||||
"dialogue-unable_to_find_in_profile": "No dialog in profile: {{sessionId}} found with id: {{dialogueId}}",
|
"dialogue-unable_to_find_in_profile": "No dialog in profile: {{sessionId}} found with id: {{dialogueId}}",
|
||||||
@ -101,10 +107,16 @@
|
|||||||
"inraid-unable_to_deliver_item_no_trader_found": "Unable to deliver items as trader %s has no dialogue data",
|
"inraid-unable_to_deliver_item_no_trader_found": "Unable to deliver items as trader %s has no dialogue data",
|
||||||
"inraid-unable_to_find_key_in_taskconditioncounters": "Unable to find key: %s in TaskConditionCounters pre-raid data",
|
"inraid-unable_to_find_key_in_taskconditioncounters": "Unable to find key: %s in TaskConditionCounters pre-raid data",
|
||||||
"inraid-unable_to_migrate_pmc_quest_not_found_in_profile": "Unable to migrate post-raid quest: %s data to profile, cannot find quest in profile",
|
"inraid-unable_to_migrate_pmc_quest_not_found_in_profile": "Unable to migrate post-raid quest: %s data to profile, cannot find quest in profile",
|
||||||
|
"insurance-item_not_found_in_post_raid_data": "Unable to find insured inventory item with id: %s in post-raid data",
|
||||||
"insurance-missing_insurance_price_multiplier": "No insurance multiplier found for trader: %s, check it exists in InsuranceConfig.js, falling back to default value of: 0.3",
|
"insurance-missing_insurance_price_multiplier": "No insurance multiplier found for trader: %s, check it exists in InsuranceConfig.js, falling back to default value of: 0.3",
|
||||||
|
"insurance-post_raid_item_not_found": "Insured item: %s not found in post-raid inventory",
|
||||||
|
"insurance-pre_raid_item_not_found": "Pre raid inventory item: %s was not found",
|
||||||
|
"insurance-trader_lacks_dialogue_property": "Trader: %s does not have a dialogue property, unable to send insurance items",
|
||||||
|
"insurance-trader_missing_from_enum": "Trader: %s is missing from Traders enum",
|
||||||
"insurance-unable_to_find_attachment_in_db": "Could not find insured attachment in the database - ID: {{insuredItemId}}, Template: {{insuredItemTpl}}",
|
"insurance-unable_to_find_attachment_in_db": "Could not find insured attachment in the database - ID: {{insuredItemId}}, Template: {{insuredItemTpl}}",
|
||||||
"insurance-unable_to_find_main_parent_for_attachment": "Could not find main-parent for insured attachment - ID: {{insuredItemId}}, Template: {{insuredItemTpl}}, Parent ID: {{parentId}}",
|
"insurance-unable_to_find_main_parent_for_attachment": "Could not find main-parent for insured attachment - ID: {{insuredItemId}}, Template: {{insuredItemTpl}}, Parent ID: {{parentId}}",
|
||||||
"insurance-unable_to_find_parent_of_item": "Could not find parent for insured item - ID: {{insuredItemId}}, Template: {{insuredItemTpl}}, Parent ID: {{parentId}}",
|
"insurance-unable_to_find_parent_of_item": "Could not find parent for insured item - ID: {{insuredItemId}}, Template: {{insuredItemTpl}}, Parent ID: {{parentId}}",
|
||||||
|
"insurance-unable_to_find_trader_by_id": "Trader: %s could not found",
|
||||||
"inventory-edit_trader_item": "Unable to edit a traders item",
|
"inventory-edit_trader_item": "Unable to edit a traders item",
|
||||||
"inventory-examine_item_does_not_exist": "examineItem() - No id with %s found",
|
"inventory-examine_item_does_not_exist": "examineItem() - No id with %s found",
|
||||||
"inventory-fill_container_failed": "fillContainerMapWithItem() returned with an error %s",
|
"inventory-fill_container_failed": "fillContainerMapWithItem() returned with an error %s",
|
||||||
@ -168,6 +180,7 @@
|
|||||||
"loot-default_preset_not_found_using_random": "Default preset for weapon: %s not found, choosing random of same weapon type instead",
|
"loot-default_preset_not_found_using_random": "Default preset for weapon: %s not found, choosing random of same weapon type instead",
|
||||||
"loot-item_missing_parentid": "Item: %s lacks a parentId value, unable to use item as loot",
|
"loot-item_missing_parentid": "Item: %s lacks a parentId value, unable to use item as loot",
|
||||||
"loot-non_item_picked_as_sealed_weapon_crate_reward": "Invalid weapon: %s, was picked as reward for sealed weapon crate, unable to create loot",
|
"loot-non_item_picked_as_sealed_weapon_crate_reward": "Invalid weapon: %s, was picked as reward for sealed weapon crate, unable to create loot",
|
||||||
|
"mail-unable_to_find_message_sender_by_id": "Unable to find mail message sender with id: %s",
|
||||||
"mail-unable_to_give_gift_not_handled": "Unable to give player gift using reward code: %s it is not handled by server",
|
"mail-unable_to_give_gift_not_handled": "Unable to give player gift using reward code: %s it is not handled by server",
|
||||||
"mailsend-missing_npc_dialog": "Unable to send message from: %s to player. A Dialog object for them does not exist",
|
"mailsend-missing_npc_dialog": "Unable to send message from: %s to player. A Dialog object for them does not exist",
|
||||||
"mailsend-missing_parent": "Unable to find an item with slotId of: hideout for message to: {{traderId}} sender: {{sender}}",
|
"mailsend-missing_parent": "Unable to find an item with slotId of: hideout for message to: {{traderId}} sender: {{sender}}",
|
||||||
@ -197,6 +210,7 @@
|
|||||||
"modloader-missing_sptversion_field": "Mod %s is missing the sptVersion field, most likely due to being out of date and incompatible with the current version of SPT",
|
"modloader-missing_sptversion_field": "Mod %s is missing the sptVersion field, most likely due to being out of date and incompatible with the current version of SPT",
|
||||||
"modloader-mod_has_no_main_property": "ModLoader: Mod (%s) is incompatible. It lacks a 'main' property",
|
"modloader-mod_has_no_main_property": "ModLoader: Mod (%s) is incompatible. It lacks a 'main' property",
|
||||||
"modloader-mod_incompatible": "ModLoader: Mod (%s) is incompatible. It must implement at least one of the following: IPostSptLoadMod, IPostDBLoadMod, IPreSptLoadMod",
|
"modloader-mod_incompatible": "ModLoader: Mod (%s) is incompatible. It must implement at least one of the following: IPostSptLoadMod, IPostDBLoadMod, IPreSptLoadMod",
|
||||||
|
"modloader-mod_isnt_present": "Mod: %s isn't present",
|
||||||
"modloader-mod_order_error": "ModLoader: Errors were found in order.json, GOING TO USE DEFAULT LOAD ORDER",
|
"modloader-mod_order_error": "ModLoader: Errors were found in order.json, GOING TO USE DEFAULT LOAD ORDER",
|
||||||
"modloader-mod_order_missing": "ModLoader: order.json is missing, creating...",
|
"modloader-mod_order_missing": "ModLoader: order.json is missing, creating...",
|
||||||
"modloader-mod_order_missing_from_json": "ModLoader: Mod %s is missing from order.json, adding",
|
"modloader-mod_order_missing_from_json": "ModLoader: Mod %s is missing from order.json, adding",
|
||||||
@ -562,6 +576,7 @@
|
|||||||
"quest-unable_to_find_trader_in_profile": "Unable to find trader: %s in profile",
|
"quest-unable_to_find_trader_in_profile": "Unable to find trader: %s in profile",
|
||||||
"quest-unable_to_remove_scav_quest_from_profile": "Unable to remove scav quest: {{questIdToRemove}} from profile: {{profileId}}",
|
"quest-unable_to_remove_scav_quest_from_profile": "Unable to remove scav quest: {{questIdToRemove}} from profile: {{profileId}}",
|
||||||
"ragfair-invalid_player_offer_request": "Unable to place offer, request is invalid",
|
"ragfair-invalid_player_offer_request": "Unable to place offer, request is invalid",
|
||||||
|
"ragfair-item_not_in_db_unable_to_generate_dynamic_stack_count": "Item with tpl: %s not found in db. Unable to generate a dynamic stack count",
|
||||||
"ragfair-missing_barter_scheme": "generateFleaOffersForTrader() Failed to find barterScheme for item id: {{itemId}} tpl: {{tpl}} on {{name}}",
|
"ragfair-missing_barter_scheme": "generateFleaOffersForTrader() Failed to find barterScheme for item id: {{itemId}} tpl: {{tpl}} on {{name}}",
|
||||||
"ragfair-no_trader_assorts_cant_generate_flea_offers": "Unable to generate flea offers for trader %s, no assort found",
|
"ragfair-no_trader_assorts_cant_generate_flea_offers": "Unable to generate flea offers for trader %s, no assort found",
|
||||||
"ragfair-offer_no_longer_exists": "Offer no longer exists",
|
"ragfair-offer_no_longer_exists": "Offer no longer exists",
|
||||||
@ -593,7 +608,13 @@
|
|||||||
"release-server-mods-debug-message": "Server mods loaded",
|
"release-server-mods-debug-message": "Server mods loaded",
|
||||||
"release-server-mods-loaded": "One or more server mods exist on a mod enabled build, reports will be invalid until removed. See the top of the server for loaded server mods to remove to report issues again.",
|
"release-server-mods-loaded": "One or more server mods exist on a mod enabled build, reports will be invalid until removed. See the top of the server for loaded server mods to remove to report issues again.",
|
||||||
"release-summary": "",
|
"release-summary": "",
|
||||||
|
"repair-item_has_no_repair_points": "Repairable item: %s has no repair points",
|
||||||
|
"repair-item_not_found_unable_to_repair": "Item: %s not found in inventory. Unable to repair it",
|
||||||
|
"repair-repair_kit_not_found_in_inventory": "Unable to find repair kit: %s in inventory",
|
||||||
"repair-unable_to_find_item_in_db": "Unable to repair item: %s, cannot find in items db, cannot add repair skill points",
|
"repair-unable_to_find_item_in_db": "Unable to repair item: %s, cannot find in items db, cannot add repair skill points",
|
||||||
|
"repair-unable_to_find_item_in_inventory_cant_repair": "unable to find item: %s in inventory, cannot repair item",
|
||||||
|
"repair-unable_to_find_item_repair_cost": "Unable to find repair cost for item: %s",
|
||||||
|
"repair-unable_to_find_trader_details_by_id": "Unable to find trader: %s repair details",
|
||||||
"repeatable-accepted_repeatable_quest_not_found_in_active_quests": "Accepted a repeatable quest: %s which could not be found in the activeQuests array. Please report this bug",
|
"repeatable-accepted_repeatable_quest_not_found_in_active_quests": "Accepted a repeatable quest: %s which could not be found in the activeQuests array. Please report this bug",
|
||||||
"repeatable-completion_quest_whitelist_too_small_or_blacklist_too_restrictive": "Generate Completion Quest: No items remain. Either Whitelist is too small or Blacklist too restrictive",
|
"repeatable-completion_quest_whitelist_too_small_or_blacklist_too_restrictive": "Generate Completion Quest: No items remain. Either Whitelist is too small or Blacklist too restrictive",
|
||||||
"repeatable-difficulty_was_nan": "Repeatable Reward Generation: Difficulty was NaN. Setting to 1.",
|
"repeatable-difficulty_was_nan": "Repeatable Reward Generation: Difficulty was NaN. Setting to 1.",
|
||||||
|
@ -214,7 +214,7 @@ export class BotController
|
|||||||
|
|
||||||
if (raidSettings === undefined)
|
if (raidSettings === undefined)
|
||||||
{
|
{
|
||||||
throw new Error("Raid settings could not be loaded from ApplicationContext");
|
throw new Error(this.localisationService.getText("bot-unable_to_load_raid_settings_from_appcontext"));
|
||||||
}
|
}
|
||||||
const pmcLevelRangeForMap
|
const pmcLevelRangeForMap
|
||||||
= this.pmcConfig.locationSpecificPmcLevelOverride[raidSettings.location.toLowerCase()];
|
= this.pmcConfig.locationSpecificPmcLevelOverride[raidSettings.location.toLowerCase()];
|
||||||
@ -376,7 +376,7 @@ export class BotController
|
|||||||
|
|
||||||
if (raidSettings === undefined)
|
if (raidSettings === undefined)
|
||||||
{
|
{
|
||||||
throw new Error("Raid settings could not be loaded from ApplicationContext");
|
throw new Error(this.localisationService.getText("bot-unable_to_load_raid_settings_from_appcontext"));
|
||||||
}
|
}
|
||||||
const pmcLevelRangeForMap
|
const pmcLevelRangeForMap
|
||||||
= this.pmcConfig.locationSpecificPmcLevelOverride[raidSettings.location.toLowerCase()];
|
= this.pmcConfig.locationSpecificPmcLevelOverride[raidSettings.location.toLowerCase()];
|
||||||
|
@ -47,7 +47,8 @@ export class CustomizationController
|
|||||||
// Return all suits that have a side array containing the players side (usec/bear)
|
// Return all suits that have a side array containing the players side (usec/bear)
|
||||||
const matchedSuits = matchingSuits?.filter((x) => templates[x.suiteId]._props.Side.includes(pmcData.Info.Side));
|
const matchedSuits = matchingSuits?.filter((x) => templates[x.suiteId]._props.Side.includes(pmcData.Info.Side));
|
||||||
if (matchingSuits === undefined)
|
if (matchingSuits === undefined)
|
||||||
throw new Error(`Unable to get trader suits for trader ${traderID}`);
|
throw new Error(this.localisationService.getText("customisation-unable_to_get_trader_suits", traderID));
|
||||||
|
|
||||||
return matchedSuits!;
|
return matchedSuits!;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -138,8 +139,9 @@ export class CustomizationController
|
|||||||
const foundSuit = this.getAllTraderSuits(sessionId).find((x) => x._id === offerId);
|
const foundSuit = this.getAllTraderSuits(sessionId).find((x) => x._id === offerId);
|
||||||
if (foundSuit === undefined)
|
if (foundSuit === undefined)
|
||||||
{
|
{
|
||||||
throw new Error(`Unable to find suit with offer id ${offerId}`);
|
throw new Error(this.localisationService.getText("customisation-unable_to_find_suit_with_id", offerId));
|
||||||
}
|
}
|
||||||
|
|
||||||
return foundSuit;
|
return foundSuit;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -209,7 +211,7 @@ export class CustomizationController
|
|||||||
|
|
||||||
if (!relatedItem.upd || !relatedItem.upd.StackObjectsCount)
|
if (!relatedItem.upd || !relatedItem.upd.StackObjectsCount)
|
||||||
{
|
{
|
||||||
throw new Error(`Suit with tpl id ${relatedItem._tpl} does not have upd or stack object count properties`);
|
throw new Error(this.localisationService.getText("customisation-suit_lacks_upd_or_stack_property", relatedItem._tpl));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (relatedItem.upd.StackObjectsCount > clothingItem.count)
|
if (relatedItem.upd.StackObjectsCount > clothingItem.count)
|
||||||
|
@ -51,7 +51,7 @@ export class DialogueController
|
|||||||
{
|
{
|
||||||
if (this.dialogueChatBots.some((cb) => cb.getChatBot()._id === chatBot.getChatBot()._id))
|
if (this.dialogueChatBots.some((cb) => cb.getChatBot()._id === chatBot.getChatBot()._id))
|
||||||
{
|
{
|
||||||
throw new Error(`The chat bot ${chatBot.getChatBot()._id} being registered already exists!`);
|
throw new Error(this.localisationService.getText("dialog-chatbot_id_already_exists", chatBot.getChatBot()._id));
|
||||||
}
|
}
|
||||||
this.dialogueChatBots.push(chatBot);
|
this.dialogueChatBots.push(chatBot);
|
||||||
}
|
}
|
||||||
|
@ -6,12 +6,14 @@ import { IUserDialogInfo } from "@spt/models/eft/profile/ISptProfile";
|
|||||||
import { ConfigTypes } from "@spt/models/enums/ConfigTypes";
|
import { ConfigTypes } from "@spt/models/enums/ConfigTypes";
|
||||||
import { ICoreConfig } from "@spt/models/spt/config/ICoreConfig";
|
import { ICoreConfig } from "@spt/models/spt/config/ICoreConfig";
|
||||||
import { ConfigServer } from "@spt/servers/ConfigServer";
|
import { ConfigServer } from "@spt/servers/ConfigServer";
|
||||||
|
import { LocalisationService } from "@spt/services/LocalisationService";
|
||||||
|
|
||||||
@injectable()
|
@injectable()
|
||||||
export class SptCommandoCommands implements IChatCommand
|
export class SptCommandoCommands implements IChatCommand
|
||||||
{
|
{
|
||||||
constructor(
|
constructor(
|
||||||
@inject("ConfigServer") protected configServer: ConfigServer,
|
@inject("ConfigServer") protected configServer: ConfigServer,
|
||||||
|
@inject("LocalisationService") protected localisationService: LocalisationService,
|
||||||
@injectAll("SptCommand") protected sptCommands: ISptCommand[],
|
@injectAll("SptCommand") protected sptCommands: ISptCommand[],
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
@ -33,7 +35,7 @@ export class SptCommandoCommands implements IChatCommand
|
|||||||
{
|
{
|
||||||
if (this.sptCommands.some((c) => c.getCommand() === command.getCommand()))
|
if (this.sptCommands.some((c) => c.getCommand() === command.getCommand()))
|
||||||
{
|
{
|
||||||
throw new Error(`The command "${command.getCommand()}" attempting to be registered already exists.`);
|
throw new Error(this.localisationService.getText("chat-unable_to_register_command_already_registered", command.getCommand()));
|
||||||
}
|
}
|
||||||
this.sptCommands.push(command);
|
this.sptCommands.push(command);
|
||||||
}
|
}
|
||||||
|
@ -15,6 +15,7 @@ import { ConfigServer } from "@spt/servers/ConfigServer";
|
|||||||
import { DatabaseServer } from "@spt/servers/DatabaseServer";
|
import { DatabaseServer } from "@spt/servers/DatabaseServer";
|
||||||
import { SaveServer } from "@spt/servers/SaveServer";
|
import { SaveServer } from "@spt/servers/SaveServer";
|
||||||
import { ItemFilterService } from "@spt/services/ItemFilterService";
|
import { ItemFilterService } from "@spt/services/ItemFilterService";
|
||||||
|
import { LocalisationService } from "@spt/services/LocalisationService";
|
||||||
import { MailSendService } from "@spt/services/MailSendService";
|
import { MailSendService } from "@spt/services/MailSendService";
|
||||||
import { ICloner } from "@spt/utils/cloners/ICloner";
|
import { ICloner } from "@spt/utils/cloners/ICloner";
|
||||||
import { RandomUtil } from "@spt/utils/RandomUtil";
|
import { RandomUtil } from "@spt/utils/RandomUtil";
|
||||||
@ -40,6 +41,7 @@ export class RagfairServerHelper
|
|||||||
@inject("ItemHelper") protected itemHelper: ItemHelper,
|
@inject("ItemHelper") protected itemHelper: ItemHelper,
|
||||||
@inject("TraderHelper") protected traderHelper: TraderHelper,
|
@inject("TraderHelper") protected traderHelper: TraderHelper,
|
||||||
@inject("MailSendService") protected mailSendService: MailSendService,
|
@inject("MailSendService") protected mailSendService: MailSendService,
|
||||||
|
@inject("LocalisationService") protected localisationService: LocalisationService,
|
||||||
@inject("ItemFilterService") protected itemFilterService: ItemFilterService,
|
@inject("ItemFilterService") protected itemFilterService: ItemFilterService,
|
||||||
@inject("ConfigServer") protected configServer: ConfigServer,
|
@inject("ConfigServer") protected configServer: ConfigServer,
|
||||||
@inject("RecursiveCloner") protected cloner: ICloner,
|
@inject("RecursiveCloner") protected cloner: ICloner,
|
||||||
@ -186,7 +188,7 @@ export class RagfairServerHelper
|
|||||||
const itemDetails = this.itemHelper.getItem(tplId);
|
const itemDetails = this.itemHelper.getItem(tplId);
|
||||||
if (!itemDetails[0])
|
if (!itemDetails[0])
|
||||||
{
|
{
|
||||||
throw new Error(`Item with tpl ${tplId} not found. Unable to generate a dynamic stack count.`);
|
throw new Error(this.localisationService.getText("ragfair-item_not_in_db_unable_to_generate_dynamic_stack_count", tplId));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Item Types to return one of
|
// Item Types to return one of
|
||||||
@ -241,7 +243,7 @@ export class RagfairServerHelper
|
|||||||
*/
|
*/
|
||||||
public getPresetItems(item: Item): Item[]
|
public getPresetItems(item: Item): Item[]
|
||||||
{
|
{
|
||||||
const preset = this.cloner.clone(this.databaseServer.getTables().globals.ItemPresets[item._id]._items);
|
const preset = this.cloner.clone(this.databaseServer.getTables().globals!.ItemPresets[item._id]._items);
|
||||||
return this.itemHelper.reparentItemAndChildren(item, preset);
|
return this.itemHelper.reparentItemAndChildren(item, preset);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -253,12 +255,12 @@ export class RagfairServerHelper
|
|||||||
public getPresetItemsByTpl(item: Item): Item[]
|
public getPresetItemsByTpl(item: Item): Item[]
|
||||||
{
|
{
|
||||||
const presets = [];
|
const presets = [];
|
||||||
for (const itemId in this.databaseServer.getTables().globals.ItemPresets)
|
for (const itemId in this.databaseServer.getTables().globals!.ItemPresets)
|
||||||
{
|
{
|
||||||
if (this.databaseServer.getTables().globals.ItemPresets[itemId]._items[0]._tpl === item._tpl)
|
if (this.databaseServer.getTables().globals!.ItemPresets[itemId]._items[0]._tpl === item._tpl)
|
||||||
{
|
{
|
||||||
const presetItems = this.cloner.clone(
|
const presetItems = this.cloner.clone(
|
||||||
this.databaseServer.getTables().globals.ItemPresets[itemId]._items,
|
this.databaseServer.getTables().globals!.ItemPresets[itemId]._items,
|
||||||
);
|
);
|
||||||
presets.push(this.itemHelper.reparentItemAndChildren(item, presetItems));
|
presets.push(this.itemHelper.reparentItemAndChildren(item, presetItems));
|
||||||
}
|
}
|
||||||
|
@ -48,7 +48,7 @@ export class ModLoadOrder
|
|||||||
{
|
{
|
||||||
if (!this.mods.has(mod))
|
if (!this.mods.has(mod))
|
||||||
{
|
{
|
||||||
throw new Error(`Mod: ${mod} isn't present.`);
|
throw new Error(this.localisationService.getText("modloader-mod_isnt_present", mod));
|
||||||
}
|
}
|
||||||
|
|
||||||
const config = this.mods.get(mod);
|
const config = this.mods.get(mod);
|
||||||
@ -70,7 +70,7 @@ export class ModLoadOrder
|
|||||||
{
|
{
|
||||||
if (!this.mods.has(mod))
|
if (!this.mods.has(mod))
|
||||||
{
|
{
|
||||||
throw new Error(`Mod: ${mod} isn't present.`);
|
throw new Error(this.localisationService.getText("modloader-mod_isnt_present", mod));
|
||||||
}
|
}
|
||||||
|
|
||||||
const config = this.mods.get(mod);
|
const config = this.mods.get(mod);
|
||||||
|
@ -105,14 +105,16 @@ export class InsuranceService
|
|||||||
const markOfTheUnheardOnPlayer = pmcData.Inventory.items
|
const markOfTheUnheardOnPlayer = pmcData.Inventory.items
|
||||||
.filter((item) => item.slotId?.startsWith("SpecialSlot"))
|
.filter((item) => item.slotId?.startsWith("SpecialSlot"))
|
||||||
.find((item) => item._tpl === "65ddcc9cfa85b9f17d0dfb07");
|
.find((item) => item._tpl === "65ddcc9cfa85b9f17d0dfb07");
|
||||||
|
|
||||||
// Get insurance items for each trader
|
// Get insurance items for each trader
|
||||||
for (const traderId in this.getInsurance(sessionID))
|
for (const traderId in this.getInsurance(sessionID))
|
||||||
{
|
{
|
||||||
const traderBase = this.traderHelper.getTrader(traderId, sessionID);
|
const traderBase = this.traderHelper.getTrader(traderId, sessionID);
|
||||||
if (!traderBase)
|
if (!traderBase)
|
||||||
{
|
{
|
||||||
throw new Error(`The trader id ${traderId} was not found!`);
|
throw new Error(this.localisationService.getText("insurance-unable_to_find_trader_by_id", traderId));
|
||||||
}
|
}
|
||||||
|
|
||||||
let insuranceReturnTimestamp = this.getInsuranceReturnTimestamp(pmcData, traderBase);
|
let insuranceReturnTimestamp = this.getInsuranceReturnTimestamp(pmcData, traderBase);
|
||||||
if (markOfTheUnheardOnPlayer)
|
if (markOfTheUnheardOnPlayer)
|
||||||
{
|
{
|
||||||
@ -120,10 +122,9 @@ export class InsuranceService
|
|||||||
.globals!.config.Insurance.CoefOfHavingMarkOfUnknown;
|
.globals!.config.Insurance.CoefOfHavingMarkOfUnknown;
|
||||||
}
|
}
|
||||||
const dialogueTemplates = this.databaseServer.getTables().traders![traderId].dialogue;
|
const dialogueTemplates = this.databaseServer.getTables().traders![traderId].dialogue;
|
||||||
|
|
||||||
if (!dialogueTemplates)
|
if (!dialogueTemplates)
|
||||||
{
|
{
|
||||||
throw new Error(`The trader id ${traderId} does not have dialogues for insurance`);
|
throw new Error(this.localisationService.getText("insurance-trader_lacks_dialogue_property", traderId));
|
||||||
}
|
}
|
||||||
|
|
||||||
const systemData = {
|
const systemData = {
|
||||||
@ -131,10 +132,11 @@ export class InsuranceService
|
|||||||
time: this.timeUtil.getTimeMailFormat(),
|
time: this.timeUtil.getTimeMailFormat(),
|
||||||
location: mapId,
|
location: mapId,
|
||||||
};
|
};
|
||||||
|
|
||||||
const traderEnum = this.traderHelper.getTraderById(traderId);
|
const traderEnum = this.traderHelper.getTraderById(traderId);
|
||||||
if (!traderEnum)
|
if (!traderEnum)
|
||||||
{
|
{
|
||||||
throw new Error(`The trader id ${traderId} is missing from Traders enum`);
|
throw new Error(this.localisationService.getText("insurance-trader_missing_from_enum", traderId));
|
||||||
}
|
}
|
||||||
// Send "i will go look for your stuff" message from trader to player
|
// Send "i will go look for your stuff" message from trader to player
|
||||||
this.mailSendService.sendLocalisedNpcMessageToPlayer(
|
this.mailSendService.sendLocalisedNpcMessageToPlayer(
|
||||||
@ -290,8 +292,9 @@ export class InsuranceService
|
|||||||
?.find((insuranceItem) => insuranceItem.id === insuredItem.itemId);
|
?.find((insuranceItem) => insuranceItem.id === insuredItem.itemId);
|
||||||
if (!inventoryInsuredItem)
|
if (!inventoryInsuredItem)
|
||||||
{
|
{
|
||||||
throw new Error(`Inventory insured item id ${insuredItem.itemId} was not found`);
|
throw new Error(this.localisationService.getText("insurance-item_not_found_in_post_raid_data", insuredItem.itemId));
|
||||||
}
|
}
|
||||||
|
|
||||||
equipmentPkg.push({
|
equipmentPkg.push({
|
||||||
pmcData: pmcData,
|
pmcData: pmcData,
|
||||||
itemToReturnToPlayer: this.getInsuredItemDetails(
|
itemToReturnToPlayer: this.getInsuredItemDetails(
|
||||||
@ -323,14 +326,14 @@ export class InsuranceService
|
|||||||
const preRaidInventoryItem = preRaidGear.find((item) => item._id === softInsertChildModId);
|
const preRaidInventoryItem = preRaidGear.find((item) => item._id === softInsertChildModId);
|
||||||
if (!preRaidInventoryItem)
|
if (!preRaidInventoryItem)
|
||||||
{
|
{
|
||||||
throw new Error(`Preraid inventory item ${softInsertChildModId} was not found`);
|
throw new Error(this.localisationService.getText("insurance-pre_raid_item_not_found", softInsertChildModId));
|
||||||
}
|
}
|
||||||
const inventoryInsuredItem = offraidData.insurance?.find(
|
const inventoryInsuredItem = offraidData.insurance?.find(
|
||||||
(insuranceItem) => insuranceItem.id === softInsertChildModId,
|
(insuranceItem) => insuranceItem.id === softInsertChildModId,
|
||||||
);
|
);
|
||||||
if (!inventoryInsuredItem)
|
if (!inventoryInsuredItem)
|
||||||
{
|
{
|
||||||
throw new Error(`Inventory insured item ${softInsertChildModId} was not found`);
|
throw new Error(this.localisationService.getText("insurance-post_raid_item_not_found", softInsertChildModId));
|
||||||
}
|
}
|
||||||
equipmentPkg.push({
|
equipmentPkg.push({
|
||||||
pmcData: pmcData,
|
pmcData: pmcData,
|
||||||
|
@ -544,7 +544,7 @@ export class MailSendService
|
|||||||
const senderId = this.getMessageSenderIdByType(messageDetails);
|
const senderId = this.getMessageSenderIdByType(messageDetails);
|
||||||
if (!senderId)
|
if (!senderId)
|
||||||
{
|
{
|
||||||
throw new Error(`Unable to find sender id for details ${messageDetails.sender}`);
|
throw new Error(this.localisationService.getText("mail-unable_to_find_message_sender_by_id", messageDetails.sender));
|
||||||
}
|
}
|
||||||
// Does dialog exist
|
// Does dialog exist
|
||||||
let senderDialog = dialogsInProfile[senderId];
|
let senderDialog = dialogsInProfile[senderId];
|
||||||
|
@ -60,17 +60,17 @@ export class RepairService
|
|||||||
traderId: string,
|
traderId: string,
|
||||||
): RepairDetails
|
): RepairDetails
|
||||||
{
|
{
|
||||||
const itemToRepair = pmcData.Inventory.items.find((x) => x._id === repairItemDetails._id);
|
const itemToRepair = pmcData.Inventory.items.find((item) => item._id === repairItemDetails._id);
|
||||||
if (!itemToRepair)
|
if (!itemToRepair)
|
||||||
{
|
{
|
||||||
throw new Error(`Item ${repairItemDetails._id} not found in profile inventory, unable to repair`);
|
throw new Error(this.localisationService.getText("repair-unable_to_find_item_in_inventory_cant_repair", repairItemDetails._id));
|
||||||
}
|
}
|
||||||
|
|
||||||
const priceCoef = this.traderHelper.getLoyaltyLevel(traderId, pmcData).repair_price_coef;
|
const priceCoef = this.traderHelper.getLoyaltyLevel(traderId, pmcData).repair_price_coef;
|
||||||
const traderRepairDetails = this.traderHelper.getTrader(traderId, sessionID)?.repair;
|
const traderRepairDetails = this.traderHelper.getTrader(traderId, sessionID)?.repair;
|
||||||
if (!traderRepairDetails)
|
if (!traderRepairDetails)
|
||||||
{
|
{
|
||||||
throw new Error(`Trader details for ${traderId} was not found`);
|
throw new Error(this.localisationService.getText("repair-unable_to_find_trader_details_by_id", traderId));
|
||||||
}
|
}
|
||||||
const repairQualityMultiplier = Number(traderRepairDetails.quality);
|
const repairQualityMultiplier = Number(traderRepairDetails.quality);
|
||||||
const repairRate = priceCoef <= 0 ? 1 : priceCoef / 100 + 1;
|
const repairRate = priceCoef <= 0 ? 1 : priceCoef / 100 + 1;
|
||||||
@ -92,7 +92,7 @@ export class RepairService
|
|||||||
const itemRepairCost = this.databaseServer.getTables().templates!.items[itemToRepair._tpl]._props.RepairCost;
|
const itemRepairCost = this.databaseServer.getTables().templates!.items[itemToRepair._tpl]._props.RepairCost;
|
||||||
if (!itemRepairCost)
|
if (!itemRepairCost)
|
||||||
{
|
{
|
||||||
throw new Error(`Item with tpl ${itemToRepair._tpl} has no repair cost`);
|
throw new Error(this.localisationService.getText("repair-unable_to_find_item_repair_cost", itemToRepair._tpl));
|
||||||
}
|
}
|
||||||
const repairCost = Math.round(
|
const repairCost = Math.round(
|
||||||
itemRepairCost * repairItemDetails.count * repairRate * this.repairConfig.priceMultiplier,
|
itemRepairCost * repairItemDetails.count * repairRate * this.repairConfig.priceMultiplier,
|
||||||
@ -196,7 +196,7 @@ export class RepairService
|
|||||||
const vestSkillToLevel = isHeavyArmor ? SkillTypes.HEAVY_VESTS : SkillTypes.LIGHT_VESTS;
|
const vestSkillToLevel = isHeavyArmor ? SkillTypes.HEAVY_VESTS : SkillTypes.LIGHT_VESTS;
|
||||||
if (!repairDetails.repairPoints)
|
if (!repairDetails.repairPoints)
|
||||||
{
|
{
|
||||||
throw new Error(`Repair for ${repairDetails.repairedItem._tpl} has no repair points`);
|
throw new Error(this.localisationService.getText("repair-item_has_no_repair_points", repairDetails.repairedItem._tpl));
|
||||||
}
|
}
|
||||||
const pointsToAddToVestSkill
|
const pointsToAddToVestSkill
|
||||||
= repairDetails.repairPoints * this.repairConfig.armorKitSkillPointGainPerRepairPointMultiplier;
|
= repairDetails.repairPoints * this.repairConfig.armorKitSkillPointGainPerRepairPointMultiplier;
|
||||||
@ -229,8 +229,9 @@ export class RepairService
|
|||||||
// Limit gain to a max value defined in config.maxIntellectGainPerRepair
|
// Limit gain to a max value defined in config.maxIntellectGainPerRepair
|
||||||
if (!repairDetails.repairPoints)
|
if (!repairDetails.repairPoints)
|
||||||
{
|
{
|
||||||
throw new Error(`Repair for ${repairDetails.repairedItem._tpl} has no repair points`);
|
throw new Error(this.localisationService.getText("repair-item_has_no_repair_points", repairDetails.repairedItem._tpl));
|
||||||
}
|
}
|
||||||
|
|
||||||
return Math.min(
|
return Math.min(
|
||||||
repairDetails.repairPoints * intRepairMultiplier,
|
repairDetails.repairPoints * intRepairMultiplier,
|
||||||
this.repairConfig.maxIntellectGainPerRepair.kit,
|
this.repairConfig.maxIntellectGainPerRepair.kit,
|
||||||
@ -297,7 +298,7 @@ export class RepairService
|
|||||||
const itemToRepair = pmcData.Inventory.items.find((x: { _id: string }) => x._id === itemToRepairId);
|
const itemToRepair = pmcData.Inventory.items.find((x: { _id: string }) => x._id === itemToRepairId);
|
||||||
if (itemToRepair === undefined)
|
if (itemToRepair === undefined)
|
||||||
{
|
{
|
||||||
throw new Error(`Item ${itemToRepairId} not found, unable to repair`);
|
throw new Error(this.localisationService.getText("repair-item_not_found_unable_to_repair", itemToRepairId));
|
||||||
}
|
}
|
||||||
|
|
||||||
const itemsDb = this.databaseServer.getTables().templates!.items;
|
const itemsDb = this.databaseServer.getTables().templates!.items;
|
||||||
@ -322,10 +323,10 @@ export class RepairService
|
|||||||
// Find and use repair kit defined in body
|
// Find and use repair kit defined in body
|
||||||
for (const repairKit of repairKits)
|
for (const repairKit of repairKits)
|
||||||
{
|
{
|
||||||
const repairKitInInventory = pmcData.Inventory.items.find((x) => x._id === repairKit._id);
|
const repairKitInInventory = pmcData.Inventory.items.find((item) => item._id === repairKit._id);
|
||||||
if (!repairKitInInventory)
|
if (!repairKitInInventory)
|
||||||
{
|
{
|
||||||
throw new Error(`Repair kit with id ${repairKit._id} was not found in the inventory`);
|
throw new Error(this.localisationService.getText("repair-repair_kit_not_found_in_inventory", repairKit._id));
|
||||||
}
|
}
|
||||||
const repairKitDetails = itemsDb[repairKitInInventory._tpl];
|
const repairKitDetails = itemsDb[repairKitInInventory._tpl];
|
||||||
const repairKitReductionAmount = repairKit.count;
|
const repairKitReductionAmount = repairKit.count;
|
||||||
@ -564,7 +565,7 @@ export class RepairService
|
|||||||
|
|
||||||
if (!repairDetails.repairPoints)
|
if (!repairDetails.repairPoints)
|
||||||
{
|
{
|
||||||
throw new Error(`Repair for ${repairDetails.repairedItem._tpl} has no repair points`);
|
throw new Error(this.localisationService.getText("repair-item_has_no_repair_points", repairDetails.repairedItem._tpl));
|
||||||
}
|
}
|
||||||
const durabilityToRestorePercent = repairDetails.repairPoints / template._props.MaxDurability!;
|
const durabilityToRestorePercent = repairDetails.repairPoints / template._props.MaxDurability!;
|
||||||
const durabilityMultiplier = this.getDurabilityMultiplier(
|
const durabilityMultiplier = this.getDurabilityMultiplier(
|
||||||
|
Loading…
x
Reference in New Issue
Block a user