Class Plugin utama

Catatan

Petunjuk-petunjuk dalam Dokumentasi Sponge menganggap bahwa anda memiliki pengetahuan yang cukup tentang Java sebelumnya. API Sponge menyediakan dasar yang kuat untuk anda memulai pembuatan plugin untuk server Minecraft yang dikuasai oleh Sponge; akan tetapi, hal ini terserah kepada diri anda untuk menjadi kreatif dan membuat kode anda bekerja! Ada beberapa kursus onilne gratis Java, jika anda memiliki sedikit pengalaman dengan Java.

Memulai Class anda

Langkah berikutnya setelah menambahkan API Sponge sebagai ruang tambahan adalah membuat class baru. Class ini dapat dinamakan sesuka hati anda, dan dapat di dimasukkan kedalam paket manapun yang tidak dimulai dengan org.spongepowered. Dengan syarat, nama class harus didalam kotak judul.

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).

Setelah membuat class utama anda, catatan Plugin harus dibubuhkan kedalmnya. Catatan ini mengizinkan Sponge untuk dengan mudah menemukan class plugin utama anda ketika plugin anda dimuat. Sebuah contoh penggunaan tergambar dibawah ini.

package io.github.username.project;

import org.spongepowered.api.plugin.Plugin;

@Plugin(id = "exampleplugin", name = "Example Plugin", version = "1.0")
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.

import org.spongepowered.api.event.Listener;
import org.spongepowered.api.event.game.state.GameStartedServerEvent;

@Plugin(id = "exampleplugin", name = "Example Plugin", version = "1.0")
public class ExamplePlugin {
    @Listener
    public void onServerStart(GameStartedServerEvent event) {
        // Hey! The server has started!
        // Try instantiating your logger in here.
        // (There's a guide for that)
    }
}

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:

Untuk informasi mengenai kapan setiap lokasi event terjadi, lihatlah plugin lifecycle documentation.