[GO] Créez un environnement de développement de plugins Minecraft avec Eclipse

introduction

J'ai posté Article sur la création d'un environnement multi-serveur Minecraft sur VPS il y a plus d'un an. Cette fois, c'est nouveau, mais c'est la suite.

J'ai eu l'occasion d'étudier Java grâce à mon travail, j'ai donc décidé de créer un plug-in Minecraft. En fait, j'ai eu l'occasion d'aller au Java Day Tokyo il y a quelques mois, et j'ai acheté un livre comme celui-ci là-bas.

"Configurez un serveur multi-serveur avec Minecraft! (Think IT Books)"

Ce livre a été transformé en livre par Think IT serialization par ecolight. Ce livre présente comment utiliser NetBeans comme environnement de développement de plug-ins. L'explication est facile à comprendre et recommandée.

Dans cet article, je le laisserai comme un mémorandum de la maintenance de l'environnement de développement de plug-ins utilisant Eclipse que j'utilise habituellement. ** Au cours de la première année d'ingénieur, le développement était réservé aux amateurs pour faire pousser les cheveux, alors faites-nous savoir ce qui ne va pas. ** **

*** Nous recherchons des personnes pour co-développer le plug-in ***

Aperçu

Tout d'abord, dans la continuité de la dernière fois, je vais vous présenter comment introduire le serveur MOD "Spigot". Ensuite, définissez les paramètres initiaux pour le développement de plug-ins à l'aide d'Eclipse et Maven. Enfin, construisons un plug-in de test et exécutons-le sur le serveur.

Introduction de Spigot

Commençons par l'hypothèse que le serveur vanilla (serveur officiel) est déjà en cours d'exécution. Pour plus d'informations sur l'installation du serveur vanilla, veuillez vous reporter à l'article que j'ai écrit la dernière fois. Il est peut-être obsolète). Je pense que c'est une tâche familière pour ceux qui ont utilisé le serveur MOD, veuillez donc l'ignorer si nécessaire.

installation de git

Le fichier exécutable de spigot, qui est un serveur MOD, n'a pas été publié en raison de problèmes tels que les licences (je ne connais pas les détails). Au lieu de cela, l'utilisateur génère un fichier exécutable à partir du code source accessible au public. Un outil "Build Tools" pour générer un fichier exécutable est également disponible.

Tout d'abord, installez l'outil "git" pour télécharger le code source.

[root@host-150-95-181-84 ~]# yum install git -y

Télécharger Buildtools

