10 KiB
⚽ Fußball Plugin — Vollständiges Minecraft Fußball-Minigame
Ein professionelles Fußball-Plugin für Spigot/Paper 1.21+
📦 Installation
- Java 21+ und Spigot/Paper 1.21.x benötigt
- Plugin bauen:
mvn package→target/Fussball.jar - JAR in den
/plugins/Ordner deines Servers kopieren - Server (neu)starten
- (Optional) PlaceholderAPI installieren für
%fussball_...%Platzhalter
🎮 Features
| Feature | Beschreibung |
|---|---|
| ⚽ Echter Ball | ArmorStand mit Fußball-Textur, echten Physics & Reibung |
| 👥 Teams | Automatische Team-Zuweisung mit Auto-Balance (Rot vs. Blau) |
| 🥅 Tor-Erkennung | Region-basierte Tore mit Trajectory-Check |
| 🎉 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 |
| 💪 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 |
| 🏷 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 |
🔧 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
4. Spielfeld-Grenzen setzen (optional, aber empfohlen)
Ohne Feldgrenzen gibt es keine Aus-Erkennung (Einwurf/Ecke/Abstoß).
/fb setup StadionXL fieldmin → Eine Ecke des Spielfelds
/fb setup StadionXL fieldmax → Die gegenüberliegende Ecke
5. 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
/fb setup StadionXL info
Alle Pflichtfelder müssen §a✔ zeigen. Erst dann ist die Arena spielbereit.
📋 Alle Commands
Spieler-Commands
| Command | Beschreibung |
|---|---|
/fb join <arena> |
Einem Spiel beitreten (bei voller Arena → Warteschlange) |
/fb leave |
Spiel verlassen / Zuschauen beenden / Warteschlange verlassen |
/fb spectate <arena> |
Einem laufenden Spiel als Zuschauer beiwohnen |
/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, /soccer |
Aliase für /fussball |
Admin-Commands (Berechtigung: fussball.admin)
| Command | Beschreibung |
|---|---|
/fb create <name> |
Neue Arena erstellen |
/fb delete <name> |
Arena löschen |
/fb setup <arena> <option> |
Arena konfigurieren (siehe Setup-Guide) |
/fb setup <arena> info |
Alle gesetzten Positionen anzeigen |
/fb stop <arena> |
Laufendes Spiel sofort beenden |
/fb debug <arena> |
Tor-/Feld-Regionen und Ball-Position debuggen |
🎮 Spielablauf
Spieler joinen per Schild oder /fb join
→ Countdown startet (10 Sek.)
→ Spieler teleportieren zu Team-Spawns
→ Fußball erscheint in der Mitte
── 1. HALBZEIT ──────────────────────────────────────────
Spieler rennen gegen den Ball → automatischer Kick
Shift halten → Schuss lädt auf → loslassen = Powerschuss
Ball ins Tor → Punkt! (Feuerwerk + Pause + Neuaufstellung)
Bei Aus → Einwurf / Ecke / Abstoß je nach Situation
── HALBZEIT-PAUSE (30 Sek.) ─────────────────────────────
Spielstand wird angezeigt, Spieler bleiben auf dem Feld
── 2. HALBZEIT ──────────────────────────────────────────
Spielzeit läuft ab...
── BEI GLEICHSTAND: VERLÄNGERUNG (10 Min.) ──────────────
Wer zuerst trifft, gewinnt (Golden Goal)
Bei weiterem Gleichstand...
── ELFMETER-SCHIEßEN ────────────────────────────────────
5 Schüsse pro Team (abwechselnd)
Schütze hat 15 Sekunden pro Versuch
Early-Termination wenn Ergebnis feststeht
Dann: Sudden Death (je 1 Schuss) bis Entscheidung
── SPIELENDE ────────────────────────────────────────────
Sieger + MVP werden bekannt gegeben
Statistiken werden gespeichert
Alle zurück zur Lobby
💪 Aufladbarer Schuss
| Aktion | Effekt |
|---|---|
| Rechtsklick auf Ball | Normaler Schuss |
| Linksklick auf Ball | Normaler Schuss |
| Shift halten (max 1.5s) | Schuss lädt auf |
| Shift loslassen | Schuss mit aufgebauter Power |
| 100% Ladung erreicht | Auto-Fire |
Die Action-Bar zeigt den Ladefortschritt:
⚽ Schuss-Power: ████████░░ 80%
Ab 70% Ladung erscheinen Feuer-Partikel am Ball. Volle Ladung = 3.8× normale Kraft + mehr Loft.
💬 Team-Chat
Spieler im Spiel schreiben automatisch nur ans eigene Team:
§c[ROT] §fSpielerName§7: Ich stehe frei links!
!Nachricht→ Global-Broadcast an alle Spieler im Spiel (nur Admins)- Zuschauer sehen alle Team-Chats mit
[Zuschauer]-Label
🚪 Join-Schilder erstellen
- Schild platzieren
- In die erste Zeile
[Fussball]schreiben - In die zweite Zeile den Arena-Namen schreiben
- Rechtsklick auf das Schild → Spiel beitreten
Das Schild zeigt automatisch den aktuellen Status:
[⚽]
StadionXL
§c● 4/10
Klick zum Joinen
Farb-Legende: §a● = Wartet · §e● = Startet · §c● = Läuft · §d● = Elfmeter · §7● = Endet
📈 Statistiken & Bestenliste
/fb stats → Eigene Statistiken
/fb stats Notch → Statistiken von "Notch"
/fb top goals → Top 10 Torschützen
/fb top wins → Top 10 nach Siegen
Gespeicherte Werte pro Spieler:
- ⚽ Tore · 👟 Schüsse · 🏆 Siege · ❌ Niederlagen · ➖ Unentschieden · 📊 Gespielte Spiele · 📈 Siegquote %
Alle Daten werden in plugins/Fussball/stats.yml dauerhaft gespeichert.
🏷 PlaceholderAPI
Wenn PlaceholderAPI installiert ist, sind folgende Platzhalter verfügbar:
| Platzhalter | Wert |
|---|---|
%fussball_goals% |
Tore gesamt |
%fussball_kicks% |
Schüsse gesamt |
%fussball_wins% |
Siege gesamt |
%fussball_losses% |
Niederlagen gesamt |
%fussball_draws% |
Unentschieden gesamt |
%fussball_games% |
Gespielte Spiele |
%fussball_winrate% |
Siegquote (z.B. 67.5) |
%fussball_ingame% |
true / false |
%fussball_arena% |
Name der aktuellen Arena oder – |
%fussball_score% |
Aktueller Spielstand z.B. 2 : 1 oder – |
🔑 Berechtigungen
| Permission | Beschreibung | Standard |
|---|---|---|
fussball.admin |
Alle Admin-Commands | OP |
fussball.play |
Spielen, Zuschauen, Stats | Alle |
📁 Dateistruktur
plugins/Fussball/
├── config.yml → Plugin-Einstellungen (Ball-Power, Defaults)
├── arenas.yml → Gespeicherte Arenen (auto-generiert)
├── signs.yml → Gespeicherte Join-Schilder (auto-generiert)
└── stats.yml → Spieler-Statistiken (auto-generiert)
🏟 Tipps für ein gutes Spielfeld
- Feldgröße: Mindestens 30×20 Blöcke empfohlen (größer = mehr Spaß)
- Tore: Ca. 5 Blöcke breit, 3 Blöcke hoch (genug Platz für den ArmorStand-Ball)
- Boden: Gras, Terrakotta oder Smaragd-Blöcke für Optik
- Begrenzung: Zäune, Mauern oder Glas als Spielfeld-Rand
- fieldmin/fieldmax immer setzen! Sonst gibt es keinen Aus-Befehl (Einwurf/Ecke/Abstoß)
- Lobby außerhalb des Spielfelds platzieren, damit Spieler nach dem Spiel nicht auf dem Feld stehen
⚙ Kompatibilität
| Anforderung | Version |
|---|---|
| Spigot / Paper | 1.21.x |
| Java | 21+ |
| PlaceholderAPI | optional, jede Version |
Mehrere Arenen gleichzeitig möglich. Jede Arena läuft komplett unabhängig.
🐛 Bekannte Eigenheiten
- Der Ball ist ein ArmorStand – er kann durch enge Durchgänge (< 1 Block) stecken bleiben. Tore daher mindestens 2 Blöcke breit bauen.
- Spieler müssen Adventure-Mode haben – Commands die den Spielmodus ändern (z.B. durch andere Plugins) können das Spiel stören.
- Die Halbzeit teilt die
duration-Einstellung in zwei Hälften. Wer 5 Minuten Gesamtspielzeit will, setztduration 300.
Erstellt mit ❤️ von M_Viper — viel Spaß beim Fußballspielen!