예제 #1
0
 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
예제 #2
0
 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)
예제 #3
0
 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