From a55555906fda91317672b6bb1c7318d6ffeead45 Mon Sep 17 00:00:00 2001 From: Ddggdd135 <1306334428@qq.com> Date: Thu, 15 Feb 2024 13:56:32 +0800 Subject: [PATCH 1/6] fix(cargo):#832 --- .../slimefun4/implementation/listeners/CargoNodeListener.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/listeners/CargoNodeListener.java b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/listeners/CargoNodeListener.java index 540481cbf8..73b5e4e2ee 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/listeners/CargoNodeListener.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/listeners/CargoNodeListener.java @@ -27,9 +27,9 @@ public CargoNodeListener(@Nonnull Slimefun plugin) { public void onCargoNodePlace(BlockPlaceEvent e) { Block b = e.getBlock(); + // || !e.getBlockReplacedState().getType().isAir() 这会导致#832 if (isCargoNode(e.getItemInHand()) - && (b.getY() != e.getBlockAgainst().getY() - || !e.getBlockReplacedState().getType().isAir())) { + && (b.getY() != e.getBlockAgainst().getY())) { Slimefun.getLocalization().sendMessage(e.getPlayer(), "machines.CARGO_NODES.must-be-placed", true); e.setCancelled(true); } From f1a56bea16fbf6cb1fb0bed11790e717db57912b Mon Sep 17 00:00:00 2001 From: Ddggdd135 <1306334428@qq.com> Date: Thu, 15 Feb 2024 14:01:36 +0800 Subject: [PATCH 2/6] style: spotless --- .../slimefun4/storage/adapter/sqlcommon/SqlCommonConfig.java | 3 --- .../plugin/slimefun4/storage/adapter/sqlite/SqliteConfig.java | 2 -- .../slimefun4/implementation/listeners/CargoNodeListener.java | 3 +-- 3 files changed, 1 insertion(+), 7 deletions(-) diff --git a/src/main/java/com/xzavier0722/mc/plugin/slimefun4/storage/adapter/sqlcommon/SqlCommonConfig.java b/src/main/java/com/xzavier0722/mc/plugin/slimefun4/storage/adapter/sqlcommon/SqlCommonConfig.java index f74f06dfb6..83070dc5d9 100644 --- a/src/main/java/com/xzavier0722/mc/plugin/slimefun4/storage/adapter/sqlcommon/SqlCommonConfig.java +++ b/src/main/java/com/xzavier0722/mc/plugin/slimefun4/storage/adapter/sqlcommon/SqlCommonConfig.java @@ -2,9 +2,6 @@ import com.zaxxer.hikari.HikariConfig; import com.zaxxer.hikari.HikariDataSource; -import java.sql.Time; -import java.util.Properties; -import java.util.concurrent.TimeUnit; public abstract class SqlCommonConfig implements ISqlCommonConfig { protected final String host; diff --git a/src/main/java/com/xzavier0722/mc/plugin/slimefun4/storage/adapter/sqlite/SqliteConfig.java b/src/main/java/com/xzavier0722/mc/plugin/slimefun4/storage/adapter/sqlite/SqliteConfig.java index c7516bc4d8..9ed0a57967 100644 --- a/src/main/java/com/xzavier0722/mc/plugin/slimefun4/storage/adapter/sqlite/SqliteConfig.java +++ b/src/main/java/com/xzavier0722/mc/plugin/slimefun4/storage/adapter/sqlite/SqliteConfig.java @@ -3,8 +3,6 @@ import com.xzavier0722.mc.plugin.slimefun4.storage.adapter.sqlcommon.ISqlCommonConfig; import com.zaxxer.hikari.HikariConfig; import com.zaxxer.hikari.HikariDataSource; -import java.util.Properties; -import java.util.concurrent.TimeUnit; public record SqliteConfig(String path, int maxConnection) implements ISqlCommonConfig { public HikariDataSource createDataSource() { diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/listeners/CargoNodeListener.java b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/listeners/CargoNodeListener.java index 73b5e4e2ee..fa4e150600 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/listeners/CargoNodeListener.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/listeners/CargoNodeListener.java @@ -28,8 +28,7 @@ public void onCargoNodePlace(BlockPlaceEvent e) { Block b = e.getBlock(); // || !e.getBlockReplacedState().getType().isAir() 这会导致#832 - if (isCargoNode(e.getItemInHand()) - && (b.getY() != e.getBlockAgainst().getY())) { + if (isCargoNode(e.getItemInHand()) && (b.getY() != e.getBlockAgainst().getY())) { Slimefun.getLocalization().sendMessage(e.getPlayer(), "machines.CARGO_NODES.must-be-placed", true); e.setCancelled(true); } From 7a84b7ae15266deb423cd2d51d3768824ced0fba Mon Sep 17 00:00:00 2001 From: Ddggdd135 <1306334428@qq.com> Date: Sat, 17 Feb 2024 17:49:30 +0800 Subject: [PATCH 3/6] fix(cargo): #832 --- .../listeners/CargoNodeListener.java | 38 ++++++++++++++++--- 1 file changed, 33 insertions(+), 5 deletions(-) diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/listeners/CargoNodeListener.java b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/listeners/CargoNodeListener.java index fa4e150600..4bc674ae82 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/listeners/CargoNodeListener.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/listeners/CargoNodeListener.java @@ -5,10 +5,16 @@ import io.github.thebusybiscuit.slimefun4.implementation.items.cargo.CargoNode; import javax.annotation.Nonnull; import org.bukkit.block.Block; +import org.bukkit.block.BlockFace; +import org.bukkit.block.Container; +import org.bukkit.block.data.BlockData; +import org.bukkit.block.data.Directional; +import org.bukkit.block.data.Rotatable; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.block.BlockPlaceEvent; import org.bukkit.inventory.ItemStack; +import org.bukkit.util.Vector; /** * This {@link Listener} is solely responsible for preventing Cargo Nodes from being placed @@ -25,16 +31,38 @@ public CargoNodeListener(@Nonnull Slimefun plugin) { @EventHandler(ignoreCancelled = true) public void onCargoNodePlace(BlockPlaceEvent e) { - Block b = e.getBlock(); + if (isCargoNode(e.getItemInHand())) { + Block b = e.getBlock(); - // || !e.getBlockReplacedState().getType().isAir() 这会导致#832 - if (isCargoNode(e.getItemInHand()) && (b.getY() != e.getBlockAgainst().getY())) { - Slimefun.getLocalization().sendMessage(e.getPlayer(), "machines.CARGO_NODES.must-be-placed", true); - e.setCancelled(true); + // || !e.getBlockReplacedState().getType().isAir() 这会导致#832 + Block against = e.getBlock(); + BlockData blockData = b.getBlockData(); + BlockFace blockFace = null; + Vector vector; + if (blockData instanceof Directional directional){ + blockFace = directional.getFacing(); + } + else if (blockData instanceof Rotatable rotatable){ + blockFace = rotatable.getRotation(); + } + if (blockFace == null){ + vector = new Vector(); + } + else { + vector = blockFace.getOppositeFace().getDirection(); + } + Block realAgainst = against.getWorld().getBlockAt(against.getX() + (int) vector.getX(), against.getY() + (int) vector.getY(), against.getZ() + (int) vector.getZ()); + if (!isContainer(realAgainst)) { + Slimefun.getLocalization().sendMessage(e.getPlayer(), "machines.CARGO_NODES.must-be-placed", true); + e.setCancelled(true); + } } } private boolean isCargoNode(@Nonnull ItemStack item) { return SlimefunItem.getByItem(item) instanceof CargoNode; } + private boolean isContainer(@Nonnull Block block) { + return block.getState() instanceof Container || Slimefun.getDatabaseManager().getBlockDataController().getBlockData(block.getLocation()) != null; + } } From 4d1beaf895981660c00e648bb3f7d88ef890eb76 Mon Sep 17 00:00:00 2001 From: Ddggdd135 <1306334428@qq.com> Date: Sat, 17 Feb 2024 17:52:17 +0800 Subject: [PATCH 4/6] style: spotless --- .../listeners/CargoNodeListener.java | 20 +++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/listeners/CargoNodeListener.java b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/listeners/CargoNodeListener.java index 4bc674ae82..b00608e0c3 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/listeners/CargoNodeListener.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/listeners/CargoNodeListener.java @@ -39,19 +39,21 @@ public void onCargoNodePlace(BlockPlaceEvent e) { BlockData blockData = b.getBlockData(); BlockFace blockFace = null; Vector vector; - if (blockData instanceof Directional directional){ + if (blockData instanceof Directional directional) { blockFace = directional.getFacing(); - } - else if (blockData instanceof Rotatable rotatable){ + } else if (blockData instanceof Rotatable rotatable) { blockFace = rotatable.getRotation(); } - if (blockFace == null){ + if (blockFace == null) { vector = new Vector(); - } - else { + } else { vector = blockFace.getOppositeFace().getDirection(); } - Block realAgainst = against.getWorld().getBlockAt(against.getX() + (int) vector.getX(), against.getY() + (int) vector.getY(), against.getZ() + (int) vector.getZ()); + Block realAgainst = against.getWorld() + .getBlockAt( + against.getX() + (int) vector.getX(), + against.getY() + (int) vector.getY(), + against.getZ() + (int) vector.getZ()); if (!isContainer(realAgainst)) { Slimefun.getLocalization().sendMessage(e.getPlayer(), "machines.CARGO_NODES.must-be-placed", true); e.setCancelled(true); @@ -62,7 +64,9 @@ else if (blockData instanceof Rotatable rotatable){ private boolean isCargoNode(@Nonnull ItemStack item) { return SlimefunItem.getByItem(item) instanceof CargoNode; } + private boolean isContainer(@Nonnull Block block) { - return block.getState() instanceof Container || Slimefun.getDatabaseManager().getBlockDataController().getBlockData(block.getLocation()) != null; + return block.getState() instanceof Container + || Slimefun.getDatabaseManager().getBlockDataController().getBlockData(block.getLocation()) != null; } } From 25dd6432dc04903fb92eed2766046383167b5636 Mon Sep 17 00:00:00 2001 From: Ddggdd135 <1306334428@qq.com> Date: Sat, 20 Apr 2024 10:03:38 +0800 Subject: [PATCH 5/6] =?UTF-8?q?=E4=BC=98=E5=8C=96=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../listeners/CargoNodeListener.java | 21 +++++++------------ 1 file changed, 7 insertions(+), 14 deletions(-) diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/listeners/CargoNodeListener.java b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/listeners/CargoNodeListener.java index b00608e0c3..0a7326d065 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/listeners/CargoNodeListener.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/listeners/CargoNodeListener.java @@ -35,25 +35,18 @@ public void onCargoNodePlace(BlockPlaceEvent e) { Block b = e.getBlock(); // || !e.getBlockReplacedState().getType().isAir() 这会导致#832 - Block against = e.getBlock(); BlockData blockData = b.getBlockData(); - BlockFace blockFace = null; - Vector vector; + BlockFace blockFace; if (blockData instanceof Directional directional) { - blockFace = directional.getFacing(); + blockFace = directional.getFacing().getOppositeFace(); } else if (blockData instanceof Rotatable rotatable) { - blockFace = rotatable.getRotation(); - } - if (blockFace == null) { - vector = new Vector(); + blockFace = rotatable.getRotation().getOppositeFace(); } else { - vector = blockFace.getOppositeFace().getDirection(); + e.setCancelled(true); + return; } - Block realAgainst = against.getWorld() - .getBlockAt( - against.getX() + (int) vector.getX(), - against.getY() + (int) vector.getY(), - against.getZ() + (int) vector.getZ()); + + Block realAgainst = b.getRelative(blockFace); if (!isContainer(realAgainst)) { Slimefun.getLocalization().sendMessage(e.getPlayer(), "machines.CARGO_NODES.must-be-placed", true); e.setCancelled(true); From 661cd4f093431d0c551e8aefc5e792ec01d82b2b Mon Sep 17 00:00:00 2001 From: Ddggdd135 <1306334428@qq.com> Date: Sat, 27 Apr 2024 07:27:26 +0800 Subject: [PATCH 6/6] style: spotless --- .../slimefun4/implementation/listeners/CargoNodeListener.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/listeners/CargoNodeListener.java b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/listeners/CargoNodeListener.java index 0a7326d065..239cd85285 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/listeners/CargoNodeListener.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/listeners/CargoNodeListener.java @@ -14,7 +14,6 @@ import org.bukkit.event.Listener; import org.bukkit.event.block.BlockPlaceEvent; import org.bukkit.inventory.ItemStack; -import org.bukkit.util.Vector; /** * This {@link Listener} is solely responsible for preventing Cargo Nodes from being placed