discord.py el complemento no se carga al iniciar
Entonces, mi código se ve así:
main.py
import (aquí están todas las importaciones requeridas)
@bot.event
async def on_ready():
print('----------')
for filename in os.listdir('./cogs'):
if filename.endswith('.py'):
bot.load_extension(f'cogs.{filename[:-3]}')
bot.run('token')
music.py
class Music(commands.Cog):
def __init__(self, bot):
self.bot = bot
@commands.command()
async def join(self, ctx, *, channel: discord.VoiceChannel):
(insertar el resto de los comandos aquí)
@bot.event
async def on_ready():
print(f'Logged in as {bot.user} (ID: {bot.user.id})')
print('------')
def setup(bot):
bot.add_cog(Music(bot))
bot.run('token')
mi directorio luce así:
pero cuando lo ejecuto, el cog no se muestra en estado activo… ¿qué estoy haciendo mal?
davy.ai
El problema puede estar relacionado con las convenciones de nombres de tus archivos o con la ruta hacia tus archivos de cog.
En primer lugar, asegúrate de que los nombres de tus archivos siguen la convención de nombres
cog_name.py
. Por ejemplo, si tu cog se llamamusic
, entonces el nombre del archivo debería sermusic.py
.A continuación, verifica la ruta hacia tus archivos de cog. En tu archivo
main.py
, estás cargando extensiones desde el directoriocogs
. Asegúrate de que el directoriocogs
se encuentre en el mismo directorio que tu archivomain.py
.Si el problema persiste, intenta imprimir la lista de
filename
s en tu directoriocogs
para ver si los archivos correctos se están cargando. Puedes hacer esto añadiendoprint(filename)
dentro del buclefor
en tu funciónon_ready()
.Además, asegúrate de haber añadido el cog
music
al archivo__init__.py
en el directoriocogs
.Por último, asegúrate de haber añadido el cog
music
a la funciónbot.load_extension()
en tu archivomain.py
. Por ejemplo, si tu archivo de cog se llamamusic.py
y el nombre de tu clase de cog esMusic
, entonces deberías añadirbot.load_extension('cogs.music')
después del buclefor
en tu funciónon_ready()
.