Der Twasi-Command
Diese Dokumentation hat nichts mit dem Twasi-Commands Plugin zu tun, welches das Erstellen von benutzerdefinierten Befehlen erlaubt. Hier erfährst du mehr über die Befehle, die von Twasi-Plugins registriert werden können.
Was ist ein Twasi-Command?
Befehle können verwendet werden, um den Bot vom Twitch-Chat aus zu steuern. Ein Befehl ist einer normalen Chat-Nachricht ziemlich ähnlich, startet allerdings mit einem bestimmten Präfix. Standardmäßig ist dies "!" (Du kannst das in der twasi.yml-Datei im Stammverzeichnis deiner Twasi-Core-Instanz ändern).
Twasi-Commands können durch eine Steuerklasse implementiert werden. Dies ist eine Klasse, die sich der Ausführung eines bestimmten Befehls widmet. Sie können hier mehr darüber erfahren.
Aus was besteht ein Twasi-Command?
Einfache Befehle
Einfache Twasi-Commands sind aus bis zu drei Hauptteilen:
- Das Präfix ('!' standardmäßig)
- Der Name des Befehls
- Die Argumente (optional)
Beispiel
!add !ping pong
- '!' ist das Präfix des Befehls.
- 'add' ist der Befehlsname.
- '!ping' ist das erste Argument.
- 'pong' ist das zweite Argument.
Fortgeschrittene Befehle
Das Twasi-Plugin-Framework bietet eine andere Art von Befehl, diese heisst StructuredPluginCommand. Dieser Befehlstyp wurde hinzugefügt, um komplexe Befehle strukturiert, und den Code sauber zu halten.
Fortgeschrittene Twasi-Commands sind aus bis zu vier Hauptteilen:
- Das Präfix ('!' standardmäßig)
- Der Name des Befehls
- Die Unterbefehle (optional)
- Die Argumente (optional)
Beispiel
!timer add !hosts 300
- '!' ist das Präfix des Befehls.
- 'timer' ist der Befehlsname.
- 'add' ist der erste Unterbefehl.
- '!hosts' ist das erste Argument.
- '300' ist das zweite Argument.
Der Hauptunterschied zwischen einfachen und komplexen Befehlen besteht darin, dass komplexe Befehle einen Befehls-Handler für jeden Unterbefehl registrieren können, den sie besitzen. Einfache Befehle verwenden nur einen Befehls-Handler für alles, was sie tun können. Dies kann den Code mit if-elses und switch-cases extrem verunschönern.
Berechtigungen
Twasi-Befehle können einen bestimmten Berechtigungsschlüssel benötigen. Wenn der Ausführer/Sender des Befehls nicht über dessen Berechtigungsschlüssel verfügt, ignoriert Twasi den Befehl.
Abklingzeit
Um eine übermäßige Verwendung eines Befehls zu verhindern, kann die Steuerklasse eine Abklingzeit angeben, die pro Benutzer angewendet wird, wenn der Befehl erfolgreich ausgeführt wurde.
Was bedeutet 'erfolgreich ausgeführt'?
Beispiel: Wenn du wissen willst, wie der Befehl !wiki funktioniert, gib einfach den Befehl ohne Argumente ein. Das bedeutet, dass der Befehl nicht erfolgreich ausgeführt wurde, da er nur die Befehls-Syntax liefert und den Befehl nicht wirklich ausführt.
Entwickler können entscheiden, ob ein Befehl erfolgreich war oder nicht, innerhalb der Steuerklasse.
Aliasse
Wenn ein Befehl nicht nur auf einen Befehlsnamen reagieren sollte, kann er Aliasse definieren, die den Befehl auch ausführen.