python - Discord py - AttributeError:“str”对象没有属性“remove_roles”
问题描述
我已经搜索了几个小时的 stackoverflow 问题,但似乎无法弄清楚我哪里出错了。我正在尝试制作在用户获得“已验证”角色后删除“新手”角色的不和谐机器人。
@client.event
async def on_member_update(before, after):
if len(before.roles) < len(after.roles):
newRole = next(role for role in after.roles if role not in before.roles)
member = after.name
currentRoles = after.roles
if newRole.name == "verified":
removeRole = discord.utils.get(currentRoles, name="Newbie")
await member.remove_roles(removeRole)
我尝试了很多不同的组合,也搜索了不和谐但似乎无法获得语法。
removeRole = <id>
removeRole = (id=<id>)
remove_role = get(after.roles, name="Newbie")
await member.remove_roles(<id>)
这是完整的错误
Ignoring exception in on_member_update
Traceback (most recent call last):
File "/usr/local/lib/python3.8/dist-packages/discord/client.py", line 343, in _run_event
await coro(*args, **kwargs)
File "security.py", line 117, in on_member_update
await member.remove_roles(removeRole)
AttributeError: 'str' object has no attribute 'remove_roles'
任何帮助将不胜感激!
解决方案
我要做的是:
user = self.client.get_user(after.id)
这样,用户实际上是一个对象,而不是名称。
如果这不起作用,请尝试:
user = self.client.get_user(after.id)
if user is None:
user = await self.client.fetch_user(after.id)
推荐阅读
- python - 如何知道 GEKKO 花了多长时间解决我的模型?
- ios - 加载类时 UITableViewCell UIView 颜色不会立即更改
- azure - Update-AzureRmVmss、Update-AzureRmVmssInstance 和 Update-AzureRmVmssVM 有什么区别?
- azure-devops - Azure Devops - 用户故事描述/接受标准字段中的 Markdown 支持?
- oracle - Oracle APEX - 默认主键值“t1000”
- c++ - 等待 MPI-IO 在 MPI_File_open 上同步的进程旋转
- javascript - 使 Google Chrome 浏览器图标在任务栏上闪烁
- linux - 如何在linux中重新排序数百个制表符分隔文件的列?
- javascript - 如何在点击时更改字体真棒图标
- node.js - Await 不会暂停执行