diff --git a/src/utils/Prod-commands.ts b/src/utils/Prod-commands.ts index 79e1263..802cbc7 100644 --- a/src/utils/Prod-commands.ts +++ b/src/utils/Prod-commands.ts @@ -6,6 +6,18 @@ import { Logger } from "./Logger"; async function main() { const rest = new REST({ version: "10" }).setToken(Config.token); const body = Array.from(handler.commands.values().filter(cmd => cmd.visible).map(cmd => cmd.metaData)); + + // 개발 모드에서는 Config.guildId 길드에 따로 등록된 슬래시가 남아 + // 전역 명령어와 디스코드에 두 번 보이는 경우가 생긴다. + // 전역 등록 전에 해당 길드의 명령어를 전부 비워둔다. + if (Config.dev) { + await rest.put( + Routes.applicationGuildCommands(Config.appId, Config.guildId), + { body: [] }, + ); + Logger.ready(`개발 길드(${Config.guildId}) 슬래시 전체 삭제 완료`); + } + // 전역 등록 (권장: 배포 파이프라인에서만 실행) await rest.put(Routes.applicationCommands(Config.appId), { body }); Logger.ready(`전역 슬래시 등록 요청 완료: ${body.length}개`);