Discord.py client.wait_for() 发送多条消息
Discord.py client.wait_for() sends multiple messages
我正在制作一个带有重写功能的不和谐机器人,但是当我的命令运行时,有时会一次发送所有消息,有时效果很好。任何人都知道为什么?我为此苦苦挣扎了很长时间
@client.event
async def on_message(message):
if message.content.startswith("!order"):
channel = message.channel
await channel.send("in game name")
in_game_name = await client.wait_for('message', check=None)
await channel.send("in game ID")
in_game_ID = await client.wait_for('message', check=None)
await channel.send("cargo type")
cargo_type = await client.wait_for('message', check=None)
await channel.send("cargo limit")
cargo_limit = await client.wait_for('message', check=None)
await channel.send("storage")
storage = await client.wait_for('message', check=None)
await channel.send("priority")
priority = await client.wait_for('message', check=None)
您可以创建一个检查功能,只检查消息是否在正确的频道中并且不是由机器人发送的:
@client.event
async def on_message(message):
def check(m):
return m.channel == message.channel and m.author != client.user
if message.content.startswith("!order"):
channel = message.channel
await channel.send("in game name")
in_game_name = await client.wait_for('message', check=check)
...
我正在制作一个带有重写功能的不和谐机器人,但是当我的命令运行时,有时会一次发送所有消息,有时效果很好。任何人都知道为什么?我为此苦苦挣扎了很长时间
@client.event
async def on_message(message):
if message.content.startswith("!order"):
channel = message.channel
await channel.send("in game name")
in_game_name = await client.wait_for('message', check=None)
await channel.send("in game ID")
in_game_ID = await client.wait_for('message', check=None)
await channel.send("cargo type")
cargo_type = await client.wait_for('message', check=None)
await channel.send("cargo limit")
cargo_limit = await client.wait_for('message', check=None)
await channel.send("storage")
storage = await client.wait_for('message', check=None)
await channel.send("priority")
priority = await client.wait_for('message', check=None)
您可以创建一个检查功能,只检查消息是否在正确的频道中并且不是由机器人发送的:
@client.event
async def on_message(message):
def check(m):
return m.channel == message.channel and m.author != client.user
if message.content.startswith("!order"):
channel = message.channel
await channel.send("in game name")
in_game_name = await client.wait_for('message', check=check)
...