Reputation:
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
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