Close Menu
Minecraft-France
  • Accueil
  • Discord
  • Actualités Minecraft
    • Mises à jour Minecraft
  • Guides Minecraft
  • Ressources
    • Mods Minecraft
      • Par version
        • Mod 1.21 – Minecraft
        • Mod 1.20 – Minecraft
        • Mod 1.19 – Minecraft
        • Mod 1.16 – Minecraft
        • Mod 1.14 – Minecraft
        • Mod 1.12 – Minecraft
        • Mod 1.10 – Minecraft
        • Mod 1.9 – Minecraft
        • Mod 1.8 – Minecraft
        • Mod 1.7 – Minecraft
      • Par type
        • [Mod] Cheats
        • [Mod] Décoration
        • [Mod] Divers
        • [Mod] Equipements
        • [Mod] Gameplay
        • [Mod] Graphismes
        • [Mod] Mondes
        • [Mod] Véhicules
    • Modpack
    • Shaders
    • Resource Packs
      • Par version
        • Resource Pack 1.21
        • Resource Pack 1.20
        • Resource Pack 1.19
        • Resource Pack 1.18
        • Resource Pack 1.17
        • Resource Pack 1.16
        • Resource Pack 1.15
        • Resource Pack 1.14
        • Resource Pack 1.13
        • Resource Pack 1.12
        • Resource Pack 1.11
        • Resource Pack 1.10
        • Resource Pack 1.9
        • Resource Pack 1.8
        • Resource Pack 1.7
      • Par résolution
        • [4 x 4]
        • [8 x 8]
        • [16 x 16]
        • [32 x 32]
        • [64 x 64]
        • [128 x 128]
        • [256 x 256]
        • [512 x 512]
      • Par type
        • Add-On
        • Cartoon
        • Classique
        • Interface
        • Médiéval
        • Moderne
        • PVP
        • Réaliste
        • Thème
    • Maps
      • Maps Survie
      • Maps Aventure
      • Maps Constructions
      • Maps Mini-Jeux
      • Maps PVP
      • Maps Multijoueurs
      • Maps Solo
    • Skins
    • Datapacks
    • Outils
  • Minecraft: Bedrock Edition
  • Divers
    • Télécharger Minecraft
    • Dossiers
    • Les autres Minecraft
    • LEGO Minecraft
    • Wallpapers
    • Vidéos
Facebook X (Twitter) Instagram
Login
Minecraft-France
  • Accueil
  • Discord
  • Actualités Minecraft
    • Mises à jour Minecraft
  • Guides Minecraft
  • Ressources
    • Mods Minecraft
      • Par version
        • Mod 1.21 – Minecraft
        • Mod 1.20 – Minecraft
        • Mod 1.19 – Minecraft
        • Mod 1.16 – Minecraft
        • Mod 1.14 – Minecraft
        • Mod 1.12 – Minecraft
        • Mod 1.10 – Minecraft
        • Mod 1.9 – Minecraft
        • Mod 1.8 – Minecraft
        • Mod 1.7 – Minecraft
      • Par type
        • [Mod] Cheats
        • [Mod] Décoration
        • [Mod] Divers
        • [Mod] Equipements
        • [Mod] Gameplay
        • [Mod] Graphismes
        • [Mod] Mondes
        • [Mod] Véhicules
    • Modpack
    • Shaders
    • Resource Packs
      • Par version
        • Resource Pack 1.21
        • Resource Pack 1.20
        • Resource Pack 1.19
        • Resource Pack 1.18
        • Resource Pack 1.17
        • Resource Pack 1.16
        • Resource Pack 1.15
        • Resource Pack 1.14
        • Resource Pack 1.13
        • Resource Pack 1.12
        • Resource Pack 1.11
        • Resource Pack 1.10
        • Resource Pack 1.9
        • Resource Pack 1.8
        • Resource Pack 1.7
      • Par résolution
        • [4 x 4]
        • [8 x 8]
        • [16 x 16]
        • [32 x 32]
        • [64 x 64]
        • [128 x 128]
        • [256 x 256]
        • [512 x 512]
      • Par type
        • Add-On
        • Cartoon
        • Classique
        • Interface
        • Médiéval
        • Moderne
        • PVP
        • Réaliste
        • Thème
    • Maps
      • Maps Survie
      • Maps Aventure
      • Maps Constructions
      • Maps Mini-Jeux
      • Maps PVP
      • Maps Multijoueurs
      • Maps Solo
    • Skins
    • Datapacks
    • Outils
  • Minecraft: Bedrock Edition
  • Divers
    • Télécharger Minecraft
    • Dossiers
    • Les autres Minecraft
    • LEGO Minecraft
    • Wallpapers
    • Vidéos
Minecraft-France
Accueil > Tutoriels > [Tutoriel] Créer un plugin Minecraft Spigot
Tutoriels

[Tutoriel] Créer un plugin Minecraft Spigot

Par samcraft330 avril 2020Mis à jour le:3 mai 20206 commentaires9 Minutes de lecture
Développer un plugin avec 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…

