Cara Menggunakan NMS di Bukkit

Meskipun Minecraft terbuka untuk berbagai plugin (yang dapat Anda gunakan untuk mengubah pengalaman bermain Anda), beberapa elemen permainan terlindung dari manipulasi plugin. Net.Minecraft.Server (NMS) adalah salah satu paket yang dilindungi ini, karena berisi kode server penting untuk game tersebut. Kode ini berasal langsung dari pengembang Minecraft, Mojang, dan seharusnya tidak dapat diakses oleh pemain.

Dengan Bukkit, pemain dapat membuat lapisan abstraksi di sekitar kode NMS. Hal ini memungkinkan mereka mengembangkan plug-in yang berinteraksi dengan kode server tanpa membuat perubahan langsung pada basis kode yang penting untuk bermain game. Anggap saja seperti jendela yang memungkinkan Anda melihat kode yang ingin Anda gunakan di plugin Anda, tetapi juga bertindak sebagai penghalang yang mencegah Anda mengubah kode secara langsung.

Mari jelajahi cara menggunakan Bukkit dengan NMS Minecraft.

Sebelum Anda Mulai – Apa Anda Harus Tahu Tentang Bukkit

Bukkit adalah API yang memungkinkan Anda membuat dan menggunakan plugin yang mengubah cara Anda merasakan aspek multipemain Minecraft. Setidaknya begitu. Versi terakhir Bukkit keluar pada tahun 2016, dan sejak itu dihentikan untuk memberi jalan bagi API yang berbeda, bernama Spigot. Meskipun bekerja mirip dengan Bukkit, ia menawarkan kinerja server yang lebih baik.

Jadi, menggunakan Bukkit untuk plugin mengharuskan Anda memainkan Minecraft versi lama dan menerima kenyataan bahwa Bukkit tidak sebagus API penggantinya. Dengan asumsi Anda senang menerima pengorbanan itu, inilah satu-satunya hal yang Anda butuhkan:
Java Development Kit (JDK) 7 atau lebih tinggi, dengan sebagian besar merekomendasikan JDK 8.
Dengan itu, Anda siap membuat beberapa plugin.

Cara Membuat Bukkit Plugin untuk Minecraft

Sebelum Anda dapat mulai menggunakan Bukkit untuk mengakses NMS Minecraft, Anda perlu menambahkan API sebagai dependensi, menyetel kelas utama yang memungkinkan Bukkit berinteraksi dengan plugin yang Anda buat, dan memberikan Bukkit informasi yang diperlukan untuk memuat plugin Anda ke dalam permainan. Setiap langkah memerlukan pengkodean, dengan contoh berikut berasal dari Tutorial RIP.

Langkah 1 – Tambahkan Bukkit sebagai Ketergantungan

Di masa lalu, Anda dapat menambahkan Bukkit sebagai ketergantungan di Minecraft dengan mengunduh file Bukkit.jar dari Repositori Bukkit dan menambahkannya ke classpath proyek. Opsi itu tidak tersedia lagi karena Repositori tidak lagi dapat diakses.

Untungnya, ada metode alternatif yang menggunakan file pom.xml game Anda. Buka file dan tambahkan baris berikut:

spigot-repo
https://hub.spigotmc.org/nexus/content/repositories/snapshots/

org.bukkit
bukkit
{VERSION}
disediakan

Langkah 2 – Buat Kelas Utama Plugin Anda

Plugin Anda harus dapat membuat satu instance dari kelas utamanya, yang digunakan untuk memperluas “JavaPlugin” sehingga dapat mengenali dan memungkinkan Anda untuk menggunakan plugin saat Anda dalam game. Pikirkan kelas utama ini sebagai pintu yang dapat dilalui Bukkit untuk memuat dan memanipulasi plugin. Sebagian besar memberikan kelas utama plugin mereka dengan nama yang sama dengan plugin itu sendiri, membuatnya lebih mudah untuk merujuk ke kelas utama saat pengkodean. .example.myplugin; //{$TopLevelDomain}.{$Domain}.{$PluginName};
import org.bukkit.plugin.java.JavaPlugin;
kelas akhir publik MyPlugin memperluas JavaPlugin {
@Mengesampingkan
public void onEnable() {
//Dipanggil saat plugin diaktifkan
getLogger().info(“onEnable telah dipanggil!”);
}
@Mengesampingkan
public void onDisable() {
//Dipanggil saat plugin dinonaktifkan
getLogger().info(“onDisable telah dipanggil!”);
}
}

Mengakses Plugin Anda dari Kelas Lain
Anda mungkin ingin mengakses plugin Anda melalui kelas yang berbeda dari kelas utama yang Anda buat untuknya, yang dapat berguna untuk mengakses beberapa plugin dalam satu game Minecraft.

