Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Right click with compass to teleport 1 block over with all the blocks you're standing on
- if (handItem.getType()==Material.COMPASS) {
- Location lcto = player.getLocation();
- double x = lcto.getX();
- double y = lcto.getY();
- double z = lcto.getZ();
- Location lctn = new Location(world,x+1,y,z);
- lctn.setPitch(lcto.getPitch());
- lctn.setYaw(lcto.getYaw());
- Location lctb = new Location(world,x,y-1,z);
- Block tblock = world.getBlockAt(lctb);
- ArrayList<Block> blockArray = new ArrayList<Block>();
- HashSet<Location> locationArray = new HashSet<Location>();
- o = 0;
- moveBlock(blockArray,locationArray,tblock);
- moveBlocks(blockArray,world,1,0,0);
- player.teleport(lctn);
- player.sendMessage("Blocks Moved: "+ChatColor.LIGHT_PURPLE + String.valueOf(o) + ChatColor.WHITE + ".");
- event.setCancelled(true);
- }
- //moveBlock; is actually collecting all the blocks under you
- public boolean moveBlock(ArrayList<Block> blockArray,HashSet<Location> locationArray,Block block) {
- if (o>500) {
- return false;
- }
- if (block.getType().equals(Material.AIR) || block.getType().equals(Material.WATER) || block.getType().equals(Material.STATIONARY_WATER) ) {
- return false;
- }
- if (locationArray.contains(block.getLocation())){
- return false;
- }
- World world = block.getWorld();
- int x1 = block.getX();
- int y1 = block.getY();
- int z1 = block.getZ();
- blockArray.add(block);
- locationArray.add(block.getLocation());
- moveBlock(blockArray,locationArray,world.getBlockAt(x1+1,y1,z1));
- moveBlock(blockArray,locationArray,world.getBlockAt(x1-1,y1,z1));
- moveBlock(blockArray,locationArray,world.getBlockAt(x1,y1+1,z1));
- moveBlock(blockArray,locationArray,world.getBlockAt(x1,y1-1,z1));
- moveBlock(blockArray,locationArray,world.getBlockAt(x1,y1,z1+1));
- moveBlock(blockArray,locationArray,world.getBlockAt(x1,y1,z1-1));
- o += 1;
- return true;
- }
- //moveBlocks; is moving all those blocks over by 1
- public void moveBlocks(ArrayList<Block> blockArray,World world,int x,int y,int z){
- int i;
- Block block;
- for(i=0;i<blockArray.size();i+=1) {
- block = blockArray.get(i);
- world.getBlockAt(block.getX()+x,block.getY()+y,block.getZ()+z).setType(block.getType());
- block.setType(Material.AIR);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement