如何防止我的机器人获得角色

Posted

技术标签:

【中文标题】如何防止我的机器人获得角色【英文标题】:How can i prevent my bot from getting roles 【发布时间】:2021-05-24 15:18:25 【问题描述】:

伙计们,我正在开发一个反应角色不和谐机器人,但每当我设置反应时,我的机器人也会获得角色我该如何防止这种情况发生?我不希望我的机器人获得所有角色

这是我的代码。

@client.event
async def on_raw_reaction_add(payload):
for role_id, msg_id, emoji in client.reaction_roles:
  if msg_id == payload.message_id and emoji == str(payload.emoji.name.encode("utf-8")):
   await payload.member.add_roles(client.get_guild(payload.guild_id).get_role(role_id))

编辑: 所以我在我的代码中添加了一个 if 语句,但显然它是错误的。那么你能告诉它是如何工作的吗??

@client.event
async def on_raw_reaction_add(payload):
  for role_id, msg_id, emoji in client.reaction_roles:
    if msg_id == payload.message_id and emoji == str(payload.emoji.name.encode("utf-8")):
      if payload.member== client.user:
        return
      else:
        await payload.member.add_roles(client.get_guild(payload.guild_id).get_role(role_id))

【问题讨论】:

【参考方案1】:

简单,忽略反应加法器是你的机器人的情况!

@client.event
async def on_raw_reaction_add(payload):
   if payload.user_id = client.user.id:
       return
   #other stuff here

【讨论】:

评论并不是一个真正提出新问题的地方。如果相关,请发布新问题或编辑此问题。

以上是关于如何防止我的机器人获得角色的主要内容,如果未能解决你的问题,请参考以下文章

如何让一个不和谐的 js 机器人在某人获得某个角色后向他发送消息

获得提及的成员的最高角色

Discord.py:我怎样才能获得机器人角色并改变他的颜色?

如何使用 Discord API 代表用户添加对消息的反应?

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

如何让我的不和谐机器人列出某个角色的人?