Zum Hauptinhalt springen

ResourcePackManager (RSPM)

ResourcePackManager erkennt, führt zusammen, hostet und verteilt Ressourcenpakete von unterstützten Plugins sowie manuell bereitgestellte Pakete. Er kann das zusammengeführte Java-Paket außerdem in ein Bedrock-Ressourcenpaket umwandeln, damit GeyserMC-Spieler dieselben benutzerdefinierten Inhalte wie Java-Spieler sehen, und bietet erstklassige Unterstützung für BungeeCord-, Waterfall- und Velocity-Proxy-Netzwerke.

Was er tut

  • erkennt unterstützte Plugin-Pakete und führt sie gemäß priorityOrder zusammen
  • betreibt einen eigenen eingebauten HTTP-Server, sodass er das zusammengeführte Paket selbst hosten kann (kein externer Datei-Host erforderlich)
  • kann auf MagmaGuys kostenloses Hosting (Auto-Host) zurückfallen, wenn Selbst-Hosting nicht machbar ist
  • kann die Verwendung des Pakets erzwingen oder optional anbieten
  • überwacht Paketänderungen und führt automatisch neu zusammen, sobald sich die Quellen stabilisieren
  • wandelt das zusammengeführte Java-Paket in ein Bedrock-Ressourcenpaket für GeyserMC um
  • funktioniert auf Proxy-Netzwerken: jedes Backend erzeugt sein eigenes Bedrock-Paket, das Proxy-Plugin holt sie ab, führt sie zusammen und liefert das Ergebnis über Geyser aus

Architektur im Überblick

RSPM v2 ist ein Multi-Modul-Maven-Build, wird aber als einzelne Jar ausgeliefert: ResourcePackManager.jar. Diese eine Jar enthält das Bukkit-/Paper-Plugin, das Velocity-Plugin und das BungeeCord-/Waterfall-Plugin gleichzeitig — Minecraft lädt jeweils den Einstiegspunkt, der zur laufenden Plattform passt. Es gibt keine separaten ResourcePackManager-Velocity.jar-/ResourcePackManager-BungeeCord.jar-Dateien und keinen proxy-extension/-Ordner mehr.

Dieselbe Jar spielt je nachdem, wo du sie ablegst, zwei Rollen:

  • Als Backend-Plugin (auf jedem Paper-/Spigot-Backend) — mischt Java-Pakete, führt den Bedrock-Konverter aus, hostet das Paket, stellt einen kleinen HTTP-Server bereit und sendet Pakete an Java-Clients.
  • Als Proxy-Plugin (auf einem Velocity- oder BungeeCord-/Waterfall-Proxy) — holt das Bedrock-Paket und die Mappings jedes Backends ab, führt sie zu einem einzigen netzwerkweiten Paket zusammen und liefert es über das Geyser des Proxys an Bedrock-Clients aus.

Ein eigenständiger Server benötigt die Jar nur auf dem Backend. Ein Proxy-Netzwerk benötigt dieselbe Jar auf jedem Backend UND eine Kopie auf dem Proxy.

Wenn das Backend eine lokale Geyser-Spigot-Installation erkennt, legt es zusätzlich eine gebündelte ResourcePackManager-GeyserBridge.jar in Geyser-Spigot/extensions/ ab (eine Geyser-Erweiterung, kein separates Plugin), damit Geyser die benutzerdefinierten Bedrock-Entities von RSPM darstellen kann.

Hosting-Optionen

Drei Auslieferungspfade, die automatisch in dieser Reihenfolge gewählt werden, wenn autoHost: true gesetzt ist:

  1. Selbst-Hosting zuerst (preferSelfHost: true, Standard) — RSPM startet einen eigenen HTTP-Server, führt eine Kette von Plausibilitätsprüfungen durch (Nicht-LAN-Adresse, Localhost-Selbsttest, externer Erreichbarkeitstest über magmaguy.com) und kündigt Clients die lokale URL an. Keine Bandbreitenkosten für MagmaGuy.
  2. Remote-Auto-Host als Fallback — falls eine Selbst-Hosting-Prüfung fehlschlägt, lädt RSPM das Paket auf MagmaGuys CDN unter magmaguy.com/rsp/ hoch und kündigt stattdessen diese URL an.
  3. Erzwungenes Selbst-Hosting (selfHostForce: true) — überspringt beide Prüfungen und den Remote-Upload vollständig. Hauptsächlich für Tests.

