mirror of
https://github.com/PaperMC/Paper.git
synced 2025-01-18 14:24:17 +08:00
0318e62b45
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: 0969eedc Clarify furnace burn time behaviour as per SPIGOT-844 16453bfd SPIGOT-4503: Add API to insert complete ItemStack into Jukebox CraftBukkit Changes:dff66dfc
Reduce copying of positions from block states91cae6ef
SPIGOT-4387: Durability looping from cancelled BlockPlaceEvent24c5e68c
SPIGOT-4493: Allow burnt out furnaces to remain lit like Vanilla whilst retaining SPIGOT-844 APIbc943daf
Fix Jukebox API not synchronizing playing data with statefe89a8c1
SPIGOT-4503: Add API to insert complete ItemStack into Jukeboxfc102494
Make CraftBlockState use BlockPosition89ab4887
SPIGOT-4543: Jukebox playing calls should not use legacy data6ff5a64c
SPIGOT-4541: Cancelled bucket events require inventory update
36 lines
1.7 KiB
Diff
36 lines
1.7 KiB
Diff
From 89ead2699326943c4d79a66df5cb5f79ac0807f4 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 160ef3659..c702b94ef 100644
|
|
--- a/src/main/java/net/minecraft/server/World.java
|
|
+++ b/src/main/java/net/minecraft/server/World.java
|
|
@@ -2727,8 +2727,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
|
|
|