La API de Activos
El AssetManager permite a los desarrolladores recuperar recursos de un complemento JAR.
Un activo de un complemento reside en un directorio denominado assets/myplugin/
donde myplugin
es la identificación del complemento.
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;
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 Activos
s 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").copyToFile(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 Class
es y ClassLoader
s. 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.