Skip to main content

Chat Reactor

Der ChatReactor ist ein Event-System, das auf Chat-Nachrichten reagiert und verschiedene Aktionen ausführen kann, basierend auf definierten Bedingungen und Textmustern.

Event Aufbau

System-NameArtValidierungData-TypBeschreibung
systemnameStringErforderlichTextEindeutiger Systemname für den ChatReactor
displaynameStringErforderlichTextAnzeigename für die Benutzeroberfläche
minimalReqVersionFloatErforderlichNummerMindestversion des Plugins, die für diesen ChatReactor erforderlich ist
commentStringOptionalTextKommentar oder Beschreibung für den ChatReactor
conditionsJsonArrayOptionalArrayListe von Bedingungen, die erfüllt sein müssen
variablesJsonArrayOptionalArrayListe von Variablen, die verwendet werden
actionsJsonArrayErforderlichArrayListe von Aktionen, die ausgeführt werden sollen
searchTextStringErforderlichTextDer Text, nach dem in Chat-Nachrichten gesucht wird
textIsWithColorCodesBooleanOptionalBooleanBestimmt, ob Farbcodes im Text berücksichtigt werden (Standard: false)
textIsCaseSensitiveBooleanOptionalBooleanBestimmt, ob die Suche case-sensitive ist (Standard: false)
chatReactorModeEnumErforderlichChatReactorModeSuchmodus für den Text

SuchText / Chat mit Farbcodes

Der searchText kann Farbcodes enthalten, die in den Chat-Nachrichten berücksichtigt werden. Um Farbcodes zu aktivieren, muss die Option textIsWithColorCodes auf true gesetzt werden.

Groß und Kleinschreibung beachten

Die Groß- und Kleinschreibung kann die Suche beeinflussen. Mit der Option textIsCaseSensitive kann festgelegt werden, ob die Suche zwischen Groß- und Kleinschreibung unterscheidet. Standardmäßig ist diese Option deaktiviert.

Beispiel: textIsCaseSensitive == false

  • Eingabe-Text: "Spieler TestSpielername wurde von Grundstück gekickt"
  • SearchText: "spieler"
  • Ergebnis:Trifft zu - Der Text enthält "spieler" (case-insensitive)

Beispiel: textIsCaseSensitive == true

  • Eingabe-Text: "Spieler TestSpielername wurde von Grundstück gekickt"
  • SearchText: "spieler"
  • Ergebnis:Trifft nicht zu - Der Text enthält nicht "spieler" (case-sensitive)

Suchtext

Der searchText ist der Text, nach dem in den Chat-Nachrichten gesucht wird. Er kann verschiedene Muster und Bedingungen enthalten, um die Suche zu verfeinern.

ChatReactor Modi

Der chatReactorMode bestimmt, wie der searchText mit den Chat-Nachrichten verglichen wird:

STARTWITH

Die Chat-Nachricht muss mit dem angegebenen searchText beginnen.

Beispiel:

  • Eingabe-Text: "Spieler TestSpielername wurde von Grundstück gekickt"
  • SearchText: "Spieler"
  • Ergebnis:Trifft zu - Der Text beginnt mit "Spieler"
  • SearchText: "TestSpielername"
  • Ergebnis:Trifft nicht zu - Der Text beginnt nicht mit "TestSpielername"

CONTAINS

Die Chat-Nachricht muss den searchText irgendwo enthalten.

Beispiel:

  • Eingabe-Text: "Spieler TestSpielername wurde von Grundstück gekickt"
  • SearchText: "gekickt"
  • Ergebnis:Trifft zu - Der Text enthält "gekickt"
  • SearchText: "TestSpielername"
  • Ergebnis:Trifft zu - Der Text enthält "TestSpielername"
  • SearchText: "gebannt"
  • Ergebnis:Trifft nicht zu - Der Text enthält nicht "gebannt"

NOTCONTAINS

Die Chat-Nachricht darf den searchText nicht enthalten.