Sommaire

  1. Pré-requis
    1. Ajout de l’API Spigot
      1. Les bases de Spigot
        1. Fonctions basiques (Commandes, Items…)
          1. Les événements
            1. Exportation & Finalisation
              1. Plus d’informations

                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:

                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:

                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 :

                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 :

                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à:

                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)

                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 :

                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 p et elle nous sera utile pour le fonctionnement d’autres variables/fonctions comme les inventaires etc. Normalement, votre code devrait ressembler à ça:

                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.

                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 :

                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:

                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 !

                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

                Partager sur les réseaux sociaux Facebook Twitter Pinterest
                Article précédentMinecraft 1.16 : Snapshot 20w18a
                Article suivant [Mod] Les mods qui rendent la vie plus dure !
                samcraft3

                Human™ Certifié ✅

                6 commentaires
                1. LePetitRenard sur 18 septembre 2021 17 h 36 min

                  J’ai adoré le tuto ! Malheureusement, le plugin ne marche pas, il est installé sur le serveur mais pourtant rien ne se passe… rien dans la console, aucun message de bienvenue et sur eclipse ça me disait qu’il y avait plein d’erreurs.

                  Est-ce que ce serait possible de trouver une solution ?

                2. Lamastaga sur 22 février 2021 18 h 41 min

                  Bonjour,

                  Le plugin s’est bien installé sur mon serveur, le message de bienvenue s’affiche bien, mais lorsque j’effectue la commande, je reçois ce message : “I’m sorry, but you do not have permissions to performe this command. Please contact the server administrator if you believe that this is a mistake.”
                  De plus, lorsque j’effectue la commande dans la console du serveur sur OMGserv, rien ne se passe (J’ai rajouté une ligne de commande pour afficher une phrase dans le chat).
                  Avez-vous une solution à ce problème ?
                  Merci d’avance

                3. samcarf3 sur 20 août 2020 10 h 29 min

                  mais alors qu’est-ce que je mets dans version ?

                  Tu dois mettre la version de ton plugin, c’est-à-dire si c’est la version 1.0 (avec toutes ses variantes, 1.0.1 etc.) du plugin, et l’api-version = version du serveur, si le serveur est en 1.8 ou en 1.16 par exemple :)

                  bonjour lorsque j’ouvre mon plugin.yml cela m’affiche : An internal error occurred during: “Search Marketplace for compatible editors (*.yml)”.

                  Eclipse cherche sur son marketplace un éditeur de texte pour les fichiers yml, annule l’opération et double-clic sur le fichier !

                  Et désolé pour le retard que j’ai pris, ces derniers temps je n’étais pas beaucoup disponible :(

                4. dimond08 sur 12 août 2020 10 h 03 min

                  bonjour lorsque j’ouvre mon plugin.yml cela m’affiche :
                  An internal error occurred during: “Search Marketplace for compatible editors (*.yml)”.

                  An internal error occurred during: “Search Marketplace for compatible editors (*.yml)”.

                  java.lang.NullPointerException

                5. dimond08 sur 12 août 2020 10 h 01 min

                  Bonjour si la version de mon plugin est en 1.12.2 du coup je mets dans plugin.yml

                  api-version: 1.12.2

                  mais alors qu’est-ce que je mets dans

                  version:

                  ? car vous quand vous l’avez fait vous avez fait

                  api-version: 1.8

                  et

                  version: 1.0.0

                6. leonllr sur 2 mai 2020 15 h 15 min

                  pouriez vous modifier les block de code ?

                Laissez une réponse

                A propos de Minecraft

                Retrouvez ci-dessous toutes les informations pour profiter pleinement de Minecraft :

                Télécharger Minecraft
                Wiki Minecraft
                Les liens indispensables
                Optifine
                Installez des mods avec NeoForge
                Installez des mods avec l'API Forge
                Installez des mods avec la dernière version de Minecraft grâce à avec l'API FAbric
                Améliorer visuellement Minecraft avec des shaders
                Apprenez en plus sur Minecraft grâce à nos guides
                Discord de Minecraft-France
                N'hésitez pas à rejoindre le Discord de Minecraft-France qui possède plus de 23.000 membres.
                Discord Minecraft France

                Suivez-nous aussi sur :

                Logo Twitter Logo Bluesky
                Partenaires
                • OMGServ
                • NationsGlory
                • PeaceAndCube
                • Skytale
                • Play-MC
                • Hébergeur d’image
                Voir l’ensemble de nos partenaires
                Minecraft-France © 2011 - 2025, Tous droits réservés. Non approuvé ou associé à Mojang Studios ou Microsoft
                Contact | Mentions légales

                Ecrivez ci-dessus et appuyez sur la touche Entrer pour lancer la recherche. Appuyez sur la touche Echap pour annuler.

                Sign In or Register

                Bienvenue !

                Connectez-vous ci-dessous ou S'enregistrer maintenant.

                Mot de passe perdu ?

                S'enregistrer maintenant

                Déjà inscrit ? Connecter.

                Un mot de passe vous sera envoyé par mail.