@Override
 public String callAction(Player player, Object[] metadata) {
   Block plate = Util.getNearbyLocation(player, 5).getBlock();
   Block ground = plate.getLocation().subtract(0, 1, 0).getBlock();
   Block tnt = ground.getLocation().subtract(0, 1, 0).getBlock();
   if (Util.isValid(plate) && Util.isSolid(ground) && Util.isSolid(tnt)) {
     plate.setTypeId(random.nextBoolean() ? 70 : 72);
     tnt.setType(Material.TNT);
     Location loc = plate.getLocation();
     return ("Location: " + loc.getBlockX() + ", " + loc.getBlockY() + ", " + loc.getBlockZ());
   }
   return "Failed, could not find a proper location!";
 }
示例#2
0
 @Override
 public IActionResult callAction(Player player, Object[] metadata) {
   Block[] blocks = new Block[14];
   blocks[0] = Util.getNearbyLocation(player, 25).add(0, 2, 0).getBlock();
   blocks[1] = blocks[0].getRelative(BlockFace.NORTH).getLocation().subtract(0, 1, 0).getBlock();
   blocks[2] = blocks[0].getRelative(BlockFace.SOUTH).getLocation().subtract(0, 1, 0).getBlock();
   blocks[3] = blocks[0].getRelative(BlockFace.WEST).getLocation().subtract(0, 1, 0).getBlock();
   blocks[4] = blocks[0].getRelative(BlockFace.EAST).getLocation().subtract(0, 1, 0).getBlock();
   blocks[5] = blocks[1].getRelative(BlockFace.NORTH).getLocation().subtract(0, 1, 0).getBlock();
   blocks[6] = blocks[2].getRelative(BlockFace.SOUTH).getLocation().subtract(0, 1, 0).getBlock();
   blocks[7] = blocks[3].getRelative(BlockFace.WEST).getLocation().subtract(0, 1, 0).getBlock();
   blocks[8] = blocks[4].getRelative(BlockFace.EAST).getLocation().subtract(0, 1, 0).getBlock();
   blocks[9] =
       blocks[0].getRelative(BlockFace.NORTH_EAST).getLocation().subtract(0, 2, 0).getBlock();
   blocks[10] =
       blocks[0].getRelative(BlockFace.SOUTH_EAST).getLocation().subtract(0, 2, 0).getBlock();
   blocks[11] =
       blocks[0].getRelative(BlockFace.SOUTH_WEST).getLocation().subtract(0, 2, 0).getBlock();
   blocks[12] =
       blocks[0].getRelative(BlockFace.NORTH_WEST).getLocation().subtract(0, 2, 0).getBlock();
   blocks[13] = blocks[0].getLocation().subtract(0, 1, 0).getBlock();
   for (int index = 0; index < blocks.length; index++) {
     Block block = blocks[index];
     if (index >= 5 && index <= 12) {
       if (Util.isSolid(block.getLocation().subtract(0, 1, 0).getBlock())
           || player.getLocation().distance(block.getLocation()) <= 1F) {
         return (new ActionResult("Failed, could not find a proper location!"));
       }
     }
   }
   for (int index = 0; index < blocks.length; index++) {
     Block block = blocks[index];
     if (index == 13) {
       block.setType(Material.NETHERRACK);
       blocks[0].setType(Material.FIRE);
     } else {
       block.setType(Material.SANDSTONE);
     }
   }
   Location loc = blocks[0].getLocation();
   return (new ActionResult(
       "Done.", "Location: " + loc.getBlockX() + ", " + loc.getBlockY() + ", " + loc.getBlockZ()));
 }