Come usare NMS in bukkit

Come usare NMS in bukkit

Sebbene Minecraft sia accogliente per vari plugin (che puoi utilizzare per modificare la tua esperienza di gioco) alcuni elementi del gioco sono schermati dalla manipolazione del plugin. Netto.Minecraft.Il server (NMS) è uno di questi pacchetti protetti, in quanto contiene il codice di server vitale per il gioco. Questo codice proviene direttamente dagli sviluppatori di Minecraft, Mojang, e non dovrebbe essere accessibile ai giocatori.

Con Bukkit, i giocatori possono creare un livello di astrazione attorno al codice NMS. Ciò consente loro di sviluppare plug-in che interagiscono con il codice del server senza apportare modifiche dirette alla base di codice essenziale per giocare. Pensala come una finestra che ti consente di guardare il codice che desideri utilizzare nel tuo plugin ma funge anche da barriera che ti impedisce di cambiare direttamente il codice.

Esploriamo come usare Bukkit con NMS di Minecraft.

Prima di iniziare - cosa devi sapere su Bukkit

Bukkit è un'API che ti consente di creare e utilizzare plugin che alterano il modo in cui si verificano l'aspetto multiplayer di Minecraft. Almeno, lo era. L'ultima versione di Bukkit è uscita nel 2016, e da allora è stata interrotta per far posto a un'API diversa, chiamata Spigot. Mentre lavora in modo simile a Bukkit, offre migliori prestazioni del server.

Quindi, usare Bukkit per i tuoi plugin richiede sia di giocare una versione obsoleta di Minecraft e di accettare il fatto che Bukkit non è buono come la sua API di sostituzione. Supponendo che tu sia felice di accettare quei sacrifici, ecco le uniche cose di cui hai bisogno:

  • Java Development Kit (JDK) 7 o superiore, con la maggior parte delle raccomandazioni JDK 8.

Con ciò, sei pronto a creare alcuni plugin.

Come creare plugin Bukkit per Minecraft

Prima di poter iniziare a utilizzare Bukkit per accedere agli NM di Minecraft, è necessario aggiungere l'API come dipendenza, impostare una classe principale che consente a Bukkit di interagire con il plug -in creato e fornire a Bukkit le informazioni necessarie per caricare il plug -in nel plug -in gioco. Ogni passaggio richiede la codifica, con gli esempi che seguono provenienti dal tutorial RIP.

Passaggio 1 - Aggiungi bukkit come dipendenza

In passato, potresti aggiungere Bukkit come dipendenza in Minecraft scaricando il bukkit.File Jar dal repository Bukkit e aggiungendolo al percorso di classe del tuo progetto. Quell'opzione non è più disponibile perché il repository non è più accessibile.

Per fortuna, c'è un metodo alternativo che utilizza POM del tuo gioco.file XML. Apri il file e aggiungi le seguenti righe:

  Spigot-Repo https: // hub.spigotmc.org/nexus/content/repository/istantanee/      org.bukkit bukkit VERSIONE fornito   

Passaggio 2 - Crea la classe principale del plugin

Il tuo plugin deve essere in grado di creare una singola istanza della sua classe principale, che viene utilizzata per estendere "Javaplugin" in modo che riconosca e ti consenta di utilizzare il plug-in quando sei in gioco. Pensa a questa classe principale come la porta attraverso la quale Bukkit può entrare sia per caricare che manipolare il plugin. La maggior parte dà la classe principale del loro plugin lo stesso nome del plug -in stesso, rendendo più facile fare riferimento alla classe principale durante la codifica.

Il seguente codice di esempio di RIP Tutorial offre un esempio di classe principale per un plug -in chiamato "Myplugin:"

pacchetto com.esempio.myplugin; // $ topleveldomain.$ Dominio.$ Pluginname; Org di importazione.bukkit.collegare.Giava.Javaplugin; Classe finale pubblica MyPlugin estende javaplugin @override public void onenable () // chiamato quando il plugin è abilitato getLogger ().info ("OneNable è stato invocato!"); @Override public void ondisable () // chiamato quando il plugin è disabilitato getLogger ().info ("ondisable è stato invocato!"); 

Accesso al plug -in da un'altra classe

Potresti voler accedere al plugin tramite una classe diversa rispetto alla classe principale che crei per questo, il che potrebbe essere utile per accedere a più plugin in un singolo gioco Minecraft.

