De Bronnen API

De AssetManager stelt ontwikkelaars in staat om bronnen van een plugin JAR op te halen.

De bronnen van een plugin bevinden zich in een map genaamd assets/mijnPlugin/ waar mijnPlugin het ID van de plugin is.

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;

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 Assetss 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").copyToFile(configPath);
}

Notitie

Developers coming from Bukkit or some other Java background might be familiar with the getResource and getResourceAsStream methods in Classes and ClassLoaders. 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.