XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet

SpaceNinjaServer

A simple server for a small space ninja game

公开
关注 0 Fork 1 Star 0
返回提交历史

XFEstudio/SpaceNinjaServer

chore: replace instances of .split(a).join(b) with .replaceAll(a, b) (#3969)

`replaceAll` was added to JavaScript in 2020. Better late than never, I suppose. Reviewed-on: https://onlyg.it/OpenWF/SpaceNinjaServer/pulls/3969 Co-authored-by: Sainan <63328889+Sainan@users.noreply.github.com> Co-committed-by: Sainan <63328889+Sainan@users.noreply.github.com>

2da9421b
Sainan <63328889+Sainan@users.noreply.github.com>
提交于

代码差异

12 个文件 +148 -141
Modified src/controllers/api/loginController.ts +3 -3
@@ -61,7 +61,7 @@ export const loginController: RequestHandler = async (request, response) => {
61 61
62 62 const buildLabel: string =
63 63 typeof request.query.buildLabel == "string"
64 ? request.query.buildLabel.split(" ").join("+")
64 ? request.query.buildLabel.replaceAll(" ", "+")
65 65 : buildConfig.buildLabel;
66 66
67 67 if (version_compare(buildLabel, gameToBuildVersion["42.0.0"]) >= 0) {
@@ -193,14 +193,14 @@ const createLoginResponse = (request: Request, account: IDatabaseAccountJson, bu
193 193 }
194 194 }
195 195 if (version_compare(buildLabel, gameToBuildVersion["15.14.1"]) >= 0) {
196 resp.NRS = (config.nrsAddresses ?? []).map(x => x.split("%THIS_MACHINE%").join(myAddress));
196 resp.NRS = (config.nrsAddresses ?? []).map(x => x.replaceAll("%THIS_MACHINE%", myAddress));
197 197 // U16 ~ U28 are known to show an "Internal error." popup with an empty array.
198 198 if (resp.NRS.length == 0 && version_compare(buildLabel, gameToBuildVersion["29.0.0"]) < 0) {
199 199 resp.NRS.push(myAddress);
200 200 }
201 201 }
202 202 if (version_compare(buildLabel, gameToBuildVersion["16.5.5"]) >= 0) {
203 resp.IRC = [(config.ircAddress || "%THIS_MACHINE%").split("%THIS_MACHINE%").join(myAddress)];
203 resp.IRC = [(config.ircAddress || "%THIS_MACHINE%").replaceAll("%THIS_MACHINE%", myAddress)];
204 204 }
205 205 if (version_compare(buildLabel, gameToBuildVersion["24.0.0"]) >= 0) {
206 206 resp.ConsentNeeded = false;
Modified src/controllers/api/loginRewardsController.ts +8 -6
@@ -61,13 +61,15 @@ export const loginRewardsController: RequestHandler = async (req, res) => {
61 61 if (reward.Icon == "/Lotus/Interface/Icons/StoreIcons/Currency/CreditsLarge.png") {
62 62 reward.Icon = "/Lotus/Interface/Icons/Store/CreditBooster.png";
63 63 } else if (reward.RewardType == "RT_RESOURCE") {
64 reward.Icon = ExportResources[reward.ItemType].icon
65 .split("/Lotus/Interface/Icons/StoreIcons/Resources/CraftingComponents/")
66 .join("/Lotus/Interface/Icons/Store/");
64 reward.Icon = ExportResources[reward.ItemType].icon.replaceAll(
65 "/Lotus/Interface/Icons/StoreIcons/Resources/CraftingComponents/",
66 "/Lotus/Interface/Icons/Store/"
67 );
67 68 } else if (reward.RewardType == "RT_BOOSTER") {
68 reward.Icon = ExportBoosters[reward.StoreItemType].icon
69 .split("/Lotus/Interface/Icons/StoreIcons/Boosters/")
70 .join("/Lotus/Interface/Icons/Store/");
69 reward.Icon = ExportBoosters[reward.StoreItemType].icon.replaceAll(
70 "/Lotus/Interface/Icons/StoreIcons/Boosters/",
71 "/Lotus/Interface/Icons/Store/"
72 );
71 73 }
72 74 }
73 75 res.json({ Rewards: response.DailyTributeInfo.Rewards });
Modified src/controllers/api/versionController.ts +1 -1
@@ -4,7 +4,7 @@ import { buildConfig } from "../../services/buildConfigService.ts";
4 4 export const versionController: RequestHandler = (request, res) => {
5 5 const buildLabel: string =
6 6 typeof request.query.buildLabel == "string"
7 ? request.query.buildLabel.split(" ").join("+")
7 ? request.query.buildLabel.replaceAll(" ", "+")
8 8 : buildConfig.buildLabel;
9 9
10 10 res.send(buildLabel);
Modified src/controllers/arbiter/hubController.ts +1 -1
@@ -21,7 +21,7 @@ export const hubController: RequestHandler = (req, res) => {
21 21 };
22 22 }
23 23 const needToUseUdpProxy = (config.dtls ?? 0) & 1 && hubServer.dtlsUnsupported;
24 const addr = hubServer.address.split("%THIS_MACHINE%").join(getReflexiveAddress(req).myAddress);
24 const addr = hubServer.address.replaceAll("%THIS_MACHINE%", getReflexiveAddress(req).myAddress);
25 25
26 26 if (`${level}_${instanceId}` == req.query.level) {
27 27 res.json(`${needToUseUdpProxy ? "udp_proxy_upstream" : "hub"} ${addr}`);
Modified src/controllers/custom/getItemListsController.ts +18 -17
@@ -243,28 +243,31 @@ const getItemListsController: RequestHandler = (req, response) => {
243 243 }
244 244 let name = getNormalizedString(item.name, lang);
245 245 if ("dissectionParts" in item) {
246 name = getString("/Lotus/Language/Fish/FishDisplayName", lang).split("|FISH_NAME|").join(name);
246 name = getString("/Lotus/Language/Fish/FishDisplayName", lang).replaceAll("|FISH_NAME|", name);
247 247 if (item.syndicateTag == "CetusSyndicate") {
248 248 if (uniqueName.indexOf("Large") != -1) {
249 name = name.split("|FISH_SIZE|").join(getString("/Lotus/Language/Fish/FishSizeLargeAbbrev", lang));
249 name = name.replaceAll("|FISH_SIZE|", getString("/Lotus/Language/Fish/FishSizeLargeAbbrev", lang));
250 250 } else if (uniqueName.indexOf("Medium") != -1) {
251 name = name.split("|FISH_SIZE|").join(getString("/Lotus/Language/Fish/FishSizeMediumAbbrev", lang));
251 name = name.replaceAll("|FISH_SIZE|", getString("/Lotus/Language/Fish/FishSizeMediumAbbrev", lang));
252 252 } else {
253 name = name.split("|FISH_SIZE|").join(getString("/Lotus/Language/Fish/FishSizeSmallAbbrev", lang));
253 name = name.replaceAll("|FISH_SIZE|", getString("/Lotus/Language/Fish/FishSizeSmallAbbrev", lang));
254 254 }
255 255 } else {
256 256 if (uniqueName.indexOf("Large") != -1) {
257 name = name
258 .split("|FISH_SIZE|")
259 .join(getString("/Lotus/Language/SolarisVenus/RobofishAgeCategoryElderAbbrev", lang));
257 name = name.replaceAll(
258 "|FISH_SIZE|",
259 getString("/Lotus/Language/SolarisVenus/RobofishAgeCategoryElderAbbrev", lang)
260 );
260 261 } else if (uniqueName.indexOf("Medium") != -1) {
261 name = name
262 .split("|FISH_SIZE|")
263 .join(getString("/Lotus/Language/SolarisVenus/RobofishAgeCategoryMatureAbbrev", lang));
262 name = name.replaceAll(
263 "|FISH_SIZE|",
264 getString("/Lotus/Language/SolarisVenus/RobofishAgeCategoryMatureAbbrev", lang)
265 );
264 266 } else {
265 name = name
266 .split("|FISH_SIZE|")
267 .join(getString("/Lotus/Language/SolarisVenus/RobofishAgeCategoryYoungAbbrev", lang));
267 name = name.replaceAll(
268 "|FISH_SIZE|",
269 getString("/Lotus/Language/SolarisVenus/RobofishAgeCategoryYoungAbbrev", lang)
270 );
268 271 }
269 272 }
270 273 }
@@ -298,10 +301,8 @@ const getItemListsController: RequestHandler = (req, response) => {
298 301 uniqueName: uniqueName,
299 302 name:
300 303 getString("/Lotus/Language/Relics/VoidProjectionName", lang)
301 .split("|ERA|")
302 .join(getString(`/Lotus/Language/Relics/Era_${item.era.toUpperCase()}`, lang))
303 .split("|CATEGORY|")
304 .join(item.category) + qualitySuffix
304 .replaceAll("|ERA|", getString(`/Lotus/Language/Relics/Era_${item.era.toUpperCase()}`, lang))
305 .replaceAll("|CATEGORY|", item.category) + qualitySuffix
305 306 });
306 307 }
307 308 for (const [uniqueName, item] of Object.entries(ExportGear)) {
Modified src/controllers/dynamic/worldStateController.ts +1 -1
@@ -10,7 +10,7 @@ import { getAccountForRequest } from "../../services/loginService.ts";
10 10 export const worldStateController: RequestHandler = async (req, res) => {
11 11 let buildLabel = req.query.buildLabel as string | undefined;
12 12 if (buildLabel) {
13 buildLabel = buildLabel.split(" ").join("+");
13 buildLabel = buildLabel.replaceAll(" ", "+");
14 14 } else if (req.query.accountId) {
15 15 const account = await getAccountForRequest(req);
16 16 buildLabel = account.BuildLabel;
Modified src/helpers/stringHelpers.ts +14 -14
@@ -38,20 +38,20 @@ export const catBreadHash = (name: string): number => {
38 38 };
39 39
40 40 export const regexEscape = (str: string): string => {
41 str = str.split(".").join("\\.");
42 str = str.split("\\").join("\\\\");
43 str = str.split("[").join("\\[");
44 str = str.split("]").join("\\]");
45 str = str.split("+").join("\\+");
46 str = str.split("*").join("\\*");
47 str = str.split("$").join("\\$");
48 str = str.split("^").join("\\^");
49 str = str.split("?").join("\\?");
50 str = str.split("|").join("\\|");
51 str = str.split("(").join("\\(");
52 str = str.split(")").join("\\)");
53 str = str.split("{").join("\\{");
54 str = str.split("}").join("\\}");
41 str = str.replaceAll(".", "\\.");
42 str = str.replaceAll("\\", "\\\\");
43 str = str.replaceAll("[", "\\[");
44 str = str.replaceAll("]", "\\]");
45 str = str.replaceAll("+", "\\+");
46 str = str.replaceAll("*", "\\*");
47 str = str.replaceAll("$", "\\$");
48 str = str.replaceAll("^", "\\^");
49 str = str.replaceAll("?", "\\?");
50 str = str.replaceAll("|", "\\|");
51 str = str.replaceAll("(", "\\(");
52 str = str.replaceAll(")", "\\)");
53 str = str.replaceAll("{", "\\{");
54 str = str.replaceAll("}", "\\}");
55 55 return str;
56 56 };
57 57
Modified src/services/arbiterService.ts +1 -1
@@ -44,7 +44,7 @@ export const broadcastControlMessages = (level: string, msgs: string[]): void =>
44 44 if (instance) {
45 45 instance.Players += 1; // to account for the hubDropped that we will cause here
46 46
47 const [host, port] = instance.Hub.split("%THIS_MACHINE%").join("127.0.0.1").split(":");
47 const [host, port] = instance.Hub.replaceAll("%THIS_MACHINE%", "127.0.0.1").split(":");
48 48 const socket = dgram.createSocket("udp4");
49 49
50 50 socket.send(
Modified src/services/configService.ts +1 -1
@@ -282,7 +282,7 @@ export const getWebServerParams = (): IWebServerParams => {
282 282
283 283 export const getNrsAddresses = (): [string, number][] => {
284 284 return (config.nrsAddresses ?? []).map(nrsAddr => {
285 nrsAddr = nrsAddr.split("%THIS_MACHINE%").join("127.0.0.1");
285 nrsAddr = nrsAddr.replaceAll("%THIS_MACHINE%", "127.0.0.1");
286 286 let nrsPort = 4950;
287 287 const colon = nrsAddr.indexOf(":");
288 288 if (colon != -1) {
Modified src/services/itemDataService.ts +1 -1
@@ -1461,7 +1461,7 @@ export const getString = (key: string, dict: Record<string, string>): string =>
1461 1461 };
1462 1462
1463 1463 export const getNormalizedString = (key: string, dict: Record<string, string>): string => {
1464 return getString(key, dict).split("‘").join("'").split("’").join("'").split("\r\n").join(" ");
1464 return getString(key, dict).replaceAll("‘", "'").replaceAll("’", "'").replaceAll("\r\n", " ");
1465 1465 };
1466 1466
1467 1467 export const getKeyChainItems = (
Modified src/services/tunablesService.ts +3 -3
@@ -20,10 +20,10 @@ export const getTokenForClient = (clientAddress: string): string => {
20 20 export const getTunablesForClient = (clientAddress: string, reflexiveAddress: string): ITunables => {
21 21 const tunables: ITunables = {
22 22 // To successfully update the NRS address for pre-U15.14 clients, this needs to be set before login.
23 nrs: ((config.nrsAddresses ?? [])[0] || "%THIS_MACHINE%").split("%THIS_MACHINE%").join(reflexiveAddress),
23 nrs: ((config.nrsAddresses ?? [])[0] || "%THIS_MACHINE%").replaceAll("%THIS_MACHINE%", reflexiveAddress),
24 24
25 25 // if (version_compare(buildLabel, gameToBuildVersion["16.5.5"]) < 0) {
26 irc: (config.ircAddress || "%THIS_MACHINE%").split("%THIS_MACHINE%").join(reflexiveAddress)
26 irc: (config.ircAddress || "%THIS_MACHINE%").replaceAll("%THIS_MACHINE%", reflexiveAddress)
27 27 };
28 28 if (config.tunables?.useLoginToken) {
29 29 tunables.token = getTokenForClient(clientAddress);
@@ -50,7 +50,7 @@ export const getTunablesForClient = (clientAddress: string, reflexiveAddress: st
50 50 tunables.motd = config.tunables.motd;
51 51 }
52 52 if (config.tunables?.udpProxyUpstream) {
53 tunables.udp_proxy_upstream = config.tunables.udpProxyUpstream.split("%THIS_MACHINE%").join(reflexiveAddress);
53 tunables.udp_proxy_upstream = config.tunables.udpProxyUpstream.replaceAll("%THIS_MACHINE%", reflexiveAddress);
54 54 }
55 55 return tunables;
56 56 };
Modified static/webui/script.js +96 -92
@@ -432,10 +432,8 @@ single.on("route_load", function (event) {
432 432
433 433 function loc(tag) {
434 434 return ((window.dict ?? {})[tag] ?? tag)
435 .split("|DISPLAYNAME|")
436 .join(document.querySelector(".displayname").textContent)
437 .split("|EMAIL|")
438 .join(localStorage.getItem("email"));
435 .replaceAll("|DISPLAYNAME|", document.querySelector(".displayname").textContent)
436 .replaceAll("|EMAIL|", localStorage.getItem("email"));
439 437 }
440 438
441 439 function updateLocElements() {
@@ -610,60 +608,60 @@ function fetchItemList() {
610 608
611 609 // prettier-ignore
612 610 data.archonCrystalUpgrades = {
613 "/Lotus/Upgrades/Invigorations/ArchonCrystalUpgrades/ArchonCrystalUpgradeEquilibrium": loc("upgrade_Equilibrium").split("|VAL|").join("20"),
614 "/Lotus/Upgrades/Invigorations/ArchonCrystalUpgrades/ArchonCrystalUpgradeEquilibriumMythic": loc("upgrade_Equilibrium").split("|VAL|").join("30"),
615 "/Lotus/Upgrades/Invigorations/ArchonCrystalUpgrades/ArchonCrystalUpgradeMeleeCritDamage": loc("upgrade_MeleeCritDamage").split("|VAL|").join("25"),
616 "/Lotus/Upgrades/Invigorations/ArchonCrystalUpgrades/ArchonCrystalUpgradeMeleeCritDamageMythic": loc("upgrade_MeleeCritDamage").split("|VAL|").join("37.5"),
617 "/Lotus/Upgrades/Invigorations/ArchonCrystalUpgrades/ArchonCrystalUpgradePrimaryStatusChance": loc("upgrade_PrimaryStatusChance").split("|VAL|").join("25"),
618 "/Lotus/Upgrades/Invigorations/ArchonCrystalUpgrades/ArchonCrystalUpgradePrimaryStatusChanceMythic": loc("upgrade_PrimaryStatusChance").split("|VAL|").join("37.5"),
619 "/Lotus/Upgrades/Invigorations/ArchonCrystalUpgrades/ArchonCrystalUpgradeSecondaryCritChance": loc("upgrade_SecondaryCritChance").split("|VAL|").join("25"),
620 "/Lotus/Upgrades/Invigorations/ArchonCrystalUpgrades/ArchonCrystalUpgradeSecondaryCritChanceMythic": loc("upgrade_SecondaryCritChance").split("|VAL|").join("37.5"),
621 "/Lotus/Upgrades/Invigorations/ArchonCrystalUpgrades/ArchonCrystalUpgradeWarframeAbilityDuration": loc("upgrade_WarframeAbilityDuration").split("|VAL|").join("10"),
622 "/Lotus/Upgrades/Invigorations/ArchonCrystalUpgrades/ArchonCrystalUpgradeWarframeAbilityDurationMythic": loc("upgrade_WarframeAbilityDuration").split("|VAL|").join("15"),
623 "/Lotus/Upgrades/Invigorations/ArchonCrystalUpgrades/ArchonCrystalUpgradeWarframeAbilityStrength": loc("upgrade_WarframeAbilityStrength").split("|VAL|").join("10"),
624 "/Lotus/Upgrades/Invigorations/ArchonCrystalUpgrades/ArchonCrystalUpgradeWarframeAbilityStrengthMythic": loc("upgrade_WarframeAbilityStrength").split("|VAL|").join("15"),
625 "/Lotus/Upgrades/Invigorations/ArchonCrystalUpgrades/ArchonCrystalUpgradeWarframeArmourMax": loc("upgrade_WarframeArmorMax").split("|VAL|").join("150"),
626 "/Lotus/Upgrades/Invigorations/ArchonCrystalUpgrades/ArchonCrystalUpgradeWarframeArmourMaxMythic": loc("upgrade_WarframeArmorMax").split("|VAL|").join("225"),
627 "/Lotus/Upgrades/Invigorations/ArchonCrystalUpgrades/ArchonCrystalUpgradeWarframeBlastProc": loc("upgrade_WarframeBlastProc").split("|VAL|").join("5"),
628 "/Lotus/Upgrades/Invigorations/ArchonCrystalUpgrades/ArchonCrystalUpgradeWarframeBlastProcMythic": loc("upgrade_WarframeBlastProc").split("|VAL|").join("7.5"),
629 "/Lotus/Upgrades/Invigorations/ArchonCrystalUpgrades/ArchonCrystalUpgradeWarframeCastingSpeed": loc("upgrade_WarframeCastingSpeed").split("|VAL|").join("25"),
630 "/Lotus/Upgrades/Invigorations/ArchonCrystalUpgrades/ArchonCrystalUpgradeWarframeCastingSpeedMythic": loc("upgrade_WarframeCastingSpeed").split("|VAL|").join("37.5"),
631 "/Lotus/Upgrades/Invigorations/ArchonCrystalUpgrades/ArchonCrystalUpgradeWarframeCorrosiveDamageBoost": loc("upgrade_WarframeCorrosiveDamageBoost").split("|VAL|").join("10"),
632 "/Lotus/Upgrades/Invigorations/ArchonCrystalUpgrades/ArchonCrystalUpgradeWarframeCorrosiveDamageBoostMythic": loc("upgrade_WarframeCorrosiveDamageBoost").split("|VAL|").join("15"),
633 "/Lotus/Upgrades/Invigorations/ArchonCrystalUpgrades/ArchonCrystalUpgradeWarframeCorrosiveStack": loc("upgrade_WarframeCorrosiveStack").split("|VAL|").join("2"),
634 "/Lotus/Upgrades/Invigorations/ArchonCrystalUpgrades/ArchonCrystalUpgradeWarframeCorrosiveStackMythic": loc("upgrade_WarframeCorrosiveStack").split("|VAL|").join("3"),
635 "/Lotus/Upgrades/Invigorations/ArchonCrystalUpgrades/ArchonCrystalUpgradeWarframeCritDamageBoost": loc("upgrade_WarframeCritDamageBoost").split("|VAL|").join("25"),
636 "/Lotus/Upgrades/Invigorations/ArchonCrystalUpgrades/ArchonCrystalUpgradeWarframeCritDamageBoostMythic": loc("upgrade_WarframeCritDamageBoost").split("|VAL|").join("37"),
637 "/Lotus/Upgrades/Invigorations/ArchonCrystalUpgrades/ArchonCrystalUpgradeWarframeElectricDamage": loc("upgrade_WarframeElectricDamage").split("|VAL1|").join("30").split("|VAL2|").join("10"),
638 "/Lotus/Upgrades/Invigorations/ArchonCrystalUpgrades/ArchonCrystalUpgradeWarframeElectricDamageMythic": loc("upgrade_WarframeElectricDamage").split("|VAL1|").join("45").split("|VAL2|").join("15"),
639 "/Lotus/Upgrades/Invigorations/ArchonCrystalUpgrades/ArchonCrystalUpgradeWarframeElectricDamageBoost": loc("upgrade_WarframeElectricDamageBoost").split("|VAL|").join("10"),
640 "/Lotus/Upgrades/Invigorations/ArchonCrystalUpgrades/ArchonCrystalUpgradeWarframeElectricDamageBoostMythic": loc("upgrade_WarframeElectricDamageBoost").split("|VAL|").join("15"),
641 "/Lotus/Upgrades/Invigorations/ArchonCrystalUpgrades/ArchonCrystalUpgradeWarframeEnergyMax": loc("upgrade_WarframeEnergyMax").split("|VAL|").join("50"),
642 "/Lotus/Upgrades/Invigorations/ArchonCrystalUpgrades/ArchonCrystalUpgradeWarframeEnergyMaxMythic": loc("upgrade_WarframeEnergyMax").split("|VAL|").join("75"),
643 "/Lotus/Upgrades/Invigorations/ArchonCrystalUpgrades/ArchonCrystalUpgradeWarframeGlobeEffectEnergy": loc("upgrade_WarframeGlobeEffectEnergy").split("|VAL|").join("50"),
644 "/Lotus/Upgrades/Invigorations/ArchonCrystalUpgrades/ArchonCrystalUpgradeWarframeGlobeEffectEnergyMythic": loc("upgrade_WarframeGlobeEffectEnergy").split("|VAL|").join("75"),
645 "/Lotus/Upgrades/Invigorations/ArchonCrystalUpgrades/ArchonCrystalUpgradeWarframeGlobeEffectHealth": loc("upgrade_WarframeGlobeEffectHealth").split("|VAL|").join("100"),
646 "/Lotus/Upgrades/Invigorations/ArchonCrystalUpgrades/ArchonCrystalUpgradeWarframeGlobeEffectHealthMythic": loc("upgrade_WarframeGlobeEffectHealth").split("|VAL|").join("150"),
647 "/Lotus/Upgrades/Invigorations/ArchonCrystalUpgrades/ArchonCrystalUpgradeWarframeHealthMax": loc("upgrade_WarframeHealthMax").split("|VAL|").join("150"),
648 "/Lotus/Upgrades/Invigorations/ArchonCrystalUpgrades/ArchonCrystalUpgradeWarframeHealthMaxMythic": loc("upgrade_WarframeHealthMax").split("|VAL|").join("225"),
649 "/Lotus/Upgrades/Invigorations/ArchonCrystalUpgrades/ArchonCrystalUpgradeWarframeHPBoostFromImpact": loc("upgrade_WarframeHPBoostFromImpact").split("|VAL1|").join("1").split("|VAL2|").join("300"),
650 "/Lotus/Upgrades/Invigorations/ArchonCrystalUpgrades/ArchonCrystalUpgradeWarframeHPBoostFromImpactMythic": loc("upgrade_WarframeHPBoostFromImpact").split("|VAL1|").join("2").split("|VAL2|").join("450"),
651 "/Lotus/Upgrades/Invigorations/ArchonCrystalUpgrades/ArchonCrystalUpgradeWarframeParkourVelocity": loc("upgrade_WarframeParkourVelocity").split("|VAL|").join("15"),
652 "/Lotus/Upgrades/Invigorations/ArchonCrystalUpgrades/ArchonCrystalUpgradeWarframeParkourVelocityMythic": loc("upgrade_WarframeParkourVelocity").split("|VAL|").join("22.5"),
653 "/Lotus/Upgrades/Invigorations/ArchonCrystalUpgrades/ArchonCrystalUpgradeWarframeRadiationDamageBoost": loc("upgrade_WarframeRadiationDamageBoost").split("|VAL|").join("10"),
654 "/Lotus/Upgrades/Invigorations/ArchonCrystalUpgrades/ArchonCrystalUpgradeWarframeRadiationDamageBoostMythic": loc("upgrade_WarframeRadiationDamageBoost").split("|VAL|").join("15"),
655 "/Lotus/Upgrades/Invigorations/ArchonCrystalUpgrades/ArchonCrystalUpgradeWarframeRegen": loc("upgrade_WarframeHealthRegen").split("|VAL|").join("5"),
656 "/Lotus/Upgrades/Invigorations/ArchonCrystalUpgrades/ArchonCrystalUpgradeWarframeRegenMythic": loc("upgrade_WarframeHealthRegen").split("|VAL|").join("7.5"),
657 "/Lotus/Upgrades/Invigorations/ArchonCrystalUpgrades/ArchonCrystalUpgradeWarframeShieldMax": loc("upgrade_WarframeShieldMax").split("|VAL|").join("150"),
658 "/Lotus/Upgrades/Invigorations/ArchonCrystalUpgrades/ArchonCrystalUpgradeWarframeShieldMaxMythic": loc("upgrade_WarframeShieldMax").split("|VAL|").join("225"),
659 "/Lotus/Upgrades/Invigorations/ArchonCrystalUpgrades/ArchonCrystalUpgradeWarframeStartingEnergy": loc("upgrade_WarframeStartingEnergy").split("|VAL|").join("30"),
660 "/Lotus/Upgrades/Invigorations/ArchonCrystalUpgrades/ArchonCrystalUpgradeWarframeStartingEnergyMythic": loc("upgrade_WarframeStartingEnergy").split("|VAL|").join("45"),
661 "/Lotus/Upgrades/Invigorations/ArchonCrystalUpgrades/ArchonCrystalUpgradeWarframeToxinDamage": loc("upgrade_WarframeToxinDamage").split("|VAL|").join("30"),
662 "/Lotus/Upgrades/Invigorations/ArchonCrystalUpgrades/ArchonCrystalUpgradeWarframeToxinDamageMythic": loc("upgrade_WarframeToxinDamage").split("|VAL|").join("45"),
663 "/Lotus/Upgrades/Invigorations/ArchonCrystalUpgrades/ArchonCrystalUpgradeWarframeToxinHeal": loc("upgrade_WarframeToxinHeal").split("|VAL|").join("2"),
664 "/Lotus/Upgrades/Invigorations/ArchonCrystalUpgrades/ArchonCrystalUpgradeWarframeToxinHealMythic": loc("upgrade_WarframeToxinHeal").split("|VAL|").join("3"),
665 "/Lotus/Upgrades/Invigorations/ArchonCrystalUpgrades/ArchonCrystalUpgradeWeaponCritBoostFromHeat": loc("upgrade_WeaponCritBoostFromHeat").split("|VAL1|").join("1").split("|VAL2|").join("50"),
666 "/Lotus/Upgrades/Invigorations/ArchonCrystalUpgrades/ArchonCrystalUpgradeWeaponCritBoostFromHeatMythic": loc("upgrade_WeaponCritBoostFromHeat").split("|VAL1|").join("1.5").split("|VAL2|").join("75"),
611 "/Lotus/Upgrades/Invigorations/ArchonCrystalUpgrades/ArchonCrystalUpgradeEquilibrium": loc("upgrade_Equilibrium").replaceAll("|VAL|", "20"),
612 "/Lotus/Upgrades/Invigorations/ArchonCrystalUpgrades/ArchonCrystalUpgradeEquilibriumMythic": loc("upgrade_Equilibrium").replaceAll("|VAL|", "30"),
613 "/Lotus/Upgrades/Invigorations/ArchonCrystalUpgrades/ArchonCrystalUpgradeMeleeCritDamage": loc("upgrade_MeleeCritDamage").replaceAll("|VAL|", "25"),
614 "/Lotus/Upgrades/Invigorations/ArchonCrystalUpgrades/ArchonCrystalUpgradeMeleeCritDamageMythic": loc("upgrade_MeleeCritDamage").replaceAll("|VAL|", "37.5"),
615 "/Lotus/Upgrades/Invigorations/ArchonCrystalUpgrades/ArchonCrystalUpgradePrimaryStatusChance": loc("upgrade_PrimaryStatusChance").replaceAll("|VAL|", "25"),
616 "/Lotus/Upgrades/Invigorations/ArchonCrystalUpgrades/ArchonCrystalUpgradePrimaryStatusChanceMythic": loc("upgrade_PrimaryStatusChance").replaceAll("|VAL|", "37.5"),
617 "/Lotus/Upgrades/Invigorations/ArchonCrystalUpgrades/ArchonCrystalUpgradeSecondaryCritChance": loc("upgrade_SecondaryCritChance").replaceAll("|VAL|", "25"),
618 "/Lotus/Upgrades/Invigorations/ArchonCrystalUpgrades/ArchonCrystalUpgradeSecondaryCritChanceMythic": loc("upgrade_SecondaryCritChance").replaceAll("|VAL|", "37.5"),
619 "/Lotus/Upgrades/Invigorations/ArchonCrystalUpgrades/ArchonCrystalUpgradeWarframeAbilityDuration": loc("upgrade_WarframeAbilityDuration").replaceAll("|VAL|", "10"),
620 "/Lotus/Upgrades/Invigorations/ArchonCrystalUpgrades/ArchonCrystalUpgradeWarframeAbilityDurationMythic": loc("upgrade_WarframeAbilityDuration").replaceAll("|VAL|", "15"),
621 "/Lotus/Upgrades/Invigorations/ArchonCrystalUpgrades/ArchonCrystalUpgradeWarframeAbilityStrength": loc("upgrade_WarframeAbilityStrength").replaceAll("|VAL|", "10"),
622 "/Lotus/Upgrades/Invigorations/ArchonCrystalUpgrades/ArchonCrystalUpgradeWarframeAbilityStrengthMythic": loc("upgrade_WarframeAbilityStrength").replaceAll("|VAL|", "15"),
623 "/Lotus/Upgrades/Invigorations/ArchonCrystalUpgrades/ArchonCrystalUpgradeWarframeArmourMax": loc("upgrade_WarframeArmorMax").replaceAll("|VAL|", "150"),
624 "/Lotus/Upgrades/Invigorations/ArchonCrystalUpgrades/ArchonCrystalUpgradeWarframeArmourMaxMythic": loc("upgrade_WarframeArmorMax").replaceAll("|VAL|", "225"),
625 "/Lotus/Upgrades/Invigorations/ArchonCrystalUpgrades/ArchonCrystalUpgradeWarframeBlastProc": loc("upgrade_WarframeBlastProc").replaceAll("|VAL|", "5"),
626 "/Lotus/Upgrades/Invigorations/ArchonCrystalUpgrades/ArchonCrystalUpgradeWarframeBlastProcMythic": loc("upgrade_WarframeBlastProc").replaceAll("|VAL|", "7.5"),
627 "/Lotus/Upgrades/Invigorations/ArchonCrystalUpgrades/ArchonCrystalUpgradeWarframeCastingSpeed": loc("upgrade_WarframeCastingSpeed").replaceAll("|VAL|", "25"),
628 "/Lotus/Upgrades/Invigorations/ArchonCrystalUpgrades/ArchonCrystalUpgradeWarframeCastingSpeedMythic": loc("upgrade_WarframeCastingSpeed").replaceAll("|VAL|", "37.5"),
629 "/Lotus/Upgrades/Invigorations/ArchonCrystalUpgrades/ArchonCrystalUpgradeWarframeCorrosiveDamageBoost": loc("upgrade_WarframeCorrosiveDamageBoost").replaceAll("|VAL|", "10"),
630 "/Lotus/Upgrades/Invigorations/ArchonCrystalUpgrades/ArchonCrystalUpgradeWarframeCorrosiveDamageBoostMythic": loc("upgrade_WarframeCorrosiveDamageBoost").replaceAll("|VAL|", "15"),
631 "/Lotus/Upgrades/Invigorations/ArchonCrystalUpgrades/ArchonCrystalUpgradeWarframeCorrosiveStack": loc("upgrade_WarframeCorrosiveStack").replaceAll("|VAL|", "2"),
632 "/Lotus/Upgrades/Invigorations/ArchonCrystalUpgrades/ArchonCrystalUpgradeWarframeCorrosiveStackMythic": loc("upgrade_WarframeCorrosiveStack").replaceAll("|VAL|", "3"),
633 "/Lotus/Upgrades/Invigorations/ArchonCrystalUpgrades/ArchonCrystalUpgradeWarframeCritDamageBoost": loc("upgrade_WarframeCritDamageBoost").replaceAll("|VAL|", "25"),
634 "/Lotus/Upgrades/Invigorations/ArchonCrystalUpgrades/ArchonCrystalUpgradeWarframeCritDamageBoostMythic": loc("upgrade_WarframeCritDamageBoost").replaceAll("|VAL|", "37"),
635 "/Lotus/Upgrades/Invigorations/ArchonCrystalUpgrades/ArchonCrystalUpgradeWarframeElectricDamage": loc("upgrade_WarframeElectricDamage").replaceAll("|VAL1|", "30").replaceAll("|VAL2|", "10"),
636 "/Lotus/Upgrades/Invigorations/ArchonCrystalUpgrades/ArchonCrystalUpgradeWarframeElectricDamageMythic": loc("upgrade_WarframeElectricDamage").replaceAll("|VAL1|", "45").replaceAll("|VAL2|", "15"),
637 "/Lotus/Upgrades/Invigorations/ArchonCrystalUpgrades/ArchonCrystalUpgradeWarframeElectricDamageBoost": loc("upgrade_WarframeElectricDamageBoost").replaceAll("|VAL|", "10"),
638 "/Lotus/Upgrades/Invigorations/ArchonCrystalUpgrades/ArchonCrystalUpgradeWarframeElectricDamageBoostMythic": loc("upgrade_WarframeElectricDamageBoost").replaceAll("|VAL|", "15"),
639 "/Lotus/Upgrades/Invigorations/ArchonCrystalUpgrades/ArchonCrystalUpgradeWarframeEnergyMax": loc("upgrade_WarframeEnergyMax").replaceAll("|VAL|", "50"),
640 "/Lotus/Upgrades/Invigorations/ArchonCrystalUpgrades/ArchonCrystalUpgradeWarframeEnergyMaxMythic": loc("upgrade_WarframeEnergyMax").replaceAll("|VAL|", "75"),
641 "/Lotus/Upgrades/Invigorations/ArchonCrystalUpgrades/ArchonCrystalUpgradeWarframeGlobeEffectEnergy": loc("upgrade_WarframeGlobeEffectEnergy").replaceAll("|VAL|", "50"),
642 "/Lotus/Upgrades/Invigorations/ArchonCrystalUpgrades/ArchonCrystalUpgradeWarframeGlobeEffectEnergyMythic": loc("upgrade_WarframeGlobeEffectEnergy").replaceAll("|VAL|", "75"),
643 "/Lotus/Upgrades/Invigorations/ArchonCrystalUpgrades/ArchonCrystalUpgradeWarframeGlobeEffectHealth": loc("upgrade_WarframeGlobeEffectHealth").replaceAll("|VAL|", "100"),
644 "/Lotus/Upgrades/Invigorations/ArchonCrystalUpgrades/ArchonCrystalUpgradeWarframeGlobeEffectHealthMythic": loc("upgrade_WarframeGlobeEffectHealth").replaceAll("|VAL|", "150"),
645 "/Lotus/Upgrades/Invigorations/ArchonCrystalUpgrades/ArchonCrystalUpgradeWarframeHealthMax": loc("upgrade_WarframeHealthMax").replaceAll("|VAL|", "150"),
646 "/Lotus/Upgrades/Invigorations/ArchonCrystalUpgrades/ArchonCrystalUpgradeWarframeHealthMaxMythic": loc("upgrade_WarframeHealthMax").replaceAll("|VAL|", "225"),
647 "/Lotus/Upgrades/Invigorations/ArchonCrystalUpgrades/ArchonCrystalUpgradeWarframeHPBoostFromImpact": loc("upgrade_WarframeHPBoostFromImpact").replaceAll("|VAL1|", "1").replaceAll("|VAL2|", "300"),
648 "/Lotus/Upgrades/Invigorations/ArchonCrystalUpgrades/ArchonCrystalUpgradeWarframeHPBoostFromImpactMythic": loc("upgrade_WarframeHPBoostFromImpact").replaceAll("|VAL1|", "2").replaceAll("|VAL2|", "450"),
649 "/Lotus/Upgrades/Invigorations/ArchonCrystalUpgrades/ArchonCrystalUpgradeWarframeParkourVelocity": loc("upgrade_WarframeParkourVelocity").replaceAll("|VAL|", "15"),
650 "/Lotus/Upgrades/Invigorations/ArchonCrystalUpgrades/ArchonCrystalUpgradeWarframeParkourVelocityMythic": loc("upgrade_WarframeParkourVelocity").replaceAll("|VAL|", "22.5"),
651 "/Lotus/Upgrades/Invigorations/ArchonCrystalUpgrades/ArchonCrystalUpgradeWarframeRadiationDamageBoost": loc("upgrade_WarframeRadiationDamageBoost").replaceAll("|VAL|", "10"),
652 "/Lotus/Upgrades/Invigorations/ArchonCrystalUpgrades/ArchonCrystalUpgradeWarframeRadiationDamageBoostMythic": loc("upgrade_WarframeRadiationDamageBoost").replaceAll("|VAL|", "15"),
653 "/Lotus/Upgrades/Invigorations/ArchonCrystalUpgrades/ArchonCrystalUpgradeWarframeRegen": loc("upgrade_WarframeHealthRegen").replaceAll("|VAL|", "5"),
654 "/Lotus/Upgrades/Invigorations/ArchonCrystalUpgrades/ArchonCrystalUpgradeWarframeRegenMythic": loc("upgrade_WarframeHealthRegen").replaceAll("|VAL|", "7.5"),
655 "/Lotus/Upgrades/Invigorations/ArchonCrystalUpgrades/ArchonCrystalUpgradeWarframeShieldMax": loc("upgrade_WarframeShieldMax").replaceAll("|VAL|", "150"),
656 "/Lotus/Upgrades/Invigorations/ArchonCrystalUpgrades/ArchonCrystalUpgradeWarframeShieldMaxMythic": loc("upgrade_WarframeShieldMax").replaceAll("|VAL|", "225"),
657 "/Lotus/Upgrades/Invigorations/ArchonCrystalUpgrades/ArchonCrystalUpgradeWarframeStartingEnergy": loc("upgrade_WarframeStartingEnergy").replaceAll("|VAL|", "30"),
658 "/Lotus/Upgrades/Invigorations/ArchonCrystalUpgrades/ArchonCrystalUpgradeWarframeStartingEnergyMythic": loc("upgrade_WarframeStartingEnergy").replaceAll("|VAL|", "45"),
659 "/Lotus/Upgrades/Invigorations/ArchonCrystalUpgrades/ArchonCrystalUpgradeWarframeToxinDamage": loc("upgrade_WarframeToxinDamage").replaceAll("|VAL|", "30"),
660 "/Lotus/Upgrades/Invigorations/ArchonCrystalUpgrades/ArchonCrystalUpgradeWarframeToxinDamageMythic": loc("upgrade_WarframeToxinDamage").replaceAll("|VAL|", "45"),
661 "/Lotus/Upgrades/Invigorations/ArchonCrystalUpgrades/ArchonCrystalUpgradeWarframeToxinHeal": loc("upgrade_WarframeToxinHeal").replaceAll("|VAL|", "2"),
662 "/Lotus/Upgrades/Invigorations/ArchonCrystalUpgrades/ArchonCrystalUpgradeWarframeToxinHealMythic": loc("upgrade_WarframeToxinHeal").replaceAll("|VAL|", "3"),
663 "/Lotus/Upgrades/Invigorations/ArchonCrystalUpgrades/ArchonCrystalUpgradeWeaponCritBoostFromHeat": loc("upgrade_WeaponCritBoostFromHeat").replaceAll("|VAL1|", "1").replaceAll("|VAL2|", "50"),
664 "/Lotus/Upgrades/Invigorations/ArchonCrystalUpgrades/ArchonCrystalUpgradeWeaponCritBoostFromHeatMythic": loc("upgrade_WeaponCritBoostFromHeat").replaceAll("|VAL1|", "1.5").replaceAll("|VAL2|", "75"),
667 665 "/Lotus/Upgrades/Mods/Warframe/AvatarAbilityRangeMod": loc("upgrade_AvatarAbilityRange"),
668 666 "/Lotus/Upgrades/Mods/Warframe/AvatarAbilityEfficiencyMod": loc("upgrade_AvatarAbilityEfficiency"),
669 667 "/Lotus/Upgrades/Mods/Warframe/AvatarEnergyRegenMod": loc("upgrade_AvatarEnergyRegen"),
@@ -1067,7 +1065,7 @@ function fetchItemList() {
1067 1065 }
1068 1066 }
1069 1067 } else if (item.uniqueName.includes("ColourPicker")) {
1070 item.name = loc("code_itemColorPalette").split("|ITEM|").join(item.name);
1068 item.name = loc("code_itemColorPalette").replaceAll("|ITEM|", item.name);
1071 1069 }
1072 1070 if (!item.alwaysAvailable) {
1073 1071 const option = document.createElement("option");
@@ -1082,9 +1080,10 @@ function fetchItemList() {
1082 1080 items.forEach(item => {
1083 1081 if (item.name == "") {
1084 1082 if (item.uniqueName.includes("/Beards/")) {
1085 item.name = loc("code_drifterBeardName")
1086 .split("|INDEX|")
1087 .join(beardNumber.toString().padStart(3, "0"));
1083 item.name = loc("code_drifterBeardName").replaceAll(
1084 "|INDEX|",
1085 beardNumber.toString().padStart(3, "0")
1086 );
1088 1087 beardNumber++;
1089 1088 } else {
1090 1089 item.name = item.uniqueName;
@@ -1143,7 +1142,7 @@ function fetchItemList() {
1143 1142 }
1144 1143 if ("badReason" in item) {
1145 1144 if (item.badReason == "starter") {
1146 item.name = loc("code_starter").split("|MOD|").join(item.name);
1145 item.name = loc("code_starter").replaceAll("|MOD|", item.name);
1147 1146 } else if (item.badReason != "notraw") {
1148 1147 item.name += " " + loc("code_badItem");
1149 1148 }
@@ -1300,9 +1299,10 @@ async function populateInventoryRoute() {
1300 1299 document.getElementById("miscItems-tab-content").classList.add("active", "show");
1301 1300
1302 1301 ["RegularCredits", "PremiumCredits", "FusionPoints", "PrimeTokens"].forEach(currency => {
1303 document.getElementById(currency + "-owned").textContent = loc("currency_owned")
1304 .split("|COUNT|")
1305 .join(data[currency].toLocaleString());
1302 document.getElementById(currency + "-owned").textContent = loc("currency_owned").replaceAll(
1303 "|COUNT|",
1304 data[currency].toLocaleString()
1305 );
1306 1306 });
1307 1307
1308 1308 [
@@ -2265,7 +2265,7 @@ function kickFromAlliance(guildId) {
2265 2265 function getKey(input) {
2266 2266 return document
2267 2267 .getElementById(input.getAttribute("list"))
2268 .querySelector("[value='" + input.value.split("'").join("\\'") + "']")
2268 .querySelector("[value='" + input.value.replaceAll("'", "\\'") + "']")
2269 2269 ?.getAttribute("data-key");
2270 2270 }
2271 2271
@@ -2503,7 +2503,7 @@ function addMissingEquipment(categories) {
2503 2503 }
2504 2504 });
2505 2505 });
2506 if (requests.length != 0 && window.confirm(loc("code_addItemsConfirm").split("|COUNT|").join(requests.length))) {
2506 if (requests.length != 0 && window.confirm(loc("code_addItemsConfirm").replaceAll("|COUNT|", requests.length))) {
2507 2507 return dispatchAddItemsRequestsBatch(requests);
2508 2508 }
2509 2509 }
@@ -2527,7 +2527,7 @@ function addMissingDangerRooms() {
2527 2527 });
2528 2528 if (requests.length == 0) {
2529 2529 toast(loc("code_nothingToDo"));
2530 } else if (window.confirm(loc("code_addItemsConfirm").split("|COUNT|").join(requests.length))) {
2530 } else if (window.confirm(loc("code_addItemsConfirm").replaceAll("|COUNT|", requests.length))) {
2531 2531 return dispatchAddItemsRequestsBatch(requests);
2532 2532 }
2533 2533 });
@@ -2694,7 +2694,7 @@ function addMissingVaultItems(vaultType) {
2694 2694
2695 2695 if (
2696 2696 requests.length != 0 &&
2697 window.confirm(loc("code_addVaultItemsConfirm").split("|COUNT|").join(requests.length))
2697 window.confirm(loc("code_addVaultItemsConfirm").replaceAll("|COUNT|", requests.length))
2698 2698 ) {
2699 2699 return dispatchAddVaultItemsBatch(requests, vaultType);
2700 2700 }
@@ -2727,7 +2727,7 @@ function addMissingTechProjects() {
2727 2727
2728 2728 if (
2729 2729 requests.length != 0 &&
2730 window.confirm(loc("code_addTechProjectsConfirm").split("|COUNT|").join(requests.length))
2730 window.confirm(loc("code_addTechProjectsConfirm").replaceAll("|COUNT|", requests.length))
2731 2731 ) {
2732 2732 return dispatchAddTechProjectsBatch(requests);
2733 2733 }
@@ -2746,7 +2746,7 @@ function bulkRemoveVaultItems(vaultType) {
2746 2746
2747 2747 if (
2748 2748 requests.length != 0 &&
2749 window.confirm(loc("code_removeVaultItemsConfirm").split("|COUNT|").join(requests.length))
2749 window.confirm(loc("code_removeVaultItemsConfirm").replaceAll("|COUNT|", requests.length))
2750 2750 ) {
2751 2751 return dispatchAddVaultItemsBatch(requests, vaultType);
2752 2752 }
@@ -2779,7 +2779,7 @@ function bulkRemoveTechProjects() {
2779 2779
2780 2780 if (
2781 2781 requests.length != 0 &&
2782 window.confirm(loc("code_removeTechProjectsConfirm").split("|COUNT|").join(requests.length))
2782 window.confirm(loc("code_removeTechProjectsConfirm").replaceAll("|COUNT|", requests.length))
2783 2783 ) {
2784 2784 return dispatchRemoveTechProjectsBatch(requests);
2785 2785 }
@@ -2872,7 +2872,7 @@ function addMissingEvolutionProgress() {
2872 2872 });
2873 2873 if (requests.length == 0) {
2874 2874 toast(loc("code_nothingToDo"));
2875 } else if (window.confirm(loc("code_addItemsConfirm").split("|COUNT|").join(requests.length))) {
2875 } else if (window.confirm(loc("code_addItemsConfirm").replaceAll("|COUNT|", requests.length))) {
2876 2876 setEvolutionProgress(requests);
2877 2877 }
2878 2878 }
@@ -3533,7 +3533,7 @@ function doUnlockAllFocusSchools() {
3533 3533 if (Object.keys(missingFocusUpgrades).length == 0) {
3534 3534 toast(loc("code_focusAllUnlocked"));
3535 3535 } else {
3536 toast(loc("code_focusUnlocked").split("|COUNT|").join(Object.keys(missingFocusUpgrades).length));
3536 toast(loc("code_focusUnlocked").replaceAll("|COUNT|", Object.keys(missingFocusUpgrades).length));
3537 3537 if (ws_is_open) {
3538 3538 window.ws.send(JSON.stringify({ sync_inventory: true }));
3539 3539 }
@@ -3698,7 +3698,7 @@ function doAddAllMods() {
3698 3698 modsAll = Array.from(modsAll);
3699 3699 if (
3700 3700 modsAll.length != 0 &&
3701 window.confirm(loc("code_addModsConfirm").split("|COUNT|").join(modsAll.length))
3701 window.confirm(loc("code_addModsConfirm").replaceAll("|COUNT|", modsAll.length))
3702 3702 ) {
3703 3703 $.post({
3704 3704 url: "/custom/addItems?" + window.authz,
@@ -4204,17 +4204,19 @@ single.getRoute("#guild-route").on("beforeload", function () {
4204 4204 $("#guild-route > .row").removeClass("d-none");
4205 4205
4206 4206 document.getElementById("guildView-title").textContent = guildData.Name;
4207 document.getElementById("guildView-tier").textContent = loc("guildView_tierDisplay")
4208 .split("|TIER|")
4209 .join(loc(`guildView_tier${guildData.Tier}`));
4210 document.getElementById("guildView-class").textContent = loc("guildView_classDisplay")
4211 .split("|CLASS|")
4212 .join(guildData.Class);
4207 document.getElementById("guildView-tier").textContent = loc("guildView_tierDisplay").replaceAll(
4208 "|TIER|",
4209 loc(`guildView_tier${guildData.Tier}`)
4210 );
4211 document.getElementById("guildView-class").textContent = loc("guildView_classDisplay").replaceAll(
4212 "|CLASS|",
4213 guildData.Class
4214 );
4213 4215
4214 4216 ["VaultRegularCredits", "VaultPremiumCredits"].forEach(currency => {
4215 document.getElementById(currency + "-owned").textContent = loc("guildView_currency_owned")
4216 .split("|COUNT|")
4217 .join((guildData[currency] ?? 0).toLocaleString());
4217 document.getElementById(currency + "-owned").textContent = loc(
4218 "guildView_currency_owned"
4219 ).replaceAll("|COUNT|", (guildData[currency] ?? 0).toLocaleString());
4218 4220 });
4219 4221
4220 4222 const userGuildMember = guildData.Members.find(m => m._id.$oid === window.accountId);
@@ -4582,14 +4584,16 @@ function doAddCurrency(currency) {
4582 4584 })
4583 4585 }).then(function (newValue) {
4584 4586 if (currency.startsWith("Vault")) {
4585 document.getElementById(currency + "-owned").textContent = loc("guildView_currency_owned")
4586 .split("|COUNT|")
4587 .join((newValue ?? 0).toLocaleString());
4587 document.getElementById(currency + "-owned").textContent = loc("guildView_currency_owned").replaceAll(
4588 "|COUNT|",
4589 (newValue ?? 0).toLocaleString()
4590 );
4588 4591 } else {
4589 4592 inventory_data[currency] = newValue;
4590 document.getElementById(currency + "-owned").textContent = loc("currency_owned")
4591 .split("|COUNT|")
4592 .join((newValue ?? 0).toLocaleString());
4593 document.getElementById(currency + "-owned").textContent = loc("currency_owned").replaceAll(
4594 "|COUNT|",
4595 (newValue ?? 0).toLocaleString()
4596 );
4593 4597 }
4594 4598 });
4595 4599 });
@@ -5639,7 +5643,7 @@ function handleAbilityOverride(event, configIndex) {
5639 5643 function removeItems(category) {
5640 5644 revalidateAuthz().then(() => {
5641 5645 const count = document.getElementById(category + "-list").getElementsByTagName("tr").length;
5642 let message = loc("code_bulkRemoveConfirm").split("|COUNT|").join(count);
5646 let message = loc("code_bulkRemoveConfirm").replaceAll("|COUNT|", count);
5643 5647 if (category === "Suits") message += "\n" + loc("code_bulkRemoveNote");
5644 5648 if (count != 0 && window.confirm(message)) {
5645 5649 $.get("/custom/removeItems?" + window.authz + "&category=" + category).done(function () {