Pattern: 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.
Pfad: Core → Arguments → Set Argument
Doku: https://docs.streamer.bot/api/sub-actions/core/arguments/set-argument
Felder¶
| Feld | Bedeutung |
|---|---|
| Variable Name | Name OHNE %. Beispiel targetLogin |
| Value | Wert. Kann %arg% und $func()$ enthalten |
| Auto Type | Default an. Automatische Typ-Erkennung (Zahl/Bool/String) |
Auto Type aus = alles als String. Selten nötig.
Klassischer Use-Case: Default vor Check¶
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.
Use-Case: Output kopieren bevor er überschrieben wird¶
Get Random Number setzt immer %randomNumber%. Wenn du zwei Random Numbers 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%"
Use-Case: String-Manipulation als Variable¶
Wenn du den replaced/lowercased Wert mehrfach brauchst, einmal in eine Variable:
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.
Use-Case: Bool für If/Else vorbereiten¶
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 ...
Häufige Fallen¶
%im Variable-Name-Feld → falsch. Nur den nackten Namen- Auto Type unbeabsichtigt aktiv — "5" wird zu Integer 5, dann
Equals "5"schlägt fehl. Im Zweifel mitEquals (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)
Pattern-Kombinationen¶
Set Argument ist Glue-Code zwischen vielen Patterns. Klassische Kombi:
oder