C# in Streamer.bot
Die meisten Commands baust du in Streamer.bot ganz ohne Code: Sub-Actions zusammenklicken, fertig. Irgendwann stößt dieser No-Code-Weg aber an Grenzen. Sobald du eine Liste durchlaufen, mehrere User auf einmal auswerten oder eine externe API mit verschachteltem JSON abfragen willst, wird die Klickerei umständlich oder geht gar nicht mehr. Genau hier kommt die Sub-Action Execute C# Code ins Spiel.
Mit ihr schreibst du echten C#-Code direkt in die Action. Das CPH-Objekt ist deine Brücke zur Streamer.bot-API: Chat senden, Argumente lesen, Globals speichern, alles aus dem Code heraus. Du bist nicht mehr auf vorgefertigte Sub-Actions beschränkt, sondern baust deine eigene Logik.
Drei Commands auf dieser Seite nutzen C# bereits, weil No-Code dafür nicht ausreicht:
!lurkersiteriert über alle User-Globals und sammelt jeden Lurker. Eine Schleife über viele User geht nur in C#.!searchquotedurchsucht eine Zitatliste nach einem Suchbegriff. Filtern und Treffer zurückgeben ist klassische C#-Aufgabe.- VIP-Auto-Revoke prüft regelmäßig, welche VIP-Zeiten abgelaufen sind, und entzieht den Status. Das braucht Enumeration plus Zeitvergleich.
Wann C# statt No-Code?
Abschnitt betitelt „Wann C# statt No-Code?“Faustregel: solange du mit einzelnen Werten und festen Schritten arbeitest, reicht No-Code. Sobald Listen, Schleifen, Filter oder komplexe Datenformate ins Spiel kommen, lohnt sich C#.
| Aufgabe | No-Code reicht | C# nötig |
|---|---|---|
| Einfache Send Message in den Chat | ✓ | |
Counter pro User hochzählen (!shrimp) | ✓ | |
| If/Else mit ein paar Bedingungen | ✓ | |
| Alle Lurker auf einmal auflisten | ✓ | |
| Leaderboard aus allen User-Globals bauen | ✓ | |
| OpenAI- oder Wetter-API mit verschachteltem JSON | ✓ | |
| Eine Liste filtern oder sortieren | ✓ | |
| Schleife über mehrere Zuschauer | ✓ |
Wenn du eine Aufgabe in beiden Spalten erkennst, fang mit No-Code an. Du kannst eine einzelne Stelle später jederzeit durch eine C#-Sub-Action ersetzen.
Der Lernpfad
Abschnitt betitelt „Der Lernpfad“Diese Sektion ist als Reihe aufgebaut. Arbeite sie von oben nach unten durch, dann baust du Wissen sauber auf. Der Einstieg bringt dir die Mechanik bei, der zweite Teil zeigt, wie du Daten über mehrere Ausführungen hinweg behältst.
Einstieg
Abschnitt betitelt „Einstieg“| # | Seite | Worum es geht |
|---|---|---|
| 1 | Grundgerüst & CPH-Objekt | Die erste C#-Action: Execute(), das CPH-Objekt, die Struktur. |
| 2 | return true/false | Was der Rückgabewert steuert und wann die Action abbricht. |
| 3 | Argumente lesen | Werte wie userName und rawInput sicher mit TryGetArg holen. |
| 4 | Chat senden | SendMessage, SendAction und SendWhisper aus dem Code. |
| 5 | Argumente zurückgeben | Mit SetArgument Werte an folgende Sub-Actions weitergeben. |
| 6 | Logging & Debugging | Fünf Log-Stufen nutzen, um Fehler im SB-Log zu finden. |
Daten & State
Abschnitt betitelt „Daten & State“| # | Seite | Worum es geht |
|---|---|---|
| 7 | Globale Variablen | Werte mit SetGlobalVar und GetGlobalVar speichern und lesen. |
| 8 | User-Globals | Werte pro Zuschauer ablegen und für Leaderboards enumerieren. |
Du brauchst kein Visual Studio
Abschnitt betitelt „Du brauchst kein Visual Studio“Ein verbreitetes Missverständnis: für C# müsste man eine schwere Entwicklungsumgebung installieren. Das stimmt hier nicht. Den Code schreibst du direkt in die Execute-C#-Code-Sub-Action, und Streamer.bot kompiliert ihn beim Speichern. Kein Projekt, kein Build-Tool, keine separate Installation.
Core C# Code Execute C# CodeIntelliSense, Syntax-Highlighting und ein externer Editor wie VS Code sind angenehm, aber optional und kommen erst später dazu. Für den Anfang reicht das eingebaute Code-Feld vollkommen.
Doku: docs.streamer.bot · C# Methoden
Das kleinste Beispiel
Abschnitt betitelt „Das kleinste Beispiel“So sieht die kleinste sinnvolle C#-Action aus. Sie schickt eine Zeile in den Chat und gibt dann true zurück, damit die Action normal weiterläuft:
public class CPHInline { public bool Execute() { CPH.SendMessage("Hallo aus C# 👋"); return true; }}Mehr ist es im Kern nicht. Eine Klasse CPHInline, eine Methode Execute(), dein Code dazwischen. Alles Weitere in dieser Sektion baut auf genau diesem Gerüst auf. Den nächsten Schritt, das Grundgerüst im Detail, findest du unter C#-Grundgerüst.
Häufige Fallen
Abschnitt betitelt „Häufige Fallen“- Alles in C# bauen wollen: Eine simple Send Message braucht kein C#. Nimm es gezielt für Listen, Schleifen und APIs, nicht aus Prinzip.
return truevergessen: Ohne Rückgabewert kompiliert die Methode nicht. Details dazu auf return true/false.- Code als Sub-Action statt als ganze Action denken: Execute C# Code ist eine Sub-Action unter vielen. Du kannst C# und No-Code in derselben Action mischen.
- Sektion überspringen: Argumente lesen und Globals bauen aufeinander auf. Der Lernpfad spart dir später Frust.