message.author的用法是否正确

时间:2019-05-09 03:33:37

标签: python discord discord.py-rewrite

我正在尝试将事件添加到我的机器人,每当特定配置文件在频道中说出某些内容时,它都会响应,我的想法是比较 message.author 到一个字符串,然后它将发送一条消息

import discord
from discord.ext import commands

client = commands.Bot(command_prefix=".")

@client.event
async def on_ready():
    print('bot is ready')
    print(client.user)
@client.event
async def on_message(message):
    print(f"'{message.content}' said by {message.author}")
    if message.author == "MESSAGE AUTHOR":
        await message.channel.send(f"{message.author} said something")
再次

message.author 与该字符串(当前为“ MESSAGE AUTHOR”)匹配时,该漫游器应做出响应,但这没有发生。

1 个答案:

答案 0 :(得分:0)

User这样的message.author对象永远不会等于字符串。您可以测试用户的字符串表示形式,该字符串表示形式由用户名和区分符组成:

if str(message.author) == "Junar#1234":

一个更好的主意是使用其ID。用户可以更改其用户名,从而更改其字符串表示形式,但不能更改其ID。

if message.author.id == 1234567890:

您可以编写一些不一致的代码来输出用户的ID,也可以在不一致的客户端中启用开发人员模式,然后在成员列表中右键单击其名称。