From 97ddafcaf65b2604aacd1268be4abebb66ba5c45 Mon Sep 17 00:00:00 2001 From: jolheiser Date: Mon, 17 Jun 2024 19:40:33 -0500 Subject: [PATCH 1/2] fix: allow user to register if they have 1 role This assumes that the role is for onboarding purposes in-between seasons Signed-off-by: jolheiser --- discord/register.go | 45 +++++++++++++++++++++++++-------------------- 1 file changed, 25 insertions(+), 20 deletions(-) diff --git a/discord/register.go b/discord/register.go index b6ecf39..23388fa 100644 --- a/discord/register.go +++ b/discord/register.go @@ -19,7 +19,7 @@ func init() { commands = append(commands, &command{ name: "register", validate: func(cmd commandInit) bool { - return len(cmd.message.Member.Roles) == 0 + return len(cmd.message.Member.Roles) <= 1 }, run: func(cmd commandInit) (string, error) { args := strings.Fields(cmd.message.Content) @@ -67,12 +67,14 @@ func init() { return "No application found for that player", nil } } - } else if len(apps) > 0 { - if apps[0].Accepted != nil && *apps[0].Accepted { - return fmt.Sprintf("Please join the server at `%s` and then re-try this command", cmd.config.Register.URL), nil + } else if len(cmd.message.Member.Roles) == 0 { + if len(apps) > 0 { + if apps[0].Accepted != nil && *apps[0].Accepted { + return fmt.Sprintf("Please join the server at `%s` and then re-try this command", cmd.config.Register.URL), nil + } + } else { + return "No player or applications found for that username", nil } - } else { - return "No player or applications found for that username", nil } accepted := apps[0].Accepted @@ -82,23 +84,26 @@ func init() { return "Your application was denied, good luck finding a new server", nil } - // Accepted, check for dupe user - guild, err := cmd.session.State.Guild(cmd.message.GuildID) - if err != nil { - return "", err - } - for _, member := range guild.Members { - nick := member.Nick - if nick == "" { - nick = member.User.Username + if nickname != "" { + // Accepted, check for dupe user + guild, err := cmd.session.State.Guild(cmd.message.GuildID) + if err != nil { + return "", err } - if strings.EqualFold(nickname, nick) && cmd.message.Author.ID != member.User.ID { - return "A member with that name already exists in this Discord. Please contact staff.", nil + for _, member := range guild.Members { + nick := member.Nick + if nick == "" { + nick = member.User.Username + } + if strings.EqualFold(nickname, nick) && cmd.message.Author.ID != member.User.ID { + return "A member with that name already exists in this Discord. Please contact staff.", nil + } + } + + if err := cmd.session.GuildMemberNickname(cmd.message.GuildID, cmd.message.Author.ID, nickname); err != nil { + return "", err } - } - if err := cmd.session.GuildMemberNickname(cmd.message.GuildID, cmd.message.Author.ID, nickname); err != nil { - return "", err } if err := cmd.session.GuildMemberRoleAdd(cmd.message.GuildID, cmd.message.Author.ID, cmd.config.Register.Role); err != nil { return "", err -- 2.41.0 From b81c6f7051d8feda839f476156a39cc56c807815 Mon Sep 17 00:00:00 2001 From: jolheiser Date: Tue, 18 Jun 2024 11:04:16 -0500 Subject: [PATCH 2/2] fix: remove role check Signed-off-by: jolheiser --- discord/register.go | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/discord/register.go b/discord/register.go index 23388fa..0161ae2 100644 --- a/discord/register.go +++ b/discord/register.go @@ -19,7 +19,7 @@ func init() { commands = append(commands, &command{ name: "register", validate: func(cmd commandInit) bool { - return len(cmd.message.Member.Roles) <= 1 + return len(cmd.message.Member.Roles) == 0 }, run: func(cmd commandInit) (string, error) { args := strings.Fields(cmd.message.Content) @@ -67,17 +67,12 @@ func init() { return "No application found for that player", nil } } - } else if len(cmd.message.Member.Roles) == 0 { - if len(apps) > 0 { - if apps[0].Accepted != nil && *apps[0].Accepted { - return fmt.Sprintf("Please join the server at `%s` and then re-try this command", cmd.config.Register.URL), nil - } - } else { - return "No player or applications found for that username", nil - } } - accepted := apps[0].Accepted + if len(apps) == 0 { + return "No player or applications found for that username", nil + } + accepted := apps[0].Accepted if accepted == nil { return "Your application is still being reviewed, hang tight", nil } else if !*accepted { -- 2.41.0