【发布时间】:2020-12-23 21:17:42
【问题描述】:
我有一个不和谐的机器人,它需要在一个 while(True) 循环中运行,并且仍然接收命令。我认为我可以使用我的程序执行此操作的唯一方法是运行 2 个单独的机器人实例。就像说:
import discord
import time
import asyncio
client = commands.Bot(command_prefix = '!');
client2= commands.Bot(command_prefix = '.');
channel = client.get_channel(734106469343249954)
@client.event
async def on_ready():
time.Sleep(5)
while(True):
await channel.send("Sent message")
@client2.command()
async def a(ctx):
await ctx.send("Send")
然后在底部:
loop = asyncio.get_event_loop()
loop.create_task(client.start('Token'))
loop.create_task(client2.start('Token'))
loop.run_forever()
我试过了,但没有用。我究竟做错了什么?有没有办法从一个脚本运行 2 个机器人,或者同一个机器人两次?
我需要其中一个实例处于 while(True) 循环中。
当我尝试这个时,我开始循环并且能够调用.a 命令直到循环开始,但之后它没有给我任何响应。
如何在一个脚本中运行 2 个机器人实例,并让其中一个保持循环,同时让另一个听命令?
【问题讨论】:
标签: python discord discord.py python-asyncio discord.py-rewrite