CommandExp.java 7.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184
  1. package me.km.commands;
  2. import me.km.permissions.Permissions;
  3. import me.km.api.Utils;
  4. import me.km.api.GlobalText;
  5. import me.km.api.Module;
  6. import me.km.api.ModuleCommand;
  7. import me.km.exception.PlayerNotFoundException;
  8. import net.minecraft.command.ICommandSender;
  9. import net.minecraft.entity.player.EntityPlayer;
  10. public class CommandExp extends ModuleCommand
  11. {
  12. public CommandExp(Module m)
  13. {
  14. super("exp", m);
  15. super.setDescription("Befehle um die EXP eines Spielers zu verändern");
  16. super.setUsage("/exp für die Hilfe");
  17. super.setPermission(Permissions.EXP);
  18. }
  19. @Override
  20. public boolean execute(ICommandSender cs, String[] arg)
  21. {
  22. Module m = this.getModule();
  23. if(arg.length >= 1)
  24. {
  25. switch(arg[0])
  26. {
  27. case "show":
  28. {
  29. EntityPlayer p;
  30. try
  31. {
  32. p = Utils.getPlayerByName(arg[1]);
  33. m.send(cs, p.getName() + " hat " + p.experienceTotal + " XP (Level: " + p.experienceLevel + ").");
  34. }
  35. catch(PlayerNotFoundException ex)
  36. {
  37. m.send(cs, GlobalText.cantFindPlayer(arg[1]));
  38. return true;
  39. }
  40. catch(IndexOutOfBoundsException ex)
  41. {
  42. if(!(cs instanceof EntityPlayer))
  43. {
  44. m.send(cs, GlobalText.missingParameter());
  45. return true;
  46. }
  47. p = (EntityPlayer) cs;
  48. m.send(cs, "Du hast " + p.experienceTotal + " XP (Level: " + p.experienceLevel + ").");
  49. }
  50. return true;
  51. }
  52. case "set":
  53. {
  54. if(arg.length >= 2)
  55. {
  56. EntityPlayer p;
  57. try
  58. {
  59. p = Utils.getPlayerByName(arg[2]);
  60. try
  61. {
  62. int i = Integer.parseInt(arg[1]);
  63. if(i < 0)
  64. {
  65. throw new NumberFormatException();
  66. }
  67. p.experienceLevel = 0;
  68. p.experience = 0;
  69. p.experienceTotal = 0;
  70. p.addExperience(i);
  71. m.send(cs, p.getName() + " hat nun " + arg[1] + " XP.");
  72. m.send(p, "Deine XP wurden auf " + arg[1] + " gesetzt.");
  73. }
  74. catch(NumberFormatException ex)
  75. {
  76. m.send(cs, GlobalText.noNaturalNumber());
  77. return true;
  78. }
  79. }
  80. catch(PlayerNotFoundException ex)
  81. {
  82. m.send(cs, GlobalText.cantFindPlayer(arg[2]));
  83. return true;
  84. }
  85. catch(IndexOutOfBoundsException ex)
  86. {
  87. if(!(cs instanceof EntityPlayer))
  88. {
  89. m.send(cs, GlobalText.missingParameter());
  90. return true;
  91. }
  92. p = (EntityPlayer) cs;
  93. try
  94. {
  95. int i = Integer.parseInt(arg[1]);
  96. if(i <= 0)
  97. {
  98. throw new NumberFormatException();
  99. }
  100. p.experienceLevel = 0;
  101. p.experience = 0;
  102. p.experienceTotal = 0;
  103. p.addExperience(i);
  104. m.send(p, "Deine XP wurden auf " + arg[1] + " gesetzt.");
  105. }
  106. catch(NumberFormatException ex2)
  107. {
  108. m.send(cs, GlobalText.noPositiveNaturalNumber());
  109. return true;
  110. }
  111. }
  112. return true;
  113. }
  114. }
  115. case "give":
  116. {
  117. if(arg.length >= 2)
  118. {
  119. EntityPlayer p;
  120. try
  121. {
  122. p = Utils.getPlayerByName(arg[2]);
  123. try
  124. {
  125. int i = Integer.parseInt(arg[1]);
  126. if(i <= 0)
  127. {
  128. throw new NumberFormatException();
  129. }
  130. p.addExperience(i);
  131. m.send(cs, p.getName() + " wurden " + arg[1] + " XP gegeben.");
  132. m.send(p, "Dir wurden " + arg[1] + " XP gegeben.");
  133. }
  134. catch(NumberFormatException ex)
  135. {
  136. m.send(cs, GlobalText.noPositiveNaturalNumber());
  137. return true;
  138. }
  139. }
  140. catch(PlayerNotFoundException ex)
  141. {
  142. m.send(cs, GlobalText.cantFindPlayer(arg[2]));
  143. return true;
  144. }
  145. catch(IndexOutOfBoundsException ex)
  146. {
  147. if(!(cs instanceof EntityPlayer))
  148. {
  149. m.send(cs, GlobalText.missingParameter());
  150. return true;
  151. }
  152. p = (EntityPlayer) cs;
  153. try
  154. {
  155. int i = Integer.parseInt(arg[1]);
  156. if(i <= 0)
  157. {
  158. throw new NumberFormatException();
  159. }
  160. p.addExperience(i);
  161. m.send(p, "Dir wurden " + arg[1] + " XP gegeben.");
  162. }
  163. catch(NumberFormatException ex2)
  164. {
  165. m.send(cs, GlobalText.noPositiveNaturalNumber());
  166. return true;
  167. }
  168. }
  169. return true;
  170. }
  171. }
  172. }
  173. }
  174. m.send(cs, "/exp ...");
  175. m.sendHelpListElement(cs, "show [player]", "Zeigt die EXP eines Spielers");
  176. m.sendHelpListElement(cs, "set <amount> [player]", "Setzt die EXP eines Spielers");
  177. m.sendHelpListElement(cs, "give <amount> [player]", "Gibt dem Spieler EXP");
  178. return true;
  179. }
  180. }