Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- List<Block> processingDoors = new ArrayList<>();
- Block b = PlayerInteractEvent#getClickedBlock();
- */
- if(b.getType() == Material.TRAP_DOOR)
- {
- final BlockState bs = b.getState();
- final Location loc = b.getLocation();
- TrapDoor door = (TrapDoor) bs.getData();
- boolean open = door.isOpen();
- if(!open) // if it's closed before interact
- processingDoors.add(b);
- else if(processingDoors.contains(b))
- processingDoors.remove(b);
- new BukkitRunnable()
- {
- public void run()
- { // to avoid a BlockBreakEvent check
- if(b.getWorld().getBlockAt(loc).getType() == Material.TRAP_DOOR && processingDoors.contains(b)) // called
- {
- door.setOpen(!open);
- bs.setData(door);
- bs.update();
- }
- }
- }.runTaskLater(Main.getInstance(), 3 * 20L);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement