public void breakFoliage(Block b) {
   for (BlockFace bf : BlockFace.values()) {
     Block toTest = b.getRelative(bf, 1);
     if (toTest.getTypeId() == 18) {
       toTest.breakNaturally();
     }
   }
 }
  @EventHandler(priority = EventPriority.MONITOR)
  public void onBlockBreak(BlockBreakEvent e) {
    arbre = new ArrayList<Block>();

    if (e.isCancelled()) {
      return;
    }

    final Block initialBloc = e.getBlock();

    if (initialBloc.getTypeId() != 17) {
      return;
    }

    final byte data = initialBloc.getData();
    Player p = e.getPlayer();

    boolean permEntire = Methods.hasPerm(p, "amatree.entiretree");
    boolean permReplant = Methods.hasPerm(p, "amatree.replanting");

    if (!permEntire && !permReplant) {
      return;
    }

    if (permEntire) {
      gessThree(initialBloc);
      for (Block b : arbre) {
        breakFoliage(b);
        b.breakNaturally();
      }
    }

    if (permReplant) {
      int id = initialBloc.getRelative(BlockFace.DOWN).getTypeId();

      if (id != 2 && id != 3) {
        return;
      }

      Core.plugin
          .getServer()
          .getScheduler()
          .scheduleSyncDelayedTask(
              Core.plugin,
              new Runnable() {

                public void run() {
                  if (initialBloc.getTypeId() == 0) {
                    initialBloc.setTypeId(6);
                    initialBloc.setData(data);
                  }
                }
              },
              1 * 20L);
    }
  }
  private void breakBlock() {
    sourceblock.setType(sourcetype);
    if (revert) {
      EarthMethods.addTempAirBlock(sourceblock);
    } else {
      sourceblock.breakNaturally();
    }

    instances.remove(id);
  }
Esempio n. 4
0
  @EventHandler(priority = EventPriority.NORMAL)
  public void glassShot(ProjectileHitEvent event) {
    if (!event.getEntity().getWorld().getName().equals(getName())) return;

    Entity proj = event.getEntity();
    Location hit = proj.getLocation();
    Block block = hit.getBlock();
    Material material = block.getType();

    if (proj instanceof Arrow) {
      if (material == Material.THIN_GLASS) {
        block.breakNaturally();
      }
    }
  }
Esempio n. 5
0
 @EventHandler
 public void onBlockBreak(BlockBreakEvent event) {
   Player player = event.getPlayer();
   int itemID = player.getItemInHand().getTypeId();
   boolean allowed = false;
   if (playersActive.containsKey(player.getName())) {
     switch (itemID) {
       case 256:
         if (player.hasPermission("quickdig.iron.shovel")) {
           allowed = true;
         }
         break;
       case 257:
         if (player.hasPermission("quickdig.iron.pickaxe")) {
           allowed = true;
         }
         break;
       case 258:
         if (player.hasPermission("quickdig.iron.axe")) {
           allowed = true;
         }
         break;
       case 269:
         if (player.hasPermission("quickdig.wooden.shovel")) {
           allowed = true;
         }
         break;
       case 270:
         if (player.hasPermission("quickdig.wooden.pickaxe")) {
           allowed = true;
         }
         break;
       case 271:
         if (player.hasPermission("quickdig.wooden.axe")) {
           allowed = true;
         }
         break;
       case 273:
         if (player.hasPermission("quickdig.stone.shovel")) {
           allowed = true;
         }
         break;
       case 274:
         if (player.hasPermission("quickdig.stone.pickaxe")) {
           allowed = true;
         }
         break;
       case 275:
         if (player.hasPermission("quickdig.stone.axe")) {
           allowed = true;
         }
         break;
       case 277:
         if (player.hasPermission("quickdig.diamond.shovel")) {
           allowed = true;
         }
         break;
       case 278:
         if (player.hasPermission("quickdig.diamond.pickaxe")) {
           allowed = true;
         }
         break;
       case 279:
         if (player.hasPermission("quickdig.diamond.axe")) {
           allowed = true;
         }
         break;
       case 284:
         if (player.hasPermission("quickdig.gold.shovel")) {
           allowed = true;
         }
         break;
       case 285:
         if (player.hasPermission("quickdig.gold.pickaxe")) {
           allowed = true;
         }
         break;
       case 286:
         if (player.hasPermission("quickdig.gold.axe")) {
           allowed = true;
         }
         break;
       default:
         allowed = false;
         break;
     }
     if (allowed == false) {
       return;
     }
     Location loc = event.getBlock().getLocation();
     int i = 0;
     String dir = getCardinalDirection(player);
     if (!dir.isEmpty()) {
       while (i < 4) {
         switch (dir) {
           case "N":
             loc =
                 new Location(
                     player.getWorld(),
                     loc.getX(),
                     loc.getY(),
                     loc.getZ() - 1,
                     loc.getYaw(),
                     loc.getPitch());
             break;
           case "E":
             loc =
                 new Location(
                     player.getWorld(),
                     loc.getX() + 1,
                     loc.getY(),
                     loc.getZ(),
                     loc.getYaw(),
                     loc.getPitch());
             break;
           case "S":
             loc =
                 new Location(
                     player.getWorld(),
                     loc.getX(),
                     loc.getY(),
                     loc.getZ() + 1,
                     loc.getYaw(),
                     loc.getPitch());
             break;
           case "W":
             loc =
                 new Location(
                     player.getWorld(),
                     loc.getX() - 1,
                     loc.getY(),
                     loc.getZ(),
                     loc.getYaw(),
                     loc.getPitch());
             break;
           default:
             break;
         }
         Block block = player.getWorld().getBlockAt(loc);
         if (block.getDrops(player.getItemInHand()).isEmpty() == false) {
           if (block.getType() != Material.BEDROCK) {
             block.breakNaturally(player.getItemInHand());
             player
                 .getItemInHand()
                 .setDurability((short) (player.getItemInHand().getDurability() + 2));
             i++;
           } else {
             break;
           }
         } else {
           break;
         }
       }
     }
   }
 }