当我的机器人应该只给触发它的用户一个角色时,我的机器人给了每个人角色

时间:2021-05-25 09:34:01

标签: python api discord discord.py

我想制作一个验证系统,当我 dm 机器人时会触发这个系统,但它为每个服务器中的每个人提供了角色我只希望触发它的用户获得我认为 for user in guild.members:是正在做的事情

user = message.author
guild = client.guilds[0]
Verified = discord.utils.get(guild.roles, name="Verified")

for user in guild.members:
  await user.add_roles(Verified)
message.reply(f'You are verified in {guild}')

1 个答案:

答案 0 :(得分:4)

for 循环的作用是遍历公会中的每个用户。这就是为什么它将角色授予所有人。

相反,由于您已经拥有作者(来自 user = message.author),您可以删除 for 循环并简单地授予他们角色:

await user.add_roles(Verified)