Class Plugin utama
Catatan
The instructions within the Sponge Documentation assume that you have prior knowledge of Java. SpongeAPI provides the foundation for you to begin creating plugins for Minecraft servers powered by Sponge; however, it is up to you to be creative and make your code work! There are several free Java courses online if you have had little experience with Java.
Memulai Class anda
The next step after adding SpongeAPI as a dependency is creating a new class. The class can be named however you
like, and can be in any package that does not begin with org.spongepowered
. By convention, class names should be
in title case.
Oracle menyarankan <https://docs.oracle.com/javase/tutorial/java/package/namingpkgs.html>`_ untuk menggunakan domain anda sebagai nama paket, jika anda memiliki domain. Akan tetapi, dalam event yang anda tidak memiliki domain, sebuah latihan umum adalah dengan menggunakan sebuah alamat email (seperti com.gmail.username.project
) atau sebuah gudang penyimpanan open-source (seperti io.github.username.project
).
After creating your main class, the Plugin annotation must be affixed to it. This annotation allows Sponge to easily find your main plugin class when your plugin is loaded. An example usage is illustrated below, more detailed usage is explained on Plugin Metadata.
package io.github.username.project;
import org.spongepowered.api.plugin.Plugin;
@Plugin(id = "exampleplugin", name = "Example Plugin", version = "1.0", description = "Example")
public class ExamplePlugin {
}
Catatan
Mengacu pada Pengenal Plugin jika anda belum memilih ID plugin.
Memeriksa Plugin Anda
Plugins dimuat sebelum permainan dan dunia. Hal ini meninggalkan sebuah jangka waktu yang spesifik ketika plugin anda seharusnya mulai berinteraksi dengan permainan, seperti mendaftarkan perintah atau event.
Plugin anda dapat mendengarkan pada events khusus, yang dinamakan state events, untuk diberitahukan tentang perubahan didalam wilayah permainan. Dalam contoh dibawah ini, onServerStart()
dipanggil ketika GameStartedServerEvent terjadi; ambil catatan kecil dari catatan Listener sebelum method nya.
The example below will log a message upon starting the server. If your plugin is correctly loaded, you should see this message as part of the server's initialization output.
import org.spongepowered.api.plugin.Plugin;
import org.spongepowered.api.event.Listener;
import org.spongepowered.api.event.game.state.GameStartedServerEvent;
// Imports for logger
import com.google.inject.Inject;
import org.slf4j.Logger;
@Plugin(id = "exampleplugin", name = "Example Plugin", version = "1.0", description = "Example")
public class ExamplePlugin {
@Inject
private Logger logger;
@Listener
public void onServerStart(GameStartedServerEvent event) {
logger.info("Successfully running ExamplePlugin!!!");
}
}
Tip
Dokumentasi Sponge menyediakan sebuah petunjuk dengan informasi lanjutan pada events (lihat Acara). Biasanya, sebagai tambahan untuk menaruh method event-handler dengan @Listener
, anda juga harus mendaftarkan obyek anda dengan event bus Sponge. Akan tetapi, class plugin utama anda sedang didaftarkan secara otomatis.
Peristiwa Negara
Hal ini juga dapat diperlukan untuk mendengarkan bagian event yang lain, terutama GameStoppingServerEvent
. Ada dua kategori dari bagian event:
Initialization: Event ini terjadi ketika Sponge dan plugins sedang dimuat.
Running: Event ini terjadi ketika permainan dan dunia sedang dimuat.
Untuk informasi mengenai kapan setiap lokasi event terjadi, lihatlah plugin lifecycle documentation.