Untuk melakukan itu, Anda harus menyimpan instance terlebih dahulu dari kelas utama yang Anda buat menggunakan Bukkit sehingga kelas lain dapat mengaksesnya. Sekali lagi, kode contoh berikut berasal dari Tutorial RIP dan menggunakan nama kelas “MyPlugin”:
public class MyPlugin extends JavaPlugin {
contoh MyPlugin statis pribadi; // Secara efektif variabel final yang berisi instance plugin Anda
MyPlugin publik(){
if(MyPlugin.instance != null) { //Pemeriksaan tidak perlu tetapi pastikan plugin Anda hanya diinisialisasi sekali.
throw new Error(“Plugin sudah diinisialisasi!”);
}
MyPlugin.instance = ini; // Konstruktor plugin hanya boleh dipanggil sekali
}
public static MyPlugin getInstance(){ //Dapatkan instance plugin Anda
kembali contoh;
}
// kode Anda yang lain…
}

Setelah Anda memiliki instance, Anda dapat mengakses kelas utama Anda (dibuat melalui Bukkit) menggunakan perintah “getInstance()”. Berikut adalah contohnya menggunakan kelas utama “MyPlugin” Tutorial RIP:
public class MyOtherClass {
public void doSomethingWithMainClass(){
MyPlugin.getInstance().getLogger().info(“Kami baru saja menggunakan MyPlugin”);
}
}

Langkah 3 – Buat file plugin.yml Anda

A file plugin.yml berisi informasi penting tentang plugin Anda, artinya berfungsi sebagai file konfigurasi dasar plugin. Tanpa file ini, Bukkit tidak akan memiliki informasi yang dibutuhkan untuk memuat plugin Anda ke Minecraft, yang menyebabkan plugin gagal dimuat dan game kemungkinan macet. diberikan ke plugin Anda (yaitu, “MyPlugin” Tutorial RIP) dan itu akan ditampilkan dalam pesan log dan daftar plugin Anda. Versi – Gunakan bidang ini untuk menunjukkan riwayat versi plugin, dimulai dengan 1.0.0 dan naik saat Anda mengubah atau edit plugin.Main – Berisi nama kelas utama plugin, yang memperluas “JavaPlugin”, memungkinkan Bukkit untuk masuk ke plugin. Dalam contoh Tutorial RIP, nama ini akan menjadi “package com.example.myplugin,” yang dapat Anda lihat di kode kelas utama di atas.Deskripsi – Deskripsi dasar tentang apa yang dilakukan plugin Anda.Author – Anda dapat memiliki satu penulis atau beberapa penulis, dengan yang terakhir dilambangkan dengan tanda kurung siku dan koma sebagai berikut – [Penulis1, Penulis2, Penulis3]. Kontributor – Anda akan menggunakan bagian ini untuk mencatat siapa saja yang berkontribusi pada plugin Anda, dengan pemformatan yang sama seperti untuk Bagian “Penulis”.Situs web – Jika Anda memiliki situs web untuk dihubungkan, atau ingin menautkan orang ke halaman plugin atau repositori GitHub, Anda dapat memasukkan URL di sini.Versi API – Masukkan versi API Bukkit yang Anda gunakan di sini . Jika Anda tidak memasukkan versi API, Minecraft akan menganggap itu memuat plugin lawas. Plugin mungkin masih berfungsi, meskipun Anda akan melihat peringatan bahwa plugin ini adalah versi lawas yang dicetak di konsol Anda saat memuat.
Berikut ini adalah contoh file plugin.yml berdasarkan konvensi penamaan yang digunakan dalam kode Tutorial RIP yang digunakan di artikel ini:
name: MyPlugin
versi: 1.0.0
utama: paket com.example.myplugin
deskripsi: Plugin uji untuk Minecraft
penulis: Tutorial RIP
situs web: https://riptutorial.com/bukkit
api-versi: 1.17

Apakah Bukkit Tepat untuk Mengakses dan Menggunakan NMS?

Dengan itu, Anda telah membuat ketergantungan Bukkit, membangun kelas utama untuk berfungsi sebagai pintu Bukkit ke dalam plugin, dan memiliki file plugin.yml yang dapat digunakan Bukkit untuk melihat apa yang dilakukan plugin . Namun, Anda mungkin tidak ingin melakukannya, karena Bukkit sudah ketinggalan zaman sehingga Anda harus menjalankan Minecraft versi lama untuk menggunakannya secara efektif. Sebagian besar sudah beralih ke Sprigot, yang mencerminkan sebagian besar dari apa yang dilakukan Bukkit sambil menawarkan kinerja yang lebih baik.

Jika Anda masih ingin menggunakan Bukkit untuk mengakses plugin, mengapa Anda memilihnya daripada API yang lebih modern? Jenis plugin apa yang Anda gunakan untuk meningkatkan pengalaman Minecraft Anda? Ceritakan semuanya di bagian komentar di bawah.

Scroll to Top