Package org.bukkit.block

Examples of org.bukkit.block.Block


    this.wall = newWall;

    ZoneVolume zoneVolume = this.warzone.getVolume();
    this.calculateLobbyWidth();

    Block corner1 = null;
    Block corner2 = null;

    if (this.wall == Direction.NORTH()) {
      int wallStart = zoneVolume.getMinZ();
      int wallEnd = zoneVolume.getMaxZ();
      int x = zoneVolume.getMinX();
View Full Code Here


        this.volume.setFloorOutline(warzone.getLobbyMaterials().getOutlineBlock());
      }

      // add war hub link gate
      if (War.war.getWarHub() != null) {
        Block linkGateBlock = this.warHubLinkGate.getBlock();
        this.placeWarhubLinkGate(linkGateBlock, warzone.getLobbyMaterials().getGateBlock());
        // add warhub sign
        String[] lines = (War.war.getString("sign.lobby.warhub") + ' ').split("\n");
        this.resetGateSign(linkGateBlock, lines, false);
      }

      // add team gates or single auto assign gate
      this.placeAutoAssignGate();
      for (String teamName : this.teamGateBlocks.keySet()) {
        Block gateInfo = this.teamGateBlocks.get(teamName).getBlock();
        this.placeTeamGate(gateInfo, TeamKind.teamKindFromString(teamName));
      }
      for (Team t : this.warzone.getTeams()) {
        this.resetTeamGateSign(t);
      }

      // set zone tp
      this.zoneTeleportBlock = this.lobbyMiddleWallBlock.getBlock().getRelative(this.wall, 6).getLocation();
      int yaw = 0;
      if (this.wall == Direction.WEST()) {
        yaw = 180;
      } else if (this.wall == Direction.SOUTH()) {
        yaw = 90;
      } else if (this.wall == Direction.EAST()) {
        yaw = 0;
      } else if (this.wall == Direction.NORTH()) {
        yaw = 270;
      }
      this.warzone.setTeleport(new Location(this.volume.getWorld(), this.zoneTeleportBlock.getX(), this.zoneTeleportBlock.getY(), this.zoneTeleportBlock.getZ(), yaw, 0));

      // set to air the minimum path
      BlockFace front = this.wall;
      BlockFace leftSide = null; // looking at the zone
      BlockFace rightSide = null;
     
      if (this.wall == Direction.NORTH()) {
        leftSide = Direction.EAST();
        rightSide = Direction.WEST();
      } else if (this.wall == Direction.EAST()) {
        leftSide = Direction.SOUTH();
        rightSide = Direction.NORTH();
      } else if (this.wall == Direction.SOUTH()) {
        leftSide = Direction.WEST();
        rightSide = Direction.EAST();
      } else if (this.wall == Direction.WEST()) {
        leftSide = Direction.NORTH();
        rightSide = Direction.SOUTH();
      }
     
      Block clearedPathStartBlock = this.lobbyMiddleWallBlock.getBlock().getRelative(this.wall, 2);
      Volume warzoneTeleportAir = new Volume("warzoneTeleport", clearedPathStartBlock.getWorld());
      warzoneTeleportAir.setCornerOne(clearedPathStartBlock.getRelative(leftSide));
      warzoneTeleportAir.setCornerTwo(clearedPathStartBlock.getRelative(rightSide).getRelative(front, 4).getRelative(BlockFace.UP));
      warzoneTeleportAir.setToMaterial(Material.AIR);
     
      clearedPathStartBlock.setType(Material.AIR);
      clearedPathStartBlock.getRelative(BlockFace.UP).setType(Material.AIR);
      clearedPathStartBlock.getRelative(this.wall).setType(Material.AIR);
      clearedPathStartBlock.getRelative(this.wall).getRelative(BlockFace.UP).setType(Material.AIR);
      clearedPathStartBlock.getRelative(this.wall).getRelative(this.wall).setType(Material.AIR)// teleport block
      clearedPathStartBlock.getRelative(this.wall).getRelative(this.wall).getRelative(BlockFace.UP).setType(Material.AIR);
      clearedPathStartBlock.getRelative(this.wall).getRelative(this.wall).getRelative(this.wall).setType(Material.AIR)
      clearedPathStartBlock.getRelative(this.wall).getRelative(this.wall).getRelative(this.wall).getRelative(BlockFace.UP).setType(Material.AIR);
      clearedPathStartBlock.getRelative(this.wall).getRelative(this.wall).getRelative(this.wall).getRelative(this.wall).setType(Material.AIR)
      clearedPathStartBlock.getRelative(this.wall).getRelative(this.wall).getRelative(this.wall).getRelative(this.wall).getRelative(BlockFace.UP).setType(Material.AIR);
      clearedPathStartBlock.getRelative(this.wall).getRelative(this.wall).getRelative(this.wall).getRelative(this.wall).getRelative(this.wall).setType(Material.AIR)
      clearedPathStartBlock.getRelative(this.wall).getRelative(this.wall).getRelative(this.wall).getRelative(this.wall).getRelative(this.wall).getRelative(BlockFace.UP).setType(Material.AIR);
     
      // set zone sign
      Block zoneSignBlock = this.lobbyMiddleWallBlock.getBlock().getRelative(this.wall, 4);
      zoneSignBlock.setType(Material.SIGN_POST);
      org.bukkit.block.Sign block = (org.bukkit.block.Sign) zoneSignBlock.getState();
      org.bukkit.material.Sign data = (Sign) block.getData();
      data.setFacingDirection(this.wall);
      block.setData(data);
      String[] lines = new String[4];
      if (this.autoAssignGate != null) {
View Full Code Here

      }
     
     
      List<Team> teams = this.warzone.getTeams();
     
      Block autoAssignGateBlock = this.autoAssignGate.getBlock();
     
      // minimal air path
      this.clearGatePath(autoAssignGateBlock, front, leftSide, rightSide, false);
     
      // gate blocks
      BlockState lightBlock = autoAssignGateBlock.getRelative(BlockFace.DOWN).getState();
      lightBlock.setType(warzone.getLobbyMaterials().getLightBlock().getType());
      lightBlock.setData(warzone.getLobbyMaterials().getLightBlock().getData());
      lightBlock.update(true);
      int size = teams.size();
      if (size > 0) {
        TeamKind[] doorBlockKinds = new TeamKind[7];
        for (int i = 0; i < 7; i++) {
          doorBlockKinds[i] = teams.get(i % size).getKind();
        }
        this.setBlock(autoAssignGateBlock.getRelative(leftSide), doorBlockKinds[0]);
        this.setBlock(autoAssignGateBlock.getRelative(leftSide).getRelative(BlockFace.UP), doorBlockKinds[1]);
        this.setBlock(autoAssignGateBlock.getRelative(leftSide).getRelative(BlockFace.UP).getRelative(BlockFace.UP), doorBlockKinds[2]);
        this.setBlock(autoAssignGateBlock.getRelative(BlockFace.UP).getRelative(BlockFace.UP), doorBlockKinds[3]);
        this.setBlock(autoAssignGateBlock.getRelative(rightSide).getRelative(BlockFace.UP).getRelative(BlockFace.UP), doorBlockKinds[4]);
        this.setBlock(autoAssignGateBlock.getRelative(rightSide).getRelative(BlockFace.UP), doorBlockKinds[5]);
        this.setBlock(autoAssignGateBlock.getRelative(rightSide), doorBlockKinds[6]);
      }
    }
  }
