diff options
Diffstat (limited to '')
| -rw-r--r-- | bot/exts/moderation/infraction/infractions.py | 18 | 
1 files changed, 15 insertions, 3 deletions
diff --git a/bot/exts/moderation/infraction/infractions.py b/bot/exts/moderation/infraction/infractions.py index d89e80acc..38d1ffc0e 100644 --- a/bot/exts/moderation/infraction/infractions.py +++ b/bot/exts/moderation/infraction/infractions.py @@ -54,8 +54,12 @@ class Infractions(InfractionScheduler, commands.Cog):      # region: Permanent infractions      @command() -    async def warn(self, ctx: Context, user: Member, *, reason: t.Optional[str] = None) -> None: +    async def warn(self, ctx: Context, user: FetchedMember, *, reason: t.Optional[str] = None) -> None:          """Warn a user for the given reason.""" +        if not isinstance(user, Member): +            await ctx.send(":x: The user doesn't appear to be on the server.") +            return +          infraction = await _utils.post_infraction(ctx, user, "warning", reason, active=False)          if infraction is None:              return @@ -63,8 +67,12 @@ class Infractions(InfractionScheduler, commands.Cog):          await self.apply_infraction(ctx, infraction, user)      @command() -    async def kick(self, ctx: Context, user: Member, *, reason: t.Optional[str] = None) -> None: +    async def kick(self, ctx: Context, user: FetchedMember, *, reason: t.Optional[str] = None) -> None:          """Kick a user for the given reason.""" +        if not isinstance(user, Member): +            await ctx.send(":x: The user doesn't appear to be on the server.") +            return +          await self.apply_kick(ctx, user, reason)      @command() @@ -100,7 +108,7 @@ class Infractions(InfractionScheduler, commands.Cog):      @command(aliases=["mute"])      async def tempmute(          self, ctx: Context, -        user: Member, +        user: FetchedMember,          duration: t.Optional[Expiry] = None,          *,          reason: t.Optional[str] = None @@ -122,6 +130,10 @@ class Infractions(InfractionScheduler, commands.Cog):          If no duration is given, a one hour duration is used by default.          """ +        if not isinstance(user, Member): +            await ctx.send(":x: The user doesn't appear to be on the server.") +            return +          if duration is None:              duration = await Duration().convert(ctx, "1h")          await self.apply_mute(ctx, user, reason, expires_at=duration)  |