Minecraft Servers HQ

إضافة Minecraft packetevents

معلومات عن packetevents والخوادم التي تم العثور عليها فيها

🔌 حول PacketEvents

PacketEvents هي مكتبة بروتوكول لـ Minecraft Java Edition توفّر API لاعتراض raw protocol packets وفحصها وإلغائها وإرسالها. يمكن استخدامها كإضافة مستقلة على server/proxy أو تضمينها كاعتماد مكتبة لإضافات وmods أخرى.

🎯 الهدف

توفير طبقة packets مستقرة ومتعددة المنصات لمطوري الإضافات وmods حتى يتمكنوا من التفاعل مع Minecraft protocol packets والتلاعب بها (login، play، status، handshake، إلخ) دون الحاجة إلى كتابة كود Netty منخفض المستوى أو صيانة العديد من تطبيقات البروتوكول الخاصة بكل إصدار بأنفسهم.

⚙️ الميزات

  • اعتراض packets قائم على الأحداث للـ packets الواردة والصادرة (receive/send events وأحداث على مستوى البروتوكول).
  • إمكانية إلغاء أو تعديل packets قبل أن يعالجها server/client.
  • سطح API لإرسال packets ومحاكاتها برمجيًا.
  • دورة حياة نظيفة: create/load/init/terminate لمثيل PacketEvents لإدارة الموارد بشكل صحيح.
  • دعم متعدد الوحدات: builds/modules منفصلة للمنصات الشائعة بحيث يعمل نفس API عبر بيئات server/proxy/mod المختلفة.
  • Javadocs منشورة وإعداد موثق للمطورين لاستخدام Maven/Gradle.

🧩 لمن هو موجه

  • مطورو الإضافات وmods الذين يحتاجون إلى وصول على مستوى البروتوكول (إرسال packets أو محاكاتها أو تعديلها).
  • مشغلو الخوادم الذين يثبتون PacketEvents كاعتماد لإضافات تتطلب packet interception.

🏗️ حالات استخدام مثال

  • يسجّل Plugin مستمع packets ويُلغي packet واردة محددة لمنع المعالجة الافتراضية.
  • يرسل Mod packets اصطناعية إلى العميل لإنشاء مؤثرات بصرية أو واجهة UI مخصصة دون تغيير entity على جانب الخادم.
  • يتعامل Plugin على proxy مع packets الخاصة بـ login/handshake لعمليات مصادقة مخصصة.

⚙️ التثبيت

📥 الإعداد (مشغل الخادم)

  • حمّل ملف JAR الرسمي للإضافة وضعه في مجلد plugins/ الخاص بالـ server/proxy (أو ما يعادله).
  • أعد تشغيل server/proxy وتحقق من السجلات للتأكد من أن PacketEvents تم تحميله بشكل صحيح.

🛠️ للمطورين (إعداد البناء)

يتم توزيع PacketEvents كـ modules خاصة بكل منصة. تعرض الوثائق أمثلة Maven/Gradle؛ ومن المفترض إضافة المكتبة بنطاق provided/compileOnly. تستخدم الوثائق placeholder لاسم module؛ استبدله بـ module المنصة المستهدفة (مثل spigot أو velocity أو bungeecord أو fabric أو sponge) عند إضافة dependency.

مثال (snippet الخاص بـ Gradle كما هو موضح في الوثائق الرسمية):

// Replace INSERT_MODULE_HERE with a supported module name (spigot, velocity, bungeecord, fabric, sponge)
compileOnly("com.github.retrooper:packetevents-~~INSERT_MODULE_HERE~~:2.12.1")

استدعِ طرق lifecycle الخاصة بالمكتبة من داخل plugin/mod (load -> init) ثم terminate عند تعطيل plugin.

🧠 ملاحظات تقنية

  • تشمل modules الرسمية المتوفرة: Spigot وVelocity وBungeeCord وFabric وSponge.
  • يذكر المشروع أن module Spigot مصمم للعمل على fork شائعة مثل Paper وPurpur وFolia، وأن module BungeeCord مخصص للعمل على Waterfall.
  • يتم نشر المشروع مع source وreleases وJavadocs؛ وترخيصه GPL-3.0.
  • يُفترض إضافة المكتبة بنطاق provided/compileOnly في builds الخاصة بالإضافات عندما لا يكون التجميع داخل الحزمة مطلوبًا؛ وتم توثيق تعليمات bundling للحالات التي تتضمن فيها plugin PacketEvents ضمن التوزيع.

🤝 متى تكون هذه الإضافة مفيدة

إذا كان مشروعك يحتاج إلى تحكم مباشر في Minecraft protocol—مثل المصادقة المخصصة، أو المؤثرات القائمة على packets، أو التعامل مع proxy، أو التكاملات منخفضة المستوى—فإن PacketEvents يوفر API متعددة المنصات وإدارة lifecycle بحيث يمكنك بناء هذه الميزات دون إعادة تنفيذ معالجة البروتوكول لكل server أو proxy.

خوادم تستخدم packetevents

تعرض صفحة إضافة packetevents الخوادم التي وجد نظام المراقبة هذه الإضافة عليها، والمنصات والإصدارات التي تظهر معها.

قد تضيف الإضافات أوامر، اقتصادا، حماية، صلاحيات، ألعابا مصغرة، تكاملات أو آليات أخرى. يعتمد الدور الفعلي لـ packetevents على إعداد كل خادم.

تُنشأ البيانات تلقائيا من الردود التقنية للخوادم. إذا كان الخادم يخفي قائمة الإضافات، فقد لا يظهر في هذا القسم حتى إذا كان يستخدم packetevents.

استخدم قائمة الخوادم التي تحتوي على packetevents لمقارنة المشاريع، التحقق من الإصدارات المتوافقة أو العثور على أمثلة لاستخدام الإضافة في الخوادم العامة.