Diese Datei beschreibt gesammelt, was die Mod aktuell kann.
build/libs/mapswitch-1.0.0.jarin den Server-mods/-Ordner kopieren.- Maps in den Server-Hauptordner unter
./maps/legen. - Server starten (Datapack/Dimension-Dateien werden vorbereitet).
- Server neu starten (neue Dimensionen werden geladen).
- Im Spiel testen mit
/mapswitch <mapname>.
MapSwitch trennt Spielstände pro Map und erlaubt Spielern, per Command zwischen Maps zu wechseln.
/map switch <mapname>/mapswitch <mapname>- Beide Commands sind für alle Spieler nutzbar.
- Tab-Completion für verfügbare Maps ist aktiv.
- Maps werden aus dem Server-Hauptordner geladen:
./maps/ - Pro Map werden diese Ordner unterstützt:
playerdata/stats/advancements/DIM-1/(Nether-Datenquelle)DIM1/(End-Datenquelle)- Overworld-Daten direkt im Map-Root (
region/,entities/,poi/wenn vorhanden)
- Pro Map und Spieler wird gespeichert in:
./maps/<map>/playerdata/<uuid>.dat
- Beim Wechsel:
- alte Map-Daten speichern
- Ziel-Map-Daten laden
- falls keine Ziel-Datei vorhanden: sauberer Reset auf Basiswerte
- Zusätzliche Trennung:
stats:./maps/<map>/stats/<uuid>.jsonadvancements:./maps/<map>/advancements/<uuid>.json
- Zielchunk wird vorab forciert geladen.
- Teleport auf
(0.5, 100, 0.5)in die Ziel-Overworld der Map. - 2 Sekunden Invulnerability nach Wechsel.
- Fehler werden sauber an den Spieler gemeldet.
- Die Mod erzeugt automatisch ein Datapack:
<world>/datapacks/mapswitch-generated
- Dieses Datapack enthält Dimension-Definitionen für:
<map>_overworld<map>_nether<map>_end
- Map-Daten aus
./maps/werden in passendedimensions/mapswitch/...Zielordner importiert. - Wichtig: Nach erstmaliger Generierung ist ein zusätzlicher Server-Neustart nötig, damit neue Dimensionen geladen sind.
- Mapnamen werden für interne IDs normalisiert (Minecraft Identifier kompatibel).
- Beispiel:
Hardcore->hardcore - Dadurch keine Crashes mehr durch ungültige Zeichen/Großbuchstaben.
- Spieler sehen in der Tab-Liste nur Spieler derselben Map.
- Bei Mapwechsel wird die Tab-Liste sofort neu synchronisiert.
- Zusätzlich periodischer Sync, damit Join/Edge-Cases sauber bleiben.
- Beim Join und nach Mapwechsel bekommt der Spieler Actionbar-Hinweis:
Aktive Map: <map>
- Datei:
config/mapswitch.json - Felder:
default_mapallowed_maps
- Wenn dynamische Welt-API nicht verfügbar ist, crasht der Server nicht.
- Stattdessen Warnung im Log und Fallback-Verhalten.
- Wenn Ziel-Dimension nicht geladen ist, schlägt nur der Wechsel fehl (kein Startup-Crash).
- PlayerData-Fehler werden mit Dateipfad + Root-Cause geloggt.
- Ziel: Fabric + Minecraft
1.21.11 - Java 21
- Build mit:
.\gradlew.bat build -x test