如何使Discord Bot回复特定的消息,而不是每个包含单词的消息

时间:2020-11-06 21:13:24

标签: discord.py

我有一个机器人想要回复特定的单词,而且确实如此。但是,如果您键入任何包含该单词的消息,它也会回复。我该如何阻止?

例如。如果我要说“谁”,则机器人会回答“走开卢卡斯” 但是,如果我要说“这个人是谁?”该机器人仍会回答“走开卢卡斯”

对此有任何解决方法吗?谢谢!

async def on_message(message):
    if message.content.startswith('who'):
        msg = 'who'.format(message)
        await message.channel.send('go away lucas')
    await bot.process_commands(message)

1 个答案:

答案 0 :(得分:2)

我看到您正在使用startswith()。

如果消息以所需的字符串开头,则命令startswith()返回True,例如:

a = "who"
b = "who is lucas"
print(a.startswith("who"))
print(b.startswith("who"))

输出将是:

True
True

如果您希望命令仅在消息的内容为“谁”时才起作用,请尝试以下操作:

async def on_message(message):
    if message.content == "who":
        msg = 'who'.format(message)
        await message.channel.send('go away lucas')
    await bot.process_commands(message)