CommandSpeed.java 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. package me.km.commands;
  2. import me.kt.api.Utils;
  3. import me.kt.api.GlobalText;
  4. import me.kt.api.Module;
  5. import me.kt.api.ModuleCommand;
  6. import me.kt.exceptions.PlayerNotFoundException;
  7. import org.bukkit.command.CommandSender;
  8. import org.bukkit.entity.Player;
  9. public class CommandSpeed extends ModuleCommand
  10. {
  11. public CommandSpeed(Module m)
  12. {
  13. super("speed", m);
  14. this.setDescription("Setzt das Tempo eines Spielers");
  15. this.setUsage("/speed <1-10> [player]");
  16. this.setPermission("kt.speed");
  17. }
  18. @Override
  19. public boolean execute(CommandSender cs, String string, String[] arg)
  20. {
  21. if(arg.length == 0)
  22. {
  23. return false;
  24. }
  25. int i;
  26. try
  27. {
  28. i = Integer.parseInt(arg[0]);
  29. if(i < 1)
  30. {
  31. throw new NumberFormatException();
  32. }
  33. }
  34. catch(NumberFormatException ex)
  35. {
  36. this.getModule().send(cs, GlobalText.noPositiveNaturalNumber());
  37. return true;
  38. }
  39. if(i > 10)
  40. {
  41. i = 10;
  42. }
  43. float f = i / 20f;
  44. Player affectedPlayer;
  45. try
  46. {
  47. affectedPlayer = Utils.getPlayerByName(arg[1]);
  48. affectedPlayer.setFlySpeed(f);
  49. affectedPlayer.setWalkSpeed(f * 2);
  50. this.getModule().send(affectedPlayer, "Du hast nun Tempo " + i + ".");
  51. this.getModule().send(cs, affectedPlayer.getName() + " hat nun Tempo " + i + ".");
  52. }
  53. catch(PlayerNotFoundException ex)
  54. {
  55. this.getModule().send(cs, GlobalText.cantFindPlayer(arg[1]));
  56. return true;
  57. }
  58. catch(IndexOutOfBoundsException ex)
  59. {
  60. if(!(cs instanceof Player))
  61. {
  62. this.getModule().send(cs, GlobalText.missingParameter());
  63. return true;
  64. }
  65. affectedPlayer = (Player) cs;
  66. affectedPlayer.setFlySpeed(f);
  67. affectedPlayer.setWalkSpeed(f * 2);
  68. this.getModule().send(affectedPlayer, "Du hast nun Tempo " + i + ".");
  69. }
  70. return true;
  71. }
  72. }