1
3

Discord.jsで、特定の権限を持っている人にしか表示しないコマンドの実装方法

Last updated at Posted at 2024-09-11

こんにちは、りょうです。
さっき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);
 
    // この後はいつも通り

このように設定しておくと指定した権限をもったユーザーにしかコマンドが表示されなくなります。

image.png

各部解説

const { SlashCommandBuilder, PermissionFlagsBits } = require('discord.js');
// コマンド名とかの設定はふだんどおり

このコマンドの実装には .setDefauldMemberPermissions を使用します。
そのため、PermissionsFlagsBitsをインポートするのを忘れないようにしてください。

	.setDefaultMemberPermissions(PermissionFlagsBits.BanMembers);

これで実行させたい権限を設定します。(この場合はBAN権限)
また、複数の権限を設定したい場合はOR演算子を使用して設定します

	.setDefaultMemberPermissions(PermissionFlagsBits.BanMembers | PermissionFlagsBits.KickMembers
);

こうすることでBAN権限もしくはキック権限を持っている場合に実行できるようになります。

こっちにも別で書いてるんでぜひ

まとめ

今回は権限を持ったユーザーにのみ表示、実行ができるようにするための手段の解説でした。
これを実装することで権限がないユーザーに使用されることを防げるようになります。

わからないことあったら書いてくれれば答えていきます。

Discordにいる荒らしの情報や対策方法の共有をしている自鯖です
ぜひ参加お願いします↓↓↓↓

1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3