问题描述
随着我的机器人越来越大,我正在尝试实现 cogs,但是我遇到了一个问题.我已经设置并准备好了整个代码,但由于某些奇怪的原因,我不断收到此错误:
As my bot is getting bigger, I'm trying to implement cogs, however I have ran across a problem. I have my whole code set up and ready, but for some weird reason I keep getting this error:
Traceback (most recent call last): File "C:UsersLaurasDesktopAkagi Botmain.py", line 107, in <module> bot.add_cog("cogs.fun") File "C:UsersLaurasAppDataLocalProgramsPythonPython36libsite-packagesdiscordextcommandsot.py", line 477, in add_cog raise TypeError('cogs must derive from Cog') TypeError: cogs must derive from Cog
我在 main.py 上的代码如下所示:
My code on main.py looks like this:
import discord import asyncio import typing import random import json import oauth from discord.ext import commands bot = commands.Bot(command_prefix='~') @bot.event async def on_ready(): await bot.change_presence(activity=discord.Activity(name='with Kaga :3',type=0)) print (discord.__version__) print(f"{bot.user.name} - {bot.user.id}") print ('Akagi is ready to serve the Commander :3 !') bot.add_cog("cogs.fun") bot.run(oauth.bot_token)
有趣"的齿轮如下:
import discord from discord.ext import commands bot = commands.Bot(command_prefix='~') class FunCog: def __init__(self, bot): self.bot = bot @commands.command() async def hug(self, ctx): await ctx.send('has been hugged by', file=discord.File('iloveyou.gif')) pass def setup(bot: commands.Bot): bot.add_cog(FunCog(bot))
可能是什么问题?我也在使用 discord.py 重写.谢谢!
What could be the problem? I'm also using discord.py rewrite. Thanks !
推荐答案
我建议查看 http://www.51sjk.com/Upload/Articles/1/0/343/343057_20230210094842207.html这将帮助您更好地了解 Cogs.
I recommend checking out http://www.51sjk.com/Upload/Articles/1/0/343/343057_20230210094842207.html This will help you get a better understanding of Cogs.
首先,您需要将 bot.add_cog("cogs.fun") 更改为 bot.load_extension("cogs.fun")
Firstly, you need to change bot.add_cog("cogs.fun") to bot.load_extension("cogs.fun")
这不是必需的,但您不需要再次定义 bot.将 def setup(bot: commands.Bot): 更改为 def setup(bot):
This isn't necessary but you don't need to define bot again. Change def setup(bot: commands.Bot): to def setup(bot):
您还需要将 class FunCog: 更改为 class FunCog(commands.Cog):
You will also need to change class FunCog: to class FunCog(commands.Cog):
我建议在重写版本的新更新发布时及时了解更改.以下是工作 cog 文件的示例..希望这有帮助!最大.
I recommend staying up to date with changes when new updates come out for the rewrite version. Here is a quick look into an example of a working cog file.. Hope this helped! Max.