mirror of
https://github.com/arthur-pbty/flint.git
synced 2026-08-01 20:29:03 +02:00
- Introduced `goodbyeCommand` and `welcomeCommand` to handle member leave and join events. - Implemented `memberMessagePanel` for interactive message configuration. - Created `dispatchMemberMessage` to send messages based on member events. - Added database support for storing member message configurations. - Integrated image rendering for member messages using `@napi-rs/canvas`. - Registered event listeners for `GuildMemberAdd` and `GuildMemberRemove` to trigger messages. - Updated `package.json` to include `@napi-rs/canvas` dependency.
343 lines
12 KiB
JSON
343 lines
12 KiB
JSON
{
|
|
"errors": {
|
|
"args": {
|
|
"missing": "Falta el argumento {{arg}}. Uso: {{usage}}",
|
|
"invalidInt": "El argumento debe ser un entero. Recibido: {{value}}",
|
|
"invalidNumber": "El argumento debe ser un numero. Recibido: {{value}}",
|
|
"invalidBoolean": "El argumento debe ser un valor booleano. Recibido: {{value}}",
|
|
"invalidUser": "No se pudo resolver un usuario desde {{value}}",
|
|
"invalidChannel": "No se pudo resolver un canal desde {{value}}",
|
|
"invalidRole": "No se pudo resolver un rol desde {{value}}",
|
|
"tooMany": "Se detectaron demasiados argumentos ({{count}}): {{extras}}. Uso: {{usage}}"
|
|
},
|
|
"permissions": {
|
|
"user": "Te faltan permisos: {{permissions}}"
|
|
},
|
|
"execution": "Ocurrio un error inesperado al ejecutar este comando.",
|
|
"cooldown": "Espera {{seconds}}s antes de volver a usar este comando."
|
|
},
|
|
"categories": {
|
|
"fun": "Diversion",
|
|
"utility": "Utilidad",
|
|
"core": "Nucleo"
|
|
},
|
|
"commands": {
|
|
"kiss": {
|
|
"name": "beso",
|
|
"description": "Enviar un beso a otro usuario.",
|
|
"args": {
|
|
"user": "Usuario objetivo"
|
|
},
|
|
"examples": {
|
|
"basic": "Enviar un beso a un miembro"
|
|
},
|
|
"responses": {
|
|
"success": "{{from}} envia un beso a {{to}}."
|
|
}
|
|
},
|
|
"ping": {
|
|
"name": "ping",
|
|
"description": "Revisar latencia websocket del bot.",
|
|
"examples": {
|
|
"basic": "Chequeo basico"
|
|
},
|
|
"responses": {
|
|
"pong": "Pong. Latencia websocket: {{latency}}ms."
|
|
}
|
|
},
|
|
"advanced": {
|
|
"name": "avanzada",
|
|
"description": "Comando de demostracion que usa todos los parametros disponibles.",
|
|
"args": {
|
|
"text": "Texto obligatorio",
|
|
"count": "Entero obligatorio",
|
|
"ratio": "Numero decimal opcional",
|
|
"enabled": "Bandera booleana opcional",
|
|
"user": "Usuario objetivo obligatorio",
|
|
"channel": "Canal opcional",
|
|
"role": "Rol opcional"
|
|
},
|
|
"examples": {
|
|
"full": "Ejemplo prefix completo con todos los tipos de argumentos",
|
|
"slash": "Equivalente en slash"
|
|
},
|
|
"responses": {
|
|
"summary": "Resumen comando avanzada\ntext={{text}}\ncount={{count}}\nratio={{ratio}}\nenabled={{enabled}}\nuser={{user}}\nchannel={{channel}}\nrole={{role}}\nsource={{source}}"
|
|
}
|
|
},
|
|
"presence": {
|
|
"name": "presence",
|
|
"description": "Configurar la presencia del bot con un panel interactivo.",
|
|
"examples": {
|
|
"slash": "Abrir el panel interactivo de presencia"
|
|
},
|
|
"responses": {
|
|
"panel": "Panel de presencia\nEstado: {{status}}\nActividad: {{activityType}}\nRotacion: cada {{rotationIntervalSeconds}}s\nTexto activo ({{currentTextIndex}}/{{textCount}}): {{activityText}}\nVista previa: {{activityPreview}}\nTextos: {{activityTexts}}\nVariables ({{doubleBracesHint}}): {{variables}}",
|
|
"notOwner": "Solo el autor del comando puede usar este panel.",
|
|
"invalidSelection": "Seleccion invalida.",
|
|
"invalidInterval": "Intervalo invalido. Usa un entero entre {{minSeconds}} y {{maxSeconds}} segundos.",
|
|
"modalTimeout": "Tiempo agotado para editar el texto. Pulsa el boton otra vez."
|
|
},
|
|
"ui": {
|
|
"status": {
|
|
"placeholder": "Elegir un estado",
|
|
"options": {
|
|
"online": {
|
|
"label": "En linea",
|
|
"description": "Muestra el bot en linea"
|
|
},
|
|
"idle": {
|
|
"label": "Inactivo",
|
|
"description": "Muestra el bot inactivo"
|
|
},
|
|
"dnd": {
|
|
"label": "No molestar",
|
|
"description": "Muestra el bot en no molestar"
|
|
},
|
|
"invisible": {
|
|
"label": "Desconectado",
|
|
"description": "Muestra el bot fuera de linea"
|
|
},
|
|
"streaming": {
|
|
"label": "Streaming",
|
|
"description": "Muestra el bot en modo streaming"
|
|
}
|
|
}
|
|
},
|
|
"activity": {
|
|
"placeholder": "Elegir un tipo de actividad",
|
|
"options": {
|
|
"PLAYING": {
|
|
"label": "Jugando",
|
|
"description": "Muestra Jugando a ..."
|
|
},
|
|
"STREAMING": {
|
|
"label": "Streaming",
|
|
"description": "Muestra En directo en ..."
|
|
},
|
|
"WATCHING": {
|
|
"label": "Viendo",
|
|
"description": "Muestra Viendo ..."
|
|
},
|
|
"LISTENING": {
|
|
"label": "Escuchando",
|
|
"description": "Muestra Escuchando ..."
|
|
},
|
|
"COMPETING": {
|
|
"label": "Compitiendo",
|
|
"description": "Muestra Compitiendo en ..."
|
|
},
|
|
"CUSTOM": {
|
|
"label": "CustomStatus",
|
|
"description": "Muestra un estado personalizado"
|
|
}
|
|
}
|
|
},
|
|
"embed": {
|
|
"title": "Configuracion de Presencia",
|
|
"description": "Cambia el estado, el tipo de actividad, varios textos y el intervalo de rotacion en tiempo real.",
|
|
"footer": "Panel interactivo /presence",
|
|
"fields": {
|
|
"status": "Estado",
|
|
"activity": "Tipo de actividad",
|
|
"text": "Texto"
|
|
}
|
|
},
|
|
"textButton": "📝 Editar textos",
|
|
"intervalButton": "⏱️ Intervalo",
|
|
"modal": {
|
|
"title": "Textos de presencia",
|
|
"label": "Un texto por linea (usa {{var}})",
|
|
"placeholder": "Mantenimiento\n{{guild_count}} servidores | {{prefix}}ayuda"
|
|
},
|
|
"intervalModal": {
|
|
"title": "Intervalo de rotacion",
|
|
"label": "Segundos entre cada texto",
|
|
"placeholder": "Ejemplo: 30"
|
|
}
|
|
}
|
|
},
|
|
"welcome": {
|
|
"name": "bienvenida",
|
|
"description": "Configurar mensajes de bienvenida con un panel interactivo.",
|
|
"examples": {
|
|
"slash": "Abrir el panel de configuracion de bienvenida"
|
|
},
|
|
"responses": {
|
|
"guildOnly": "Este comando solo puede usarse dentro de un servidor.",
|
|
"notOwner": "Solo el autor del comando puede usar este panel.",
|
|
"invalidSelection": "Seleccion invalida.",
|
|
"testSuccess": "Mensaje de prueba enviado en {{channel}}.",
|
|
"testDisabled": "El modulo de bienvenida esta desactivado.",
|
|
"testMissingChannel": "No hay canal configurado. Usa primero el boton de canal.",
|
|
"testChannelUnavailable": "El canal configurado no existe o no es compatible.",
|
|
"testMissingPermissions": "El bot no tiene permiso para enviar mensajes en ese canal.",
|
|
"testFailed": "No se pudo enviar el mensaje de prueba. Intentalo mas tarde."
|
|
},
|
|
"ui": {
|
|
"embed": {
|
|
"title": "Configuracion Welcome",
|
|
"description": "Ajusta estado, canal, tipo de mensaje y ejecuta una prueba.",
|
|
"fields": {
|
|
"status": "Estado",
|
|
"channel": "Canal",
|
|
"type": "Tipo",
|
|
"channelPicker": "Selector de canal"
|
|
}
|
|
},
|
|
"status": {
|
|
"enabled": "🟢 Activado",
|
|
"disabled": "🔴 Desactivado"
|
|
},
|
|
"channelNotConfigured": "#sin-configurar",
|
|
"channelPickerPlaceholder": "Selecciona un canal de bienvenida",
|
|
"channelPickerHint": "Usa el menu de seleccion de abajo para elegir el canal destino.",
|
|
"buttons": {
|
|
"toggle": "Alternar estado",
|
|
"channel": "Configurar canal",
|
|
"channelCancel": "Cerrar selector",
|
|
"test": "Probar"
|
|
},
|
|
"type": {
|
|
"placeholder": "Elige un tipo de mensaje",
|
|
"options": {
|
|
"simple": {
|
|
"label": "Mensaje simple",
|
|
"description": "Enviar un mensaje de texto clasico"
|
|
},
|
|
"embed": {
|
|
"label": "Embed",
|
|
"description": "Enviar un embed de bienvenida"
|
|
},
|
|
"container": {
|
|
"label": "Container (V2)",
|
|
"description": "Enviar un container Components V2"
|
|
},
|
|
"image": {
|
|
"label": "Imagen",
|
|
"description": "Enviar un embed con imagen"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"templates": {
|
|
"simple": "🎉 Bienvenido {{user}} a **{{guild}}**!",
|
|
"embedTitle": "Bienvenido",
|
|
"embedDescription": "{{user}} acaba de entrar en **{{guild}}**.",
|
|
"containerTitle": "Bienvenido",
|
|
"containerDescription": "{{user}} acaba de entrar en **{{guild}}**.",
|
|
"imageTitle": "Bienvenido",
|
|
"imageDescription": "al servidor de Discord {{guild}}"
|
|
}
|
|
},
|
|
"goodbye": {
|
|
"name": "despedida",
|
|
"description": "Configurar mensajes de despedida con un panel interactivo.",
|
|
"examples": {
|
|
"slash": "Abrir el panel de configuracion de despedida"
|
|
},
|
|
"responses": {
|
|
"guildOnly": "Este comando solo puede usarse dentro de un servidor.",
|
|
"notOwner": "Solo el autor del comando puede usar este panel.",
|
|
"invalidSelection": "Seleccion invalida.",
|
|
"testSuccess": "Mensaje de prueba enviado en {{channel}}.",
|
|
"testDisabled": "El modulo de despedida esta desactivado.",
|
|
"testMissingChannel": "No hay canal configurado. Usa primero el boton de canal.",
|
|
"testChannelUnavailable": "El canal configurado no existe o no es compatible.",
|
|
"testMissingPermissions": "El bot no tiene permiso para enviar mensajes en ese canal.",
|
|
"testFailed": "No se pudo enviar el mensaje de prueba. Intentalo mas tarde."
|
|
},
|
|
"ui": {
|
|
"embed": {
|
|
"title": "Configuracion Goodbye",
|
|
"description": "Ajusta estado, canal, tipo de mensaje y ejecuta una prueba.",
|
|
"fields": {
|
|
"status": "Estado",
|
|
"channel": "Canal",
|
|
"type": "Tipo",
|
|
"channelPicker": "Selector de canal"
|
|
}
|
|
},
|
|
"status": {
|
|
"enabled": "🟢 Activado",
|
|
"disabled": "🔴 Desactivado"
|
|
},
|
|
"channelNotConfigured": "#sin-configurar",
|
|
"channelPickerPlaceholder": "Selecciona un canal de despedida",
|
|
"channelPickerHint": "Usa el menu de seleccion de abajo para elegir el canal destino.",
|
|
"buttons": {
|
|
"toggle": "Alternar estado",
|
|
"channel": "Configurar canal",
|
|
"channelCancel": "Cerrar selector",
|
|
"test": "Probar"
|
|
},
|
|
"type": {
|
|
"placeholder": "Elige un tipo de mensaje",
|
|
"options": {
|
|
"simple": {
|
|
"label": "Mensaje simple",
|
|
"description": "Enviar un mensaje de texto clasico"
|
|
},
|
|
"embed": {
|
|
"label": "Embed",
|
|
"description": "Enviar un embed de despedida"
|
|
},
|
|
"container": {
|
|
"label": "Container (V2)",
|
|
"description": "Enviar un container Components V2"
|
|
},
|
|
"image": {
|
|
"label": "Imagen",
|
|
"description": "Enviar un embed con imagen"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"templates": {
|
|
"simple": "👋 {{user}} salio de **{{guild}}**.",
|
|
"embedTitle": "Despedida",
|
|
"embedDescription": "{{user}} salio de **{{guild}}**.",
|
|
"containerTitle": "Despedida",
|
|
"containerDescription": "{{user}} salio de **{{guild}}**.",
|
|
"imageTitle": "Hasta luego",
|
|
"imageDescription": "del servidor de Discord {{guild}}"
|
|
}
|
|
},
|
|
"help": {
|
|
"name": "ayuda",
|
|
"description": "Mostrar lista de comandos o detalles de un comando.",
|
|
"args": {
|
|
"command": "Nombre o trigger opcional del comando"
|
|
},
|
|
"examples": {
|
|
"basic": "Listar todos los comandos",
|
|
"single": "Mostrar detalles de un comando"
|
|
},
|
|
"errors": {
|
|
"notFound": "Ningun comando coincide con {{query}}."
|
|
},
|
|
"embed": {
|
|
"title": "Ayuda de Comandos",
|
|
"description": "Usa {{usage}} para inspeccionar un comando.",
|
|
"categoryEmpty": "No hay comandos en esta categoria.",
|
|
"detailsTitle": "Comando: {{name}}",
|
|
"detailsDescription": "{{description}}",
|
|
"footer": "Categoria: {{source}}",
|
|
"fields": {
|
|
"usage": "Uso",
|
|
"arguments": "Argumentos",
|
|
"examples": "Ejemplos"
|
|
}
|
|
},
|
|
"labels": {
|
|
"prefix": "Prefijo",
|
|
"slash": "Slash",
|
|
"required": "requerido",
|
|
"optional": "opcional",
|
|
"noArgs": "Sin argumentos.",
|
|
"noExamples": "Sin ejemplos."
|
|
}
|
|
}
|
|
}
|
|
}
|