예제 #1
0
    def unnuke(self, event, user, reason):
        contents = []

        for gid, guild in list(self.guilds.items()):
            guild = self.state.guilds[gid]
            perms = guild.get_permissions(self.state.me)

            if not perms.ban_members and not perms.administrator:
                contents.append(':x: {} - Could not Unban'.format(guild.name))
                continue

            try:
                Infraction.create(guild_id=guild.id,
                                  user_id=user,
                                  actor_id=self.client.api.users_me_get().id,
                                  type_=Infraction.Types.UNBAN,
                                  reason=reason)

                GuildBan.get(user_id=user, guild_id=guild.id)
                guild.delete_ban(user)
            except:
                contents.append(':x: {} - Error'.format(guild.name))
                self.log.exception('Failed to remove ban for %s in %s', user,
                                   gid)

            contents.append(':white_check_mark: {} - Fixed :heart:'.format(
                guild.name))

        event.msg.reply('Result:\n' + '\n'.join(contents))
예제 #2
0
    def unban(self, event, user, reason=None):
        try:
            GuildBan.get(user_id=user, guild_id=event.guild.id)
            event.guild.delete_ban(user)
        except GuildBan.DoesNotExist:
            raise CommandFail('user with id `{}` is not banned'.format(user))

        Infraction.create(guild_id=event.guild.id,
                          user_id=user,
                          actor_id=event.author.id,
                          type_=Infraction.Types.UNBAN,
                          reason=reason)
        raise CommandSuccess('unbanned user with id `{}`'.format(user))