diff --git a/README.md b/README.md index 2dd3003..f9127d0 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,12 @@ # ⚽ Fußball Plugin — Vollständiges Minecraft Fußball-Minigame -Ein professionelles Fußball-Plugin für Spigot/Paper 1.21+ +Ein professionelles Fußball-Plugin für Spigot/Paper 1.21+ mit echtem Ball-Physics, Spielregeln und persistenten Statistiken. --- ## 📦 Installation -1. **Java 21+** und **Spigot/Paper 1.21.x** benötigt +1. **Java 21+** und **Spigot/Paper 1.21.x** wird benötigt 2. Plugin bauen: `mvn package` → `target/Fussball.jar` 3. JAR in den `/plugins/` Ordner deines Servers kopieren 4. Server (neu)starten @@ -18,23 +18,35 @@ Ein professionelles Fußball-Plugin für Spigot/Paper 1.21+ | Feature | Beschreibung | |---|---| -| ⚽ Echter Ball | ArmorStand mit Fußball-Textur, echten Physics & Reibung | +| ⚽ Echter Ball | ArmorStand mit Fußball-Textur, Physik & Reibung | | 👥 Teams | Automatische Team-Zuweisung mit Auto-Balance (Rot vs. Blau) | -| 🥅 Tor-Erkennung | Region-basierte Tore mit Trajectory-Check | +| 👕 Team-Rüstung | Spieler erhalten farbige Leder-Rüstung (Rot/Blau), Torwart bekommt orangefarbenes/hellblaues Trikot | +| 🥅 Tor-Erkennung | Region-basierte Tore mit Trajectory-Check (Schritt-für-Schritt Bahnverfolgung) | | 🎉 Tor-Effekte | Feuerwerk, Titel, Action-Bar Tor-Replay, Sound | -| 📊 Scoreboard | Live-Spielstand, Zeit, Halbzeit-Anzeige, Team-Farbnamen | -| 🔴 BossBar | Timer mit Farbwechsel (grün→gelb→rot) + Spielstand | -| ⏸ Halbzeit | 30s Pause nach der 1. Halbzeit, danach 2. Halbzeit | -| ⏰ Verlängerung | 10 Minuten extra bei Unentschieden nach regulärer Zeit | -| 🥊 Elfmeterschießen | 5 Runden pro Team, Early-Termination, Sudden-Death | +| 📊 Scoreboard | Live-Spielstand, Zeit, Halbzeit-Anzeige, farbige Team-Namen über Kopf | +| 🔴 BossBar | Timer mit Farbwechsel (grün→gelb→rot) + Spielstand, Halbzeit-Label | +| ⏸ Halbzeit | 30s Pause nach der 1. Halbzeit + Seitenwechsel, danach 2. Halbzeit | +| ⏰ Verlängerung | 10 Minuten extra bei Gleichstand (Golden Goal – wer zuerst trifft gewinnt) | +| 🥊 Elfmeterschießen | 5 Runden pro Team, Early-Termination, Sudden Death | | 💪 Aufladbarer Schuss | Shift halten = Power aufbauen (0–100%), Action-Bar zeigt Ladestand | -| 💬 Team-Chat | Nachrichten nur ans eigene Team, Zuschauer sehen alles | -| 👀 Zuschauer-Modus | Spiele zuschauen im Spectator-Mode mit BossBar & Scoreboard | -| 🏆 MVP-System | Bester Torschütze wird am Ende gekrönt | -| 📈 Persistente Stats | Tore, Schüsse, Siege, Niederlagen, Siegquote — serverübergreifend gespeichert | -| 🔢 Warteschlange | Automatische Queue wenn Arena voll | +| 🔁 Aus-Erkennung | Einwurf / Ecke / Abstoß je nach Situation und letzter Berührung | +| 🚩 Abseits | Automatische Abseits-Erkennung mit Freistoß-Folge | +| 🤲 Torwart-Mechanik | Ball halten, fallen lassen oder werfen; Rückpass-Regel wird durchgesetzt | +| ⚠️ Foul-Erkennung | PvP-Angriffe = Foul; Gelbe/Rote Karte; Foul im Strafraum = Elfmeter | +| 🎯 Freistoß | Mindestabstand für Gegner wird aktiv durchgesetzt (Schubsen) | +| 🦾 Kopfball | Automatische Erkennung wenn Spieler in der Luft den Ball auf Kopfhöhe berührt | +| 📏 Eigentor-Erkennung | Wird separat gewertet und in Statistik gespeichert | +| 🏅 Assist-Erkennung | Vorlage (zweite Berührung vor dem Tor) wird automatisch erkannt | +| ⏱ Nachspielzeit | Wird bei Toren, Fouls, Karten und Aus-Situationen automatisch angesammelt | +| 🏟 Strafraum | Auto-berechnet aus Tor-Koordinaten oder manuell setzbar | +| 📋 Matchbericht | Minutengenaue Tore, Karten, Fouls und Abseits am Spielende | +| 🏆 MVP-System | Bester Torschütze wird nach dem Spiel bekannt gegeben | +| 📈 Persistente Stats | Tore, Eigentore, Vorlagen, Schüsse, Siege, Niederlagen, Siegquote | +| 🔢 Warteschlange | Automatische Queue wenn Arena voll; nächster Spieler rückt nach | +| 👀 Zuschauer-Modus | Spectator-Mode mit BossBar, Scoreboard und Team-Chat-Empfang | +| 💬 Team-Chat | Nachrichten nur ans eigene Team; Admins können global broadcasten | +| 🚪 Schilder | Join-Schilder mit Live-Status und automatischer Aktualisierung | | 🏷 PlaceholderAPI | `%fussball_goals%`, `%fussball_wins%` etc. für andere Plugins | -| 🚪 Schilder | Join-Schilder mit Live-Status für jede Arena | | 🛡 Anti-Grief | Kein Block-Abbauen/-Platzieren, kein Item-Drop/-Pickup im Spiel | | 💊 God-Mode | Spieler sterben nicht, Hunger eingefroren, Respawn an Team-Spawn | | 🔧 Debug-Befehl | Region-Visualisierung, Ball-Position, Aus-Seite für Admins | @@ -70,26 +82,41 @@ Gehe jeweils an die gewünschte Stelle und führe den Befehl aus: /fb setup StadionXL bluegoalmax → Obere gegenüberliegende Ecke ``` +> **Hinweis:** Tor-Erkennung prüft X, Y und Z (3D). Die Tore müssen mindestens so hoch sein wie der Ball (ArmorStand-Helm) fliegen kann – mindestens 2 Blöcke Höhe empfohlen. + ### 4. Spielfeld-Grenzen setzen *(optional, aber empfohlen)* -Ohne Feldgrenzen gibt es keine Aus-Erkennung (Einwurf/Ecke/Abstoß). +Ohne Feldgrenzen gibt es keine Aus-Erkennung (Einwurf/Ecke/Abstoß) und keine Spieler-Grenzkontrolle. ``` /fb setup StadionXL fieldmin → Eine Ecke des Spielfelds /fb setup StadionXL fieldmax → Die gegenüberliegende Ecke ``` -### 5. Spieler-Einstellungen anpassen *(optional)* +### 5. Strafräume setzen *(optional)* +Wenn nicht gesetzt, werden die Strafräume **automatisch** aus den Tor-Koordinaten berechnet (Tiefe und Rand sind in `config.yml` einstellbar). Für mehr Kontrolle können sie manuell gesetzt werden: +``` +/fb setup StadionXL redpenaltymin → Untere Ecke des roten Strafraums +/fb setup StadionXL redpenaltymax → Obere gegenüberliegende Ecke +/fb setup StadionXL bluepenaltymin → Untere Ecke des blauen Strafraums +/fb setup StadionXL bluepenaltymax → Obere gegenüberliegende Ecke +``` + +### 6. Spieler-Einstellungen anpassen *(optional)* ``` /fb setup StadionXL minplayers 2 → Mindestanzahl zum Starten (Standard: 2) /fb setup StadionXL maxplayers 10 → Maximale Spielerzahl (Standard: 10) /fb setup StadionXL duration 300 → Spielzeit in Sekunden, 1. + 2. Halbzeit zusammen (Standard: 300) ``` -### 6. Setup überprüfen +### 7. Setup überprüfen ``` /fb setup StadionXL info ``` Alle Pflichtfelder müssen **§a✔** zeigen. Erst dann ist die Arena spielbereit. +**Pflichtfelder:** `lobby`, `center`, `ballspawn`, `redspawn`, `bluespawn`, `redgoalmin`, `redgoalmax`, `bluegoalmin`, `bluegoalmax` + +**Optionale Felder:** `fieldmin`/`fieldmax` (Aus-Erkennung), `redpenaltymin/max` und `bluepenaltymin/max` (Strafraum) + --- ## 📋 Alle Commands @@ -100,9 +127,12 @@ Alle Pflichtfelder müssen **§a✔** zeigen. Erst dann ist die Arena spielberei | `/fb join ` | Einem Spiel beitreten (bei voller Arena → Warteschlange) | | `/fb leave` | Spiel verlassen / Zuschauen beenden / Warteschlange verlassen | | `/fb spectate ` | Einem laufenden Spiel als Zuschauer beiwohnen | +| `/fb spec ` | Alias für `spectate` | | `/fb list` | Alle Arenen mit Status und Spieleranzahl anzeigen | -| `/fb stats [spieler]` | Eigene oder fremde Statistiken anzeigen | -| `/fb top [goals\|wins]` | Bestenliste der Top-Torschützen oder Top-Sieger | +| `/fb stats [spieler]` | Eigene oder fremde Statistiken anzeigen (inkl. laufendes Spiel) | +| `/fb top goals` | Top 10 Torschützen | +| `/fb top wins` | Top 10 nach Siegen (inkl. Siegquote %) | +| `/fb top kicks` | Top 10 nach Anzahl Schüssen | | `/fb`, `/soccer` | Aliase für `/fussball` | ### Admin-Commands *(Berechtigung: `fussball.admin`)* @@ -111,9 +141,11 @@ Alle Pflichtfelder müssen **§a✔** zeigen. Erst dann ist die Arena spielberei | `/fb create ` | Neue Arena erstellen | | `/fb delete ` | Arena löschen | | `/fb setup