【发布时间】:2020-08-13 07:28:02
【问题描述】:
所以我试图在我的机器人中创建一个设置命令,用户可以在其中选择他想要的内容。问题是我无法让它按我的意愿工作。
我有这个作为我的代码
# Function to write changes to file
def set_adminrole(guild: Guild, *, role: Role):
with open("admins.json") as f:
roles = json.load(f)
roles[str(guild.id)] = role.id
with open("admins.json", 'w') as f:
json.dump(roles, f, indent=4)
# Actual command
-- Not important code --
await ctx.send(f"Now, mention the role you want it to be the admin role")
role: Message = await bot.wait_for("message", check=check)
actualrole: Role = Role(role)
set_adminrole(ctx.message.guild, role=actualrole)
await ctx.send(f"Admin role changed to {Role(role.content).mention}... Let's keep going")
当我提到将其设置为管理员角色的角色时,它会引发此错误:
Ignoring exception in command setup:
Traceback (most recent call last):
File "C:\Users\xlysa\AppData\Local\Programs\Python\Python38-32\lib\site-packages\discord\ext\commands\core.py", line 85, in wrapped
ret = await coro(*args, **kwargs)
File "D:/Ficheiros/Pastas/Tudo/Coding/Python/Projects/Server-Utils/bot.py", line 262, in start_setup
actualrole: Role = Role(role)
TypeError: __init__() takes 1 positional argument but 2 were given
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "C:\Users\xlysa\AppData\Local\Programs\Python\Python38-32\lib\site-packages\discord\ext\commands\bot.py", line 903, in invoke
await ctx.command.invoke(ctx)
File "C:\Users\xlysa\AppData\Local\Programs\Python\Python38-32\lib\site-packages\discord\ext\commands\core.py", line 855, in invoke
await injected(*ctx.args, **ctx.kwargs)
File "C:\Users\xlysa\AppData\Local\Programs\Python\Python38-32\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: TypeError: __init__() takes 1 positional argument but 2 were given
感谢您的帮助
【问题讨论】:
-
您的问题没有足够的信息。查看日志,您会发现一些内容告诉您导致错误的原因,可能是:
...Server-Utils/bot.py", line 262, in start_setup -
请提供预期的minimal, reproducible example。由于您未能为
Role类提供适当的支持,并且您发布的代码在很多方面都无法运行,因此我们无法为您做太多事情。
标签: python python-3.x discord discord.py