mirror of https://github.com/hak5/scuzzy.git
Features: Add Ban and Kick user commands.
parent
cbfd937464
commit
6daae3d97c
|
@ -40,6 +40,8 @@ func (f *Features) RegisterHandlers() {
|
|||
f.RegisterCommand("ping", f.handlePing)
|
||||
f.RegisterCommand("status", f.handleSetStatus)
|
||||
f.RegisterCommand("purge", f.handlePurgeChannel)
|
||||
f.RegisterCommand("kick", f.handleKickUser)
|
||||
f.RegisterCommand("ban", f.handleBanUser)
|
||||
}
|
||||
|
||||
func (f *Features) ProcessCommand(s *discordgo.Session, m *discordgo.MessageCreate) {
|
||||
|
|
|
@ -56,3 +56,95 @@ func (f *Features) handlePurgeChannel(s *discordgo.Session, m *discordgo.Message
|
|||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (f *Features) handleKickUser(s *discordgo.Session, m *discordgo.MessageCreate) error {
|
||||
if !f.Auth.CheckAdminRole(m.Member) {
|
||||
return errors.New("You do not have permissions to use this command.")
|
||||
}
|
||||
|
||||
var (
|
||||
mHandle *discordgo.Member
|
||||
kickReason string
|
||||
err error
|
||||
)
|
||||
|
||||
args := strings.Split(m.Content, " ")
|
||||
if len(args) < 2 {
|
||||
return errors.New("You must specify a user to kick.")
|
||||
}
|
||||
if len(args) == 3 {
|
||||
kickReason = args[2]
|
||||
}
|
||||
|
||||
member := args[1]
|
||||
idStr := strings.Replace(member, "<@!", "", 1)
|
||||
idStr = strings.Replace(idStr, ">", "", 1)
|
||||
mHandle, err = s.GuildMember(f.Config.Guild.ID, idStr)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
err = s.GuildMemberDeleteWithReason(f.Config.Guild.ID, mHandle.User.ID, kickReason)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
msg := "User `" + mHandle.User.Username + "#" + mHandle.User.Discriminator + "` was kicked.\n"
|
||||
if len(kickReason) > 0 {
|
||||
msg += "Reason: `" + kickReason + "`\n"
|
||||
}
|
||||
|
||||
embed := f.CreateDefinedEmbed("Kick User", msg, "success", m.Author)
|
||||
_, err = s.ChannelMessageSendEmbed(m.ChannelID, embed)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (f *Features) handleBanUser(s *discordgo.Session, m *discordgo.MessageCreate) error {
|
||||
if !f.Auth.CheckAdminRole(m.Member) {
|
||||
return errors.New("You do not have permissions to use this command.")
|
||||
}
|
||||
|
||||
var (
|
||||
mHandle *discordgo.Member
|
||||
banReason string
|
||||
err error
|
||||
)
|
||||
|
||||
args := strings.Split(m.Content, " ")
|
||||
if len(args) < 2 {
|
||||
return errors.New("You must specify a user to ban.")
|
||||
}
|
||||
if len(args) == 3 {
|
||||
banReason = args[2]
|
||||
}
|
||||
|
||||
member := args[1]
|
||||
idStr := strings.Replace(member, "<@!", "", 1)
|
||||
idStr = strings.Replace(idStr, ">", "", 1)
|
||||
mHandle, err = s.GuildMember(f.Config.Guild.ID, idStr)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
err = s.GuildBanCreateWithReason(f.Config.Guild.ID, mHandle.User.ID, banReason, 0)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
msg := "User `" + mHandle.User.Username + "#" + mHandle.User.Discriminator + "` was banned.\n"
|
||||
if len(banReason) > 0 {
|
||||
msg += "Reason: `" + banReason + "`\n"
|
||||
}
|
||||
|
||||
embed := f.CreateDefinedEmbed("Ban User", msg, "success", m.Author)
|
||||
_, err = s.ChannelMessageSendEmbed(m.ChannelID, embed)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue