From cf78ea06e2a7f068ae034f5eb6a1ebf44fea3161 Mon Sep 17 00:00:00 2001 From: Dav Date: Mon, 10 Aug 2020 19:19:44 +0000 Subject: [PATCH] [Mute] Indicate that a guild mute/unmute is currently being processed. (#4172) Co-authored-by: fixator10 --- redbot/cogs/mod/mutes.py | 29 +++++++++++++---------------- 1 file changed, 13 insertions(+), 16 deletions(-) diff --git a/redbot/cogs/mod/mutes.py b/redbot/cogs/mod/mutes.py index db76a0e5b..e041d011c 100644 --- a/redbot/cogs/mod/mutes.py +++ b/redbot/cogs/mod/mutes.py @@ -3,6 +3,7 @@ from typing import cast, Optional import discord from redbot.core import commands, checks, i18n, modlog +from redbot.core.utils import AsyncIter from redbot.core.utils.chat_formatting import format_perms_list from redbot.core.utils.mod import get_audit_reason, is_allowed_by_hierarchy from .abc import MixinMeta @@ -255,11 +256,10 @@ class MuteMixin(MixinMeta): audit_reason = get_audit_reason(author, reason) mute_success = [] - for channel in guild.channels: - success, issue = await self.mute_user(guild, channel, author, user, audit_reason) - mute_success.append((success, issue)) - await asyncio.sleep(0.1) - try: + async with ctx.typing(): + for channel in guild.channels: + success, issue = await self.mute_user(guild, channel, author, user, audit_reason) + mute_success.append((success, issue)) await modlog.create_case( self.bot, guild, @@ -271,9 +271,7 @@ class MuteMixin(MixinMeta): until=None, channel=None, ) - except RuntimeError as e: - await ctx.send(e) - await ctx.send(_("User has been muted in this server.")) + await ctx.send(_("User has been muted in this server.")) @commands.group() @commands.guild_only() @@ -372,11 +370,12 @@ class MuteMixin(MixinMeta): audit_reason = get_audit_reason(author, reason) unmute_success = [] - for channel in guild.channels: - success, message = await self.unmute_user(guild, channel, author, user, audit_reason) - unmute_success.append((success, message)) - await asyncio.sleep(0.1) - try: + async with ctx.typing(): + for channel in guild.channels: + success, message = await self.unmute_user( + guild, channel, author, user, audit_reason + ) + unmute_success.append((success, message)) await modlog.create_case( self.bot, guild, @@ -387,9 +386,7 @@ class MuteMixin(MixinMeta): reason, until=None, ) - except RuntimeError as e: - await ctx.send(e) - await ctx.send(_("User has been unmuted in this server.")) + await ctx.send(_("User has been unmuted in this server.")) async def mute_user( self,