Skip to content
Snippets Groups Projects
Commit 2495c1ec authored by Levatax's avatar Levatax
Browse files

added kick command

parent 223bd88f
Branches
No related tags found
No related merge requests found
......@@ -145,4 +145,74 @@ func init() {
context.SendMessage("Action completed.")
},
})
m.Route(&multiplexer.Route{
Pattern: "kick",
AliasPatterns: []string{"k", "dc"},
Description: "Kick an user from channel.",
Category: system,
Handler: func(context *multiplexer.Context) {
if len(context.Fields) < 2 {
// Return if unexpected amount of arguments.
context.SendMessage("Expecting user.")
return
}
// Get member
member := context.GetMember(context.Fields[1])
if member == nil {
context.SendMessage("Expecting member.")
return
}
// Get instance
instance, ok := instancesUser[context.User.ID]
if !ok {
context.SendMessage("You do not own any volatile channel.")
return
}
// Perform action
if !instance.actionPerform("kick",
func() bool {
// Check if member is in the channel
state, err := context.Session.State.VoiceState(member.GuildID, member.User.ID)
if err != nil {
log.Errorf("Error getting state of at guild %s on behalf of member %s, %s",
member.GuildID, member.User.ID, err)
return false
}
if state.ChannelID != instance.Channel.ID {
context.SendMessage("The user is not in your volatile channel")
return false
}
// Perform change
err2 := context.Session.GuildMemberMove(member.GuildID, member.User.ID, nil)
if err2!= nil {
log.Errorf("Error disconnecting user at guild %s on behalf of member %s, %s",
member.GuildID, member.User.ID, err)
return false
}
err3 := context.Session.ChannelPermissionSet(instance.Channel.ID,member.User.ID,1,1024,1048576)
if err3 != nil {
log.Errorf("Error changing permissions for user at guild %s on behalf of member %s, %s",
member.GuildID, member.User.ID, err)
return false
}
return true
}, context.SendMessage) {
return
}
log.Infof("Kick user from volatile channel #%s (%s) to %v on behalf of %s#%s (%s).",
instance.Channel.Name,
instance.Channel.ID,
instance.Initiator.User.Username,
instance.Initiator.User.Discriminator,
instance.Initiator.User.ID)
context.SendMessage("Action completed.")
},
})
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment