角色不起作用的discord.py测试。总是返回假

时间:2019-06-10 16:09:25

标签: python bots discord roles discord.py

我想测试用户是否具有两个特定角色之一,但由于某种原因,我编写的代码始终返回false。

我还尝试了另一种方法,该方法始终返回true。在discord.py discord服务器上也没有得到答案

#first approach. always returns false
def isMod(user):
    for role in user.roles:
        if role.id==587614886771687445:
            return True
        elif role.id==587615608279924756:
            return True
    return False



#second approach. always returns true
def isMod(user):
    if discord.utils.get(user.roles, id=587614886771687445) is None and discord.utils.get(user.roles, id=587615608279924756):
        return False
    else:
        return True

如果用户具有给定id的两个或两个角色,则返回true;否则,返回false。

1 个答案:

答案 0 :(得分:0)

我有在我的系统上工作的代码。您可以在此处尝试一些操作以解决此问题。

  1. 您如何获得用户名?尝试使用以下方式打印出用户名:
@client.event
async def on_message(message):
      if message.content.startswith('$'):
            user = message.author
            print(user)

键入带有$的任何内容以调用此消息。如果已正确打印用户,则下一步尝试打印角色,

print(user.roles)

这应该返回带有“角色ID”和“名称”的可迭代对象。验证角色ID是否正确传递。

如果仍然有问题,请在hastebin或其他内容上共享代码。