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 ***
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.
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.
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
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
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).
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
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.
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.
Si l'installation réussit, l'écran suivant apparaît.
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.
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.
Il existe un projet Maven à Maven, alors sélectionnez-le et cliquez sur Suivant.
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.
** 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.
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.)
Puisqu'il existe une description à la fois de l'API Spigot et de l'API Bukkit, seule la partie API Spigot est utilisée.
Lorsque vous mettez à jour pom.xml, le fichier du package est automatiquement téléchargé dans Maven Dependency.
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.
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.
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!");
}
}
}
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.
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.
L'écran suivant est affiché.
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.
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.
*** Bienvenue dans mon monde! *** s'affiche!
Était-ce un peu difficile cette fois?
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é. ** **
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