【发布时间】:2021-03-26 13:13:44
【问题描述】:
所以我一直在尝试创建两个命令——一个禁止多个用户,另一个取消多个用户的禁令;massban 和 massunban。
这两个命令对服务器中的用户有效,但需要注意的是它不适用于不在服务器中的 ID。
这里的想法是做 !massban ID ID ID ID (...) 和 !massunban ID ID ID ID ID (...)
@commands.command(name="massban")
@commands.has_any_role("Admin", "Moderator", "Bot")
async def massban(self, context, *user_ids: int):
for u in user_ids:
user_object = self.client.get_user(u)
await context.guild.ban(user_object)
@commands.command(name="massunban")
@commands.has_any_role("Admin", "Moderator", "Bot")
async def massunban(self, context, *user_ids: int):
for u in user_ids:
user_object = self.client.get_user(u)
await context.guild.unban(user_object)
问题是这会返回如下错误
上述异常是以下异常的直接原因:
Traceback (most recent call last):
File "C:\Users\Dazz\AppData\Local\Programs\Python\Python38\lib\site-packages\discord\ext\commands\bot.py", line 903, in invoke
await ctx.command.invoke(ctx)
File "C:\Users\Dazz\AppData\Local\Programs\Python\Python38\lib\site-packages\discord\ext\commands\core.py", line 859, in invoke
await injected(*ctx.args, **ctx.kwargs)
File "C:\Users\Dazz\AppData\Local\Programs\Python\Python38\lib\site-packages\discord\ext\commands\core.py", line 94, in wrapped
raise CommandInvokeError(exc) from exc
discord.ext.commands.errors.CommandInvokeError: Command raised an exception: AttributeError: 'NoneType' object has no attribute 'id'
我一直在查看文档,到处寻找解决此问题的方法;我在一些 Discord 服务器上寻求帮助,但无济于事。
任何帮助将不胜感激。
【问题讨论】:
-
您是否启用了意图?
-
已启用!
intents = discord.Intents.default() intents.members = True client = discord.Client(intents=intents) client = commands.Bot(command_prefix="!", intents=intents)
标签: python discord discord.py