Tutoriels

[Tutoriel] Créer un plugin Minecraft Spigot

Tout propriétaire de serveur Minecraft sait que pour que son serveur soit unique, il faut lui ajouter des plugins ou bien en créer un inédit. Si il n’y avait pas de plugins, les serveurs seraient tous les même. Dans ce guide, vous allez apprendre les fondamentaux de la création des plugins Minecraft Spigot et vous allez comprendre comment les configurer correctement sur votre serveur…

Pré-requis

Avant de vous précipiter, prenez en compte que la création d’un plugin nécessite d’avoir préalablement appris les bases du langage de programmation Java (et non JavaScript, comme certains pourraient le penser). Il vous sera donc très difficile de créer un plugin avec l’API Spigot sans connaître ne serait-ce qu’un peu de Java. Dans ce guide, nous n’allons pas vous apprendre le Java, mais ne vous inquiétez pas, il existe des centaines de milliers de tutoriels disponibles sur le vaste univers qu’est Internet. Cependant, si vous n’avez pas trop de temps à perdre et que vous voulez coder un plugin rapidement & efficacement, il existe une solution: Skript. Certes, cela tournera moins bien sur des serveurs MMO, mais si vous possédez un petit serveur vous pouvez vous le permettre. Voici un tutoriel disponible ici.

Pour écrire du code, nous allons utiliser la dernière version de l’IDE Eclipse. Il en existe d’autres comme IntelliJ Idea ou NetBeans.

Eclipse IDE

Première étape: Créer le projet. Allez dans File > New > Java Project. J’appellerai le projet “TestSpigot”.

Un nouveau projet pour votre plugin Spigot

Vous pouvez faire de même, ou choisir un autre nom, cela n’affectera pas notre code. Puis, dans la partie JRE, nous allons sélectionner notre version de Java. Faites attention ! Le plugin ne marchera pas si vous choisissez une version de Java plus ancienne ou plus récente que celle de votre serveur ! Dans Use an execution environment JRE, nous allons sélectionner JavaSE-1.8. Appuyez sur Finish.

Création d'un nouveau projet avec IDE Eclipse

Vient ensuite une petite boîte de dialogue expliquant qu’il faudrait créer un module. N’y prêtez pas attention et cliquez sur “Don’t create” car il ne vous sera d’aucune utilité dans un plugin Spigot…

Ajout de l’API Spigot

Très bien, maintenant que vous avez créé le projet, il est temps de lui ajouter l’API Spigot, appelé ici “Library“. Pour cela, vous devez faire un clic droit sur l’icone de votre projet et cliquez sur Properties. Une interface s’affiche, allez dans l’onglet Java Build Path puis allez dans l’onglet Libraries et cliquez sur Module Path. Après cela, les boutons sur le côté droit sont disponibles ! Appuyez maintenant sur “Add External JARs” et sélectionnez l’API de Spigot que vous aurez téléchargé ici (Faites attention, ne prenez pas Bukkit, car celui-ci est désormais dépassé, même s’il est très similaire à Spigot).

Dans ce tutoriel, je vous propose d’utiliser la version de votre choix, à partir de la version 1.8. Le tutoriel devrait être compatible avec toutes les versions. Dans les captures d’écran, nous utiliserons la version 1.8. Normalement, si vous avez tout bien configuré, les images qui sont en-dessous devraient vous paraître familières. À noter: le spigot.jar que votre serveur utilisera est le même spigot.jar que vous devrez mettre dans le Modulepath.

Les bases de Spigot

Enfin ! Après avoir tout configuré, vous allez désormais pouvoir écrire votre code, et donc créer votre plugin. Premièrement, faites un clic droit sur l’icone de votre projet. Allez à New > File, et appelez le fichier plugin.yml ! Ce fichier est la base de tout notre plugin, c’est là où se stockent les commandes, et d’autres paramètres essentiels au plugin. Voici ce que vous devrez écrire dans le fichier:

Plain Text
plugin.yml

