aboutsummaryrefslogtreecommitdiff
path: root/events.go
diff options
context:
space:
mode:
authorAnhgelus Morhtuuzh <anhgelus@anhgelus.world>2025-06-05 15:20:02 +0200
committerAnhgelus Morhtuuzh <anhgelus@anhgelus.world>2025-06-05 15:20:02 +0200
commit59121afa2b5ddf9fc412e665da97784a7b92de69 (patch)
tree535597b016d680943b0a25d9fefa14b5365d918a /events.go
parentdefc781f9a66b0fe25a79356ac5ac0c2143003f9 (diff)
fix(xp): not supporting multi server for vocal
Diffstat (limited to 'events.go')
-rw-r--r--events.go10
1 files 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(