Files
EventEngine/README.md
2026-04-06 19:49:36 +00:00

362 lines
11 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
- Event-Katalog (alle eingebauten 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`
## Event-Katalog (alle eingebauten Events)
Hinweis:
- Die folgende Liste beschreibt alle eingebauten Event-IDs.
- Diese IDs kannst du direkt mit `/event start <id>` verwenden.
### Combat
- `pvp_deathmatch` - Klassisches PvP: alle gegen alle bis zum Event-Ende.
- `pvp_team_battle` - Teamkampf mit Fokus auf Koordination.
- `pvp_free_for_all` - Freier Kampf ohne Teams.
- `pvp_last_man_standing` - Gewinnt, wer als Letzter uebrig bleibt.
- `pvp_one_vs_one` - Duellmodus mit 1v1-Paarungen.
- `pvp_bow_only` - PvP nur mit Bogen und Distanzkampf.
- `pvp_sword_only` - Nahkampf-PvP mit Schwertfokus.
- `pvp_fist_fight` - PvP ohne Waffen, nur mit Faeusten.
- `pvp_kit_pvp` - PvP mit vordefinierten Ausruestungen.
- `pvp_capture_the_flag` - Teams erobern gegnerische Flaggen.
- `pvp_king_of_the_hill` - Kontrollpunkt halten fuer Punkte.
- `pvp_hunger_games` - Battle-Royale-Stil mit Survival-Elementen.
- `pvp_bedwars_lite` - Kompakte Bedwars-Variante.
- `pvp_skywars_lite` - Kompakte Skywars-Variante.
- `pvp_uhc` - Ultra Hardcore ohne natuerliche Regeneration.
- `pvp_spleef` - Gegner in die Tiefe spleefen.
- `pvp_sumo` - Gegner aus der Arena schubsen.
- `pvp_snowball_fight` - PvP mit Schneebaellen und Knockback-Fokus.
- `pvp_elytra_pvp` - Luftkampf mit Elytra.
- `pvp_arena_survival` - Arena-Kampf mit Survival-Druck.
### Survival
- `survival_mob_wave` - Wellen aus Mobs ueberstehen.
- `survival_zombie_siege` - Verteidigung gegen Zombie-Angriffe.
- `survival_boss_rush` - Mehrere Bosskaempfe in Folge.
- `survival_wither_storm` - Schweres Survival-Szenario mit Bossdruck.
- `survival_dragon_fight` - Drachenkampf als Server-Event.
- `survival_hardcore_round` - Survival-Runde mit hohem Risiko.
- `survival_island` - Ueberleben auf begrenzter Insel.
- `survival_nether_run` - Survival-Challenge in Nether-Umgebung.
- `survival_endurance` - Ausdauer-Event mit laengerem Durchhalten.
- `survival_raids_plus` - Verstaerkte Raid-Variante.
- `survival_monster_hunt` - Gezielte Jagd auf Monster.
- `survival_lava_rising` - Steigende Lava zwingt zu Bewegung.
- `survival_gravity_shift` - Veraenderte Physik und Schwerkraft.
- `survival_random_spawn` - Unvorhersehbare Spawnpositionen.
- `survival_manhunt` - Jagen und Gejagtwerden im Survival-Modus.
### Building
- `build_battle` - Bauwettbewerb zu vorgegebenem Thema.
- `build_speed_build` - Bauen unter starkem Zeitdruck.
- `build_theme_challenge` - Kreativ bauen nach Motto.
- `build_pixel_art` - Pixel-Art-Wettbewerb.
- `build_tallest_tower` - Wer baut den hoechsten Turm.
- `build_bridge` - Brueckenbau-Challenge.
- `build_redstone` - Technik-/Redstone-Aufgabe loesen.
- `build_underground` - Bauprojekt unter der Erde.
- `build_skyblock_style` - Bauen im Skyblock-Stil.
- `build_blindbuild` - Bauen mit eingeschraenkter Sicht/Info.
### Racing
- `race_parkour` - Parkour-Rennen auf Zeit.
- `race_elytra` - Elytra-Strecke mit Checkpoints.
- `race_boat` - Bootsrennen auf Wasserstrecken.
- `race_horse` - Pferderennen ueber Landkurs.
- `race_pig` - Schweinerennen als Fun-Race.
- `race_minecart` - Lore-Rennen auf Schienennetz.
- `race_swimming` - Schwimmwettkampf durch Wasserkurs.
- `race_obstacle` - Hindernislauf mit mehreren Abschnitten.
- `race_maze` - Rennen durch ein Labyrinth.
- `race_iceboat` - Bootsrennen auf Eisbahnen.
### Collection
- `collect_scavenger_hunt` - Hinweise verfolgen und Items finden.
- `collect_mining_comp` - Wettbewerb um Erze und Mining-Ausbeute.
- `collect_fishing_comp` - Angelwettbewerb mit Fangzielen.
- `collect_farming_comp` - Farming-Wettbewerb um Erntepunkte.
- `collect_mob_drops` - Moeglichst viele Mob-Drops sammeln.
- `collect_treasure_hunt` - Schatzsuche mit versteckten Belohnungen.
- `collect_easter_egg` - Versteckte Eier einsammeln.
- `collect_speed_mine` - In kurzer Zeit maximal abbauen.
- `collect_woodcutting` - Holzfaellen auf Zeit/Score.
- `collect_enchant_race` - Enchanting-Ziele schneller erreichen.
### Fun
- `fun_random_effects` - Regelmaessig zufaellige Effekte fuer alle.
- `fun_tiny_players` - Verkleinerte Spieler fuer Chaos-Momente.
- `fun_giant_players` - Vergroesserte Spieler als Fun-Modus.
- `fun_invisible_players` - Unsichtbarkeit sorgt fuer Verwirrung.
- `fun_chaos_mode` - Schnell wechselnde, chaotische Regeln.
- `fun_lightning_storm` - Blitzereignisse in kurzer Folge.
- `fun_tnt_rain` - TNT regnet vom Himmel.
- `fun_item_rain` - Items fallen als Loot-Regen.
- `fun_drop_party` - Spawn-Party mit massenhaft Drops.
- `fun_firework_show` - Feuerwerk-Show fuer den Server.
- `fun_random_teleport` - Spieler werden zufaellig teleportiert.
- `fun_swap_inventories` - Inventare werden getauscht.
- `fun_reverse_gravity` - Ungewoehnliches Sprung-/Fallverhalten.
- `fun_speed_boost` - Temporarer Bewegungsschub fuer alle.
- `fun_bouncy_blocks` - Bloecke verhalten sich federnd.
### Quiz
- `quiz_minecraft_trivia` - Fragen rund um Minecraft-Wissen.
- `quiz_general_knowledge` - Allgemeinwissen fuer alle.
- `quiz_speed_quiz` - Schnelles Quiz mit kurzen Antwortfenstern.
- `quiz_crafting_challenge` - Crafting-Aufgaben unter Zeitdruck.
- `quiz_mob_quiz` - Fragen zu Mobs, Verhalten und Drops.
### Economy
- `economy_auction` - Ingame-Auktion mit Geboten.
- `economy_market_rush` - Handels- und Marktphase auf Zeit.
- `economy_lottery` - Lotterie mit Gewinnchance fuer Teilnehmer.
- `economy_trade_frenzy` - Intensiver Tausch-/Handelsmodus.
- `economy_betting` - Eventbasierte Wetten mit Risiko/Belohnung.
### Team
- `team_relay_race` - Team-Staffellauf mit Etappen.
- `team_build_battle` - Build Battle im Team.
- `team_survival` - Survival-Challenge in Gruppen.
- `team_treasure_hunt` - Team-Schatzsuche mit Aufgaben.
- `team_quiz` - Quiz mit Teamantworten.
- `team_capture_points` - Punktezonen gemeinsam halten.
- `team_resource_race` - Ressourcen als Team schneller sammeln.
- `team_hide_and_seek` - Verstecken im Teammodus.
- `team_murder_mystery` - Rollenmodus im Team-Kontext.
- `team_color_war` - Teamkampf um Farbzonen/Farbkontrolle.
## 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.