Есть ли способ, которым я могу отменить бан используя Discord.py Rewrite Bot? - PullRequest
0 голосов
/ 18 апреля 2019

Как мне сделать команду unban в Discord.py Rewrite Я хотел очистить свой вопрос, потому что нет команды bot.unban (возможно, она есть), а игрока нет в списке, поэтому яможно упомянуть пользователя

Редактировать:

Traceback (most recent call last):
  File "C:\Users\BKhushi\AppData\Local\Programs\Python\Python36-32\lib\site-packages\discord\client.py", line 227, in _run_event
    await coro(*args, **kwargs)
  File "C:\Users\BKhushi\Desktop\gg\Discordgang.py", line 125, in on_command_error
    raise error
  File "C:\Users\BKhushi\AppData\Local\Programs\Python\Python36-32\lib\site-packages\discord\ext\commands\bot.py", line 814, in invoke
    await ctx.command.invoke(ctx)
  File "C:\Users\BKhushi\AppData\Local\Programs\Python\Python36-32\lib\site-packages\discord\ext\commands\core.py", line 675, in invoke
    await self.prepare(ctx)
  File "C:\Users\BKhushi\AppData\Local\Programs\Python\Python36-32\lib\site-packages\discord\ext\commands\core.py", line 640, in prepare
    await self._parse_arguments(ctx)
  File "C:\Users\BKhushi\AppData\Local\Programs\Python\Python36-32\lib\site-packages\discord\ext\commands\core.py", line 561, in _parse_arguments
    transformed = await self.transform(ctx, param)
  File "C:\Users\BKhushi\AppData\Local\Programs\Python\Python36-32\lib\site-packages\discord\ext\commands\core.py", line 427, in transform
    return await self.do_conversion(ctx, converter, argument, param)
  File "C:\Users\BKhushi\AppData\Local\Programs\Python\Python36-32\lib\site-packages\discord\ext\commands\core.py", line 382, in do_conversion
    return await self._actual_conversion(ctx, converter, argument, param)
  File "C:\Users\BKhushi\AppData\Local\Programs\Python\Python36-32\lib\site-packages\discord\ext\commands\core.py", line 328, in _actual_conversion
    ret = await instance.convert(ctx, argument)
  File "C:\Users\BKhushi\AppData\Local\Programs\Python\Python36-32\lib\site-packages\discord\ext\commands\converter.py", line 158, in convert
    raise BadArgument('User "{}" not found'.format(argument))
discord.ext.commands.errors.BadArgument: User "@<552510634303029298>" not found```

Ответы [ 2 ]

2 голосов
/ 18 апреля 2019

Если у вас есть объект Member, представляющий запрещенный Member, вы можете использовать Member.unban.Однако в большинстве случаев вам придется получить объект User, представляющий этого пользователя, и использовать Guild.unban:

from discord import User
from discord.ext.commands import Bot, guild_only

bot = Bot("!")

@bot.command(name='unban')
@guild_only()  # Might not need ()
async def _unban(ctx, id: int):
    user = await bot.fetch_user(id)
    await ctx.guild.unban(user)


bot.run("TOKEN")
0 голосов
/ 03 июня 2019

Я бы рассмотрел следующую команду. Приношу свои извинения, что он не отправляет сообщение после указанного действия, чтобы узнать больше о том, как писать в Discord.Py Rewrite Я рекомендую вам посмотреть здесь !

  async def pardon(ctx, *, member):
      banned_users = await ctx.guild.bans()
      member_name, member_discriminator = member.split('#')

      for ban_entry in banned_users:
          user = ban_entry.banned_users

          if (user.name, user.discriminator) == (member_name, member_discriminator):
              await ctx.guild.unban(user)
...