abba3d113b
Upstream has released updates that appears to apply and compile correctly. This update has not been tested by PaperMC and as with ANY update, please do your own testing Bukkit Changes: bb813f6f SPIGOT-4605: Warn against hacking physics CraftBukkit Changes:2ced0233
Don't handle sync packets for kicked playersd5e96882
SPIGOT-4602: Cache reflection in decompile error workaround Spigot Changes: b0f4c22b SPIGOT-4605: Catch more physics problems
36 Zeilen
1.7 KiB
Diff
36 Zeilen
1.7 KiB
Diff
From 34cffb3d7e0f3639f280c11dbc952f3677d253a7 Mon Sep 17 00:00:00 2001
|
|
From: Shane Freeder <theboyetronic@gmail.com>
|
|
Date: Tue, 13 Nov 2018 14:01:00 +0000
|
|
Subject: [PATCH] limit the range at which we'll consider an attackable target
|
|
|
|
This patch aims to ensure that MCP World#getNearestAttackablePlayer
|
|
will not trigger chunk loads due to PathfinderGoalNearestAttackableTarget
|
|
performing a ray trace operation by pre-checking the maximum limit;
|
|
|
|
Given that the implementation shows that the limit should only ever
|
|
decrease when set, allowing us to skip further checks earlier on
|
|
when looking for an attackable entity
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
|
|
index 9e19984a2..c412cceff 100644
|
|
--- a/src/main/java/net/minecraft/server/World.java
|
|
+++ b/src/main/java/net/minecraft/server/World.java
|
|
@@ -2729,8 +2729,13 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
|
|
for (int i = 0; i < this.players.size(); ++i) {
|
|
EntityHuman entityhuman1 = (EntityHuman) this.players.get(i);
|
|
|
|
+ // Paper start
|
|
+ // move distance check up, if set, check distance^2 is less than XZlimit^2, continue
|
|
+ // 4th method param is XZlimit (at least at the time of commit)
|
|
+ double d6 = entityhuman1.d(d0, entityhuman1.locY, d2);
|
|
+ if (d3 < 0.0D || d6 < d3 * d3)
|
|
if (!entityhuman1.abilities.isInvulnerable && entityhuman1.isAlive() && !entityhuman1.isSpectator() && (predicate == null || predicate.test(entityhuman1))) {
|
|
- double d6 = entityhuman1.d(d0, entityhuman1.locY, d2);
|
|
+ // Paper end
|
|
double d7 = d3;
|
|
|
|
if (entityhuman1.isSneaking()) {
|
|
--
|
|
2.20.1
|
|
|