diff --git a/divinemc-server/minecraft-patches/sources/net/minecraft/world/level/block/SlimeBlock.java.patch b/divinemc-server/minecraft-patches/sources/net/minecraft/world/level/block/SlimeBlock.java.patch new file mode 100644 index 0000000..cc50646 --- /dev/null +++ b/divinemc-server/minecraft-patches/sources/net/minecraft/world/level/block/SlimeBlock.java.patch @@ -0,0 +1,10 @@ +--- a/net/minecraft/world/level/block/SlimeBlock.java ++++ b/net/minecraft/world/level/block/SlimeBlock.java +@@ -42,6 +_,7 @@ + Vec3 deltaMovement = entity.getDeltaMovement(); + if (deltaMovement.y < 0.0) { + double d = entity instanceof LivingEntity ? 1.0 : 0.8; ++ if (org.bxteam.divinemc.DivineConfig.fixIncorrectBounceLogic) entity.setOnGround(deltaMovement.y > -0.15); // DivineMC - Carpet-Fixes: Fix Slime Block Bounce Logic + entity.setDeltaMovement(deltaMovement.x, -deltaMovement.y * d, deltaMovement.z); + } + } diff --git a/divinemc-server/src/main/java/org/bxteam/divinemc/DivineConfig.java b/divinemc-server/src/main/java/org/bxteam/divinemc/DivineConfig.java index 4ee6595..dd314b1 100644 --- a/divinemc-server/src/main/java/org/bxteam/divinemc/DivineConfig.java +++ b/divinemc-server/src/main/java/org/bxteam/divinemc/DivineConfig.java @@ -290,6 +290,7 @@ public class DivineConfig { public static boolean alwaysAllowWeirdMovement = true; public static boolean updateSuppressionCrashFix = true; public static boolean useCompactBitStorage = false; + public static boolean fixIncorrectBounceLogic = false; private static void miscSettings() { skipUselessSecondaryPoiSensor = getBoolean("settings.misc.skip-useless-secondary-poi-sensor", skipUselessSecondaryPoiSensor); clumpOrbs = getBoolean("settings.misc.clump-orbs", clumpOrbs, @@ -301,6 +302,8 @@ public class DivineConfig { updateSuppressionCrashFix = getBoolean("settings.misc.update-suppression-crash-fix", updateSuppressionCrashFix); useCompactBitStorage = getBoolean("settings.misc.use-compact-bit-storage", useCompactBitStorage, "Fixes memory waste caused by sending empty chunks as if they contain blocks. Can significantly reduce memory usage."); + fixIncorrectBounceLogic = getBoolean("settings.misc.fix-incorrect-bounce-logic", fixIncorrectBounceLogic, + "Fixes incorrect bounce logic in SlimeBlock."); } public static boolean disableDisconnectSpam = false;