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.
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âmetro | Descrição |
|---|---|
pluginName | Nome exato do plugin na lista de plugins. Distingue maiúsculas de minúsculas. |
localPath | Caminho relativo à pasta plugins até ao ficheiro ou pasta do pacote. |
url | URL de transferência do pacote. |
encrypts | Reservado para utilização futura. Atualmente não tem efeito. |
distributes | Reservado para utilização futura. Atualmente não tem efeito. |
zips | Indica se o pacote já está comprimido em ZIP. Se for false, o ResourcePackManager comprime-o antes de combinar. |
reloadCommand | Comando 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
priorityOrderda mesma forma que as integrações incluídas. Acrescente o nome do seu plugin apriorityOrderemconfig.ymlpara 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
onEnableou a inicialização do seu plugin, antes de o ResourcePackManager concluir a própria inicialização e iniciar a primeira combinação.