コード例 #1
0
ファイル: Moderation.py プロジェクト: JohannesIBK/plyoox-bot
    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)
コード例 #2
0
ファイル: Moderation.py プロジェクト: JohannesIBK/plyoox-bot
    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()
コード例 #3
0
ファイル: Moderation.py プロジェクト: JohannesIBK/plyoox-bot
    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()
コード例 #4
0
ファイル: Moderation.py プロジェクト: JohannesIBK/plyoox-bot
    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()