成员角色命令

Members role command

所以我一直在尝试让这个命令 $100ivShiny 给我的成员实际排名 100ivShiny。但我似乎找不到解决办法。

if message.content.startswith('0ivShiny'):
      role = discord.utils.get(message.server.roles, name="100ivShiny")
      await client.add_role(user, role)
      await client.send_message(channel, "Role added")

这是我遇到的错误

  File "mod.py", line 29, in on_message
    await client.add_role(user, role)
AttributeError: '<class 'discord.client.Client'>' object has no attribute 'add_role'

协程名为Client.add_roles,而不是Client.add_role。它会像

一样使用
if message.content.startswith('0ivShiny'):
      role = discord.utils.get(message.server.roles, name="100ivShiny")
      await client.add_roles(user, [role])
      await client.send_message(channel, "Role added")

假设 messageuserchannel 已正确定义。

如果您要编写很多这样的命令,您应该考虑使用 discord.ext.commands 扩展名,这意味着您不必将所有命令都放在 on_message 事件。