Technológia 360
  • Információs Technológia
    • Információtechnológiai Hírek
    • Utasítás
No Result
View All Result
  • Információs Technológia
    • Információtechnológiai Hírek
    • Utasítás
No Result
View All Result
Technológia 360
No Result
View All Result
Home Információs Technológia Utasítás

Az NMS használata a Bukkitben

by Farkas Domonkos
2023.05.05
Share on FacebookShare on Twitter

Bár a Minecraft üdvözli a különféle beépülő modulokat (amelyekkel megváltoztathatja a játékélményt), a játék egyes elemei védve vannak a beépülő modulok manipulálásától. A Net.Minecraft.Server (NMS) egyike ezeknek a védett csomagoknak, mivel a játék létfontosságú szerverkódját tartalmazza. Ez a kód közvetlenül a Minecraft fejlesztőitől, a Mojangtól származik, és állítólag nem lesz elérhető a játékosok számára.

Az NMS használata a Bukkitben

A Bukkit segítségével a játékosok absztrakciós réteget hozhatnak létre az NMS kód körül. Ez lehetővé teszi számukra, hogy olyan beépülő modulokat fejlesszenek ki, amelyek kölcsönhatásba lépnek a szerver kódjával anélkül, hogy a játékhoz nélkülözhetetlen változtatásokat végeznének a kódbázison. Tekintsd úgy, mint egy ablakot, amely lehetővé teszi a beépülő modulban használni kívánt kód megtekintését, de akadályként is működik, amely megakadályozza a kód közvetlen megváltoztatását.

Fedezzük fel, hogyan használhatjuk a Bukkit a Minecraft NMS-szel.

Mielőtt elkezdené – Amit a Bukkitről tudni kell

A Bukkit egy API, amely lehetővé teszi olyan beépülő modulok létrehozását és használatát, amelyek megváltoztatják a Minecraft többszereplős aspektusát. Legalábbis az volt. A Bukkit utolsó verziója 2016-ban jelent meg, és azóta megszűnt, hogy helyet adjon egy másik, Spigot nevű API-nak. Miközben a Bukkithez hasonlóan működik, jobb szerverteljesítményt kínál.

Tehát a Bukkit beépülő modulokhoz való használatához le kell játszania a Minecraft elavult verzióját, és el kell fogadnia azt a tényt, hogy a Bukkit nem olyan jó, mint a helyettesítő API. Feltéve, hogy örömmel fogadja ezeket az áldozatokat, csak a következőkre van szüksége:

  • Java Development Kit (JDK) 7 vagy újabb, a legtöbb ajánlott JDK 8.

Ezzel készen áll néhány bővítmény létrehozására.

Hogyan készítsünk Bukkit beépülő modulokat a Minecrafthoz

Mielőtt elkezdené használni a Bukkit a Minecraft NMS-hez való hozzáféréséhez, hozzá kell adnia az API-t függőségként, be kell állítania egy fő osztályt, amely lehetővé teszi, hogy a Bukkit kölcsönhatásba lépjen az Ön által létrehozott beépülő modullal, és meg kell adnia a Bukkit számára azokat az információkat, amelyekre szüksége van a bővítmény betöltéséhez játszma, meccs. Minden lépés kódolást igényel, a következő példák pedig innen származnak RIP oktatóanyag.

1. lépés – Adja hozzá a Bukkit függőségként

A múltban a Bukkit függőségként hozzáadhatta a Minecrafthoz úgy, hogy letöltötte a Bukkit.jar fájlt a Bukkit Repository-ból, és hozzáadta a projekt osztályútvonalához. Ez a lehetőség már nem elérhető, mert a tárhely már nem érhető el.

Szerencsére van egy alternatív módszer, amely a játék pom.xml fájlját használja. Nyissa meg a fájlt, és adja hozzá a következő sorokat:

<repositories>
    <repository>
        <id>spigot-repo</id>
        <url>https://hub.spigotmc.org/nexus/content/repositories/snapshots/</url>
    </repository>
</repositories>
<dependencies>
    <!--Bukkit API-->
    <dependency>
        <groupId>org.bukkit</groupId>
        <artifactId>bukkit</artifactId>
        <version>{VERSION}</version>
        <scope>provided</scope>
    </dependency>
