Creado: 2026/07/02 19:41:27 America/Chicago
Por: admin

El auto-topic.lua El script publica avisos del centro configurado en el chat principal Verlihub en un intervalo establecido. Úselo para recordatorios de reglas, notas de mantenimiento, enlaces de soporte, sugerencias de comandos y mensajes comunitarios breves que no necesitan un bot externo independiente.

Mantenga este guión pequeño. Debería enviar mensajes cortos configurados y luego devolver el control a Verlihub. No agregue trabajos de ejecución prolongada, consultas de bases de datos, solicitudes HTTP externas, análisis de archivos ni esperas de bloqueo a este script.

Qué hace este guión

El script envía mensajes de chat principales automáticos desde un nombre de bot configurado o una identidad de centro.

Los usos comunes incluyen:

  • Publicar recordatorios de reglas del centro.
  • Publicar sitios web o enlaces de soporte.
  • Anuncio de mantenimiento programado.
  • Recordar a los usuarios sobre los comandos disponibles.
  • Compartir enlaces comunitarios.
  • Visualización de avisos rotativos.
  • Publicar mensajes según la hora del día.

Ejemplo de aviso de chat principal:

<HubNotice> Please review the hub rules with !rules before sharing or chatting.

Requisitos

Este script requiere:

  • Verlihub instalado y funcionando.
  • El complemento Verlihub Lua instalado.
  • El complemento Lua habilitado en Verlihub.
  • Permiso para cargar y descargar scripts Lua.
  • Un directorio de script grabable para archivos Verlihub Lua.

Antes de cargar el script, confirme que el complemento Lua esté activo:

!pluglist

Si el complemento Lua no aparece en la lista, cárguelo o habilítelo primero desde el artículo de configuración principal Lua.

Utilice un directorio de script dedicado:

mkdir -p /PATH/TO/HUB/scripts

Coloque el guión en:

/PATH/TO/HUB/scripts/auto-topic.lua

Para los sistemas de producción, solo los administradores de confianza o el usuario del servicio Verlihub deben poder escribir en el directorio. No permita que se pueda escribir en el directorio en todo el mundo.

Comandos de carga y descarga

Cargue el guión:

!luaload /PATH/TO/HUB/scripts/auto-topic.lua

Descargar el guión:

!luaunload /PATH/TO/HUB/scripts/auto-topic.lua

Si edita el script, descárguelo y cárguelo nuevamente:

!luaunload /PATH/TO/HUB/scripts/auto-topic.lua
!luaload /PATH/TO/HUB/scripts/auto-topic.lua

Utilice la ruta absoluta completa a menos que la configuración del complemento Verlihub Lua admita rutas relativas.

Código de secuencia de comandos

-- Script: auto-topic.lua
-- Purpose: Sends rotating automatic notices to Verlihub main chat.
-- Scope: Lightweight hub notices only.
-- Notes: Keep interval reasonable to avoid chat spam.

botname = "HubNotice"
interval = 900
counter = 0
notice_index = 1

notices = {
    "Welcome to the hub. Please read the rules with !rules.",
    "Need help? Use !help or contact an operator.",
    "Visit our website for updates, guides, and hub information.",
    "Keep main chat respectful and avoid spam or repeated messages."
}

function SendNotice()
    if notices[notice_index] == nil then
        notice_index = 1
    end

    VH:SendToAll("<" .. botname .. "> " .. notices[notice_index])
    notice_index = notice_index + 1

    if notice_index > table.getn(notices) then
        notice_index = 1
    end
end

function OnTimer()
    counter = counter + 1

    if counter >= interval then
        counter = 0
        SendNotice()
    end
end

Opciones de configuración

botname

botname = "HubNotice"

El nombre que se muestra antes del aviso automático. Elija un nombre claro para que los usuarios comprendan que el mensaje es información del centro automatizado.

Ejemplos:

botname = "HubNotice"
botname = "RulesBot"
botname = "InfoBot"
botname = "Maintenance"

interval

interval = 900

Controla la frecuencia con la que el script envía un aviso. El valor previsto suele ser segundos, dependiendo de cómo esté configurado el temporizador Verlihub Lua en su entorno.

Valores recomendados:

ValorSignificado
300Cada 5 minutos.
600Cada 10 minutos.
900Cada 15 minutos.
1800Cada 30 minutos.
3600Cada 60 minutos.

Para los centros de producción, 900 o 1800 suele ser más seguro que un intervalo corto. Evite valores que hagan que el hub sea ruidoso:

interval = 10

Un aviso cada 10 segundos es demasiado agresivo para el chat principal normal.

counter

counter = 0

Contador interno utilizado por el script. No cambie esto a menos que esté modificando la lógica del script.

notice_index

notice_index = 1

Pistas qué aviso debe enviarse a continuación. Deja esto en 1 a menos que desee que el script comience con un mensaje diferente.

notices

notices = {
    "Welcome to the hub. Please read the rules with !rules.",
    "Need help? Use !help or contact an operator.",
    "Visit our website for updates, guides, and hub information.",
    "Keep main chat respectful and avoid spam or repeated messages."
}

La lista de mensajes que rotan en el chat principal. Cada aviso debe ser breve, útil y no disruptivo.

Buenos ejemplos de avisos:

notices = {
    "Use !rules to view hub rules.",
    "Use !help to see available commands.",
    "Operators are marked in the user list if you need assistance.",
    "Please keep main chat friendly and on topic."
}

