2
Soccer
M_Viper edited this page 2026-02-26 10:12:09 +00:00
This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Soccer Module

Das Soccer-Modul ist eine interaktive Lobby-Komponente für NexusLobby.
Es implementiert einen physikbasierten Fußball auf Basis von ArmorStands und Custom-Skins,
inklusive vollständigem Tor-System mit Punktestand und visuellen Partikel-Toren.


📋 Features

  • Physik-Engine
    Automatisches Dribbling bei Annäherung und Schuss-Funktion per Linksklick.
    Wandprall-System mit konfigurierbarem Dämpfungsfaktor.

  • Zuverlässige Tor-Erkennung
    Segment-basierter Raycast pro Tick (prevPos → newPos) mit 0.1-Block-Schrittweite.
    Erkennt Schüsse, Dribbling und Doppelklick-Pässe gleichermaßen zuverlässig
    unabhängig von der Ballgeschwindigkeit.

  • Tor-System
    Unbegrenzte Tore per Command definierbar, jedes Tor einem von zwei Teams zugewiesen.
    Partikel-Visualisierung der Tor-Bounding-Box (Blau / Rot).
    Punktestand mit Title-Anzeige und Sound bei jedem Tor.

  • Custom Texture
    Hochauflösender Fußball-Skin via Bukkit-Profile-API
    (Minecraft 1.21+ kompatibel)

  • Interaction-Guard
    Vollständiger Schutz gegen Diebstahl des Items oder Zerstörung des Entities.

  • Smart-Respawn
    Automatisches Zurücksetzen bei Inaktivität oder Verlust des Balls (Void).
    Nach jedem Tor automatischer Respawn am konfigurierten Spawn-Punkt.


⌨️ Administrative Commands

Alle Befehle benötigen die Permission:

nexuslobby.admin

Ball

Command Aktion
/nexuslobby ball setspawn Speichert den aktuellen Standort als permanenten Ball-Spawn
/nexuslobby ball respawn Erzwingt ein sofortiges Neuladen des Ball-Entities
/nexuslobby ball remove Entfernt den Ball ohne Respawn

Tore

Command Aktion
/nexuslobby ball goal pos1 Setzt die erste Ecke des Tors (aktueller Standort)
/nexuslobby ball goal pos2 Setzt die gegenüberliegende Ecke des Tors
/nexuslobby ball goal save <Name> <1|2> Speichert das Tor für Team 1 (Blau) oder Team 2 (Rot)
/nexuslobby ball goal delete <Name> Löscht ein bestehendes Tor
/nexuslobby ball goal list Listet alle gespeicherten Tore mit Positionen
/nexuslobby ball goal show Zeigt alle Tor-Boxen für ~2 Sekunden als Partikel an
/nexuslobby ball goal debug Zeigt Ball-Position und Tor-Erkennungs-Status live

Punktestand

Command Aktion
/nexuslobby ball score Zeigt den aktuellen Spielstand an
/nexuslobby ball score reset Setzt den Punktestand beider Teams auf 0 zurück

🛠 Konfiguration (config.yml)

Die Werte werden unter dem ball-Pfad verwaltet:

ball:
  enabled: true

  spawn: # Wird automatisch via /nexuslobby ball setspawn gesetzt
    world: "world"
    x: 0.0
    y: 65.0
    z: 0.0

  respawn_delay: 60 # Zeit in Sekunden, bis der Ball bei Inaktivität respawnt

  goals: # Wird automatisch via /nexuslobby ball goal save befüllt
    torBlau:
      pos1:
        world: world
        x: 100.0
        y: 64.0
        z: 198.0
      pos2:
        world: world
        x: 106.0
        y: 68.0
        z: 200.5  # mind. 1.5 Blöcke Tiefe in Schussrichtung empfohlen
      team: 1     # 1 = Blau, 2 = Rot

Hinweis zum Tor einrichten:
Die Tor-Box muss mindestens 1.5 Blöcke Tiefe in Schussrichtung und
mindestens 3 Blöcke Höhe haben. Nutze /nexuslobby ball goal show
um die Box sichtbar zu machen, und /nexuslobby ball goal debug um
Ball-Position und Erkennung live zu prüfen.


🧱 Technische Spezifikationen

  • Base-Entity: ArmorStand (Small, Invisible, kein BasePlate)
  • Tor-Erkennung: Segment-Raycast prevPos → currentPos + velocity pro Server-Tick, Schrittweite 0.1 Blöcke, drei Y-Offsets (Fuß / Mitte / Kopf des ArmorStands)
  • Texture-URL:
    http://textures.minecraft.net/texture/451f8cfcfb85d77945dc6a3618414093e70436b46d2577b28c727f1329b7265e
  • Dribbling-Radius: 0.7 Blöcke horizontal, 0.5 Blöcke vertikal
  • Kick-Kraft: 1.35 Blöcke/Tick horizontal, 0.38 Blöcke/Tick vertikal
  • Wand-Dämpfung: 75 % der Geschwindigkeit nach Aufprall
  • Tor-Cooldown: 3 Sekunden zwischen zwei Wertungen (verhindert Doppel-Trigger)
  • Respawn nach Tor: 4 Sekunden Verzögerung (80 Ticks)