async def mute(self, ctx: context.Context, user: discord.Member, *, reason: converters.ActionReason = 'No Reason'): if not await self.punishUser(user): return await ctx.error('Du kannst diesen User nicht muten.') muteRoleID = await ctx.db.fetchval( 'SELECT muterole FROM automod.config WHERE sid = $1', ctx.guild.id) muteRole = ctx.guild.get_role(muteRoleID) if muteRole is None: return await ctx.error('Der Server hat keine Muterolle.') if user == ctx.author: return await ctx.error( 'Du kannst den Command nicht an dir selbst ausführen.') await user.add_roles(muteRole) await ctx.message.delete() embed = std.getBaseModEmbed(reason, user=user, mod=ctx.author) embed.title = f'Moderation [MUTE]' embed.add_field(name=f'{std.date_emoji} **__Dauer__**', value='Permanent') userEmbed = std.getUserEmbed(reason, ctx.guild.name, punishType=2) await logs.createEmbedLog(ctx, modEmbed=embed, userEmbed=userEmbed, member=user) await ctx.embed( f'{std.law_emoji} Der User `{user}` wurde erfolgreich für `{reason}` gemuted.', delete_after=5)
async def softban(self, ctx: context.Context, user: discord.Member, *, reason: converters.ActionReason = 'No Reason'): if not await self.punishUser(user): return await ctx.error('Du kannst diesen User nicht kicken.') if user == ctx.author: return await ctx.error( 'Du kannst den Command nicht an dir selbst ausführen.') embed = std.getBaseModEmbed(reason, user=user, mod=ctx.author) embed.title = 'Moderation [SOFTBAN]' userEmbed = std.getUserEmbed(reason, ctx.guild.name, punishType=1) await logs.createEmbedLog(ctx, modEmbed=embed, userEmbed=userEmbed, member=user) await ctx.guild.ban(user, reason=reason, delete_message_days=1) await ctx.guild.unban(user) await ctx.embed( f'{std.law_emoji} Der User `{user}` wurde erfolgreich für `{reason}` gekickt.', delete_after=5) await ctx.message.delete()
async def tempmute(self, ctx: context.Context, user: discord.Member, duration: converters.ParseTime, *, reason: converters.ActionReason = 'No Reason'): if not await self.punishUser(user): return await ctx.error('Du kannst diesen User nicht muten.') muteRoleID = await ctx.db.fetchval( 'SELECT muterole FROM automod.config WHERE sid = $1', ctx.guild.id) muteRole = ctx.guild.get_role(muteRoleID) if muteRole is None: return await ctx.error('Der Server hat keine Muterolle.') if user == ctx.author: return await ctx.error( 'Du kannst den Command nicht an dir selbst ausführen.') embed = std.getBaseModEmbed(reason, user=user, mod=ctx.author) # noinspection PyTypeChecker unbanTime = datetime.datetime.fromtimestamp(duration).strftime( '%d. %m. %Y um %H:%M:%S') embed.title = f'Moderation [TEMPMUTE]' embed.add_field(name=f'{std.date_emoji} **__Strafe bis__**', value=unbanTime) userEmbed = std.getUserEmbed(reason, ctx.guild.name, punishType=2, duration=unbanTime) await logs.createEmbedLog(ctx, modEmbed=embed, userEmbed=userEmbed, member=user) await user.add_roles(muteRole) await ctx.embed( f'{std.law_emoji} Der User `{user}` wurde erfolgreich bis `{unbanTime}` für `{reason}` gemuted.', delete_after=5) await ctx.db.execute( 'INSERT INTO extra.timers (sid, objid, type, time) VALUES ($1, $2, 1, $3)', ctx.guild.id, user.id, duration) await ctx.message.delete()
async def tempban(self, ctx: context.Context, user: discord.Member, duration: converters.ParseTime, *, reason: converters.ActionReason = 'No Reason'): if not await self.punishUser(user): return await ctx.error('Du kannst diesen User nicht bannen.') if user == ctx.author: return await ctx.error( 'Du kannst den Command nicht an dir selbst ausführen.') embed = std.getBaseModEmbed(reason, user=user, mod=ctx.author) # noinspection PyTypeChecker unbanTime = datetime.datetime.fromtimestamp(duration).strftime( '%d. %m. %Y um %H:%M:%S') embed.title = f'Moderation [TEMPBAN]' embed.add_field(name=f'{std.date_emoji} **__Strafe bis__**', value=unbanTime) userEmbed = std.getUserEmbed(reason, ctx.guild.name, punishType=0, duration=unbanTime) await logs.createEmbedLog(ctx, modEmbed=embed, userEmbed=userEmbed, member=user) await user.ban(reason=reason, delete_message_days=1) await ctx.embed( f'{std.law_emoji} Der User `{user}` wurde erfolgreich bis `{unbanTime}` für `{reason}` gebannt.', delete_after=5) await ctx.db.execute( 'INSERT INTO extra.timers (sid, objid, type, time) VALUES ($1, $2, 0, $3)', ctx.guild.id, user.id, duration) await ctx.message.delete()