ปลั๊กอิน KOTLIN เว็บไซต์
plugin.yml ที่ถูกต้อง และ JAR ที่คอมไพล์ให้คุณได้ก่อนดาวน์โหลดทำไมต้องสร้างปลั๊กอินด้วย Kotlin
Null safety ตรงจุดที่ Bukkit ต้องการ
Bukkit คืนค่า null อยู่ตลอด ทั้งผู้เล่นที่ออฟไลน์ โลกที่ไม่มีอยู่ หรือคีย์ config ที่หายไป Kotlin ทำให้กรณีเหล่านี้ชัดเจนตั้งแต่ตอนคอมไพล์ ไม่ใช่มาโผล่ตอนตีสองในคอนโซลเซิร์ฟเวอร์ของคุณ
โปรเจกต์ Gradle ของจริง
build.gradle.kts ตั้งค่าไว้สำหรับปลั๊กอิน Kotlin JVM และ repository ของ Paper/Spigot พร้อมโครงสร้างซอร์สมาตรฐาน ไม่ใช่ไฟล์เดียวที่คุณต้องหาที่วางเอง
boilerplate น้อยลงเยอะ
data class สำหรับโมเดล config, extension function บน Player และ ItemStack และ scope function แทนการเช็ก null ซ้อนกันหลายชั้น ตรรกะเดิม แต่โค้ดน้อยลงอย่างเห็นได้ชัด
รองรับ Folia และพร็อกซีด้วย
ถ้าคุณใช้ fork แบบมัลติเธรดของ Paper โปรดทราบว่า Folia ไม่มีเธรดหลักเดียว และต้องใช้การจัดตารางงานที่รู้จัก region ให้เลือกเป้าหมาย Folia ในตัวสร้างปลั๊กอิน เพื่อให้การจัดตารางงานถูกต้องตั้งแต่แรก ถ้าเป็นงานระดับเครือข่าย ใช้ตัวสร้างปลั๊กอินพร็อกซี ส่วนเอกสารปลั๊กอินอธิบายความแตกต่างไว้
ตัวอย่างพรอมต์
คำถามที่พบบ่อยเกี่ยวกับตัวสร้างปลั๊กอิน Kotlin
ปลั๊กอิน Kotlin รันบนเซิร์ฟเวอร์ Spigot หรือ Paper ธรรมดาได้ไหม?
+
ได้ Kotlin คอมไพล์เป็น JVM bytecode ธรรมดา เซิร์ฟเวอร์จึงไม่รู้และไม่สนว่าปลั๊กอินเขียนด้วยภาษาอะไร มันโหลดเหมือนปลั๊กอิน Java ทุกอย่าง
ต้องติดตั้งอะไรบนเซิร์ฟเวอร์ไหม?
+
ไม่ต้อง Kotlin standard library จะถูก shade เข้าไปใน JAR ตอนบิลด์ ปลั๊กอินจึงใช้งานได้ในตัว แต่ก็ทำให้ JAR ใหญ่กว่าปลั๊กอิน Java ที่ทำงานเหมือนกัน
Maven หรือ Gradle?
+
Gradle เป้าหมาย Kotlin ใช้ปลั๊กอิน Kotlin ของ Gradle ซึ่งเป็น toolchain มาตรฐานของ Kotlin บน JVM ส่วนเป้าหมาย Java ใช้ Maven
Kotlin ให้อะไรฉันบ้างตรงนี้?
+
หลักๆ คือ null safety และโค้ดพิธีรีตองน้อยลง API ของ Bukkit คืนค่า null ในหลายจุด เช่น getPlayer, getWorld, การอ่านค่า config และระบบ type ของ Kotlin บังคับให้คุณจัดการตอนคอมไพล์ แทนที่จะมาเจอเป็น NullPointerException บนเซิร์ฟเวอร์จริง data class, extension function และ scope function ยังช่วยตัด boilerplate ในโค้ด config และ listener ไปได้เยอะ
ผสม Java กับ Kotlin ในปลั๊กอินเดียวได้ไหม?
+
ตัวสร้างจะสร้าง source set ของ Kotlin Gradle คอมไพล์ซอร์สแบบผสมได้ คุณจึงเพิ่มไฟล์ Java ทีหลังได้ แต่โปรเจกต์ที่สร้างจะเน้น Kotlin เป็นหลัก
ควรเลือก Kotlin หรือ Java?
+
เลือก Java ถ้าอยากเข้ากันได้มากที่สุดกับบทเรียน โค้ดตัวอย่างที่มีอยู่ และโค้ดของคนอื่น เพราะเนื้อหา Bukkit แทบทั้งหมดใช้ Java เลือก Kotlin ถ้าคุณถนัดและอยากได้โค้ดที่สั้นกว่าและ null-safe ส่วน API เหมือนกันทุกอย่างไม่ว่าจะเลือกแบบไหน
ตัวสร้างอื่น ๆ ของ Codexe
ชอบ Java มากกว่า หรือทำงานส่วนอื่นของระบบ? Codexe ยังสร้างสิ่งเหล่านี้ได้ด้วย:
Codexe สร้างและตรวจสอบโปรเจกต์เหล่านี้อย่างไร ควรเขียนอะไรในคำขอ และปัญหาที่พบบ่อย: คู่มือ Spigot and Paper plugins (Java or Kotlin)
พร้อมทำปลั๊กอินใหม่หรือยัง?
แพ็กเกจ Free เติมโทเค็นให้ 50K ทุกวัน พอจะทำปลั๊กอิน Kotlin เล็กๆ ให้เสร็จได้ในรอบเดียว
เริ่มสร้างเลย