Vous êtes administrateur d’un serveur Minecraft fonctionnant sous Bukkit et vous cherchez constamment LE plugin parfait pour vous et vos joueurs, sans résultats ? Vous avez toujours rêvé de pouvoir créer le vôtre mais les tutoriels anglophones vous ont toujours rebutés ? Alors vous êtes au bon endroit !
Cette série d’articles portant sur la création de plugins pour Bukkit vous expliquera simplement et efficacement comment créer des plugins simples, le reste étant dans la documentation de l’API Bukkit. Dans ce premier opus, vous saurez comment créer un nouveau projet de plugin vide et à le compiler en fichier JAR.
Veuillez noter que ces guides ne vous apprendront pas le langage Java, utilisé pour programmer des plugins ; il est préférable d’avoir des bases en programmation Java avant de commencer leur lecture.
Commençons sans plus attendre !
Si vous avez déjà un peu touché au Java, vous savez sans doute que les IDE (Environnement de Développement) phares de ce langage sont NetBeans et Eclipse. C’est ce dernier que nous allons utiliser pour créer notre plugin parfait. Commencez donc par le télécharger : rendez-vous sur ce site, regardez les liens de téléchargement à droite (Download Links) et prenez celui adapté à votre ordinateur. Si vous êtes sous Windows et que vous hésitez entre les versions 32bits et 64bits, prenez celle pour Windows 32bits.
Extrayez ensuite l’archive que vous venez de télécharger où vous voulez, allez dans ce dossier et lancez Eclipse. Définissez votre workspace (là où seront stockés tous les fichiers de tous vos projets) où vous voulez (rappelez-vous en !) et cochez “Use this at default and don’t ask me again” pour qu’il ne vous demande plus jamais où se trouve votre workspace. Vous pouvez fermer Eclipse.
Il vous faut maintenant télécharger l’API Bukkit, la librairie Bukkit où se trouvent toutes les classes nécessaires pour créer un plugin digne de ce nom. Vous pouvez télécharger la dernière version à cette adresse. Placez le fichier téléchargé dans votre workspace Eclipe défini plus haut, et renommez le en “Bukkit API.jar” pour plus de clarté.
Vous êtes maintenant prêt à créer votre projet, alors allons-y !
Une fois que tout ce qui est écrit ci-dessus a été fait, je vous invite à rouvrir Eclipse et à créer un nouveau projet Java (File > New > Java Project). Appelez-le comme vous voudrez (je vous conseille d’appeler votre projet comme votre plugin) et validez en cliquant sur Finish.
Nous avons maintenant besoin de référencer (ajouter) l’API Bukkit dans votre projet. Pour ce faire, faites un clic droit dessus dans la fenêtre d’exploration des fichiers (Package Explorer) et allez dans Properties, tout en bas. Allez ensuite dans Java Build Path, onglet Librairies et cliquez sur Add External JARs pour enfin sélectionner l’API Bukkit présente dans votre workspace. Validez et enregistrez le projet.
Nous avons maintenant besoin de créer un package qui contiendra toutes les sources de votre projet. Déroulez votre projet, toujours dans le Package Explorer, et faites un clic droit sur le dossier src. puis sélectionnez New > Package. Dans Name, mettez ce que vous voulez du moment que c’est sous la forme “com.xxx.<nom du plugin>”, par exemple “com.natinusala.tutorielmcfr”. Si vous avez un nom de domaine/sous domaine, il est conseillé de l’utiliser comme nom de package (par exemple “fr.minecraft.tutorielmcfr”). Validez avec Finish et enregistrez le projet.
Il faut maintenant créer la classe principale du projet, celle que Bukkit ira voir en premier lorsqu’il lira votre plugin. Pour ce faire, faites un clic droit sur votre package créé plus haut et allez dans New > Class. Appelez-la du même nom que votre plugin et validez.
Pour terminer, il faut créer le fichier plugin.yml, qui contiendra toutes les informations dont le serveur a besoin pour utiliser votre plugin : son nom, sa version, le chemin vers la classe principale, la liste des commandes, des permissions, leur description… Faites donc un clic droit sur votre projet, pas sur le dossier src ni votre package, et faites New > File. Appelez ce fichier plugin.yml et validez. Ouvrez ce fichier en double-cliquant dessus et mettez ceci dedans :
name: <nom du plugin>
main: <nom du package>.<classe principale>
version: <version du plugin>
Voici quelques explications au niveau de main, le reste pouvant facilement être rempli sans mon aide. Il vous faut mettre le nom de votre package suivi d’un point puis du nom de la classe principal. Ne vous en faites pas si vous avez deux fois le nom du plugin à la fin, c’est normal. Pour mon cas, le fichier ressemble à ça :
name: tutominecraftfr
main: fr.minecraft.tutominecraftfr.tutominecraftfr
version: 0.1
La structure du projet étant prêt, il ne nous reste plus qu’à y ajouter un peu de code lambda et à le compiler pour le tester.
Nous allons maintenant préparer la classe principale du plugin en y insérant les codes d’importation de l’API Bukkit ainsi que deux méthodes indispensables à son bon fonctionnement.
Actuellement, votre classe principale de votre plugin devrait ressembler à ça :
package <nom du package>;
public class <nom de la classe> {
}
Remplacez tout son contenu par ça, en mettant évidemment vos valeurs à la place de celles entre crochets :
package <nom du package>;
import org.bukkit.plugin.java.JavaPlugin;
import java.util.logging.Logger;public class <nom de la classe> extends JavaPlugin {
}
Ceci aura pour simple effet de dire que “ma classe c’est un plugin”. Les imports quant à eux servent à utiliser le contenu de l’API Bukkit dans la vôtre tout en sélectionnant ce que vous voulez prendre (ici les bases d’un plugin et la fonction permettant d’afficher du texte dans la console.
Ajoutez ensuite deux fonctions à l’intérieur de la classe, onEnable() et onDisable(), ce qui donne au final :
package <nom du package>;
import org.bukkit.plugin.java.JavaPlugin;
import java.util.logging.Logger;public class <nom de la classe> extends JavaPlugin {
public void onEnable() {
}
public void onDisable() {
}
}
La fonction onEnable() sera exécutée par le serveur lors de l’activation du plugin, et à l’inverse la fonction onDisable() le sera lors de son extinction.
Tout à l’heure, je vous parlais d’afficher du texte dans la console. C’est ce que nous allons faire, pour indiquer à l’utilisateur que le plugin a bien été activé.
Pour ce faire, vous devez ajouter ça dans votre classe, avant la méthode onEnable() : Logger log;
Une fois cela fait, la méthode pour afficher du texte dans la console avec le préfixe [INFO] est log.info(string) ; vous savez ce qu’il vous reste à faire ! Pour mettre le préfixe [SEVERE], utilisez log.severe (string).
Je détaillerais comment créer des commandes avec des permissions et tout ce qui va avec dans une autre édition de ce guide, celui-ci étant juste sur la structure du projet et les bribes de code.
Votre plugin étant prêt, il vous faut maintenant le compiler dans une archive JAR pour qu’il soit utilisable sur un serveur. Rien de plus simple ! Enregistrez tout, et allez dans File > Export. Dans le menu qui s’affiche, choisissez JAR File (dans le dossier Java) puis continuez. Cochez ensuite le dossier src de votre projet en le déroulant dans le panneau de gauche puis le fichier plugin.yml dans le panneau de droite. Mettez l’emplacement de votre choix dans JAR File, puis cliquez sur Finish ; votre plugin a été exporté là où vous l’avez indiqué !
Voilà, votre plugin est prêt à être déployé sur n’importe-quel serveur tournant sous Bukkit 1.1-R6 au minimum ! Je vous revois dans le prochain épisode pour voir comment créer une commande associée à des permissions. Amusez-vous bien.