From 87dfd286367d457c4e105bdd30bf9d9969aad5f5 Mon Sep 17 00:00:00 2001 From: Lixfel Date: Sat, 29 Apr 2023 22:21:05 +0200 Subject: [PATCH] Test fix clipping while crouching Signed-off-by: Lixfel --- .../de/steamwar/fightsystem/utils/FlatteningWrapper14.java | 6 ++++++ .../de/steamwar/fightsystem/utils/FlatteningWrapper8.java | 6 ++++++ .../steamwar/fightsystem/listener/BlockPlaceCollision.java | 3 ++- .../de/steamwar/fightsystem/utils/FlatteningWrapper.java | 3 +++ 4 files changed, 17 insertions(+), 1 deletion(-) diff --git a/FightSystem_14/src/de/steamwar/fightsystem/utils/FlatteningWrapper14.java b/FightSystem_14/src/de/steamwar/fightsystem/utils/FlatteningWrapper14.java index 86b883f..abab2e4 100644 --- a/FightSystem_14/src/de/steamwar/fightsystem/utils/FlatteningWrapper14.java +++ b/FightSystem_14/src/de/steamwar/fightsystem/utils/FlatteningWrapper14.java @@ -26,6 +26,7 @@ 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.entity.Player; import org.bukkit.event.block.BlockPhysicsEvent; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.BlockDataMeta; @@ -117,4 +118,9 @@ public class FlatteningWrapper14 implements FlatteningWrapper { public boolean isFacingWater(Block dispenser) { return dispenser.getRelative(((Dispenser) dispenser.getBlockData()).getFacing()).isLiquid(); } + + @Override + public boolean isCrouching(Player player) { + return player.isSwimming(); + } } diff --git a/FightSystem_8/src/de/steamwar/fightsystem/utils/FlatteningWrapper8.java b/FightSystem_8/src/de/steamwar/fightsystem/utils/FlatteningWrapper8.java index e05b74b..15e4d31 100644 --- a/FightSystem_8/src/de/steamwar/fightsystem/utils/FlatteningWrapper8.java +++ b/FightSystem_8/src/de/steamwar/fightsystem/utils/FlatteningWrapper8.java @@ -23,6 +23,7 @@ import org.bukkit.DyeColor; import org.bukkit.Material; import org.bukkit.World; import org.bukkit.block.Block; +import org.bukkit.entity.Player; import org.bukkit.event.block.BlockPhysicsEvent; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; @@ -82,4 +83,9 @@ public class FlatteningWrapper8 implements FlatteningWrapper { public boolean isFacingWater(Block dispenser) { return false; } + + @Override + public boolean isCrouching(Player player) { + return false; + } } diff --git a/FightSystem_Core/src/de/steamwar/fightsystem/listener/BlockPlaceCollision.java b/FightSystem_Core/src/de/steamwar/fightsystem/listener/BlockPlaceCollision.java index 57982f6..7b3bf54 100644 --- a/FightSystem_Core/src/de/steamwar/fightsystem/listener/BlockPlaceCollision.java +++ b/FightSystem_Core/src/de/steamwar/fightsystem/listener/BlockPlaceCollision.java @@ -22,6 +22,7 @@ package de.steamwar.fightsystem.listener; import de.steamwar.fightsystem.ArenaMode; import de.steamwar.fightsystem.states.FightState; import de.steamwar.fightsystem.states.StateDependentListener; +import de.steamwar.fightsystem.utils.FlatteningWrapper; import org.bukkit.Location; import org.bukkit.block.Block; import org.bukkit.entity.Player; @@ -44,7 +45,7 @@ public class BlockPlaceCollision implements Listener { // Hitbox size: 0.6xz, 1.8y, 1.5y when sneaking Player player = event.getPlayer(); Location min = player.getLocation().add(-0.3, 0, -0.3); - Location max = player.getLocation().add(0.3, player.isSneaking() ? 1.5 : 1.8, 0.3); + Location max = player.getLocation().add(0.3, FlatteningWrapper.impl.isCrouching(player) ? 0.6 : (player.isSneaking() ? 1.5 : 1.8), 0.3); Location blockmin = block.getLocation(); Location blockmax = block.getLocation().add(1.0, 1.0, 1.0); diff --git a/FightSystem_Core/src/de/steamwar/fightsystem/utils/FlatteningWrapper.java b/FightSystem_Core/src/de/steamwar/fightsystem/utils/FlatteningWrapper.java index 5a9804d..a006d80 100644 --- a/FightSystem_Core/src/de/steamwar/fightsystem/utils/FlatteningWrapper.java +++ b/FightSystem_Core/src/de/steamwar/fightsystem/utils/FlatteningWrapper.java @@ -24,6 +24,7 @@ import de.steamwar.fightsystem.FightSystem; import org.bukkit.DyeColor; import org.bukkit.World; import org.bukkit.block.Block; +import org.bukkit.entity.Player; import org.bukkit.event.block.BlockPhysicsEvent; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; @@ -48,4 +49,6 @@ public interface FlatteningWrapper { boolean checkPistonMoving(Block block); boolean isFacingWater(Block dispenser); + + boolean isCrouching(Player player); }