CommandHuman.java 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  1. package me.km.datatools;
  2. import me.km.api.GlobalText;
  3. import me.km.api.Module;
  4. import me.km.api.ModuleCommand;
  5. import me.km.api.Utils;
  6. import java.util.ArrayList;
  7. import java.util.Arrays;
  8. import java.util.List;
  9. import me.km.entities.EntityHuman;
  10. import me.km.permissions.Permissions;
  11. import net.minecraft.command.ICommandSender;
  12. import net.minecraft.entity.player.EntityPlayerMP;
  13. import net.minecraft.server.MinecraftServer;
  14. import net.minecraft.util.math.BlockPos;
  15. import net.minecraft.world.World;
  16. public class CommandHuman extends ModuleCommand
  17. {
  18. private final ArrayList<String> first;
  19. public CommandHuman(Module m)
  20. {
  21. super("human", m);
  22. super.setDescription("Spezielle Commands für Humans");
  23. super.setUsage("/human für die Hilfe");
  24. super.setPermission(Permissions.HUMAN);
  25. super.addAlias("h");
  26. first = new ArrayList<>(Arrays.asList(new String[]
  27. {"spawn", "set", "kill", "size", "slim"}));
  28. }
  29. @Override
  30. public List<String> getTabCompletions(MinecraftServer server, ICommandSender sender, String[] args, BlockPos targetPos)
  31. {
  32. List<String> names = new ArrayList<>();
  33. switch (args.length)
  34. {
  35. case 1:
  36. first.stream().filter(e -> e.toLowerCase().startsWith(args[0].toLowerCase())).forEach(e ->
  37. {
  38. names.add(e);
  39. });
  40. break;
  41. }
  42. return names;
  43. }
  44. @Override
  45. public boolean execute(ICommandSender cs, String[] arg)
  46. {
  47. if(!(cs instanceof EntityPlayerMP))
  48. {
  49. this.getModule().send(cs, GlobalText.onlyPlayer());
  50. return true;
  51. }
  52. EntityPlayerMP p = (EntityPlayerMP) cs;
  53. Module m = this.getModule();
  54. if(arg.length >= 1)
  55. {
  56. switch (arg[0])
  57. {
  58. case "spawn":
  59. {
  60. World w = p.getEntityWorld();
  61. EntityHuman h = new EntityHuman(w);
  62. h.setPosition(p.posX, p.posY, p.posZ);
  63. w.spawnEntity(h);
  64. return true;
  65. }
  66. case "set":
  67. {
  68. if(arg.length < 2)
  69. {
  70. break;
  71. }
  72. EntityHuman h = Utils.getTargetedEntity(p, 3, EntityHuman.class);
  73. if(h == null)
  74. {
  75. m.send(cs, "Du musst auf einen Human gerichtet sein.");
  76. return true;
  77. }
  78. h.setName(arg[1]);
  79. m.send(cs, "Die Daten wurden geändert.");
  80. return true;
  81. }
  82. case "kill":
  83. {
  84. EntityHuman h = Utils.getTargetedEntity(p, 3, EntityHuman.class);
  85. if(h == null)
  86. {
  87. m.send(cs, "Du musst auf einen Human gerichtet sein.");
  88. return true;
  89. }
  90. h.setDead();
  91. m.send(cs, "Der Human wurde getötet.");
  92. return true;
  93. }
  94. case "size":
  95. {
  96. if(arg.length < 2)
  97. {
  98. break;
  99. }
  100. EntityHuman h = Utils.getTargetedEntity(p, 3, EntityHuman.class);
  101. if(h == null)
  102. {
  103. m.send(cs, "Du musst auf einen Human gerichtet sein.");
  104. return true;
  105. }
  106. float scale;
  107. try
  108. {
  109. scale = Float.parseFloat(arg[1]);
  110. }
  111. catch(NumberFormatException ex)
  112. {
  113. m.send(cs, "Du musst einen gültigen Float eingeben.");
  114. return true;
  115. }
  116. h.setScale(scale);
  117. m.send(cs, "Der Human wurde skaliert.");
  118. return true;
  119. }
  120. case "slim":
  121. {
  122. EntityHuman h = Utils.getTargetedEntity(p, 3, EntityHuman.class);
  123. if(h == null)
  124. {
  125. m.send(cs, "Du musst auf einen Human gerichtet sein.");
  126. return true;
  127. }
  128. h.setSlim(!h.isSlim());
  129. m.send(cs, "Der Skin wurde geändert.");
  130. return true;
  131. }
  132. }
  133. }
  134. m.send(cs, "/human ...");
  135. m.sendHelpListElement(cs, "spawn", "Spawnt einen Human");
  136. m.sendHelpListElement(cs, "set <name>", "Setzt den Namen");
  137. m.sendHelpListElement(cs, "kill", "Tötet einen Human");
  138. m.sendHelpListElement(cs, "size <scale>", "Setzt die Größenskalierung");
  139. m.sendHelpListElement(cs, "slim", "Schaltet Alex/Steve Skin");
  140. return true;
  141. }
  142. }