Compare commits

...
3 Commits
Author SHA1 Message Date
Dustin Pianalto 6d920e615d Add sar commands
CI / build (push) Has been cancelled
2021-01-30 22:52:25 -09:00
Dustin Pianalto 0b8b57a884 Add sar commands
CI / build (push) Has been cancelled
2021-01-30 22:42:14 -09:00
Dustin Pianalto 9382798997 Add sar commands
CI / build (push) Has been cancelled
2021-01-30 22:31:22 -09:00
2 changed files with 29 additions and 5 deletions
+25 -5
View File
@@ -2,6 +2,7 @@ package guild
import ( import (
"fmt" "fmt"
"strconv"
"strings" "strings"
"github.com/bwmarrin/discordgo" "github.com/bwmarrin/discordgo"
@@ -277,7 +278,7 @@ func removeSelfAssignableRoleCommandFunc(ctx disgoman.Context, args []string) {
var SelfAssignRoleCommand = &disgoman.Command{ var SelfAssignRoleCommand = &disgoman.Command{
Name: "giverole", Name: "giverole",
Aliases: []string{"iwant", "givetome"}, Aliases: []string{"iwant", "givetome", "addrole"},
Description: "Assigns a person the passed in role if it is self assignable", Description: "Assigns a person the passed in role if it is self assignable",
OwnerOnly: false, OwnerOnly: false,
Hidden: false, Hidden: false,
@@ -290,16 +291,26 @@ func selfAssignRoleCommandFunc(ctx disgoman.Context, args []string) {
roles := append(args, ctx.Message.MentionRoles...) roles := append(args, ctx.Message.MentionRoles...)
if len(roles) > 0 { if len(roles) > 0 {
for _, id := range roles { for _, id := range roles {
var roleID string
if strings.HasPrefix(id, "<@&") && strings.HasSuffix(id, ">") { if strings.HasPrefix(id, "<@&") && strings.HasSuffix(id, ">") {
continue continue
} else if _, err := strconv.Atoi(id); err == nil {
roleID = id
} else {
for _, role := range ctx.Guild.Roles {
if strings.ToLower(id) == strings.ToLower(role.Name) {
roleID = role.ID
}
}
} }
if _, ok := added[id]; ok { if _, ok := added[id]; ok {
continue continue
} }
var role *discordgo.Role var role *discordgo.Role
var err error var err error
if role, err = ctx.Session.State.Role(ctx.Guild.ID, id); err != nil { if role, err = ctx.Session.State.Role(ctx.Guild.ID, roleID); err != nil {
discord_utils.SendErrorMessage(ctx, fmt.Sprintf("%s does not reference a valid role for this guild", id), err) discord_utils.SendErrorMessage(ctx, fmt.Sprintf("%s does not reference a valid role for this guild", roleID), err)
return return
} }
if memberHasRole(ctx.Member, role.ID) { if memberHasRole(ctx.Member, role.ID) {
@@ -339,8 +350,17 @@ func unAssignRoleCommandFunc(ctx disgoman.Context, args []string) {
roles := append(args, ctx.Message.MentionRoles...) roles := append(args, ctx.Message.MentionRoles...)
if len(roles) > 0 { if len(roles) > 0 {
for _, id := range roles { for _, id := range roles {
var roleID string
if strings.HasPrefix(id, "<@&") && strings.HasSuffix(id, ">") { if strings.HasPrefix(id, "<@&") && strings.HasSuffix(id, ">") {
continue continue
} else if _, err := strconv.Atoi(id); err == nil {
roleID = id
} else {
for _, role := range ctx.Guild.Roles {
if strings.ToLower(id) == strings.ToLower(role.Name) {
roleID = role.ID
}
}
} }
if _, ok := removed[id]; ok { if _, ok := removed[id]; ok {
continue continue
@@ -348,8 +368,8 @@ func unAssignRoleCommandFunc(ctx disgoman.Context, args []string) {
var role *discordgo.Role var role *discordgo.Role
var err error var err error
if role, err = ctx.Session.State.Role(ctx.Guild.ID, id); err != nil { if role, err = ctx.Session.State.Role(ctx.Guild.ID, roleID); err != nil {
discord_utils.SendErrorMessage(ctx, fmt.Sprintf("%s does not reference a valid role for this guild", id), err) discord_utils.SendErrorMessage(ctx, fmt.Sprintf("%s does not reference a valid role for this guild", roleID), err)
return return
} }
if !memberHasRole(ctx.Member, role.ID) { if !memberHasRole(ctx.Member, role.ID) {
+4
View File
@@ -27,5 +27,9 @@ func AddCommandHandlers(g *disgoman.CommandManager) {
_ = g.AddCommand(guild.AddModeratorRoleCommand) _ = g.AddCommand(guild.AddModeratorRoleCommand)
_ = g.AddCommand(guild.AddAdminRoleCommand) _ = g.AddCommand(guild.AddAdminRoleCommand)
_ = g.AddCommand(guild.RemoveModRoleCommand) _ = g.AddCommand(guild.RemoveModRoleCommand)
_ = g.AddCommand(guild.MakeRoleSelfAssignableCommand)
_ = g.AddCommand(guild.RemoveSelfAssignableCommand)
_ = g.AddCommand(guild.SelfAssignRoleCommand)
_ = g.AddCommand(guild.UnAssignRoleCommand)
_ = g.AddCommand(requests.RequestCommand) _ = g.AddCommand(requests.RequestCommand)
} }