</dependencies>

2. lépés – Hozd létre a beépülő modulod fő osztályát

A beépülő modulnak képesnek kell lennie a fő osztály egyetlen példányának létrehozására, amely a „JavaPlugin” kiterjesztésére szolgál, hogy felismerje és lehetővé tegye a bővítmény használatát, amikor játékban van. Tekintsd ezt a fő osztályt úgy, mint egy ajtót, amelyen keresztül a Bukkit beléphet a bővítmény betöltésére és manipulálására. A legtöbben a beépülő modul fő osztályának ugyanazt a nevet adják, mint magának a beépülő modulnak, így könnyebben hivatkozhatunk a fő osztályra a kódolás során.

A RIP oktatóprogram következő példakódja példát mutat a „MyPlugin” nevű bővítmény fő osztályára:

package com.example.myplugin; //{$TopLevelDomain}.{$Domain}.{$PluginName};
import org.bukkit.plugin.java.JavaPlugin;
public final class MyPlugin extends JavaPlugin {
    @Override
    public void onEnable() {
        //Called when the plugin is enabled
        getLogger().info("onEnable has been invoked!");
    }
    @Override
    public void onDisable() {
        //Called when the plugin is disabled
        getLogger().info("onDisable has been invoked!");
    }
}

Beépülő modul elérése egy másik osztályból

Előfordulhat, hogy a bővítményt más osztályon keresztül szeretné elérni, mint a számára létrehozott fő osztályt, ami hasznos lehet több bővítmény eléréséhez egyetlen Minecraft játékban.

Ehhez először el kell tárolnia a Bukkit segítségével létrehozott fő osztály egy példányát, hogy más osztályok hozzáférhessenek. A következő példakód ismét a RIP oktatóprogramból származik, és a „MyPlugin” osztálynevet használja:

public class MyPlugin extends JavaPlugin {
    private static MyPlugin instance; //Effectively final variable containing your plugin's instance
    public MyPlugin(){
        if(MyPlugin.instance != null) { //Unnecessary check but ensures your plugin is only initialized once.
            throw new Error("Plugin already initialized!");
        }
        MyPlugin.instance = this; //A plugin's constructor should only be called once
    }
    public static MyPlugin getInstance(){ //Get's your plugin's instance
        return instance;
    }
    //your other code...
}

Ha a példány a helyén van, a „getInstance()” paranccsal elérheti a fő osztályt (a Bukkit segítségével hozta létre). Íme egy példa erre a RIP Tutorial „MyPlugin” főosztályának használatával:

public class MyOtherClass {
    public void doSomethingWithMainClass(){
        MyPlugin.getInstance().getLogger().info("We just used MyPlugin");
    }
}

3. lépés – Hozd létre a plugin.yml fájlt

A plugin.yml fájl létfontosságú információkat tartalmaz a beépülő modulról, ami azt jelenti, hogy a beépülő modul alapvető konfigurációs fájljaként szolgál. E fájl nélkül a Bukkit nem rendelkezik azokkal az információkkal, amelyekre szüksége van ahhoz, hogy betöltse a bővítményt a Minecraftba, ami a beépülő modul betöltésének sikertelenségéhez és a játék valószínűleg összeomlásához vezethet.

