Panduan
Cara membuat plugin quest Minecraft
Diperbarui 18 Oktober 2026
Quest memberi pemain alasan untuk bermain: bunuh 20 zombie, tambang 64 besi, bawakan 10 roti untuk villager. Plugin quest terdiri dari tiga hal: objektif yang mendengarkan event game, progres yang disimpan untuk setiap pemain, dan hadiah. Mendefinisikan quest di file config memungkinkanmu menambah quest baru tanpa menyentuh kode.
Ganti quest dan hadiahnya dengan milikmu.
Buat ini dengan CodexeLangkah demi langkah
1.Pilih jenis objektif
Mulai dengan beberapa: membunuh jenis mob tertentu, menghancurkan atau memasang blok, mengumpulkan item, crafting, mencapai suatu tempat, berbicara dengan NPC. Setiap quest dibangun dari jenis-jenis ini.
2.Definisikan quest di file
Setiap quest di
quests.yml: id, nama, deskripsi, objektif beserta jumlahnya, hadiah, dan persyaratan (quest lain dulu, permission, level).3.Lacak progres per pemain
Dengarkan event di balik setiap objektif dan tambahkan ke progres pemain. Simpan di SQLite atau file agar bertahan setelah logout dan restart.
4.Tampilkan progresnya
Menu
/questsdengan quest aktif dan selesai, ditambah pesan, title, atau boss bar saat progres berubah.5.Berikan hadiah
Item, experience, uang lewat Vault, atau perintah console seperti
lp user %player% permission set ...untuk hal lainnya.6.Build dan selesaikan quest di dalam game
Biarkan Codexe mengompilasinya, bergabunglah ke server uji coba, terima sebuah quest, dan selesaikan. Lalu restart dan pastikan progres serta hadiahnya tersimpan.
Objektif dan event di baliknya
| Objektif | Event | Detail yang perlu diputuskan |
|---|---|---|
| Membunuh mob | EntityDeathEvent | Hitung hanya kill oleh pemain, atau juga oleh pet dan panahnya |
| Menghancurkan blok | BlockBreakEvent | Abaikan blok yang dipasang pemain, kalau tidak pemain akan memasang dan menghancurkan blok yang sama |
| Mengumpulkan item | Pemeriksaan inventory atau event pickup | Apakah item diambil saat quest diserahkan |
| Crafting item | CraftItemEvent | Crafting dengan shift-click membuat beberapa sekaligus |
| Mencapai suatu tempat | PlayerMoveEvent | Periksa hanya saat pemain berpindah blok, bukan setiap gerakan |
| Berbicara dengan NPC | PlayerInteractEntityEvent | Entity mana yang menjadi pemberi quest |
Pemberi quest
Pemberi quest paling sederhana adalah perintah atau menu. Untuk karakter di dunia game, villager atau armour stand dengan nama kustom dan tag PersistentDataContainer sudah cukup tanpa plugin lain: plugin mengenalinya saat pemain mengklik kanan. Jika servermu sudah memakai plugin NPC seperti Citizens, sebutkan di permintaan agar plugin terhubung dengannya.
Contoh deskripsi
"Plugin quest Paper 1.21.4 bernama Quests. Jenis objektif: membunuh mob, menghancurkan blok (yang tidak dipasang pemain), mengumpulkan item, dan berbicara dengan villager yang diberi tag sebagai pemberi quest. Quest didefinisikan di quests.yml dengan nama, objektif, quest prasyarat, dan hadiah (item, experience, uang Vault, perintah console). /quests membuka menu dengan quest yang tersedia, aktif, dan selesai. Progres ditampilkan di action bar. Maksimal 3 quest aktif. Quest harian di-reset tengah malam waktu server. Progres disimpan di SQLite."
Quest harian dan yang bisa diulang
- Sebutkan kapan quest di-reset: pada jam tertentu setiap hari, atau 24 jam setelah pemain menyelesaikannya.
- Sebutkan apakah quest harian acak untuk setiap pemain atau sama untuk semua orang.
- Simpan waktu penyelesaian terakhir, bukan flag, agar reset tetap berjalan saat server mati.
Pertanyaan
Bisakah quest memakai PlaceholderAPI?
Bisa. Minta placeholder seperti quest aktif dan progresnya, agar scoreboard dan tab list bisa menampilkannya. Sebutkan PlaceholderAPI di permintaan agar ditambahkan sebagai dependensi.
Bisakah aku menulis quest dengan Skript?
Sistem quest kecil muat di Skript dengan variabel. Banyak jenis objektif, menu, dan progres tersimpan untuk ratusan pemain lebih mudah dijaga tetap cepat dan rapi di plugin.
Bagaimana cara memastikan quest berfungsi?
Mainkan di server uji coba Codexe, dan tambahkan pengujian dengan kata-katamu sendiri, misalnya "pemain biasa menjalankan /quests dan melihat menu terbuka". Pengujian memeriksa pesan, item, dan menu, bukan mob atau blok di dunia.
Buat plugin quest-mu
Prompt ini terbuka dan siap dikirim:
“Plugin quest Paper 1.21.4: jenis objektif membunuh mob, menghancurkan blok yang tidak dipasang pemain, mengumpulkan item, dan berbicara dengan villager bertag; quest di quests.yml dengan objektif, quest prasyarat, dan hadiah (item, XP, uang Vault, perintah console); menu /quests dengan quest tersedia, aktif, dan selesai; progres di action bar; maks. 3 quest aktif; quest harian di-reset tengah malam; progres disimpan di SQLite.”
Buat ini dengan Codexe