person
play_circle Simular Centinela
04 • Scripting Core RegEx + Reactive Hooks 0 VPS Required

Automatización: Creando tu Primer Bot Centinela en 5 Líneas

Construye un guardián reactivo de moderación, respuestas de diagnóstico y bloqueo de phishing sin dependencias de Node.js, Python externo o servidores dedicados. Motor nativo integrado en el cliente FenixIRC.

Tiempo Setup ~3 min
Sobrecarga RAM < 420 KB
Intercepción PRIVMSG / JOIN
Compatibilidad RFC 1459 / 2812
BOT CENTINELA EN 5 LÍNEAS REGULAR EXPRESSIONS (RegEx) ANTI-SPAM REACTIVO TRIGGERS IN/OUT POST-CONNECT COMMANDS 0 DEPENDENCIAS NODE.JS/VPS
schema
Sección 01

Arquitectura del Motor de Automatización

A diferencia de clientes tradicionales que requieren instalar eggdrop, Node.js o interpreters de Python en servidores virtuales (VPS), FenixIRC integra un motor reactivo embebido directamente en su ciclo de despacho de frames IRC. Opera dentro del hilo de IO asíncrono, analizando strings entrantes y disparando secuencias formateadas sin latencia de red añadida.

Capa 01 Init Phase

Arranque Post-Conexión

Matriz secuencial onConnectCommands disparada de forma atómica tras recibir el RPL numérico 001 (RPL_WELCOME).

Scope: NickServ, Oper, Umode, AutoJoin
Capa 02 Egress Hook

Aliases y Macros de Salida (OUT)

Transformador de comandos salientes. Expande atajos ingresados en el campo de texto (e.g. /kban) antes de emitir frames hacia el socket TCP.

Expansión de variables %N, %C y sintaxis pipelined
Capa 03 Ingress Filter

Triggers Reactivos (IN / FILTER)

Evaluador de expresiones regulares en tiempo real sobre ráfagas de mensajes. Aplica acciones sancionadoras (Kick, Ban, Mute) o respuestas automáticas sin intervención del operador.

Disparo en microsegundos (< 1.2ms por regex)
layers Entidades Core FenixIRC:
ServerEditScreen.kt IrcProtocolHandler.kt IrcEngine.kt ServerEntity.kt
terminal
Sección 02

El Bot Centinela en 5 Líneas de Código

