Add Kick command

This commit is contained in:
Dusty Pianalto
2020-04-19 18:25:37 -08:00
parent ad7fc5bde0
commit 81ffdc0a74
3 changed files with 56 additions and 1 deletions
@@ -0,0 +1,53 @@
package exts
import (
"errors"
"github.com/bwmarrin/discordgo"
"github.com/dustinpianalto/disgoman"
"strings"
)
func kickUser(ctx disgoman.Context, args []string) {
var member *discordgo.Member
var err error
if len(ctx.Message.Mentions) > 0 {
member, err = ctx.Session.GuildMember(ctx.Guild.ID, ctx.Message.Mentions[0].ID)
} else {
member, err = ctx.Session.GuildMember(ctx.Guild.ID, args[0])
}
if err != nil {
ctx.ErrorChannel <- disgoman.CommandError{
Context: ctx,
Message: "Couldn't get that member",
Error: err,
}
return
}
if !disgoman.HasHigherRole(ctx.Session, ctx.Guild.ID, ctx.Message.Author.ID, member.User.ID) {
ctx.ErrorChannel <- disgoman.CommandError{
Context: ctx,
Message: "You must have a higher role than the person you are trying to kick",
Error: errors.New("need higher role"),
}
return
}
if !disgoman.HasHigherRole(ctx.Session, ctx.Guild.ID, ctx.User.ID, member.User.ID) {
ctx.ErrorChannel <- disgoman.CommandError{
Context: ctx,
Message: "I don't have a high enough role to kick that person",
Error: errors.New("need higher role"),
}
return
}
if len(args) > 1 {
err = ctx.Session.GuildMemberDeleteWithReason(ctx.Guild.ID, member.User.ID, strings.Join(args[1:], " "))
} else {
err = ctx.Session.GuildMemberDelete(ctx.Guild.ID, member.User.ID)
}
if err != nil {
}
}