Zum Inhalt springen

Set Argument — Defaults und Fallbacks

Set Argument legt ein lokales Argument an oder überschreibt eines. Wichtigster Use-Case: Default-Werte BEVOR If/Else prüft.

Core Arguments Set Argument

Doku: docs.streamer.bot — Set Argument

FeldBedeutung
Variable NameName OHNE %. Beispiel: targetLogin
ValueWert. Kann %arg% und $func()$ enthalten
Auto TypeDefault an. Automatische Typ-Erkennung (Zahl/Bool/String)

Auto Type aus = alles als String. Selten nötig.

1. Set Argument: targetLogin = $replace(%input0%, @, )$
2. If/Else: %targetLogin% Is Null or Empty
└─ Set Argument: targetLogin = %userName%
3. Get User Info for Target (User Login = %targetLogin%)
  • Schritt 1 — Default vom Input, mit @ entfernt. Wenn %input0% leer war, ist targetLogin jetzt leer.
  • Schritt 2 — Falls leer → mit Sender überschreiben.
  • Schritt 3%targetLogin% enthält jetzt entweder den Target oder den Sender.

Pattern-Kombination siehe Get User Info for Target.

Use-Case: Output kopieren bevor er überschrieben wird

Abschnitt betitelt „Use-Case: Output kopieren bevor er überschrieben wird“

Get Random Number setzt immer %randomNumber%. Wenn du zwei Würfe brauchst, musst du den ersten Wert sichern:

1. Get Random Number (0, 100)
2. Set Argument: roll1 = %randomNumber%
3. Get Random Number (0, 100)
4. Set Argument: roll2 = %randomNumber%
5. Send Message: "@%user% rollt %roll1% und %roll2%"

Siehe Get Random Number.

Wenn du den replaced/lowercased Wert mehrfach brauchst, einmal in eine Variable schreiben:

1. Set Argument: cleanInput = $lower($replace(%input0%, @, ))$
2. … %cleanInput% an mehreren Stellen verwenden …

Ohne Set Argument müsstest du $lower($replace(%input0%, @, ))$ in jedem Feld wiederholen.

1. Set Argument: isAdmin = false
2. If/Else: %userType% Equals broadcaster
└─ Set Argument: isAdmin = true
3. If/Else: %userType% Equals moderator
└─ Set Argument: isAdmin = true
4. If/Else: %isAdmin% Equals true
└─ … mod-only Logic …
  • % im Variable-Name-Feld — falsch. Nur den nackten Namen.
  • Auto Type unbeabsichtigt aktiv"5" wird zu Integer 5, dann scheitert Equals "5" als String-Vergleich. Im Zweifel mit Equals (Ignore Case) String-Vergleich erzwingen oder Auto Type aus.
  • Set Argument im falschen Branch — innerhalb eines If/Else-Then-Pfads gesetzte Argumente überleben das If/Else trotzdem (Scope ist die ganze Action, nicht der Branch).

Set Argument ist Glue-Code zwischen vielen Patterns. Klassische Kombi:

Set Argument → If/Else → Set Argument → Get User Info for Target → Send Message

oder

Get Random Number → Set Argument → If/Else cascade → Send Message
  • !iq — Target-Login mit Fallback
  • !rose — Target-Login mit Help-Fallback
  • !shrimp — Counter aus Globals lokal puffern