chore: Objectify managed guilds
This commit is contained in:
27
main.go
27
main.go
@@ -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)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user