im trying to create a chatbot that has conversations sequentially like this. this works with one user fine but if another user tries to use the bot at the same time it interferes with the first user. I understand I would have to use some sort of asynchronous programming to fix this but I'm not sure how. any help would be appreciated
@client.event
async def on_message(msg):
if msg.author.bot:
return
if msg.content == "hey":
await msg.channel.send('hi')
response = await client.wait_for('message')
if response.content =="how are you":
await response.channel.send('good')
client.run(token)
response = await client.wait_for('message')
will catch any message sent after the command is executed, regardless of whom it's from.
This can be rectified by adding a check to wait_for
, like in the code below.
response = await client.wait_for('message', check=lambda message: message.author == msg.author)