C#-Grundgerüst & das CPH-Objekt
Wenn du No-Code-Sub-Actions schon kennst, ist C# der nächste Schritt: mehr Logik, weniger Klick-Akrobatik. Die gute Nachricht zuerst: jede C#-Action in Streamer.bot hat exakt dasselbe Grundgerüst. Du lernst es einmal und tippst es danach im Schlaf. Geschrieben wird dieser Code in der Sub-Action Execute C# Code.
Core C# Code Execute C# CodeDoku: docs.streamer.bot · C# Overview
Das Grundgerüst
Abschnitt betitelt „Das Grundgerüst“Das hier ist die kleinste lauffähige C#-Action. Mehr braucht es nicht, damit Streamer.bot den Code akzeptiert:
public class CPHInline { public bool Execute() { return true; }}Drei Bausteine, Zeile für Zeile:
public class CPHInline: Die Klasse, die Streamer.bot erwartet. Der NameCPHInlineist fest vorgegeben. Heißt die Klasse anders, findet Streamer.bot den Einstiegspunkt nicht und der Build schlägt fehl.public bool Execute(): Die einzige Pflichtmethode, der eine und einzige Einstiegspunkt. Wird die Action ausgelöst, ruft Streamer.bot genau diese Methode auf. Auch ihr Name ist fest.boolbedeutet: sie gibt einen Wahrheitswert zurück.return true: Der Rückgabewert.trueheißt grob “alles gut, weitermachen”. Wastrueundfalsegenau steuern, behandelt die nächste Seite.
Innerhalb dieser Klasse darfst du eigene Felder und Methoden ergänzen, also Hilfsfunktionen, Zähler oder Konstanten. Streamer.bot ruft aber immer nur Execute() direkt auf. Das ist der Start, alles andere hängt daran.
Das CPH-Objekt
Abschnitt betitelt „Das CPH-Objekt“In Execute() steht dir überall ein vorgefertigtes Objekt namens CPH zur Verfügung. Du musst es nicht erzeugen, es ist einfach da. CPH ist die Brücke zur Streamer.bot-API: jede Aktion, die Streamer.bot kann, also Chat schreiben, Argumente lesen, Variablen speichern, läuft als Methode auf diesem Objekt.
Ein erster Überblick über die wichtigsten Gruppen. Jede bekommt später eine eigene Detailseite:
| Bereich | Typische Methode | Wofür | Detailseite |
|---|---|---|---|
| Chat | CPH.SendMessage(...) | Nachricht in den Twitch-Chat senden | Chat senden |
| Argumente | CPH.TryGetArg(...) / CPH.SetArgument(...) | Daten aus dem Trigger lesen und zurückgeben | Argumente lesen |
| Globals | CPH.GetGlobalVar(...) / CPH.SetGlobalVar(...) | Werte dauerhaft über Actions hinweg speichern | Globale Variablen |
| Logging | CPH.LogInfo(...) | Meldungen ins Streamer.bot-Log schreiben | Logging & Debugging |
Wenn du im Editor CPH. tippst, schlägt die Autovervollständigung alle verfügbaren Methoden vor. Das ist die schnellste Art, die API zu erkunden.
Erstes funktionierendes Beispiel
Abschnitt betitelt „Erstes funktionierendes Beispiel“Das Grundgerüst plus eine echte Aktion: diese Action schreibt eine Zeile in den Chat.
public class CPHInline { public bool Execute() { CPH.SendMessage("🚀 C# läuft. GG."); return true; }}So testest du sie:
- Code in das Execute C# Code Feld einfügen und die Action speichern.
- In der Action-Liste auf den Test-Button klicken (oder die Action über ihren echten Trigger auslösen, etwa einen Chat-Command).
- Die Nachricht erscheint im verbundenen Twitch-Chat.
Tippt jetzt jemand im Stream den passenden Command, läuft Execute() und die Zeile geht raus. Genau dieses Muster, Grundgerüst plus eine CPH-Methode, ist die Basis für so gut wie alles Weitere.
Compile beim Speichern
Abschnitt betitelt „Compile beim Speichern“Streamer.bot kompiliert deinen C#-Code beim Speichern der Action, nicht erst beim Auslösen. Das ist praktisch: Tippfehler und Syntaxfehler fallen sofort auf, nicht erst mitten im Live-Stream.
Gibt es einen Fehler, wird die Action nicht gespeichert und die Meldung landet im Log. Dort steht meist die betroffene Zeilennummer und was schiefging. Wie du das Log liest und gezielt Meldungen mit CPH.LogInfo setzt, zeigt Logging & Debugging.
Häufige Fallen
Abschnitt betitelt „Häufige Fallen“- Klasse falsch benannt: Die Klasse muss
CPHInlineheißen.MyClassoderInlinefunktionieren nicht, Streamer.bot findet den Einstiegspunkt nicht. - Methode falsch benannt oder falsche Signatur: Es muss
public bool Execute()sein. Kleinschreibung wieexecute()oder ein anderer Rückgabetyp wievoidbricht den Build. return truevergessen:Execute()ist alsbooldeklariert und muss einen Wert zurückgeben. Fehlt dasreturn, meldet der Compiler einen Fehler. Im Zweifelreturn trueans Ende setzen.- Geschweifte Klammer fehlt: Jede
{braucht ihr}. Eine fehlende Klammer ist die häufigste Ursache für kryptische Compile-Fehler. Achte auf die Einrückung, dann siehst du es schneller. CPHkleingeschrieben: Das Objekt heißtCPHin Großbuchstaben.cph.SendMessage(...)ist nicht definiert.