เปรียบเทียบ
ดาต้าแพ็กกับปลั๊กอิน
อัปเดตเมื่อ 18 ตุลาคม 2569
ดาต้าแพ็กคือโฟลเดอร์ของไฟล์ JSON และ .mcfunction ที่ Minecraft วานิลลาอ่านได้: สูตรคราฟต์ ของดรอป advancement และคำสั่ง ปลั๊กอินคือโค้ด Java ที่เซิร์ฟเวอร์ Paper หรือ Spigot รัน หลายไอเดียทำได้ทั้งสองแบบ ตัวเลือกที่เหมาะขึ้นอยู่กับว่าต้องรันที่ไหนและตรรกะซับซ้อนแค่ไหน
ตัวอย่างที่เหมาะกับดาต้าแพ็ก
สร้างสิ่งนี้ด้วย Codexeเทียบกันตรง ๆ
| ดาต้าแพ็ก | ปลั๊กอิน | |
|---|---|---|
| ต้องใช้ | ไม่ต้องใช้อะไร: วานิลลาก็พอ | Paper, Spigot หรือ fork ของมัน |
| เล่นคนเดียว | ใช่ | ไม่ |
| เขียนด้วย | JSON และคำสั่ง Minecraft | Java หรือ Kotlin |
| ทำได้ดี | สูตรคราฟต์ ตารางของดรอป advancement แท็ก การสร้างโลก กลไกที่ใช้คำสั่ง | คำสั่งพร้อมอาร์กิวเมนต์ GUI ระบบเศรษฐกิจ ฐานข้อมูล อีเวนต์ permission |
| การตอบสนองต่ออีเวนต์ | จำกัด: advancement, predicate และฟังก์ชันที่รันทุก tick | อีเวนต์หลายร้อยแบบ: ทุบบล็อก แชต ดาเมจ คลิกในอินเวนทอรี และอื่นๆ |
| การเก็บข้อมูล | สกอร์บอร์ดและ storage NBT ในโลก | ไฟล์ SQLite MySQL และอะไรก็ได้ที่ Java ใช้ได้ |
| ระหว่างเวอร์ชัน | รูปแบบเปลี่ยนบ่อย แพ็กต้องอัปเดต | API เสถียร ปลั๊กอินหลายตัวยังใช้ได้ต่อ |
| ติดตั้งใน | world/datapacks/ | plugins/ |
เมื่อไรที่ดาต้าแพ็กเป็นตัวเลือกที่ดีกว่า
- ต้องใช้ได้ในโหมดเล่นคนเดียวหรือบนเซิร์ฟเวอร์วานิลลา หรือผู้เล่นจะแชร์กันเป็นส่วนเสริมของโลก
- ไอเดียส่วนใหญ่เป็นข้อมูล: สูตรคราฟต์ใหม่ ของดรอปที่เปลี่ยนไป ต้นไม้ advancement การสร้างโลกแบบกำหนดเอง
- คุณไม่อยากใช้ซอฟต์แวร์เซิร์ฟเวอร์ใดๆ และไม่อยากบิลด์ Java
เมื่อไรที่ปลั๊กอินเป็นตัวเลือกที่ดีกว่า
- คุณต้องการคำสั่งพร้อมอาร์กิวเมนต์ permission GUI หรือร้านค้า
- ข้อมูลต้องบันทึกแยกตามผู้เล่นในไฟล์หรือฐานข้อมูล หรือแชร์กับเว็บไซต์หรือ Discord
- ตรรกะต้องตอบสนองต่ออีเวนต์จำนวนมาก หรือต้องใช้ฟังก์ชันจำนวนมากที่รันทุก tick ซึ่งกินประสิทธิภาพในดาต้าแพ็ก
- คุณใช้ปลั๊กอินอื่น: Vault, LuckPerms, PlaceholderAPI, WorldGuard
- ถ้าคุณอยากได้ตรรกะฝั่งเซิร์ฟเวอร์โดยไม่ใช้ Java และไม่ต้องบิลด์ มีทางสายกลาง: Skript
ใช้ทั้งสองแบบบนเซิร์ฟเวอร์เดียว
Paper และ Spigot โหลดดาต้าแพ็กจากโฟลเดอร์ของโลกเหมือนวานิลลา คุณจึงไม่ต้องเลือกแบบเดียวสำหรับทั้งเซิร์ฟเวอร์ การแบ่งที่พบบ่อย: สูตรคราฟต์ ตารางของดรอป advancement และการสร้างโลกอยู่ในดาต้าแพ็ก ซึ่งเป็นข้อมูลล้วนและแก้ไขง่าย ส่วนคำสั่ง GUI ระบบเศรษฐกิจ และทุกอย่างที่เก็บแยกตามผู้เล่นอยู่ในปลั๊กอิน จำไว้ว่าดาต้าแพ็กเป็นของโลกเดียว ส่วนปลั๊กอินมีผลกับทุกโลกบนเซิร์ฟเวอร์
ทั้งสองแบบบน Codexe
Codexe ทำได้ทั้งสองแบบ ดาต้าแพ็กถูกโหลดบนเซิร์ฟเวอร์ Minecraft จริงก่อนจะพร้อม และล็อกจะถูกอ่านเพื่อหาข้อผิดพลาด ส่วนปลั๊กอินถูกคอมไพล์ ทั้งสองแบบเล่นบนเซิร์ฟเวอร์ทดสอบส่วนตัวจากเกมของคุณเองได้ และดาต้าแพ็กที่เปลี่ยนการสร้างโลกจะได้เซิร์ฟเวอร์ที่มีโลกสร้างใหม่ คุณจึงเห็นภูมิประเทศของมัน ดาต้าแพ็กถูกทดสอบโหลดบนเวอร์ชัน 1.20.1 ถึง 26.3 ส่วนปลั๊กอินตั้งเป้าได้ตั้งแต่ 1.8.8 ถึง 26.3
คำถาม
ดาต้าแพ็กเพิ่มไอเทมใหม่ได้ไหม?
ไม่ใช่ไอเทมใหม่จริงๆ มันให้ชื่อ คอมโพเนนต์ และโมเดลแบบกำหนดเอง (ด้วยรีซอร์สแพ็ก) กับไอเทมที่มีอยู่ได้ แต่เพิ่มพฤติกรรมใหม่เกินกว่าที่คำสั่งทำได้ไม่ได้
ดาต้าแพ็กใช้กับเซิร์ฟเวอร์ Paper ได้ไหม?
ได้ Paper โหลดดาต้าแพ็กจากโฟลเดอร์ของโลกเหมือนวานิลลา คุณจึงใช้ดาต้าแพ็กและปลั๊กอินบนเซิร์ฟเวอร์เดียวกันได้
แบบไหนเร็วกว่า?
สำหรับเรื่องเล็กๆ ใช้ได้ดีทั้งคู่ ฟังก์ชัน tick หนักๆ ที่เช็กผู้เล่นทุกคนทุก tick กินทรัพยากรมากกว่าปลั๊กอินที่ฟังอีเวนต์เดียว
เปลี่ยนดาต้าแพ็กเป็นปลั๊กอินทีหลังได้ไหม?
ได้ โดยเขียนตรรกะใหม่ด้วย Java สูตรคราฟต์ ตารางของดรอป และ advancement ยังอยู่ในดาต้าแพ็กข้างๆ ปลั๊กอินได้ด้วย เพราะ Paper โหลดทั้งสองแบบ
ทำเป็นดาต้าแพ็กหรือปลั๊กอิน
พรอมต์นี้จะเปิดขึ้นพร้อมส่งได้ทันที:
“ดาต้าแพ็กสำหรับ Minecraft 1.21.4 namespace "hunt": ต้นไม้ advancement "Monster Hunter" ที่มี 6 advancement สำหรับการฆ่าซอมบี้ โครงกระดูก ครีปเปอร์ เอนเดอร์แมน แม่มด และ Ender Dragon แต่ละอันให้ XP และฟังก์ชัน load ที่เพิ่มสกอร์บอร์ดจำนวนการฆ่า”
สร้างสิ่งนี้ด้วย Codexe