我随机尝试创建一个不和谐的机器人,该机器人在发生错误的时候为我分配了一个哈利波特的宿舍。无论我多么努力地修复它,都无法修复。 discord.py的版本为1.3.2,当前正在使用Python 3.8。我该如何解决该错误?
错误
discord.ext.commands.errors.missingrequiredargument:ctx是缺少的必需参数。
CODE
app.py
...
@client.command(pass_context=True, name="add")
async def enter(self, ctx):
await ctx.send("Wait..")
await asyncio.sleep(3.0)
num = r.randint(1, 4)
if num == 1:
#Gryffindor
egg = r.randint(1, 2)
if egg == 1:
await ctx.send("Um... it's hard... It's very difficult...")
await asyncio.sleep(2.0)
await ctx.send("No Slytherin? Really?")
await asyncio.sleep(1.0)
await ctx.send("So, I can't help it.")
await asyncio.sleep(1.0)
else:
await ctx.send("Hmm...")
await ctx.send("Slytherin shouldn't go.")
await asyncio.sleep(1.0)
role = discord.utils.get(ctx.guild.roles, name="「?」Gryffindor")
user = ctx.message.author
await user.add_roles(role)
await ctx.send("Gryffindor!")
if num == 2:
# Slytherin
await ctx.send("There's nothing to see!")
await asyncio.sleep(0.5)
role = discord.utils.get(ctx.guild.roles, name="「?」Slytherin")
user = ctx.message.author
await user.add_roles(role)
await ctx.send("Slytherin!")
if num == 3:
# Hufflepuff
await ctx.send("Hmm...")
await asyncio.sleep(1.4)
role = discord.utils.get(ctx.guild.roles, name="「?」Hufflepuff")
user = ctx.message.author
await user.add_roles(role)
await ctx.send("Hufflepuff!")
if num == 4:
#Lebenclaw
await ctx.send("Well, it would be hard for difficult ...")
await asyncio.sleep(1.2)
role = discord.utils.get(ctx.guild.roles, name="「?」Lebenclaw")
user = ctx.message.author
await user.add_roles(role)
await ctx.send("Lebenclaw!")
答案 0 :(得分:0)
bot = discord.Client()
这正是您的问题。
您当前使用的是
@client.command(pass_context=True, name="add")
是discord.ext.commands库,这意味着您正在使用discord.py的附件(但已包含在安装中)。这是其文档:documentation
我们该如何解决?
这很容易:
代替
client = discord.Client()
请执行以下操作:(此代码摘自官方示例:here
from discord.ext import commands
client = commands.Bot(command_prefix='!')
始终将整个代码包含在问题中,或者至少包含一个可重现的示例。
编辑:
似乎您正在使用旧的代码段,也不再需要使用pass_context
。