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. Bersih. Minecraft. Server (NMS) adalah salah satu paket yang dilindungi ini, karena berisi kode server penting untuk permainan. Kode ini berasal langsung dari pengembang Minecraft, Mojang, dan seharusnya tidak dapat diakses oleh pemain.

Cara Menggunakan NMS di Bukkit

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, tetapi juga berfungsi sebagai penghalang yang mencegah Anda mengubah kode secara langsung.

Mari jelajahi cara menggunakan Bukkit dengan NMS Minecraft.

Sebelum Anda Mulai – Yang Perlu Anda Ketahui Tentang Bukkit

Bukkit adalah API yang memungkinkan Anda membuat dan menggunakan plugin yang mengubah cara Anda mengalami 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. Saat bekerja mirip dengan Bukkit, ia menawarkan kinerja server yang lebih baik.

Jadi, menggunakan Bukkit untuk plugin Anda 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 Plugin Bukkit untuk Minecraft

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

Langkah 1 – Tambahkan Bukkit sebagai Ketergantungan

Di masa lalu, Anda dapat menambahkan Bukkit sebagai dependensi di Minecraft dengan mengunduh file Bukkit.jar dari Repositori Bukkit dan menambahkannya ke jalur kelas proyek Anda. 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-repohttps://hub.spigotmc.org/nexus/content/repositories/snapshots/Bukkit APIorg.bukkitbukkit{VERSI: KAPAN}asalkan

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 menggunakan plugin saat Anda dalam game. Pikirkan kelas utama ini sebagai pintu yang dapat dilalui Bukkit untuk memuat dan memanipulasi plugin. Sebagian besar memberi kelas utama plugin mereka nama yang sama dengan plugin itu sendiri, membuatnya lebih mudah untuk merujuk ke kelas utama saat membuat kode.

Kode contoh berikut dari Tutorial RIP menawarkan contoh kelas utama untuk plugin bernama "MyPlugin:"

paket com.contoh.myplugin; //{$TopLevelDomain}.{$Domain}.{$PluginName}; impor org.bukkit.plugin.java. JavaPlugin; public final class MyPlugin extends JavaPlugin { @Override public void onEnable() { //Dipanggil saat plugin diaktifkan getLogger().info("onEnable telah dipanggil!"); } @Override 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 terlebih dahulu menyimpan instance dari kelas utama yang Anda buat menggunakan Bukkit agar kelas lain dapat mengaksesnya. Sekali lagi, contoh kode berikut berasal dari Tutorial RIP dan menggunakan nama kelas “MyPlugin”:

kelas publik MyPlugin memperluas JavaPlugin { instance MyPlugin statis pribadi; //Variabel akhir yang efektif berisi instance plugin Anda public MyPlugin(){ if (MyPlugin.instance != null) { //Pemeriksaan yang tidak perlu tetapi memastikan plugin Anda hanya diinisialisasi sekali. throw new Error("Plugin sudah diinisialisasi!"); } MyPlugin.instance = ini; //Konstruktor plugin hanya boleh dipanggil satu kali } public static MyPlugin getInstance(){ //Dapatkan instance pengembalian instance plugin Anda; } // kode Anda yang lain... }

Setelah Anda memiliki instance, Anda dapat mengakses kelas utama Anda (dibuat melalui Bukkit) menggunakan perintah “getInstance()”. Berikut ini contohnya menggunakan kelas utama "MyPlugin" Tutorial RIP:

kelas publik MyOtherClass { public void doSomethingWithMainClass(){ MyPlugin.getInstance().getLogger().info("Kami baru saja menggunakan MyPlugin"); } }

Langkah 3 – Buat file plugin.yml Anda

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 diperlukan untuk memuat plugin Anda ke Minecraft, yang menyebabkan plugin gagal dimuat dan game kemungkinan akan mogok.

File ini harus berisi detail berikut:

  • Nama – Ini adalah nama yang Anda berikan untuk plugin Anda (yaitu, "MyPlugin" Tutorial RIP) dan itu akan ditampilkan dalam pesan log dan daftar plugin Anda.
  • Versi: kapan – Gunakan bidang ini untuk menunjukkan riwayat versi plugin, dimulai dengan 1.0.0 dan naik saat Anda mengubah atau mengedit plugin.
  • Utama – Berisi nama kelas utama plugin, yang memperluas “JavaPlugin”, memungkinkan Bukkit untuk masuk ke plugin. Dalam contoh Tutorial RIP, nama ini adalah “package com.example.myplugin,” yang dapat Anda lihat di kode kelas utama di atas.
  • Keterangan – Deskripsi dasar tentang apa yang dilakukan plugin Anda.
  • Pengarang – 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 dengan bagian "Penulis".
  • Situs web – Jika Anda memiliki situs web untuk dipasang, atau ingin menautkan orang ke halaman plugin atau repositori GitHub, Anda dapat memasukkan URL di sini.
  • Versi API – Masukkan versi Bukkit API 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 itu adalah versi lawas yang dicetak di konsol Anda saat dimuat.

Berikut adalah contoh file plugin.yml berdasarkan konvensi penamaan yang digunakan dalam kode Tutorial RIP yang digunakan dalam artikel ini:

nama: 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, membuat 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 pindah 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.