困っていたこと
テスト用のDiscordサーバーで使えていたスラッシュコマンドが
本番用のサーバーでは表示されなかった。
確認したこと1
[OAuth]-[SCOPES]の"applications.commands"にチェックが入っているか
確認したこと2
index.js
// コマンド登録
client.on('ready', async () => {
const data = []
for (const commandName in commands) {
data.push(commands[commandName].data)
}
await client.application.commands.set(data, process.env.SERVER_ID);
})
コマンド登録時にサーバーIDを指定していました。
そのため、特定のサーバーでしかコマンドが登録されていなかったのが原因でした。
以下のようにサーバーIDを指定しないとグローバルコマンドとして登録されます。
index.js
client.on('ready', async () => {
・・・・
// コマンド登録
await client.application.commands.set(data);
})