View Full Code Here

      this.resetGateSign(gate, lines, true);
    }
  }

  private void resetGateSign(Block gate, String[] lines, boolean awayFromWall) {
    Block block = null;
    BlockFace direction = null;
    if (awayFromWall) {
      direction = this.wall;
    } else if (this.wall == Direction.NORTH()) {
      direction = Direction.SOUTH();
    } else if (this.wall == Direction.EAST()) {
      direction = Direction.WEST();
    } else if (this.wall == Direction.SOUTH()) {
      direction = Direction.NORTH();
    } else if (this.wall == Direction.WEST()) {
      direction = Direction.EAST();
    }

    if (this.wall == Direction.NORTH()) {
      block = gate.getRelative(direction).getRelative(BlockFace.UP, 2);
    } else if (this.wall == Direction.EAST()) {
      block = gate.getRelative(direction).getRelative(BlockFace.UP, 2);
    } else if (this.wall == Direction.SOUTH()) {
      block = gate.getRelative(direction).getRelative(BlockFace.UP, 2);
    } else if (this.wall == Direction.WEST()) {
      block = gate.getRelative(direction).getRelative(BlockFace.UP, 2);
    }

    block.setType(Material.WALL_SIGN);
    org.bukkit.block.Sign state = (org.bukkit.block.Sign) block.getState();
    org.bukkit.material.Sign data = (Sign) state.getData();
    data.setFacingDirection(direction);
    state.setData(data);
    for (int i = 0; i < 4; i++) {
      state.setLine(i, lines[i]);
View Full Code Here

  }

  private boolean leaving(Location location, Block gate, BlockFace inside, BlockFace left, BlockFace right) {
    // 3x4x1 deep
    Volume gateExitVolume = new Volume("tempGateExit", location.getWorld());
    Block out = gate.getRelative(inside);
    gateExitVolume.setCornerOne(out.getRelative(left).getRelative(BlockFace.DOWN));
    gateExitVolume.setCornerTwo(gate.getRelative(right, 1).getRelative(BlockFace.UP, 2));

    if (gateExitVolume.contains(location)) {
      return true;
    }
View Full Code Here

  }

  public Warzone getDestinationWarzoneForLocation(Location playerLocation) {
    Warzone zone = null;
    for (String zoneName : this.zoneGateBlocks.keySet()) {
      Block gate = this.zoneGateBlocks.get(zoneName);
      if (gate.getX() == playerLocation.getBlockX()
          && gate.getY() == playerLocation.getBlockY()
          && gate.getZ() == playerLocation.getBlockZ()) {
        zone = War.war.findWarzone(zoneName);
      }
    }
    return zone;
  }
View Full Code Here

        left = Direction.SOUTH();
        right = Direction.NORTH();
        back = Direction.EAST();
      }

      Block locationBlock = this.location.getWorld().getBlockAt(this.location.getBlockX(), this.location.getBlockY(), this.location.getBlockZ());

      this.volume.setWorld(this.location.getWorld());
      this.volume.setCornerOne(locationBlock.getRelative(back).getRelative(left, halfHubWidth).getRelative(BlockFace.DOWN));
      this.volume.setCornerTwo(locationBlock.getRelative(right, halfHubWidth).getRelative(front, hubDepth).getRelative(BlockFace.UP, hubHeigth));
      this.volume.saveBlocks();

      // glass floor
      if (!War.war.getWarhubMaterials().getFloorBlock().getType().equals(Material.AIR)) {
        // If air, don't set floor to air, just leave original ground. Otherwise apply material.
        this.volume.setFaceMaterial(BlockFace.DOWN, War.war.getWarhubMaterials().getFloorBlock());
      }
     
      if (!War.war.getWarhubMaterials().getOutlineBlock().getType().equals(Material.AIR)) {
        // If air, leave original blocks.
        this.volume.setFloorOutline(War.war.getWarhubMaterials().getOutlineBlock());
      }
     
      // clear minimal path around warhub tp
      Volume warhubTpVolume = new Volume("warhubtp", this.location.getWorld());
      warhubTpVolume.setCornerOne(locationBlock.getRelative(back).getRelative(left));
      warhubTpVolume.setCornerTwo(locationBlock.getRelative(front, 2).getRelative(right).getRelative(BlockFace.UP));
      warhubTpVolume.setToMaterial(Material.AIR);
   
      // draw gates
      Block currentGateBlock = this.volume.getCornerOne().getBlock().getRelative(BlockFace.UP).getRelative(front, hubDepth).getRelative(right, 2);

      for (Warzone zone : War.war.getWarzones()) { // gonna use the index to find it again
        if (!zone.getWarzoneConfig().getBoolean(WarzoneConfig.DISABLED)) {
          this.zoneGateBlocks.put(zone.getName(), currentGateBlock);
         
          // minimal air path
          Volume gateAirVolume = new Volume("gateAir", currentGateBlock.getWorld());
          gateAirVolume.setCornerOne(currentGateBlock.getRelative(right));
          gateAirVolume.setCornerTwo(currentGateBlock.getRelative(left).getRelative(back, 2).getRelative(BlockFace.UP, 2));
          gateAirVolume.setToMaterial(Material.AIR);
         
          currentGateBlock.getRelative(back, 2).getRelative(right, 2).setType(Material.AIR);
          currentGateBlock.getRelative(back, 2).getRelative(right, 2).getRelative(BlockFace.UP).setType(Material.AIR);
          currentGateBlock.getRelative(back, 2).getRelative(right, 2).getRelative(BlockFace.UP, 2).setType(Material.AIR);
          currentGateBlock.getRelative(back, 2).getRelative(left, 2).setType(Material.AIR);
          currentGateBlock.getRelative(back, 2).getRelative(left, 2).getRelative(BlockFace.UP).setType(Material.AIR);
          currentGateBlock.getRelative(back, 2).getRelative(left, 2).getRelative(BlockFace.UP, 2).setType(Material.AIR);
         
          BlockState cgbdl = currentGateBlock.getRelative(BlockFace.DOWN).getState();
          cgbdl.setType(War.war.getWarhubMaterials().getLightBlock().getType());
          cgbdl.setData(War.war.getWarhubMaterials().getLightBlock().getData());
          cgbdl.update(true);
          // gate blocks
          Block[] gateBlocks = {
              currentGateBlock.getRelative(left),
              currentGateBlock.getRelative(right).getRelative(BlockFace.UP),
              currentGateBlock.getRelative(left).getRelative(BlockFace.UP).getRelative(BlockFace.UP),
              currentGateBlock.getRelative(right),
              currentGateBlock.getRelative(left).getRelative(BlockFace.UP),
              currentGateBlock.getRelative(right).getRelative(BlockFace.UP).getRelative(BlockFace.UP),
              currentGateBlock.getRelative(BlockFace.UP).getRelative(BlockFace.UP)
              };
          for (Block gateBlock : gateBlocks) {
            BlockState gb = gateBlock.getState();
            gb.setType(War.war.getWarhubMaterials().getGateBlock().getType());
            gb.setData(War.war.getWarhubMaterials().getGateBlock().getData());
            gb.update(true);
          }
          currentGateBlock = currentGateBlock.getRelative(right, 4);
        }
      }

      // War hub sign
      locationBlock.getRelative(front, 2).setType(Material.SIGN_POST);
