[英]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.抱歉,如果标题没有意义,我正在制作一个 discord 机器人,我正在尝试制作一个小的 8 球命令。 What I'm trying to make the bot do is that after the user type "$8ball" the bot will say "What's your question?"
我想让机器人做的是,在用户输入“$8ball”后,机器人会说“你有什么问题?” 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) (这就是我到目前为止的所有代码)
You can try to store the id of the user and react to the next message of this user.您可以尝试存储用户的 ID 并对该用户的下一条消息做出反应。
Try this.尝试这个。
question
will be what the user inputted. question
将是用户输入的内容。 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告诉我进展如何:D
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.