Hytale Modding एपीआई: पूर्ण सर्वर प्लगइन विकास गाइड

By HytaleCharts Team श्रेणी: Name मिनट पढ़ा

आपको हाइटेल सर्वर प्लगइन्स बनाने की आवश्यकता है। इस गाइड में जावा 25 सेटअप, प्लगइन लाइफसाइकिल, दोहरी घटना प्रणाली (EventBus + ECS), कमांड पंजीकरण, इकाई घटक, प्रकट होता है। जेसन प्रारूप, और CurseForge के लिए तैनाती शामिल है।.

Hytale के सर्वर प्लगइन सिस्टम गेम के हर पहलू पर डेवलपर्स को गहरा नियंत्रण देता है। यदि आपने Minecraft के लिए Bukkit या Spigot प्लगइन्स लिखा है, तो संक्रमण सीधा है - लेकिन Hytale की वास्तुकला मूल रूप से उन तरीकों में अलग है जो इस मामले में हैं। यह गाइड आपको प्रारंभिक सेटअप से लेकर प्रोडक्शन तैनाती तक सब कुछ के माध्यम से चलता है। आर्किटेक्चर अवलोकन Before किसी भी कोड को लिखते हैं, यह समझते हैं कि कैसे Hytale की modding कार्य: ग्राहक एक रेंडर है। Hytale's C# क्लाइंट ग्राफिक्स, इनपुट और ऑडियो को संभालता है - लेकिन इसमें कोई गेम लॉजिक नहीं है। सभी सिमुलेशन जावा सर्वर पर चलता है, यहां तक कि सिंगलप्लेयर में भी। Everything सर्वर-साइड है। जब खिलाड़ी स्वचालित रूप से एक मॉडेड सर्वर, कस्टम एसेट्स और व्यवहार स्ट्रीम में शामिल होते हैं। कोई क्लाइंट मोड की जरूरत नहीं है। Four modding श्रेणियां मौजूद हैं: डेटा एसेट्स (JSON), आर्ट एसेट्स (ब्लॉकबेंच मॉडल), सर्वर प्लगइन्स (जावा), और विजुअल स्क्रिप्टिंग (अभी जल्द ही आने वाला)। Server प्लगइन्स सबसे शक्तिशाली श्रेणी हैं - वे आपको सर्वर रनटाइम तक पूर्ण जावा एक्सेस देते हैं, जिसमें एंटिटी घटक सिस्टम, इवेंट पाइपलाइन, कमांड फ्रेमवर्क और वर्ल्ड मैनिपुट शामिल है। विकास पर्यावरण सेटअप Prerequisites ToolVersionNotes जावा25+ Hytale आभासी धागे सहित आधुनिक सुविधाओं का उपयोग करता है (प्रोजेक्ट लूम) IntelliJ IDEACommunity or UltimateRecommended आईडीई - मुफ्त सामुदायिक संस्करण ठीक काम करता है Gradle9.2.0+बिल्ड सिस्टम ( प्लगइन टेम्पलेट में शामिल) Git हाल के संस्करण आधिकारिक टेम्पलेट को बंद करने के लिए प्रमाणन आधिकारिक टेम्पलेट को बंद करें Hypixel Studios GitHub पर एक आधिकारिक प्लगइन टेम्पलेट प्रदान करता है: git क्लोन https://github.com/HytaleModding/plugin-template.git MyFirstplugin सीडी MyFirstplugin IntelliJ IDEA में परियोजना को खोलें और Gradle सिंक करने दें। टेम्पलेट में सही निर्देशिका संरचना, कॉन्फ़िगरेशन का निर्माण और सर्वर एपीआई निर्भरता शामिल है। Alternatively, HytaleIO प्रोजेक्ट जेनरेटर at hytaleio.com/project-generator एक वेब यूआई के साथ प्लगइन, मॉड या फुल (कॉम्बो) प्रोजेक्ट मचान बना सकता है। प्लगइन संरचना Every Hytale प्लगइन इस निर्देशिका लेआउट का अनुसरण करता है: your-plugin/ src/main/java/com/yourname/yourplugin/ To make a way of the way. जावा # मुख्य प्रवेश बिंदु src/main/resources/ A person who has a probability. जेसन # प्लगइन मेटाडाटा (आवश्यक) A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-E-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A- A number of a number of datas. To build.gradle.kts A set.gradle.kts The gradle.properties manifest.json Every प्लगइन को संकलित JAR की जड़ पर manifest.json की आवश्यकता होती है। यह Bukkit के plugin.yml के बराबर है: A "समूह": "com.yourname", "Name": "YourpluginName", "Main": "com.yourname.yourplugin.Yourplugin", "Version": "1.0.0", "Description": "क्या आपका प्लगइन करता है", "Authors": [{"Name": "YourName"}], "ServerVersion": "*", "Dependency": {}, "वैकल्पिकDependency": {}, "LoadBefore": [] "DisabledByDefault": झूठ, "IncludesAssetPack": झूठ प्लगइन पहचानकर्ता के रूप में बनाया गया है ग्रुप: नाम (जैसे, com.yourname: YourpluginName). Main अपने प्रवेश वर्ग के लिए फील्ड पॉइंट - इस गलत हो जाओ और प्लगइन लोड नहीं होगा। Plugin Lifecycle आपका मुख्य वर्ग जावाप्लिन का विस्तार करता है और इसमें चार जीवन चक्र चरण हैं: public class आपका प्लगइन का विस्तार जावाप्लिन A Englishالعربية中文(简体)हिन्दी; हिंदीاردو सुपर (init); getLogger().info("plugin निर्मित!"); हिन्दी @Override सार्वजनिक शून्य सेटअप () A // चरण 2: रजिस्टर इवेंट्स, कमांड, ईसीएस सिस्टम // यह वह जगह है जहां आपका पंजीकरण कोड जाता है हिन्दी @Override सार्वजनिक void start() A // चरण 3: सर्वर खिलाड़ियों के लिए तैयार है // अनुसूचित कार्य शुरू करें, खुला कनेक्शन हिन्दी @Override सार्वजनिक शून्य शटडाउन A // चरण 4: सर्वर स्टॉप से पहले क्लीनअप // डेटा सहेजें, बंद कनेक्शन, कार्यों को रद्द करना हिन्दी PhaseMethod यहाँ क्या करें 1. ConstructionConstructor मूल आरंभीकरण, लॉगिंग 2. Setupsetup() रजिस्टर इवेंट्स, कमांड, ECS घटक और सिस्टम 3 प्रारंभ start ( कार्य शुरू करें, सर्वर खिलाड़ियों को स्वीकार कर रहा है 4. Shutdownshutdown() डेटा सेव करें, सफाई संसाधन प्रमाणन दोहरी घटना प्रणाली यह समझने की सबसे महत्वपूर्ण अवधारणा है। Hytale में दो अलग-अलग इवेंट सिस्टम है, और गलत का उपयोग करना एक आम गलती है। इवेंट बस - ग्लोबल सर्वर इवेंट्स EventBus प्लेयर कनेक्शन, चैट और वर्ल्ड लोडिंग जैसे सर्वर-व्यापी घटनाओं को संभालती है। EventRegistry के माध्यम से रजिस्टर हैंडलर आपके प्लगइन को प्रदान किया गया: @ ओवरराइड सार्वजनिक शून्य सेटअप () A // सिंक्रोनस वैश्विक घटना GetEventRegistry().registerGlobal() PlayerReadyEvent.class. कार्यक्रम -> { getLogger().info("Player join: " + event.getPlayer().getUsername; हिन्दी ); // Async घटना (जैसे PlayerChatEvent) getEventRegistry().registerAsyncGlobal() PlayerChatEvent.class, भविष्य भविष्य Accept(event -> { अगर (event.getMessage().contains("spam")) A घटना.setCancelled(true); हिन्दी (d); हिन्दी ); की घटना बस आयोजन: PlayerConnectEvent / PlayerDisconnectEvent - कनेक्शन lifecycle PlayerReadyEvent - खिलाड़ी पूरी तरह से लोड और तैयार PlayerChatEvent — चैट संदेश (async, cancellable) AddPlayertoWorldEvent - खिलाड़ी एक दुनिया में प्रवेश करते हैं StartWorldEvent / AddWorldEvent / RemoveWorld कार्यक्रम - विश्व प्रबंधन कार्यक्रम की प्राथमिकता: EventPriority. पहले चलाने और अन्य हैंडलर उन्हें देखने से पहले घटनाओं को संशोधित करने के लिए EARLY। EventPriority. अन्य सभी हैंडलर संसाधित होने के बाद अंतिम राज्य देखने के लिए LATE। ECS कार्यक्रम - इकाई-विशिष्ट कार्रवाई अनंतता-स्तर की घटनाओं जैसे ब्लॉक ब्रेकिंग, ब्लॉक रखने और क्षति को अनंतता घटक प्रणाली के माध्यम से संभाला जाता है, न कि इवेंटबस। आप एक बनाते हैं EntityEventSystem: public class BlockBreakHandler EntityEventSystem