python - replace_roles discord.py 真的很混乱吗?
问题描述
我不完全了解如何replace roles
在discord.py中使用。我在互联网上到处搜索,但我似乎仍然无法弄清楚如何实现它。
我正在努力做到这一点,以便用户可以自行分配角色,但一次只有 1 个角色。例如,如果他们具有角色“1”并输入命令以获取角色“2”,我希望机器人将角色“1”替换为角色“2”,因此他们应该只有角色“2”。
我确保机器人角色在层次结构中高于我为人们分配的角色,并且机器人具有管理角色权限。我没有使用重写,我使用的是 python 3.6。
解决方案
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 是一个异步函数。您可能想在它之前添加“等待”,或者您可能看不到任何结果。
推荐阅读
- laravel - Laravel-permissionTrait.php
- javascript - 有没有办法将在 .then 承诺中返回的结果保存到变量中
- html - 我如何从下往上“折叠”一个 div?
- docker - 无法远程连接到数字海洋 redis 服务组件
- r - 如何分析 R 中的多项选择题?
- sockets - 不得暂停 UWP 应用 - 切换到 Win32?
- ios - 在 SwiftUI 中更改 TabBar 色调
- reactjs - React 应用程序不显示从 MongoDB Atlas 获取的数据
- javascript - 将画布保存为图像不保存某些元素
- visual-studio-code - Visual Studio Code 中的 Python 函数文档