Add kick command

pull/1/head
DustyP 6 years ago
parent ff65eba42c
commit 7203f7277f

@ -1,11 +1,13 @@
package exts package exts
import ( import (
"djpianalto.com/goff/djpianalto.com/goff/utils"
"errors" "errors"
"fmt" "fmt"
"github.com/bwmarrin/discordgo" "github.com/bwmarrin/discordgo"
"github.com/dustinpianalto/disgoman" "github.com/dustinpianalto/disgoman"
"strings" "strings"
"time"
) )
func kickUser(ctx disgoman.Context, args []string) { func kickUser(ctx disgoman.Context, args []string) {
@ -34,7 +36,7 @@ func kickUser(ctx disgoman.Context, args []string) {
return return
} }
if !disgoman.HasHigherRole(ctx.Session, ctx.Guild.ID, ctx.User.ID, member.User.ID) { if !disgoman.HasHigherRole(ctx.Session, ctx.Guild.ID, ctx.Session.State.User.ID, member.User.ID) {
ctx.ErrorChannel <- disgoman.CommandError{ ctx.ErrorChannel <- disgoman.CommandError{
Context: ctx, Context: ctx,
Message: "I don't have a high enough role to kick that person", Message: "I don't have a high enough role to kick that person",
@ -43,16 +45,39 @@ func kickUser(ctx disgoman.Context, args []string) {
return return
} }
var reason string
if len(args) > 1 { if len(args) > 1 {
err = ctx.Session.GuildMemberDeleteWithReason(ctx.Guild.ID, member.User.ID, strings.Join(args[1:], " ")) reason = strings.Join(args[1:], " ")
} else { } else {
err = ctx.Session.GuildMemberDelete(ctx.Guild.ID, member.User.ID) reason = "No Reason Given"
} }
auditReason := fmt.Sprintf("%v#%v: %v", ctx.User.Username, ctx.User.Discriminator, reason)
err = ctx.Session.GuildMemberDeleteWithReason(ctx.Guild.ID, member.User.ID, auditReason)
if err != nil { if err != nil {
ctx.ErrorChannel <- disgoman.CommandError{ ctx.ErrorChannel <- disgoman.CommandError{
Context: ctx, Context: ctx,
Message: fmt.Sprintf("Something went wrong kicking %v", member.User.Username), Message: fmt.Sprintf("Something went wrong kicking %v", member.User.Username),
Error: err, Error: err,
} }
return
}
event := &utils.LogEvent{
Embed: discordgo.MessageEmbed{
Title: "User Kicked",
Description: fmt.Sprintf(
"User %v#%v was kicked by %v.\nReason: %v",
member.User.Username,
member.User.Discriminator,
ctx.Message.Author.Username,
reason),
Timestamp: time.Now().Format("2006-01-02 15:04:05"),
Color: 0xff8c00,
},
GuildID: ctx.Guild.ID,
Session: *ctx.Session,
} }
utils.LoggingChannel <- event
_, _ = ctx.Send(fmt.Sprintf("User %v#%v has been kicked.", member.User.Username, member.User.Discriminator))
} }

Loading…
Cancel
Save