diff --git a/discord/register.go b/discord/register.go index b6ecf39..ff049b9 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,7 +67,7 @@ func init() { return "No application found for that player", nil } } - } else if len(apps) > 0 { + } else if len(apps) > 0 && len(cmd.message.Member.Roles) == 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 } @@ -82,23 +82,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