คู่มือ
วิธีทำปลั๊กอิน Paper
อัปเดตเมื่อ 7 ตุลาคม 2569
Paper คือซอฟต์แวร์เซิร์ฟเวอร์ Minecraft ที่นิยมใช้กับปลั๊กอินมากที่สุด: รันปลั๊กอิน Spigot ได้และเพิ่ม API ที่ใหญ่และเร็วกว่าเข้าไป ปลั๊กอิน Paper คือโปรเจกต์ Java (หรือ Kotlin) ที่คอมไพล์กับ paper-api นี่คือสิ่งที่ต้องมี ไม่ว่าจะทำเองหรือให้ AI บิลด์ให้
ตัวอย่างสำหรับเริ่มต้น
สร้างสิ่งนี้ด้วย Codexeทีละขั้นตอน
1.เลือกเวอร์ชัน Minecraft
ใช้เวอร์ชันที่เซิร์ฟเวอร์ของคุณรัน เวอร์ชันนี้กำหนดเวอร์ชัน Java: Java 17 ก่อน 1.20.5, Java 21 ตั้งแต่ 1.20.5 และ Java 25 สำหรับ 26.x
2.สร้างโปรเจกต์
โปรเจกต์ Gradle หรือ Maven ที่มี dependency
paper-apiของเวอร์ชันนั้นจากรีโพสิทอรี PaperMC ในสโคปprovided/compileOnly3.เขียนคลาสหลัก
คลาสที่ extends
JavaPluginพร้อมonEnable()สำหรับลงทะเบียนคำสั่งและ listener4.อธิบายปลั๊กอินให้เซิร์ฟเวอร์รู้จัก
plugin.yml(name, version, main, api-version, commands, permissions) Paper ยังรองรับpaper-plugin.ymlซึ่งมีกฎการโหลดของตัวเอง5.บิลด์และทดสอบ
บิลด์ .jar ใส่ในโฟลเดอร์
plugins/ของเซิร์ฟเวอร์ทดสอบ Paper เปิดเซิร์ฟเวอร์ แล้วดูคอนโซลว่ามีข้อผิดพลาดไหม
Paper หรือ Spigot?
โค้ดที่เขียนสำหรับ Spigot API รันบน Paper ได้ แต่กลับกันไม่ได้: Paper เพิ่มอีเวนต์และเมธอด (เช่น text component ของ Adventure และ API แบบ async อีกมาก) ที่ Spigot ไม่มี เขียนสำหรับ Paper ถ้าเซิร์ฟเวอร์ของคุณรัน Paper และเขียนสำหรับ Spigot ถ้าปลั๊กอินต้องรันบนเซิร์ฟเวอร์ Spigot ด้วย
วิธีที่เร็วกว่า
บน Codexe เลือกปลั๊กอิน Bukkit/Spigot/Paper ระบุ “Paper” และเวอร์ชันในคำขอ แล้วอธิบายว่ามันทำอะไร Codexe จะตั้งโปรเจกต์และเวอร์ชัน Java ที่ถูกต้อง คอมไพล์ แก้ข้อผิดพลาดของบิลด์ และให้คุณเข้าเซิร์ฟเวอร์ทดสอบ Paper ที่ติดตั้งปลั๊กอินไว้
ปัญหาที่พบบ่อย
- UnsupportedClassVersionError: ปลั๊กอินถูกคอมไพล์ด้วย Java ที่ใหม่กว่าที่เซิร์ฟเวอร์ใช้
- NoSuchMethodError / NoClassDefFoundError: ปลั๊กอินใช้ API ที่ไม่มีในเวอร์ชันเซิร์ฟเวอร์นั้น หรือ dependency ไม่ได้ถูก shade เข้าไปใน .jar
- ปลั๊กอินโหลดได้แต่คำสั่งไม่ทำอะไร: คำสั่งไม่ได้อยู่ใน
plugin.ymlหรือ executor ไม่ได้ลงทะเบียน
คำถาม
ปลั๊กอิน Paper ใช้กับ Purpur หรือ Folia ได้ไหม?
Purpur เป็น fork ของ Paper ปลั๊กอิน Paper จึงรันบนนั้นได้ Folia เปลี่ยนวิธีจัดการเธรด: ปลั๊กอินต้องเขียนให้ใช้ region scheduler ของมันจึงจะรันบน Folia ได้
ฉันเขียนปลั๊กอิน Paper ด้วย Kotlin ได้ไหม?
ได้ Codexe สร้างโปรเจกต์ Kotlin Gradle พร้อม build.gradle.kts สำหรับ Paper API เดียวกันได้
สร้างปลั๊กอิน Paper ตอนนี้เลย
พรอมต์นี้จะเปิดขึ้นพร้อมส่งได้ทันที:
“ปลั๊กอิน Paper 1.21.4 ชื่อ Bounties: /bounty set <player> <amount> ใช้ระบบเศรษฐกิจของ Vault ผู้ฆ่าได้รางวัล /bounty list แสดง 10 อันดับแรก ค่าหัวบันทึกไว้แม้รีสตาร์ต ข้อความอยู่ใน config.yml”
สร้างสิ่งนี้ด้วย Codexe