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))
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))