【问题标题】:Discord.py run 2 instances of a bot in one scriptDiscord.py 在一个脚本中运行 2 个机器人实例
【发布时间】:2020-09-04 20:03:50
【问题描述】:

我有一个不和谐的机器人,它需要在一个 while(True) 循环中运行,并且仍然接收命令。我认为我可以使用我的程序执行此操作的唯一方法是运行 2 个单独的机器人实例。就像说:

client = commands.Bot(command_prefix = '!');       
client2= commands.Bot(command_prefix = '.');

然后在底部:

client.run('TOKEN')
client2.run('TOKEN')

我试过了,但没有用。我究竟做错了什么?有没有办法从一个脚本运行 2 个机器人或同一个机器人两次?

【问题讨论】:

  • 来自文档:run():从您那里抽象出事件循环初始化的阻塞调用。。也就是说,您的第一个 .run() 将阻塞线程,而第二个将永远无法工作。

标签: python discord.py discord.py-rewrite


【解决方案1】:

您需要创建自己的事件循环并使用它运行机器人,因为client.run 正在阻塞。

from discord.ext import commands
import asyncio

client = commands.Bot(command_prefix='!')
client2 = commands.Bot(command_prefix='.')

loop = asyncio.get_event_loop()
loop.create_task(client.start('TOKEN1'))
loop.create_task(client2.start('TOKEN2'))
loop.run_forever()

【讨论】:

    猜你喜欢
    • 2020-12-23
    • 2021-12-27
    • 1970-01-01
    • 2023-03-15
    • 2021-08-13
    • 1970-01-01
    • 2021-06-11
    • 1970-01-01
    • 2011-01-15
    相关资源
    最近更新 更多