Hytale सर्वर API संदर्भ: आयोजन, संदेश, और प्लगइन विकास गाइड

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

हमारे व्यापक एपीआई संदर्भ के साथ मास्टर Hytale सर्वर विकास। PlayerConnect के बारे में जानें कार्यक्रम, PlayerDisconnect घटना, चैट स्वरूपण, कमांड पंजीकरण के लिए संदेश वर्ग, और विरासत इंजन के जावा आधारित वास्तुकला का उपयोग करके अपना पहला प्लगइन का निर्माण।.

हाइटेल सर्वर आर्किटेक्चर को समझना हाइटेल सर्वर एपीआई एक मजबूत जावा-आधारित वास्तुकला पर बनाया गया है जो किसी भी व्यक्ति को परिचित महसूस करेगा जिसने Minecraft सर्वर प्लगइन के साथ काम किया है। विरासत इंजन की वापसी के साथ, डेवलपर्स के पास अब एक परिपक्व, अच्छी तरह से परीक्षण किए गए कोडबेस तक पहुंच है जो क्रॉस-प्लेटफॉर्म जटिलता पर मॉडिंग एक्सेसिबिलिटी को प्राथमिकता देता है। सर्वर के दिल में com.hypixel.hytale.server.core पैकेज, जो सभी सर्वर-साइड ऑपरेशनों के लिए नींव प्रदान करता है। इसमें प्लेयर मैनेजमेंट, वर्ल्ड हैंडलिंग, इवेंट डिस्पैचिंग और कमांड प्रोसेसिंग शामिल है। प्लेयर कनेक्शन इवेंट्स: हैंडलिंग जॉइन एंड लीव किसी भी सर्वर प्लगइन के लिए सबसे आम आवश्यकताओं में से एक खिलाड़ियों को शामिल होने या छोड़ने का जवाब दे रहा है। Hytale API इस उद्देश्य के लिए दो आवश्यक घटनाओं प्रदान करता है। PlayerConnectEvent फायर जब कोई खिलाड़ी सफलतापूर्वक सर्वर से जुड़ जाता है, तो यह घटना आपको पूरी तरह से दुनिया में आने से पहले खिलाड़ी संदर्भ तक पहुंच प्रदान करती है। प्रमुख गुणों में शामिल हैं: playerRef - The PlayerRef उदाहरण जिसमें UUID, यूज़रनेम और नेटवर्क इन्फोर्मेशन player world holder कुछ अन्य घटनाओं की तरह, PlayerConnect घटना cancellable है। यदि आपको किसी खिलाड़ी को शामिल होने से रोकने की आवश्यकता है, तो आपको इसके बजाय प्रमाणीकरण परत पर इसे संभालना चाहिए। eventRegistry.register(PlayerConnectEvent:class.java) { इवेंट -> val player = event.playerRef logger.info("Player जुड़े: ${player.username}") // स्वागत संदेश भेजें Player.sendMessage(Message.raw("Welcome to the server!)) PlayerDisconnectEvent Triggered जब कोई खिलाड़ी सर्वर छोड़ देता है, इस घटना में why के बारे में महत्वपूर्ण संदर्भ शामिल है। उन्होंने डिस्कनेक्ट किया: playerRef disconnectReason - एनम टाइमआउट, किक, छोड़ने या सर्वर शटडाउन का संकेत देता है यह घटना भी गैर-कैसेलेबल है क्योंकि वियोग पहले ही नेटवर्क स्तर पर हुआ है। संदेश कक्षा: रिच टेक्स्ट प्रारूपण Server मालिकों को पॉलिश चैट अनुभवों को बनाने की तलाश में संदेश वर्ग के साथ महत्वपूर्ण समय बिताना होगा। कोर मैसेजिंग पैकेज में स्थित यह स्वरूपित पाठ के निर्माण के लिए एक धाराप्रवाह एपीआई प्रदान करता है। Basic संदेश निर्माण / सरल पाठ संदेश val msg = Message.raw ("हैलो, दुनिया!) // रंग स्वरूपण के साथ Val styled = Message.raw("Important!) रंग ("लाल") .bold(true) (false) .monospace(true) पैरामीटर प्रतिस्थापन गतिशील सामग्री के लिए, पैरामीटर प्लेसहोल्डर का उपयोग करें: val welcome = Message.raw("Welcome, {name}! आपके पास {coins} सिक्के हैं। .param ("name", player.username) .param("coins", playerData.coinBalance.toString()) Clickable Links संदेश में क्लिक करने योग्य हाइपरलिंक शामिल हो सकते हैं: val link = Message.raw("हमारे वेबसाइट पर जाने के लिए यहां क्लिक करें") .link("https://example.com") Event Registration Patterns Hytale घटना प्रणाली दोनों तुल्यकालिक और अतुल्यकालिक घटना हैंडलिंग का समर्थन करती है, जो डेवलपर्स को उनकी प्रदर्शन आवश्यकताओं के आधार पर लचीलापन देती है। सिंक्रोनस पंजीकरण उन घटनाओं के लिए जिन्हें सर्वर धागे पर तत्काल प्रसंस्करण की आवश्यकता होती है: eventRegistry.register(PlayerInteractEvent:class.java) { इवेंट -> अगर (event.action) प्रकार == Actiontype.right_CLICK // बातचीत की प्रक्रिया event.setCancelled(true) हिन्दी अतुल्यकालिक पंजीकरण उन घटनाओं के लिए जिन्हें मुख्य धागे (जैसे चैट मॉडरेशन) से संसाधित किया जा सकता है: eventRegistry.registerAsync (PlayerChatEvent:class.java) { भावी -> भविष्य फिरApply { event -> // Async चैट फ़िल्टरिंग अगर (containsBannedWords) (event.content)) A event.setCancelled(true) हिन्दी घटना हिन्दी आम कार्यक्रम संदर्भ तालिका यहां सर्वर विकास में अक्सर इस्तेमाल की जाने वाली घटनाओं के लिए एक त्वरित संदर्भ है: Event NameCancellable प्रमुख गुण PlayerConnectEvent NoplayerRef, खिलाड़ी, दुनिया, धारक PlayerDisconnectEvent NoplayerRef, डिस्कनेक्ट Reason PlayerChatEventYes (Async)sender, targets, content, formatter PlayerInteractEventYesplayer, action प्रकार, मदInHand, लक्ष्यब्लॉक, लक्ष्यEntity PlayerDeathEvent Noplayer PlayerRespawnEvent Noplayer BreakBlockEventYesitem InHand, targetBlock, blocktype PlaceBlockEventYesitemInHand, targetBlock, रोटेशन DamageBlockEventYesitem InHand, targetBlock, currentDamage, क्षति DropItemEventYesitem, location CraftRecipevent हाँcraftedRecipe, मात्रा प्रमाणन बिल्डिंग कस्टम कमान कमांड सिस्टम आपको स्लैश कमांड पंजीकृत करने की अनुमति देता है जो खिलाड़ी चैट में निष्पादित कर सकते हैं। बेसिक कमान कार्यान्वयन class MyCommand: कमान { ओवरराइड मजाक getName (): स्ट्रिंग = "mycommand" ओवरराइड मजाक निष्पादित(sender: Commandsender, args: Array) { प्रेषक.sendMessage(Message.raw("Hello from my custom command!)) हिन्दी हिन्दी अपने प्लगइन के सेटअप चरण में // रजिस्टर OrderRegistry.registerCommand (MyCommand) कमांडमैनेजर का उपयोग आप प्रोग्रामेटिक रूप से कमांड निष्पादित कर सकते हैं: val commandManager = CommandManager.get () CommandManager.handleCommand(sender, "time day") प्लिन लाइफसाइकल और स्ट्रक्चर Every Hytale सर्वर प्लगइन जावाप्लिन बेस क्लास का विस्तार करता है, जो आवश्यक रजिस्ट्री और lifecycle हुक प्रदान करता है। Plugin Lifecycle चरण निर्माण - प्लगइन क्लास इंस्टेंटिएशन PreLoad Setup - रजिस्टर घटकों, घटनाओं और आदेशों Start - सर्वर खिलाड़ियों को स्वीकार करने के लिए तैयार है Shutdown - सर्वर बंद होने से पहले क्लीनअप की प्लगइन गुण / अपने प्लगइन क्लास में उपलब्ध है लॉगर: HytaleLogger // लॉगिंग क्षमता प्रकटन: PluginManifest? // प्रकट फ़ाइल से प्लगइन मेटाडाटा घटनाRegistry: EventRegistry // रजिस्टर इवेंट श्रोता कमांडरी: कमांडरी // रजिस्टर आदेश डेटा निर्देशिका: पथ // प्लगइन भंडारण स्थान WorkRegistry: TaskRegistry // अनुसूचित कार्य प्रबंधन कॉन्फ़िगरेशन हेल्पर Plugins आसानी से JSON विन्यास फ़ाइलों को लोड कर सकते हैं: / डिफ़ॉल्ट विन्यास.json का उपयोग करना val विन्यास: Config = config(MyConfigClass.CODEC) के साथ // कस्टम फ़ाइल नाम का उपयोग करना val config: Config = withConfig("custom-name.json", MyConfigClass.CODEC) खिलाड़ियों के साथ काम करना PlayerRef class कनेक्टेड खिलाड़ियों के साथ बातचीत के लिए आपका प्राथमिक इंटरफ़ेस है। प्लेयर पहचान और स्थान val player: PlayerRef = event.playerRef // पहचान val uuid: UUID = player.uuid val name: स्ट्रिंग = player.username भाषा: स्ट्रिंग = player.language स्थिति val बदलना: ट्रांसफॉर्म = प्लेयर.ट्रांसफॉर्म val worldUuid: UUID = player.worldUuid val headRotation: वेक्टर3f = player.headRotation Player Entity Access सूची प्रबंधन की तरह गहरी बातचीत के लिए, प्लेयर इकाई का उपयोग करें: val playerEntity: Player = player.entity // वैल इन्वेंटरी = playerEntity.inventory playerEntity.sendInventory() // मैनेजर val hotbar = playerEntity.hotbarManager val windows = playerEntity.windowManager val पृष्ठों = playerEntity.pageManager val hud = playerEntity.hudManager // अनुमति val canBuild: Boolean = playerEntity.hasPermission("server.build") World and Universe Management यूनिवर्स सिंगलटन सभी दुनिया और जुड़े खिलाड़ियों तक पहुंच प्रदान करता है। val ब्रह्मांड = Universe.get // प्लेयर एक्सेस val allPlayers: List = ब्रह्मांड.players वाल खिलाड़ी गणना: Int = ब्रह्मांड.playerCount val specificPlayer: PlayerRef? = ब्रह्मांड.getPlayer(uuid) वर्ल्ड एक्सेस वैल दुनिया: Map = ब्रह्मांड.worlds val डिफ़ॉल्ट World-Estate.com: विशिष्ट वर्ल्ड: वर्ल्ड विश्व प्रबंधन val newworld: CompletableFuture< World> = University.addWorld("new-world") val लोड: Completable Future = ब्रह्मांड.loadWorld("existing-world") थ्रेड सुरक्षा चेतावनी कॉम्पोनेंट एक्सेस दुनिया के धागे पर होना चाहिए। हमेशा निष्पादित ब्लॉक में ऑपरेशन लपेटो: world.execute A // यहां सुरक्षित घटक पहुंच valities = world.getEntity () सर्वर डेवलपर्स के लिए अगले कदम अपने आधार के रूप में इस एपीआई संदर्भ के साथ, आप Hytale सर्वर प्लगइन्स का निर्माण शुरू करने के लिए तैयार हैं। आगे की खोज के लिए प्रमुख संसाधन: उन्नत इकाई हेरफेर के लिए इकाई घटक प्रणाली (ECS) बिल्ट-इन मॉड्यूल जैसे एनपीसी, पोर्टल और क्वेस्ट सिस्टम हिन्दी खेल व्यवहारों के लिए दृश्य स्क्रिप्टिंग प्रणाली कस्टम पैकेट हैंडलिंग के लिए नेटवर्क प्रोटोकॉल याद रखें कि जैसे ही Hytale प्रारंभिक पहुंच के माध्यम से चल रहा है, एपीआई विकसित हो सकता है। इसे विकसित करने के रूप में समुदाय और आधिकारिक प्रलेखन से जुड़े रहें।