Les outils de construction peuvent être téléchargés ici (https://hub.spigotmc.org/jenkins/job/BuildTools/). L'URL de téléchargement de la dernière version est [https://hub.spigotmc.org/jenkins/job/BuildTools/lastStableBuild/artifact/target/BuildTools.jar](https://hub.spigotmc.org/jenkins/job/BuildTools/ lastStableBuild / artifact / target / BuildTools.jar).

[root@host-150-95-181-84 ~]# wget https://hub.spigotmc.org/jenkins/job/BuildTools/lastStableBuild/artifact/target/BuildTools.jar

Exécuter la construction

Utilisez Buildtools pour générer un exécutable serveur. L'exécution de Buildtools générera plusieurs fichiers, vous pouvez donc le faire dans des dossiers séparés.

[root@host-150-95-181-84 ~]# mkdir buildtools
[root@host-150-95-181-84 ~]# mv BuildTools.jar buildtools/
[root@host-150-95-181-84 ~]# cd buildtools/
[root@host-150-95-181-84 buildtools]#

La commande pour exécuter Buildtools se trouve sur cette page (https://www.spigotmc.org/wiki/buildtools/). Si vous spécifiez la version,

java -jar BuildTools.jar --rev 1.12.1

Faire. Si vous souhaitez obtenir la dernière version

java -jar BuildTools.jar --rev latest

Faire. Je me fiche de la version cette fois, donc j'utiliserai la dernière version. Lorsque vous exécutez la commande, le code source est automatiquement téléchargé et généré, et le fichier exécutable du serveur est généré.

[root@host-150-95-181-84 buildtools]# java -jar BuildTools.jar --rev latest
~~Omis (cela prend beaucoup de temps)~~
Success! Everything compiled successfully. Copying final .jar files now.
Copying craftbukkit-1.12.2-R0.1-SNAPSHOT.jar to /root/buildtools/.
  - Saved as craftbukkit-1.12.2.jar
Copying spigot-1.12.2-R0.1-SNAPSHOT.jar to /root/buildtools/.
  - Saved as spigot-1.12.2.jar
[root@host-150-95-181-84 buildtools]# ls
apache-maven-3.5.0  BuildTools.log.txt  craftbukkit-1.12.2.jar  work
BuildData           Bukkit              Spigot
BuildTools.jar      CraftBukkit         spigot-1.12.2.jar
[root@host-150-95-181-84 buildtools]#

Si le fichier exécutable spigot-1.12.2.jar est généré, la construction est réussie (actuellement la dernière version est la 1.12.2).

Lancer Spigot

Copiez le fichier exécutable Spigot dans le répertoire du serveur et démarrez-le. Cette zone est la même que le serveur vanilla.

[root@host-150-95-181-84 buildtools]# cd ..
[root@host-150-95-181-84 ~]# mkdir server
[root@host-150-95-181-84 ~]# cp buildtools/spigot-1.12.2.jar server/
[root@host-150-95-181-84 ~]# cd server/
[root@host-150-95-181-84 server]java -jar spigot-1.12.2.jar nogui
Loading libraries, please wait...
[01:53:34 INFO]: Starting minecraft server version 1.12.2
[01:53:34 WARN]: To start the server with more ram, launch it as "java -Xmx1024M -Xms1024M -jar minecraft_server.jar"
[01:53:34 INFO]: Loading properties
[01:53:34 WARN]: server.properties does not exist
[01:53:34 INFO]: Generating new properties file
[01:53:34 WARN]: Failed to load eula.txt
[01:53:34 INFO]: You need to agree to the EULA in order to run the server. Go to eula.txt for more info.
[01:53:34 INFO]: Stopping server

Comme pour le serveur vanilla, vous devez apporter des modifications à eula.txt.

#By changing the setting below to TRUE you are indicating your agreement to our EULA (https://account.mojang.com/documents/minecraft_eula).
#Mon Sep 25 01:53:34 JST 2017
eula=true

Exécutez à nouveau Spigot. Vous devriez pouvoir le démarrer cette fois.

[root@host-150-95-181-84 server]# java -Xmx512M -Xms512M -jar spigot-1.12.2.jar nogui

Une fois démarré, contrairement au serveur vanilla, un dossier appelé «plugins» est créé. À partir de la prochaine fois, s'il y a un fichier de plug-in dans ce dossier au démarrage, il sera lu.

[root@host-150-95-181-84 server]# ls
banned-ips.json      commands.yml  logs             plugins            spigot.yml      world
banned-players.json  eula.txt      ops.json         server.properties  usercache.json  world_nether
bukkit.yml           help.yml      permissions.yml  spigot-1.12.2.jar  whitelist.json  world_the_end

Construction d'environnement de développement de plug-ins

Installer Eclipse

Le programme d'installation de l'installation est disponible ici [https://eclipse.org/home/index.php). Dans la version Windows, l'écran suivant apparaîtra au démarrage. image.png

Cette fois, nous utiliserons Maven, vous devez donc sélectionner le haut. (Je n'ai jamais rien utilisé d'autre) Vous verrez un écran pour décider de l'emplacement de l'espace de travail, mais si cela ne vous dérange pas, vous pouvez laisser la valeur par défaut. Veuillez modifier le cas échéant lors de la liaison avec Git.

Créer un projet Maven

Si l'installation réussit, l'écran suivant apparaît. image.png

Tout d'abord, changez le codage de texte par défaut en UTF-8. Sélectionnez Barre de menus-> Fenêtre-> Préférences, modifiez le codage du fichier texte de Général-> Espace de travail sur l'écran des paramètres en UTF-8, puis cliquez sur Appliquer et fermer.

image.png

Nous allons créer un projet Maven. Sélectionnez la barre de menu-> Fichier-> Nouveau-> Autre ou appuyez sur Ctrl + N pour afficher le nouvel écran de création.

image.png

Il existe un projet Maven à Maven, alors sélectionnez-le et cliquez sur Suivant.

image.png

Cochez ** Créer un projet simple **. Si vous ne cochez pas cette case, vous pouvez utiliser un modèle de projet appelé archétype, mais cette fois je ne l'utiliserai pas. Cliquez sur Suivant pour afficher l'écran suivant.

image.png

** ID de groupe ** est le nom qui identifie de manière unique le projet. Il semble qu'il soit courant d'utiliser le nom du package racine. Afin d'éviter la duplication avec d'autres identifiants, il semble préférable d'utiliser le domaine d'origine dans l'ordre inverse. (Dans mon cas, j'ai ttk1.net, donc j'utilise net.ttk1.) Si vous ne le publiez pas, vous n'avez pas à vous soucier de la duplication.

** Artifact Id ** est le nom du fichier exécutable généré. Cette fois, ce sera test_plugin. Par défaut, ** Version ** est 0.0.1-SNAPSHOT et ** Packaging ** est jar, donc le fichier généré sera "test_plugin-0.0.1-SNAPSHOT.jar". Laissez la valeur par défaut cette fois.

Cliquez sur Terminer pour générer un projet vide.

Description de pom.xml

Vous devez télécharger le fichier de package pour utiliser l'API Spigot. Le projet Maven le téléchargera automatiquement en décrivant les informations nécessaires sur le fichier de package dans le fichier pom.xml. La description de l'API Spigot peut être trouvée ici [https://www.spigotmc.org/wiki/spigot-maven/). Copiez la pièce entourée par la ligne rouge dans l'image ci-dessous. Cependant, la ** version ** doit être la même que le serveur Spigot. (Cette fois, c'est 1.12.2-R0.1-SNAPSHOT, alors copiez-le tel quel.)

image.png

Puisqu'il existe une description à la fois de l'API Spigot et de l'API Bukkit, seule la partie API Spigot est utilisée.

image.png

Lorsque vous mettez à jour pom.xml, le fichier du package est automatiquement téléchargé dans Maven Dependency.

Créer une classe principale

Commencez par créer un package. Cliquez avec le bouton droit sur src / main / java dans Package Explorer-> New-> Package. Pour ** nom **, entrez le même ID de groupe que vous avez entré précédemment.

image.png

Ensuite, nous allons créer la classe principale. Cliquez avec le bouton droit sur net.ttk1 dans l'Explorateur de packages-> Nouveau-> Classe. Créez une classe de test.

image.png

En guise de test, créez une classe qui affiche le message «Bienvenue dans mon monde!» Lors de la connexion. Cette fois, je vais omettre l'explication du contenu du programme, mais la description de Test.java est la suivante.

package net.ttk1;

import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.plugin.java.JavaPlugin;

public class Test extends JavaPlugin {
    @Override
    public void onEnable() {
    	//Paramètres d'affichage des messages de connexion
    	getServer().getPluginManager().registerEvents(new LoginMsg(), this);
    	//Sortie du journal au démarrage
        getLogger().info("test enable");
    }

    @Override
    public void onDisable() {
    	//Sortie du journal à l'arrêt
        getLogger().info("test disable");
    }
    
    class LoginMsg implements Listener {
    	@EventHandler
        public void onPlayerJoin(PlayerJoinEvent event) {
        	event.getPlayer().sendMessage("Welcome to my world!");
        }
    }
}

Description de plugin.yml

plugin.yml est le fichier dont le serveur Spigot a besoin pour charger le plugin. Vous pouvez en savoir plus ici [https://bukkit.gamepedia.com/Plugin_YAML). Il semble que trois éléments, ** nom **, ** version ** et ** main **, soient requis. nom est le nom qui identifie le plug-in et est également utilisé comme nom de répertoire sur le serveur où les données du plug-in sont stockées. version est la version du plug-in. Incluons également la version du projet Maven. Pour main, entrez le nom complet de la classe principale (classe de test cette fois).

name: test_plugin
version: 0.0.1
main: net.ttk1.Test

Créez plugin.yml dans "src / main / resources". Cliquez avec le bouton droit sur src / main / resources dans l'Explorateur de packages-> Nouveau-> Fichier.

image.png image.png

Créer et exécuter un plug-in de test

Construisons le projet. Sélectionnez Menu Bar-> Run-> Run Configurations et l'écran suivant apparaîtra. Cliquez avec le bouton droit sur "Maven Build" et sélectionnez Nouveau.

image.png

L'écran suivant est affiché.

image.png

Lorsque vous cliquez sur l'espace de travail entouré par la ligne rouge, l'écran de sélection de projet apparaîtra, alors sélectionnez "test_plugin". Ensuite, la chaîne de caractères est saisie dans ** Répertoire de base **.

Pour ** Objectifs **, saisissez "package".

*** Si vous ne spécifiez pas le JDK, la construction échouera. Le contenu est en cours de révision ***

Cliquez sur Exécuter pour démarrer la génération. Si le message suivant s'affiche, la génération est réussie.

image.png

AVERTISSEMENT s'affiche, mais il se trouve dans <projet> ~ </ project> de pom.xml

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

Il disparaît lorsque vous ajoutez.

Téléchargez le plugin terminé dans le dossier plugins de votre serveur. Le plug-in est stocké à l'emplacement indiqué sur la ligne Building jar:.

Vous pouvez enregistrer le téléchargement sur Dropbox ou Google Drive et wget le lien partagé depuis le serveur, mais la commande scp est le moyen le plus rapide.

$ scp C:/Users/tama/eclipse-workspace/test_plugin/target/test_plugin-0.0.1-SNAPSHOT.jar [email protected]:./server/plugins
[email protected]'s password:
test_plugin-0.0.1-SNAPSHOT.jar                100% 3245   299.0KB/s   00:00

Commençons le serveur Spigot.

[root@150-95-181-84 server]#java -Xmx512M -Xms512M -jar spigot-1.12.2.jar nogui
Loading libraries, please wait...
[03:44:26 INFO]: Starting minecraft server version 1.12.2
~~Omission~~
[03:44:27 INFO]: [test_plugin] Loading test_plugin v0.0.1
~~Omission~~
[03:44:31 INFO]: [test_plugin] Enabling test_plugin v0.0.1
[03:44:31 INFO]: [test_plugin] test enable
[03:44:31 INFO]: Server permissions file permissions.yml is empty, ignoring it
[03:44:31 INFO]: Done (4.552s)! For help, type "help" or "?"
>

Le plug-in semble se charger sans aucun problème. Connectons-nous à partir du client Minecraft.

image.png

*** Bienvenue dans mon monde! *** s'affiche!

Était-ce un peu difficile cette fois?

Résumé

J'ai construit un environnement de développement de plug-ins en utilisant Eclipse et Maven. Cette fois, ce n'était pas le but de créer un plug-in, j'ai donc créé un simple plug-in, mais l'API Spigot a plus de fonctionnalités. Créons un plug-in pratique et animons Minecraft.

** Il peut y avoir des informations incorrectes, des expressions inappropriées et des erreurs typographiques en raison de l'élan. Veuillez signaler ceux qui ont remarqué. ** **

référence

De l'installation à la création de projet avec un environnement de développement pratique appelé Eclipse + Maven Configurez un multi-serveur avec Minecraft! (Think IT Books) Série: Configurons un multi-serveur avec Minecraft! Bases du développement de plug-ins

Recommended Posts

Créez un environnement de développement de plugins Minecraft avec Eclipse
Créer un environnement de développement Python avec Eclipse (ajouter un éditeur HTML)
Créez facilement un environnement de développement avec Laragon
Créez un environnement LAMP en très peu de temps
Créer un environnement de développement de langage C avec un conteneur
[Python] Créer un environnement de développement Django avec Docker
Créez un environnement Django avec Vagrant en 5 minutes
Créer un environnement de développement Django à l'aide de Doker Toolbox
Créer un environnement Kubernetes pour le développement sur Ubuntu
Environnement de développement en Python
Créer un environnement de développement mruby pour ESP32 (édition Linux)
Construire un environnement de développement Python sur Raspberry Pi
Flutter dans Docker - Comment créer et utiliser un environnement de développement Flutter dans un conteneur Docker
Créer un environnement de développement Python basé sur GVim sur Windows 10 (3) GVim8.0 et Python3.6
Créer un environnement de développement Django à l'aide de pyenv-virtualenv sur Mac
Créez un environnement de développement local pour Laravel6.X sur votre Mac
Créer un environnement de développement Python basé sur GVim sur l'installation de Windows 10 (1)
Je souhaite créer facilement un environnement de développement basé sur un modèle
Créer un environnement de développement Python sur Mac OS X
Créer un environnement de développement d'applications d'apprentissage automatique avec Python
Comment créer un environnement de développement pour TensorFlow (1.0.0) (Mac)
Créer un environnement de développement Python à l'aide de pyenv sur MacOS
Créez un environnement de développement avec Poetry Django Docker Pycharm
Créer un environnement de développement d'API rapide léger à l'aide de Docker
Créer un environnement LAMP [CentOS 7]
[ev3dev × Python] Construction de l'environnement de développement ev3dev
Créer un environnement d'apprentissage automatique
Créer un environnement Python hors ligne
Créer des pipelies Azure avec Azure DevOps dans un environnement auto-hébergé Linux
[Memo] Construire un environnement de développement pour Django + Nuxt.js avec Docker
Créez un environnement de développement Go avec les conteneurs distants de VS Code
Création d'un environnement de développement pour les applications Android - Création d'applications Android avec Python
[Django] Créez rapidement un environnement de développement de conteneur Django (Docker) avec PyCharm
Créer un environnement de développement Python basé sur GVim sur les paramètres de base de Windows 10 (2)
Créez un environnement de développement confortable avec VSCode x Remote Development x Pipenv
Comment créer un environnement de développement de la série Python2.7 avec Vagrant
Créez un environnement de développement Flask à faible coût avec Docker
UpNext2 Development Record # 1 Construire un environnement Python CI dans VS Code
Exécuter eclipse dans un environnement Docker (noVNC)
Créer un environnement go à l'aide de Docker
Ecrire le plugin vim en Python
Créer un environnement python3 sur CentOS7
Créez un environnement Selenium sur Amazon Linux 2 dans les plus brefs délais
[DynamoDB] [Docker] Créer un environnement de développement pour DynamoDB et Django avec docker-compose
Installer Django dans l'environnement virtuel pipenv
Méthode pour créer un environnement Python dans Xcode 6
Comment créer un environnement de traduction sphinx
Construire un environnement python sur MacOS (Catallina)
Créer un environnement Tensorflow avec Raspberry Pi [2020]
Créez un environnement d'API rapide avec docker-compose
Créer un environnement de développement à l'aide de Jupyter et Flask avec Python dans Docker (prend en charge à la fois VS Code / code-server)
Construire WordPress sur CentOS 8 dans l'environnement LAMP
[Linux] Créer un environnement Jenkins avec Docker
Ecrire un plugin Vim simple en Python 3
Créez un environnement virtuel pour python avec pyenv
Construire un environnement de développement Python (pythonz, virtualenv, direnv)
Créer un environnement Python + OpenCV sur Cloud9
J'ai essayé de créer un environnement de développement Mac Python avec pythonz + direnv
Créer un environnement virtuel dans un environnement Anaconda
Installer CaboCha dans un environnement non-Anaconda (Win)