如何为加入Discord guild的新成员自动分配角色?

如何为加入Discord guild的新成员自动分配角色?,discord,discord.py,discord.py-rewrite,Discord,Discord.py,Discord.py Rewrite,我正在编写一个Discord机器人,当新用户加入我的Discord公会时,它会为他们分配一个角色。假设这个角色被称为“朋友” bot是用Python编写的,并使用Discord.py库 我正在覆盖on_member_join()函数 @机器人事件 成员加入时的异步定义(成员): 将成员分配给好友角色 我看到成员类中有一个add_roles()函数,但在这种情况下它不起作用,因为新成员没有管理角色的权限。出于安全考虑,默认的@everyone角色不应该具有管理角色的能力,也不应该能够分配它想要

我正在编写一个Discord机器人,当新用户加入我的Discord公会时,它会为他们分配一个角色。假设这个角色被称为“朋友”

bot是用Python编写的,并使用Discord.py库

我正在覆盖on_member_join()函数

@机器人事件 成员加入时的异步定义(成员):

  • 将成员分配给好友角色
我看到成员类中有一个add_roles()函数,但在这种情况下它不起作用,因为新成员没有管理角色的权限。出于安全考虑,默认的@everyone角色不应该具有管理角色的能力,也不应该能够分配它想要的任何角色

Discord Bot没有管理角色的权限

有没有办法让机器人自动将新成员分配给好友角色

谢谢。

试试这个:

@bot.event
async def on_member_join(member):
    role = discord.utils.get(member.server.roles, id="<role ID>")
    await bot.add_roles(member, role)

@bot.event
成员加入时的异步定义(成员):
role=discord.utils.get(member.server.roles,id=”“)
等待bot.add_角色(成员,角色)

已解决!谢谢贝格尔的帮助

以下是有效的方法:

@bot.event
async def on_member_join(member):
        default_role = discord.utils.get(member.guild.roles, id=DEFAULT_ROLE_ID)
        await member.add_roles(default_role)
默认角色ID是我试图分配的角色ID的整数

确保你的机器人拥有“管理角色”权限集,并且高于你试图在公会角色层次结构中设置的角色


例如,如果您的bot具有bot角色,并且您尝试自动分配的角色是Friend,请确保bot在“角色”选项卡中位于Friend之上。如果机器人不在Friend之上,您将遇到错误。

这是否回答了您的问题?不幸的是没有。我得到这个错误:“'Member'对象没有'server'属性”。此外,“'Bot'对象没有属性'add_roles'”,我们来看看这个:太棒了!谢谢我得到这个错误:“成员”对象没有“服务器”属性,而且:“'Bot'对象没有“添加角色”属性”