362 lines
11 KiB
Markdown
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.
|