Add functionality to toggle iron trapdoors
Method 'toggleTrapDoor' has been added to the RotateBlockEvent class. This function allows players to open and close trapdoors by left-clicking on them if the block is an instance of a TrapDoor. The original behavior of the block will be preserved when the player does not have build permissions.
This commit is contained in:
parent
94ec002810
commit
a95a7bc27b
|
|
@ -9,6 +9,7 @@ import org.bukkit.block.BlockFace;
|
|||
import org.bukkit.block.data.*;
|
||||
import org.bukkit.block.data.type.Fence;
|
||||
import org.bukkit.block.data.type.Stairs;
|
||||
import org.bukkit.block.data.type.TrapDoor;
|
||||
import org.bukkit.block.data.type.Wall;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
|
|
@ -69,6 +70,9 @@ public class RotateBlockEvent implements Listener {
|
|||
} else if(Tag.RAILS.isTagged(type)) {
|
||||
event.setCancelled(true);
|
||||
toggleRails(block, player);
|
||||
} else if (type.equals(Material.IRON_TRAPDOOR) && event.getAction().isLeftClick()){
|
||||
event.setCancelled(true);
|
||||
toggleTrapDoor(block, player);
|
||||
} else if (block.getBlockData() instanceof Directional directional) {
|
||||
event.setCancelled(true);
|
||||
rotateDirectionalBlock(block, directional, player);
|
||||
|
|
@ -78,6 +82,18 @@ public class RotateBlockEvent implements Listener {
|
|||
}
|
||||
}
|
||||
|
||||
private void toggleTrapDoor(Block block, Player player) {
|
||||
if (!(block instanceof TrapDoor trapDoor)) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (cannotBuild(block, player)) {
|
||||
return;
|
||||
}
|
||||
|
||||
trapDoor.setOpen(!trapDoor.isOpen());
|
||||
}
|
||||
|
||||
private void toggleRails(Block block, Player player) {
|
||||
if (!(block instanceof Rail rail)) {
|
||||
return;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user