API de ResourcePackManager
La referencia Java generada permite buscar clases, métodos y firmas, y registra la versión del código fuente y el commit de cada módulo.
ResourcePackManager expone una API de Java que permite a otros plugins registrar sus paquetes de recursos para su fusión en tiempo de ejecución.
Compila con com.magmaguy:ResourcePackManager:2.4.6 y el ámbito provided o compileOnly, coincidiendo con el plugin instalado. Es la versión pública de Maven comprobada para esta actualización; el código fuente actual es 2.4.6. El índice de la API Java contiene el repositorio y ejemplos de dependencias. Declara depend: [ResourcePackManager] si la integración es obligatoria. Esta API corresponde al backend de Bukkit; los plugins del proxy no pueden usarla para registrar paquetes en un backend remoto.
Acceso a la API
La clase de la API es com.magmaguy.resourcepackmanager.api.ResourcePackManagerAPI. Todos los métodos son estáticos.
Ejemplo de paquete local
Este plugin registra un ZIP existente en plugins/ExamplePack/pack.zip cuando su descriptor le asigna el nombre ExamplePack. Coloca el ZIP allí antes de iniciar el servidor.
package example;
import com.magmaguy.resourcepackmanager.api.ResourcePackManagerAPI;
import java.io.File;
import org.bukkit.plugin.java.JavaPlugin;
public final class ExamplePack extends JavaPlugin {
@Override
public void onEnable() {
File pack = new File(getDataFolder(), "pack.zip");
if (!pack.isFile()) {
getLogger().warning("Pack registration skipped: pack.zip is missing");
return;
}
ResourcePackManagerAPI.registerLocalResourcePack(
getName(), getDataFolder().getName() + "/pack.zip",
false, false, true, "");
}
}
El registro devuelve void y sustituye cualquier registro anterior bajo el mismo nombre de plugin. Registra una aportación; no fusiona, aloja ni envía un paquete inmediatamente. Si la primera fusión ya se ha realizado, solicita una recarga cuando la aportación esté lista o pide al administrador que ejecute /rspm reload. Evita iniciar recargas repetidas por cada jugador o cambio de archivo.
Llama al registro desde el hilo del servidor y proporciona exactamente una fuente. El método guarda los datos sin validar si el paquete se puede descargar o fusionar. Comprueba el resultado de la fusión y los registros del servidor al verificar la entrega. Esta interfaz no ofrece ningún método público para retirar un registro.
Registrar un paquete de recursos
Existen tres métodos de registro dependiendo de si tu paquete es local, remoto, o cualquiera de los dos.
registerResourcePack
ResourcePackManagerAPI.registerResourcePack(
String pluginName,
String localPath,
String url,
boolean encrypts,
boolean distributes,
boolean zips,
String reloadCommand
);
Registra un paquete de recursos que puede provenir de una ruta local o una URL remota. Exactamente uno de localPath o url debe ser no nulo.
registerLocalResourcePack
ResourcePackManagerAPI.registerLocalResourcePack(
String pluginName,
String localPath,
boolean encrypts,
boolean distributes,
boolean zips,
String reloadCommand
);
Registra un paquete de recursos desde una ruta local relativa al directorio plugins.
registerRemoteResourcePack
ResourcePackManagerAPI.registerRemoteResourcePack(
String pluginName,
String url,
boolean encrypts,
boolean distributes,
boolean zips,
String reloadCommand
);
Registra un paquete de recursos que se descargará desde la URL proporcionada.
Parámetros
| Parámetro | Descripción |
|---|---|
pluginName | El nombre de tu plugin exactamente como aparece en la lista de plugins. Sensible a mayúsculas y minúsculas. |
localPath | Ruta relativa desde el directorio plugins hacia tu archivo o carpeta de paquete de recursos. |
url | URL para descargar el paquete de recursos. |
encrypts | Reservado para uso futuro. Actualmente no hace nada. |
distributes | Reservado para uso futuro. Actualmente no hace nada. |
zips | Si el paquete de recursos ya está comprimido en zip. Si es false, ResourcePackManager lo comprimirá antes de fusionarlo. |
reloadCommand | El comando de recarga de tu plugin. Reservado para uso futuro. |
Activar una recarga
ResourcePackManagerAPI.reloadResourcePack();
Recarga ResourcePackManager, lo que vuelve a fusionar todos los paquetes registrados y vuelve a alojar el resultado si el alojamiento automático está habilitado.
Lo que esta API no cubre
Las entidades de Bedrock personalizadas no se registran a través de esta clase. Un plugin las aporta incluyendo recursos nativos de entidades de Bedrock bajo assets/<namespace>/rspm_bedrock_pack/ dentro de su paquete de Java; RSPM los traslada al paquete de Bedrock generado y la extensión de Geyser incluida registra las definiciones resultantes. Consulta Conversión a Bedrock y Extensión de Geyser y entidades personalizadas.
Las indicaciones de conversión a Bedrock para ítems también son archivos del paquete y no llamadas a la API: assets/<namespace>/rspm_item_bases/ declara los ítems base, assets/<namespace>/rspm_item_java_only/ excluye ítems de la conversión a Bedrock y assets/<namespace>/rspm_item_particles/ añade partículas a los ítems en mano. Consulta Ítems base, Ítems solo para Java y Partículas de ítems en mano.
Notas
- Los paquetes registrados a través de la API participan en
priorityOrderde la misma manera que las integraciones incorporadas. Agrega el nombre de tu plugin apriorityOrderenconfig.ymlpara controlar dónde se ubica en el orden de fusión. - Si el nombre de tu plugin no está listado en
priorityOrder, tu paquete recibe la prioridad más baja. - El registro debe realizarse durante el
onEnableo la inicialización de tu plugin, antes de que ResourcePackManager termine su propia inicialización y active la primera fusión.