Beispiel:

  • Eingabe-Text: "Spieler TestSpielername wurde von Grundstück gekickt"
  • SearchText: "gebannt"
  • Ergebnis:Trifft zu - Der Text enthält nicht "gebannt"
  • SearchText: "gekickt"
  • Ergebnis:Trifft nicht zu - Der Text enthält "gekickt"

ENDSWITH

Die Chat-Nachricht muss mit dem searchText enden.

Beispiel:

  • Eingabe-Text: "Spieler TestSpielername wurde von Grundstück gekickt"
  • SearchText: "gekickt"
  • Ergebnis:Trifft zu - Der Text endet mit "gekickt"
  • SearchText: "Grundstück"
  • Ergebnis:Trifft nicht zu - Der Text endet nicht mit "Grundstück"

EQUALS

Die Chat-Nachricht muss exakt dem searchText entsprechen.

Beispiel:

  • Eingabe-Text: "Spieler TestSpielername wurde von Grundstück gekickt"
  • SearchText: "Spieler TestSpielername wurde von Grundstück gekickt"
  • Ergebnis:Trifft zu - Exakte Übereinstimmung
  • SearchText: "Spieler TestSpielername wurde gekickt"
  • Ergebnis:Trifft nicht zu - Nicht exakt identisch (fehlt "von Grundstück")

NOTEQUALS

Die Chat-Nachricht darf nicht exakt dem searchText entsprechen.

Beispiel:

  • Eingabe-Text: "Spieler TestSpielername wurde von Grundstück gekickt"
  • SearchText: "Spieler TestSpielername wurde gekickt"
  • Ergebnis:Trifft zu - Nicht exakt identisch
  • SearchText: "Spieler TestSpielername wurde von Grundstück gekickt"
  • Ergebnis:Trifft nicht zu - Exakte Übereinstimmung (aber wir wollen NICHT gleich)

EMPTY

Reagiert auf leere Chat-Nachrichten (der searchText wird ignoriert).

Beispiel:

  • Eingabe-Text: "Spieler TestSpielername wurde von Grundstück gekickt"
  • Ergebnis:Trifft nicht zu - Die Nachricht ist nicht leer
  • Eingabe-Text: "" (leerer String)
  • Ergebnis:Trifft zu - Die Nachricht ist leer

Beispiel-Konfiguration

{
"systemname": "welcome_reactor",
"displayname": "Willkommens Reactor",
"minimalReqVersion": 1.0,
"comment": "Reagiert auf Willkommensnachrichten",
"conditions": [],
"variables": [],
"actions": [
{
"actionname": "ChatMessageAction",
"actiondisplayname": "ChatMessageAction",
"minimalReqVersion": 1,
"data": {
"message": "Willkommen auf dem Server!",
"cmdPrio": "NORMAL"
}
}
],
"searchText": "hallo",
"textIsWithColorCodes": false,
"textIsCaseSensitive": false,
"chatReactorMode": "CONTAINS"
}

Funktionsweise

  1. Text-Erkennung: Der ChatReactor überwacht alle Chat-Nachrichten auf den angegebenen searchText
  2. Modus-Vergleich: Je nach chatReactorMode wird der Text unterschiedlich verglichen
  3. Bedingungsprüfung: Zusätzliche conditions müssen erfüllt sein
  4. Aktion-Ausführung: Bei erfolgreicher Erkennung werden die definierten actions ausgeführt

Wichtige Hinweise

  • Case-Sensitivity: Mit textIsCaseSensitive kann gesteuert werden, ob Groß-/Kleinschreibung beachtet wird. Wenn deaktiviert wird sowol Such-Test als auch InputText auf Lower_Case gesetzt.
  • Farbcodes: textIsWithColorCodes bestimmt, ob Minecraft-Farbcodes (§-Codes) berücksichtigt werden (FarbCodes werden hier mit § Paragraph Zeichen geschrieben)

Debuging

Um dieses Event zu Debuggen, schalte in der 'mainconfig.json' die "debug": true, und die Logger "logger": "CHATREACTOREVENT,CHATEVENT", auf an.