hassansyyid

Untitled

Nov 23rd, 2015
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.99 KB | None | 0 0
  1. package io.github.hsyyid.essentialcmds.cmdexecutors;
  2.  
  3. import org.spongepowered.api.block.BlockTypes;
  4. import org.spongepowered.api.data.key.Keys;
  5. import org.spongepowered.api.entity.EntityType;
  6. import org.spongepowered.api.entity.EntityTypes;
  7. import org.spongepowered.api.entity.living.player.Player;
  8. import org.spongepowered.api.text.Texts;
  9. import org.spongepowered.api.text.format.TextColors;
  10. import org.spongepowered.api.util.blockray.BlockRay;
  11. import org.spongepowered.api.util.blockray.BlockRayHit;
  12. import org.spongepowered.api.util.command.CommandException;
  13. import org.spongepowered.api.util.command.CommandResult;
  14. import org.spongepowered.api.util.command.CommandSource;
  15. import org.spongepowered.api.util.command.args.CommandContext;
  16. import org.spongepowered.api.util.command.source.CommandBlockSource;
  17. import org.spongepowered.api.util.command.source.ConsoleSource;
  18. import org.spongepowered.api.util.command.spec.CommandExecutor;
  19. import org.spongepowered.api.world.World;
  20.  
  21. public class MobSpawnerExecutor implements CommandExecutor
  22. {
  23.     public CommandResult execute(CommandSource src, CommandContext ctx) throws CommandException
  24.     {
  25.         String entityType = ctx.<String> getOne("mob name").get();
  26.  
  27.         if (src instanceof Player)
  28.         {
  29.             Player player = (Player) src;
  30.             EntityType type = null;
  31.  
  32.             switch (entityType.toLowerCase())
  33.             {
  34.                 case "bat":
  35.                     type = EntityTypes.BAT;
  36.                     break;
  37.                 case "blaze":
  38.                     type = EntityTypes.BLAZE;
  39.                     break;
  40.                 case "cave spider":
  41.                     type = EntityTypes.CAVE_SPIDER;
  42.                     break;
  43.                 case "chicken":
  44.                     type = EntityTypes.CHICKEN;
  45.                     break;
  46.                 case "cow":
  47.                     type = EntityTypes.COW;
  48.                     break;
  49.                 case "creeper":
  50.                     type = EntityTypes.CREEPER;
  51.                     break;
  52.                 case "ender dragon":
  53.                     type = EntityTypes.ENDER_DRAGON;
  54.                     break;
  55.                 case "enderman":
  56.                     type = EntityTypes.ENDERMAN;
  57.                     break;
  58.                 case "endermite":
  59.                     type = EntityTypes.ENDERMITE;
  60.                     break;
  61.                 case "ghast":
  62.                     type = EntityTypes.GHAST;
  63.                     break;
  64.                 case "giant":
  65.                     type = EntityTypes.GIANT;
  66.                     break;
  67.                 case "guardian":
  68.                     type = EntityTypes.GUARDIAN;
  69.                     break;
  70.                 case "horse":
  71.                     type = EntityTypes.HORSE;
  72.                     break;
  73.                 case "iron golem":
  74.                     type = EntityTypes.IRON_GOLEM;
  75.                     break;
  76.                 case "magma cube":
  77.                     type = EntityTypes.MAGMA_CUBE;
  78.                     break;
  79.                 case "mushroom cow":
  80.                     type = EntityTypes.MUSHROOM_COW;
  81.                     break;
  82.                 case "ocelot":
  83.                     type = EntityTypes.OCELOT;
  84.                     break;
  85.                 case "pig":
  86.                     type = EntityTypes.PIG;
  87.                     break;
  88.                 case "pig zombie":
  89.                     type = EntityTypes.PIG_ZOMBIE;
  90.                     break;
  91.                 case "rabbit":
  92.                     type = EntityTypes.RABBIT;
  93.                     break;
  94.                 case "sheep":
  95.                     type = EntityTypes.SHEEP;
  96.                     break;
  97.                 case "silverfish":
  98.                     type = EntityTypes.SILVERFISH;
  99.                     break;
  100.                 case "skeleton":
  101.                     type = EntityTypes.SKELETON;
  102.                     break;
  103.                 case "slime":
  104.                     type = EntityTypes.SLIME;
  105.                     break;
  106.                 case "snowman":
  107.                     type = EntityTypes.SNOWMAN;
  108.                     break;
  109.                 case "spider":
  110.                     type = EntityTypes.SPIDER;
  111.                     break;
  112.                 case "squid":
  113.                     type = EntityTypes.SQUID;
  114.                     break;
  115.                 case "villager":
  116.                     type = EntityTypes.VILLAGER;
  117.                     break;
  118.                 case "witch":
  119.                     type = EntityTypes.WITCH;
  120.                     break;
  121.                 case "wither":
  122.                     type = EntityTypes.WITHER;
  123.                     break;
  124.                 case "wolf":
  125.                     type = EntityTypes.WOLF;
  126.                     break;
  127.                 case "zombie":
  128.                     type = EntityTypes.ZOMBIE;
  129.                     break;
  130.                 default:
  131.                     src.sendMessage(Texts.of(TextColors.DARK_RED, "Error! ", TextColors.RED, "The mob you inputed was not recognized."));
  132.                     return CommandResult.success();
  133.             }
  134.  
  135.             BlockRay<World> playerBlockRay = BlockRay.from(player).blockLimit(350).build();
  136.             BlockRayHit<World> finalHitRay = null;
  137.  
  138.             while (playerBlockRay.hasNext())
  139.             {
  140.                 BlockRayHit<World> currentHitRay = playerBlockRay.next();
  141.  
  142.                 if (player.getWorld().getBlockType(currentHitRay.getBlockPosition()).equals(BlockTypes.AIR))
  143.                 {
  144.                     continue;
  145.                 }
  146.                 else
  147.                 {
  148.                     finalHitRay = currentHitRay;
  149.                     break;
  150.                 }
  151.             }
  152.  
  153.             if(finalHitRay != null && finalHitRay.getLocation().getBlock().getType() == BlockTypes.MOB_SPAWNER)
  154.             {
  155.                 System.out.println(finalHitRay.getLocation().getTileEntity().get().offer(Keys.SPAWNABLE_ENTITY_TYPE, type).getType().toString());
  156.                 player.sendMessage(Texts.of(TextColors.GREEN, "Success! ", TextColors.YELLOW, "Updated mob spawner."));
  157.             }
  158.             else
  159.             {
  160.                 player.sendMessage(Texts.of(TextColors.DARK_RED, "Error! ", TextColors.RED, "Could not find a mob spawner you're looking at within range!"));
  161.             }
  162.         }
  163.         else if (src instanceof ConsoleSource)
  164.         {
  165.             src.sendMessage(Texts.of(TextColors.DARK_RED, "Error! ", TextColors.RED, "Must be an in-game player to use /mobspawner!"));
  166.         }
  167.         else if (src instanceof CommandBlockSource)
  168.         {
  169.             src.sendMessage(Texts.of(TextColors.DARK_RED, "Error! ", TextColors.RED, "Must be an in-game player to use /mobspawner!"));
  170.         }
  171.         return CommandResult.success();
  172.     }
  173. }
Advertisement
Add Comment
Please, Sign In to add comment