Advertisement
MathWellan

Trapdoor 1.12

Aug 21st, 2021 (edited)
1,032
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 0.86 KB | None | 0 0
  1.             /*
  2.             List<Block> processingDoors = new ArrayList<>();
  3.             Block b = PlayerInteractEvent#getClickedBlock();
  4.             */
  5.             if(b.getType() == Material.TRAP_DOOR)
  6.             {
  7.                 final BlockState bs = b.getState();
  8.                 final Location loc = b.getLocation();
  9.  
  10.                 TrapDoor door = (TrapDoor) bs.getData();
  11.                 boolean open = door.isOpen();
  12.                
  13.                 if(!open) // if it's closed before interact
  14.                     processingDoors.add(b);
  15.                 else if(processingDoors.contains(b))
  16.                     processingDoors.remove(b);
  17.                
  18.                 new BukkitRunnable()
  19.                 {
  20.                     public void run()
  21.                     {      // to avoid a BlockBreakEvent check
  22.                         if(b.getWorld().getBlockAt(loc).getType() == Material.TRAP_DOOR && processingDoors.contains(b)) // called
  23.                         {
  24.                             door.setOpen(!open);
  25.                             bs.setData(door);
  26.                             bs.update();
  27.                         }
  28.                     }
  29.                    
  30.                 }.runTaskLater(Main.getInstance(), 3 * 20L);
  31.             }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement