API ResourcePackManager
La référence Java générée permet de rechercher les classes, méthodes et signatures, avec la version et le commit source indiqués pour chaque module.
ResourcePackManager expose une API Java qui permet à d'autres plugins d'enregistrer leurs packs de ressources pour la fusion au moment de l'exécution.
Compilez avec com.magmaguy:ResourcePackManager:2.4.6 en portée provided ou compileOnly, en accord avec le plugin installé. Il s'agit de la version Maven publique vérifiée pour cette mise à jour ; le code source actuel est en 2.4.6. L'index de l'API Java contient le dépôt et les exemples de dépendances. Déclarez depend: [ResourcePackManager] pour une intégration obligatoire. Cette API Bukkit est destinée aux backends ; un plugin de proxy ne peut pas l'utiliser pour enregistrer des packs sur un backend distant.
Accéder à l'API
La classe API est com.magmaguy.resourcepackmanager.api.ResourcePackManagerAPI. Toutes les méthodes sont statiques.
Exemple de pack local
Ce plugin enregistre un ZIP existant à l'emplacement plugins/ExamplePack/pack.zip lorsque son descripteur le nomme ExamplePack. Placez le ZIP à cet endroit avant de démarrer le serveur.
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, "");
}
}
L'enregistrement retourne void et remplace toute inscription précédente sous le même nom de plugin. Il mémorise une contribution, sans immédiatement fusionner, héberger ou envoyer de pack. Si la fusion initiale a déjà eu lieu, demandez un rechargement une fois la contribution prête, ou faites exécuter /rspm reload par l'administrateur. Évitez de déclencher des rechargements répétés pour chaque joueur ou changement de fichier.
Appelez l'enregistrement depuis le thread du serveur et fournissez exactement une source. La méthode conserve les paramètres sans vérifier que le pack peut être téléchargé ou fusionné. Vérifiez le résultat de la fusion et les journaux du serveur pour confirmer sa distribution. Cette façade ne fournit aucune méthode publique de désenregistrement.
Enregistrer un pack de ressources
Il existe trois méthodes d'enregistrement selon que votre pack est local, distant ou l'un ou l'autre.
registerResourcePack
ResourcePackManagerAPI.registerResourcePack(
String pluginName,
String localPath,
String url,
boolean encrypts,
boolean distributes,
boolean zips,
String reloadCommand
);
Enregistre un pack de ressources qui peut provenir d'un chemin local ou d'une URL distante. Exactement l'un des paramètres localPath ou url doit être non-null.
registerLocalResourcePack
ResourcePackManagerAPI.registerLocalResourcePack(
String pluginName,
String localPath,
boolean encrypts,
boolean distributes,
boolean zips,
String reloadCommand
);
Enregistre un pack de ressources depuis un chemin local relatif au répertoire plugins.
registerRemoteResourcePack
ResourcePackManagerAPI.registerRemoteResourcePack(
String pluginName,
String url,
boolean encrypts,
boolean distributes,
boolean zips,
String reloadCommand
);
Enregistre un pack de ressources qui sera téléchargé depuis l'URL fournie.
Paramètres
| Paramètre | Description |
|---|---|
pluginName | Le nom de votre plugin exactement tel qu'il apparaît dans la liste des plugins. Sensible à la casse. |
localPath | Chemin relatif depuis le répertoire plugins vers votre fichier ou dossier de pack de ressources. |
url | URL depuis laquelle télécharger le pack de ressources. |
encrypts | Réservé pour une utilisation future. Ne fait rien actuellement. |
distributes | Réservé pour une utilisation future. Ne fait rien actuellement. |
zips | Indique si le pack de ressources est déjà zippé. Si false, ResourcePackManager le zippera avant la fusion. |
reloadCommand | La commande de rechargement de votre plugin. Réservé pour une utilisation future. |
Déclencher un rechargement
ResourcePackManagerAPI.reloadResourcePack();
Recharge ResourcePackManager, qui refusionne tous les packs enregistrés et réhéberge le résultat si l'hébergement automatique est activé.
Ce que cette API ne couvre pas
Les entités Bedrock personnalisées ne s'enregistrent pas via cette classe. Un plugin les apporte en livrant des ressources d'entités Bedrock natives sous assets/<namespace>/rspm_bedrock_pack/ dans son pack Java ; RSPM les transporte dans le pack Bedrock généré et l'extension Geyser embarquée enregistre les définitions qui en résultent. Voir Conversion Bedrock et Extension Geyser et entités personnalisées.
Les indications de conversion Bedrock pour les objets sont elles aussi des fichiers du pack plutôt que des appels d'API : assets/<namespace>/rspm_item_bases/ déclare les objets de base, assets/<namespace>/rspm_item_java_only/ exclut des objets de la conversion Bedrock, et assets/<namespace>/rspm_item_particles/ associe des particules aux objets tenus. Voir Objets de base, Objets réservés à Java et Particules des objets tenus.
Notes
- Les packs enregistrés via l'API participent à
priorityOrderde la même manière que les intégrations internes. Ajoutez le nom de votre plugin àpriorityOrderdansconfig.ymlpour contrôler sa position dans l'ordre de fusion. - Si le nom de votre plugin n'est pas listé dans
priorityOrder, votre pack reçoit la priorité la plus basse. - L'enregistrement doit se faire durant le
onEnableou l'initialisation de votre plugin, avant que ResourcePackManager ne termine sa propre initialisation et ne déclenche la première fusion.