De Bronnen API
De AssetManager stelt ontwikkelaars in staat om bronnen van een plugin JAR op te halen.
A plugin’s assets reside in a directory named assets/myplugin/
where myplugin
is the plugin ID.
Eenmaal correct geconfigureerd kunt u een bron ophalen voor uw (of een andere) plugin met de volgende code:
import org.spongepowered.api.asset.Asset;
Asset asset = plugin.getAsset("myfile.txt").get();
Als alternatief kunt u ook bronnen ophalen via de AssetManager
klasse:
import org.spongepowered.api.Sponge;
PluginContainer plugin = ...;
Asset asset = Sponge.getAssetManager().getAsset(plugin, "myfile.txt").get();
Tip
De AssetManager
kan ook gebruikt worden om bronnen op te halen die in de Sponge implementatie zelf gedefinieerd zijn, dit kan door het weglaten van de plugin-parameter.
Notitie
De bovenstaande voorbeelden gaan ervan uit dat myfile.txt
bestaat als een Asset. Als dit niet het geval is geeft getAsset()
een Optional#empty()
terug.
Werken met Bronnen
The Asset
class is essentially just a wrapper around a URL
with some common I/O operations built in. The use
cases of Assets
s is essentially unbounded but one common use case is to generate a default configuration file if
your plugin’s configuration file is not found. You can achieve this using a PluginContainer with the
following code:
import java.nio.file.Files;
if (Files.notExists(configPath)) {
plugin.getAsset("default.conf").ifPresent(asset -> asset.copyToDirectory(configPath));
}
Notitie
Developers coming from Bukkit or some other Java background might be familiar with the getResource
and
getResourceAsStream
methods in Class
es and ClassLoader
s. These methods should generally be avoided
within the SpongeAPI environment in favor of the AssetManager
in order to provide a more confluent way of
retrieving resources not only within your own plugin, but for other plugins as well.