アセット API
AssetManager で開発者はプラグインJARからリソースを取得することができます。
プラグインのアセットは``assets/myplugin/``(``myplugin``はプラグインID)と言うディレクトリ内に属します。
正常に設定されている場合、下記のコードを使用することであなたの(もしくは他の製作者の) プラグインからリソースを取得することができます。
import org.spongepowered.api.asset.Asset;
Asset asset = plugin.getAsset("myfile.txt").get();
もしくは、``AssetManager``クラスを通じてアセットを取得することができます。
import org.spongepowered.api.Sponge;
Asset asset = Sponge.getAssetManager().getAsset(plugin, "myfile.txt").get();
ちなみに
The AssetManager can be used to retrieve assets defined in the Sponge implementation itself simply by omitting
the plugin parameter.
注釈
The examples above assume that myfile.txt exists as an Asset. If it does not, then getAsset()
will return Optional#empty().
Working with Assets
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);
}
注釈
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.