Saltar para o conteúdo principal

API do ResourcePackManager

A referência Java gerada permite pesquisar classes, métodos e assinaturas e regista a versão do código e o commit de cada módulo.

O ResourcePackManager disponibiliza uma API Java para outros plugins registarem os seus pacotes de recursos na combinação durante a execução.

Compile com com.magmaguy:ResourcePackManager:2.4.6, no âmbito provided ou compileOnly, de acordo com o plugin instalado. Esta é a versão pública do Maven verificada nesta atualização; o código fonte atual está em 2.4.6. O índice da API Java contém o repositório e exemplos de dependências. Declare depend: [ResourcePackManager] se a integração for obrigatória. Esta API destina-se ao backend Bukkit; os plugins de proxy não a podem usar para registar pacotes num backend remoto.

Aceder à API​

A classe é com.magmaguy.resourcepackmanager.api.ResourcePackManagerAPI. Todos os métodos são estáticos.

Exemplo de pacote local​

Este plugin regista um ZIP existente em plugins/ExamplePack/pack.zip quando o seu descritor define o nome ExamplePack. Coloque o ZIP nesse caminho antes de iniciar o servidor.

ExamplePack.java
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, "");
}
}

O registo devolve void e substitui qualquer registo anterior com o mesmo nome de plugin. Regista uma contribuição, sem combinar, alojar ou enviar imediatamente o pacote. Se a combinação inicial já tiver ocorrido, solicite um recarregamento quando o pacote estiver pronto ou peça ao administrador para executar /rspm reload. Evite iniciar recarregamentos repetidos para cada jogador ou alteração de ficheiro.

Efetue o registo na thread do servidor e forneça exatamente uma origem. O método guarda os dados sem validar se o pacote pode ser transferido ou combinado. Verifique o resultado da combinação e os registos do servidor ao confirmar a entrega. Esta classe não tem um método público para remover o registo.

Registar um pacote de recursos​

Existem três métodos, conforme a origem seja local, remota ou uma das duas.

registerResourcePack​

ResourcePackManagerAPI.registerResourcePack(
String pluginName,
String localPath,
String url,
boolean encrypts,
boolean distributes,
boolean zips,
String reloadCommand
);

Regista um pacote proveniente de um caminho local ou URL remoto. Exatamente um dos parâmetros localPath e url deve ser diferente de null.

registerLocalResourcePack​

ResourcePackManagerAPI.registerLocalResourcePack(
String pluginName,
String localPath,
boolean encrypts,
boolean distributes,
boolean zips,
String reloadCommand
);

Regista um pacote a partir de um caminho local relativo à pasta plugins.

registerRemoteResourcePack​

ResourcePackManagerAPI.registerRemoteResourcePack(
String pluginName,
String url,
boolean encrypts,
boolean distributes,
boolean zips,
String reloadCommand
);

Regista um pacote que será transferido do URL indicado.

Parâmetros​

ParâmetroDescrição
pluginNameNome exato do plugin na lista de plugins. Distingue maiúsculas de minúsculas.
localPathCaminho relativo à pasta plugins até ao ficheiro ou pasta do pacote.
urlURL de transferência do pacote.
encryptsReservado para utilização futura. Atualmente não tem efeito.
distributesReservado para utilização futura. Atualmente não tem efeito.
zipsIndica se o pacote já está comprimido em ZIP. Se for false, o ResourcePackManager comprime-o antes de combinar.
reloadCommandComando de recarregamento do seu plugin. Reservado para utilização futura.

Acionar um recarregamento​

ResourcePackManagerAPI.reloadResourcePack();

Recarrega o ResourcePackManager, que volta a combinar todos os pacotes registados e a alojar o resultado se o alojamento automático estiver ativo.

Funcionalidades fora desta API​

As entidades Bedrock personalizadas não são registadas por esta classe. Um plugin fornece-as incluindo recursos nativos de entidades Bedrock em assets/<namespace>/rspm_bedrock_pack/ dentro do seu pacote Java. O RSPM transporta-os para o pacote Bedrock gerado e a extensão do Geyser incluída regista as definições resultantes. Consulte Conversão Bedrock e Extensão do Geyser e entidades personalizadas.

As indicações de conversão Bedrock para objetos também são ficheiros do pacote, e não chamadas à API: assets/<namespace>/rspm_item_bases/ declara os objetos base, assets/<namespace>/rspm_item_java_only/ exclui objetos da conversão Bedrock e assets/<namespace>/rspm_item_particles/ associa partículas a objetos na mão. Consulte Objetos base, Objetos apenas Java e Partículas de objetos na mão.

Notas​

  • Os pacotes registados pela API participam em priorityOrder da mesma forma que as integrações incluídas. Acrescente o nome do seu plugin a priorityOrder em config.yml para controlar a posição na combinação.
  • Se o nome não constar de priorityOrder, o pacote recebe a prioridade mais baixa.
  • O registo deve ocorrer durante onEnable ou a inicialização do seu plugin, antes de o ResourcePackManager concluir a própria inicialização e iniciar a primeira combinação.