如何停止代码中重复的漫游器消息

时间:2019-01-26 14:39:47

标签: python python-3.x discord discord.py

$sql = "SELECT COUNT(finished) AS count_finished FROM timestamps_sessions";
$result = $conn->query($sql);
$row = $result->fetch_assoc();
echo $exercise['clears'] = $row['count_finished'];

我已经尝试了很多不同的方法,但是它只是行不通,这是第5行中的代码重复出现。如果需要,我可以发送错误

1 个答案:

答案 0 :(得分:0)

我不太确定重复消息的全部内容,因为我没有收到消息,因此请检查您是否在后台运行了多个机器人实例。

您的当前状态代码不会添加角色,它只是创建一个协程以添加角色。

此外,由于time.sleep(1)被阻止(这将阻止您的机器人在暂停状态下执行的所有其他功能和事件),因此您应将所有await asyncio.sleep(1)替换为time.sleep()

要使用您的addrole()协程,您需要将其拉出并在on_message事件中等待它

所以最终看起来像是

@bot.event
async def on_message(message):
  if message.content.upper().startswith(">>AEROSPACE"):
    await asyncio.sleep(1) #
    botmessage = await bot.send_message(message.channel, "<@"+message.author.id+"> " + "**your role has been added.**")
    await addrole(message)
    await asyncio.sleep(1.5) #
    await bot.delete_message(message)
    await asyncio.sleep(1.5) #
    await bot.delete_message(botmessage)

async def addrole(message):
  member = message.author
  server = message.server
  role = get(server.roles,name="Aerospace")
  await bot.add_roles(member, role)