Evite avisos largos, repetidos o agresivos. Es más probable que los usuarios ignoren los mensajes automáticos cuando aparecen con demasiada frecuencia.

Configuraciones de ejemplo

Recordatorio de reglas básicas

botname = "RulesBot"
interval = 1800
notices = {
    "Please read the hub rules with !rules.",
    "Do not spam main chat or repeat the same message.",
    "Respect other users and follow operator instructions."
}

Aviso sobre sitio web y soporte

botname = "InfoBot"
interval = 3600
notices = {
    "Visit the website for hub guides, updates, and support.",
    "Need help? Use !help or contact an operator.",
    "Check the articles section for Verlihub setup notes and Lua scripts."
}

Aviso de mantenimiento

botname = "Maintenance"
interval = 900
notices = {
    "Scheduled maintenance may occur during low-traffic hours.",
    "If the hub disconnects during maintenance, reconnect after a few minutes.",
    "Check the website for maintenance updates."
}

Aviso comunitario

botname = "Community"
interval = 1800
notices = {
    "Welcome to the hub. Keep chat friendly and helpful.",
    "Use main chat for general discussion. Contact operators for support issues.",
    "Invite trusted users and help keep the hub useful."
}

Para la mayoría de los centros, utilice un intervalo de 15 o 30 minutos:

botname = "HubNotice"
interval = 1800
notices = {
    "Welcome to the hub. Use !rules to review the hub rules.",
    "Need help? Use !help or contact an operator.",
    "Keep main chat respectful and avoid spam."
}

Esto mantiene los avisos visibles sin inundar el chat. Para centros ocupados, utilice:

interval = 3600

Para centros silenciosos, utilice:

interval = 1800

La automatización del chat principal debería apoyar a la comunidad, no interrumpirla.

Probando el guión

Después de cargar el script, confirme que:

  • El script se carga sin errores.
  • El aviso aparece en el chat principal.
  • Los avisos rotan en el orden esperado.
  • El intervalo no es demasiado agresivo.
  • El nombre del bot es claro.
  • El script se descarga limpiamente.
  • La recarga del script no crea temporizadores ni avisos duplicados.

Pruebe primero con un intervalo corto y luego cámbielo al intervalo de producción.

Ejemplo de configuración de prueba:

interval = 30

Después de la prueba, cámbielo nuevamente:

interval = 1800

Luego recarga el script.

Solución de problemas

El guión no se carga

Compruebe que el complemento Lua esté activo:

!pluglist

Compruebe que la ruta del archivo sea correcta:

!luaload /PATH/TO/HUB/scripts/auto-topic.lua

Utilice la ruta absoluta si las rutas relativas no funcionan.

Los avisos no aparecen

Controlar:

  • El complemento Lua está cargado.
  • La ruta del script es correcta.
  • Su versión del complemento Verlihub Lua admite la función de temporizador.
  • El intervalo no es demasiado alto durante la prueba.
  • El notices La tabla contiene al menos un mensaje.

Usar temporalmente:

interval = 30

Luego vuelva a cargar el script y espere el próximo aviso.

Los avisos aparecen con demasiada frecuencia

Aumente el intervalo.

interval = 1800

o:

interval = 3600

Evite intervalos cortos en producción.

Aparecen avisos duplicados

Esto generalmente significa que el script se cargó más de una vez o que una instancia anterior no se descargó correctamente.

Descargar el guión:

!luaunload /PATH/TO/HUB/scripts/auto-topic.lua

Luego cárgalo nuevamente:

!luaload /PATH/TO/HUB/scripts/auto-topic.lua

Si continúan los duplicados, reinicie el complemento Lua o el servicio Verlihub durante una ventana de mantenimiento.

Errores de secuencia de comandos después de editar avisos

Verifique la sintaxis Lua. Cada línea de aviso debe terminar con una coma excepto la última línea, que podrá omitirla.

Correcto:

notices = {
    "First notice.",
    "Second notice.",
    "Third notice."
}

Incorrecto:

notices = {
    "First notice."
    "Second notice."
}

Al ejemplo incorrecto le falta una coma después del primer mensaje.

Notas de seguridad

Este script debe ser liviano. No agregue:

  • Solicitudes HTTP externas.
  • Consultas a bases de datos.
  • Escaneo de archivos.
  • Bucles largos.
  • Bloquear llamadas de sueño.
  • Procesamiento pesado por usuario.

El script sólo debe rotar los avisos configurados y enviarlos en un intervalo razonable.

Notas de mantenimiento

Mantenga una copia de seguridad antes de cambiar el script:

cp /PATH/TO/HUB/scripts/auto-topic.lua /PATH/TO/HUB/scripts/auto-topic.lua.bak

Si usa Git:

cd /PATH/TO/HUB/scripts
git add auto-topic.lua
git commit -m "Update auto-topic.lua notices"

Cuando se cambia solo el nombre del bot, los avisos o el intervalo, no se requieren cambios lógicos.

Reglas sugeridas para redactar avisos

Los buenos avisos son breves y útiles.

Recomendado:

  • Una idea por aviso.
  • Redacción clara.
  • Sin puntuación repetida.
  • No hay mensajes en mayúsculas.
  • No publicar publicaciones demasiado frecuentes.
  • No hay párrafos largos en el chat principal.

Evitar:

  • Publicando cada pocos segundos.
  • Publicar el mismo mensaje repetidamente.
  • Utilizar avisos únicamente como publicidad.
  • Envío de grandes bloques de reglas al chat principal.
  • Interrumpir conversaciones activas con demasiada frecuencia.

Página Superior