如何检查某些用户discord.py是否发送了邮件

问题描述 投票:0回答:3

我正在使用discord.py制作我的不和谐机器人,当有人输入消息时,我想检查用户是否可以说foo#3645然后做一些事情,如果不是那么做其他事情

if(messageAuthor == "foo#3645):
    # do something
else:
    # do something else

我试过这个:

if(ctx.message.author == "foo#3465"):
    # do something

但由于某种原因,这不起作用......

如果您需要更多信息,请发表评论。

python discord.py
3个回答
3
投票

如果您需要可靠的检查,请检查用户ID:

if author.id == "170733454822341405":
   #do something

1
投票

str(包括Users)的Member表示将是他们的用户名(不是他们的服务器特定的昵称)和鉴别器(用于告诉具有相同用户名的人)。

if str(ctx.message.author) == "foo#3465":
    ...

也就是说,你应该检查ids,因为一个人可以更改他们的Discord用户名。 ids是的异步分支中的字符串和中的整数


1
投票

在我看来,你试图将“作者”的实例与名称和鉴别器进行比较。您需要做的是:1)找到名为“foo#3465”的成员,并将其与ctx.message.author或“messageAuthor”进行比较

member = discord.utils.get(message.guild.members, name='Foo')
if member == messageAuthor:
   #do something
else:
   #do something else

或者您可以:2)将messageAuthor.name与“foo”或str(messageAuthor)比较为“foo#3465”

© www.soinside.com 2019 - 2024. All rights reserved.