Discord bot命令不起作用(Discord.py)

时间:2020-05-16 23:28:35

标签: python bots discord

我一直在尝试用Python创建一个不和谐的机器人。假设其中一个命令是删除用户角色并添加一个特定角色。然后,如果它们在语音信道上,请将其发送到另一个特定的语音信道。我尝试了以下代码:

@client.command()
async def prisioner(member:discord.member):
    role=await guild.get_role(702269742014005248)
    channel=await guild.get_channel(690488036781195294)
    await client.add_roles(member, role)
    if member.activity!=None:
        await move_to(channel)

它不起作用,并且在IDLE上没有显示任何错误。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:2)

有两点要提:

  • 使用命令修饰符时,上下文始终是第一个参数(请参阅参考资料)。
  • 请注意您的拼写,因为我猜该命令应该叫做prisoner,如果是这样,那么您就打了错字; prisioner
  • 似乎某些代码的语法基于old discord.py版本,因此在使用文档时,请坚持使用最新的语法(请参阅参考资料)。
  • 您似乎{@ 1}}不必要地做了一些事情。 await关键字仅应用于协程(它将在文档中告诉您)。
  • 您正在很好地设置参数类型-绝对是从一开始就习惯使用的好习惯。

在继续执行您的命令之前,如果您使用的是await事件,请确保您拥有await client.process_commands(message)

您的命令,被重写:

on_message(message)

参考: