我试图让我的机器人在其“播放”部分中以机器人名称显示不同的消息。
我尝试使用while循环和时间在不同的消息之间进行睡眠。这行得通,但是当我尝试使用命令时,它没有注册,因为(我认为)它陷入了while循环中,无法开始查看命令消息。以下是我所拥有的:
@client.event
async def on_ready():
print('------------------------------------------------')
print('Logged in as:')
print(client.user.name)
print(client.user.id)
print('------------------------------------------------')
print("SubwayBot", version,"is connected and running!")
print('------------------------------------------------')
while True:
await client.change_presence(game=discord.Game(name='with !sbcmds'))
time.sleep(10)
await.client.change_presence(game=discord.Game(name='with my sub'))
time.sleep(10) #it would return here and start the while loop again
client.run(TOKEN)
我想做的是更改播放状态,以及要更改的命令。
感谢所有试图找到答案的人。
答案 0 :(得分:2)
首先,您应该使用asyncio.sleep()
而不是time.sleep()
,因为time.sleep()
可能会阻塞您的整个漫游器,并且除了“睡眠”之外什么也没有做。
您应该设置Background Task而不是在事件协程中使用while循环。希望有帮助。