我试图让命令只在discord.py中的某个时间内工作,有什么办法可以创建选择语句或使用asyncio函数吗?以下是我的一些代码:
@client.command(pass_context=True)
async def pick(ctx):
oneto5 = str(random.randrange(1, 5))
await client.say("You recived " + oneto5 + " fish")
更新 这是我更新的代码,但它似乎给了我不可思议的输出。它没有正确迭代。
@client.command(pass_context=True)
async def pick(ctx):
sec = localtime().tm_sec
count = 0
print(sec)
while (300 >= sec):
if (1 <= lowFishRange <= 20):
oneto5 = str(5)
await client.say("You recived " + oneto5 + " fish")
await asyncio.sleep(43200)
return
else:
oneto5 = str(1)
await client.say("You recived " + oneto5 + " fish")
await asyncio.sleep(43200)
return
else:
await client.say("You seemed to have missed the mark, try again when a message appears...")
await asyncio.sleep(43200)
return
答案 0 :(得分:3)
您可以使用struct_time
获取localtime
的当前时间。这会为您提供当地的小时,分钟等。然后您可以将这些与您的目标条件进行比较。例如,如果您只想在上午9点到下午5点之间允许命令,则可以执行
from time import localtime
@client.command(pass_context=True)
async def pick(ctx):
hour = localtime().tm_hour
if 9 <= hour < 17:
oneto5 = str(random.randrange(1, 5))
await client.say("You recived " + oneto5 + " fish")