async def unban(self, ctx, member: MemberID, *, reason: str = None): """ Unbans a user from the current server. """ try: await ctx.guild.unban(discord.Object(id=member), reason=default.responsible( ctx.author, reason)) await ctx.send(default.actionmessage("unbanned")) except Exception as e: await ctx.send(e)
async def massban(self, ctx, reason: ActionReason, *members: MemberID): """ Mass bans multiple members from the server. """ try: for member_id in members: await ctx.guild.ban(discord.Object(id=member_id), reason=default.responsible( ctx.author, reason)) await ctx.send(default.actionmessage("massbanned", mass=True)) except Exception as e: await ctx.send(e)
async def kick(self, ctx, member: discord.Member, *, reason: str = None): """ Kicks a user from the current server. """ if await permissions.check_priv(ctx, member): return try: await member.kick(reason=default.responsible(ctx.author, reason)) await ctx.send(default.actionmessage("kicked")) except Exception as e: await ctx.send(e)
async def ban(self, ctx, member: MemberID, *, reason: str = None): """ Bans a user from the current server. """ m = ctx.guild.get_member(member) if m is not None and await permissions.check_priv(ctx, m): return try: await ctx.guild.ban(discord.Object(id=member), reason=default.responsible(ctx.author, reason)) await ctx.send(default.actionmessage("banned")) except Exception as e: await ctx.send(e)
async def unmute(self, ctx, member: discord.Member, *, reason: str = None): """ Unmutes a user from the current server. """ if await permissions.check_priv(ctx, member): return muted_role = next((g for g in ctx.guild.roles if g.name == "Muted"), None) if not muted_role: return await ctx.send( "Are you sure you've made a role called **Muted**? Remember that it's case sensetive too..." ) try: await member.remove_roles(muted_role, reason=default.responsible( ctx.author, reason)) await ctx.send(default.actionmessage("unmuted")) except Exception as e: await ctx.send(e)