diff options
| author | 2021-12-02 10:47:03 +0100 | |
|---|---|---|
| committer | 2021-12-02 10:47:03 +0100 | |
| commit | 4852790221b88a9bb8dd4ed7a713caaafdbabf48 (patch) | |
| tree | 84dc98070154ad7fa8eb51d270ebd1c0561dacad /bot/exts | |
| parent | Merge pull request #950 from onerandomusername/patch-3 (diff) | |
| parent | Merge branch 'main' into update-role-constants (diff) | |
Merge pull request #900 from python-discord/update-role-constants
Update role constants
Diffstat (limited to 'bot/exts')
| -rw-r--r-- | bot/exts/core/internal_eval/_internal_eval.py | 6 | ||||
| -rw-r--r-- | bot/exts/events/advent_of_code/_cog.py | 5 | ||||
| -rw-r--r-- | bot/exts/fun/snakes/_utils.py | 25 | ||||
| -rw-r--r-- | bot/exts/fun/trivia_quiz.py | 4 | 
4 files changed, 22 insertions, 18 deletions
| diff --git a/bot/exts/core/internal_eval/_internal_eval.py b/bot/exts/core/internal_eval/_internal_eval.py index 12a860fa..5b5461f0 100644 --- a/bot/exts/core/internal_eval/_internal_eval.py +++ b/bot/exts/core/internal_eval/_internal_eval.py @@ -147,14 +147,14 @@ class InternalEval(commands.Cog):          await self._send_output(ctx, eval_context.format_output())      @commands.group(name="internal", aliases=("int",)) -    @with_role(Roles.admin) +    @with_role(Roles.admins)      async def internal_group(self, ctx: commands.Context) -> None:          """Internal commands. Top secret!"""          if not ctx.invoked_subcommand:              await invoke_help_command(ctx)      @internal_group.command(name="eval", aliases=("e",)) -    @with_role(Roles.admin) +    @with_role(Roles.admins)      async def eval(self, ctx: commands.Context, *, code: str) -> None:          """Run eval in a REPL-like format."""          if match := list(FORMATTED_CODE_REGEX.finditer(code)): @@ -173,7 +173,7 @@ class InternalEval(commands.Cog):          await self._eval(ctx, code)      @internal_group.command(name="reset", aliases=("clear", "exit", "r", "c")) -    @with_role(Roles.admin) +    @with_role(Roles.admins)      async def reset(self, ctx: commands.Context) -> None:          """Reset the context and locals of the eval session."""          self.locals = {} diff --git a/bot/exts/events/advent_of_code/_cog.py b/bot/exts/events/advent_of_code/_cog.py index af1cbcf5..65a16fdd 100644 --- a/bot/exts/events/advent_of_code/_cog.py +++ b/bot/exts/events/advent_of_code/_cog.py @@ -55,6 +55,7 @@ class AdventOfCode(commands.Cog):          if not ctx.invoked_subcommand:              await invoke_help_command(ctx) +    @commands.guild_only()      @adventofcode_group.command(          name="subscribe",          aliases=("sub", "notifications", "notify", "notifs"), @@ -84,6 +85,7 @@ class AdventOfCode(commands.Cog):              )      @in_month(Month.DECEMBER) +    @commands.guild_only()      @adventofcode_group.command(name="unsubscribe", aliases=("unsub",), brief="Notifications for new days")      @whitelist_override(channels=AOC_WHITELIST)      async def aoc_unsubscribe(self, ctx: commands.Context) -> None: @@ -127,6 +129,7 @@ class AdventOfCode(commands.Cog):          """Respond with an explanation of all things Advent of Code."""          await ctx.send(embed=self.cached_about_aoc) +    @commands.guild_only()      @adventofcode_group.command(name="join", aliases=("j",), brief="Learn how to join the leaderboard (via DM)")      @whitelist_override(channels=AOC_WHITELIST)      async def join_leaderboard(self, ctx: commands.Context) -> None: @@ -295,7 +298,7 @@ class AdventOfCode(commands.Cog):              info_embed = _helpers.get_summary_embed(leaderboard)              await ctx.send(f"```\n{table}\n```", embed=info_embed) -    @with_role(Roles.admin) +    @with_role(Roles.admins)      @adventofcode_group.command(          name="refresh",          aliases=("fetch",), diff --git a/bot/exts/fun/snakes/_utils.py b/bot/exts/fun/snakes/_utils.py index de51339d..182fa9d9 100644 --- a/bot/exts/fun/snakes/_utils.py +++ b/bot/exts/fun/snakes/_utils.py @@ -6,13 +6,14 @@ import math  import random  from itertools import product  from pathlib import Path +from typing import Union  from PIL import Image  from PIL.ImageDraw import ImageDraw -from discord import File, Member, Reaction +from discord import File, Member, Reaction, User  from discord.ext.commands import Cog, Context -from bot.constants import Roles +from bot.constants import MODERATION_ROLES  SNAKE_RESOURCES = Path("bot/resources/fun/snakes").absolute() @@ -395,7 +396,7 @@ class SnakeAndLaddersGame:          Listen for reactions until players have joined, and the game has been started.          """ -        def startup_event_check(reaction_: Reaction, user_: Member) -> bool: +        def startup_event_check(reaction_: Reaction, user_: Union[User, Member]) -> bool:              """Make sure that this reaction is what we want to operate on."""              return (                  all(( @@ -460,7 +461,7 @@ class SnakeAndLaddersGame:                  await self.cancel_game()                  return  # We're done, no reactions for the last 5 minutes -    async def _add_player(self, user: Member) -> None: +    async def _add_player(self, user: Union[User, Member]) -> None:          """Add player to game."""          self.players.append(user)          self.player_tiles[user.id] = 1 @@ -469,7 +470,7 @@ class SnakeAndLaddersGame:          im = Image.open(io.BytesIO(avatar_bytes)).resize((BOARD_PLAYER_SIZE, BOARD_PLAYER_SIZE))          self.avatar_images[user.id] = im -    async def player_join(self, user: Member) -> None: +    async def player_join(self, user: Union[User, Member]) -> None:          """          Handle players joining the game. @@ -495,7 +496,7 @@ class SnakeAndLaddersGame:              delete_after=10          ) -    async def player_leave(self, user: Member) -> bool: +    async def player_leave(self, user: Union[User, Member]) -> bool:          """          Handle players leaving the game. @@ -530,7 +531,7 @@ class SnakeAndLaddersGame:          await self.channel.send("**Snakes and Ladders**: Game has been canceled.")          self._destruct() -    async def start_game(self, user: Member) -> None: +    async def start_game(self, user: Union[User, Member]) -> None:          """          Allow the game author to begin the game. @@ -551,7 +552,7 @@ class SnakeAndLaddersGame:      async def start_round(self) -> None:          """Begin the round.""" -        def game_event_check(reaction_: Reaction, user_: Member) -> bool: +        def game_event_check(reaction_: Reaction, user_: Union[User, Member]) -> bool:              """Make sure that this reaction is what we want to operate on."""              return (                  all(( @@ -644,7 +645,7 @@ class SnakeAndLaddersGame:          if not is_surrendered:              await self._complete_round() -    async def player_roll(self, user: Member) -> None: +    async def player_roll(self, user: Union[User, Member]) -> None:          """Handle the player's roll."""          if user.id not in self.player_tiles:              await self.channel.send(user.mention + " You are not in the match.", delete_after=10) @@ -691,7 +692,7 @@ class SnakeAndLaddersGame:          await self.channel.send("**Snakes and Ladders**: " + winner.mention + " has won the game! :tada:")          self._destruct() -    def _check_winner(self) -> Member: +    def _check_winner(self) -> Union[User, Member]:          """Return a winning member if we're in the post-round state and there's a winner."""          if self.state != "post_round":              return None @@ -716,6 +717,6 @@ class SnakeAndLaddersGame:          return x_level, y_level      @staticmethod -    def _is_moderator(user: Member) -> bool: +    def _is_moderator(user: Union[User, Member]) -> bool:          """Return True if the user is a Moderator.""" -        return any(Roles.moderator == role.id for role in user.roles) +        return any(role.id in MODERATION_ROLES for role in getattr(user, 'roles', [])) diff --git a/bot/exts/fun/trivia_quiz.py b/bot/exts/fun/trivia_quiz.py index 712c8a12..4a1cec5b 100644 --- a/bot/exts/fun/trivia_quiz.py +++ b/bot/exts/fun/trivia_quiz.py @@ -16,7 +16,7 @@ from discord.ext import commands, tasks  from rapidfuzz import fuzz  from bot.bot import Bot -from bot.constants import Client, Colours, NEGATIVE_REPLIES, Roles +from bot.constants import Client, Colours, MODERATION_ROLES, NEGATIVE_REPLIES  logger = logging.getLogger(__name__) @@ -550,7 +550,7 @@ class TriviaQuiz(commands.Cog):              if self.game_status[ctx.channel.id]:                  # Check if the author is the game starter or a moderator.                  if ctx.author == self.game_owners[ctx.channel.id] or any( -                    Roles.moderator == role.id for role in ctx.author.roles +                    role.id in MODERATION_ROLES for role in getattr(ctx.author, 'roles', [])                  ):                      self.game_status[ctx.channel.id] = False                      del self.game_owners[ctx.channel.id] | 
