Get User Info for Target
!cmd @bob — User-Lookup für den Erwähnten. Setzt Argument %targetUser% Display Name des Targets nach Get User Info for Target.
Variablen-Doku , Argument %targetUserName% Login (lowercase) des Targets.
Variablen-Doku und ein Dutzend weiterer Argumente.
Doku: docs.streamer.bot — Get User Info for Target
| Feld | Bedeutung |
|---|---|
| User Login | Login des Users (ohne @). Variable wie %input0% oder eigenes Argument |
Sonst nichts. Die Sub-Action macht den API-Call und füllt jede Menge Argumente.
Output-Variablen
Abschnitt betitelt „Output-Variablen“| Variable | Inhalt |
|---|---|
%targetUser% | Display Name (mit Caps) |
%targetUserName% | Login (lowercase) |
%targetUserId% | Twitch User-ID |
%targetUserType% | affiliate · partner · leer |
%targetIsAffiliate% | bool |
%targetIsPartner% | bool |
%targetIsModerator% | bool |
%targetIsVip% | bool |
%targetIsSubscribed% | bool |
%targetSubscriptionTier% | 1000 · 2000 · 3000 (T1/T2/T3) |
%targetChannelTitle% | Aktueller Stream-Titel |
%targetDescription% | Channel-Beschreibung |
%game% | Aktuelle Kategorie |
%gameId% | Game-ID |
%accountAge% | Account-Alter in Sekunden |
%createdAt% | Account-Erstelldatum |
%addTargetResult% | bool — ob der Lookup erfolgreich war |
Problem: %input0% enthält das @
Abschnitt betitelt „Problem: %input0% enthält das @“Wenn ein User !iq @bob tippt, ist %input0% = @bob. Die Twitch-API will den Login OHNE @.
Lösung: Inline-Function $replace:
| Feld | Wert |
|---|---|
| User Login | $replace(%input0%, @, )$ |
Klein, aber wichtig.
Problem: User tippt !iq ohne Target
Abschnitt betitelt „Problem: User tippt !iq ohne Target“%input0% ist leer → Get User Info for Target schlägt fehl. Lösung: Fallback auf den Sender.
Sauberste Variante (siehe auch Set Argument Fallback):
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 setzt zuerst den potenziellen Target. Wenn %input0% leer war, ist targetLogin jetzt auch leer. Schritt 2 prüft das und überschreibt mit %userName% (Sender). Schritt 3 nutzt das Ergebnis.
Komplettes Pattern: Target mit Fallback und Fehlerbehandlung
Abschnitt betitelt „Komplettes Pattern: Target mit Fallback und Fehlerbehandlung“Action-Tree für jeden Target-Command:
[Cmd] !x├── 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%)├── 4. If/Else: %addTargetResult% Equals false│ ├─ Send Message: "@%user% den User gibt's nicht"│ └─ Break└── 5. Send Message: "…%targetUser%…"Schritt 4 fängt den Fall ab, dass der Login nicht existiert (Tippfehler).
Wenn der Command IMMER ein Target braucht
Abschnitt betitelt „Wenn der Command IMMER ein Target braucht“Z.B. !hug @bob — ohne @ macht der Command keinen Sinn:
2. If/Else: %targetLogin% Is Null or Empty ├─ Send Message: "@%user% nutze !hug @username" └─ BreakStatt Fallback → Hilfetext + Break.
Häufige Fallen
Abschnitt betitelt „Häufige Fallen“%input0%mit@an die Sub-Action gegeben →addTargetResult = false. Immer$replace(%input0%, @, )$.- Get User Info NACH Send Message — die Variablen sind dann noch leer. Reihenfolge: Lookup, dann Antwort.
- Self-Target-Spam — wenn
%input0%leer und Fallback auf Sender → User triggert für sich selbst. Bewusste Entscheidung, ob das ok ist (!iqja ·!hugeher nicht).