我希望机器人在 1 天内删除警告角色,但是它给了我一个错误。 这是我尝试过的代码,我可以在代码工作时更改整个代码:
@commands.has_permissions(ban_members=True)
async def warn(ctx,member:discord.Member, *,reason=None,time:int):
warn_role=ctx.guild.get_role(811176827803795486)
time_convert = {"d": 86400}
tempmute = int(time[0]) * time_convert[time[-1]]
await member.add_roles(warn_role)
await ctx.send(f'{member.mention} has been warned for {reason}')
await asyncio.sleep(tempmute)
await member.remove_roles(warn_role)
await member.send(f'{member.mention} is free to go')
错误信息:
discord.ext.commands.errors.CommandInvokeError: Command raised an exception: TypeError: warn() missing 1 required keyword-only argument: 'time'
答案 0 :(得分:0)
正如@Kemp 所指出的,您将不得不重新排列您的参数,以便您可以充分传递所有参数。
@commands.has_permissions(ban_members=True)
async def warn(ctx, member : discord.Member, time : int, *, reason=None):
warn_role=ctx.guild.get_role(811176827803795486)
time_convert = {"d": 86400}
tempmute = int(time[0]) * time_convert[time[-1]]
await member.add_roles(warn_role)
await ctx.send(f'{member.mention} has been warned for {reason}')
await asyncio.sleep(tempmute)
await member.remove_roles(warn_role)
await member.send(f'{member.mention} is free to go')
因此,现在您可以将其作为 warn <member> <time> <reason>
运行,其中 reason
可以是多个关键字。