คู่มือ

วิธีทำปลั๊กอิน Paper

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

Paper คือซอฟต์แวร์เซิร์ฟเวอร์ Minecraft ที่นิยมใช้กับปลั๊กอินมากที่สุด: รันปลั๊กอิน Spigot ได้และเพิ่ม API ที่ใหญ่และเร็วกว่าเข้าไป ปลั๊กอิน Paper คือโปรเจกต์ Java (หรือ Kotlin) ที่คอมไพล์กับ paper-api นี่คือสิ่งที่ต้องมี ไม่ว่าจะทำเองหรือให้ AI บิลด์ให้

ตัวอย่างสำหรับเริ่มต้น

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

ทีละขั้นตอน

  1. 1.เลือกเวอร์ชัน Minecraft

    ใช้เวอร์ชันที่เซิร์ฟเวอร์ของคุณรัน เวอร์ชันนี้กำหนดเวอร์ชัน Java: Java 17 ก่อน 1.20.5, Java 21 ตั้งแต่ 1.20.5 และ Java 25 สำหรับ 26.x

  2. 2.สร้างโปรเจกต์

    โปรเจกต์ Gradle หรือ Maven ที่มี dependency paper-api ของเวอร์ชันนั้นจากรีโพสิทอรี PaperMC ในสโคป provided/compileOnly

  3. 3.เขียนคลาสหลัก

    คลาสที่ extends JavaPlugin พร้อม onEnable() สำหรับลงทะเบียนคำสั่งและ listener

  4. 4.อธิบายปลั๊กอินให้เซิร์ฟเวอร์รู้จัก

    plugin.yml (name, version, main, api-version, commands, permissions) Paper ยังรองรับ paper-plugin.yml ซึ่งมีกฎการโหลดของตัวเอง

  5. 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
วิธีทำปลั๊กอิน Paper (Minecraft) | Codexe