こんにちは、りょうです。
さっきBOTのアプデ中に調べてたら出てきたので共有。
実装
ban.js
const { SlashCommandBuilder, PermissionFlagsBits } = require('discord.js');
const data = new SlashCommandBuilder()
.setName('ban')
.setDescription('ユーザーのBAN')
.addUserOption(option =>
option
.setName('target')
.setDescription('BANするユーザー')
.setRequired(true))
.setDefaultMemberPermissions(PermissionFlagsBits.BanMembers);
// この後はいつも通り
このように設定しておくと指定した権限をもったユーザーにしかコマンドが表示されなくなります。
各部解説
const { SlashCommandBuilder, PermissionFlagsBits } = require('discord.js');
// コマンド名とかの設定はふだんどおり
このコマンドの実装には .setDefauldMemberPermissions
を使用します。
そのため、PermissionsFlagsBits
をインポートするのを忘れないようにしてください。
.setDefaultMemberPermissions(PermissionFlagsBits.BanMembers);
これで実行させたい権限を設定します。(この場合はBAN権限)
また、複数の権限を設定したい場合はOR演算子を使用して設定します
.setDefaultMemberPermissions(PermissionFlagsBits.BanMembers | PermissionFlagsBits.KickMembers
);
こうすることでBAN権限もしくはキック権限を持っている場合に実行できるようになります。
こっちにも別で書いてるんでぜひ
まとめ
今回は権限を持ったユーザーにのみ表示、実行ができるようにするための手段の解説でした。
これを実装することで権限がないユーザーに使用されることを防げるようになります。
わからないことあったら書いてくれれば答えていきます。
Discordにいる荒らしの情報や対策方法の共有をしている自鯖です
ぜひ参加お願いします↓↓↓↓