Creato: 2026/07/02 19:41:27 America/Chicago
Da: admin

IL auto-topic.lua gli script post configurano gli avvisi dell'hub sulla chat principale Verlihub a un intervallo prestabilito. Usalo per promemoria di regole, note di manutenzione, collegamenti di supporto, suggerimenti sui comandi e brevi messaggi della community che non necessitano di un bot esterno separato.

Mantieni questo script piccolo. Dovrebbe inviare messaggi brevi configurati e quindi restituire il controllo a Verlihub. Non aggiungere processi a lunga esecuzione, query di database, richieste HTTP esterne, scansioni di file o attese di blocco a questo script.

Cosa fa questo script

Lo script invia messaggi di chat principali automatici da un nome bot configurato o da un'identità hub.

Gli usi comuni includono:

  • Pubblicazione di promemoria sulle regole dell'hub.
  • Pubblicazione di siti Web o collegamenti di supporto.
  • Annuncio della manutenzione programmata.
  • Ricordare agli utenti i comandi disponibili.
  • Condivisione dei collegamenti della comunità.
  • Visualizzazione degli avvisi a rotazione.
  • Pubblicazione di messaggi relativi all'ora del giorno.

Esempio di avviso della chat principale:

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

Requisiti

Questo script richiede:

  • Verlihub installato e funzionante.
  • Il plugin Verlihub Lua è installato.
  • Il plugin Lua abilitato in Verlihub.
  • Autorizzazione a caricare e scaricare gli script Lua.
  • Una directory di script scrivibile per i file Verlihub Lua.

Prima di caricare lo script, conferma che il plugin Lua è attivo:

!pluglist

Se il plugin Lua non è elencato, caricalo o abilitalo prima dall'articolo di configurazione principale Lua.

Utilizza una directory di script dedicata:

mkdir -p /PATH/TO/HUB/scripts

Posiziona lo script in:

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

Per i sistemi di produzione, la directory deve essere scrivibile solo da amministratori fidati o dall'utente del servizio Verlihub. Non rendere la directory scrivibile da tutti.

Comandi di caricamento e scaricamento

Carica lo script:

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

Scarica lo script:

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

Se modifichi lo script, scaricalo e caricalo di nuovo:

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

Utilizza il percorso assoluto completo a meno che la configurazione del plug-in Verlihub Lua non supporti i percorsi relativi.

Codice di scrittura

-- 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

Opzioni di configurazione

botname

botname = "HubNotice"

Il nome mostrato prima dell'avviso automatico. Scegli un nome chiaro in modo che gli utenti comprendano che il messaggio contiene informazioni sull'hub automatizzato.

Esempi:

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

interval

interval = 900

Controlla la frequenza con cui lo script invia un avviso. Il valore previsto è in genere secondi, a seconda di come è configurato il timer Verlihub Lua nel tuo ambiente.

Valori consigliati:

ValoreSenso
300Ogni 5 minuti.
600Ogni 10 minuti.
900Ogni 15 minuti.
1800Ogni 30 minuti.
3600Ogni 60 minuti.

Per i poli produttivi, 900 O 1800 è solitamente più sicuro di un breve intervallo. Evitare valori che rendano rumoroso l'hub:

interval = 10

Un avviso ogni 10 secondi è troppo aggressivo per la normale chat principale.

counter

counter = 0

Contatore interno utilizzato dallo script. Non modificarlo a meno che non si stia modificando la logica dello script.

notice_index

notice_index = 1

Traccia quale avviso dovrebbe essere inviato successivamente. Lascia questo a 1 a meno che tu non voglia che lo script inizi da un messaggio diverso.

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."
}

L'elenco dei messaggi che ruotano nella chat principale. Ogni avviso deve essere breve, utile e non distruttivo.

Esempi di buon avviso:

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."
}

Evita avvisi lunghi, ripetuti o aggressivi. È più probabile che gli utenti ignorino i messaggi automatici quando appaiono troppo spesso.

Configurazioni di esempio

Promemoria delle regole di base

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."
}

