【发布时间】:2021-12-30 17:32:24
【问题描述】:
当我在 discord 中输入命令 !sleeper 时,紧跟在输入 !hello 之后。该机器人基本上暂停了 10 秒,因为它正在处理 !sleeper。 10 秒后,它发送消息I have been sleeping for 10 seconds,然后立即发送Hello partner!。如果有人发送!sleeper 命令,我怎样才能使整个机器人不会“暂停”。
现在发生了什么:
- 我输入
!sleeper - 我输入
!hello - 机器人等待 9-10 秒
- 机器人发送
I have been sleeping for 10 seconds - 机器人发送
Hello partner!
我想要什么:
- 我输入
!sleeper - 我输入
!hello - 机器人发送
Hello partner! - 机器人等待 9-10 秒
- 机器人发送
I have been sleeping for 10 seconds
PS:我写了“等待 9-10 秒”,因为我需要大约一秒钟才能输入 !hello
import time
from discord.ext import commands
class Hello(commands.Cog):
def __init__(self, client):
self.client = client
@commands.Cog.listener()
async def on_ready(self):
print(f'{self.__class__.__name__} Cog is ready')
@commands.command()
async def hello(self, ctx):
await ctx.send('Hello partner!')
@commands.command()
async def sleeper(self, ctx):
await self.sleep_now()
await ctx.send('I have been sleeping for 10 seconds')
async def sleep_now(self):
time.sleep(10)
def setup(client):
client.add_cog(Hello(client))
【问题讨论】:
标签: python-3.x async-await discord discord.py