Jump to content
La fin ?! Elle est là ! ×
×
×
  • Create New...

[Piou] Tutoriels


mathias52
 Share

Recommended Posts

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 ;)

Link to comment
Share on other sites

  • Replies 2
  • Created
  • Last Reply

Top Posters In This Topic

Popular Days

Top Posters In This Topic

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

Link to comment
Share on other sites

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 ^^)

Link to comment
Share on other sites

 Share



Important Information

Terms of Use / Privacy Policy / Guidelines / We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.