คู่มือ

วิธีทำไอเทมแบบกำหนดเองด้วยปลั๊กอิน

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

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

เปลี่ยนไอเทมให้เป็นของคุณเอง

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

ทีละขั้นตอน

  1. 1.ระบุรายการไอเทม

    สำหรับแต่ละไอเทม: วัสดุพื้นฐาน ชื่อที่แสดง บรรทัด lore และสิ่งที่มันทำ "blaze rod ชื่อ Fire Wand ที่ยิงลูกไฟเมื่อคลิกขวา คูลดาวน์ 5 วินาที" คือไอเทมที่ครบถ้วนแล้ว

  2. 2.ติดแท็กด้วย PersistentDataContainer

    เก็บ id อย่าง fire_wand ไว้ใน PersistentDataContainer ของไอเทมด้วย NamespacedKey ปลั๊กอินจะจำไอเทมได้จากแท็กนั้น ไม่ใช่จากชื่อ การเปลี่ยนชื่อที่ทั่งจึงไม่ได้สร้างของปลอมขึ้นมา

  3. 3.เขียนความสามารถ

    แต่ละความสามารถคือ event listener: PlayerInteractEvent สำหรับคลิกขวา EntityDamageByEntityEvent สำหรับการโจมตี BlockBreakEvent สำหรับเครื่องมือ เพิ่มคูลดาวน์แยกตามผู้เล่นและตามไอเทม

  4. 4.ตัดสินใจว่าผู้เล่นจะได้ไอเทมอย่างไร

    คำสั่ง /give ของแอดมิน สูตรคราฟต์ ร้านค้า ของดรอปจากมอนสเตอร์ หรือรางวัลจากกล่องสุ่ม

  5. 5.ทำให้ทุกอย่างปรับแต่งได้

    ชื่อ lore ดาเมจ คูลดาวน์ และสูตรคราฟต์อยู่ใน config.yml คุณจะได้ปรับสมดุลไอเทมได้โดยไม่ต้องบิลด์ใหม่

  6. 6.บิลด์และลองทุกไอเทม

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

ทำไมต้องใช้แท็กแทนชื่อ

การเช็กชื่อที่แสดงหรือ lore คือความผิดพลาดคลาสสิก: ผู้เล่นคนไหนที่มีทั่งก็เปลี่ยนชื่อไม้เป็น "Fire Wand" ได้ PersistentDataContainer (Minecraft 1.14 ขึ้นไป) เก็บข้อมูลไว้บนไอเทมที่ผู้เล่นแก้ไขไม่ได้ และอยู่รอดหลังรีสตาร์ต การเก็บในหีบ และการแลกเปลี่ยน เพราะเป็นส่วนหนึ่งของไอเทม

ในเวอร์ชัน 1.8 ถึง 1.13 ไม่มี PersistentDataContainer ปลั๊กอินจะใช้ NBT ผ่านไลบรารีหรือเครื่องหมายที่ซ่อนอยู่ใน lore ระบุเวอร์ชันในคำขอ แล้ว Codexe จะเขียนวิธีที่เวอร์ชันนั้นรองรับ

ความสามารถและอีเวนต์เบื้องหลัง

ความสามารถเหตุการณ์หมายเหตุ
พลังคลิกขวาPlayerInteractEventเช็กมือด้วย เพราะอีเวนต์นี้ทำงานแยกตามแต่ละมือ
ดาเมจเพิ่มหรือเอฟเฟกต์เมื่อโจมตีโดนEntityDamageByEntityEventเช็กว่าผู้โจมตีเป็นผู้เล่นที่ถือไอเทมนั้นอยู่
เครื่องมือขุดเป็นพื้นที่BlockBreakEventเคารพปลั๊กอินป้องกันพื้นที่อย่าง WorldGuard
เอฟเฟกต์ติดตัวขณะถืองานที่ทำซ้ำเป็นรอบ หรือ PlayerItemHeldEventลบเอฟเฟกต์ออกเมื่อเก็บไอเทม
ธนูหรือกระสุนEntityShootBowEvent, ProjectileHitEventติดแท็กให้กระสุนเพื่อรู้ว่ามาจากไหน

เท็กซ์เจอร์และโมเดล

