CommandSpeed.java 2.4 KB

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