fix_rotate #1

Merged
stijn merged 3 commits from fix_rotate into master 2024-08-04 20:29:46 +00:00
2 changed files with 12 additions and 4 deletions

View File

@ -55,7 +55,7 @@ public final class PlayerUtils extends JavaPlugin {
pluginManager.registerEvents(new XpBottleEvent(this, logger), this); pluginManager.registerEvents(new XpBottleEvent(this, logger), this);
pluginManager.registerEvents(new TeleportEvent(), this); pluginManager.registerEvents(new TeleportEvent(), this);
RotateBlockEvent rotateBlockEvent = new RotateBlockEvent(); RotateBlockEvent rotateBlockEvent = new RotateBlockEvent(logger);
pluginManager.registerEvents(rotateBlockEvent, this); pluginManager.registerEvents(rotateBlockEvent, this);
playerUtilsCommand.addSubCommand(new RotateBlock(rotateBlockEvent)); playerUtilsCommand.addSubCommand(new RotateBlock(rotateBlockEvent));
} }

View File

@ -1,5 +1,6 @@
package com.alttd.playerutils.event_listeners; package com.alttd.playerutils.event_listeners;
import com.alttd.playerutils.util.Logger;
import org.bukkit.Axis; import org.bukkit.Axis;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.Material; import org.bukkit.Material;
@ -23,8 +24,13 @@ import java.util.stream.Collectors;
public class RotateBlockEvent implements Listener { public class RotateBlockEvent implements Listener {
private final HashSet<UUID> rotateEnabled = new HashSet<>(); private final HashSet<UUID> rotateEnabled = new HashSet<>();
private final Logger logger;
private static final List<BlockFace> VALID_FOUR_STATES = List.of(BlockFace.NORTH, BlockFace.EAST, BlockFace.SOUTH, BlockFace.WEST); private static final List<BlockFace> VALID_FOUR_STATES = List.of(BlockFace.NORTH, BlockFace.EAST, BlockFace.SOUTH, BlockFace.WEST);
public RotateBlockEvent(Logger logger) {
this.logger = logger;
}
public synchronized boolean toggleRotate(UUID uuid) { public synchronized boolean toggleRotate(UUID uuid) {
if (rotateEnabled.contains(uuid)) { if (rotateEnabled.contains(uuid)) {
@ -55,10 +61,11 @@ public class RotateBlockEvent implements Listener {
return; return;
Material type = block.getType(); Material type = block.getType();
logger.debug(String.format("Material %s with action %s", type, event.getAction().isLeftClick() ? "left click" : "right click"));
if (type.equals(Material.IRON_TRAPDOOR) && event.getAction().isLeftClick()) { if (type.equals(Material.IRON_TRAPDOOR) && event.getAction().isLeftClick()) {
event.setCancelled(true); event.setCancelled(true);
toggleTrapDoor(block, player); toggleTrapDoor(block, player);
} else if (Tag.BIG_DRIPLEAF_PLACEABLE.isTagged(type) && event.getAction().isLeftClick()) { } else if (type.equals(Material.BIG_DRIPLEAF) && event.getAction().isLeftClick()) {
event.setCancelled(true); event.setCancelled(true);
toggleDripLeaf(block, player); toggleDripLeaf(block, player);
} else if (Tag.STAIRS.isTagged(type)) { } else if (Tag.STAIRS.isTagged(type)) {
@ -83,7 +90,7 @@ public class RotateBlockEvent implements Listener {
} }
private void toggleDripLeaf(Block block, Player player) { private void toggleDripLeaf(Block block, Player player) {
if (!(block instanceof BigDripleaf bigDripleaf)) { if (!(block.getBlockData() instanceof BigDripleaf bigDripleaf)) {
return; return;
} }
@ -103,7 +110,7 @@ public class RotateBlockEvent implements Listener {
} }
private void toggleTrapDoor(Block block, Player player) { private void toggleTrapDoor(Block block, Player player) {
if (!(block instanceof TrapDoor trapDoor)) { if (!(block.getBlockData() instanceof TrapDoor trapDoor)) {
return; return;
} }
@ -112,6 +119,7 @@ public class RotateBlockEvent implements Listener {
} }
trapDoor.setOpen(!trapDoor.isOpen()); trapDoor.setOpen(!trapDoor.isOpen());
block.setBlockAndForget(trapDoor);
} }
private void toggleRails(Block block, Player player) { private void toggleRails(Block block, Player player) {