ปลั๊กอินเปลี่ยนสิ่งที่ไอเทมทำ ไม่ใช่หน้าตาของมัน หน้าตาแบบกำหนดเองต้องใช้รีซอร์สแพ็กที่ผู้เล่นดาวน์โหลด: ในเวอร์ชันเก่า ไอเทมจะมีหมายเลข CustomModelData ที่แพ็กจับคู่กับโมเดล และตั้งแต่ 1.21.2 ไอเทมยังชี้ไปที่โมเดลของตัวเองผ่านคอมโพเนนต์ item_model ได้ด้วย ถ้าไม่มีแพ็ก ไอเทมจะดูเหมือนวัสดุพื้นฐานที่มีชื่อแบบกำหนดเอง ซึ่งก็เพียงพอสำหรับหลายเซิร์ฟเวอร์

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

"ปลั๊กอิน Paper 1.21.4 ชื่อ MagicItems มีไอเทมสามชิ้น แต่ละชิ้นติดแท็ก id ด้วย PersistentDataContainer: Fire Wand (blaze rod คลิกขวายิงลูกไฟ คูลดาวน์ 5 วินาที), Frost Blade (ดาบเหล็ก โจมตีโดนแล้วให้ Slowness II 3 วินาที), Miner's Pick (อีเต้อเพชร ขุด 3x3 แต่ไม่ขุดในพื้นที่ WorldGuard ที่ผู้เล่นไม่มีสิทธิ์สร้าง) มี /mi give <player> <item> สำหรับ magicitems.admin มีสูตรคราฟต์แบบกำหนดรูปทรงสำหรับแต่ละชิ้น ชื่อ lore คูลดาวน์ และสูตรคราฟต์อยู่ใน config.yml"

คำถาม

ไอเทมแบบกำหนดเอง ใช้ปลั๊กอินหรือม็อด?

ใช้ปลั๊กอินถ้าผู้เล่นควรเข้าด้วยเกมปกติ: ไอเทมเป็นไอเทมวานิลลาที่มีพฤติกรรมใหม่ ใช้ม็อดถ้าคุณต้องการไอเทมหรือบล็อกใหม่จริงๆ ที่เรนเดอร์ในแบบของตัวเอง ซึ่งผู้เล่นทุกคนต้องติดตั้ง ดู ปลั๊กอินกับม็อด

ใช้ร่วมกับ ItemsAdder หรือ Nexo ได้ไหม?

ปลั๊กอินของคุณขึ้นกับปลั๊กอินเหล่านั้นได้ แต่เป็นปลั๊กอินเสียเงิน: เซิร์ฟเวอร์ทดสอบของ Codexe ติดตั้งให้ไม่ได้ ปลั๊กอินที่ต้องใช้ตัวใดตัวหนึ่งจึงจะเปิดใช้งานบนนั้นไม่ได้ ส่วน dependency ฟรีที่อยู่ใน plugin.yml จะถูกติดตั้งบนเซิร์ฟเวอร์ทดสอบให้คุณ

ไอเทมจะใช้ไม่ได้หลังอัปเดตไหม?

ไอเทมที่ติดแท็กด้วย PersistentDataContainer จะเก็บแท็กไว้ข้ามการอัปเดต Minecraft ส่วนความสามารถอาจต้องบิลด์ใหม่สำหรับ API ใหม่ ดู การอัปเดตปลั๊กอิน

สร้างไอเทมแบบกำหนดเองของคุณ

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

“ปลั๊กอิน Paper 1.21.4 ชื่อ MagicItems มีไอเทมสามชิ้นที่ติดแท็กด้วย PersistentDataContainer: Fire Wand (blaze rod คลิกขวายิงลูกไฟ คูลดาวน์ 5 วินาที), Frost Blade (ดาบเหล็ก Slowness II 3 วินาทีเมื่อโจมตีโดน), Miner's Pick (อีเต้อเพชรที่ขุด 3x3) มี /mi give สำหรับ magicitems.admin สูตรคราฟต์แบบกำหนดรูปทรงสำหรับแต่ละชิ้น ชื่อ lore คูลดาวน์ และสูตรคราฟต์อยู่ใน config.yml”

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