当成员加入服务器时,on_member_join不提供角色

时间:2020-10-06 07:02:41

标签: python discord discord.py

我正在尝试使一个机器人在成员加入服务器时将执行某些操作。更确切地说,它必须赋予他们一些角色,而DM则是成员。

Tab

我的问题是,出于某种原因,它不能始终如一地工作。有时,它赋予了所有角色,其他角色只是成员,而其他角色则根本没有。我了解并非所有成员都会获得DM(由于隐私设置),这很好,但是我真的不明白为什么不是所有成员都加入后获得所有角色。预先感谢!

1 个答案:

答案 0 :(得分:1)

这可能是因为Discord API的速率限制。

这可能有效

@client.event
async def on_member_join(member):
    roles = {"Level": 705112591927869513, "Interests": 705116168444444773, "Region": 725984087948656710,
             "Subscriptions": 705122149152850062}
    
    member_role = discord.utils.get(member.guild.roles, name = "member")
    await member.add_roles(member_role)
    roles = [member.guild.get_role(i) for i in roles.values()]
    await member.add_roles(*roles)
    await member.send("Welcome to the server! Please read the rules and verify yourself to be able to type! "
"Link to jump directly to the message - link")