2024-11-08 16:26:05 -08:00
|
|
|
package discord
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"github.com/bwmarrin/discordgo"
|
|
|
|
|
"gitlab.com/whom/bingobot/internal/logging"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
func addHandlers() {
|
|
|
|
|
session.s.AddHandler(handleConnect)
|
|
|
|
|
session.s.AddHandler(handleDisconnect)
|
2024-11-13 16:32:58 -08:00
|
|
|
session.s.AddHandler(handleVoiceStateUpdate)
|
2025-01-08 13:40:11 -08:00
|
|
|
session.s.AddHandler(handleCommand) // handles InteractionCreate
|
2024-11-08 16:26:05 -08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func handleConnect(s *discordgo.Session, e *discordgo.Connect) {
|
|
|
|
|
session.connected = true
|
|
|
|
|
logging.Info("discord session connected")
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func handleDisconnect(s *discordgo.Session, e *discordgo.Disconnect) {
|
|
|
|
|
session.connected = false
|
|
|
|
|
logging.Info("discord session disconnected")
|
|
|
|
|
}
|
2024-11-13 16:32:58 -08:00
|
|
|
|
|
|
|
|
func handleVoiceStateUpdate(_ *discordgo.Session, e *discordgo.VoiceStateUpdate) {
|
|
|
|
|
if e.ChannelID == "" {
|
|
|
|
|
// user disconnected
|
|
|
|
|
logging.Info("user left channel", "uid", e.UserID)
|
|
|
|
|
stopActivityTimer(e.UserID)
|
|
|
|
|
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// user connected
|
|
|
|
|
logging.Info("user joined channel", "uid", e.UserID, "channel", e.ChannelID)
|
|
|
|
|
startActivityTimer(e.UserID)
|
|
|
|
|
}
|