Une fois que vous aurez terminé et sauvegardé ce fichier essentiel, vous devrez créer un package dans src, pour cela, vous devrez faire clic droit sur ce package en question et en créer un nouveau. Il est conseillé de le nommer avec un ordre précis: pays.auteur.plugin . Un exemple simple: fr.samcarf.testspigot ! Si vous êtes marocain, que vous vous appellez Hamid64 et que votre plugin s’appelle “ShopPlus”, alors vous devrez appeler votre package de cette façon: ma.hamid64.shopplus.

Maintenant, vous allez créer dans ce package une classe. Faites un clic droit sur le package en question et créer une nouvelle classe. Il est conseillé de l’appeler Main. C’est maintenant que vous allez pouvoir réellement écrire votre code. Premièrement, votre classe doit étendre JavaPlugin. Votre début de code devrait ressembler à ça:

Java
src/fr.samcarf.testspigot/Main.Java

Puis, une fois que vous aurez terminé cela, vous devrez dire au plugin quelles actions il doit faire quand il démarrera et quand il se désactivera. C’est donc pour ça que nous allons utiliser les méthodes onEnable et onDisable. Il faut faire en sorte que lorsque le serveur s’allume, un message dans la console s’affiche. Pour envoyer du texte dans la console il suffit d’utiliser System.out.println ! Et puis, une fois que vous avez fait tout cela, votre code devrait ressembler à ça :

Java
src/fr.samcarf.testspigot/Main.Java

IMPORTANT: Maintenant que vous avez (presque) terminé d’écrire la classe Main, il est temps de la configurer dans le fichier plugin.yml de cette façon :

Java
plugin.yml

Dans notre cas, la classe principale s’appelle Main. Et notre package principal s’appelle fr.samcarf.testspigot. Donc, il est nécessaire d’écrire de cette façon-là:

Java
plugin.yml

Et voilà, vous venez de terminer la création d’un plugin très simple en Spigot ! Mais il vous reste encore beaucoup à apprendre…

Fonctions basiques (Commandes, Items…)

Afin de créer votre première commande, vous aurez besoin d’avoir préalablement écrit le nom, la description, la permission et – si vous voulez -, l’usage correct de la commande dans le fichier plugin.yml . Dans notre cas, nous avons appelé notre commande manger, donc lorsque l’on voudra l’exécuter, on devra taper /manger. Nous verrons plus tard comment exécuter une commande à partir d’un message dans le tchat. Pour cela, il faut montrer au serveur qu’il y a une commande et que l’on veut la configurer. Le code à utiliser est le suivant: (N’oubliez pas de le mettre après le system.out.println)

Java
src/fr.samcarf.testspigot/Main.Java

Ce code va expliquer au plugin que toute la configuration de la commande “Manger” sera dans la classe “CmdManger“.

Dans la classe CmdManger, vous arrivez sur un boolean onCommand qui sera auto-généré par l’efficace API Spigot. Première chose qui vous facilitera sûrement la vie, c’est de modifier les attributs et les remplacer par des abréviations. Exemple: Player = pl ; Command = cmd…
Voici le code que vous devrez utiliser et les abréviations conseillées :

Déjà, il faut vérifier que la personne qui exécute la commande est un joueur, et que cela retourne la valeur True. Voici le code que vous devrez utiliser :

Java
src/fr.samcarf.testspigot/CmdManger.Java

Maintenant, nous allons créer une variable qui nous permettra de nous faciliter la lourde tâche qu’est de donner des items à un joueur. On l’appellera et elle nous sera utile pour le fonctionnement d’autres variables/fonctions comme les inventaires etc. Normalement, votre code devrait ressembler à ça:

Java
src/fr.samcarf.testspigot/CmdManger.Java

Il est désormais temps de récupérer l’inventaire du joueur et de lui ajouter le nombre de nourriture dont on il a besoin. Pour cela nous allons créer une nouvelle variable inv. Puis nous allons ordonner à i d’ajouter 32 steaks cuits nommés “Steaks-Frites” au joueur.

