我的discord.py 机器人仅从我的cogs 文件夹中加载一个cog,我需要它加载所有这些

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

当我运行我的机器人时,当我需要它加载所有齿轮时,它只会从我的齿轮文件夹中加载一个齿轮。如果有人可以帮助我解决这个问题,我将不胜感激,我将在下面附上我的代码。

这是我的 main.py 文件。

import asyncio
import discord
import os
from discord.ext import commands


intents = discord.Intents.all()
bot = commands.Bot(command_prefix="!", intents=intents)

async def loadext():
    for filename in os.listdir("./cogs"):
        if filename.endswith(".py"):
            await bot.load_extension(f"cogs.{filename[:-3]}")


async def main():
    await loadext()
    await bot.start("TOKEN")


asyncio.run(main())

这是我的 ping.py 文件,它是我的机器人正在加载的唯一齿轮。

from discord.ext import commands


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

    @commands.command()
    async def ping(self, ctx):
        await ctx.send(f"Pong! {round(self.bot.latency * 1000)}ms!")
        print(f"Bot latency is {round(self.bot.latency * 1000)}ms!")


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

最后这是我需要加载的齿轮,但它没有加载。

import discord
from stuff import *
from discord.ext import commands


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


    @commands.Cog.listener()
    async def on_message(self, message):
        user = message.author
        guild = message.guild
        channel = message.channel
        content = message.content
        user1 = await self.bot.fetch_user("1123271715984769044")
        user2 = await self.bot.fetch_user("847981083625914389")

        if content.startswith("!1"):
            reason = reason1

            if ":" in content:
                parts = content.split(":")
                username = parts[1]
                name = parts[2]
                email = parts[3]
                print(
                    f"Mode: {reason} \n Username: {username} \n Name: {name} \n Email: {email}"
                )
                embed = discord.Embed(title=f"⚡ Unban Mode: {reason}", color=0x8A3AB9)
                embed.set_author(name="Unban Request Sent Successfully!")
                embed.add_field(name="Username", value=f"{username}", inline=False)
                embed.add_field(name="Name", value=f"{name}", inline=False)
                embed.add_field(name="Email", value=f"{email}", inline=False)
                await channel.send(embed=embed)
                await user1.send(embed=embed)
                await user2.send(embed=embed)

        elif content.startswith("!2"):
            reason = reason2
            if ":" in content:
                parts = content.split(":")
                username = parts[1]
                name = parts[2]
                email = parts[3]
                print(
                    f"Mode: {reason} \n Username: {username} \n Name: {name} \n Email: {email}"
                )
                embed = discord.Embed(title=f"⚡ Unban Mode: {reason}", color=0x8A3AB9)
                embed.set_author(name="Unban Request Sent Successfully!")
                embed.add_field(name="Username", value=f"{username}", inline=False)
                embed.add_field(name="Name", value=f"{name}", inline=False)
                embed.add_field(name="Email", value=f"{email}", inline=False)
                await channel.send(embed=embed)
                await user1.send(embed=embed)
                await user2.send(embed=embed)

        elif content.startswith("!3"):
            reason = reason3

            if ":" in content:
                parts = content.split(":")
                username = parts[1]
                name = parts[2]
                email = parts[3]
                print(
                    f"Mode: {reason} \n Username: {username} \n Name: {name} \n Email: {email}"
                )
                embed = discord.Embed(title=f"⚡ Unban Mode: {reason}", color=0x8A3AB9)
                embed.set_author(name="Unban Request Sent Successfully!")
                embed.add_field(name="Username", value=f"{username}", inline=False)
                embed.add_field(name="Name", value=f"{name}", inline=False)
                embed.add_field(name="Email", value=f"{email}", inline=False)
                await channel.send(embed=embed)
                await user1.send(embed=embed)
                await user2.send(embed=embed)

        elif content.startswith("!4"):
            reason = reason4

            if ":" in content:
                parts = content.split(":")
                username = parts[1]
                name = parts[2]
                email = parts[3]
                print(
                    f"Mode: {reason} \n Username: {username} \n Name: {name} \n Email: {email}"
                )
                embed = discord.Embed(title=f"⚡ Unban Mode: {reason}", color=0x8A3AB9)
                embed.set_author(name="Unban Request Sent Successfully!")
                embed.add_field(name="Username", value=f"{username}", inline=False)
                embed.add_field(name="Name", value=f"{name}", inline=False)
                embed.add_field(name="Email", value=f"{email}", inline=False)
                await channel.send(embed=embed)
                await user1.send(embed=embed)
                await user2.send(embed=embed)

        elif content.startswith("!5"):
            reason = reason5

            if ":" in content:
                parts = content.split(":")
                username = parts[1]
                name = parts[2]
                email = parts[3]
                print(
                    f"Mode: {reason} \n Username: {username} \n Name: {name} \n Email: {email}"
                )
                embed = discord.Embed(title=f"⚡ Unban Mode: {reason}", color=0x8A3AB9)
                embed.set_author(name="Unban Request Sent Successfully!")
                embed.add_field(name="Username", value=f"{username}", inline=False)
                embed.add_field(name="Name", value=f"{name}", inline=False)
                embed.add_field(name="Email", value=f"{email}", inline=False)
                await channel.send(embed=embed)
                await user1.send(embed=embed)
                await user2.send(embed=embed)

        elif content.startswith("!6"):
            reason = reason6

            if ":" in content:
                parts = content.split(":")
                username = parts[1]
                name = parts[2]
                email = parts[3]
                print(
                    f"Mode: {reason} \n Username: {username} \n Name: {name} \n Email: {email}"
                )
                embed = discord.Embed(title=f"⚡ Unban Mode: {reason}", color=0x8A3AB9)
                embed.set_author(name="Unban Request Sent Successfully!")
                embed.add_field(name="Username", value=f"{username}", inline=False)
                embed.add_field(name="Name", value=f"{name}", inline=False)
                embed.add_field(name="Email", value=f"{email}", inline=False)
                await channel.send(embed=embed)
                await user1.send(embed=embed)
                await user2.send(embed=embed)

        elif content.startswith("!7"):
            reason = reason7

            if ":" in content:
                parts = content.split(":")
                username = parts[1]
                name = parts[2]
                email = parts[3]
                print(
                    f"Mode: {reason} \n Username: {username} \n Name: {name} \n Email: {email}"
                )
                embed = discord.Embed(title=f"⚡ Unban Mode: {reason}", color=0x8A3AB9)
                embed.set_author(name="Unban Request Sent Successfully!")
                embed.add_field(name="Username", value=f"{username}", inline=False)
                embed.add_field(name="Name", value=f"{name}", inline=False)
                embed.add_field(name="Email", value=f"{email}", inline=False)
                await channel.send(embed=embed)
                await user1.send(embed=embed)
                await user2.send(embed=embed)



    @commands.command()
    @commands.has_role('Blue')
    async def igunban(self, ctx):
        embed = discord.Embed(title="Use for Following Reasons:", color=0x8A3AB9)
        embed.set_author(name="IG Unbanner")
        embed.add_field(name=f"[1] {reason1}", value="", inline=False)
        embed.add_field(name=f"[2] {reason2}", value="", inline=False)
        embed.add_field(name=f"[3] {reason3}", value="", inline=False)
        embed.add_field(name=f"[4] {reason4}", value="", inline=False)
        embed.add_field(name=f"[5] {reason5}", value="", inline=False)
        embed.add_field(name=f"[6] {reason6}", value="", inline=False)
        embed.add_field(name=f"[7] {reason7}", value="", inline=False)
        embed.add_field(name="** **", value="```Usage```", inline=False)
        embed.add_field(
            name="", value="```!reason:username:name:email```", inline=False
        )
        embed.add_field(name="** **", value="```Example```", inline=False)
        embed.add_field(
            name="", value="```!7:John_doe:JohnDoe:[email protected]```", inline=False
        )
        await ctx.send(embed=embed)


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

它会加载 @commands.Cog.listener() 部分,并在看到消息时执行它应该执行的操作,但命令不起作用,并且不会显示在默认的不和谐帮助命令中

python discord discord.py
1个回答
0
投票

我自己通过研究代码找到了答案。

我的代码中有

@commands.has_role('Blue')
,并且我在执行该命令时自己实际上没有该角色,这导致该命令未显示,因为我没有该角色。

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