Discord.py 机器人在应用 cog 后无法检测到命令

问题描述 投票:0回答:1

这里是 main.py 和 Vige.py 文件

这是main.py文件

#COGS
initial_extensions = []

for filename in os.listdir('./cogs'):
    if filename.endswith('.py'):
        initial_extensions.append("cogs." + filename[:-3])

print(initial_extensions)

if __name__ == '__main__':
    for extension in initial_extensions:
        client.load_extension(extension)

client.run(token)

这是 vige.py cog 文件:

class Vige(commands.Cog):
    def __init__(self, client):
        self.client = client

    @commands.command()
    async def welcome(self, ctx):
        await ctx.send("Thanks for the warm welcome! I'm Vige, your personalized chat bot, ready to serve!")
        await ctx.send("https://giphy.com/gifs/starwars-star-wars-episode-3-xTiIzJSKB4l7xTouE8")

def setup(client):
    client.add_cog(Vige(client))

我曾经将所有命令都放在一个 main.py 文件中,但最近尝试使用教程中的 cogs。

并且错误都是相同的,导致终端输出如下: [齿轮.维格] 2024-01-08 21:16:01 错误discord.ext.commands.bot 忽略命令中的异常无 Discord.ext.commands.errors.CommandNotFound:找不到命令“欢迎”

python discord.py
1个回答
0
投票

这是一个例子:

import discord
from discord.ext import commands

class MyCog(commands.Cog):
    def __init__(self, bot):
        self.bot = bot

    @commands.command()
    async def my_command(self, ctx:commands.Context):
        await ctx.send('Hello from MyCog!')
    
    @commands.command()
    async def channel(self, ctx:commands.Context):
        channel = self.bot.get_channel(1147497954538696744)
        await channel.send(channel)

async def setup(bot):
    await bot.add_cog(MyCog(bot))

您需要异步加载您的齿轮。而你需要

await client.load_extensions()

注意:我正在使用机器人,因此您需要将机器人更改为客户端。

© www.soinside.com 2019 - 2024. All rights reserved.