diff options
| author | Federico fuji97 Rapetti <[email protected]> | 2021-12-26 04:45:50 +0100 |
|---|---|---|
| committer | Federico fuji97 Rapetti <[email protected]> | 2021-12-26 04:45:50 +0100 |
| commit | 827ff350ee5df918bc4ecb2e19b64eccc94a46c7 (patch) | |
| tree | a8356fcb35a4f6416d2dc8682608563e9d1fc35d /src/bot.ts | |
| parent | c20e3b1760c0ec7d2422072930e0a13236032928 (diff) | |
| download | muse-827ff350ee5df918bc4ecb2e19b64eccc94a46c7.tar.xz muse-827ff350ee5df918bc4ecb2e19b64eccc94a46c7.zip | |
Improve commands registration
Diffstat (limited to 'src/bot.ts')
| -rw-r--r-- | src/bot.ts | 25 |
1 files changed, 14 insertions, 11 deletions
@@ -109,10 +109,22 @@ export default class { const spinner = ora('📡 connecting to Discord...').start(); - this.client.once('ready', () => { + this.client.once('ready', async () => { debug(generateDependencyReport()); - spinner.succeed(`Ready! Invite the bot with https://discordapp.com/oauth2/authorize?client_id=${this.client.user?.id ?? ''}&scope=bot&permissions=2184236096`); + spinner.text = '📡 Updating commands in all guilds...'; + + // Update commands + const rest = new REST({version: '9'}).setToken(this.token); + + this.client.guilds.cache.each(async guild => { + await rest.put( + Routes.applicationGuildCommands(this.client.user!.id, guild.id), + {body: this.commandsByName.map(command => command.slashCommand ? command.slashCommand.toJSON() : null)}, + ); + }); + + spinner.succeed(`Ready! Invite the bot with https://discordapp.com/oauth2/authorize?client_id=${this.client.user?.id ?? ''}&scope=applications.commands%20bot&permissions=2184236096`); }); this.client.on('error', console.error); @@ -121,15 +133,6 @@ export default class { this.client.on('guildCreate', handleGuildCreate); this.client.on('voiceStateUpdate', handleVoiceStateUpdate); - // Update commands await this.client.login(this.token); - - const rest = new REST({version: '9'}).setToken(this.token); - - await rest.put( - Routes.applicationGuildCommands(this.client.user!.id, this.client.guilds.cache.first()!.id), - // TODO: remove - {body: this.commandsByName.map(command => command.slashCommand ? command.slashCommand.toJSON() : null)}, - ); } } |
