anon
anon

Reputation:

Python discord.py read full message

I am using discord.py to make a discord bot. I would like to generate a random number between 2 numbers mentioned by the user. So if the user types %rand 1 9, I would like the bot to return with a random integer between 1 and 9, so say 4. Here is my code so far:

async def on_message(message):
    x = str(1)
    y = str(2)
    if message.content.startswith('%rand ' + x + y):
        NumberX = int(x)
        NumberY = int(y)
        msg = "Random Number Is: " + str(random.randint(NumberX,NumberY))
        await client.send_message(message.channel, msg)

However, it doesn't work. I don't quite understand where I am going wrong. I couldn't find another solution anywhere else. I assume I need to force the bot to read the full message or something similar. Any help will be appreciated. Thank you in advance.

Upvotes: 1

Views: 9981

Answers (1)

JoshKopen
JoshKopen

Reputation: 960

The problem comes from the fact that your if statement is never actually triggered. You are checking whether it starts with "%rand 12" which is not what you are looking for. Here's how your code should look:

async def on_message(message):
    if message.content.startswith('%rand '):
        vals = message.content.split(" ")
        NumberX = int(vals[1])
        NumberY = int(vals[2])
        msg = "Random Number Is: " + str(random.randint(NumberX,NumberY))
        await client.send_message(message.channel, msg)

Also, don't forget to import random in order to use that function.

Upvotes: 2

Related Questions