From 883b4b61c4e5f792f0f2770e6a864eabf720970f Mon Sep 17 00:00:00 2001 From: Suraj Kumar Date: Mon, 26 Jan 2026 13:42:36 +0000 Subject: [PATCH] fix: DynamicVoiceChat deleting channel without checking if members are in there --- .../features/voicechat/DynamicVoiceChat.java | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/application/src/main/java/org/togetherjava/tjbot/features/voicechat/DynamicVoiceChat.java b/application/src/main/java/org/togetherjava/tjbot/features/voicechat/DynamicVoiceChat.java index 98098896b8..6adcc7b8d7 100644 --- a/application/src/main/java/org/togetherjava/tjbot/features/voicechat/DynamicVoiceChat.java +++ b/application/src/main/java/org/togetherjava/tjbot/features/voicechat/DynamicVoiceChat.java @@ -81,6 +81,12 @@ private void handleVoiceChannelLeave(AudioChannelUnion channelLeft) { if (!eventHappenOnDynamicRootChannel(channelLeft)) { logger.debug("Event happened on left channel {}", channelLeft); + if (hasMembers(channelLeft)) { + logger.debug("Voice channel {} not empty, so not doing anything.", + channelLeft.getName()); + return; + } + channelLeft.asVoiceChannel().getHistory().retrievePast(2).queue(messages -> { if (messages.size() > 1) { archiveDynamicVoiceChannel(channelLeft); @@ -124,16 +130,13 @@ private void moveMember(Guild guild, Member member, AudioChannel channel) { member.getNickname(), channel.getName(), error)); } + private boolean hasMembers(AudioChannelUnion channel) { + return !channel.getMembers().isEmpty(); + } + private void archiveDynamicVoiceChannel(AudioChannelUnion channel) { - int memberCount = channel.getMembers().size(); String channelName = channel.getName(); - if (memberCount > 0) { - logger.debug("Voice channel {} not empty ({} members), so not removing.", channelName, - memberCount); - return; - } - Optional archiveCategoryOptional = channel.getGuild() .getCategoryCache() .stream()