我有一个机器人想要回复特定的单词,而且确实如此。但是,如果您键入任何包含该单词的消息,它也会回复。我该如何阻止?
例如。如果我要说“谁”,则机器人会回答“走开卢卡斯” 但是,如果我要说“这个人是谁?”该机器人仍会回答“走开卢卡斯”
对此有任何解决方法吗?谢谢!
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)
答案 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)