Ennek a fájlnak a következő részleteket kell tartalmaznia:

  • Név – Ez az a név, amelyet a beépülő modulnak adott (azaz a RIP oktatóprogram „MyPlugin”), és ez megjelenik a naplóüzenetekben és a beépülő modulok listájában.

  • Verzió – Ezzel a mezővel jelölheti a beépülő modul verzióelőzményeit, az 1.0.0-tól kezdve, és a beépülő modul módosításával vagy szerkesztésével felfelé haladva.

  • Main – A plugin fő osztályának nevét tartalmazza, amely kiterjeszti a „JavaPlugin”-t, lehetővé téve a Bukkit számára, hogy belépjen a bővítménybe. A RIP oktatóprogram példájában ez a név „package com.example.myplugin” lenne, amelyet a fenti fő osztálykódban láthat.

  • Leírás – A beépülő modul működésének alapvető leírása.

  • Szerző – Egy vagy több szerzője lehet, az utóbbiakat szögletes zárójelekkel és vesszőkkel jelöljük a következők szerint – [Author1, Author2, Author3].

  • Közreműködők – Ebben a szakaszban megjegyezhet mindenkit, aki hozzájárult a bővítményéhez, a formázás pedig megegyezik a „Szerzők” szakasz formázásával.

  • Webhely – Ha be kell dugnia egy webhelyet, vagy ha embereket szeretne linkelni a beépülő modul oldalához vagy a GitHub-tárházhoz, akkor ide írja be az URL-t.

  • API-verzió – Adja meg itt a Bukkit API használt verzióját. Ha nem ad meg API-verziót, a Minecraft feltételezi, hogy egy régebbi beépülő modult tölt be. A beépülő modul továbbra is működhet, bár a betöltéskor megjelenik egy figyelmeztetés, miszerint régi verzióról van szó.

A következő egy példa egy plugin.yml fájlra, amely a jelen cikkben használt RIP oktatóprogram kódjában használt elnevezési konvenciókon alapul:

name: MyPlugin
version: 1.0.0
main: package com.example.myplugin
description: A test plugin for Minecraft
author: RIP Tutorial
website: https://riptutorial.com/bukkit
api-version: 1.17

A Bukkit megfelelő az NMS eléréséhez és használatához?

Ezzel létrehozta a Bukkit-függőséget, felépített egy fő osztályt, amely Bukkit ajtajaként szolgál a beépülő modulba, és rendelkezik egy plugin.yml fájllal, amelyet a Bukkit használhat a bővítmény működésének megtekintéséhez. Lehetséges azonban, hogy ezt nem szeretné megtenni, mivel a Bukkit annyira elavult, hogy a hatékony használathoz a Minecraft egy nagyon régi verzióját kell futtatnia. A legtöbben már áttértek a Sprigot-ba, ami tükrözi a legtöbbet, amit Bukkit tett, miközben jobb teljesítményt nyújtott.

Ha továbbra is a Bukkit szeretné használni a bővítmények eléréséhez, miért ezt választotta a modernebb API-k előtt? Milyen típusú bővítményeket használ a Minecraft élmény fokozására? Mondjon el nekünk mindent az alábbi megjegyzések részben.

Farkas Domonkos

Farkas Domonkos

Recommended.

A Spotify bővítmény lehetővé teszi a Gemini stílusú zenekeresést

A Spotify bővítmény lehetővé teszi a Gemini stílusú zenekeresést

2024.11.28
A Samsung Galaxy S24+ akkumulátorfrissítést kaphat

A Samsung Galaxy S24+ akkumulátorfrissítést kaphat

2023.08.01

Trending.

No Content Available

Technológia 360

Naprakész, pontos hírek és oktatás a technológiáról és a tudományról.

Categories

  • Információtechnológiai Hírek
  • Utasítás

Tags

AirPods AirPods Pro Android Apple azonosító Apple Intelligence Apple Maps Apple Music Apple Pay Facebook FaceTime Fotók alkalmazás Google térkép iCloud iMessage Instagram iOS 16 iOS 17 iOS 18 iPadOS 16 iPadOS 17 iPadOS 18 iPhone iPhone 14 iPhone 14 Pro Max iPhone 16 iPhone 16 Pro iPhone alkalmazások iPhone háttérkép Közösségi média macOS Sequoia macOS Sonoma macOS Ventura Megjegyzések Siri Snapchat Szafari Twitter Vision Pro Vélemények watchOS 9 watchOS 10 watchOS 11 WhatsApp Youtube üzenetek

Recent News

Az iPhone -jának térbeli audiója van: Íme, hogyan kell használni

Az iPhone -jának térbeli audiója van: Íme, hogyan kell használni

2025.05.09
A pixelek kaphatják meg a május frissítését: Hibajavítások, új biztonság és Android 16 Tipp?

A pixelek kaphatják meg a május frissítését: Hibajavítások, új biztonság és Android 16 Tipp?

2025.05.09
No Result
View All Result
  • Információs Technológia
    • Információtechnológiai Hírek
    • Utasítás