Double door opening

Discussion in 'Spigot Plugin Development' started by ItsChristian, Jun 3, 2017.

Thread Status:
Not open for further replies.
  1. If I run this code this hapends when I click top of highest x number + it doesn't work with iron doors

    Code (Text):
    if (event.getAction().equals(Action.RIGHT_CLICK_BLOCK))
                    if (block.getState().getData() instanceof Door) {
                        Door door = (Door) event.getClickedBlock().getState().getData();
                        event.setCancelled(true);
                        if (door.isTopHalf()) {
                            door = (Door) block.getRelative(BlockFace.DOWN).getState().getData();
                            block = block.getRelative(BlockFace.DOWN);
                        }

                        BlockState bs = block.getState();

                        door.setOpen(!door.isOpen());
                        boolean open = false;
                        if (loc.add(1, 0, 0).getBlock().getState().getData() instanceof Door && !open) {
                            Block block2 = loc.getBlock();
                            Door door2 = (Door) block.getState().getData();
                            if (!door2.isTopHalf()) {
                                BlockState bs2 = block2.getState();
                                open = true;
                                door2.setOpen(door.isOpen());
                                bs2.setData(door2);
                                bs2.update();
                            }
                        }
                        loc = block.getLocation();
                        if (loc.add(-1, 0, 0).getBlock().getState().getData() instanceof Door && !open) {
                            Block block2 = loc.getBlock();
                            Door door2 = (Door) block.getState().getData();
                            if (!door2.isTopHalf()) {
                                BlockState bs2 = block2.getState();
                                open = true;
                                door2.setOpen(door.isOpen());
                                bs2.setData(door2);
                                bs2.update();
                            }
                        }
                        loc = block.getLocation();
                        if (loc.add(0, 0, 1).getBlock().getState().getData() instanceof Door && !open) {
                            Block block2 = loc.getBlock();
                            Door door2 = (Door) block.getState().getData();
                            if (!door2.isTopHalf()) {
                                BlockState bs2 = block2.getState();
                                open = true;
                                door2.setOpen(door.isOpen());
                                bs2.setData(door2);
                                bs2.update();
                            }
                        }
                        loc = block.getLocation();
                        if (loc.add(0, 0, -1).getBlock().getState().getData() instanceof Door && !open) {
                            Block block2 = loc.getBlock();
                            Door door2 = (Door) block.getState().getData();
                            if (!door2.isTopHalf()) {
                                BlockState bs2 = block2.getState();
                                open = true;
                                door2.setOpen(door.isOpen());
                                bs2.setData(door2);
                                bs2.update();
                            }
                        }

                        bs.setData(door);
                        bs.update();
                    }
            }
    [​IMG]

    How can I fix this
     
  2. So, what are you trying to accomplish? The code is a repeating mess.
     
  3. 2 doors open @ the same time
     
  4. Fixed it. got it from another plugin.
     
Thread Status:
Not open for further replies.