CommandSpawner.java 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  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.permissions.Permissions;
  7. import net.minecraft.command.ICommandSender;
  8. import net.minecraft.entity.Entity;
  9. import net.minecraft.entity.EntityList;
  10. import net.minecraft.entity.player.EntityPlayer;
  11. import net.minecraft.tileentity.TileEntity;
  12. import net.minecraft.tileentity.TileEntityMobSpawner;
  13. import net.minecraft.util.math.BlockPos;
  14. public class CommandSpawner extends ModuleCommand
  15. {
  16. public CommandSpawner(Module m)
  17. {
  18. super("spawner", m);
  19. super.setDescription("Ändert den Typ eines Spawners");
  20. super.setUsage("/spawner <mob>");
  21. super.setPermission(Permissions.SPAWN);
  22. }
  23. @Override
  24. public boolean execute(ICommandSender cs, String[] arg)
  25. {
  26. if(!(cs instanceof EntityPlayer))
  27. {
  28. this.getModule().send(cs, GlobalText.onlyPlayer());
  29. return true;
  30. }
  31. if(arg.length < 1)
  32. {
  33. return false;
  34. }
  35. Class<? extends Entity> c;
  36. try
  37. {
  38. c = (Class<? extends Entity>) Class.forName(arg[0]);
  39. }
  40. catch(ClassNotFoundException | ClassCastException ex)
  41. {
  42. this.getModule().send(cs, "Dieser Typ existiert nicht.");
  43. return true;
  44. }
  45. EntityPlayer p = (EntityPlayer) cs;
  46. BlockPos pos = Utils.getPlayerTarget(p);
  47. TileEntity tile = p.world.getTileEntity(pos);
  48. if(!(tile instanceof TileEntityMobSpawner))
  49. {
  50. this.getModule().send(cs, "Du musst auf einen Spawner gerichtet sein.");
  51. return true;
  52. }
  53. TileEntityMobSpawner spawner = (TileEntityMobSpawner) tile;
  54. spawner.getSpawnerBaseLogic().setEntityId(EntityList.getKey(c));
  55. String s = c.getSimpleName();
  56. this.getModule().send(cs, "Der Spawner spawnt nun den Typ §6" + s.substring(0, s.length() - 6) + "§r.");
  57. return true;
  58. }
  59. }