Il faudra donc créer une nouvelle ItemStack qui nous permettra de créer nos steaks et configurer une ItemMeta qui servira à personnaliser nos steaks. Il faudra d’abord créer l’ItemStack steak, puis créer une variable metasteak qui sera récupérée par steak. Puis, il faudra personnaliser nos steaks et définir l’ItemMeta de steak à metasteak. Faites attention ! Définir et ajouter sont deux choses différentes, si vous oubliez une des deux votre code sera erroné ! Une fois que nous avons terminé de faire cela, nous allons envoyer un message au joueur pour qu’il soit informé qu’il a reçu des steaks-frites.

Java
src/fr.samcarf.testspigot/CmdManger.Java

Les événements

Les événements sont très utiles et permettent au joueur de pouvoir, par exemple, effectuer des quêtes, gagner des points en éliminant des joueurs ou recevoir un chaleureux message de bienvenue ! Pour pouvoir débuter dans la création et la gestion d’événements il faut d’abord inscrire la classe où nous allons les gérer dans Main. Pour cela, nous allons utiliser la méthode getServer().getPluginManager().registerEvents(new NomDeLaClasse(), this); ! Faites attention, registerEvents et non registerEvent ! Voici le code que vous devrez utiliser :

Java
src/fr.samcarf.testspigot/Main.Java

Super ! Maintenant, vous devez créer la classe qui vous permettra de gérer les événements (dans notre cas, Events). Notre classe a implémenté Events, ce qui permettra, comme son nom l’indique, de faire fonctionner les événements.

Tout d’abord, vous devez montrer au serveur qu’il s’agit d’un événement, il faut d’abord écrire @EventHandler (une annotation pour les événements), puis vous devrez écrire quel événement doit être détecté et que doit faire le plugin pendant cet événement. Dans notre cas, nous allons utiliser l’événement onPlayerJoinEvent(PlayerJoinEvent <nom>), mais sachez qu’il en existe des centaines avec l’API Spigot. Voici à quoi ressemblera votre début de code:

Java
src/fr.samcarf.testspigot/Event.Java

Maintenant, nous allons afficher un chaleureux message de bienvenue au joueur. Pour faire cela, nous allons créer une variable player qui récupérera le joueur qui a effectué l’événement avec la méthode e.getPlayer() ! Puis nous devons utiliser sendMessage() pour envoyer un message privé au joueur, récupérer le nom du joueur player puis utiliser Bukkit.BroadcastMessage() pour afficher un message public qui dit que le joueur player a rejoint le serveur !

Java
src/fr.samcarf.testspigot/Event.Java

Exportation & Finalisation

Voilà, vous venez de terminé votre plugin Minecraft. Il faut maintenant l’exporter. Si vous avez déjà utilisé Eclipse, ce sera pour vous un jeu d’enfant. Mais si vous ne vous êtes pas familiarisé avec cet IDE, voici comment faire :

  1. Allez dans File > Export.
  2. Choisissez JAR File, autrement le plugin ne fonctionnera pas.
  3. Choisissez le projet à exporter, dans notre cas TestSpigot.
  4. Cliquez sur Browse dans Select the export destination.
  5. Mettez le plugin dans le dossier de plugins de votre serveur.

Maintenant, notre plugin fonctionne sur le serveur ! Voici le message d’activation de la console :

Ici, notre chaleureux message de bienvenue: (pour palier au problème du pseudo collé au message, laissez un espace avant le texte…)

Et voilà les fameux steaks-frites que nous avions créé !

Et voilà ! Vous venez enfin de terminer la création de votre tout premier plugin Minecraft !

Plus d’informations

Documentation de Spigot

samcarf3

Un vieux joueur qui aime écrire !

Sur le même sujet :

Abonnez-vous
Prévenez moi :
guest
1 Commentaire
Inline Feedbacks
Voir tous les commentaires
leonllr

pouriez vous modifier les block de code ?

Bouton retour en haut de la page
Fermer
Fermer