From 59121afa2b5ddf9fc412e665da97784a7b92de69 Mon Sep 17 00:00:00 2001 From: Anhgelus Morhtuuzh Date: Thu, 5 Jun 2025 15:20:02 +0200 Subject: [PATCH] fix(xp): not supporting multi server for vocal --- events.go | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/events.go b/events.go index fc60ba0..3e55e4b 100644 --- a/events.go +++ b/events.go @@ -64,16 +64,20 @@ func OnVoiceUpdate(s *discordgo.Session, e *discordgo.VoiceStateUpdate) { } } +func genMapKey(guildID string, userID string) string { + return fmt.Sprintf("%s:%s", guildID, userID) +} + func onConnection(_ *discordgo.Session, e *discordgo.VoiceStateUpdate) { utils.SendDebug("User connected", "username", e.Member.DisplayName()) - connectedSince[e.UserID] = time.Now().Unix() + connectedSince[genMapKey(e.GuildID, e.UserID)] = time.Now().Unix() } func onDisconnect(s *discordgo.Session, e *discordgo.VoiceStateUpdate) { now := time.Now().Unix() c := user.GetCopaing(e.UserID, e.GuildID) // check the validity of user - con, ok := connectedSince[e.UserID] + con, ok := connectedSince[genMapKey(e.GuildID, e.UserID)] if !ok || con == NotConnected { utils.SendWarn(fmt.Sprintf( "User %s diconnect from a vocal but was registered as not connected", e.Member.DisplayName(), @@ -82,7 +86,7 @@ func onDisconnect(s *discordgo.Session, e *discordgo.VoiceStateUpdate) { } timeInVocal := now - con utils.SendDebug("User disconnected", "username", e.Member.DisplayName(), "time in vocal", timeInVocal) - connectedSince[e.UserID] = NotConnected + connectedSince[genMapKey(e.GuildID, e.UserID)] = NotConnected // add exp if timeInVocal < 0 { utils.SendAlert(