Skip to content

Instantly share code, notes, and snippets.

@OGNova
Created September 16, 2018 22:00
Show Gist options
  • Save OGNova/b053d470648138ce1118361c8213f73d to your computer and use it in GitHub Desktop.
Save OGNova/b053d470648138ce1118361c8213f73d to your computer and use it in GitHub Desktop.
@Plugin.command('mban', parser=True, level=CommandLevels.MOD)
@Plugin.parser.add_argument('users', type=long, nargs='+')
@Plugin.parser.add_argument('-r', '--reason', default='', help='reason for modlog')
def mban(self, event, args):
members = []
failed_ids = []
for user_id in args.users:
if not self.can_act_on(event, user_id, throw=False):
# raise CommandFail('failed to ban {}, invalid permissions'.format(user_id))
failed_ids.append(member)
continue
members.append(user_id)
msg = event.msg.reply('Ok, ban {} users for `{}`?'.format(len(members), args.reason or 'no reason'))
msg.chain(False).\
add_reaction(GREEN_TICK_EMOJI).\
add_reaction(RED_TICK_EMOJI)
try:
mra_event = self.wait_for_event(
'MessageReactionAdd',
message_id=msg.id,
conditional=lambda e: (
e.emoji.id in (GREEN_TICK_EMOJI_ID, RED_TICK_EMOJI_ID) and
e.user_id == event.author.id
)).get(timeout=10)
except gevent.Timeout:
return
finally:
msg.delete()
if mra_event.emoji.id != GREEN_TICK_EMOJI_ID:
return
for user_id in members:
if event.config.notify_action_on.bans:
try:
event.guild.get_member(user.id).user.open_dm().send_message('You have been **Permanently Banned** from the guild **{}** for `{}`.'.format(event.guild.name, reason or 'no reason specified.'))
except:
pass
else:
pass
Infraction.ban(self, event, user_id, args.reason, guild=event.guild)
raise CommandSuccess('banned {} users and failed to ban {} users.'.format(len(members), len(failed_ids)))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment