Skip to content

Commit

Permalink
別のチャンネルでユーザーが抜けた場合に自動で抜けてしまう問題を修正
Browse files Browse the repository at this point in the history
  • Loading branch information
MORIMORI0317 committed Jul 20, 2024
1 parent 026cfb5 commit 2827cac
Showing 1 changed file with 12 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
import net.dv8tion.jda.api.events.interaction.command.SlashCommandInteractionEvent;
import net.dv8tion.jda.api.events.message.MessageReceivedEvent;
import net.dv8tion.jda.api.hooks.ListenerAdapter;
import net.dv8tion.jda.api.managers.AudioManager;
import org.jetbrains.annotations.NotNull;

/**
Expand Down Expand Up @@ -68,10 +69,17 @@ public void onGuildVoiceUpdate(@NotNull GuildVoiceUpdateEvent event) {
getTTSManager().connect(event.getGuild(), join);
}
} else if (left != null) {
// 誰かが抜けて、BotだけになったらVCから切断
boolean isAlone = left.getMembers().stream().allMatch(n -> n.getUser().isBot());
if (isAlone) {
left.getGuild().getAudioManager().closeAudioConnection();
AudioManager audioManager = left.getGuild().getAudioManager();
AudioChannelUnion selfAudioChannelUnion = audioManager.getConnectedChannel();

// 現在接続中のチャンネルと退出したチャンネルが同じ場合
if (selfAudioChannelUnion != null && left.getIdLong() == selfAudioChannelUnion.getIdLong()) {

// 誰かが抜けて、BotだけになったらVCから切断
boolean isAlone = left.getMembers().stream().allMatch(n -> n.getUser().isBot());
if (isAlone) {
audioManager.closeAudioConnection();
}
}
}

Expand Down

0 comments on commit 2827cac

Please sign in to comment.