这是我的代码:
import discord
import asyncio
async def ex(args, message, client, invoke):
await client.send_message(message.channel, "5 Minutes")
await asyncio.sleep(60)
await client.send_message(message.channel, "4 Minutes")
await asyncio.sleep(60)
await client.send_message(message.channel, "3 Minutes")
await asyncio.sleep(60)
await client.send_message(message.channel, "2 Minutes")
await asyncio.sleep(60)
await client.send_message(message.channel, "1 Minutes")
await asyncio.sleep(30)
await client.send_message(message.channel, "30 Seconds")
await asyncio.sleep(15)
await client.send_message(message.channel, "15 Seconds")
await asyncio.sleep(10)
await client.send_message(message.channel, "5 Seconds")
#Already Running Message
#await client.send_message(message.channel, embed=discord.Embed(color=discord.Color.red(), description="Countdown already running, please try again later!"))
我想这样做,倒计时只能一次运行一个。现在,您可以随时随地进行多次倒计时。
无论计数器是否正在进行,您都可以拥有一个全局变量。就像是:
counter_channel = None
async def ex(args, message, client, invoke):
global counter_channel
if counter_channel is not None:
await client.send_message(message.channel, "There is a counter in {}".format(counter_channel.mention))
return
counter_channel = message.channel
await client.send_message(message.channel, "5 Minutes")
await asyncio.sleep(60)
...
await client.send_message(message.channel, "5 Seconds")
await asyncio.sleep(5)
counter_channel = None
您还可以通过维护通道或服务器ID的全局set
,在每台服务器或每个通道上拥有它们。