La API de Activos

El AssetManager permite a los desarrolladores recuperar recursos de un complemento JAR.

A plugin’s assets reside in a directory named assets/myplugin/ where myplugin is the plugin ID.

Una vez configurado apropiadamente, puede recuperar un recurso para su (o cualquier) complemento utilizando el siguiente código:

import org.spongepowered.api.asset.Asset;

Asset asset = plugin.getAsset("myfile.txt").get();

Alternativamente, puede recuperar activos mediante la clase AssetManager:

import org.spongepowered.api.Sponge;

PluginContainer plugin = ...;

Asset asset = Sponge.getAssetManager().getAsset(plugin, "myfile.txt").get();

Truco

El AssetManager puede ser utilizado para recuperar activos definidos en la implementación de Sponge simplemente omitiendo el parámetro del plugin.

Nota

Los ejemplos anteriores suponen que existe myfile.txt como un :javadoc:`Activo`. Si no lo hace, entonces getAsset() devolverá Optional#empty().

Trabajar con Activos

La clase Activo es esencialmente solo una envoltura alrededor de un URL con algunas operaciones comunes I/O integradas. Los casos de uso de Activoss son esencialmente ilimitado pero un caso de uso común es para generar un archivo de configuración predeterminado si su achivo de configuración de plugin no es encontrado. Puede conseguir esto utilizando PluginContainer con el siguiente código:

import java.nio.file.Files;

if (Files.notExists(configPath)) {
    plugin.getAsset("default.conf").ifPresent(asset -> asset.copyToDirectory(configPath));
}

Nota

Los desarrolladores que provengan de Bukkit o de algún otro entorno de Java podrían estar familiarizados con los métodos getResource y getResourceAsStream en Classes y ClassLoaders. Estos métodos deben ser evitados generalmente dentro del ambiente de SpongeAPI a favor del ``AssetManager` con el fin de proporcionar una manera más confluente de recuperar recursos no solo dentro de su propio complemento, sino dentro de otros plugins también.