Erstellt: 2026/07/02 19:41:27 America/Chicago
Von: admin
Geändert: 2026/07/03 16:24:56 America/Chicago
Von: admin

Das Skript time.lua erstellt einen kleinen Benutzerlisteneintrag, dessen Name sich ändert, um die aktuelle Uhrzeit anzuzeigen. Verwenden Sie es, wenn ein Verlihub-Hub eine sichtbare Zeitzonenmarkierung für internationale Benutzer, regionale Räume oder Operatoren benötigt, die über Zeitzonen hinweg koordinieren.

Das Skript erfordert keinen separaten externen Bot-Prozess. Es verwendet das Plugin Verlihub Lua, um einen Bot-ähnlichen Eintrag in der Hub-Benutzerliste zu erstellen. Ein Uhreintrag kann so aussehen:

!_US_06:30:00PM

Sie können Präfix, Postfix, Zeitformat, Aktualisierungsintervall und Zeitzonenversatz ändern, bevor Sie das Skript laden.

Was dieses Skript macht

Das Skript erstellt den Anzeigenamen aus drei Teilen:

prefix + current time + postfix

Beispielausgabe:

!_US_06:30:00PM

Der sichtbare Benutzerlisteneintrag wird zeitgesteuert aktualisiert, sodass die angezeigte Zeit aktuell bleibt.

Verwenden Sie dieses Skript für:

  • Zeigt eine Hub-Zeitzone an.
  • Zeigt eine regionale Uhr.
  • Helfen Sie internationalen Benutzern, ihre Zeit zu koordinieren.
  • Erstellen einer einfachen visuellen Markierung in der Benutzerliste.
  • Hinzufügen eines kleinen Utility-Bots, ohne externe Software auszuführen.

Anforderungen

Dieses Skript erfordert:

  • Verlihub installiert und läuft.
  • Das Plugin Verlihub Lua ist installiert.
  • Das Plugin Lua ist in Verlihub aktiviert.
  • Berechtigung zum Laden und Entladen von Lua-Skripten.
  • Ein beschreibbares Skriptverzeichnis für Verlihub Lua Dateien.

Stellen Sie vor dem Laden des Skripts sicher, dass das Plugin Lua aktiv ist:

!pluglist

Wenn das Plugin Lua nicht aufgeführt ist, laden oder aktivieren Sie es zuerst aus dem übergeordneten Setup-Artikel Lua.

Verwenden Sie ein dediziertes Skriptverzeichnis:

mkdir -p /PATH/TO/HUB/scripts

Platzieren Sie das Skript unter:

/PATH/TO/HUB/scripts/time.lua

Bei Produktionssystemen sollte das Verzeichnis nur von vertrauenswürdigen Administratoren oder vom Dienstbenutzer Verlihub beschreibbar sein. Machen Sie das Verzeichnis nicht weltweit beschreibbar.

Befehle zum Laden und Entladen

Laden Sie das Skript:

!luaload /PATH/TO/HUB/scripts/time.lua

Entladen Sie das Skript:

!luaunload /PATH/TO/HUB/scripts/time.lua

Wenn Sie das Skript bearbeiten, entladen Sie es und laden Sie es erneut:

!luaunload /PATH/TO/HUB/scripts/time.lua
!luaload /PATH/TO/HUB/scripts/time.lua

Verwenden Sie den vollständigen absoluten Pfad, es sei denn, Ihre Plugin-Konfiguration Lua unterstützt relative Pfade.

Skriptcode

name = ''
class = 3
description = 'Time Bot: US'
speed = '100'
email = ''
share = '0'
prefix = '!_US_'
postfix = ''
interval = 10
counter = 0
format = "%I:%M:%S%p"
offset = -5

function GetTime()
    return os.date(format, os.time() + offset * 60 * 60)
end

function GetName()
    time = GetTime()
    return prefix..time..postfix
end

Konfigurationsoptionen

name

name = ''

Der Basisnamenswert für den Bot-ähnlichen Eintrag. In diesem Skript wird der sichtbare Name generiert von GetName(), Also name kann in der Regel leer bleiben.

class

class = 3

Steuert die angezeigte Klasse oder Profilebene des Bot-ähnlichen Eintrags. Die genaue Bedeutung der Klassenwerte hängt von der Hub-Konfiguration ab. In vielen Hub-Setups stehen höhere Klassennummern für erhöhte Benutzerrollen.

