From 005dfcaa11f4324cff4ef75b440be613e6ae9a3b Mon Sep 17 00:00:00 2001 From: ks129 <45097959+ks129@users.noreply.github.com> Date: Tue, 7 Apr 2020 20:26:47 +0300 Subject: (Minesweeper): Reverted KeyError catching in reveal command, made error handler that catch it instead and attached reveal and end command to it. --- bot/exts/evergreen/minesweeper.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) (limited to 'bot/exts/evergreen/minesweeper.py') diff --git a/bot/exts/evergreen/minesweeper.py b/bot/exts/evergreen/minesweeper.py index 2626b1c4..776501a9 100644 --- a/bot/exts/evergreen/minesweeper.py +++ b/bot/exts/evergreen/minesweeper.py @@ -253,11 +253,7 @@ class Minesweeper(commands.Cog): @minesweeper_group.command(name="reveal") async def reveal_command(self, ctx: commands.Context, *coordinates: CoordinateConverter) -> None: """Reveal multiple cells.""" - try: - game = self.games[ctx.author.id] - except KeyError: - await ctx.author.send("Game don't exist. Can't reveal.") - return + game = self.games[ctx.author.id] revealed: GameBoard = game.revealed board: GameBoard = game.board @@ -282,6 +278,13 @@ class Minesweeper(commands.Cog): await game.chat_msg.edit(content=new_msg) del self.games[ctx.author.id] + @reveal_command.error + @end_command.error + async def keyerror_handler(self, ctx: commands.Context, error: typing.Any) -> None: + """Handle `KeyError` that is raised in reveal or end command when getting game.""" + if isinstance(error, KeyError): + await ctx.send("Game don't exist.") + def setup(bot: commands.Bot) -> None: """Load the Minesweeper cog.""" -- cgit v1.2.3