คู่มือ

วิธีทำปลั๊กอินเมนู GUI ของ Minecraft

อัปเดตเมื่อ 18 ตุลาคม 2569

เมนูของเซิร์ฟเวอร์ (วาร์ป ร้านค้า คิท การตั้งค่า) คืออินเวนทอรีแบบหีบที่ปลั๊กอินเปิดและควบคุม แต่ละช่องมีไอเทมที่ทำหน้าที่เป็นปุ่ม ดูเหมือนง่าย แต่เมนูที่ไม่ยกเลิกการคลิกทุกแบบจะทำให้ผู้เล่นหยิบปุ่มกลับบ้านไปได้ คู่มือนี้อธิบายว่าเมนูทำงานอย่างไร และจะสร้างและทดสอบเมนูได้อย่างไร

เริ่มจากตัวอย่างนี้

สร้างสิ่งนี้ด้วย Codexe

ทีละขั้นตอน

  1. 1.ร่างเมนู

    เมนูแบบหีบมี 1 ถึง 6 แถว แถวละ 9 ช่อง (9 ถึง 54) ระบุว่าไอเทมไหนอยู่ช่องไหน แต่ละคลิกทำอะไร และช่องไหนเป็นแค่ของตกแต่งอย่างบานกระจก

  2. 2.สร้างอินเวนทอรีพร้อม holder

    เปิดด้วย Bukkit.createInventory(holder, size, title) โดยใช้คลาส InventoryHolder ของคุณเอง holder คือสิ่งที่ทำให้ปลั๊กอินรู้ว่าการคลิกเกิดขึ้นในเมนูของมัน ไม่ใช่ในหีบธรรมดา

  3. 3.จัดการการคลิก

    ใน InventoryClickEvent ให้เช็ก holder ยกเลิกอีเวนต์ แล้วจึงทำแอ็กชันของช่องนั้น ปิดเมนูหรือรีเฟรชหลังทำแอ็กชันเสร็จ

  4. 4.บล็อกทุกวิธีอื่นในการย้ายไอเทม

    ยกเลิก InventoryDragEvent ด้วย และจัดการ shift-click ปุ่มตัวเลข และการคลิกในอินเวนทอรีของผู้เล่นเองระหว่างที่เมนูเปิดอยู่

  5. 5.เพิ่มหลายหน้าถ้ารายการยาว

    สำหรับวาร์ปหรือไอเทมในร้านค้าที่ใส่ไม่พอ ให้กันแถวล่างสุดไว้สำหรับปุ่มก่อนหน้า ถัดไป และปิด

  6. 6.เปิดจากคำสั่ง

    เช่น /warps หรือเปิดจากไอเทมหรือ NPC ใส่ permission ให้คำสั่งถ้าเมนูไม่ได้มีไว้สำหรับทุกคน

  7. 7.บิลด์แล้วคลิกไล่ดูทั้งหมด

    ให้ Codexe คอมไพล์ปลั๊กอิน เข้าเซิร์ฟเวอร์ทดสอบ แล้วคลิกทุกปุ่ม ผู้เล่นทดสอบก็เปิดเมนูและคลิกช่องต่างๆ แทนคุณได้

กฎที่ทำให้เมนูปลอดภัย

  • ระบุเมนูจากholder ห้ามใช้ชื่อเมนู: หีบที่ถูกเปลี่ยนชื่อใบไหนก็ลอกชื่อได้
  • ยกเลิกการคลิกก่อนทำอย่างอื่น เพื่อที่ข้อผิดพลาดในแอ็กชันจะไม่ทิ้งไอเทมไว้ที่เคอร์เซอร์ของผู้เล่น
  • ยกเลิกการลากและshift-clickจากอินเวนทอรีของผู้เล่น ไม่อย่างนั้นไอเทมจะถูกดันเข้าไปในเมนูได้
  • อย่าเชื่อไอเทมในช่อง: หาแอ็กชันจากหมายเลขช่องหรือจากแท็กบนไอเทม
  • ย้ายงานที่ช้า (อ่านฐานข้อมูล คำขอเว็บ) ออกจากเธรดหลัก แล้วอัปเดตเมนูเมื่อเสร็จ

เมนูจากไฟล์คอนฟิก

