我试图设置这个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)
试试。