首页 > 解决方案 > Discord.py - DM 上的 add_roles

问题描述

本质上,我试图构建一个机器人,当用户将具有特定关键字的 DM 作为 DM 发送给机器人时,该机器人赋予用户特定角色。关键字的东西和一切都运行良好。服务器解析正确,但我认为我在获取角色或添加角色时在某些时候犯了错误。这是我的代码中用于角色的特定部分:

server = client.get_guild(<my server id here>)
role = discord.utils.get(server.roles, name="Member")
await user.add_roles(ctx.message.author, role)

标签: pythondiscorddiscord.pyroles

解决方案


DM 中的用户没有角色,公会中的成员有角色,因此您需要从该服务器的用户 ID 获取成员。

此外 add_roles 方法只接受角色而不是用户/成员对象

server = client.get_guild(<your server id here>)
role = discord.utils.get(server.roles, name="Member")
member = server.get_member(user.id)
await member.add_roles(role)

推荐阅读