diff --git a/src/slash-command/ranking.js b/src/slash-command/ranking.js index 2cbe009..f7511a7 100644 --- a/src/slash-command/ranking.js +++ b/src/slash-command/ranking.js @@ -15,7 +15,14 @@ export default { if (!interaction.inGuild()) { throw new Error('サーバー内で実行してください。rankingコマンドはDMやグループDMでは実行できません。'); } - throw new Error('不明なエラー:サーバーが見つかりませんでした。スクショしてXで連絡してもらえたらありがたいです!'); + // https://github.com/discordjs/discord.js/blob/main/packages/discord.js/src/structures/BaseInteraction.js#L180-L182 + // https://github.com/moeyashi/discord-mk8d-nita-record/issues/78 + // https://scrapbox.io/discordjs-japan/%E3%83%9E%E3%83%8D%E3%83%BC%E3%82%B8%E3%83%A3%E3%83%BC%E3%81%8B%E3%82%89%E3%83%87%E3%83%BC%E3%82%BF%E3%82%92%E5%8F%96%E5%BE%97%E3%81%99%E3%82%8B + // interaction.guildはキャッシュから取得しているしているため、interaction.guildがfalsyでinteraction.guildIdがtruthyの場合はfetchして取得する + await interaction.client.guilds.fetch(interaction.guildId); + if (!interaction.guild) { + throw new Error('不明なエラー:サーバーが見つかりませんでした。スクショして連絡してもらえたらありがたいです!'); + } } const trackQuery = interaction.options.getString('track');