From 08bc465d820d52bf62567f6dda456691657e1529 Mon Sep 17 00:00:00 2001 From: Tschipp <11649893+Tschipp@users.noreply.github.com> Date: Fri, 26 Dec 2025 15:56:13 +0100 Subject: [PATCH] Fixed bugs, updated Blacklist --- .../carryon/common/carry/PickupHandler.java | 17 ++++++++++++++++- .../carryon/common/carry/PlacementHandler.java | 3 +++ .../carryon/common/config/CarryConfig.java | 7 ++++--- 3 files changed, 23 insertions(+), 4 deletions(-) diff --git a/Common/src/main/java/tschipp/carryon/common/carry/PickupHandler.java b/Common/src/main/java/tschipp/carryon/common/carry/PickupHandler.java index 0963957..e12f8d7 100644 --- a/Common/src/main/java/tschipp/carryon/common/carry/PickupHandler.java +++ b/Common/src/main/java/tschipp/carryon/common/carry/PickupHandler.java @@ -40,8 +40,11 @@ import net.minecraft.world.entity.animal.Animal; import net.minecraft.world.entity.player.Player; import net.minecraft.world.level.GameType; import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.DoorBlock; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.DoubleBlockHalf; +import net.minecraft.world.level.block.state.properties.Property; import net.minecraft.world.level.storage.TagValueOutput; import net.minecraft.world.phys.Vec3; import tschipp.carryon.CarryOnCommon; @@ -108,6 +111,10 @@ public class PickupHandler { if(!ListHandler.isPermitted(state.getBlock())) return false; + // Reject pickup of Double blocks, if they use the vanilla property + if(hasPropertyType(state, DoorBlock.HALF)) + return false; + if(state.getDestroySpeed(level, pos) == -1 && !player.isCreative() && !Constants.COMMON_CONFIG.settings.pickupUnbreakableBlocks) return false; @@ -207,7 +214,7 @@ public class PickupHandler { return false; } - boolean doPickup = pickupCallback == null ? true : pickupCallback.apply(entity); + boolean doPickup = pickupCallback == null || pickupCallback.apply(entity); if(!doPickup) return false; @@ -275,4 +282,12 @@ public class PickupHandler { return true; } + private static > boolean hasPropertyType(BlockState state, Property prop) { + for (var p : state.getProperties()) { + if(p.getValueClass().equals(prop.getValueClass())) + return true; + } + return false; + } + } diff --git a/Common/src/main/java/tschipp/carryon/common/carry/PlacementHandler.java b/Common/src/main/java/tschipp/carryon/common/carry/PlacementHandler.java index 8c1924d..4c0704e 100644 --- a/Common/src/main/java/tschipp/carryon/common/carry/PlacementHandler.java +++ b/Common/src/main/java/tschipp/carryon/common/carry/PlacementHandler.java @@ -94,6 +94,9 @@ public class PlacementHandler if (!doPlace) return false; + if(level.isOutsideBuildHeight(pos)) + return false; + if (carry.getActiveScript().isPresent()) { ScriptEffects effects = carry.getActiveScript().get().scriptEffects(); String cmd = effects.commandPlace(); diff --git a/Common/src/main/java/tschipp/carryon/common/config/CarryConfig.java b/Common/src/main/java/tschipp/carryon/common/config/CarryConfig.java index 6532f2b..3657ab1 100644 --- a/Common/src/main/java/tschipp/carryon/common/config/CarryConfig.java +++ b/Common/src/main/java/tschipp/carryon/common/config/CarryConfig.java @@ -285,7 +285,7 @@ public class CarryConfig "modern_industrialization:fluid_pipe", "modern_industrialization:*_fluid_pipe", "yigd:*", "domum_ornamentum:*", "connectiblechains:*", - "cobblemon:*", "snowrealmagic:*", "forbidden_arcanus:black_hole", "domum_ornamentum:*", "sgjourney:*", "copycats:*", "expandedstorage:*" + "cobblemon:*", "snowrealmagic:*", "forbidden_arcanus:black_hole", "domum_ornamentum:*", "sgjourney:*", "copycats:*", "expandedstorage:*", "replication:*" }; @Property( @@ -302,7 +302,7 @@ public class CarryConfig "animania:hamster", "animania:ferret*", "animania:hedgehog*", "animania:cart", "animania:wagon", "mynko:*", "pixelmon:*", "mocreatures:*", "quark:totem", "vehicle:*", "securitycraft:*", "taterzens:npc", "easy_npc:*", "bodiesbodies:dead_body", "littletiles:*", - "connectiblechains:*", "cobblemon:*", "create:*", "swem:*" + "connectiblechains:*", "cobblemon:*", "create:*", "swem:*", "toms_mobs:*" }; @Property( @@ -311,7 +311,8 @@ public class CarryConfig validationRegex = "(#?[a-zA-Z0-9_*]+:[a-zA-Z0-9_*]*(?:\\*|[a-zA-Z0-9_]*)(?:\\*|[a-zA-Z0-9_]*)?)" ) public String[] forbiddenStacking = { - "minecraft:horse" + "minecraft:horse", + "minecraft:ender_dragon" }; }