Minestom هي مكتبة مفتوحة المصدر تمكن المطورين من إنشاء برنامج خادم Minecraft الخاص بهم، دون أي تعليمات برمجية من Mojang.
والفرق الرئيسي بين خادم Mojang الفانيليا والخادم القائم على minestom هو أن خادمنا لا يحتوي على أي ميزات افتراضيًا! ومع ذلك، لدينا واجهة برمجة تطبيقات كاملة مصممة لتتيح لك تحقيق أي شيء بسهولة.
هذه واجهة برمجة تطبيقات للمطورين وليس من المفترض أن يستخدمها المستخدمون النهائيون. لن ينجح استبدال Bukkit/Forge/Sponge بهذا لأننا لا ننفذ أيًا من واجهات برمجة التطبيقات الخاصة بهم.
لم يتم تثبيت Minestom مثل Bukkit/Forge/Sponge. نظرًا لأن Minestom هي مكتبة Java، فيجب تحميلها بنفس الطريقة التي يمكن بها تحميل أي مكتبة Java أخرى. هذا يعني أنك بحاجة إلى إضافة Minestom كتابع، وإضافة التعليمات البرمجية الخاصة بك وتجميعها بنفسك.
يتوفر Minestom على Maven Central، ويمكن تثبيته على النحو التالي (Gradle/Groovy):
repositories {
mavenCentral()
maven { url ' https://jitpack.io ' }
}
dependencies {
implementation ' net.minestom:minestom-snapshots:<???> '
}
يتوفر هنا مثال لكيفية استخدام مكتبة Minestom. وبدلاً من ذلك، يمكنك التحقق من الويكي الرسمي أو javadocs.
لقد تطورت لعبة Minecraft كثيرًا منذ إصدارها، فمعظم الخوادم اليوم لا تستفيد من ميزات الفانيليا بل وتضطر إلى النضال بسببها. جمهورنا المستهدف هو أولئك الذين يرغبون في إنشاء خادم لا يستفيد كثيرًا من ميزات الفانيليا. على سبيل المثال الإبداعية، kitpvp. الهدف هو تقديم المزيد من الأداء لأولئك الذين يحتاجون إليه. بمعنى آخر، من المنطقي استخدام Minestom عندما يستغرق تنفيذ كل ميزة فانيليا مفقودة تريدها وقتًا أقل من إزالة كل ميزة فانيليا من شأنها أن تبطئك.
Minestom ليس مثاليًا، فخياراتنا تجعله أفضل بكثير في بعض الحالات، وأسوأ في حالات أخرى.
حتى لو لم نقم بتضمين أي شيء بشكل افتراضي في اللعبة، فإننا نبسط طريقة إضافتها، إليك معاينة.
هذا هو مفهومنا الرئيسي، العوالم رائعة للبقاء مع الأصدقاء، ولكن عندما يتم توسيع نطاقها يمكن أن تصبح غير قابلة للإدارة. أفضل الأمثلة يمكن العثور عليها في Skyblock أو الألعاب الصغيرة، عدم القدرة على فصل كل جزء بشكل صحيح والاضطرار إلى حفظ كل شيء في الملفات، ناهيك عن النفقات العامة الناجمة عن البيانات غير الضرورية الموجودة فيها. تعد المثيلات حلاً خفيفًا لهذه المشكلة، حيث تكون قادرة على الاحتفاظ بكل جزء في الذاكرة فقط، ونسخها وإرسالها إلى لاعب آخر في وقت قصير، مع تسلسل مخصص وغير ذلك الكثير...
إن القدرة على إنشاء مثيلات مباشرة أثناء التنقل أمر لا بد منه، ونعتقد أنه يمكن أن يدفع العديد من المشاريع إلى الأمام.
تأتي المثيلات أيضًا مع فوائد الأداء، على عكس بعض المثيلات الأخرى التي ستكون ذات ترابط فردي بالكامل أو ربما تستخدم مؤشر ترابط واحد لكل عالم، فنحن نستخدم عددًا محددًا من سلاسل الرسائل (مجمع) لإدارة جميع القطع بشكل مستقل عن المثيلات، مما يعني استخدام المزيد من طاقة وحدة المعالجة المركزية.
بشكل افتراضي، لا يعرف Minestom ما هو الصندوق، سيتعين عليك إخباره أنه يفتح المخزون. تحتاج كل "الكتل الخاصة" (التي ليست مرئية فقط) إلى معالج متخصص. بعد تطبيق هذا المعالج، لديك كتلة يمكن وضعها في أي مكان بسهولة. ومع ذلك، فإن جميع الكتل موجودة بشكل مرئي، ولن يكون لها تفاعل بشكل افتراضي.
مصطلحات الوحوش "السلبية" أو "العدوانية" غير موجودة، لا أحد يمنعك من جعل الدجاجة الطائرة تندفع نحو أي لاعب يقترب كثيرًا، القيام بذلك مع NMS يعد فوضى حقيقية بسبب التشويش والميراث الكبير.
إنه مجال تطورت فيه Minecraft كثيرًا، وتُستخدم المخزونات الآن كثيرًا كواجهة خادم للعميل مع عناصر قابلة للنقر ورد الاتصال، ونحن ندعم هذه التفاعلات محليًا دون الحاجة إلى برمجة الحل الخاص بك.
الأوامر هي أبسط طريقة للتواصل بين العملاء والخادم. منذ الإصدار 1.13، قامت Minecraft بدمج مكتبة جديدة تسمى "Brigadier"، ثم قمنا بدمج واجهة برمجة التطبيقات (API) المصممة لاستخدام الإمكانات الكاملة لأنواع args.
#mcdevs
- أبحاث البروتوكولات وتنسيقات الملفات.انظر الملف المساهمة! تتم معاينة كافة ميزات العمل قيد المعالجة كمسودة للعلاقات العامة
تم ترخيص هذا المشروع بموجب ترخيص Apache الإصدار 2.0.