我正在使用discord.py制作我的不和谐机器人,当有人输入消息时,我想检查用户是否可以说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
str
(包括User
s)的Member
表示将是他们的用户名(不是他们的服务器特定的昵称)和鉴别器(用于告诉具有相同用户名的人)。
if str(ctx.message.author) == "foo#3465":
...
也就是说,你应该检查id
s,因为一个人可以更改他们的Discord用户名。 id
s是discord.py的异步分支中的字符串和discord.py-rewrite中的整数
在我看来,你试图将“作者”的实例与名称和鉴别器进行比较。您需要做的是: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”