# EventEngine EventEngine ist ein Minecraft-Plugin für Paper 1.21+, mit dem du automatisch oder manuell Server-Events starten, verwalten und rotieren lassen kannst. Der Fokus liegt auf: - vielen eingebauten Event-Typen (100+) - planbaren Events über Uhrzeit/Wochentage - zufälliger Event-Rotation mit Gewichtung - Custom-Events per Ingame-Builder - schneller Admin-Steuerung per Befehl und GUI ## Inhalt - Features - Voraussetzungen - Installation - Schnellstart - Befehle - Berechtigungen - Konfiguration - Zeitplan konfigurieren - Event-Overrides (eingebaute Events anpassen) - Custom Events - Rotation und RANDOM - Typische Abläufe - Fehlerbehebung ## Features - Event-System mit eingebauten Kategorien (PvP, Survival, Build, Fun, Quiz, Economy, Team uvm.) - GUI und Commands für schnelle Steuerung - Zeitplan in `config.yml` mit Tagesfilter und Uhrzeit - Intervall-Modus (alle X Minuten) - Event-Rotation mit Gewichtung (`weight`) - Ingame-Custom-Event-Builder (`/event create `) - Laufende Events verwalten (join/leave, stop, score) - Konfigurations-Reload ohne Server-Neustart ## Voraussetzungen - Paper-Server 1.21.x - Zugriff auf den `plugins`-Ordner ## Installation 1. Plugin-JAR in den `plugins`-Ordner kopieren. 2. Server starten oder neu starten. 3. Es werden automatisch Konfigurationsdateien erzeugt: - `plugins/EventEngine/config.yml` - `plugins/EventEngine/custom_events.yml` (bzw. anhand des Beispiels) ## Schnellstart 1. Liste aller Events anzeigen: - `/event list` 2. Ein Event sofort starten: - `/event start random` 3. Aktives Event anzeigen: - `/event info` 4. Event beenden: - `/event stop` 5. Änderungen an der Config übernehmen: - `/event reload` ## Befehle Hauptbefehl: - `/event` (Aliases: `/ee`, `/events`) Verfügbare Subcommands: - `/event gui` öffnet die Event-GUI - `/event start ` startet ein Event - `/event stop [grund]` beendet das laufende Event - `/event join` nimmt am aktiven Event teil - `/event leave` verlässt das aktive Event - `/event info [id]` zeigt Info zum aktiven Event oder zu einer Event-ID - `/event list [seite]` listet registrierte Events - `/event schedule` zeigt den aktuellen Zeitplan - `/event create ` startet den Ingame-Custom-Builder - `/event delete ` löscht ein Custom-Event - `/event score ` vergibt Punkte im laufenden Event - `/event rotation ` aktiviert/deaktiviert Rotation für ein Event - `/event reload` lädt Config, Registry und Scheduler neu ## Berechtigungen - `eventengine.admin` - `eventengine.participate` - `eventengine.notify` Empfehlung: - Admin-Befehle nur an Team-Ränge vergeben. - Teilnahme/Benachrichtigung an Standard-Spielerrollen vergeben. ## Konfiguration Datei: `plugins/EventEngine/config.yml` Wichtige Bereiche: - `settings.prefix` - `settings.log-events` - `settings.announce-before-seconds` - `settings.use-interval` - `settings.interval-minutes` - `settings.default-event` - `settings.random-on-interval` - `schedule` - `event-overrides` ### Beispiel: Intervall-Modus aktivieren ```yml settings: use-interval: true interval-minutes: 60 default-event: "RANDOM" random-on-interval: true ``` ## Zeitplan konfigurieren Jeder Zeitplan-Eintrag hat: - `days`: Liste von Wochentagen (`MONDAY` bis `SUNDAY`), leer = täglich - `time`: Uhrzeit im 24h-Format `HH:MM` - `event`: Event-ID oder `RANDOM` Beispiel: ```yml schedule: - days: [] time: "12:00" event: "RANDOM" - days: [FRIDAY, SATURDAY] time: "20:00" event: "pvp_hunger_games" ``` ## Event-Overrides (eingebaute Events anpassen) Mit `event-overrides` kannst du Werte einzelner Builtin-Events überschreiben. Beispiel: ```yml event-overrides: pvp_deathmatch: duration-seconds: 600 min-players: 4 rewards: - "eco give %player% 500" - "give %player% diamond 3" ``` ## Custom Events Custom Events liegen in `custom_events.yml` unter `events:`. Du kannst sie: - per Ingame-Builder erstellen (`/event create `) - per `/event delete ` entfernen - manuell in der Datei pflegen Wichtige Felder pro Event: - `display-name` - `description` - `category` - `duration-seconds` - `min-players` - `max-players` - `announcement` - `in-rotation` - `weight` - `start-commands` - `end-commands` - `rewards` - `settings` ## Rotation und RANDOM `RANDOM` wählt aus allen Events mit `in-rotation: true`. Die Häufigkeit wird über `weight` gesteuert: - höheres `weight` = höhere Chance - `weight: 1` ist Standard Rotation verwalten: - `/event rotation add ` - `/event rotation remove ` ## Typische Abläufe Custom Event anlegen: 1. `/event create parkour_night` 2. Builder durchlaufen 3. Mit `/event list` prüfen 4. Optional in Rotation aufnehmen: `/event rotation add parkour_night` Geplantes Event testen: 1. Eintrag in `config.yml` anlegen 2. `/event reload` 3. Mit `/event schedule` prüfen 4. Teststart mit `/event start ` ## Fehlerbehebung Event startet nicht: - Mit `/event info` prüfen, ob bereits ein Event läuft. - Mit `/event list` prüfen, ob die ID korrekt ist. - Prüfen, ob Mindestspielerzahl erreicht ist. Zeitplan greift nicht: - Zeitformat prüfen (`HH:MM`). - Wochentage prüfen (`MONDAY` ... `SUNDAY`). - Nach Änderungen immer `/event reload` ausführen. RANDOM findet nichts: - Mindestens ein Event muss in der Rotation aktiv sein (`in-rotation: true`). - Mit `/event rotation add ` Events hinzufügen. ## Hinweis Die Event-Liste kann je nach Plugin-Version variieren. Verwende `/event list`, um alle aktuell registrierten IDs auf deinem Server zu sehen.