פלאגין Kotlin מחולל
plugin.yml נכון ו-JAR שהוא יכול לקמפל בשבילכם לפני ההורדה.למה ליצור פלאגין ב-Kotlin
בטיחות מול null איפה ש-Bukkit צריך אותה
Bukkit מחזיר null כל הזמן - שחקנים לא מחוברים, עולמות חסרים, מפתחות הגדרה שחסרים. Kotlin הופך את המקרים האלה לבוטים בזמן הקומפילציה ולא ב-2 בלילה בקונסולת השרת שלכם.
פרויקט Gradle אמיתי
build.gradle.kts מחובר לפלאגין Kotlin JVM ולמאגרי Paper/Spigot, עם מבנה המקורות הסטנדרטי. לא קובץ בודד שצריך למצוא לו מקום.
הרבה פחות קוד חוזר
Data classes למודלי הגדרות, extension functions על Player ו-ItemStack, ו-scope functions במקום בדיקות null מקוננות. אותה לוגיקה בהרבה פחות קוד.
תומך גם ב-Folia ובפרוקסי
אם אתם על הפורק מרובה התהליכונים של Paper, שימו לב ש-Folia מסיר את התהליכון הראשי היחיד וצריך תזמון מותאם לאזורים - בחרו ביעד Folia במחולל הפלאגינים כדי שהתזמון יהיה נכון מההתחלה. לעבודה ברמת הרשת השתמשו במחולל פלאגינים לפרוקסי. תיעוד הפלאגינים מסביר את ההבדלים.
דוגמאות לפרומפטים
שאלות נפוצות על מחולל הפלאגינים ב-Kotlin
האם פלאגינים ב-Kotlin רצים על שרת Spigot או Paper רגיל?
+
כן. Kotlin מתקמפל ל-bytecode רגיל של JVM, ולכן לשרת לא משנה באיזו שפה נכתב הפלאגין והוא אפילו לא יודע זאת. הוא נטען בדיוק כמו פלאגין Java.
האם צריך להתקין משהו בשרת?
+
לא. ספריית התקן של Kotlin נארזת בתוך ה-JAR בזמן הבנייה (shade), ולכן הפלאגין עצמאי. זה אכן הופך את ה-JAR לגדול יותר מפלאגין Java מקביל.
Maven או Gradle?
+
Gradle. יעד Kotlin משתמש בפלאגין Gradle של Kotlin, שהוא שרשרת הכלים הרגילה ל-Kotlin על ה-JVM. יעדי Java משתמשים ב-Maven.
מה Kotlin נותן לי בפועל כאן?
+
בעיקר בטיחות מול null ופחות טקסטים טכניים מיותרים. ממשקי Bukkit מחזירים null בהרבה מקומות - getPlayer, getWorld, חיפושי הגדרות - ומערכת הטיפוסים של Kotlin מכריחה אתכם לטפל בזה בזמן הקומפילציה ולא לגלות את זה כ-NullPointerException בייצור. גם data classes, extension functions ו-scope functions חותכים הרבה קוד חוזר מקוד ההגדרות והמאזינים.
האם אפשר לערבב Java ו-Kotlin בפלאגין אחד?
+
המחולל מפיק source set של Kotlin. Gradle יכול לקמפל מקורות מעורבים, כך שאפשר להוסיף קבצי Java אחר כך, אבל הפרויקט שנוצר מבוסס Kotlin קודם כול.
כדאי לבחור Kotlin או Java?
+
בחרו Java אם אתם רוצים תאימות מרבית למדריכים, לקטעי קוד קיימים ולקוד של אחרים, כי כמעט כל החומר על Bukkit מניח Java. בחרו Kotlin אם אתם נוחים איתו ורוצים קוד תמציתי ובטוח מבחינת null - ה-API זהה בשני המקרים.
מחוללי Codexe נוספים
Prefer Java, or working somewhere else in the stack? Codexe also generates:
איך Codexe בונה ובודק את הפרויקטים האלה, מה לכתוב בבקשה והבעיות הנפוצות: מדריך Spigot and Paper plugins (Java or Kotlin).
מוכנים לפלאגין חדש?
תוכנית Free מתמלאת מחדש ב-50K טוקנים ביום, מספיק כדי לשחרר פלאגין Kotlin קטן בבת אחת.
התחילו ליצור