diff --git a/src/main/java/de/presti/ree6/audio/AudioPlayerReceiveHandler.java b/src/main/java/de/presti/ree6/audio/AudioPlayerReceiveHandler.java index 7d12138f9..94a8509d9 100644 --- a/src/main/java/de/presti/ree6/audio/AudioPlayerReceiveHandler.java +++ b/src/main/java/de/presti/ree6/audio/AudioPlayerReceiveHandler.java @@ -135,13 +135,6 @@ public void handleCombinedAudio(@NotNull CombinedAudio combinedAudio) { return; } - if (combinedAudio.getUsers().isEmpty()) { - if (audioChannelUnion.getMembers().size() == 1) { - endReceiving(); - } - return; - } - if (audioChannelUnion.getMembers().size() == 1) { endReceiving(); return; @@ -231,6 +224,7 @@ public void endReceiving() { } audioChannelUnion.getGuild().getAudioManager().closeAudioConnection(); + audioChannelUnion.getGuild().getAudioManager().setReceivingHandler(null); queue.clear(); } } diff --git a/src/main/java/de/presti/ree6/commands/impl/fun/Record.java b/src/main/java/de/presti/ree6/commands/impl/fun/Record.java index 774ade8ce..230ec8c86 100644 --- a/src/main/java/de/presti/ree6/commands/impl/fun/Record.java +++ b/src/main/java/de/presti/ree6/commands/impl/fun/Record.java @@ -69,7 +69,10 @@ public void connectAndRecord(CommandEvent commandEvent) { audioManager.setReceivingHandler(handler); - commandEvent.getGuild().getSelfMember().deafen(false).queue(); + if (commandEvent.getGuild().getSelfMember().getVoiceState() != null && + commandEvent.getGuild().getSelfMember().getVoiceState().inAudioChannel()) { + commandEvent.getGuild().getSelfMember().deafen(false).queue(); + } commandEvent.reply(commandEvent.getResource("message.record.recordingStarted")); } else { diff --git a/src/main/java/de/presti/ree6/events/OtherEvents.java b/src/main/java/de/presti/ree6/events/OtherEvents.java index 3b344f5b9..762dddf82 100644 --- a/src/main/java/de/presti/ree6/events/OtherEvents.java +++ b/src/main/java/de/presti/ree6/events/OtherEvents.java @@ -265,6 +265,12 @@ public void onGuildMemberRemove(@NotNull GuildMemberRemoveEvent event) { @Override public void onGuildVoiceUpdate(@Nonnull GuildVoiceUpdateEvent event) { if (event.getChannelLeft() == null) { + if (event.getEntity().getIdLong() == event.getGuild().getSelfMember().getIdLong()) { + if (event.getGuild().getAudioManager().getReceivingHandler() != null) { + event.getEntity().deafen(false).queue(); + } + } + if (!ArrayUtil.voiceJoined.containsKey(event.getMember()) && !event.getEntity().getUser().isBot()) { GuildVoiceState voiceState = event.getVoiceState();