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 Developers!: You will need to clean up your work/Minecraft/1.13.2 folder for this Also, restore a patch that was dropped in the last upstream Bukkit Changes: 279eeab3 Fix command description not being set 96e2bb18 Remove debug print from SyntheticEventTest CraftBukkit Changes: d3ed1516 Fix dangerously threaded beacons 217a293d Don't relocate joptsimple to allow --help to work. 1be05a21 Prepare for imminent Java 12 release a49270b2 Mappings Update 5259d80c SPIGOT-4669: Fix PlayerTeleportEvent coordinates for relative teleports Spigot Changes: e6eb36f2 Rebuild patches
35 lines
1.7 KiB
Diff
35 lines
1.7 KiB
Diff
From 95730a89b8feceb17a77e6f7513b07c3cdb5cdb1 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 7f78445dc..b6c602bd0 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.21.0
|
|
|