discord.py 机器人不会提供成员加入时提供的角色



我试图设置这个bot事件,它将为加入的成员提供一个角色。由于某些原因,它没有给出角色,但也没有给出任何错误输出。

@client.event
def on_member_join(member):
role = discord.utils.get(member.server.roles, id="868708006504833034")
await client.add_roles(member, role)
@client.event
def on_member_join(member):
role = discord.utils.get(member.server.roles, id="868708006504833034")
await client.add_roles(member, role)

你的代码有一些问题

  • 第2行,函数不是异步的,discord.py事件需要异步,所以将def替换为async def
  • 在第3行,id总是整型,所以你会把它变成整型,但你甚至不应该使用discord.utils.get,因为你可以只做member.guild.get_role(id)。注意:id必须是int
  • 在第4行,客户端。Add_roles已经过时了,它被member.add_roles所取代。所以你必须把client.add_roles(member, role)改成member.add_roles(role)

所以完整更新的代码将是

@client.event
async def on_member_join(member):
role = member.guild.get_role(868708006504833034)
await member.add_roles(role)

使用

@client.event
async def on_member_join(member):
await member.add_roles(discord.utils.get(member.guild.roles, id=868708006504833034))

我认为它可以正常工作

ID为整数:

role = discord.utils.get(member.server.roles, id=868708006504833034)

试试。

最新更新