Saltar al contenido principal

ResourcePackManager (RSPM)

ResourcePackManager descubre, fusiona, aloja y distribuye paquetes de recursos de plugins compatibles y de paquetes suministrados manualmente. También puede convertir el paquete Java fusionado en un paquete de recursos de Bedrock para que los jugadores de GeyserMC vean el mismo contenido personalizado que los jugadores de Java, y ofrece soporte de primera clase para redes proxy de BungeeCord, Waterfall y Velocity.

Qué hace

  • descubre paquetes de plugins compatibles y los fusiona según priorityOrder
  • ejecuta su propio servidor HTTP integrado para poder autoalojar el paquete fusionado (sin necesidad de un host de archivos externo)
  • puede recurrir al alojamiento gratuito de MagmaGuy (auto-host) cuando el autoalojamiento no es viable
  • puede forzar u opcionalmente solicitar el uso del paquete
  • vigila los cambios en los paquetes y vuelve a fusionar automáticamente cuando las fuentes se estabilizan
  • convierte el paquete Java fusionado en un paquete de recursos de Bedrock para GeyserMC
  • funciona en redes proxy: cada backend produce su propio paquete de Bedrock, el plugin del proxy los recoge, los fusiona y sirve el resultado a través de Geyser

Arquitectura a primera vista

RSPM v2 es una compilación Maven multimódulo, pero se distribuye como un único jar: ResourcePackManager.jar. Ese único jar contiene el plugin de Bukkit/Paper, el plugin de Velocity y el plugin de BungeeCord/Waterfall todos a la vez — Minecraft carga el punto de entrada que coincida con la plataforma en la que se ejecuta. Ya no existen archivos ResourcePackManager-Velocity.jar / ResourcePackManager-BungeeCord.jar separados ni carpeta proxy-extension/.

El mismo jar desempeña dos roles según dónde lo coloques:

  • Como plugin de backend (en cada backend de Paper/Spigot) — mezcla paquetes Java, ejecuta el convertidor de Bedrock, aloja el paquete, expone un pequeño servidor HTTP y envía paquetes a los clientes Java.
  • Como plugin del proxy (en un proxy de Velocity o BungeeCord/Waterfall) — obtiene el paquete de Bedrock y los mappings de cada backend, los fusiona en un único paquete a nivel de red y los sirve a los clientes de Bedrock a través del Geyser del proxy.

Un servidor independiente solo necesita el jar en el backend. Una red proxy necesita el mismo jar en cada backend Y una copia en el proxy.

Cuando el backend detecta una instalación local de Geyser-Spigot, también deja un ResourcePackManager-GeyserBridge.jar incluido en Geyser-Spigot/extensions/ (una extensión de Geyser, no un plugin separado) para que Geyser pueda renderizar las entidades de Bedrock personalizadas de RSPM.

Opciones de alojamiento

Tres rutas de entrega, elegidas automáticamente en este orden cuando autoHost: true:

  1. Autoalojamiento primero (preferSelfHost: true, por defecto) — RSPM inicia su propio servidor HTTP, ejecuta una cadena de comprobaciones de cordura (dirección no LAN, sondeo a sí mismo en localhost, sondeo de accesibilidad externa vía magmaguy.com) y anuncia la URL local a los clientes. Coste de ancho de banda cero para MagmaGuy.
  2. Fallback de auto-host remoto — si alguna comprobación de autoalojamiento falla, RSPM sube el paquete al CDN de MagmaGuy en magmaguy.com/rsp/ y anuncia esa URL en su lugar.
  3. Autoalojamiento forzado (selfHostForce: true) — omite ambos sondeos y la subida remota por completo. Principalmente para pruebas.

Si autoHost: false, RSPM escribe el zip fusionado en plugins/ResourcePackManager/output/ y tú te encargas a partir de ahí.

Consulta Autoalojamiento para el árbol de decisión completo de entrega, resolución de puertos y detección del host externo.

Conversión de Java a Bedrock

El convertidor de Bedrock ya no es exclusivo de FreeMinecraftModels. Recorre cada archivo de definición de ítems 1.21.4+ (assets/<namespace>/items/*.json) del paquete fusionado y produce geometría, attachables e iconos de inventario de Bedrock para cualquier plugin que los haya proporcionado:

  • Los jugadores de Bedrock ven ítems 3D, armaduras personalizadas y equipo modelado para cualquier plugin cuyo paquete use el formato de definición de ítems 1.21.4+.
  • Las texturas de armadura personalizadas se renderizan en jugadores de Bedrock usando la geometría de armadura vanilla con la textura Java como capa visible.
  • Los iconos de inventario para ítems 3D se renderizan por software a partir del modelo Java mediante la transformación display.gui.
  • El paquete de Bedrock se sirve en vivo por sesión de Bedrock a través de la API de Geyser, de modo que los retoques de textura y modelo llegan al siguiente jugador de Bedrock que se conecte sin reiniciar el servidor. Las asignaciones de ítems personalizados siguen requiriendo un reinicio porque Geyser las registra al arrancar.
  • Doce parámetros ajustables por el usuario para los desplazamientos de visualización del ítem en mano (seis para primera persona, seis para tercera persona) en bedrock_display_offsets.yml.

Integraciones actuales

ResourcePackManager incluye entradas de integración predefinidas para estos plugins:

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

Cada integración solo se activa si el plugin está instalado y su ruta local o URL remota configurada es utilizable. El plugin también detecta Geyser (Geyser-Spigot en un backend, Geyser-Velocity / Geyser-BungeeCord en un proxy) al arrancar y conecta la entrega del paquete de Bedrock con el que encuentre.

A dónde ir después