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: { 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(' ')}`; 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