Python 如何检查消息是否由特定用户discord.py发送

Python 如何检查消息是否由特定用户discord.py发送,python,discord.py,discord.py-rewrite,Python,Discord.py,Discord.py Rewrite,我正在使用discord.py创建我的discord bot,当有人键入消息时,我想检查用户是否为foo#3645,如果不是,则执行其他操作 if(messageAuthor == "foo#3645): # do something else: # do something else 我试过这个: if(ctx.message.author == "foo#3465"): # do something 但出于某种原因,这是行不通的 如果您需要更多信息,请发表评论。如

我正在使用discord.py创建我的discord bot,当有人键入消息时,我想检查用户是否为foo#3645,如果不是,则执行其他操作

if(messageAuthor == "foo#3645):
    # do something
else:
    # do something else
我试过这个:

if(ctx.message.author == "foo#3465"):
    # do something
但出于某种原因,这是行不通的


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

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

if author.id == 170733454822341405:
   #do something

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

if author.id == 170733454822341405:
   #do something

str
表示一个
用户(包括
成员
s),将是他们的用户名(不是他们特定于服务器的昵称)和鉴别器(用于区分具有相同用户名的人)


也就是说,您应该检查
id
s,因为一个人可能会更改其不一致的用户名
id
s是异步分支中的字符串和中的整数
str
表示
用户的
(包括
成员
s)将是他们的用户名(不是他们特定于服务器的昵称)和鉴别器(用于区分具有相同用户名的人)


也就是说,您应该检查
id
s,因为一个人可能会更改其不一致的用户名
id
s是的异步分支中的字符串,在

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

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

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

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

检查用户ID是最好的选择。根据
User.id
是一个整数,而不是字符串,因此接受的答案可能不起作用<代码>消息。作者
的类型为
用户

这就是我的工作原理:

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

要手动获取某人的用户ID,请在discord(用户设置->外观->高级)中启用开发者模式,然后右键单击任意位置的用户并单击复制ID。

检查用户ID是最佳选择。根据
User.id
是一个整数,而不是字符串,因此接受的答案可能不起作用<代码>消息。作者的类型为
用户

这就是我的工作原理:

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

要手动获取某人的用户ID,请在discord(用户设置->外观->高级)中启用开发者模式,然后右键单击任意位置的用户并单击复制ID。

ctx.message.author
不包含名称,我相信您正在查找
ctx.message.author.name
(请参阅)。虽然您最好使用MCO回答的ID。
ctx.message.author
不包含名称,但我相信您正在查找
ctx.message.author.name
(请参阅)。虽然你最好按照MCO的回答使用身份证。