Reputation: 3
I have a bot that I want to reply to a specific word, and it does. However, if you type any message including that word, it will also reply. How do I stop that?
For example. If I was to say "Who", the bot would reply with "go away lucas" However, if I was to say "Who is this person?" the bot would still reply with "go away lucas"
Is there any fix to this? Thanks!
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)
Upvotes: 0
Views: 1002
Reputation: 185
I see you are using startswith().
the command startswith() returns True if the message starts with the desired string for example:
a = "who"
b = "who is lucas"
print(a.startswith("who"))
print(b.startswith("who"))
The output will be:
True
True
If you want the command to work only when the content of the message is "who", try this:
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)
Upvotes: 1