คู่มือ
วิธีทำไอเทมแบบกำหนดเองด้วยปลั๊กอิน
อัปเดตเมื่อ 18 ตุลาคม 2569
ดาบ ไม้กายสิทธิ์ กุญแจ และเครื่องมือแบบกำหนดเอง เป็นฟีเจอร์ปลั๊กอินที่มีคนขอมากที่สุด ปลั๊กอินเพิ่มไอเทมใหม่จริงๆ เข้าไปในเกมไม่ได้ แต่สามารถเอาไอเทมวานิลลามาตั้งชื่อ ใส่ lore และแท็กที่ซ่อนอยู่ แล้วตอบสนองเมื่อผู้เล่นใช้งานได้ ผู้เล่นเข้าด้วยเกมปกติ ไม่ต้องลงม็อด
เปลี่ยนไอเทมให้เป็นของคุณเอง
สร้างสิ่งนี้ด้วย Codexeทีละขั้นตอน
1.ระบุรายการไอเทม
สำหรับแต่ละไอเทม: วัสดุพื้นฐาน ชื่อที่แสดง บรรทัด lore และสิ่งที่มันทำ "blaze rod ชื่อ Fire Wand ที่ยิงลูกไฟเมื่อคลิกขวา คูลดาวน์ 5 วินาที" คือไอเทมที่ครบถ้วนแล้ว
2.ติดแท็กด้วย PersistentDataContainer
เก็บ id อย่าง
fire_wandไว้ในPersistentDataContainerของไอเทมด้วยNamespacedKeyปลั๊กอินจะจำไอเทมได้จากแท็กนั้น ไม่ใช่จากชื่อ การเปลี่ยนชื่อที่ทั่งจึงไม่ได้สร้างของปลอมขึ้นมา3.เขียนความสามารถ
แต่ละความสามารถคือ event listener:
PlayerInteractEventสำหรับคลิกขวาEntityDamageByEntityEventสำหรับการโจมตีBlockBreakEventสำหรับเครื่องมือ เพิ่มคูลดาวน์แยกตามผู้เล่นและตามไอเทม4.ตัดสินใจว่าผู้เล่นจะได้ไอเทมอย่างไร
คำสั่ง
/giveของแอดมิน สูตรคราฟต์ ร้านค้า ของดรอปจากมอนสเตอร์ หรือรางวัลจากกล่องสุ่ม5.ทำให้ทุกอย่างปรับแต่งได้
ชื่อ lore ดาเมจ คูลดาวน์ และสูตรคราฟต์อยู่ใน
config.ymlคุณจะได้ปรับสมดุลไอเทมได้โดยไม่ต้องบิลด์ใหม่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