Bean Yoda
Bean Yoda

Reputation: 27

I'm trying to get my discord bot to wait for the user to send another message after they did the original command

Sorry if the title didn't make sense, I'm making a discord bot and I'm trying to make a little 8 ball command. What I'm trying to make the bot do is that after the user type "$8ball" the bot will say "What's your question?" Then wait for the user to type out their question and then respond with the array of responses I've made for it.

@client.event
async def on_message(message):
if message.author == client.user:
   return

if message.content.startswith("$8Ball"):
   await message.channel.send("What is your question?")

(that's all the code I have so far)

Upvotes: 2

Views: 411

Answers (2)

Pixeled
Pixeled

Reputation: 322

Try this. question will be what the user inputted. It waits for a message in the same channel as the orginal command and by the same user who did the command

@client.event
async def on_message(message, author):
    if message.content.startswith('$8Ball'):
        channel = message.channel
        author = message.author
        await channel.send('What is your question?')

        def check(m):
            return m.author == author and m.channel == channel

        msg = await client.wait_for('message', check=check)
        question = msg.content

Tell me how it goes :D

Upvotes: 2

Rayon Magique
Rayon Magique

Reputation: 160

You can try to store the id of the user and react to the next message of this user.

Upvotes: 1

Related Questions