From 4e32d164ab94981ecb0f36fd4ab4013e93c4e42e Mon Sep 17 00:00:00 2001 From: freya02 <41875020+freya022@users.noreply.github.com> Date: Thu, 14 Nov 2024 15:52:48 +0100 Subject: [PATCH] Prevent firing voice state update events if member is not cached --- .../dv8tion/jda/internal/handle/VoiceStateUpdateHandler.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main/java/net/dv8tion/jda/internal/handle/VoiceStateUpdateHandler.java b/src/main/java/net/dv8tion/jda/internal/handle/VoiceStateUpdateHandler.java index a5b114bc0a..b3bf1e2258 100644 --- a/src/main/java/net/dv8tion/jda/internal/handle/VoiceStateUpdateHandler.java +++ b/src/main/java/net/dv8tion/jda/internal/handle/VoiceStateUpdateHandler.java @@ -103,7 +103,9 @@ private void handleGuildVoiceState(DataObject content) DataObject memberJson = content.getObject("member"); MemberImpl member = getJDA().getEntityBuilder().createMember((GuildImpl) guild, memberJson); - if (member == null) return; + // Only fire the events below if the member is cached + // If the member isn't cached, we would be firing every event that doesn't correspond to the default voice state + if (guild.getMemberById(member.getIdLong()) == null) return; GuildVoiceStateImpl vState = (GuildVoiceStateImpl) member.getVoiceState(); if (vState == null)