chore: Objectify managed guilds
All checks were successful
Build artifact / build (push) Successful in 22s
Build artifact / release (push) Has been skipped

This commit is contained in:
2024-07-11 12:44:30 +02:00
parent 30687e2271
commit bd2fe73102
2 changed files with 70 additions and 54 deletions

27
main.go
View File

@@ -70,20 +70,23 @@ func main() {
}
func handleVoiceActivity(s *discordgo.Session, vs *discordgo.VoiceStateUpdate) {
if val, ok := newChannelEndpoint[vs.GuildID]; ok {
if autoGuild, ok := managedGuilds[vs.GuildID]; ok {
if vs.ChannelID == "" {
removeUserFromChannels(s, vs)
// The user left a channel
autoGuild.removeUserFromChannels(s, vs.UserID)
return
}
if vs.ChannelID == val.ID {
removeUserFromChannels(s, vs)
createNewChannel(s, vs)
} else if _, ok := createdChannels[vs.GuildID][vs.ChannelID]; ok {
createdChannels[vs.GuildID][vs.ChannelID] = append(createdChannels[vs.GuildID][vs.ChannelID], vs.UserID)
updateNameOnJoin(s, vs)
if vs.ChannelID == autoGuild.newChannelEndpoint.ID {
// User joined the new channel endpoint
autoGuild.removeUserFromChannels(s, vs.UserID)
autoGuild.createNewChannel(s, vs.ChannelID, vs.UserID)
} else if _, ok := autoGuild.createdChannels[vs.ChannelID]; ok {
// User joined a managed channel
autoGuild.trackUserJoinManagedChannel(s, vs.ChannelID, vs.UserID)
} else {
removeUserFromChannels(s, vs)
// User joined a non managed channel
autoGuild.removeUserFromChannels(s, vs.UserID)
}
} else {
initChannels(s, vs.GuildID)
@@ -91,11 +94,11 @@ func handleVoiceActivity(s *discordgo.Session, vs *discordgo.VoiceStateUpdate) {
}
func handlePresenceUpdate(s *discordgo.Session, pu *discordgo.PresenceUpdate) {
if _, ok := newChannelEndpoint[pu.GuildID]; ok {
for channelID, channel := range createdChannels[pu.GuildID] {
if autoGuild, ok := managedGuilds[pu.GuildID]; ok {
for channelID, channel := range autoGuild.createdChannels {
for _, user := range channel {
if user == pu.User.ID {
updateChannelName(s, pu.GuildID, channelID)
autoGuild.updateChannelName(s, channelID)
}
}
}