Per fare ciò, devi prima archiviare un'istanza della classe principale creata usando Bukkit in modo che altre classi possano accedervi. Ancora una volta, il seguente codice di esempio proviene dal tutorial RIP e usa il nome della classe "Myplugin":

Classe pubblica MyPlugin estende javaplugin istanza di myplugin statico privato; // Variabile finale effettivamente contenente l'istanza del plug -in public myPlugin () if (myplugin.esempio != null) // Controllo non necessario ma assicura che il plugin sia inizializzato solo una volta. lanciare un nuovo errore ("plugin già inizializzato!"); Myplugin.istanza = questo; // Il costruttore di un plug -in dovrebbe essere chiamato solo una volta statico pubblico myPlugin getInstance () // Get's Your Plugin's Istance Return Istance;  // L'altro tuo codice ... 

Una volta che hai l'istanza in atto, puoi accedere alla tua classe principale (creata tramite bukkit) utilizzando il comando "getInstance ()". Ecco un esempio di questo usando la classe principale "MyPlugin" di RIP Tutorial:

classe pubblica myotherclass public void dosomethingWithMainClass () myplugin.getInstance ().getLogger ().info ("abbiamo appena usato myplugin");  

Passaggio 3: crea il tuo plugin.File YML

Un plugin.Il file YML contiene informazioni vitali sul plug -in, il che significa che funge da file di configurazione di base del plug -in. Senza questo file, Bukkit non avrà le informazioni necessarie per caricare il plug -in in Minecraft, portando al plug -in che non riesce a caricare e il gioco probabilmente si blocca.

Questo file dovrebbe contenere i seguenti dettagli:

  • Nome - Questo è il nome che hai dato al tuo plugin (io.e., "MyPlugin" di RIP Tutorial) e verrà visualizzato nei messaggi di registro e nell'elenco dei plugin.
  • Versione - Usa questo campo per indicare la cronologia della versione del plugin, a partire da 1.0.0 e salire mentre modifichi o modifichi il plugin.
  • Principale - Contiene il nome della classe principale del plugin, che estende "Javaplugin", consentendo a Bukkit di immettere il plugin. Nell'esempio del tutorial Rip, questo nome sarebbe "Pacchetto com.esempio.myplugin ", che puoi vedere nel codice di classe principale sopra.
  • Descrizione - Una descrizione di base di ciò che fa il tuo plugin.
  • Autore - Puoi avere un singolo autore o più autori, con quest'ultimo indicato con parentesi e virgole quadrate come segue - [Author1, Author2, Author3].
  • Contributori - Utilizzerai questa sezione per notare chiunque abbia contribuito al tuo plug -in, con la formattazione uguale alla sezione "autori".
  • Sito web - Se hai un sito Web da collegare o desideri collegare le persone alla pagina del plug -in o al repository GitHub, puoi inserire l'URL qui.
  • Versioni api - Inserisci la versione dell'API Bukkit che usi qui. Se non si inserisce una versione API, Minecraft assumerà che stia caricando un plug -in legacy. Il plugin potrebbe ancora funzionare, anche se vedrai un avvertimento sul fatto che è una versione legacy stampata nella tua console al caricamento.

Quello che segue è un esempio di plug -in.File YML basato sulle convenzioni di denominazione utilizzate nel codice di tutorial RIP utilizzato in questo articolo:

Nome: MyPlugin Versione: 1.0.0 Main: pacchetto com.esempio.Myplugin Descrizione: Un plug -in di prova per Minecraft Autore: RIP Tutorial Webs: https: // riptTutorial.com/bukkit api-version: 1.17 

È bukkit giusto per l'accesso e l'utilizzo di NMS?

Con ciò, hai creato una dipendenza da Bukkit, hai creato una classe principale per fungere da porta di Bukkit nel plugin e avere un plugin.File YML che Bukkit può usare per vedere cosa fa il plugin. Tuttavia, potresti non voler farlo, poiché Bukkit è così obsoleto che dovrai eseguire una versione molto antica di Minecraft per usarla in modo efficace. La maggior parte è già passata a Sprigot, che rispecchia la maggior parte di ciò che ha fatto Bukkit offrendo prestazioni migliori.

Se vuoi ancora utilizzare Bukkit per accedere ai plugin, perché l'hai scelto prima delle API più moderne? Quali tipi di plugin usi per migliorare la tua esperienza di Minecraft? Raccontaci tutto nella sezione commenti qui sotto.