mathias52 29 Posté(e) 20 avril 2012 Bonjour, Voila quelque tutoriel pour Piou : 1/ Créer un plugin 1) Créer un nouveau projet 2) Ajouter les libs dont vous avez besoin (PiouRealm ou PiouGame et PiouPlugin suffisent pour faire un plugin simple) 3) Créer la class NomDeVotrePlugin dans le package mod, mods, plugin ou plugins, vous pouvez en rajouter dans le fichier RealmPlugin.xml / GamePlugin.xml (le nom du fichier peut être modifier avec -plugconf FichierDeConfigurationPlugin (vous pouvez utiliser des fichiers properties / texte mais il ne faudra pas copier / coller le contenu du fichier de base qui est un fichier xml sinon ça ne fonctionnera pas...) et ajouté NomDeVotrePlugin (xml) ou Enable = NomDeVotrePlugin (properties) Code minimum : package packageDeVotreChoix; import plugin.Plugin; public class NomDeVotrePlugin implements Plugin { @Override public String getName() { return "NomDeVotrePlugin"; } @Override public void onLoad() { // Code a executé au chargement du plugin } @Override public void onEnable() { // Code a executé à l'activation du plugin } @Override public void onDisable() { // Code a executé à la désactivation du plugin } } 4) Compiler 5) Ajouter les jar dans le dossier plugins (modifiable au démarrage de l'émulateur avec -plugin dossierAvecLesPlugins ou --p dossierAvecLesPlugins ) 6) Testé Problème : -Mon plugin ne compile pas --Avez vous ajouté toute les libs ? Si non, ajouté les (PiouPlugin doit toujours être ajouté, les autres, c'est à vous de voir si vous en aurez besoin... ou non ) -L'émulateur plante quand je met mon plugin --Avez vous regardé l'erreur ? S'il s'agit d'une erreur dans votre code, corrigé la, si il s'agit d'une erreur dans mon code, envoyer moi un message avec l'erreur sinon, verrifié si vous avez bien ajouter tout les jar (votre plugin et les libs que je n'utilise pas) dans plugins -Mon plugin n'est jamais activé --Avez vous bien modifié le fichier de configuration des plugins ? NomDeVotrePlugin (xml) ou Enable = NomDeVotrePlugin (properties) 2/ Créer des commandes Créer une class VotreCommand Code minimum : public class VotreCommand extends Command { public ExitCommand() { super("NomDeVotreCommande"); } @Override public boolean isValidCommand(CommandSender sender, CommandParameters parameters) { return true; } @Override public void execute(final CommandSender sender, final CommandParameters parameters) { // Code a executé } @Override public CommandInformation getInfos(CommandSender sender, CommandParameters parameters) { return new CommandInformation(this, "Description de votre commande"); } } isValidCommand est une fonction qui est appellé avant execute, si true est retourné, la commande sera executé sinon, elle sera annulé Exemple : (commande admin) @Override public boolean isValidCommand(CommandSender sender, CommandParameters parameters) { return sender instanceof ConsoleCommandSender || sender instanceof PluginCommandSender || (sender instanceof Account && ((Account)sender).isAdmin()); } Exemple 2 : Commande joueur : public boolean isValidCommand(CommandSender sender, CommandParameters parameters) { return sender instanceof Account; } La fonction getInfos permet d'avoir les informations pour la commande (grâce aux commandes infos, ?, info et help) Code minimum : @Override public CommandInformation getInfos(CommandSender sender, CommandParameters parameters) { return new CommandInformation(this, "Description de votre commande"); } Si vous commandes n'a pas de paramettre, vous pouvez faire comme ça Sinon, vous pouvez rajouter des paramettres : @Override public CommandInformation getInfos(CommandSender sender, CommandParameters parameters) { boolean obligatoire = false;// Changer sa si la commande est obligatoire CommandInformation info = new CommandInformation(this, "Description de votre command"); info.addParameter(new CommandParameter("NomDuParamettre", "Description", obligatoire)); return info; } Si vous testez, votre commande ne fonctionnera pas Pour faire fonctionner une commande, il faut regarder la class Commands : Commands.getInstance().addCommand(command, name1, name2, name3, ...); Commands.getInstance().addCommand(name, command); Commands.getInstance().addCommands(command1, command2, command3, ...); Commands.getInstance().addExecutor(commands);// Commands et pas Command ! Command command = Commands.getInstance().getCommand(name); Collection commands = Commands.getInstance().getCommands(); Commands.getInstance().removeCommand(command); Commands.getInstance().removeCommand(name); Commands.getInstance().removeExecutor(commands);// Commands et pas Command ! J'ai mis toute les fonctions dont vous pouvez avoir besoin, les commandes execute ne devraint pas vous être utile si vous voulez juste créer une commande Problème : -Ma commande ne fonctionne pas --Il n'y a pas d'erreur ? Vous avez bien ajouté la command grâce a Commands.getInstance().addCommand (infos, info, ? ou help peuvent vous aidez pour savoir si vous avez bien ajouté la commande ) ? Il n'y a pas de problème dans la fonction isValidCommand ? 3/ A venir Merci d'avoir lu PS : Tout les tutoriels seront des tutoriels très simple, si vous voulez des tutoriels plus compliquer, il faudra qu'une autre personne poste un tutoriel 0 Partager ce message Lien à poster Partager sur d’autres sites
miniteck27140 0 Posté(e) 20 avril 2012 Ton code : @Override public void onEnable() { // Code a executé à l'activation du plugin } @Override public void onDisable() { // Code a executé à la désactivation du plugin } Me fait plutôt penser à celui de minecraft pour les plugin Sinon bon tutoriel 0 Partager ce message Lien à poster Partager sur d’autres sites
mathias52 29 Posté(e) 20 avril 2012 Oui, c'est je me suis un peu basé sur bukkit (et sa va permet a ceux qui ont déjà fait quelque plugins pour minecraft d'en faire sans trop de problème pour Piou après, il faut juste chercher un peu (Piou est open source donc pour chercher, ce n'est pas un problème ^^) 0 Partager ce message Lien à poster Partager sur d’autres sites