我有一个不和谐的机器人,需要在 while(True) 循环中运行,并且仍然接收命令。我认为我可以做到这一点并且适用于我的程序的唯一方法是运行 2 个单独的机器人实例。就像说:
client = commands.Bot(command_prefix = '!');
client2= commands.Bot(command_prefix = '.');
Run Code Online (Sandbox Code Playgroud)
然后在底部:
client.run('TOKEN')
client2.run('TOKEN')
Run Code Online (Sandbox Code Playgroud)
我尝试了这个,但没有成功。我究竟做错了什么?有没有一种方法可以从一个脚本运行 2 个机器人,或者运行同一个机器人两次?
您需要创建自己的事件循环并用它运行机器人,就像client.run阻塞一样。
from discord.ext import commands
import asyncio
client = commands.Bot(command_prefix='!')
client2 = commands.Bot(command_prefix='.')
loop = asyncio.new_event_loop()
asyncio.set_event_loop(loop)
loop.create_task(client.start('TOKEN1'))
loop.create_task(client2.start('TOKEN2'))
loop.run_forever()
Run Code Online (Sandbox Code Playgroud)