Οδηγός

Πώς να φτιάξεις ένα plugin με μενού GUI για Minecraft

Ενημερώθηκε 18 Οκτωβρίου 2026

Τα μενού ενός server (warps, shops, kits, ρυθμίσεις) είναι inventories σεντουκιού που ανοίγει και ελέγχει το plugin. Κάθε slot έχει ένα αντικείμενο που λειτουργεί ως κουμπί. Φαίνονται απλά, αλλά ένα μενού που δεν ακυρώνει κάθε είδος κλικ αφήνει τους παίκτες να πάρουν τα κουμπιά μαζί τους. Ο οδηγός εξηγεί πώς λειτουργούν τα μενού και πώς να φτιάξεις και να δοκιμάσεις ένα.

Ξεκίνα από αυτό το παράδειγμα.

Φτιάξ' το με το Codexe

Βήμα βήμα

  1. 1.Σχεδίασε πρόχειρα το μενού

    Ένα μενού-σεντούκι έχει 1 έως 6 σειρές των 9 slots (9 έως 54). Γράψε ποιο αντικείμενο μπαίνει σε ποιο slot, τι κάνει κάθε κλικ και ποια slots είναι απλώς διακόσμηση, όπως τα τζάμια.

  2. 2.Δημιούργησε το inventory με holder

    Άνοιξέ το με Bukkit.createInventory(holder, size, title), χρησιμοποιώντας τη δική σου κλάση InventoryHolder. Από τον holder το plugin καταλαβαίνει ότι ένα κλικ έγινε στο δικό του μενού και όχι σε ένα κανονικό σεντούκι.

  3. 3.Χειρίσου τα κλικ

    Στο InventoryClickEvent, έλεγξε τον holder, ακύρωσε το event και μετά εκτέλεσε την ενέργεια εκείνου του slot. Κλείσε ή ανανέωσε το μενού μετά την ενέργεια.

  4. 4.Μπλόκαρε κάθε άλλο τρόπο μετακίνησης αντικειμένων

    Ακύρωσε και το InventoryDragEvent και χειρίσου τα shift-click, τα πλήκτρα αριθμών και τα κλικ στο inventory του ίδιου του παίκτη όσο είναι ανοιχτό το μενού.

  5. 5.Πρόσθεσε σελίδες αν η λίστα είναι μεγάλη

    Για warps ή αντικείμενα shop που δεν χωράνε, κράτα την κάτω σειρά για τα κουμπιά προηγούμενο, επόμενο και κλείσιμο.

  6. 6.Άνοιξέ το από μια εντολή

    Για παράδειγμα /warps, ή από ένα αντικείμενο ή NPC. Δώσε στην εντολή ένα permission αν το μενού δεν είναι για όλους.

  7. 7.Κάνε build και πάτα όλα τα κουμπιά

    Άφησε το Codexe να κάνει compile το plugin, μπες στον δοκιμαστικό server και πάτα κάθε κουμπί. Οι δοκιμαστικοί παίκτες μπορούν επίσης να ανοίξουν το μενού και να κάνουν κλικ στα slots για σένα.

Οι κανόνες που κρατούν ένα μενού ασφαλές

  • Αναγνώριζε το μενού από τον holder του, ποτέ από τον τίτλο: τον τίτλο μπορεί να τον αντιγράψει οποιοδήποτε μετονομασμένο σεντούκι.
  • Ακύρωσε το κλικ πριν κάνεις οτιδήποτε άλλο, ώστε ένα σφάλμα στην ενέργεια να μην αφήσει ποτέ το αντικείμενο στον κέρσορα του παίκτη.
  • Ακύρωσε τα drags και τα shift-click από το inventory του παίκτη, αλλιώς μπορούν να σπρωχτούν αντικείμενα μέσα στο μενού.
  • Μην εμπιστεύεσαι το αντικείμενο στο slot: βρες την ενέργεια από τον αριθμό του slot ή από ένα tag στο αντικείμενο.
  • Τρέχε τις αργές εργασίες (αναγνώσεις από βάση, web requests) εκτός main thread και ενημέρωνε το μενού όταν τελειώσουν.

Μενού από το config

