Patto Bot Template v1.2.0
Immutable
release. Only release title and notes can be modified.
[1.2.0] - 2026-03-17
🎯 Refactor de Metadata y Plugins
Esta versión consolida el acceso a metadata en una capa centralizada y agrega control de cooldown como plugin global configurable.
✨ Added
- Módulo de metadata centralizada (
src/core/metadata/)MetadataStorecon caché por clase para evitar múltiples lecturas repetidas deReflect.getMetadatametadataHandlercomo API tipada de alto nivel para comandos, argumentos, permisos, cooldown, plugins y servicios
- Nuevos decoradores de control
@Cooldownpara definir cooldown por comando@BotPermissionspara declarar permisos requeridos del bot
- Nuevo plugin
CooldownPlugin- Bloquea ejecución durante cooldown y responde con timestamp de Discord para informar cuándo reintentar
🔧 Changed
- Infraestructura de comandos y ejecución
CommandHandler,CommandLoader,SlashCommandLoader,ArgumentResolver,TypeResolver,HelpCommandyPermissionsPluginmigran ametadataHandlercomo fuente de metadata- Se propaga explícitamente el
commandIden eventos (interactionCreate,messageCreate) para identificar mejor la ejecución
- Base de comandos mejorada (
BaseCommand)- Exposición de
iddel comando - Helpers reutilizables para validaciones frecuentes (
validateUserIsNotAuthor,validateUserIsNotBot) yauthorName
- Exposición de
- Categorías de comandos
- Renombre de enum de
CommandCategoryTagaCategory - Ampliación del enum con categorías adicionales (
Utils,Moderation,Settings,Economy)
- Renombre de enum de
- Configuración de plugins
- Registro de
CooldownPluginjunto aPermissionsPlugin
- Registro de
📚 Documentation
- Nuevas guías del módulo de metadata y actualización de documentación en:
README.mdsrc/core/decorators/README.mdsrc/core/loaders/README.mdsrc/definitions/README.mdsrc/utils/README.mddocs/Subcommands.README.mddocs/SubcommandGroups.README.md
- Se añade soporte de seguridad documentado para
1.2.xenSECURITY.md
🧪 Testing
- Actualizados tests unitarios relacionados con:
PermissionsPlugin(flujo con metadata centralizada)CommandCategories(nuevo enumCategory)
⚠️ Notas
- En
plugins.config.tselCooldownPluginse registra conPluginScope.Specifiedsin lista de comandos explícita; revisar si el alcance deseado es global o por comandos concretos.