Discord JDAを使用して特定のチャンネルから@everyoneを削除する方法


方法1: チャンネルの権限を変更する方法

// ギルド(サーバー)のIDとチャンネルのIDを指定
long guildId = 1234567890;
long channelId = 9876543210;
// JDAのインスタンスを取得
JDA jda = JDABuilder.createDefault("YOUR_BOT_TOKEN").build();
// ギルドとチャンネルのオブジェクトを取得
Guild guild = jda.getGuildById(guildId);
TextChannel channel = guild.getTextChannelById(channelId);
// チャンネルの権限を取得し、@everyoneの権限を削除
Member everyoneRole = guild.getPublicRole().getMember();
channel.getPermissionOverride(everyoneRole).getManager().clear(Permission.MESSAGE_WRITE).queue();

方法2: チャンネルの権限をアップデートする方法

// ギルド(サーバー)のIDとチャンネルのIDを指定
long guildId = 1234567890;
long channelId = 9876543210;
// JDAのインスタンスを取得
JDA jda = JDABuilder.createDefault("YOUR_BOT_TOKEN").build();
// ギルドとチャンネルのオブジェクトを取得
Guild guild = jda.getGuildById(guildId);
TextChannel channel = guild.getTextChannelById(channelId);
// チャンネルの権限をアップデートし、@everyoneの権限を削除
channel.upsertPermissionOverride(guild.getPublicRole())
       .deny(Permission.MESSAGE_WRITE)
       .queue();

上記のコード例では、JDAのインスタンスを作成し、ギルドとチャンネルのオブジェクトを取得しています。その後、@everyoneの権限を削除するためにチャンネルの権限を変更またはアップデートしています。

これらの方法を使用すると、特定のチャンネルから@everyoneを削除することができます。必要に応じて、さまざまな権限を制御することも可能です。