我想测试用户是否具有两个特定角色之一,但由于某种原因,我编写的代码始终返回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。
答案 0 :(得分:0)
我有在我的系统上工作的代码。您可以在此处尝试一些操作以解决此问题。
@client.event
async def on_message(message):
if message.content.startswith('$'):
user = message.author
print(user)
键入带有$的任何内容以调用此消息。如果已正确打印用户,则下一步尝试打印角色,
print(user.roles)
这应该返回带有“角色ID”和“名称”的可迭代对象。验证角色ID是否正确传递。
如果仍然有问题,请在hastebin或其他内容上共享代码。