diff --git a/leaf-server/minecraft-patches/features/0215-rewrite-InsideBrownianWalk.patch b/leaf-server/minecraft-patches/features/0215-rewrite-InsideBrownianWalk.patch index f69cbb7e..705c1f62 100644 --- a/leaf-server/minecraft-patches/features/0215-rewrite-InsideBrownianWalk.patch +++ b/leaf-server/minecraft-patches/features/0215-rewrite-InsideBrownianWalk.patch @@ -8,17 +8,15 @@ License: LGPL-3.0 (https://www.gnu.org/licenses/lgpl-3.0.html) This method is mainly visible when ton of villagers suddenly wants to sleep. diff --git a/net/minecraft/world/entity/ai/behavior/InsideBrownianWalk.java b/net/minecraft/world/entity/ai/behavior/InsideBrownianWalk.java -index cbde74f4b6d586a5f80cdd675573441636bf682d..0e0a05b7ddbce22faef3ff1060c85c616b6bcf0b 100644 +index cbde74f4b6d586a5f80cdd675573441636bf682d..00585419d4c2f58ac8b05ad67cbe674dec96baea 100644 --- a/net/minecraft/world/entity/ai/behavior/InsideBrownianWalk.java +++ b/net/minecraft/world/entity/ai/behavior/InsideBrownianWalk.java -@@ -9,31 +9,42 @@ import net.minecraft.world.entity.ai.behavior.declarative.BehaviorBuilder; +@@ -9,31 +9,40 @@ import net.minecraft.world.entity.ai.behavior.declarative.BehaviorBuilder; import net.minecraft.world.entity.ai.memory.MemoryModuleType; import net.minecraft.world.entity.ai.memory.WalkTarget; +// Leaf start - rewrite InsideBrownianWalk public class InsideBrownianWalk { -+ private static final java.util.Random RANDOM = new java.util.Random(); -+ public static BehaviorControl create(float speedModifier) { - return BehaviorBuilder.create( - instance -> instance.group(instance.absent(MemoryModuleType.WALK_TARGET)) @@ -55,7 +53,7 @@ index cbde74f4b6d586a5f80cdd675573441636bf682d..0e0a05b7ddbce22faef3ff1060c85c61 + + // Fisher-Yates shuffle is faster for this case + for (int i = nearbyBlocks.length - 1; i > 0; i--) { -+ int j = RANDOM.nextInt(i + 1); ++ int j = mob.random.nextInt(i + 1); + BlockPos temp = nearbyBlocks[i]; + nearbyBlocks[i] = nearbyBlocks[j]; + nearbyBlocks[j] = temp;