aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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(