我正在尝试使一个机器人在成员加入服务器时将执行某些操作。更确切地说,它必须赋予他们一些角色,而DM则是成员。
Tab
我的问题是,出于某种原因,它不能始终如一地工作。有时,它赋予了所有角色,其他角色只是成员,而其他角色则根本没有。我了解并非所有成员都会获得DM(由于隐私设置),这很好,但是我真的不明白为什么不是所有成员都加入后获得所有角色。预先感谢!
答案 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")