Kotlin · Bukkit · Spigot · Paper

PLUGIN بلغة KOTLIN بالذكاء الاصطناعي

واجهة Bukkit API نفسها، بلغة Kotlin. صف ما يجب أن يفعله الـ plugin ويجهّز Codexe مشروع Gradle بمجموعة مصدر Kotlin وملف plugin.yml صحيح وملف JAR يمكنه تجميعه لك قبل أن تنزّله.

لماذا تولّد plugin بلغة Kotlin

أمان من القيم الفارغة حيث يحتاجه Bukkit

يُرجع Bukkit قيمة null باستمرار: لاعبون غير متصلين وعوالم مفقودة ومفاتيح إعدادات غائبة. تجعل Kotlin هذه الحالات صريحة وقت التجميع بدل أن تظهر في وحدة تحكم الخادم الساعة الثانية فجراً.

مشروع Gradle حقيقي

ملف build.gradle.kts مهيّأ لـ plugin Kotlin JVM ومستودعات Paper/Spigot، بالهيكل القياسي للمصادر. لا ملف واحد تبحث له عن مكان.

كود متكرر أقل بكثير

data classes لنماذج الإعدادات، ودوال امتدادية على Player وItemStack، ودوال النطاق بدل فحوصات null المتداخلة. المنطق نفسه بكود أقل بوضوح.

يستهدف Folia والبروكسي أيضاً

إذا كنت على فرع Paper متعدد الخيوط، فلاحظ أن Folia يزيل الخيط الرئيسي الوحيد ويحتاج إلى جدولة تراعي المناطق. اختر منصة Folia في مولّد plugins لتكون الجدولة صحيحة من البداية. وللعمل على مستوى الشبكة استخدم مولّد plugins البروكسي. ويشرح توثيق plugins الفروق.

أمثلة على الأوصاف

> plugin بلغة Kotlin لـ Paper 1.21 بأمر /kit يعطي مجموعة عناصر قابلة للضبط، ومهلة انتظار لكل لاعب مخزّنة في data class، وإعدادات YAML بقيم افتراضية.
> plugin بلغة Kotlin يسجّل كل كسر كتلة في ملف لكل عالم بشكل غير متزامن، ويضيف /blocklog <player> لقراءة آخر 20 سجلاً.
> plugin بلغة Kotlin يضيف وصفة صناعة مخصصة لعنصر مسحور، مع مستمع يمنع استخدامه خارج Nether.
> plugin بلغة Kotlin بواجهة GUI مقسّمة إلى صفحات تعرض اللاعبين المتصلين، والنقر للانتقال إليهم مشروط بصلاحية.

أسئلة شائعة عن مولّد plugins بلغة Kotlin

هل تعمل plugins بلغة Kotlin على خادم Spigot أو Paper عادي؟

+

نعم. تُترجم Kotlin إلى bytecode عادي لـ JVM، فلا يعرف الخادم ولا يهتم باللغة التي كُتب بها الـ plugin. يُحمَّل تماماً مثل plugin بلغة Java.

هل أحتاج إلى تثبيت شيء على الخادم؟

+

لا. تُدمج مكتبة Kotlin القياسية داخل ملف JAR وقت البناء، فيكون الـ plugin مكتفياً بذاته. وهذا يجعل ملف JAR أكبر من plugin Java مكافئ.

Maven أم Gradle؟

+

Gradle. تستخدم منصة Kotlin المستهدفة plugin ـ Gradle Kotlin، وهو سلسلة الأدوات القياسية لـ Kotlin على JVM. أما منصات Java فتستخدم Maven.

ماذا تضيف لي Kotlin هنا فعلاً؟

+

في الغالب الأمان من القيم الفارغة وطقوس أقل. تُرجع واجهات Bukkit قيمة null في أماكن كثيرة (getPlayer وgetWorld وقراءات الإعدادات)، ويجبرك نظام الأنواع في Kotlin على معالجتها وقت التجميع بدل اكتشافها كـ NullPointerException في الإنتاج. كما تقلل data classes والدوال الامتدادية ودوال النطاق كثيراً من الكود المتكرر في كود الإعدادات والمستمعين.

هل يمكنني خلط Java وKotlin في plugin واحد؟

+

ينتج المولّد مجموعة مصدر Kotlin. يستطيع Gradle تجميع مصادر مختلطة، فيمكنك إضافة ملفات Java لاحقاً، لكن المشروع المولَّد يعتمد Kotlin أولاً.

هل أختار Kotlin أم Java؟

+

اختر Java إذا أردت أقصى توافق مع الدروس والمقاطع الجاهزة وأكواد الآخرين، فمعظم مواد Bukkit تفترض Java. واختر Kotlin إذا كنت مرتاحاً معها وتريد كوداً أكثر إيجازاً وأماناً من القيم الفارغة، فواجهة الـ API هي نفسها في الحالتين.

Prefer Java, or working somewhere else in the stack? Codexe also generates:

كيف يبني Codexe هذه المشاريع ويفحصها، وما يجب كتابته في الطلب، والمشكلات الشائعة: دليل Spigot and Paper plugins (Java or Kotlin).

جاهز لـ plugin جديد؟

تتجدد في الخطة المجانية 50K توكن يومياً، وهي تكفي لإنجاز plugin صغير بلغة Kotlin دفعة واحدة.

ابدأ الصنع
مولّد plugins لـ Minecraft بلغة Kotlin – plugins لـ Bukkit بالذكاء الاصطناعي بلغة Kotlin | Codexe