Verwenden Sie einen Klassenwert, der dazu passt, wie der Uhreintrag in der Benutzerliste angezeigt werden soll.

description

description = 'Time Bot: US'

Die für den Bot-ähnlichen Eintrag angezeigte Beschreibung. Erklären Sie hiermit, was der Eintrag darstellt.

description = 'Time Bot: US'
description = 'Time Bot: UTC'
description = 'Hub Clock'
description = 'Server Time'

speed

speed = '100'

Der für den Bot-ähnlichen Eintrag angezeigte Verbindungsgeschwindigkeitswert. Dies ist größtenteils kosmetischer Natur. Es steuert nicht, wie oft das Skript aktualisiert wird.

email

email = ''

Das für den Bot-ähnlichen Eintrag angezeigte E-Mail-Feld. Lassen Sie es leer, es sei denn, Sie möchten eine Kontaktadresse anzeigen.

share

share = '0'

Die für den Bot-ähnlichen Eintrag angezeigte Freigabegröße. Für einen Uhrenbot, 0 ist angemessen, da es sich nicht um einen echten Filesharing-Benutzer handelt.

prefix

prefix = '!_US_'

Text vor der generierten Zeit platziert. Dadurch ist die Uhr in der Benutzerliste leicht zu identifizieren.

prefix = '!_US_'
prefix = '!_UTC_'
prefix = '[TIME] '
prefix = 'Clock_'

Wählen Sie ein Präfix, das in Ihrer Hub-Benutzerliste eine klare Sortierung ermöglicht.

postfix

postfix = ''

Text nach der generierten Zeit platziert.

postfix = ''
postfix = '_EST'
postfix = '_UTC'
postfix = ' HubTime'

interval

interval = 10

Steuert, wie oft das Skript aktualisiert werden soll, normalerweise in Sekunden. Halten Sie den Abstand angemessen. Für einen Hub-Benutzerlisteneintrag ist es normalerweise nicht erforderlich, jede Sekunde zu aktualisieren.

  • 10: nützlich für eine sichtbare sekundenbasierte Uhr.
  • 30: eine gute Balance für viele Hubs.
  • 60: am besten für Nur-Minuten-Uhren.

Wenn Ihr Format keine Sekunden anzeigt, verwenden Sie 60.

format = "%I:%M%p"
interval = 60

counter

counter = 0

Interner Zähler, der vom Skript verwendet wird. Ändern Sie dies nicht, es sei denn, Sie ändern die Skriptlogik.

format

format = "%I:%M:%S%p"

Steuert, wie die Uhrzeit angezeigt wird. Dies verwendet Lua os.date Formatierung. Das Standardformat zeigt die 12-Stunden-Zeit mit Sekunden und AM/PM an.

Beispielausgabe:

06:30:00PM

Gängige Formate:

format = "%I:%M:%S%p"      -- 06:30:00PM
format = "%I:%M%p"         -- 06:30PM
format = "%H:%M:%S"        -- 18:30:00
format = "%H:%M"           -- 18:30
format = "%Y-%m-%d %H:%M"  -- 2026-07-02 18:30

Bei Benutzerlisteneinträgen sind kürzere Formate normalerweise einfacher zu lesen.

offset

offset = -5

Zeitzonenunterschied zur Serverzeit, in Stunden. Das Skript berechnet die Zeit anhand von:

os.time() + offset * 60 * 60

Beispiele:

offset = 0    -- same as server time
offset = -5   -- five hours behind server time
offset = 1    -- one hour ahead of server time
offset = 5.5  -- five and a half hours ahead, if fractional offsets work in your Lua environment

Dies ist ein fester Offset. Sommerzeitregeln werden nicht automatisch verarbeitet, es sei denn, die Serverzeit und der Offset werden angepasst. Bei Änderungen der Sommerzeit aktualisieren Sie den Offset bei Bedarf.

Beispielkonfigurationen

US-Eastern-Time-Stil

description = 'Time Bot: US Eastern'
prefix = '!_US_'
postfix = ''
interval = 60
format = "%I:%M%p"
offset = -5

Beispielanzeige:

!_US_06:30PM

UTC-Uhr

description = 'Time Bot: UTC'
prefix = '!_UTC_'
postfix = ''
interval = 60
format = "%H:%M"
offset = 0

