From 239c0bf5f6b3be4fb79c319fdbbe1fabc89da85a Mon Sep 17 00:00:00 2001 From: Lixfel Date: Sun, 22 Jan 2023 22:19:53 +0100 Subject: [PATCH] Fix 1.8 to 1.12 dispenser Signed-off-by: Lixfel --- .../de/steamwar/fightsystem/utils/FlatteningWrapper14.java | 6 ++++++ .../de/steamwar/fightsystem/utils/FlatteningWrapper8.java | 5 +++++ .../src/de/steamwar/fightsystem/listener/Permanent.java | 4 ++-- .../de/steamwar/fightsystem/utils/FlatteningWrapper.java | 2 ++ 4 files changed, 15 insertions(+), 2 deletions(-) diff --git a/FightSystem_14/src/de/steamwar/fightsystem/utils/FlatteningWrapper14.java b/FightSystem_14/src/de/steamwar/fightsystem/utils/FlatteningWrapper14.java index 5d907c7..86b883f 100644 --- a/FightSystem_14/src/de/steamwar/fightsystem/utils/FlatteningWrapper14.java +++ b/FightSystem_14/src/de/steamwar/fightsystem/utils/FlatteningWrapper14.java @@ -25,6 +25,7 @@ import org.bukkit.World; import org.bukkit.block.Block; import org.bukkit.block.data.BlockData; import org.bukkit.block.data.Waterlogged; +import org.bukkit.block.data.type.Dispenser; import org.bukkit.event.block.BlockPhysicsEvent; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.BlockDataMeta; @@ -111,4 +112,9 @@ public class FlatteningWrapper14 implements FlatteningWrapper { public boolean checkPistonMoving(Block block) { return block.getType() == Material.MOVING_PISTON; } + + @Override + public boolean isFacingWater(Block dispenser) { + return dispenser.getRelative(((Dispenser) dispenser.getBlockData()).getFacing()).isLiquid(); + } } diff --git a/FightSystem_8/src/de/steamwar/fightsystem/utils/FlatteningWrapper8.java b/FightSystem_8/src/de/steamwar/fightsystem/utils/FlatteningWrapper8.java index e84fe55..e05b74b 100644 --- a/FightSystem_8/src/de/steamwar/fightsystem/utils/FlatteningWrapper8.java +++ b/FightSystem_8/src/de/steamwar/fightsystem/utils/FlatteningWrapper8.java @@ -77,4 +77,9 @@ public class FlatteningWrapper8 implements FlatteningWrapper { public boolean checkPistonMoving(Block block) { return block.getType() == Material.PISTON_MOVING_PIECE; } + + @Override + public boolean isFacingWater(Block dispenser) { + return false; + } } diff --git a/FightSystem_Core/src/de/steamwar/fightsystem/listener/Permanent.java b/FightSystem_Core/src/de/steamwar/fightsystem/listener/Permanent.java index e5f24a4..d10c7c8 100644 --- a/FightSystem_Core/src/de/steamwar/fightsystem/listener/Permanent.java +++ b/FightSystem_Core/src/de/steamwar/fightsystem/listener/Permanent.java @@ -26,11 +26,11 @@ import de.steamwar.fightsystem.fight.Fight; import de.steamwar.fightsystem.fight.FightTeam; import de.steamwar.fightsystem.states.FightState; import de.steamwar.fightsystem.states.StateDependentListener; +import de.steamwar.fightsystem.utils.FlatteningWrapper; import net.md_5.bungee.api.ChatMessageType; import org.bukkit.GameMode; import org.bukkit.Material; import org.bukkit.block.Block; -import org.bukkit.block.data.type.Dispenser; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; @@ -172,7 +172,7 @@ public class Permanent implements Listener { if(!Config.ArenaRegion.inRegion(block)) return; - if(e.getItem().getType() == Material.TNT || block.getRelative(((Dispenser) block.getBlockData()).getFacing()).isLiquid()) + if(e.getItem().getType() == Material.TNT || FlatteningWrapper.impl.isFacingWater(block)) e.setCancelled(true); } } diff --git a/FightSystem_Core/src/de/steamwar/fightsystem/utils/FlatteningWrapper.java b/FightSystem_Core/src/de/steamwar/fightsystem/utils/FlatteningWrapper.java index fba2c30..5a9804d 100644 --- a/FightSystem_Core/src/de/steamwar/fightsystem/utils/FlatteningWrapper.java +++ b/FightSystem_Core/src/de/steamwar/fightsystem/utils/FlatteningWrapper.java @@ -46,4 +46,6 @@ public interface FlatteningWrapper { void forceLoadChunk(World world, int cX, int cZ); boolean checkPistonMoving(Block block); + + boolean isFacingWater(Block dispenser); }