Pular para o conteúdo principal

ResourcePackManager (RSPM)

O ResourcePackManager descobre, une, hospeda e distribui resource packs de plugins suportados e de packs fornecidos manualmente. Ele também pode converter o pack Java unificado em um resource pack Bedrock, para que jogadores via GeyserMC vejam o mesmo conteúdo personalizado que os jogadores Java, e oferece suporte de primeira classe para redes com proxy BungeeCord, Waterfall e Velocity.

O Que Ele Faz

  • descobre packs de plugins suportados e os une de acordo com priorityOrder
  • executa seu próprio servidor HTTP integrado para fazer self-host do pack unificado (sem necessidade de um host de arquivos externo)
  • pode recorrer à hospedagem gratuita do MagmaGuy (auto-host) quando o self-host não for viável
  • pode forçar ou opcionalmente solicitar o uso do pack
  • monitora alterações nos packs e refaz a união automaticamente quando as fontes se estabilizam
  • converte o pack Java unificado em um resource pack Bedrock para o GeyserMC
  • registra entidades Bedrock verdadeiramente personalizadas no Geyser por meio de uma extensão do Geyser empacotada, de modo que entidades modeladas (por exemplo, do FreeMinecraftModels e do EliteMobs) renderizem e animem para jogadores Bedrock
  • funciona em redes com proxy: cada backend produz seu próprio pack Bedrock, o plugin do proxy os busca, os une e serve o resultado por meio do Geyser
  • conecta uma rede sem nenhuma chave para colar: o proxy é o dono da chave da rede, salva-a em seu próprio arquivo network-key e a envia automaticamente para cada backend na primeira vez que um jogador se conecta lá
  • consegue manter-se atualizado em toda a rede: os backends oferecem o jar universal do plugin por uma rota autenticada; o proxy valida sua estrutura e versão, recusa downgrades, verifica os bytes transferidos por SHA-256 e o prepara para o próximo desligamento

Arquitetura em Resumo

O RSPM v2 é um build Maven multi-módulo, mas é distribuído como um único jar: ResourcePackManager.jar. Esse único jar contém o plugin Bukkit/Paper, o plugin Velocity e o plugin BungeeCord/Waterfall, todos de uma só vez — o Minecraft carrega o ponto de entrada que corresponder à plataforma em que está rodando. Não existem mais arquivos ResourcePackManager-Velocity.jar / ResourcePackManager-BungeeCord.jar separados para extrair.

A pasta proxy-extension/ ainda existe, mas agora significa outra coisa: quando um backend percebe que está atrás de um proxy e nunca recebeu uma chave de rede, ele prepara uma cópia byte a byte idêntica do próprio jar em execução em plugins/ResourcePackManager/proxy-extension/ResourcePackManager.jar e pede que você copie esse único arquivo para o proxy. É uma cópia de conveniência do jar que você já tem, não um artefato separado por plataforma.

O mesmo jar desempenha dois papéis, dependendo de onde você o coloca:

  • Como plugin de backend (em cada backend Paper/Spigot) — mescla packs Java, executa o conversor Bedrock, hospeda o pack, expõe um pequeno servidor HTTP e envia packs aos clientes Java.
  • Como plugin de proxy (em um proxy Velocity ou BungeeCord/Waterfall) — busca o pack Bedrock e os mappings de cada backend, une-os em um único pack válido para toda a rede e o serve a clientes Bedrock por meio do Geyser do proxy.

Um servidor standalone só precisa do jar no backend. Uma rede com proxy precisa do mesmo jar em cada backend E de uma cópia no proxy.

O mesmo jar também funciona como uma extensão do Geyser. Quando o backend detecta uma instalação local do Geyser-Spigot, ele instala o mesmíssimo ResourcePackManager.jar universal em Geyser-Spigot/extensions/, para que o Geyser consiga renderizar as entidades Bedrock personalizadas do RSPM; o papel de proxy faz o mesmo para o Geyser do proxy. (Versões antigas entregavam um ResourcePackManager-GeyserBridge.jar separado — esse arquivo foi aposentado e é substituído automaticamente pela fila de atualização do Geyser.) Veja Extensão do Geyser e entidades personalizadas.

Opções de Hospedagem

A entrega do pack Java usa esta precedência:

  1. Self-host forçado (selfHostForce: true) — sobrepõe autoHost e selfHostEnabled, pula todos os probes e o upload remoto, e anuncia a URL local. Principalmente para testes.
  2. Self-host primeiro (autoHost: true, preferSelfHost: true e selfHostEnabled: true, todos padrões) — o RSPM inicia seu próprio servidor HTTP, executa uma cadeia de checagens de sanidade (endereço não-LAN, self-probe em localhost, probe de alcançabilidade externa via magmaguy.com) e anuncia a URL local aos clientes. Custo zero de banda para o MagmaGuy. Essa preferência de "tentar o self-host primeiro" é pulada em um backend de proxy, que vai direto para o passo 3; o servidor HTTP do próprio backend continua rodando lá, porque o proxy busca dele os artefatos Bedrock.
  3. Fallback de auto-host remoto — se o self-host estiver desativado ou uma checagem real de alcançabilidade do self-host falhar, o RSPM faz upload do pack para a CDN do MagmaGuy em magmaguy.com/rsp/ e anuncia essa URL. Se o caminho remoto falhar, ele pode recorrer ao self-host quando selfHostEnabled: true.

Se autoHost: false e selfHostForce: false, o RSPM grava o zip unificado em plugins/ResourcePackManager/output/ sem enviar uma URL.

Consulte Self-hosting para a árvore de decisão completa de entrega, resolução de portas e detecção de host externo.

Conversão Java-para-Bedrock

O conversor Bedrock não é mais exclusivo do FreeMinecraftModels. Ele percorre recursivamente todo arquivo de definição de itens 1.21.4+ (assets/<namespace>/items/**/*.json) no pack unificado e produz geometria Bedrock, attachables e ícones de inventário, independentemente do plugin que os tenha enviado:

  • Jogadores Bedrock veem itens 3D, armaduras personalizadas e equipamentos modelados de qualquer plugin cujo pack use o formato de definição de itens 1.21.4+.
  • Texturas de armadura personalizadas são renderizadas em jogadores Bedrock usando a geometria de armadura vanilla, com a textura Java como camada visível.
  • Ícones de inventário para itens 3D são renderizados por software a partir do modelo Java por meio da transformação display.gui.
  • O pack Bedrock é servido ao vivo por sessão Bedrock via API do Geyser, de modo que ajustes de textura e modelo chegam ao próximo jogador Bedrock que entrar sem reiniciar o servidor. Mapeamentos de itens personalizados ainda exigem reinício, pois o Geyser os registra na inicialização.
  • Doze parâmetros ajustáveis pelo usuário para offsets de exibição de itens segurados (seis de primeira pessoa, seis de terceira pessoa) em bedrock_display_offsets.yml.

Integrações Atuais

O ResourcePackManager já vem com entradas de integração prontas para estes plugins:

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

Cada integração só é ativada se o plugin estiver instalado e seu caminho local ou URL remota configurados forem utilizáveis. O plugin também detecta o Geyser (Geyser-Spigot em um backend, Geyser-Velocity / Geyser-BungeeCord em um proxy) na inicialização e conecta a entrega do pack Bedrock àquele que encontrar.

Para Onde Ir Agora