Beispielanzeige:

!_UTC_23:30

24-Stunden-Hub-Uhr

description = 'Hub Clock'
prefix = '!_TIME_'
postfix = ''
interval = 60
format = "%H:%M"
offset = 0

Beispielanzeige:

!_TIME_18:30

Verwenden Sie für die meisten Hubs eine Nur-Minuten-Uhr:

prefix = '!_US_'
postfix = ''
interval = 60
format = "%I:%M%p"
offset = -5

Dies reduziert unnötige Aktualisierungen und sorgt gleichzeitig dafür, dass die Uhr lesbar bleibt.

Verwenden Sie Sekunden nur, wenn Sie einen Live-Clock-Effekt wünschen:

interval = 10
format = "%I:%M:%S%p"

Ein Aktualisierungsintervall von einer Sekunde ist für einen Hub-Benutzerlisteneintrag normalerweise nicht erforderlich:

interval = 1

Testen des Skripts

Überprüfen Sie nach dem Laden des Skripts die Hub-Benutzerliste auf den generierten Zeiteintrag.

Bestätigen Sie Folgendes:

  • Der Eintrag erscheint nur einmal.
  • Die angezeigte Zeit ist korrekt.
  • Das Präfix und das Postfix sehen richtig aus.
  • Das Aktualisierungsintervall ist nicht zu aggressiv.
  • Der Eintrag verschwindet nach dem Entladen des Skripts.
  • Durch das Neuladen des Skripts werden keine Duplikate erstellt.

Wenn die Uhrzeit falsch ist, überprüfen Sie die Zeitzone des Servers und den konfigurierten Offset.

Überprüfen Sie auf dem Server die aktuelle Systemzeit:

date
timedatectl

Fehlerbehebung

Das Skript wird nicht geladen

Überprüfen Sie, ob das Plugin Lua aktiv ist:

!pluglist

Überprüfen Sie, ob der Dateipfad korrekt ist:

!luaload /PATH/TO/HUB/scripts/time.lua

Verwenden Sie den absoluten Pfad, wenn relative Pfade nicht funktionieren.

Die Zeit ist falsch

Überprüfen:

  • Zeitzone des Servers.
  • offset Wert.
  • Sommerzeit.
  • Ob die Serveruhr synchronisiert ist.

Serverprüfungen:

date
timedatectl

Wenn die Serverzeit korrekt ist, die angezeigte Uhr jedoch falsch ist, passen Sie sie an offset.

Das Skript erstellt doppelte Einträge

Entladen Sie das Skript und bestätigen Sie, dass der alte Eintrag verschwindet:

!luaunload /PATH/TO/HUB/scripts/time.lua

Dann laden Sie es erneut:

!luaload /PATH/TO/HUB/scripts/time.lua

Wenn Duplikate verbleiben, starten Sie das Plugin Lua oder den Dienst Verlihub während eines Wartungsfensters neu.

Die Uhr wird zu oft aktualisiert

Erhöhen Sie das Intervall.

interval = 60
format = "%I:%M%p"

Wenn Sekunden angezeigt werden, verwenden Sie:

interval = 10
format = "%I:%M:%S%p"

Benutzer sind durch den Eintrag verwirrt

Machen Sie das Präfix oder die Beschreibung klarer.

prefix = '!_HUB_TIME_'
description = 'Hub Time Clock'

Sicherheitshinweise

Dieses Skript ist klein, läuft aber dennoch in der Umgebung Verlihub Lua. Konzentrieren Sie sich im Skript auf die Berechnung der aktuellen Uhrzeit und die Aktualisierung des Anzeigenamens.

Nicht hinzufügen:

  • Externe HTTP-Anfragen.
  • Datenbankabfragen.
  • Scannen von Dateien.
  • Lange Schleifen.
  • Schlafrufe blockieren.

Wartungshinweise

Erstellen Sie ein Backup, bevor Sie das Skript ändern:

cp /PATH/TO/HUB/scripts/time.lua /PATH/TO/HUB/scripts/time.lua.bak

Bei Verwendung von Git:

cd /PATH/TO/HUB/scripts
git add time.lua
git commit -m "Update time.lua clock settings"

Wenn nur Präfix, Postfix, Format, Intervall oder Offset geändert werden, sind keine Änderungen an der Codelogik erforderlich.

Übergeordnete Seite