権限を持つ人だけが実行できるBANコマンドのサンプル
実際のdiscordの挙動としては自分より上位の役職を持つ人はBANできないので以下のサンプルはまだ不十分tig.icon
code: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'を使用する場合
code: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しました);
}
});
関連