Python 如何在类中正确创建discord.Client并在循环中作为任务运行?
我正在使用Discord.py,我需要使Discord.Client在我自己的循环中运行,因为我希望它可以运行多次(对于更多的机器人,我不需要制作越来越多的文件,以便它们同时运行) 这是我能举的最简单的例子:Python 如何在类中正确创建discord.Client并在循环中作为任务运行?,python,asynchronous,discord,discord.py,python-asyncio,Python,Asynchronous,Discord,Discord.py,Python Asyncio,我正在使用Discord.py,我需要使Discord.Client在我自己的循环中运行,因为我希望它可以运行多次(对于更多的机器人,我不需要制作越来越多的文件,以便它们同时运行) 这是我能举的最简单的例子: 导入不一致 导入异步 从discord.ext导入命令 token=“token” 类客户端(discord.Client): @commands.Cog.listener() _ready()上的异步定义: 打印(self.user.id) @commands.command() 异步d
导入不一致
导入异步
从discord.ext导入命令
token=“token”
类客户端(discord.Client):
@commands.Cog.listener()
_ready()上的异步定义:
打印(self.user.id)
@commands.command()
异步def测试(ctx):
等待ctx发送(“你好”)
loop=asyncio.get\u event\u loop()
客户机=客户机(命令前缀=“!”)
loop.create_任务(client.start(令牌))
loop.run_,直到_完成
它根本不返回任何东西;它只是自动关闭。我知道我有错误,但我不知道是哪一个,为什么。如何修复它们?首先,您混合了discord.Client和commands.Bot/commands.Cog
类客户端(discord.Client):
应该是
类客户端(commands.Cog):
而且,试图通过循环运行多个机器人是行不通的。我强烈建议您只制作多个文件
此外,它应该是:
def设置(客户端):
客户。添加_cog(客户(客户))
如果要使其成为cog,则必须将其加载到另一个文件中
如果您只需要一个单一的文件,那么它应该如下所示:
类客户端(commands.Bot):
@机器人事件
_ready()上的异步定义:
打印(self.user.id)
@bot.command()
异步def测试(ctx):
等待ctx发送(“你好”)
客户机=客户机(命令前缀=“!”)
client.run(令牌)
命令不使用事件装饰器,您需要将命令置于bot定义之外