当我运行我的机器人时,当我需要它加载所有齿轮时,它只会从我的齿轮文件夹中加载一个齿轮。如果有人可以帮助我解决这个问题,我将不胜感激,我将在下面附上我的代码。
这是我的 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() 部分,并在看到消息时执行它应该执行的操作,但命令不起作用,并且不会显示在默认的不和谐帮助命令中
我自己通过研究代码找到了答案。
我的代码中有
@commands.has_role('Blue')
,并且我在执行该命令时自己实际上没有该角色,这导致该命令未显示,因为我没有该角色。