From 733b30c295820441d4ab318a9aa4ce2d13d53213 Mon Sep 17 00:00:00 2001 From: Ali Hammoud Date: Tue, 25 Nov 2025 10:59:06 +0200 Subject: [PATCH 1/3] =?UTF-8?q?=F0=9F=8C=9F=20feat:=20add=20CLEAR=5FGLOBAL?= =?UTF-8?q?=5FCOMMANDS=20env=20variable?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env.production | 2 ++ src/env.ts | 1 + 2 files changed, 3 insertions(+) diff --git a/.env.production b/.env.production index 6631190..1d93141 100644 --- a/.env.production +++ b/.env.production @@ -18,4 +18,6 @@ MODERATORS_ROLE_IDS=849481536654803004 GUIDES_TRACKER_PATH=/app/data/guides-tracker.json ADVENT_OF_CODE_TRACKER_PATH=/app/data/advent-of-code-tracker.json +CLEAR_GLOBAL_COMMANDS=true + # Note: DISCORD_TOKEN & CLIENT_ID should be in .env.local (not committed) diff --git a/src/env.ts b/src/env.ts index 12a93cd..2cdabeb 100644 --- a/src/env.ts +++ b/src/env.ts @@ -22,6 +22,7 @@ export const config = { }, serverId: requireEnv('SERVER_ID'), fetchAndSyncMessages: true, + clearGlobalCommands: optionalEnv('CLEAR_GLOBAL_COMMANDS') === 'true', guidesTrackerPath: optionalEnv('GUIDES_TRACKER_PATH'), adventOfCodeTrackerPath: requireEnv('ADVENT_OF_CODE_TRACKER_PATH'), roleIds: { From 4e43ee9863211834b935e1b0e113adb878493b40 Mon Sep 17 00:00:00 2001 From: Ali Hammoud Date: Tue, 25 Nov 2025 11:00:18 +0200 Subject: [PATCH 2/3] =?UTF-8?q?=F0=9F=8C=9F=20feat:=20remove=20command=20r?= =?UTF-8?q?egistration=20from=20main=20bot=20entry=20point?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/index.ts | 3 --- src/util/commands.ts | 17 ----------------- 2 files changed, 20 deletions(-) diff --git a/src/index.ts b/src/index.ts index 69bf3eb..d74f89c 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,8 +1,6 @@ import { ActivityType, Client, GatewayIntentBits } from 'discord.js'; -import { commands } from './commands/index.js'; import { config } from './env.js'; import { events } from './events/index.js'; -import { registerCommands } from './util/commands.js'; import { registerEvents } from './util/events.js'; // Create a new client instance @@ -27,6 +25,5 @@ const client = new Client({ // Register events and commands await registerEvents(client, events); -await registerCommands(client, commands); void client.login(config.discord.token); diff --git a/src/util/commands.ts b/src/util/commands.ts index 7e138d2..7fa14de 100644 --- a/src/util/commands.ts +++ b/src/util/commands.ts @@ -9,23 +9,6 @@ export const createCommands = (commands: Array): Command[] => { return commands.map(createCommand); }; -export const registerCommands = async ( - client: Client, - commands: Map -): Promise => { - const commandArray = Array.from(commands.values()).map((cmd) => cmd.data); - - try { - await client.application?.commands.set(commandArray); - commandArray.forEach((cmd) => { - console.log(`Registered command: ${cmd.type}, ${cmd.name}`); - }); - console.log(`Registered ${commandArray.length} commands globally.`); - } catch (error) { - console.error('Error registering commands:', error); - } -}; - export const buildCommandString = (interaction: ChatInputCommandInteraction): string => { const commandName = interaction.commandName; return `/${commandName} ${interaction.options.data.map((option) => `${option.name}:${option.value}`).join(' ')}`; From ff3185b6a7cba7c08757c16f3b7ecb38614df100 Mon Sep 17 00:00:00 2001 From: Ali Hammoud Date: Tue, 25 Nov 2025 11:00:51 +0200 Subject: [PATCH 3/3] =?UTF-8?q?=F0=9F=8C=9F=20feat:=20add=20global=20comma?= =?UTF-8?q?nd=20clearing=20functionality=20in=20deployCommands?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/util/deploy.ts | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/util/deploy.ts b/src/util/deploy.ts index 6216dbe..9da06a4 100644 --- a/src/util/deploy.ts +++ b/src/util/deploy.ts @@ -7,6 +7,12 @@ export async function deployCommands(): Promise