generated at
権限を持つ人だけが実行できるBANコマンドのサンプル
指定した権限を持つ人だけが実行できるBANコマンドのサンプル
実際のdiscordの挙動としては自分より上位の役職を持つ人はBANできないので以下のサンプルはまだ不十分tig
自身より高い役職を持ったメンバーに対して一部の操作ができないはずだがbotを経由することでできてしまっている

js
client.on('messageCreate', async message => { if (message.content.startsWith('!ban') && message.guild) { if (!message.member.permissions.has("BAN_MEMBERS")) return message.channel.send('あなたにはユーザーをBANする権限がありません'); if (message.mentions.members.size !== 1) return message.channel.send('BANするメンバーを1人指定してください'); const member = message.mentions.members.first(); if (!member.bannable) return message.channel.send('botがこのユーザーをBANすることができません'); await member.ban(); await message.channel.send(`${member.user.tag} をBANしました`); } });

'PermissionsBitField' を使用する場合
js
client.on('messageCreate', async message => { if (message.content.startsWith('!ban') && message.guild) { if (!message.member.permissions.has(PermissionsBitField.Flags.BanMembers)) { return message.channel.send('あなたにはユーザーをBANする権限がありません'); } if (message.mentions.members.size !== 1) { return message.channel.send('BANするメンバーを1人指定してください'); } const member = message.mentions.members.first(); if (!member.bannable) return message.channel.send('botがこのユーザーをBANすることができません'); await member.ban(); await message.channel.send(`${member.user.tag} をBANしました`); } });

関連