問題描述
隨著我的機器人越來越大,我正在嘗試實現 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 !
推薦答案
我建議查看 https://discordpy.readthedocs.io/en/latest/ext/commands/cogs.html這將幫助您更好地了解 Cogs.
I recommend checking out https://discordpy.readthedocs.io/en/latest/ext/commands/cogs.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.
這篇關于discord.py 重寫:TypeError:cogs 必須從 Cog 派生的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!