เจ้าของเซิร์ฟเวอร์ชอบเปลี่ยนเมนูโดยไม่ต้องบิลด์ใหม่ ขอให้กำหนดแต่ละเมนูในไฟล์คอนฟิก โดยมีขนาด ชื่อเมนู และสำหรับแต่ละปุ่มมีช่อง วัสดุ ชื่อ lore และแอ็กชัน:

คีย์ตัวอย่างหน้าที่
size27จำนวนช่อง ต้องเป็นผลคูณของ 9
slot13ตำแหน่งของปุ่ม นับจาก 0
materialENDER_PEARLไอเทมที่แสดง
actionwarp:spawnสิ่งที่คลิกทำ: วาร์ป คำสั่ง หรือเมนูอื่น

ตัวอย่างคำอธิบาย

"ปลั๊กอิน Paper 1.21.4 ชื่อ WarpMenu คำสั่ง /warps เปิดเมนู 6 แถว มีหนึ่งปุ่มต่อหนึ่งวาร์ป หน้าละ 45 ปุ่ม พร้อมปุ่มก่อนหน้า ถัดไป และปิดที่แถวล่างสุด แอดมินเพิ่มวาร์ปด้วย /setwarp <name> <material> และลบด้วย /delwarp คลิกวาร์ปแล้วจะเทเลพอร์ตหลังรอ 3 วินาที ซึ่งยกเลิกถ้าขยับตัว ผู้เล่นหยิบหรือย้ายไอเทมใดๆ ในเมนูไม่ได้ วาร์ปบันทึกใน warps.yml ชื่อเมนู ชื่อปุ่ม และข้อความอยู่ใน config.yml"

ทดสอบเมนูด้วยผู้เล่นทดสอบ

ผู้เล่นทดสอบของ Codexe เปิดเมนูและคลิกช่องได้ จากนั้นเช็กว่ามีเมนูเปิดขึ้น มีข้อความแสดง หรือได้รับไอเทม เพิ่มการทดสอบด้วยคำพูดของคุณเอง เช่น "ผู้เล่นปกติรัน /warps แล้วคลิกช่อง 0 และเห็นข้อความเทเลพอร์ต" แล้วมันจะรันซ้ำทุกครั้งที่ Codexe ส่งการเปลี่ยนแปลงมา

คำถาม

ใช้กับ 1.8 ได้ไหม?

เมนูแบบหีบมีในทุกเวอร์ชันตั้งแต่ 1.8 API ต่างกันในรายละเอียด (ชื่อวัสดุ ชื่อเมนู) จึงควรระบุเวอร์ชันในคำขอ

ทำเมนูด้วย Skript แทนได้ไหม?

ได้ ด้วยส่วนเสริม skript-gui ซึ่งติดตั้งไว้บนเซิร์ฟเวอร์ทดสอบ Skript ของ Codexe แล้ว สำหรับเมนูขนาดใหญ่หรือใช้งานหนัก ปลั๊กอินจะดีกว่า

เมนูมีหน้าตาเป็นเท็กซ์เจอร์แบบกำหนดเองได้ไหม?

ได้เฉพาะเมื่อใช้รีซอร์สแพ็กที่เปลี่ยนไอเทมหรือพื้นหลังอินเวนทอรี ฝั่งปลั๊กอินยังเหมือนเดิม: ช่อง ไอเทม และการคลิก

สร้างเมนูของคุณ

พรอมต์นี้จะเปิดขึ้นพร้อมส่งได้ทันที:

“ปลั๊กอิน Paper 1.21.4 ชื่อ WarpMenu: /warps เปิดเมนู 6 แถว หนึ่งปุ่มต่อหนึ่งวาร์ป หน้าละ 45 ปุ่ม ปุ่มก่อนหน้า/ถัดไป/ปิดที่แถวล่างสุด, /setwarp พร้อมชื่อและวัสดุ และ /delwarp สำหรับแอดมิน, รอเทเลพอร์ต 3 วินาทีและยกเลิกถ้าขยับตัว, หยิบหรือย้ายไอเทมไม่ได้, วาร์ปบันทึกใน warps.yml, ชื่อเมนูและข้อความอยู่ใน config.yml”

สร้างสิ่งนี้ด้วย Codexe
วิธีทำปลั๊กอินเมนู GUI สำหรับ Minecraft | Codexe