From 94350da9bdced5bba3d5932f4e3c534bf6917194 Mon Sep 17 00:00:00 2001 From: Joey Hines Date: Mon, 10 Dec 2018 16:20:23 -0600 Subject: [PATCH] Fixed issues brought up in issue #15 +Fixed issue where Discord.util could have issue finding players on the server +Added an error message if no player record is found --- api/bot.py | 46 +++++++++++++++++++++++++++++----------------- 1 file changed, 29 insertions(+), 17 deletions(-) diff --git a/api/bot.py b/api/bot.py index ca9881c..da2e99f 100644 --- a/api/bot.py +++ b/api/bot.py @@ -68,28 +68,40 @@ class Discord(discord.Client): count = Player.objects.filter(username__iexact=search, application__accepted=True).count() if count > 0: - if count == 1: - player = Player.objects.filter(username__iexact=search, application__accepted=True).all()[0] - nickname = player.username + count = Player.objects.filter(username__iexact=search, application__accepted=True).count() - if not player.is_banned: - member = discord.utils.get(message.server.members, display_name=nickname) + if count == 0: + msg = "{0}, please join the server once before joining the discord.".format(message.author.mention) + yield from self.discord_message(message.channel, msg) + return - if member is not None and member is not message.author: - msg = "{0}, a member with that name is already exists, please contact the staff".format(message.author.mention) - yield from self.discord_message(message.channel, msg) - else: - for role_id in self.new_member_roles: - role = discord.utils.get(message.server.roles, id=role_id) - yield from self.add_roles(message.author, role) + player = Player.objects.filter(username__iexact=search, application__accepted=True).all()[0] + nickname = player.username - msg = "Successfully added {0} as a member".format(nickname) + if not player.is_banned: + on_server = False + for member in message.server.members: + if member is message.author: + continue - yield from self.change_nickname(message.author, nickname) - yield from self.discord_message(message.channel, msg) - else: - msg = "{0} You are currently banned.".format(message.author.mention) + if member.display_name == nickname: + on_server = True + + if on_server: + msg = "{0}, a member with that name is already exists, please contact the staff".format(message.author.mention) yield from self.discord_message(message.channel, msg) + else: + for role_id in self.new_member_roles: + role = discord.utils.get(message.server.roles, id=role_id) + yield from self.add_roles(message.author, role) + + msg = "Successfully added {0} as a member".format(nickname) + + yield from self.change_nickname(message.author, nickname) + yield from self.discord_message(message.channel, msg) + else: + msg = "{0} You are currently banned.".format(message.author.mention) + yield from self.discord_message(message.channel, msg) return else: