228 lines
5.5 KiB
Markdown
228 lines
5.5 KiB
Markdown
# 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 <id>`)
|
|
- 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 <id|random>` 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 <id>` startet den Ingame-Custom-Builder
|
|
- `/event delete <id>` löscht ein Custom-Event
|
|
- `/event score <spieler> <punkte>` vergibt Punkte im laufenden Event
|
|
- `/event rotation <add|remove> <id>` 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 <id>`)
|
|
- per `/event delete <id>` 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 <id>`
|
|
- `/event rotation remove <id>`
|
|
|
|
## 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 <id>`
|
|
|
|
## 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 <id>` 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.
|