diff --git a/.oxlintrc.json b/.oxlintrc.json index dc2f8ee4..937e0fa9 100644 --- a/.oxlintrc.json +++ b/.oxlintrc.json @@ -19,6 +19,7 @@ "varsIgnorePattern": "^_", "ignoreRestSiblings": true } - ] + ], + "prefer-const": "error" } } diff --git a/src/cluster/node.ts b/src/cluster/node.ts index 31462055..753feb75 100644 --- a/src/cluster/node.ts +++ b/src/cluster/node.ts @@ -24,25 +24,10 @@ const readyHandlers = new Map void>(); let serverCount = 0; let shardData: ShardData[] = []; -let shardArrays: number[][]; let clusterCount = 0; let responseCount = 0; let totalMem = 0; -cluster.on("exit", async (worker, code, signal) => { - const id = processes.findIndex((v) => worker.id === v.id); - if (id === -1) { - logger.error(`Unknown process with ID ${worker.id} exited, will not restart`); - return; - } - logger.error(`Process ${id + 1} exited with code ${signal || code}, attempting to restart...`); - const newWorker = await awaitStart(id + 1, shardArrays[id]); - processes[id] = newWorker; - readyHandlers.get(id)?.(); - readyHandlers.delete(id); - logger.info(`Started esmBot process ${id + 1}.`); -}); - function updateStats(memOnly: boolean = false): Promise { return new Promise((resolve, reject) => { if (!memOnly) { @@ -216,7 +201,21 @@ const shardArray = []; for (let i = 0; i < shards; i++) { shardArray.push(i); } -shardArrays = calcShards(shardArray, procAmount); +const shardArrays = calcShards(shardArray, procAmount); + +cluster.on("exit", async (worker, code, signal) => { + const id = processes.findIndex((v) => worker.id === v.id); + if (id === -1) { + logger.error(`Unknown process with ID ${worker.id} exited, will not restart`); + return; + } + logger.error(`Process ${id + 1} exited with code ${signal || code}, attempting to restart...`); + const newWorker = await awaitStart(id + 1, shardArrays[id]); + processes[id] = newWorker; + readyHandlers.get(id)?.(); + readyHandlers.delete(id); + logger.info(`Started esmBot process ${id + 1}.`); +}); cluster.setupPrimary({ exec: "dist/app.js", diff --git a/src/events/interactionCreate.ts b/src/events/interactionCreate.ts index ba18a908..7d835744 100644 --- a/src/events/interactionCreate.ts +++ b/src/events/interactionCreate.ts @@ -41,7 +41,7 @@ export default async ({ client, database }: EventParams, interaction: AnyInterac const cmdBase = commands.get(cmdName) ?? messageCommands.get(cmdName) ?? userCommands.get(cmdName); if (!cmdBase) return; - let cmd = cmdBase as typeof Command; + const cmd = cmdBase as typeof Command; if (!(cmd.prototype instanceof Command)) return; try { diff --git a/src/events/messageCreate.ts b/src/events/messageCreate.ts index 22883ae1..226e30bd 100644 --- a/src/events/messageCreate.ts +++ b/src/events/messageCreate.ts @@ -82,16 +82,15 @@ export default async ({ client, database }: EventParams, message: Message) => { const preArgs = text.split(/\s+/g); const shifted = preArgs.shift(); if (!shifted) return; - const cmdBaseName = shifted.toLowerCase(); - const aliased = aliases.get(cmdBaseName); + const command = shifted.toLowerCase(); + const aliased = aliases.get(command); - let cmdName = aliased ?? cmdBaseName; + const cmdName = aliased ?? command; // check if command exists and if it's enabled const cmdBase = commands.get(cmdName); if (!cmdBase) return; - let command = cmdBaseName; let cmd = cmdBase as typeof Command; if (!(cmd.prototype instanceof Command)) return;