我有一个机器人,我想回复一个特定的单词,它确实回复了。但是,如果您键入任何包含该单词的消息,它也会回复。我该如何阻止它?
例如。如果我说";谁";,机器人会回复";走开卢卡斯;然而,如果我说";这个人是谁"机器人仍然会回复";走开卢卡斯;
有什么解决办法吗?谢谢
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)
我看到您正在使用startswitch((。
如果消息以所需字符串开头,则命令startswitch((返回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)