Οι ιδιοκτήτες servers θέλουν να αλλάζουν τα μενού χωρίς νέο build. Ζήτα κάθε μενού να ορίζεται σε ένα αρχείο config, με το μέγεθος, τον τίτλο και, για κάθε κουμπί, το slot, το υλικό, το όνομα, το lore και την ενέργεια:

ΚλειδίΠαράδειγμαΤι κάνει
size27Αριθμός slots, πολλαπλάσιο του 9
slot13Πού μπαίνει το κουμπί, μετρώντας από το 0
materialENDER_PEARLΤο αντικείμενο που εμφανίζεται
actionwarp:spawnΤι κάνει ένα κλικ: ένα warp, μια εντολή, ένα άλλο μενού

Παράδειγμα περιγραφής

«Ένα plugin για Paper 1.21.4 με το όνομα WarpMenu. Το /warps ανοίγει ένα μενού 6 σειρών με ένα κουμπί για κάθε warp, 45 ανά σελίδα, με κουμπιά προηγούμενο, επόμενο και κλείσιμο στην κάτω σειρά. Οι διαχειριστές προσθέτουν warps με /setwarp <name> <material> και τα αφαιρούν με /delwarp. Το κλικ σε ένα warp κάνει teleport μετά από αναμονή 3 δευτερολέπτων που ακυρώνεται αν ο παίκτης κινηθεί. Οι παίκτες δεν μπορούν να πάρουν ή να μετακινήσουν κανένα αντικείμενο στο μενού. Warps αποθηκευμένα στο warps.yml, τίτλος μενού, ονόματα κουμπιών και μηνύματα στο config.yml.»

Δοκιμή μενού με δοκιμαστικούς παίκτες

Οι δοκιμαστικοί παίκτες του Codexe μπορούν να ανοίξουν ένα μενού και να κάνουν κλικ σε ένα slot, και μετά να ελέγξουν ότι άνοιξε ένα μενού, εμφανίστηκε ένα μήνυμα ή δόθηκε ένα αντικείμενο. Πρόσθεσε μια δοκιμή με δικά σου λόγια, όπως «ένας κανονικός παίκτης τρέχει /warps, κάνει κλικ στο slot 0 και βλέπει το μήνυμα του teleport», και θα ξανατρέχει κάθε φορά που το Codexe παραδίδει μια αλλαγή.

Ερωτήσεις

Λειτουργεί αυτό στην 1.8;

Τα μενού-σεντούκια υπάρχουν σε κάθε έκδοση από την 1.8. Το API διαφέρει σε λεπτομέρειες (ονόματα υλικών, τίτλοι), γι' αυτό γράψε την έκδοση στο αίτημα.

Μπορώ να φτιάξω μενού με Skript;

Ναι, με το add-on skript-gui, που είναι εγκατεστημένο στον δοκιμαστικό server Skript του Codexe. Για μεγάλα ή πολυσύχναστα μενού ένα plugin είναι καλύτερο.

Μπορεί ένα μενού να έχει custom texture;

Μόνο με ένα resource pack που αλλάζει τα αντικείμενα ή το φόντο του inventory. Από την πλευρά του plugin όλα μένουν ίδια: slots, αντικείμενα και κλικ.

Φτιάξε το μενού σου

Αυτό το prompt ανοίγει έτοιμο για αποστολή:

“Ένα plugin για Paper 1.21.4 με το όνομα WarpMenu: το /warps ανοίγει ένα μενού 6 σειρών με ένα κουμπί για κάθε warp, 45 ανά σελίδα, κουμπιά προηγούμενο/επόμενο/κλείσιμο στην κάτω σειρά, /setwarp με όνομα και υλικό και /delwarp για διαχειριστές, αναμονή 3 δευτερολέπτων για το teleport που ακυρώνεται με την κίνηση, κανένα αντικείμενο δεν μπορεί να ληφθεί ή να μετακινηθεί, warps αποθηκευμένα στο warps.yml, τίτλοι και μηνύματα στο config.yml.”

Φτιάξ' το με το Codexe
Πώς να φτιάξεις ένα plugin με μενού GUI για Minecraft | Codexe