Discord.py 在一个脚本中运行 2 个机器人实例

sy1*_*vi3 1 python discord.py

我有一个不和谐的机器人,需要在 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 个机器人,或者运行同一个机器人两次?

Ben*_*jin 8

您需要创建自己的事件循环并用它运行机器人,就像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)