首页 > 解决方案 > replace_roles discord.py 真的很混乱吗?

问题描述

我不完全了解如何replace rolesdiscord.py中使用。我在互联网上到处搜索,但我似乎仍然无法弄清楚如何实现它。

我正在努力做到这一点,以便用户可以自行分配角色,但一次只有 1 个角色。例如,如果他们具有角色“1”并输入命令以获取角色“2”,我希望机器人将角色“1”替换为角色“2”,因此他们应该只有角色“2”

我确保机器人角色在层次结构中高于我为人们分配的角色,并且机器人具有管理角色权限。我没有使用重写,我使用的是 python 3.6。

标签: pythonreplacebotsrolesdiscord.py

解决方案


Discord.py 有一个有用的函数 discord.utils.get(),它接受某种列表和你正在寻找的参数。例如,

targetrole = discord.utils.get(myserver.roles, name="MyTargetRole")

请注意,如果您通过 PM 更改用户的角色,则该消息不会向您提供服务器。您可以从 client.servers 以相同的方式获取服务器

另请注意,通过 PM 将 message.author 传递给 replace_roles 将导致错误,因为该用户实例没有服务器。相反,从 server.members 中获取用户。您可以匹配从 message.author 提供的名称。

第三,注意 replace_roles 是一个异步函数。您可能想在它之前添加“等待”,或者您可能看不到任何结果。


推荐阅读