From 2a10ffbda1fabe65f9dae23dc219e9f97159bff1 Mon Sep 17 00:00:00 2001 From: Serban Constantin Date: Sun, 26 Apr 2020 05:51:51 +0300 Subject: handle disabled DMs when starting Minesweeper If the user trying to start Minesweeper has DMs disabled then warn him in the channel where the command was invoked. --- bot/exts/evergreen/minesweeper.py | 15 ++++++++++----- 1 file changed, 10 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 ae057b30..cda9a65a 100644 --- a/bot/exts/evergreen/minesweeper.py +++ b/bot/exts/evergreen/minesweeper.py @@ -151,11 +151,16 @@ class Minesweeper(commands.Cog): else: chat_msg = None - await ctx.author.send( - f"Play by typing: `{Client.prefix}ms reveal xy [xy]` or `{Client.prefix}ms flag xy [xy]` \n" - f"Close the game with `{Client.prefix}ms end`\n" - ) - dm_msg = await ctx.author.send(f"Here's your board!\n{self.format_for_discord(revealed_board)}") + try: + await ctx.author.send( + f"Play by typing: `{Client.prefix}ms reveal xy [xy]` or `{Client.prefix}ms flag xy [xy]` \n" + f"Close the game with `{Client.prefix}ms end`\n" + ) + except discord.errors.Forbidden: + log.debug(f"{ctx.author.name} ({ctx.author.id}) has disabled DMs from server members") + await ctx.send(f":x: {ctx.author.mention}, please (temporarily) enable DMs to receive the join code") + else: + dm_msg = await ctx.author.send(f"Here's your board!\n{self.format_for_discord(revealed_board)}") self.games[ctx.author.id] = Game( board=board, -- cgit v1.2.3 From c3fae28d93d9371b3ebb9ac79f7069f62f3e0b82 Mon Sep 17 00:00:00 2001 From: Serban Constantin Date: Tue, 28 Apr 2020 21:48:16 +0300 Subject: update minesweeper dm error message --- bot/exts/evergreen/minesweeper.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'bot/exts/evergreen/minesweeper.py') diff --git a/bot/exts/evergreen/minesweeper.py b/bot/exts/evergreen/minesweeper.py index cda9a65a..4dad7fb7 100644 --- a/bot/exts/evergreen/minesweeper.py +++ b/bot/exts/evergreen/minesweeper.py @@ -158,7 +158,7 @@ class Minesweeper(commands.Cog): ) except discord.errors.Forbidden: log.debug(f"{ctx.author.name} ({ctx.author.id}) has disabled DMs from server members") - await ctx.send(f":x: {ctx.author.mention}, please (temporarily) enable DMs to receive the join code") + await ctx.send(f":x: {ctx.author.mention}, please enable DMs to play minesweeper.") else: dm_msg = await ctx.author.send(f"Here's your board!\n{self.format_for_discord(revealed_board)}") -- cgit v1.2.3 From 0aed8ab92ef4e74d1df2c0849bda36c557d7cb94 Mon Sep 17 00:00:00 2001 From: Serban Constantin Date: Wed, 29 Apr 2020 03:19:17 +0300 Subject: exit minesweeper early if DM disabled If user has DMs disabled then don't initialize board and don't start a game. --- bot/exts/evergreen/minesweeper.py | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) (limited to 'bot/exts/evergreen/minesweeper.py') diff --git a/bot/exts/evergreen/minesweeper.py b/bot/exts/evergreen/minesweeper.py index 4dad7fb7..3e40f493 100644 --- a/bot/exts/evergreen/minesweeper.py +++ b/bot/exts/evergreen/minesweeper.py @@ -141,16 +141,6 @@ class Minesweeper(commands.Cog): await ctx.message.delete(delay=2) return - # Add game to list - board: GameBoard = self.generate_board(bomb_chance) - revealed_board: GameBoard = [["hidden"] * 10 for _ in range(10)] - - if ctx.guild: - await ctx.send(f"{ctx.author.mention} is playing Minesweeper") - chat_msg = await ctx.send(f"Here's there board!\n{self.format_for_discord(revealed_board)}") - else: - chat_msg = None - try: await ctx.author.send( f"Play by typing: `{Client.prefix}ms reveal xy [xy]` or `{Client.prefix}ms flag xy [xy]` \n" @@ -159,8 +149,18 @@ class Minesweeper(commands.Cog): except discord.errors.Forbidden: log.debug(f"{ctx.author.name} ({ctx.author.id}) has disabled DMs from server members") await ctx.send(f":x: {ctx.author.mention}, please enable DMs to play minesweeper.") + return + + # Add game to list + board: GameBoard = self.generate_board(bomb_chance) + revealed_board: GameBoard = [["hidden"] * 10 for _ in range(10)] + dm_msg = await ctx.author.send(f"Here's your board!\n{self.format_for_discord(revealed_board)}") + + if ctx.guild: + await ctx.send(f"{ctx.author.mention} is playing Minesweeper") + chat_msg = await ctx.send(f"Here's there board!\n{self.format_for_discord(revealed_board)}") else: - dm_msg = await ctx.author.send(f"Here's your board!\n{self.format_for_discord(revealed_board)}") + chat_msg = None self.games[ctx.author.id] = Game( board=board, -- cgit v1.2.3