Minecraft-France
  • Accueil
  • Forum
  • Actualités Minecraft
    • Minecraft Java
    • Minecraft Legends
    • Minecraft Dungeons
  • Guide
    • Guide Minecraft
      • Les créatures / mobs de Minecraft
      • Les potions / Alchimie
      • Enchantement
    • Télécharger Minecraft
    • Tutoriels
    • Astuces
  • Ressources
    • Mods
      • Par version
        • [Mod] 1.20
        • [Mod] 1.19
        • [Mod] 1.16
        • [Mod] 1.14
        • [Mod] 1.12
        • [Mod] 1.10
        • [Mod] 1.9
        • [Mod] 1.8
        • [Mod] 1.7
      • Par type
        • [Mod] Cheats
        • [Mod] Décoration
        • [Mod] Divers
        • [Mod] Equipements
        • [Mod] Gameplay
        • [Mod] Graphismes
        • [Mod] Mondes
        • [Mod] Véhicules
      • Par API
        • API Forge
        • API Fabric
    • Shaders
    • Resource Packs
      • 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 version
        • 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 type
        • Add-On
        • Cartoon
        • Classique
        • Interface
        • Médiéval
        • Moderne
        • PVP
        • Réaliste
        • Thème
    • Maps
      • Maps Aventure
      • Maps Constructions
      • Maps Mini-Jeux
      • Maps PVP
      • Maps Multijoueurs
      • Maps Solo
    • Skins
    • Datapacks
    • Outils
  • Minecraft: Bedrock Edition
    • Guides
    • Maps Bedrock
    • Mods & Addons
    • Resource Packs
  • Divers
    • Dossiers
    • Interviews
    • Les autres Minecraft
    • Minecraft’ Songs
    • Autres
    • Wallpapers
    • Vidéos
  • Partenaires
Facebook Twitter Instagram
Facebook Twitter Pinterest
Login
Minecraft-France
  • Accueil
  • Forum
  • Actualités Minecraft
    • Minecraft Java
    • Minecraft Legends
    • Minecraft Dungeons
  • Guide
    • Guide Minecraft
      • Les créatures / mobs de Minecraft
      • Les potions / Alchimie
      • Enchantement
    • Télécharger Minecraft
    • Tutoriels
    • Astuces
  • Ressources
    • Mods
      • Par version
        • [Mod] 1.20
        • [Mod] 1.19
        • [Mod] 1.16
        • [Mod] 1.14
        • [Mod] 1.12
        • [Mod] 1.10
        • [Mod] 1.9
        • [Mod] 1.8
        • [Mod] 1.7
      • Par type
        • [Mod] Cheats
        • [Mod] Décoration
        • [Mod] Divers
        • [Mod] Equipements
        • [Mod] Gameplay
        • [Mod] Graphismes
        • [Mod] Mondes
        • [Mod] Véhicules
      • Par API
        • API Forge
        • API Fabric
    • Shaders
    • Resource Packs
      • 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 version
        • 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 type
        • Add-On
        • Cartoon
        • Classique
        • Interface
        • Médiéval
        • Moderne
        • PVP
        • Réaliste
        • Thème
    • Maps
      • Maps Aventure
      • Maps Constructions
      • Maps Mini-Jeux
      • Maps PVP
      • Maps Multijoueurs
      • Maps Solo
    • Skins
    • Datapacks
    • Outils
  • Minecraft: Bedrock Edition
    • Guides
    • Maps Bedrock
    • Mods & Addons
    • Resource Packs
  • Divers
    • Dossiers
    • Interviews
    • Les autres Minecraft
    • Minecraft’ Songs
    • Autres
    • Wallpapers
    • Vidéos
  • Partenaires
Minecraft-France
Vous êtes ici : Accueil > Tutoriels > [Tutoriel] Créer un plugin Minecraft Spigot
Tutoriels

[Tutoriel] Créer un plugin Minecraft Spigot

Par samcarf330 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:

                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 p 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

                Partager sur les réseaux sociaux Facebook Twitter Pinterest
                samcarf3

                Un vieux joueur qui aime écrire !

                Articles Similaires

                Shader : Shrimple

                4 juin 2023

                OptiFine [1.7.10 – 1.20]

                4 juin 2023

                [Map] Tomb Raider [1.19.4]

                3 juin 2023
                Abonnez-vous
                Se connecter
                Prévenez moi :

                6 Commentaires
                Inline Feedbacks
                Voir tous les commentaires
                LePetitRenard
                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 ?

                Lamastaga
                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

                samcarf3
                Auteur
                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… Lire la suite »

                Last edited 2 Années by samcarf3
                dimond08
                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

                Last edited 2 Années by dimond08
                dimond08
                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

                A propos de Minecraft

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

                Télécharger Minecraft
                Wiki Minecraft
                ————————————–

                Java

                Minecraft Java :
                Version 1.19.4

                Bedrock

                Minecraft Bedrock :
                Version 1.19.72

                Java

                Snapshot Minecraft :
                Version 1.20-rc1

                Launcher

                Launcher Minecraft :
                Version 2.4.4
                Les liens indispensables
                Optifine
                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
                Partenaires
                • OMGServ
                • NationsGlory
                • PeaceAndCube
                • Serveur Minecraft
                • Skytale
                • Play-MC
                • Hébergeur d’image
                Minecraft-France © 2011 - 2023, Tous droits réservés. Ce site n’est pas affilié à Mojang Studios ©
                • Contactez Minecraft-France
                • Équipe Minecraft-France
                • Politique de confidentialité

                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.