Zum Inhalt springen
  • Dunkel
  • Hell
  • System

!editcommand

If/Else: Args fehlen?

Core Logic If/Else
Input %rawInput%
Operation Is Null or Empty
Then

Send Message to Channel

Twitch Chat Send Message to Channel
Message @%user% nutze !editcommand !name <neuer-response>
Then

Break

Core Logic Break

Stoppt die laufende Action. Alle folgenden Sub-Actions in derselben Action werden übersprungen.

Set Argument: Command-Name normalisieren

Core Arguments Set Argument

Erstes Wort, ohne ! und lowercase: identisch zu addcommand.

Variable Name editCmdName
Value $lower($replace(%input0%, !, ))$

If/Else: Name leer?

Core Logic If/Else
Input %editCmdName%
Operation Is Null or Empty
Then

Send Message to Channel

Twitch Chat Send Message to Channel
Message @%user% Command-Name fehlt. Beispiel: !editcommand !regeln Neuer Text.
Then

Break

Core Logic Break

Stoppt die laufende Action. Alle folgenden Sub-Actions in derselben Action werden übersprungen.

Set Argument: Neuer Response-Text

Core Arguments Set Argument
Variable Name editCmdResponse
Value $args1$

If/Else: Response leer?

Core Logic If/Else
Input %editCmdResponse%
Operation Is Null or Empty
Then

Send Message to Channel

Twitch Chat Send Message to Channel
Message @%user% Response-Text fehlt. Beispiel: !editcommand !regeln Neuer Text.
Then

Break

Core Logic Break

Stoppt die laufende Action. Alle folgenden Sub-Actions in derselben Action werden übersprungen.

Get Global. Existiert der Command?

Core Globals Global (Get)
Global Name $concat("dyn_", %editCmdName%)$
Variable Name existingCmd
Persisted aktiv

If/Else: Nicht vorhanden

Core Logic If/Else
Input %existingCmd%
Operation Is Null or Empty
Then

Send Message to Channel

Twitch Chat Send Message to Channel
Message @%user% !%editCmdName% existiert nicht: nutze !addcommand zum Anlegen.
Then

Break

Core Logic Break

Stoppt die laufende Action. Alle folgenden Sub-Actions in derselben Action werden übersprungen.

Set Global. Response überschreiben

Core Globals Global (Set)

Index muss nicht angepasst werden. Name bleibt gleich, nur Inhalt ändert sich.

Global Name $concat("dyn_", %editCmdName%)$
Value %editCmdResponse%
Source Global
Persisted aktiv

Send Message: Bestätigung

Twitch Chat Send Message to Channel
Message ✏️ @%user% !%editCmdName% aktualisiert.
AzaBot: ✏️ @ModUser !regeln aktualisiert.
So sieht's im Chat aus
  1. 1 If/Else: %rawInput% Is Null or Empty
    1. Then 1a Send Message: Hilfe
    2. Then 1b Break
  2. 2 Set Argument: editCmdName = $lower($replace(%input0%, !, ))$
  3. 3 If/Else: %editCmdName% Is Null or Empty
    1. Then 3a Send Message: Name fehlt
    2. Then 3b Break
  4. 4 Set Argument: editCmdResponse = $args1$
  5. 5 If/Else: %editCmdResponse% Is Null or Empty
    1. Then 5a Send Message: Response fehlt
    2. Then 5b Break
  6. 6 Get Global (Persisted): dyn_<name> → existingCmd
  7. 7 If/Else: %existingCmd% Is Null or Empty
    1. Then 7a Send Message: Existiert nicht
    2. Then 7b Break
  8. 8 Set Global (Persisted): dyn_<name> = %editCmdResponse%
  9. 9 Send Message: ✏️ Bestätigung
FeldWert
Name!editcommand
Commands!editcommand
!editcom
!cmdedit
User Cooldown0
Grant TypeAllow
GroupsModerators
ChatResultat
!editcommand !regeln Sei nett. Kein Spoiler. Viel Spaß!Response von dyn_regeln überschrieben
!editcommand !regelm Sei nett (Tippfehler)Fehler: existiert nicht: nutze !addcommand
!editcommand !regelnFehler: Response-Text fehlt
!editcommandFehler: Hilfe-Text
  • Nur überschreiben, nie anhängen: !editcommand ersetzt komplett. Wenn Mods Text nur ergänzen wollen, gibt es kein eingebautes Append. Workaround: vorher mit dem Listener-Output gucken (!regeln), den Text kopieren, neuen Text zusammenbauen, dann !editcommand !regeln <volltext>.
  • Kein Diff-Logging: bei Edits gibt es keine Historie. Wenn das wichtig ist, schreib in Schritt 8 zusätzlich einen Global dyn_history_<name> mit Timestamp + alter Wert.
  • Index bleibt: der Name ändert sich nicht, also bleibt dyn_dynCommandsIndex unverändert. Wenn jemand den Namen ändern wollte, ist das !delcommand + !addcommand (zwei Befehle).
  • !editcommand !addcommand neuer-text: würde versuchen, einen Command namens addcommand zu editieren. Sicherheitscheck (siehe Erweiterungs-Ideen unten) ist optional.
  • Reserved-Names-Schutz: vor Schritt 6 einen If/Else einbauen, der bei addcommand, editcommand, delcommand, commands Break setzt: Mods sollen die System-Commands nicht überschreiben.
  • Audit-Log: pro Edit eine Discord-Webhook-Nachricht („@ModUser hat !regeln geändert: alt → neu“). Setze die Discord-Webhook-Setup ein.
  • Bestätigungs-Diff: in Schritt 9 nicht nur „aktualisiert“, sondern auch das alte und neue Snippet ausgeben (gekürzt auf 40 Zeichen). Hilft Mods im Chat-Backscroll zu verifizieren.