[Mute] Indicate that a guild mute/unmute is currently being processed. (#4172)

Co-authored-by: fixator10
This commit is contained in:
Dav 2020-08-10 19:19:44 +00:00 committed by GitHub
parent 05ef5fa3a6
commit 35b0224690
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -3,6 +3,7 @@ from typing import cast, Optional
import discord import discord
from redbot.core import commands, checks, i18n, modlog 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.chat_formatting import format_perms_list
from redbot.core.utils.mod import get_audit_reason, is_allowed_by_hierarchy from redbot.core.utils.mod import get_audit_reason, is_allowed_by_hierarchy
from .abc import MixinMeta from .abc import MixinMeta
@ -254,22 +255,22 @@ class MuteMixin(MixinMeta):
audit_reason = get_audit_reason(author, reason) audit_reason = get_audit_reason(author, reason)
mute_success = [] mute_success = []
for channel in guild.channels: async with ctx.typing():
success, issue = await self.mute_user(guild, channel, author, user, audit_reason) for channel in guild.channels:
mute_success.append((success, issue)) success, issue = await self.mute_user(guild, channel, author, user, audit_reason)
await asyncio.sleep(0.1) mute_success.append((success, issue))
await modlog.create_case( await modlog.create_case(
self.bot, self.bot,
guild, guild,
ctx.message.created_at, ctx.message.created_at,
"smute", "smute",
user, user,
author, author,
reason, reason,
until=None, until=None,
channel=None, channel=None,
) )
await ctx.send(_("User has been muted in this server.")) await ctx.send(_("User has been muted in this server."))
@commands.group() @commands.group()
@commands.guild_only() @commands.guild_only()
@ -373,14 +374,23 @@ class MuteMixin(MixinMeta):
audit_reason = get_audit_reason(author, reason) audit_reason = get_audit_reason(author, reason)
unmute_success = [] unmute_success = []
for channel in guild.channels: async with ctx.typing():
success, message = await self.unmute_user(guild, channel, author, user, audit_reason) for channel in guild.channels:
unmute_success.append((success, message)) success, message = await self.unmute_user(
await asyncio.sleep(0.1) guild, channel, author, user, audit_reason
await modlog.create_case( )
self.bot, guild, ctx.message.created_at, "sunmute", user, author, reason, until=None, unmute_success.append((success, message))
) await modlog.create_case(
await ctx.send(_("User has been unmuted in this server.")) self.bot,
guild,
ctx.message.created_at,
"sunmute",
user,
author,
reason,
until=None,
)
await ctx.send(_("User has been unmuted in this server."))
async def mute_user( async def mute_user(
self, self,