rules_centinela.fenixbot
FenixIRC Reactive Engine v2.4
01 ^!ping ::> NOTICE %N :PONG! Centinela FenixIRC Activo [Latencia: OK]
02 ^!help ::> PRIVMSG %C :Bot Centinela v1.0 • Comandos disponibles: !ping, !status
03 (?i)(http|https)://\S+ ::> KICK %C %N :Spam de enlaces no permitido
04 (?i)(discord\.gg|t\.me|join #) ::> MODE %C +b %N!*@* | KICK %C %N :Invitación no autorizada
05 ^!status ::> PRIVMSG %C :Estado del Canal: Seguro | Modo: SSL/TLS Implícito
Desglose Técnico de Ejecución Mapeo Línea a Línea
Línea Patrón RegEx (Trigger) Evento Acción IRC Emitida Propósito Táctico
01 ^!ping PRIVMSG NOTICE %N :PONG! ... Diagnóstico de latencia e interactividad privada sin floodear el canal principal.
02 ^!help PRIVMSG PRIVMSG %C :Bot Centinela... Guía de comandos públicos rápida a los recién llegados en el canal activo (%C).
03 (?i)(http|https)://\S+ IN_FILTER KICK %C %N :Spam... Expulsión inmediata de usuarios que publiquen URLs no autorizadas.
04 (?i)(discord\.gg|t\.me|join #) IN_FILTER MODE +b | KICK Mitigación estricta de invasiones / raids de captación hacia Discord o Telegram con baneo de máscara.
05 ^!status PRIVMSG PRIVMSG %C :Estado... Auditoría rápida del estado criptográfico y flags de protección del canal.
security
Sección 03

Filtrado Táctico de Spam Mediante RegEx

Las expresiones regulares evaluadas por el motor de FenixIRC permiten blindar salas concurridas contra tácticas comunes de denegación de lectura y ataques automatizados.

repeat Flooding de Caracteres

Detecta repeticiones consecutivas de un mismo carácter (e.g. "aaaaaaaaaaaa" o "!!!!!!!!!!!!!!").

(.)\1{10,}
Acción: /quiet %C %N
text_fields Gritos en Mayúsculas (CAPS)

Filtra cadenas que superan los 15 caracteres sin incluir letras minúsculas, evitando la contaminación visual del scroll.

^[^a-z]{15,}$
Acción: NOTICE %N :Desactiva mayúsculas.
dangerous Enlaces Peligrosos / Phishing

Detecta extensiones ejecutables o dominios recurrentes usados comúnmente para secuestro de tokens y malware.

(?i).*\.(zip|exe|scr|click|xyz)$
Acción: MODE +b | KICK :Malware
power_settings_new
Sección 04

Automatización de Inicio Post-Conexión

settings_ethernet ServerEditScreen.kt • Perfil de Red
irc.fenix.net:6697
FenixIRC Principal (SSL)
CentinelaFenix
Auto-Exec
/msg NickServ identify MiPasswordUltraSegura
/JOIN #seguridad
/JOIN #operadores
/mode #seguridad +m
/mode CentinelaFenix +B

Ejecutados secuencialmente cada 150ms al validar el handshake TLS con el servidor.

Implementación en IrcProtocolHandler.kt Kotlin Flow

Cuando el socket intercepta el código RPL_WELCOME (001), el despachador de eventos vacía la pila de comandos con sanitización de prefijo:

fun onServerWelcome(server: ServerEntity) {
  server.onConnectCommands.forEachIndexed { index, rawCmd ->
    val sanitized = rawCmd.removePrefix("/")
    dispatcher.sendRawLine(sanitized, delayMs = index * 150L)
  }
  logger.info { "Post-connect commands flushed for \${server.host}" }
}
verified_user Flag +B notifica al IRCD que la sesión corresponde a un Bot oficial del canal.
token
Sección 05

Tabla de Tokens de Inyección Dinámica

Token Identificador Ejemplo de Reemplazo Caso Típico de Uso
%N Nickname Emisor Phoenix_77 Dirigir avisos por privado (NOTICE) o seleccionar objetivo de KICK.
%C Canal Objetivo #seguridad Enviar mensajes al contexto activo donde se originó el trigger.
%T Texto Completo "¡Alerta en sala central!" Replicar o loguear la cadena exacta evaluada.
%A Primer Argumento usuario_sospechoso Comandos parametrizados como !ban %A.
%SERVER Host Activo irc.fenix.net Identificación de ruteo y diagnóstico multicentral.
checklist
Sección 06

Caso Práctico: Despliegue en 3 Pasos

1

Configura Arranque

Ingresa en los ajustes de tu red dentro de FenixIRC y agrega la identificación NickServ y auto-join de las salas que desees vigilar en onConnectCommands.

2

Pega las 5 Reglas

Copia el bloque de 5 líneas del Centinela en la pestaña Scripts & Triggers de FenixIRC. Las flags se compilarán en memoria instantáneamente.

3

Verifica Operatividad

Escribe !ping o prueba un trigger de prueba. Observarás cómo el Centinela procesa y aplica la sanción o respuesta en < 2 milisegundos.

smart_toy
Sección 07 • Sandbox

Laboratorio Interactivo: Simulador en Vivo

Motor FenixIRC Activo
#seguridad 42 USERS
Modos: +ntssl
Pruebas rápidas:
*** Conectado a irc.fenix.net (+6697) • Centinela FenixIRC escuchando eventos en #seguridad