Skip to content
Snippets Groups Projects
Commit 58df0f1d authored by Ophestra's avatar Ophestra
Browse files

handle voice state update

parent e615dcfb
Branches
Tags v1.0.10
No related merge requests found
......@@ -159,3 +159,32 @@ func (mux *Multiplexer) onMessageReactionRemove(session *discordgo.Session, remo
}
}()
}
// Event handler that fires when voice state updates
func (mux *Multiplexer) onVoiceStateUpdate(session *discordgo.Session, update *discordgo.VoiceStateUpdate) {
go func() {
for _, hook := range mux.VoiceStateUpdate {
var user *discordgo.User
member, err := session.State.Member(update.GuildID, update.UserID)
if err != nil {
member, err = session.GuildMember(update.GuildID, update.UserID)
if err != nil {
log.Errorf("Error getting member %s from guild %s, %s.", update.UserID, update.GuildID, err)
} else {
user = member.User
}
} else {
user = member.User
}
hook(&Context{
Multiplexer: mux,
User: user,
Member: member,
Session: session,
Guild: GetGuild(session, update.GuildID),
Channel: GetChannel(session, update.ChannelID),
Event: update,
})
}
}()
}
......@@ -25,6 +25,7 @@ type Multiplexer struct {
MessageUpdate []func(context *Context)
MessageReactionAdd []func(context *Context)
MessageReactionRemove []func(context *Context)
VoiceStateUpdate []func(context *Context)
// Administrator is the privileged administrator user with all privilege overrides and full access to all commands.
Administrator *discordgo.User
......
......@@ -24,6 +24,7 @@ func New() *Multiplexer {
mux.onMessageUpdate,
mux.onMessageReactionAdd,
mux.onMessageReactionRemove,
mux.onVoiceStateUpdate,
}
return mux
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment