如何为加入 Discord 公会的新成员自动分配角色?
How to autoassign roles to new members joining Discord guild?
我正在编写一个 Discord 机器人,当新用户加入我的 Discord 公会时,它会为他们分配一个角色。假设这个角色叫做“朋友”。
该机器人用 Python 编写并使用 Discord.py 库。
我正在覆盖 on_member_join() 函数。
@bot.event
异步定义 on_member_join(成员):
- 将成员分配给好友角色
我看到成员 class 有一个 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)
已解决!感谢 Bagle 的帮助。
这是有效的方法:
@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)
DEFAULT_ROLE_ID 是我要分配的角色 ID 的整数。
确保您的机器人具有“管理角色”权限集,并且高于您在公会角色层次结构中尝试设置的角色。
例如,如果您的 bot 具有 Bot 角色,而您尝试自动分配的角色是 Friend,请确保 Bot 在“角色”选项卡中位于 Friend 之上。如果 Bot 不在 Friend 之上,你会遇到错误。
我正在编写一个 Discord 机器人,当新用户加入我的 Discord 公会时,它会为他们分配一个角色。假设这个角色叫做“朋友”。
该机器人用 Python 编写并使用 Discord.py 库。
我正在覆盖 on_member_join() 函数。
@bot.event 异步定义 on_member_join(成员):
- 将成员分配给好友角色
我看到成员 class 有一个 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)
已解决!感谢 Bagle 的帮助。
这是有效的方法:
@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)
DEFAULT_ROLE_ID 是我要分配的角色 ID 的整数。
确保您的机器人具有“管理角色”权限集,并且高于您在公会角色层次结构中尝试设置的角色。
例如,如果您的 bot 具有 Bot 角色,而您尝试自动分配的角色是 Friend,请确保 Bot 在“角色”选项卡中位于 Friend 之上。如果 Bot 不在 Friend 之上,你会遇到错误。