From 454581991202b97e34848cc9125d73c68bb4113b Mon Sep 17 00:00:00 2001 From: BillyGalbreath Date: Sat, 23 Jul 2022 14:30:23 -0500 Subject: [PATCH] fix #1071 possible rare npe with controllable minecarts --- .../0047-Minecart-settings-and-WASD-controls.patch | 11 ++++++----- ...178-Configurable-powered-rail-boost-modifier.patch | 4 ++-- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/patches/server/0047-Minecart-settings-and-WASD-controls.patch b/patches/server/0047-Minecart-settings-and-WASD-controls.patch index 8f5247369..e99fc30a7 100644 --- a/patches/server/0047-Minecart-settings-and-WASD-controls.patch +++ b/patches/server/0047-Minecart-settings-and-WASD-controls.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Minecart settings and WASD controls diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 64183c02cf278b20ed59120fa20fc7265321fc40..71f3fb4d60abff73dce22006345e210c706d448b 100644 +index 70fe7e8a0e67c1c32cc33846c26020fe5b81f711..e774a7c2265b4a307fde305176c7e9ec33e1e61f 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -1032,6 +1032,7 @@ public class ServerPlayer extends Player { @@ -17,7 +17,7 @@ index 64183c02cf278b20ed59120fa20fc7265321fc40..71f3fb4d60abff73dce22006345e210c if (!flag && isSpawnInvulnerable() && source != DamageSource.OUT_OF_WORLD) { // Purpur diff --git a/src/main/java/net/minecraft/world/entity/vehicle/AbstractMinecart.java b/src/main/java/net/minecraft/world/entity/vehicle/AbstractMinecart.java -index 3f31a3c17ecca6e93b794478129b95ecff4e1a9c..05031a1a8b9c42ea5cdf9d8ad9b6aeebe1fc823c 100644 +index 3f31a3c17ecca6e93b794478129b95ecff4e1a9c..d2d1e554b1c24df982ff28fbe118229c8e9ecd13 100644 --- a/src/main/java/net/minecraft/world/entity/vehicle/AbstractMinecart.java +++ b/src/main/java/net/minecraft/world/entity/vehicle/AbstractMinecart.java @@ -107,11 +107,13 @@ public abstract class AbstractMinecart extends Entity { @@ -47,7 +47,7 @@ index 3f31a3c17ecca6e93b794478129b95ecff4e1a9c..05031a1a8b9c42ea5cdf9d8ad9b6aeeb // CraftBukkit start double prevX = this.getX(); double prevY = this.getY(); -@@ -489,16 +497,62 @@ public abstract class AbstractMinecart extends Entity { +@@ -489,16 +497,63 @@ public abstract class AbstractMinecart extends Entity { public void activateMinecart(int x, int y, int z, boolean powered) {} @@ -63,7 +63,8 @@ index 3f31a3c17ecca6e93b794478129b95ecff4e1a9c..05031a1a8b9c42ea5cdf9d8ad9b6aeeb + Double speed = level.purpurConfig.minecartControllableBlockSpeeds.get(block); + if (!block.material.isSolid()) { + speed = lastSpeed; -+ } else if (speed == null) { ++ } ++ if (speed == null) { + speed = level.purpurConfig.minecartControllableBaseSpeed; + } + return lastSpeed = speed; @@ -135,7 +136,7 @@ index 127a799f7848b32664b77bf67847ca6b8ac9a90d..178cd88a7de291136e0486617e8347b7 } } diff --git a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java -index 939aca929038b90738c9b78c2fc3611088b18e72..2fe9daf2a1a4a007c9831155039159815242a545 100644 +index 771c6cf992664b65ffbf4ae0192bc7b09f77c2e6..480f00ef2026e84b133655c5e18b1dc36b5a02ca 100644 --- a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java +++ b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java @@ -72,7 +72,7 @@ import net.minecraft.world.phys.shapes.VoxelShape; diff --git a/patches/server/0178-Configurable-powered-rail-boost-modifier.patch b/patches/server/0178-Configurable-powered-rail-boost-modifier.patch index 2c9a49a12..def648365 100644 --- a/patches/server/0178-Configurable-powered-rail-boost-modifier.patch +++ b/patches/server/0178-Configurable-powered-rail-boost-modifier.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Configurable powered rail boost modifier diff --git a/src/main/java/net/minecraft/world/entity/vehicle/AbstractMinecart.java b/src/main/java/net/minecraft/world/entity/vehicle/AbstractMinecart.java -index 05031a1a8b9c42ea5cdf9d8ad9b6aeebe1fc823c..8c6e5e98dd5f425bd9322c01bba06c90d76673dc 100644 +index d2d1e554b1c24df982ff28fbe118229c8e9ecd13..b16ad4d5f3cdf8e0e44f74ae481b04d38e7a6c9e 100644 --- a/src/main/java/net/minecraft/world/entity/vehicle/AbstractMinecart.java +++ b/src/main/java/net/minecraft/world/entity/vehicle/AbstractMinecart.java -@@ -714,7 +714,7 @@ public abstract class AbstractMinecart extends Entity { +@@ -715,7 +715,7 @@ public abstract class AbstractMinecart extends Entity { if (d18 > 0.01D) { double d20 = 0.06D;