Eigene Befehle: vom Tag bis zur Bedingung
Ein Bot-Befehl ist der Text, den der Bot in den Chat schreibt. In diesen Text kannst du Platzhalter einbauen — den Namen des Zuschauers, den Stream-Titel, eine Zufallszahl — und Blöcke: Bedingungen, Rechnungen, eine Zufallsauswahl. Unten findest du alles, was der Bot versteht, mit Beispielen.
Wo du Befehle anlegst
Auf der Website: Steuerpanel → „Kanalbefehle“ → „Befehl hinzufügen“. Dort stellst du auch Rechte, Cooldown, Aliasse und die automatische Wiederholung ein, und der Text wird schon beim Tippen geprüft.
Aus dem Chat — für Moderatoren des Kanals:
!создать !обнял ${user} обнял ${arg1}
Platzhalter
Ein Platzhalter ist ${…} im Befehlstext. Der Bot ersetzt ihn durch einen Wert, und zwar in dem Moment, in dem er antwortet.
| ${notag} | no mention The bot will not address the person who ran the command. |
| ${user} | viewer name Who the command is addressed to: the caller, or the name given after the command. |
| ${randomchatter} | random viewer A random name from chat. Twitch: the bot needs moderator rights. Kick: not supported. |
| ${title} | stream title The current stream title. |
| ${game} | category The current stream category. |
| ${arg1} | 1st word The first word after the command. |
| ${arg2} | 2nd word The second word after the command. |
| ${arg3} | 3rd word The third word after the command. |
| ${args} | everything after Everything written after the command. |
| ${rand 1 100} | random number A random number from the first to the second, both included. |
| ${arg1:кто-нибудь} | word or fallback The first word after the command, or — when there is none — whatever stands after the colon. Also works with ${arg2}, ${arg3}, ${args}, ${user}. |
Blöcke
Ein Block ist {word …} im Befehlstext. Blöcke werden ausgewertet, bevor die Werte eingesetzt werden, und können, was ein Platzhalter nicht kann: auswählen, rechnen und vergleichen.
| {if} | if A different answer depending on a condition. {elif} and {else} are allowed; {end} closes it. |
| {math} | math Add, subtract, multiply, divide, remainder. No powers. |
| {pick} | pick One of the options listed with a vertical bar. |
| {countdown} | time left How much time is left until a date: DD.MM or DD.MM.YYYY, optionally with a time. |
| {countup} | time since How much time has passed since a date. |
| {upper} | UPPERCASE The text in capital letters. |
| {lower} | lowercase The text in small letters. |
| {len} | length How many characters the text has. |
| {urlencode} | for a link The text made safe to put inside a URL. |
{if} muss mit {end} geschlossen werden; dazwischen dürfen beliebig viele {elif} und ein {else} stehen. Die anderen Blöcke schließen sich selbst.
Was in einer Bedingung stehen darf
In {if} und {math} darfst du Zahlen, Text in Anführungszeichen, Platzhalter, runde Klammern und diese Operationen verwenden:
| == != | gleich und ungleich; Groß- und Kleinschreibung spielt keine Rolle |
| < > <= >= | größer, kleiner — Zahlen als Zahlen, Text alphabetisch |
| contains | ob der linke Text den rechten enthält |
| starts ends | beginnt mit … und endet mit … |
| and or not | und, oder, nicht |
| + - * / % | addieren, subtrahieren, multiplizieren, dividieren, Rest |
Fertige Beispiele
Jemanden umarmen — und nachfragen, wenn kein Name angegeben ist:
{if ${arg1} == ""}кого обнимать-то?{else}${user} обнял ${arg1}{end}
Dasselbe kürzer, mit Standardwert:
${arg1:кого-нибудь} получает пирожок
Wie lange es noch bis zu einem Datum dauert:
До Нового года {countdown 01.01}
Zwei Würfel:
выпало {math ${rand 1 6} + ${rand 1 6}}
Eine Zufallsauswahl:
${user}, сегодня ты {pick кот|пёс|бобр}
Mehrere Zweige hintereinander:
{if ${args} contains "спасибо"}и тебе!{elif ${args} == ""}чего молчишь?{else}не понял{end}
Wenn der Bot mit Klammern antwortet
Dann ließ sich der Text nicht auswerten — meistens fehlt ein {end}. Der Editor auf der Website prüft den Text schon beim Tippen, zeigt dir, was wo falsch ist, und lässt die kaputte Version nicht speichern, ohne dabei zu löschen, was du geschrieben hast.
Auch im Chat geht so etwas nicht durch: !create und !edit antworten, dass der Text einen Fehler hat.