# ⚽ Fußball Plugin — Vollständiges Minecraft Fußball-Minigame 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** wird benötigt 2. Plugin bauen: `mvn package` → `target/Fussball.jar` 3. JAR in den `/plugins/` Ordner deines Servers kopieren 4. Server (neu)starten 5. *(Optional)* [PlaceholderAPI](https://www.spigotmc.org/resources/placeholderapi.6245/) installieren für `%fussball_...%` Platzhalter --- ## 🎮 Features | Feature | Beschreibung | |---|---| | ⚽ Echter Ball | ArmorStand mit Fußball-Textur, Physik & Reibung | | 👥 Teams | Automatische Team-Zuweisung mit Auto-Balance (Rot vs. Blau) | | 👕 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, 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 | | 🔁 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 | | 🛡 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 | --- ## 🔧 Arena Setup (Schritt für Schritt) ### 1. Arena erstellen ``` /fb create StadionXL ``` ### 2. Grundpositionen setzen Gehe jeweils an die gewünschte Stelle und führe den Befehl aus: ``` /fb setup StadionXL lobby → Lobby-Wartebereich (Spieler landen hier beim Joinen/Verlassen) /fb setup StadionXL center → Mittelpunkt des Spielfeldes /fb setup StadionXL ballspawn → Wo der Ball erscheint (Anstoss-Punkt, Mitte) /fb setup StadionXL redspawn → Startposition rotes Team /fb setup StadionXL bluespawn → Startposition blaues Team ``` ### 3. Tore definieren (je 2 diagonal gegenüberliegende Ecken) ``` # Rotes Tor /fb setup StadionXL redgoalmin → Untere Ecke des roten Tors /fb setup StadionXL redgoalmax → Obere gegenüberliegende Ecke # Blaues Tor /fb setup StadionXL bluegoalmin → Untere Ecke des blauen Tors /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ß) und keine Spieler-Grenzkontrolle. ``` /fb setup StadionXL fieldmin → Eine Ecke des Spielfelds /fb setup StadionXL fieldmax → Die gegenüberliegende Ecke ``` ### 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. Elfmeter-Punkte setzen *(optional)* Wenn nicht gesetzt, wird `ballspawn` als Elfmeter-Ausführungsort verwendet. Für realistische Strafstoß-Positionen: ``` /fb setup StadionXL redpenaltyspot → Elfmeter-Punkt vor dem roten Tor /fb setup StadionXL bluepenaltyspot → Elfmeter-Punkt vor dem blauen Tor ``` ### 7. 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) ``` ### 8. 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), `redpenaltyspot`/`bluepenaltyspot` (Elfmeter-Punkte) --- ## 📋 Alle Commands ### Spieler-Commands | Command | Beschreibung | |---|---| | `/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 (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`)* | Command | Beschreibung | |---|---| | `/fb create ` | Neue Arena erstellen | | `/fb delete ` | Arena löschen | | `/fb setup