Wenn autoHost: false ist, schreibt RSPM die zusammengeführte ZIP-Datei nach plugins/ResourcePackManager/output/ und du übernimmst sie von dort.

Siehe Selbst-Hosting für den vollständigen Auslieferungs-Entscheidungsbaum, die Port-Auflösung und die Erkennung des externen Hosts.

Java-zu-Bedrock-Konvertierung

Der Bedrock-Konverter ist nicht mehr ausschließlich für FreeMinecraftModels gedacht. Er durchläuft jede Items-Definitionsdatei im Format 1.21.4+ (assets/<namespace>/items/*.json) im zusammengeführten Paket und erzeugt Bedrock-Geometrien, Attachables und Inventarsymbole für jedes Plugin, das sie geliefert hat:

  • Bedrock-Spieler sehen 3D-Items, benutzerdefinierte Rüstungen und modellierte Ausrüstung für jedes Plugin, dessen Paket das Items-Definitionsformat 1.21.4+ verwendet.
  • Texturen benutzerdefinierter Rüstungen werden auf Bedrock-Spielern dargestellt, indem die Vanilla-Rüstungsgeometrie mit der Java-Textur als sichtbarer Schicht kombiniert wird.
  • Inventarsymbole für 3D-Items werden softwareseitig aus dem Java-Modell über die display.gui-Transformation gerendert.
  • Das Bedrock-Paket wird live pro Bedrock-Session über Geysers API ausgeliefert, sodass Textur- und Modellanpassungen den nächsten beitretenden Bedrock-Spieler ohne Serverneustart erreichen. Custom-Item-Mappings erfordern weiterhin einen Neustart, da Geyser sie beim Boot registriert.
  • Zwölf benutzerseitig einstellbare Stellschrauben für Anzeige-Offsets gehaltener Items (sechs Ego-, sechs Drittperson) in bedrock_display_offsets.yml.

Aktuelle Integrationen

ResourcePackManager liefert vorgefertigte Integrationseinträge für folgende Plugins:

  • BackpackPlus
  • BetterHUD
  • BetterStructures
  • CannonRTP
  • EliteMobs
  • EternalTD
  • FreeMinecraftModels
  • InfiniteVehicles
  • ItemsAdder
  • MegaBlockSurvivors
  • MMOInventory
  • ModelEngine
  • Nexo
  • Nova
  • Oraxen
  • RealisticSurvival
  • ResurrectionChest
  • ValhallaMMO
  • vane-core

Jede Integration wird nur aktiv, wenn das Plugin installiert ist und der konfigurierte lokale Pfad oder die Remote-URL nutzbar ist. Das Plugin erkennt außerdem beim Start Geyser (Geyser-Spigot auf einem Backend, Geyser-Velocity / Geyser-BungeeCord auf einem Proxy) und verdrahtet die Bedrock-Paketauslieferung mit der jeweils gefundenen Variante.

Wie es weitergeht

  • Einrichtung — Betreiber-Workflow für einen eigenständigen Server
  • Proxy-Netzwerke — Schritt-für-Schritt-Einrichtung für BungeeCord / Waterfall / Velocity
  • Selbst-Hosting — eingebauter HTTP-Server, Port-Auflösung, Erkennung des externen Hosts
  • Bedrock-/Geyser-Konvertierung — was konvertiert wird, Stellschrauben
  • FAQ — häufige Fragen
  • Fehlerbehebung — was zu prüfen ist, wenn etwas nicht funktioniert
  • API — Pakete aus deinem eigenen Plugin registrieren