【问题标题】:Is There A Way I Can Unban Using My Discord.py Rewrite Bot有没有办法可以使用我的 Discord.py Rewrite Bot 解除禁令
【发布时间】:2019-09-08 14:17:55
【问题描述】:

我如何在 Discord.py Rewrite 中创建一个 unban 命令我想澄清我的问题,因为没有 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```

【问题讨论】:

  • 请不要破坏您的问题。这样它就失去了对未来读者的使用

标签: python bots discord discord.py discord.py-rewrite


【解决方案1】:

我会考虑以下命令。很抱歉,在上述操作后它没有发送消息,以了解更多关于如何在 Discord.Py 中编写的信息 Rewrite 我建议您观看 here!

  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)

【讨论】:

  • 哎呀我搞砸了!
  • 它写 ban_entry 没有属性banned_users
【解决方案2】:

如果您有一个代表被禁止的MemberMember 对象,则可以使用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")

【讨论】:

  • 它让我找不到那个成员
  • @bosgamer 您能否将完整的错误消息编辑到您的问题中?
  • 我试过了,但同样的问题
  • @bosgamer 我将其修改为使用fetch_user,事实上我知道这并不要求您能够“看到”该用户来获取他们的信息。你能用那个代码再试一次吗?
  • 谢谢,但有没有办法通过提及而不是 id 来解除禁令?
猜你喜欢
  • 2020-12-24
  • 2020-02-23
  • 2022-01-16
  • 2020-11-01
  • 2020-12-19
  • 2020-11-12
  • 2022-01-05
  • 2020-12-14
  • 2020-12-25
相关资源
最近更新 更多