如何设置一个 cog 并将其加载到 discord.py 中?

时间:2021-02-19 22:31:15

标签: python python-3.x discord discord.py

我正在尝试使用 discord.py 命令扩展中的内置帮助命令,但我似乎无法加载齿轮,因此我可以对命令进行排序。这是我当前的代码:

bot = commands.Bot(command_prefix='fd!', description=description, intents=intents)

class Testing(commands.Cog):
  def __init__(self, bot):
    self.bot = bot
    self._last_member = None
  
  @commands.command(description = "Sends a test message")
  async def test(ctx):
    await message.channel.send("Test")

#extra code for other un-grouped commands here

def setup(bot):
  bot.add_cog(Testing(bot))

#bot.run stuff here

我错过了什么吗?当我运行命令 (fd!test) 时,它说该命令不存在,而当我运行 fd!help 时,它没有列出,齿轮也没有列出。

感谢帮助!

1 个答案:

答案 0 :(得分:1)

首先,您需要在 cog 文件的顶部添加 import discordfrom discord.ext import commands。确保您的 cog 文件位于名为 cogs 的文件夹中,该文件夹应与项目的其余部分位于同一文件夹中。在您的主代码中,添加以下内容以实际加载 cog:

# loading all cogs
for filename in os.listdir('./cogs'):
    if filename.endswith('.py'):
        bot.load_extension(f'cogs.{filename[:-3]}')

另外,需要在self前传入ctx,需要将message.channel.send改成ctx.send

@commands.command(description = "Sends a test message")
  async def test(self, ctx):
    await ctx.send("Test")