我是 Python 编码的新手,但在使用此代码时遇到了问题。
@client.event
async def on_message(message):
if message.author == client.user:
return
if 'choose my pick' in message.content:
channel = message.channel
await channel.send('Que role tu ta?')
def check(m):
return m.content == 'top' or 'jg' or 'mid' or 'adc' or 'sup' and m.channel == channel
role = await client.wait_for('message', check=check)
sentence_start = random.choice(inu_exp)
iten = random.choice(itens)
if 'top' in role.content:
champion = random.choice(top_champs)
await channel.send(f'{sentence_start} {champion} de {iten}')
await client.process_commands(message)
它按我的意愿工作,当有人输入“选择我的选择”时,它会询问“Que role tu ta”,但它会询问很多次,并且还会多次发送答案 await channel.send(f'{sentence_start} {champion} de {iten}')
。
这是输出:https://prnt.sc/y1cucv
我正在使用 python 3.8.6
答案 0 :(得分:2)
我已经在另一个机器人上测试了你的代码,它只发送了一次消息!确保没有多个客户端同时运行!要确保的另一件事是您的互联网 ping,因为这可能会导致延迟并导致多条消息! (过去的经历)
此外,如果您仍然遇到问题,请发送整个代码(当然没有令牌),因为缺少许多变量,没有这些变量我什么也做不了。例如 inu_exp
!