Aset API
AssetManager mengizinkan pengembang untuk mendapatkan resources dari plugin JAR.
A plugin's assets reside in a directory named assets/myplugin/
where myplugin
is the plugin ID.
Saat sesudah dikonfigurasi dengan benar anda dapat mengambil sumber daya untuk plugin (atau apapun) anda menggunakan kode berikut:
import org.spongepowered.api.asset.Asset;
Asset asset = plugin.getAsset("myfile.txt").get();
Jika tidak, anda dapat mengambil aset melalui AssetManager
class:
import org.spongepowered.api.Sponge;
PluginContainer plugin = ...;
Asset asset = Sponge.getAssetManager().getAsset(plugin, "myfile.txt").get();
Tip
AssetManager
dapat digunakan untuk mengambil aset yang telah didefinisikan dalam implementasi Sponge itu sendiri hanya dengan menghilangkan parameter plugin.
Catatan
Contoh di atas mengasumsikan bahwa myfile.txt
ada sebagai Asset. Jika tidak, maka getAsset()
akan mengembalikan nilai Optional#empty()
.
Bekerja dengan aset
Kelas Asset
pada dasarnya hanya pelupuk di sekitar URL
dengan beberapa operasi I/O yang dibangun. use case dari Assets
s pada dasarnya tak terbatas tetapi satu use case yang umum adalah untuk menghasilkan berkas konfigurasi bawaan jika konfigurasi plugin anda tidak ditemukan. Anda dapat menggapai ini dengan menggunakan PluginContainer dengan kode berikut:
import java.nio.file.Files;
if (Files.notExists(configPath)) {
plugin.getAsset("default.conf").ifPresent(asset -> asset.copyToDirectory(configPath));
}
Catatan
Pengembang yang datang dari Bukkit atau beberapa dengan latar belakang Java mungkin lazim dengan metode getResource
dan getResourceAsStream
dalam Class
es dan ClassLoader
s. Metode ini harus dihindari dalam lingkungan SpongeAPI untuk membantu AssetManager
memberikan cara yang lebih bertumpu untuk mengambil sumber daya yang tidak hanya dalam plugin yang anda miliki, tetapi plugin yang lain juga.