Cristiano
Cristiano

Reputation: 3

How to make a Discord Bot reply to a specific message rather than every message including a word

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

Answers (1)

shnap
shnap

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

Related Questions