Discord.py-DM上的add_roles

时间:2020-09-07 21:07:25

标签: python discord discord.py 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)

2 个答案:

答案 0 :(得分:1)

DM中的用户没有角色,行会中的Member具有角色,因此您需要从该服务器的用户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)

答案 1 :(得分:0)

您需要检索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)