Zum Inhalt springen
  • Dunkel
  • Hell
  • System

Switch: Multi-Branch ohne If/Else-Kaskade

Prüft einen Wert gegen mehrere Cases. Führt nur die Sub-Actions des matchenden Case aus. Sauberer als eine lange If/Else-Kaskade, wenn du denselben Wert gegen viele Optionen prüfst.

Core Logic Switch

Doku: docs.streamer.bot · Switch

FeldBedeutungEmpfehlung
ModeGroups = Cases als Sub-Action-Groups · Set Argument = setzt eine Variable je CaseGroups für unterschiedliche Aktionen, Set Argument für Wert-Mapping
VariableDer Wert der geprüft wird. Unterstützt %arg%, ~global~, $func()$z.B. %input0% oder %game%
Case SensitiveGroß-/Kleinschreibung beachtenmeist deaktiviert
DefaultWas passiert wenn kein Case matchtimmer setzen als Fallback

Jeder Case ist eine Group mit eigenen Sub-Actions. Nur die matchende Group läuft.

[Cmd] !lang
├── 1. Switch (Variable: %input0%, Case Sensitive: aus)
│ ├── Case "de":
│ │ └── Send Message: "@%user% Sprache auf Deutsch gestellt."
│ ├── Case "en":
│ │ └── Send Message: "@%user% Language set to English."
│ ├── Case "fr":
│ │ └── Send Message: "@%user% Langue réglée sur français."
│ └── Default:
│ └── Send Message: "@%user% Unbekannte Sprache. Verfügbar: de, en, fr"

So baust du die Cases:

  1. Switch-Sub-Action hinzufügen (Core → Logic → Switch)
  2. Variable setzen (z.B. %input0%)
  3. Rechtsklick auf den Switch → Add Case
  4. Case-Wert eingeben (z.B. de)
  5. Sub-Actions in die Case-Group ziehen
  6. Wiederholen für jeden Case
  7. Default-Case nicht vergessen (fängt alles auf)

Statt Groups setzt Switch direkt eine Variable je Case. Kompakter, wenn du nur einen Wert mappen willst.

[Cmd] !rang
├── 1. Switch (Variable: %userLevel%, Mode: Set Argument, Argument: rangName)
│ ├── Case "1": "Bronze"
│ ├── Case "2": "Silber"
│ ├── Case "3": "Gold"
│ └── Default: "Unranked"
├── 2. Send Message: "@%user% dein Rang ist: %rangName%"

Ergebnis: Argument %rangName% Gesetzt vom Switch im Set-Argument-Mode. Enthält den gemappten Wert des matchenden Case. Variablen-Doku enthält den gemappten Wert.

SituationBesser
Einen Wert gegen viele feste Optionen prüfenSwitch
Zahlenbereiche prüfen (< 50, < 100, …)If/Else (Range-Cascade)
Nur zwei Möglichkeiten (wahr/falsch)If/Else
Regex oder ContainsIf/Else (Switch kann das nicht)
Verschiedene Variablen in verschiedenen ChecksIf/Else (Switch prüft nur eine)
  • Default vergessen: Wenn kein Case matcht und kein Default gesetzt ist, passiert gar nichts (Silent Failure).
  • Case Sensitive an: Dede. Im Zweifel Case Sensitive deaktivieren.
  • Leerzeichen im Case-Wert: " de""de". Trim-Funktion vorher nutzen oder Whitespace vermeiden.
  • Switch kann keine Ranges: Für numerische Vergleiche (< 50) bleibt If/Else die richtige Wahl.
  • Rang-/Level-Systeme: %userLevel% → unterschiedliche Nachrichten
  • Multi-Language-Commands: %input0% → Sprach-Auswahl
  • Menü-Commands: !settings theme dark → Switch auf %input0%