Ciclo de vida del módulo
Los módulos en Zumito Framework exponen hooks del ciclo de vida que permiten ejecutar código en momentos específicos durante la inicialización del bot.
initialize()
Sección titulada «initialize()»Este método se llama automáticamente cuando el módulo se carga. Se encarga de:
- Cargar comandos desde la carpeta
commands/ - Registrar eventos desde la carpeta
events/ - Cargar traducciones desde la carpeta
translations/ - Registrar rutas desde la carpeta
routes/
Puedes sobrescribirlo si necesitas lógica de inicialización personalizada, pero asegúrate de llamar a super.initialize():
import { Module } from 'zumito-framework';
export class MyModule extends Module {
async initialize() { await super.initialize(); // Código de inicialización personalizado }
}onAllReady()
Sección titulada «onAllReady()»Este hook se ejecuta después de que todo el framework esté listo — cliente de Discord conectado, todos los módulos cargados, slash commands refrescados y servidor API iniciado. Es el lugar ideal para código que depende de que el bot esté completamente operativo.
import { Module } from 'zumito-framework';
export class MyModule extends Module {
async onAllReady() { // El bot está completamente listo console.log(`Conectado como ${this.framework.client.user?.tag}`); }
}Evento ready del framework
Sección titulada «Evento ready del framework»Como alternativa, puedes escuchar el evento ready emitido por el emitter del framework. Esto es útil cuando quieres reaccionar desde una clase de evento sin tocar la clase del módulo:
import { FrameworkEvent } from 'zumito-framework';
export class OnFrameworkReady extends FrameworkEvent {
source = 'framework'; once = true;
async execute(): Promise<void> { console.log('¡El framework está listo!'); }
}Orden de ejecución
Sección titulada «Orden de ejecución»- El cliente de Discord se conecta y emite
ready - Se llama a
initialize()de cada módulo - Se refrescan los slash commands
- Se inicia el servidor API
- Se emite el evento
readydel framework - Se llama a
onAllReady()de cada módulo - Se ejecuta el callback del usuario (configurado en
zumito.config.ts)