Avviso sul sito Web e sul supporto

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."
}

Avviso di manutenzione

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."
}

Avviso 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."
}

Per la maggior parte degli hub, utilizzare un intervallo di 15 o 30 minuti:

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."
}

Ciò mantiene visibili gli avvisi senza inondare la chat. Per gli hub occupati, utilizzare:

interval = 3600

Per hub silenziosi, utilizzare:

interval = 1800

L'automazione della chat principale dovrebbe supportare la comunità, non interromperla.

Testare la sceneggiatura

Dopo aver caricato lo script, conferma che:

  • Lo script viene caricato senza errori.
  • L'avviso appare nella chat principale.
  • Gli avvisi ruotano nell'ordine previsto.
  • L'intervallo non è troppo aggressivo.
  • Il nome del bot è chiaro.
  • Lo script viene scaricato in modo pulito.
  • Il ricaricamento dello script non crea timer duplicati o avvisi duplicati.

Testare prima con un intervallo breve, quindi modificarlo con l'intervallo di produzione.

Esempio di impostazione del test:

interval = 30

Dopo il test, modificalo di nuovo:

interval = 1800

Quindi ricaricare lo script.

Risoluzione dei problemi

Lo script non viene caricato

Verifica che il plugin Lua sia attivo:

!pluglist

Controlla che il percorso del file sia corretto:

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

Utilizzare il percorso assoluto se i percorsi relativi non funzionano.

Gli avvisi non vengono visualizzati

Controllo:

  • Il plugin Lua è caricato.
  • Il percorso dello script è corretto.
  • La tua versione del plugin Verlihub Lua supporta la funzione timer.
  • L'intervallo non è troppo alto durante il test.
  • IL notices la tabella contiene almeno un messaggio.

Utilizzare temporaneamente:

interval = 30

Quindi ricarica lo script e attendi il prossimo avviso.

Gli avvisi vengono visualizzati troppo spesso

Aumentare l'intervallo.

interval = 1800

O:

interval = 3600

Evitare intervalli brevi in produzione.

Vengono visualizzati avvisi duplicati

Ciò in genere significa che lo script è stato caricato più di una volta o che una vecchia istanza non è stata scaricata correttamente.

Scarica lo script:

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

Quindi caricalo di nuovo:

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

Se i duplicati continuano, riavviare il plug-in Lua o il servizio Verlihub durante una finestra di manutenzione.

Errori di script dopo la modifica degli avvisi

Controllare la sintassi Lua. Ogni riga di avviso deve terminare con una virgola tranne l'ultima riga, che può ometterla.

Corretto:

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

Errato:

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

Nell'esempio errato manca una virgola dopo il primo messaggio.

Note sulla sicurezza

Questo script dovrebbe rimanere leggero. Non aggiungere:

  • Richieste HTTP esterne.
  • Interrogazioni del database.
  • Scansione dei file.
  • Anelli lunghi.
  • Blocco delle chiamate per dormire.
  • Elaborazione intensiva per utente.

Lo script dovrebbe ruotare solo gli avvisi configurati e inviarli a intervalli ragionevoli.

Note sulla manutenzione

Conserva un backup prima di modificare lo script:

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

Se usi Git:

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

Quando si modifica solo il nome del bot, gli avvisi o l'intervallo, non sono richieste modifiche alla logica.

Regole suggerite per la scrittura degli avvisi

I buoni avvisi sono brevi e utili.

Raccomandato:

  • Un'idea per avviso.
  • Formulazione chiara.
  • Nessuna punteggiatura ripetuta.
  • Nessun messaggio tutto maiuscolo.
  • Nessun post troppo frequente.
  • Nessun paragrafo lungo nella chat principale.

Evitare:

  • Pubblicazione ogni pochi secondi.
  • Pubblicare ripetutamente lo stesso messaggio.
  • Utilizzare gli avvisi solo come pubblicità.
  • Invio di blocchi di regole di grandi dimensioni alla chat principale.
  • Interrompere le conversazioni attive troppo spesso.

Pagina Padre