fix(vocal): detection of connection and disconnection not working

This commit is contained in:
Anhgelus Morhtuuzh 2024-10-20 12:45:28 +02:00
parent 7306bcb83b
commit 81d9910e5e
Signed by: anhgelus
GPG key ID: CAD341EFA92DDDE5

View file

@ -70,22 +70,26 @@ func OnVoiceUpdate(s *discordgo.Session, e *discordgo.VoiceStateUpdate) {
} }
LastEventUpdate(s, GetCopaing(e.UserID, e.GuildID)) LastEventUpdate(s, GetCopaing(e.UserID, e.GuildID))
cfg := config.GetGuildConfig(e.GuildID) cfg := config.GetGuildConfig(e.GuildID)
if cfg.IsDisabled(e.ChannelID) {
return
}
client, err := getRedisClient() client, err := getRedisClient()
if err != nil { if err != nil {
utils.SendAlert("xp/events.go - Getting redis client", err.Error()) utils.SendAlert("xp/events.go - Getting redis client", err.Error())
return return
} }
if e.BeforeUpdate == nil { if e.BeforeUpdate == nil && e.ChannelID != "" {
if cfg.IsDisabled(e.ChannelID) {
return
}
onConnection(s, e, client) onConnection(s, e, client)
} else { } else if e.BeforeUpdate != nil && e.ChannelID == "" {
if cfg.IsDisabled(e.BeforeUpdate.ChannelID) {
return
}
onDisconnect(s, e, client) onDisconnect(s, e, client)
} }
} }
func onConnection(_ *discordgo.Session, e *discordgo.VoiceStateUpdate, client *redis.Client) { func onConnection(_ *discordgo.Session, e *discordgo.VoiceStateUpdate, client *redis.Client) {
utils.SendDebug("User connected", "username", e.Member.DisplayName())
c := GetCopaing(e.UserID, e.GuildID) c := GetCopaing(e.UserID, e.GuildID)
err := client.Set( err := client.Set(
context.Background(), context.Background(),
@ -132,6 +136,7 @@ func onDisconnect(s *discordgo.Session, e *discordgo.VoiceStateUpdate, client *r
)) ))
return return
} }
utils.SendDebug("User disconnected", "username", e.Member.DisplayName(), "since", con)
err = client.Set(context.Background(), key, strconv.Itoa(NotConnected), 0).Err() err = client.Set(context.Background(), key, strconv.Itoa(NotConnected), 0).Err()
if err != nil { if err != nil {
utils.SendAlert("xp/events.go - Set connected_since to not connected", err.Error()) utils.SendAlert("xp/events.go - Set connected_since to not connected", err.Error())