Discord.py - add_roles 私信

Discord.py - add_roles on DM

本质上,我正在尝试构建一个机器人,当用户将带有特定关键字的 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)

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

另外 add_roles 方法只接受角色而不是 User/Member 对象

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)

您需要检索 member 对象而不是 user 对象,因为 user 对象未与公会链接。

server = client.get_guild(server_id)
role = discord.utils.get(server.roles, name="Member")
member = server.get_member(ctx.message.author.id)
await member.add_roles(role)