async def get_player_role_for_user(self, guild, user, channel=None): """Gives the corresponding player role to the user.""" tournament = self.get_tournament(guild.id) player_role_id = tournament.player_role_id if tosurnament.get_role(user.roles, player_role_id, "Player"): raise tosurnament.UserAlreadyPlayer() try: tosurnament_user = self.get_verified_user(user.id) user_name = tosurnament_user.osu_name except (tosurnament.UserNotLinked, tosurnament.UserNotVerified): user_name = user.display_name roles = guild.roles player_role = tosurnament.get_role(roles, player_role_id, "Player") if not player_role: raise tosurnament.RoleDoesNotExist("Player") got_role = False for bracket in tournament.brackets: tournament.current_bracket_id = bracket.id try: got_role |= await self.get_player_role_for_bracket( guild, tournament, user, user_name, player_role, ) except Exception as e: if channel: await self.on_cog_command_error(channel, "get_player_role", e) return got_role
def cog_check(self, ctx): if ctx.guild is None: raise commands.NoPrivateMessage() role_name = "Referee" tournament = self.get_tournament(ctx.guild.id) role_id = tournament.get_role_id(role_name) role = tosurnament.get_role(ctx.guild.roles, role_id, role_name) if not role: raise tosurnament.RoleDoesNotExist(role_name) if role in ctx.author.roles: return True raise tosurnament.NotRequiredRole(role.name)
async def get_player_role_for_user(self, ctx, guild, member): """Gives the corresponding player role to the user.""" tournament = self.get_tournament(guild.id) player_role_id = tournament.player_role_id if tosurnament.get_role(member.roles, player_role_id, "Player"): raise tosurnament.UserAlreadyPlayer() player_role = tosurnament.get_role(guild.roles, player_role_id, "Player") if not player_role: raise tosurnament.RoleDoesNotExist("Player") got_role = False for bracket in tournament.brackets: tournament.current_bracket_id = bracket.id try: got_role |= await self.get_player_role_for_bracket( guild, tournament, member, player_role) except Exception as e: if ctx: await self.on_cog_command_error(ctx, e) return got_role