Example #1
0
 private void checkBlock(Block b, String trigger) {
   BlockToCheck btt = new BlockToCheck();
   btt.loc = b.getLocation();
   btt.typeid = b.getTypeId();
   btt.data = b.getData();
   btt.trigger = trigger;
   blocks_to_check_accum.add(btt); /* Add to accumulator */
   btth.startIfNeeded();
 }
Example #2
0
 public void run() {
   BlockToCheck btt;
   while (blocks_to_check.isEmpty() != true) {
     btt = blocks_to_check.pop();
     Location loc = btt.loc;
     World w = loc.getWorld();
     if (!w.isChunkLoaded(loc.getBlockX() >> 4, loc.getBlockZ() >> 4)) continue;
     int bt = w.getBlockTypeIdAt(loc);
     /* Avoid stationary and moving water churn */
     if (bt == 9) bt = 8;
     if (btt.typeid == 9) btt.typeid = 8;
     if ((bt != btt.typeid) || (btt.data != w.getBlockAt(loc).getData())) {
       String wn = BukkitWorld.normalizeWorldName(w.getName());
       sscache.invalidateSnapshot(wn, loc.getBlockX(), loc.getBlockY(), loc.getBlockZ());
       mapManager.touch(wn, loc.getBlockX(), loc.getBlockY(), loc.getBlockZ(), btt.trigger);
     }
   }
   blocks_to_check = null;
   /* Kick next run, if one is needed */
   startIfNeeded();
 }