View Full Code Here

        if (!onlyLoadCorners) {
          DeferredBlockResetsJob deferred = new DeferredBlockResetsJob(world);
          int blockReads = 0, visitedBlocks = 0, x = 0, y = 0, z = 0, i = 0, j = 0, k = 0;
          int diskBlockType;
          byte diskBlockData;
          Block worldBlock;
          int worldBlockId;
          volume.clearBlocksThatDontFloat();
          x = volume.getMinX();
          String blockLine;
          String[] blockSplit;
          for (i = 0; i < volume.getSizeX(); i++) {
            y = volume.getMinY();
            for (j = 0; j < volume.getSizeY(); j++) {
              z = volume.getMinZ();
              for (k = 0; k < volume.getSizeZ(); k++) {
                try {
                  blockLine = in.readLine();

                  if (blockLine != null && !blockLine.equals("")) {
                    blockSplit = blockLine.split(",");
                    if (blockLine != null && !blockLine.equals("") && blockSplit.length > 1) {
                      diskBlockType = Integer.parseInt(blockSplit[0]);
                      diskBlockData = Byte.parseByte(blockSplit[1]);
                      worldBlock = volume.getWorld().getBlockAt(x, y, z);
                      worldBlockId = worldBlock.getTypeId();
                      if (worldBlockId != diskBlockType || (worldBlockId == diskBlockType && worldBlock.getData() != diskBlockData) || (worldBlockId == diskBlockType && worldBlock.getData() == diskBlockData && (diskBlockType == Material.WALL_SIGN.getId() || diskBlockType == Material.SIGN_POST.getId() || diskBlockType == Material.CHEST.getId() || diskBlockType == Material.DISPENSER.getId()))) {
                        if (diskBlockType == Material.WALL_SIGN.getId() || diskBlockType == Material.SIGN_POST.getId()) {
                          // Signs read
                          String linesStr = "";
                          if (blockSplit.length > 2) {
                            for (int o = 2; o < blockSplit.length; o++) {
                              linesStr += blockSplit[o];
                            }
                            String[] lines = linesStr.split(";;");

                            // Signs set
                            // A sign post hanging on a wall south of here will
                            if (diskBlockType == Material.SIGN_POST.getId() && ((diskBlockData & 0x04) == 0x04) && i + 1 != volume.getSizeX()) {
                              deferred.add(new DeferredBlockReset(x, y, z, diskBlockType, diskBlockData, lines));
                            } else {
                              worldBlock.setType(Material.getMaterial(diskBlockType));
                              BlockState state = worldBlock.getState();
                              state.setData(new org.bukkit.material.Sign(diskBlockType, diskBlockData));
                              if (state instanceof Sign) {
                                Sign sign = (Sign) state;
                                if (lines != null && sign.getLines() != null) {
                                  if (lines.length > 0) {
                                    sign.setLine(0, lines[0]);
                                  }
                                  if (lines.length > 1) {
                                    sign.setLine(1, lines[1]);
                                  }
                                  if (lines.length > 2) {
                                    sign.setLine(2, lines[2]);
                                  }
                                  if (lines.length > 3) {
                                    sign.setLine(3, lines[3]);
                                  }
                                  sign.update(true);
                                }
                              }
                            }
                          }
                        } else if (diskBlockType == Material.CHEST.getId()) {
                          // Chests read
                          List<ItemStack> items = null;
                          if (blockSplit.length > 2) {
                            String itemsStr = blockSplit[2];
                            items = PreDeGaulleZoneVolumeMapper.readInventoryString(itemsStr);
                          }

                          // Chests set
                          worldBlock.setType(Material.getMaterial(diskBlockType));
                          worldBlock.setData(diskBlockData);
                          BlockState state = worldBlock.getState();
                          if (state instanceof Chest) {
                            Chest chest = (Chest) state;
                            if (items != null) {
                              int ii = 0;
                              chest.getInventory().clear();
                              for (ItemStack item : items) {
                                if (item != null) {
                                  chest.getInventory().setItem(ii, item);
                                  ii++;
                                }
                              }
                              chest.update(true);
                            }
                          }
                        } else if (diskBlockType == Material.DISPENSER.getId()) {
                          // Dispensers read
                          List<ItemStack> items = null;
                          if (blockSplit.length > 2) {
                            String itemsStr = blockSplit[2];
                            // String itemsStr = lineScanner.nextLine();
                            items = PreDeGaulleZoneVolumeMapper.readInventoryString(itemsStr);
                          }

                          // Dispensers set
                          worldBlock.setType(Material.getMaterial(diskBlockType));
                          worldBlock.setData(diskBlockData);
                          BlockState state = worldBlock.getState();
                          if (state instanceof Dispenser) {
                            Dispenser dispenser = (Dispenser) state;
                            if (items != null) {
                              int ii = 0;
                              dispenser.getInventory().clear();
                              for (ItemStack item : items) {
                                if (item != null) {
                                  dispenser.getInventory().setItem(ii, item);
                                  ii++;
                                }
                              }
                              dispenser.update(true);
                            }
                          }
                        } else if (diskBlockType == Material.WOODEN_DOOR.getId() || diskBlockType == Material.IRON_DOOR_BLOCK.getId()) {
                          // Door blocks

                          if (j - 1 > 0) {
                            Block blockBelow = world.getBlockAt(x, y - 1, z);
                            boolean belowIsGlass = blockBelow.getTypeId() == Material.GLASS.getId();
                            // Set current block to glass if block below isn't glass.
                            // Having a glass block below means the current block is a door top.
                            if (belowIsGlass) {
                              // Top door block. Set both it and the block below as door.
                              blockBelow.setType(Material.getMaterial(diskBlockType));
                              blockBelow.setData(diskBlockData);
                              worldBlock.setType(Material.getMaterial(diskBlockType));
                              worldBlock.setData(diskBlockData);
                            } else {
                              worldBlock.setType(Material.GLASS);
                            }
View Full Code Here

    } else {
      left = Direction.SOUTH();
      back = Direction.EAST();
    }

    Block zoneGate = this.zoneGateBlocks.get(zone.getName());
    if (zoneGate != null) {
      zoneGate.getRelative(BlockFace.UP, 2).getRelative(back, 1).setType(Material.WALL_SIGN);
      org.bukkit.block.Sign block = (org.bukkit.block.Sign) zoneGate.getRelative(BlockFace.UP, 2).getRelative(back, 1).getState();
      org.bukkit.material.Sign data = (Sign) block.getData();
      data.setFacingDirection(this.getOrientation().getOppositeFace());
      block.setData(data);
      int zoneCap = 0;
      int zonePlayers = 0;
      for (Team t : zone.getTeams()) {
        zonePlayers += t.getPlayers().size();
        zoneCap += t.getTeamConfig().resolveInt(TeamConfig.TEAMSIZE);
      }
      String[] lines = MessageFormat.format(
          War.war.getString("sign.warzone"),
          zone.getName(), zonePlayers, zoneCap,
          zone.getTeams().size()).split("\n");
      for (int i = 0; i < 4; i++) {
        block.setLine(i, lines[i]);
      }
      block.update(true);
     
      if (zonePlayers > 0) {
        // add redstone blocks and torches to gate if there are players in it (to highlight active zones)
        zoneGate.getRelative(BlockFace.UP, 2).getRelative(left).setType(Material.REDSTONE_BLOCK);
        zoneGate.getRelative(BlockFace.UP, 2).getRelative(left.getOppositeFace()).setType(Material.REDSTONE_BLOCK);
        zoneGate.getRelative(BlockFace.UP, 2).getRelative(left).getRelative(back, 1).setType(Material.TORCH);
        zoneGate.getRelative(BlockFace.UP, 2).getRelative(left.getOppositeFace()).getRelative(back, 1).setType(Material.TORCH);
      } else {
        zoneGate.getRelative(BlockFace.UP, 2).getRelative(left).getRelative(back, 1).setType(Material.AIR);
        zoneGate.getRelative(BlockFace.UP, 2).getRelative(left.getOppositeFace()).getRelative(back, 1).setType(Material.AIR);
       
        BlockState topLeftGateBlock = zoneGate.getRelative(BlockFace.UP, 2).getRelative(left).getState();
        topLeftGateBlock.setType(War.war.getWarhubMaterials().getGateBlock().getType());
        topLeftGateBlock.setData(War.war.getWarhubMaterials().getGateBlock().getData());
        topLeftGateBlock.update(true);
       
        BlockState topRightGateBlock = zoneGate.getRelative(BlockFace.UP, 2).getRelative(left.getOppositeFace()).getState();
        topRightGateBlock.setType(War.war.getWarhubMaterials().getGateBlock().getType());
        topRightGateBlock.setData(War.war.getWarhubMaterials().getGateBlock().getData());
        topRightGateBlock.update(true);
      }
    } else {
View Full Code Here

    this.zoneName = zoneName;
  }

  public void placeNorthwest() {
    Warzone warzone = War.war.findWarzone(this.zoneName);
    Block northwestBlock = this.player.getLocation().getWorld().getBlockAt(this.player.getLocation());
    StringBuilder msgString = new StringBuilder();
    try {
      if (warzone == null && War.war.getWarzones().size() >= War.war.getWarConfig().getInt(WarConfig.MAXZONES)) {
        // max warzones reached
        War.war.badMsg(player, "Too many warzones already! To change the maximum, use /warcfg maxzone:20.");
        return;
      } else if (warzone == null) {
        // create the warzone
        warzone = new Warzone(this.player.getLocation().getWorld(), this.zoneName);
        warzone.addAuthor(player.getName());
        War.war.getIncompleteZones().add(warzone);
        warzone.getVolume().setNorthwest(northwestBlock.getLocation());
        War.war.msg(this.player, "Warzone " + warzone.getName() + " created. Northwesternmost point set to x:" + warzone.getVolume().getNorthwestX() + " z:" + warzone.getVolume().getNorthwestZ() + ". ");
        War.war.log(player.getName() + " created warzone " + zoneName + " by setting its nw corner", Level.INFO);
      } else if (!this.isPlayerAuthorOfZoneOrAdmin(warzone)) {
        return;
      } else {
        // change existing warzone
        this.resetWarzone(warzone, msgString);
        warzone.getVolume().setNorthwest(northwestBlock.getLocation());
        msgString.append("Warzone " + warzone.getName() + " modified. Northwesternmost point set to x:" + warzone.getVolume().getNorthwestX() + " z:" + warzone.getVolume().getNorthwestZ() + ". ");
        War.war.log(player.getName() + " updated warzone " + zoneName + " by setting its nw corner", Level.INFO);
      }
      this.saveIfReady(warzone, msgString);
    } catch (NotNorthwestException e) {
View Full Code Here

TOP

Related Classes of org.bukkit.block.Block

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.