diff --git a/src/net/mc_pandacraft/java/plugin/pandacraftutils/commands/CommandAnimal.java b/src/net/mc_pandacraft/java/plugin/pandacraftutils/commands/CommandAnimal.java index 345960e..d84c0f9 100644 --- a/src/net/mc_pandacraft/java/plugin/pandacraftutils/commands/CommandAnimal.java +++ b/src/net/mc_pandacraft/java/plugin/pandacraftutils/commands/CommandAnimal.java @@ -8,7 +8,6 @@ import net.mc_pandacraft.java.plugin.pandacraftutils.players.OffPlayer; import net.mc_pandacraft.java.plugin.pandacraftutils.players.OnlinePlayer; import net.mc_pandacraft.java.plugin.pandacraftutils.players.OnlinePlayerManager; import net.mc_pandacraft.java.util.StringUtil; -import net.mc_pandacraft.java.util.TimeUtil; import net.minecraft.server.v1_7_R1.EntityHorse; import net.minecraft.server.v1_7_R1.GenericAttributes; @@ -18,7 +17,6 @@ import org.bukkit.command.CommandSender; import org.bukkit.craftbukkit.v1_7_R1.entity.CraftHorse; import org.bukkit.entity.Animals; import org.bukkit.entity.Damageable; -import org.bukkit.entity.Entity; import org.bukkit.entity.Horse; import org.bukkit.entity.Player; import org.bukkit.entity.Tameable; @@ -52,7 +50,7 @@ public class CommandAnimal extends AbstractCommandExecutor { // si le joueur veut désactiver la sélection d'un animal - if (args.length >= 1 && args[0].equalsIgnoreCase("annuler")) { + if (args.length == 0 || args[0].equalsIgnoreCase("annuler")) { p.sendMessage(ChatColor.GREEN+"La sélection d'un animal est désactivée"); op.resetAnimalSelection(); return true; @@ -118,17 +116,16 @@ public class CommandAnimal extends AbstractCommandExecutor { try { double jump = Double.parseDouble(args[2]); - p.sendMessage(ChatColor.RED+"Puissance de saut du cheval défini à "+StringUtil.formatDouble(jump)); + if (jump < 0) throw new NumberFormatException(); + p.sendMessage(ChatColor.GREEN+"Puissance de saut du cheval défini à "+StringUtil.formatDouble(jump)); jump *= 0.2D; h.setJumpStrength(jump); - } catch (NumberFormatException e) { - p.sendMessage(ChatColor.RED+"La valeur indiquée est invalide"); - return true; + p.sendMessage(ChatColor.RED+"La valeur indiquée est invalide. Nombre entre 0 et 10 (nombre décimal possible)"); } - + return true; } - if (args.length >= 3 && args[0].equalsIgnoreCase("vitesse")) { + if (args.length >= 3 && args[1].equalsIgnoreCase("vitesse")) { if (!(tameable instanceof Horse)) { p.sendMessage(ChatColor.RED+"Vous ne pouvez pas modifier la vitesse de cet animal"); @@ -139,20 +136,19 @@ public class CommandAnimal extends AbstractCommandExecutor { EntityHorse horse = ((CraftHorse)h).getHandle(); try { - double speed = Double.valueOf(args[1]).doubleValue(); - p.sendMessage(ChatColor.RED+"Vitesse du cheval défini à "+StringUtil.formatDouble(speed)); + double speed = Double.valueOf(args[2]).doubleValue(); + if (speed < 0 || speed > 100) throw new NumberFormatException(); + p.sendMessage(ChatColor.GREEN+"Vitesse du cheval défini à "+StringUtil.formatDouble(speed)); speed *= 0.1D; horse.getAttributeInstance(GenericAttributes.d).setValue(speed); - } catch (NumberFormatException e) { - p.sendMessage(ChatColor.RED+"La valeur indiquée est invalide"); - return true; + p.sendMessage(ChatColor.RED+"La valeur indiquée est invalide. Nombre entre 0 et 100 (nombre décimal possible)"); } - + return true; } } - if (args.length >= 2 && args[0].equalsIgnoreCase("info")) { + if (args.length >= 1 && args[0].equalsIgnoreCase("info")) { if (!(tameable instanceof Animals)) { p.sendMessage(ChatColor.RED+"L'entité sélectionné n'est pas un animal (erreur innatendu)"); return true; @@ -164,9 +160,7 @@ public class CommandAnimal extends AbstractCommandExecutor { p.sendMessage(ChatColor.GOLD+"Propriétaire : "+ChatColor.RESET+(new OffPlayer(tameable.getOwner().getName()).getDisplayName())); else p.sendMessage(ChatColor.GOLD+"Propriétaire : "+ChatColor.GRAY+"Non apprivoisé"); - p.sendMessage(ChatColor.GOLD+"Durée de vie : "+ChatColor.GRAY+TimeUtil.durationToString(animal.getTicksLived()*50L)); p.sendMessage(ChatColor.GOLD+"Nom personnalisé : "+ChatColor.RESET+((animal.getCustomName() != null) ? animal.getCustomName() : ChatColor.GRAY+"Aucun")); - double health = ((Damageable)animal).getHealth(); p.sendMessage(ChatColor.GOLD+"Point de vie : "+ChatColor.GRAY+((int)((Damageable)animal).getHealth())+"/"+((int)((Damageable)animal).getMaxHealth())+ChatColor.GOLD+" (2 points = 1 "+ChatColor.RED+"♥"+ChatColor.GOLD+")"); p.sendMessage(ChatColor.GOLD+"Respiration sous l'eau : "+ChatColor.GRAY+animal.getRemainingAir()+"/"+animal.getMaximumAir()); @@ -179,6 +173,8 @@ public class CommandAnimal extends AbstractCommandExecutor { double speed = ((CraftHorse)cheval).getHandle().getAttributeInstance(GenericAttributes.d).getValue(); p.sendMessage(ChatColor.GOLD+"Vitesse de course : "+ChatColor.GRAY+(speed/0.1D)); } + + return true; } diff --git a/src/net/mc_pandacraft/java/plugin/pandacraftutils/commands/PandacraftUtilsCommandsManager.java b/src/net/mc_pandacraft/java/plugin/pandacraftutils/commands/PandacraftUtilsCommandsManager.java index 5c0659e..b261c67 100644 --- a/src/net/mc_pandacraft/java/plugin/pandacraftutils/commands/PandacraftUtilsCommandsManager.java +++ b/src/net/mc_pandacraft/java/plugin/pandacraftutils/commands/PandacraftUtilsCommandsManager.java @@ -2,6 +2,8 @@ package net.mc_pandacraft.java.plugin.pandacraftutils.commands; import java.util.HashMap; +import org.bukkit.command.PluginCommand; + import net.mc_pandacraft.java.plugin.pandacraftutils.PandacraftUtils; /** @@ -66,7 +68,11 @@ public class PandacraftUtilsCommandsManager { // complétion des commandes des autres plugins plugin.getServer().getScheduler().runTaskLater(plugin, new Runnable() { @Override public void run() { - plugin.getServer().getPluginCommand("region").setTabCompleter(new TabCompleterWorldGuardRegion()); + PluginCommand cmd; + + cmd = plugin.getServer().getPluginCommand("region"); + if (cmd != null) + cmd.setTabCompleter(new TabCompleterWorldGuardRegion()); } }, 1L);