Zum Inhalt springen

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.

Twitch User Get User Info for Target

Doku: docs.streamer.bot — Get User Info for Target

FeldBedeutung
User LoginLogin des Users (ohne @). Variable wie %input0% oder eigenes Argument

Sonst nichts. Die Sub-Action macht den API-Call und füllt jede Menge Argumente.

VariableInhalt
%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

Wenn ein User !iq @bob tippt, ist %input0% = @bob. Die Twitch-API will den Login OHNE @.

Lösung: Inline-Function $replace:

FeldWert
User Login$replace(%input0%, @, )$

Klein, aber wichtig.

%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).

Z.B. !hug @bob — ohne @ macht der Command keinen Sinn:

2. If/Else: %targetLogin% Is Null or Empty
├─ Send Message: "@%user% nutze !hug @username"
└─ Break

Statt Fallback → Hilfetext + Break.

  • %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 (!iq ja · !hug eher nicht).
  • !iq — Target-Fallback auf Sender
  • !rose — Target Pflicht (Help-Message als Fallback)
  • !hug — Counter pro Target via Globals
  • !so — Display Name + Channel-Titel im Shoutout