Zum Inhalt springen
  • Dunkel
  • Hell
  • System

!unlurk

!unlurk

Fortgeschritten

!back !return

Holt den User aus dem Lurk-Modus zurück und sagt wie lange er weg war. Wenn der User vorher gar nicht lurkte, gibts eine alternative Message.

Steps
6
Cooldown
30s/User
Cooldown
0sglobal
Zugriff
Public

!unlurk ist die zweite Hälfte des Lurk-Systems aus !lurk. Der Action holt sich den gespeicherten Start-Timestamp, berechnet die Differenz und formatiert die Dauer human-readable.

Global (Get). Lurk-Flag prüfen

Core Globals Global (Get)

Holt das Lurk-Flag. Default false damit der If/Else korrekt verzweigt wenn User gar nicht lurkte.

Variable Name isLurking
Default Value false
Source User (redeemer)
Persisted Persisted
Variable Name (Destination) wasLurking

If/Else: Lurkte User überhaupt?

Core Logic If/Else

Verzweigt in beide Fälle: aus Lurk-Modus zurück (Then) oder nie weg gewesen (Else).

Left Value %wasLurking%
Comparator Equals
Right Value true

Global (Get). Lurk-Start-Timestamp (im Then-Branch)

Core Globals Global (Get)

Innerhalb des Then-Branchs (User lurkte). Holt den gespeicherten Unix-Timestamp.

Variable Name lurkStart
Default Value 0
Source User (redeemer)
Persisted Persisted
Variable Name (Destination) lurkStartTs

Set Argument: Dauer berechnen und formatieren

Core Arguments Set Argument

Differenz aus jetzt und Start, dann durch 60 für Minuten. Round auf 1 Dezimalstelle.

Variable Name lurkDurationMin
Value $round($divide($subtract(%timestampUnixSeconds%, %lurkStartTs%), 60)$, 1)$

$round()$, $divide()$ und $subtract()$ sind eingebaute Streamer.bot-Inline-Functions: siehe die Variablen-Reference.

Send Message: Welcome Back

Twitch Chat Send Message to Channel

Bot meldet die Dauer zurück. Im Then-Branch nach dem Berechnen.

Message %userName% ist zurück 👋 nach %lurkDurationMin% Minuten: schön dass du da bist!
Send using bot account aktiv
Fallback to Broadcaster aktiv
AzaBot: azazelitv ist zurück 👋 nach 23.4 Minuten: schön dass du da bist!
So sieht's im Chat aus

Global (Set). Flag zurücksetzen

Core Globals Global (Set)

Im Then-Branch nach der Welcome-Message. Setzt isLurking=false; lurkStart bleibt erstmal stehen aber wird beim nächsten !lurk überschrieben.

Variable Name isLurking
Value false
Mode Value
Destination User (redeemer)
Persisted Persisted

Im Else-Branch (User lurkte gar nicht) reicht eine einzige Send Message:

Send Message: Nicht im Lurk

Twitch Chat Send Message to Channel

Else-Branch des If/Else. User war gar nicht weg.

Message %userName%: du warst doch gar nicht weg 👀
Send using bot account aktiv
  1. 1 Global (Get): isLurking → %wasLurking% (User-redeemer)
  2. 2 If/Else: %wasLurking% Equals true
    1. Then 2a Global (Get): lurkStart → %lurkStartTs% (User-redeemer)
    2. Then 2b Set Argument: lurkDurationMin = round(divide(subtract(now, lurkStartTs), 60), 1)
    3. Then 2c Send Message: "%userName% ist zurück 👋 nach %lurkDurationMin% Minuten ..."
    4. Then 2d Global (Set): isLurking = false
    5. Else 2e Send Message: "%userName%: du warst doch gar nicht weg 👀"
FeldWert
Name!unlurk. Lurk beenden
GroupStandard
Commands!unlurk
!back
!return
Text Matching ModeBasic
LocationStart
SourcesTwitch Message
Ignore Bot Accountaktiv
User Cooldown30
Global Cooldown0

Für lange Lurks (z.B. 2h 15min) sieht “135.3 Minuten” doof aus. Lösung: zusätzlicher Math-Step:

  1. 1 Set Argument: totalMinutes = round(divide(diffSeconds, 60), 0)
  2. 2 Set Argument: hours = floor(divide(%totalMinutes%, 60))
  3. 3 Set Argument: minutes = modulo(%totalMinutes%, 60)
  4. 4 If/Else: hours > 0
    1. Then 4a Send Message: "... nach %hours%h %minutes%min"
    2. Else 4b Send Message: "... nach %minutes% Minuten"