我正在为我的不和谐机器人做齿轮。
但是,尝试加载齿轮会提示我错误
discord.ext.commands.errors.CommandInvokeError: Command raised an exception: NoEntryPointError: Extension 'cogs.help' has no 'setup' function.
我的加载程序的代码是;
@bot.command()
async def load(ctx, extension):
id = str(ctx.author.id)
if id == '721029142602056328':
bot.load_extension(f'cogs.{extension}')
print(f'Specified cog {extension} loaded!')
author = ctx.message.author
embed = discord.Embed(
colour = discord.Colour.from_rgb(255, 237, 76)
)
embed.add_field(name='Cog Loaded', value=f"Specified cog {extension} loaded by {author}.", inline=False)
await ctx.send(embed=embed)
else:
embed = discord.Embed(
colour = discord.Colour.from_rgb(255, 237, 76)
)
embed.add_field(name="You can't do this!", value=f"You can't load the {extension} cog.", inline=False)
await ctx.send(embed=embed)
@bot.command()
async def unload(ctx, extension):
id = str(ctx.author.id)
if id == '721029142602056328':
bot.unload_extension(f'cogs.{extension}')
print(f'Specified cog {extension} unloaded!')
author = ctx.message.author
embed = discord.Embed(
colour = discord.Colour.from_rgb(255, 237, 76)
)
embed.add_field(name='Cog Unloaded', value=f"Specified cog {extension} unloaded by {author}.", inline=False)
await ctx.send(embed=embed)
else:
embed = discord.Embed(
colour = discord.Colour.from_rgb(255, 237, 76)
)
embed.add_field(name="You can't do this!", value=f"You can't unload the {extension} cog.", inline=False)
await ctx.send(embed=embed)
for filename in os.listdir('./cogs'):
if filename.endswith('.py'):
bot.load_extension(f'cogs.{filename[:-3]}')
如果任何人都可以解决我的错误,将不胜感激。还需要注意的是,我可以启动bot,但是必须删除“对于os.listdir中的文件名...”
谢谢
我刚刚意识到我在写这篇文章时忘记将代码包含在我的齿轮中。
import discord
from discord.ext import commands
class Help(commands.Cog):
def __init__(self, bot):
self.bot = bot
def setup(bot):
bot.add_cog(Help(bot))
答案 0 :(得分:0)
这是一个缩进问题。
请确保设置功能与__init__
import discord
from discord.ext import commands
class Help(commands.Cog):
def __init__(self, bot):
self.bot = bot
def setup(bot):
bot.add_cog(Help(bot))
答案 1 :(得分:0)
我发现了错误。
我的2个机器人位于1个名为Discord Bot Coding的文件夹中,因此它是从我的机器人的cog文件夹之一而不是预定的机器人中读取的。