fix(ClientVoiceManager): voice state update handling

#1520
This commit is contained in:
Elysia
2025-03-10 11:40:46 +07:00
parent 756ec458bc
commit 00f2973e83

View File

@@ -60,6 +60,13 @@ class ClientVoiceManager {
onVoiceStateUpdate(payload) {
const { guild_id, session_id, channel_id } = payload;
// @discordjs/voice
if (payload.guild_id && payload.session_id && payload.user_id === this.client.user?.id) {
this.adapters.get(payload.guild_id)?.onVoiceStateUpdate(payload);
} else if (payload.channel_id && payload.session_id && payload.user_id === this.client.user?.id) {
this.adapters.get(payload.channel_id)?.onVoiceStateUpdate(payload);
}
// Main lib
const connection = this.connection;
this.client.emit('debug', `[VOICE] connection? ${!!connection}, ${guild_id} ${session_id} ${channel_id}`);
if (!connection) return;
@@ -76,12 +83,6 @@ class ClientVoiceManager {
this.client.emit('debug', `[VOICE] disconnecting from guild ${guild_id} as channel ${channel_id} is uncached`);
connection.disconnect();
}
// Djs Voice
if (payload.guild_id && payload.session_id && payload.user_id === this.client.user?.id) {
this.adapters.get(payload.guild_id)?.onVoiceStateUpdate(payload);
} else if (payload.channel_id && payload.session_id && payload.user_id === this.client.user?.id) {
this.adapters.get(payload.channel_id)?.onVoiceStateUpdate(payload);
}
}
/**