Updated Upstream (Pufferfish)

Upstream has released updates that appear to apply and compile correctly

Pufferfish Changes:
pufferfish-gg/Pufferfish@e1ad783 Updated Upstream (Paper)
pufferfish-gg/Pufferfish@d3d30cb Fix #53
pufferfish-gg/Pufferfish@53295bd Remove busy wait in async execution utility
pufferfish-gg/Pufferfish@5e6e1ad Updated Upstream (Paper)
This commit is contained in:
BillyGalbreath
2022-11-21 23:36:42 -06:00
parent d2c5e6b5e5
commit 6368dc84de
27 changed files with 184 additions and 149 deletions

View File

@@ -1252,29 +1252,30 @@ index 0000000000000000000000000000000000000000..1b29210ad0bbb4ada150f23357f0c80d
+}
diff --git a/src/main/java/gg/pufferfish/pufferfish/util/AsyncExecutor.java b/src/main/java/gg/pufferfish/pufferfish/util/AsyncExecutor.java
new file mode 100644
index 0000000000000000000000000000000000000000..9d6dc2c80945bec9bea74714c657c7a2e0bdde9e
index 0000000000000000000000000000000000000000..8e5323d5d9af25c8a85c4b34a6be76cfc54384cf
--- /dev/null
+++ b/src/main/java/gg/pufferfish/pufferfish/util/AsyncExecutor.java
@@ -0,0 +1,51 @@
@@ -0,0 +1,73 @@
+package gg.pufferfish.pufferfish.util;
+
+import com.google.common.collect.Queues;
+import gg.pufferfish.pufferfish.PufferfishLogger;
+import java.util.Queue;
+import java.util.concurrent.locks.LockSupport;
+import java.util.function.BooleanSupplier;
+import java.util.concurrent.locks.Condition;
+import java.util.concurrent.locks.Lock;
+import java.util.concurrent.locks.ReentrantLock;
+import java.util.logging.Level;
+
+public class AsyncExecutor implements Runnable {
+
+ private Queue<Runnable> jobs = Queues.newConcurrentLinkedQueue();
+ private final Queue<Runnable> jobs = Queues.newArrayDeque();
+ private final Lock mutex = new ReentrantLock();
+ private final Condition cond = mutex.newCondition();
+ private final Thread thread;
+ private final BooleanSupplier shouldRun;
+ private volatile boolean killswitch = false;
+
+ public AsyncExecutor(String threadName, BooleanSupplier shouldRun) {
+ public AsyncExecutor(String threadName) {
+ this.thread = new Thread(this, threadName);
+ this.shouldRun = shouldRun;
+ }
+
+ public void start() {
@@ -1283,26 +1284,47 @@ index 0000000000000000000000000000000000000000..9d6dc2c80945bec9bea74714c657c7a2
+
+ public void kill() {
+ killswitch = true;
+ cond.signalAll();
+ }
+
+ public void submit(Runnable runnable) {
+ jobs.offer(runnable);
+ mutex.lock();
+ try {
+ jobs.offer(runnable);
+ cond.signalAll();
+ } finally {
+ mutex.unlock();
+ }
+ }
+
+ @Override
+ public void run() {
+ while (!killswitch) {
+ if (shouldRun.getAsBoolean()) {
+ try {
+ Runnable runnable;
+ while ((runnable = jobs.poll()) != null) {
+ runnable.run();
+ }
+ } catch (Exception e) {
+ PufferfishLogger.LOGGER.log(Level.SEVERE, e, () -> "Failed to execute async job for thread " + thread.getName());
+ try {
+ Runnable runnable = takeRunnable();
+ if (runnable != null) {
+ runnable.run();
+ }
+ } catch (InterruptedException e) {
+ Thread.currentThread().interrupt();
+ } catch (Exception e) {
+ PufferfishLogger.LOGGER.log(Level.SEVERE, e, () -> "Failed to execute async job for thread " + thread.getName());
+ }
+ LockSupport.parkNanos("executing tasks", 1000L);
+ }
+ }
+
+ private Runnable takeRunnable() throws InterruptedException {
+ mutex.lock();
+ try {
+ while (jobs.isEmpty() && !killswitch) {
+ cond.await();
+ }
+
+ if (jobs.isEmpty()) return null; // We've set killswitch
+
+ return jobs.remove();
+ } finally {
+ mutex.unlock();
+ }
+ }
+
@@ -1473,7 +1495,7 @@ index dacb00c7cb2702ae8e9c6be61ca08e41bd6009e4..b5d4c53bf1046fa52da5398491258b94
public static long getCoordinateKey(final ChunkPos pair) {
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 6dc6c3bccb4ba34268a87b0754c87eb1e0df4135..409a544a8cefcfd139bff9b5016fb7a587568a70 100644
index 6dc6c3bccb4ba34268a87b0754c87eb1e0df4135..3cadf20891888b56ac70798d581d6a044a98c0a3 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -298,6 +298,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1481,7 +1503,7 @@ index 6dc6c3bccb4ba34268a87b0754c87eb1e0df4135..409a544a8cefcfd139bff9b5016fb7a5
public volatile boolean abnormalExit = false; // Paper
public boolean isIteratingOverLevels = false; // Paper
+
+ public gg.pufferfish.pufferfish.util.AsyncExecutor mobSpawnExecutor = new gg.pufferfish.pufferfish.util.AsyncExecutor("MobSpawning", () -> true); // Pufferfish - optimize mob spawning
+ public gg.pufferfish.pufferfish.util.AsyncExecutor mobSpawnExecutor = new gg.pufferfish.pufferfish.util.AsyncExecutor("MobSpawning"); // Pufferfish - optimize mob spawning
public static <S extends MinecraftServer> S spin(Function<Thread, S> serverFactory) {
AtomicReference<S> atomicreference = new AtomicReference();
@@ -1692,10 +1714,18 @@ index 2358bb1788cfb902bac9b3b7588954af2d2cd823..163f14b4e1ca99d75e5d8e14190f7b91
this.wasOnGround = this.entity.isOnGround();
this.teleportDelay = 0;
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
index feb0a6d6a90850977b393440881c472c317a9323..a32fd708349d13a4ed0a67ddcad0716fcf8443ab 100644
index feb0a6d6a90850977b393440881c472c317a9323..fde970ada330e3e2fd481c7687c8499129bd929c 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -727,7 +727,20 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -708,6 +708,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
org.spigotmc.ActivationRange.activateEntities(this); // Spigot
timings.entityTick.startTiming(); // Spigot
this.entityTickList.forEach((entity) -> {
+ entity.activatedPriorityReset = false; // Pufferfish - DAB
if (!entity.isRemoved()) {
if (false && this.shouldDiscardEntity(entity)) { // CraftBukkit - We prevent spawning in general, so this butchering is not needed
entity.discard();
@@ -727,7 +728,20 @@ public class ServerLevel extends Level implements WorldGenLevel {
}
gameprofilerfiller.push("tick");
@@ -1717,7 +1747,7 @@ index feb0a6d6a90850977b393440881c472c317a9323..a32fd708349d13a4ed0a67ddcad0716f
gameprofilerfiller.pop();
}
}
@@ -794,9 +807,11 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -794,9 +808,11 @@ public class ServerLevel extends Level implements WorldGenLevel {
}
// Paper start - optimise random block ticking
private final BlockPos.MutableBlockPos chunkTickMutablePosition = new BlockPos.MutableBlockPos();
@@ -1730,7 +1760,7 @@ index feb0a6d6a90850977b393440881c472c317a9323..a32fd708349d13a4ed0a67ddcad0716f
public void tickChunk(LevelChunk chunk, int randomTickSpeed) {
ChunkPos chunkcoordintpair = chunk.getPos();
boolean flag = this.isRaining();
@@ -807,7 +822,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -807,7 +823,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
gameprofilerfiller.push("thunder");
final BlockPos.MutableBlockPos blockposition = this.chunkTickMutablePosition; // Paper - use mutable to reduce allocation rate, final to force compile fail on change
@@ -1739,7 +1769,7 @@ index feb0a6d6a90850977b393440881c472c317a9323..a32fd708349d13a4ed0a67ddcad0716f
blockposition.set(this.findLightningTargetAround(this.getBlockRandomPos(j, 0, k, 15))); // Paper
if (this.isRainingAt(blockposition)) {
DifficultyInstance difficultydamagescaler = this.getCurrentDifficultyAt(blockposition);
@@ -831,7 +846,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -831,7 +847,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
}
gameprofilerfiller.popPush("iceandsnow");
@@ -1881,7 +1911,7 @@ index 540bc9500c35c0db719b00aa26f6fb3a1b08ed9f..806cb760822a99316b08ad95ff8922df
int LARGE_MAX_STACK_SIZE = 64;
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index 6fa47becd0f83ac4273ef3a10c314aa27b08184b..26b42474a94ccabd8cfcca39e4c37fb14852cbb8 100644
index 6fa47becd0f83ac4273ef3a10c314aa27b08184b..249305f0fc4f525fe2d109ecc96900ce3680b1b1 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -291,7 +291,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -1893,11 +1923,12 @@ index 6fa47becd0f83ac4273ef3a10c314aa27b08184b..26b42474a94ccabd8cfcca39e4c37fb1
private ChunkPos chunkPosition;
private Vec3 deltaMovement;
private float yRot;
@@ -413,6 +413,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -413,6 +413,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
return this.originWorld;
}
// Paper end
+ // Pufferfish start
+ public boolean activatedPriorityReset = false; // DAB
+ public int activatedPriority = gg.pufferfish.pufferfish.PufferfishConfig.maximumActivationPrio; // golf score
+ public final BlockPos.MutableBlockPos cachedBlockPos = new BlockPos.MutableBlockPos(); // used where needed
+ // Pufferfish end
@@ -1905,7 +1936,7 @@ index 6fa47becd0f83ac4273ef3a10c314aa27b08184b..26b42474a94ccabd8cfcca39e4c37fb1
public float getBukkitYaw() {
return this.yRot;
}
@@ -487,17 +492,36 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -487,17 +493,36 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
this.isLegacyTrackingEntity = isLegacyTrackingEntity;
}
@@ -1943,7 +1974,7 @@ index 6fa47becd0f83ac4273ef3a10c314aa27b08184b..26b42474a94ccabd8cfcca39e4c37fb1
for (Entity passenger : passengers) {
org.spigotmc.TrackingRange.TrackingRangeType passengerType = passenger.trackingRangeType;
int passengerRange = chunkMap.getEntityTrackerRange(passengerType.ordinal());
@@ -506,6 +530,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -506,6 +531,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
range = passengerRange;
}
}
@@ -1953,7 +1984,7 @@ index 6fa47becd0f83ac4273ef3a10c314aa27b08184b..26b42474a94ccabd8cfcca39e4c37fb1
return chunkMap.playerEntityTrackerTrackMaps[type.ordinal()].getObjectsInRange(MCUtil.getCoordinateKey(this));
}
@@ -787,6 +814,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -787,6 +815,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
// CraftBukkit end
public void baseTick() {
@@ -1966,7 +1997,7 @@ index 6fa47becd0f83ac4273ef3a10c314aa27b08184b..26b42474a94ccabd8cfcca39e4c37fb1
this.level.getProfiler().push("entityBaseTick");
if (firstTick && this instanceof net.minecraft.world.entity.NeutralMob neutralMob) neutralMob.tickInitialPersistentAnger(level); // Paper - Update last hurt when ticking
this.feetBlockState = null;
@@ -4019,16 +4052,18 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -4019,16 +4053,18 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
}
public boolean updateFluidHeightAndDoFluidPushing(TagKey<Fluid> tag, double speed) {
@@ -1992,7 +2023,7 @@ index 6fa47becd0f83ac4273ef3a10c314aa27b08184b..26b42474a94ccabd8cfcca39e4c37fb1
double d1 = 0.0D;
boolean flag = this.isPushedByFluid();
boolean flag1 = false;
@@ -4036,14 +4071,61 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -4036,14 +4072,61 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
int k1 = 0;
BlockPos.MutableBlockPos blockposition_mutableblockposition = new BlockPos.MutableBlockPos();
@@ -2060,7 +2091,7 @@ index 6fa47becd0f83ac4273ef3a10c314aa27b08184b..26b42474a94ccabd8cfcca39e4c37fb1
if (d2 >= axisalignedbb.minY) {
flag1 = true;
@@ -4065,9 +4147,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -4065,9 +4148,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
// CraftBukkit end
}
}
@@ -3569,7 +3600,7 @@ index 774556a62eb240da42e84db4502e2ed43495be17..80553face9c70c2a3d897681e7761df8
if (stream != null) {
diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java
index 1b42c98956342832c37f0aa266f85271daa4ba5b..4e978e12130d685257f408247c4b61a3909fde80 100644
index 1b42c98956342832c37f0aa266f85271daa4ba5b..b87756d9a7b04ea2613208984b2583eca3f32af6 100644
--- a/src/main/java/org/spigotmc/ActivationRange.java
+++ b/src/main/java/org/spigotmc/ActivationRange.java
@@ -38,6 +38,10 @@ import co.aikar.timings.MinecraftTimings;
@@ -3583,19 +3614,23 @@ index 1b42c98956342832c37f0aa266f85271daa4ba5b..4e978e12130d685257f408247c4b61a3
public class ActivationRange
{
@@ -216,6 +220,21 @@ public class ActivationRange
@@ -216,6 +220,25 @@ public class ActivationRange
for (int i = 0; i < entities.size(); i++) {
Entity entity = entities.get(i);
ActivationRange.activateEntity(entity);
+
+ // Pufferfish start
+ if (gg.pufferfish.pufferfish.PufferfishConfig.dearEnabled && entity.getType().dabEnabled) {
+ if (!entity.activatedPriorityReset) {
+ entity.activatedPriorityReset = true;
+ entity.activatedPriority = gg.pufferfish.pufferfish.PufferfishConfig.maximumActivationPrio;
+ }
+ Vec3 playerVec = player.position();
+ Vec3 entityVec = entity.position();
+ double diffX = playerVec.x - entityVec.x, diffY = playerVec.y - entityVec.y, diffZ = playerVec.z - entityVec.z;
+ int squaredDistance = (int) (diffX * diffX + diffY * diffY + diffZ * diffZ);
+ entity.activatedPriority = squaredDistance > gg.pufferfish.pufferfish.PufferfishConfig.startDistanceSquared ?
+ Math.max(1, Math.min(squaredDistance >> gg.pufferfish.pufferfish.PufferfishConfig.activationDistanceMod, gg.pufferfish.pufferfish.PufferfishConfig.maximumActivationPrio)) :
+ Math.max(1, Math.min(squaredDistance >> gg.pufferfish.pufferfish.PufferfishConfig.activationDistanceMod, entity.activatedPriority)) :
+ 1;
+ } else {
+ entity.activatedPriority = 1;
@@ -3605,7 +3640,7 @@ index 1b42c98956342832c37f0aa266f85271daa4ba5b..4e978e12130d685257f408247c4b61a3
}
// Paper end
}
@@ -232,12 +251,12 @@ public class ActivationRange
@@ -232,12 +255,12 @@ public class ActivationRange
if ( MinecraftServer.currentTick > entity.activatedTick )
{
if ( entity.defaultActivationState )
@@ -3620,7 +3655,7 @@ index 1b42c98956342832c37f0aa266f85271daa4ba5b..4e978e12130d685257f408247c4b61a3
entity.activatedTick = MinecraftServer.currentTick;
}
}
@@ -291,7 +310,7 @@ public class ActivationRange
@@ -291,7 +314,7 @@ public class ActivationRange
if ( entity instanceof LivingEntity )
{
LivingEntity living = (LivingEntity) entity;

View File

@@ -27,10 +27,10 @@ index ed9c8e882739c02d0d04129d251e4c726b422c07..5426e57ed67b0d144818a7e3b917c90d
"This can improve performance by a few percent, but has minor gameplay implications.");
}
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
index e802ee2b2dc458f52dbce9746fc9891eebb6dcc1..0e7dd081befe76e8c589f58e44f1aed76be312e6 100644
index fde970ada330e3e2fd481c7687c8499129bd929c..a32c574e7c2beadea31faec788b65a4361414c7c 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -807,7 +807,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -808,7 +808,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
}
// Paper start - optimise random block ticking
private final BlockPos.MutableBlockPos chunkTickMutablePosition = new BlockPos.MutableBlockPos();
@@ -40,7 +40,7 @@ index e802ee2b2dc458f52dbce9746fc9891eebb6dcc1..0e7dd081befe76e8c589f58e44f1aed7
private int currentIceAndSnowTick = 0; protected void resetIceAndSnowTick() { this.currentIceAndSnowTick = this.randomTickRandom.nextInt(16); } // Pufferfish
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
index 0277633fd328ef9993fea4ac29df83b5b00c0f42..35d6a8fe168caa5b68b471bd78cc95b99758d1b0 100644
index 791411866cabc2c237f40d54250d5a34653ceaa0..baf48dc10723cc7c7ececfeb8a05b57aff6ed1bf 100644
--- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java
@@ -271,7 +271,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
@@ -53,7 +53,7 @@ index 0277633fd328ef9993fea4ac29df83b5b00c0f42..35d6a8fe168caa5b68b471bd78cc95b9
// Pufferfish start - ensure these get inlined
private final int minBuildHeight, minSection, height, maxBuildHeight, maxSection;
diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java
index f5adadb2e29ed8b52a502489ba06df4551cd06dc..b89dad36bf09fdab340efc83d09992b707cd321a 100644
index 39684720c5ee2bb36b8d12cc10e05b7ab8d06172..e0e4a924e926b086699998095a1abddd01d8c002 100644
--- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java
+++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java
@@ -130,7 +130,7 @@ public class LevelChunk extends ChunkAccess {

View File

@@ -168,7 +168,7 @@ index abe37c7c3c6f5ab73afd738ec78f06d7e4d2ed96..b5b6657e52e4f7a630229bd3ba433438
stringbuilder.append(CrashReport.getErrorComment());
stringbuilder.append("\n\n");
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 409a544a8cefcfd139bff9b5016fb7a587568a70..0eb4a5b18dcaccd37c2b2c71dbc000aeba559a1a 100644
index 3cadf20891888b56ac70798d581d6a044a98c0a3..10869c6c0697917c412f80dfdc9b211fec0b5b06 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -298,7 +298,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -177,7 +177,7 @@ index 409a544a8cefcfd139bff9b5016fb7a587568a70..0eb4a5b18dcaccd37c2b2c71dbc000ae
public boolean isIteratingOverLevels = false; // Paper
-
+
public gg.pufferfish.pufferfish.util.AsyncExecutor mobSpawnExecutor = new gg.pufferfish.pufferfish.util.AsyncExecutor("MobSpawning", () -> true); // Pufferfish - optimize mob spawning
public gg.pufferfish.pufferfish.util.AsyncExecutor mobSpawnExecutor = new gg.pufferfish.pufferfish.util.AsyncExecutor("MobSpawning"); // Pufferfish - optimize mob spawning
public static <S extends MinecraftServer> S spin(Function<Thread, S> serverFactory) {
@@ -923,7 +923,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -231,7 +231,7 @@ index 8db3bcc63aeb23e5b50864ebea675acc75d184ff..3aa9a667d988fe2b6118ce4b3a4551e7
private static final int DEFAULT_SIZE_THRESHOLD = 1024 * 8;
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index 85d94f47792bbd63c4c4ee8fa4a88abc4c440286..d3d280ee8ddb949b50f434dcd23175911611add0 100644
index a4848a507f620cff686992c2e95039ca60af6d0e..c42e913376fc76d588070fe130470196429fa3b2 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -248,7 +248,7 @@ import javax.annotation.Nullable; // Paper

View File

@@ -81,10 +81,10 @@ index 67bce77093dcc126098731047447da2031e3388d..c4088446d30c3b25cf196f51fd394cd0
return this.isFireSource;
}
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index 26b42474a94ccabd8cfcca39e4c37fb14852cbb8..3971e5cf1fa98e8269c899f494a018042e83b69a 100644
index 249305f0fc4f525fe2d109ecc96900ce3680b1b1..8d52d2fdb98af8d21d3bbea407ff52d3e5eb4ea2 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -3801,6 +3801,20 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -3802,6 +3802,20 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
return SlotAccess.NULL;
}

View File

@@ -22,7 +22,7 @@ index 153451ecd5b3c8e8ecb2d5ec91ccd582d4300899..56536c39bccfe097f8227c74a0d16799
super(x, y, z);
}
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 0eb4a5b18dcaccd37c2b2c71dbc000aeba559a1a..19b9b7deac4d8f125008526cc115375cceced369 100644
index 10869c6c0697917c412f80dfdc9b211fec0b5b06..f2d589f1ad9b507fca816320472caa455a4c6f89 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -1517,6 +1517,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -34,7 +34,7 @@ index 0eb4a5b18dcaccd37c2b2c71dbc000aeba559a1a..19b9b7deac4d8f125008526cc115375c
this.profiler.push(() -> {
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
index 4e0aed7902b6f184441000975d88202cce5040e8..3887126b59e13fc42e096adab29caf726711da00 100644
index a32c574e7c2beadea31faec788b65a4361414c7c..4cea8ac36f618e86ef4fcbe214e8d95cf3bf6fcf 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -220,6 +220,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -79,7 +79,7 @@ index 15075c8705929de83adaf0f7afe7a7cfd40150ae..6ec78e1efff939755b163ab88405e17b
if ((entity instanceof Bucketable && entity instanceof LivingEntity && origItem != null && origItem.asItem() == Items.WATER_BUCKET) && (event.isCancelled() || ServerGamePacketListenerImpl.this.player.getInventory().getSelected() == null || ServerGamePacketListenerImpl.this.player.getInventory().getSelected().getItem() != origItem)) {
// Paper start
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index 3971e5cf1fa98e8269c899f494a018042e83b69a..8bcbaafaa8979773bafe6a9af3e4b97b54039bce 100644
index 8d52d2fdb98af8d21d3bbea407ff52d3e5eb4ea2..810e0b92e2090c18806297b8c29d4e539ddde68e 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -361,7 +361,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -91,7 +91,7 @@ index 3971e5cf1fa98e8269c899f494a018042e83b69a..8bcbaafaa8979773bafe6a9af3e4b97b
private float eyeHeight;
public boolean isInPowderSnow;
public boolean wasInPowderSnow;
@@ -2781,6 +2781,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -2782,6 +2782,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
this.passengers = ImmutableList.copyOf(list);
}
@@ -104,7 +104,7 @@ index 3971e5cf1fa98e8269c899f494a018042e83b69a..8bcbaafaa8979773bafe6a9af3e4b97b
}
return true; // CraftBukkit
}
@@ -2821,6 +2827,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -2822,6 +2828,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
return false;
}
// Spigot end
@@ -119,7 +119,7 @@ index 3971e5cf1fa98e8269c899f494a018042e83b69a..8bcbaafaa8979773bafe6a9af3e4b97b
if (this.passengers.size() == 1 && this.passengers.get(0) == entity) {
this.passengers = ImmutableList.of();
} else {
@@ -4571,4 +4585,45 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -4572,4 +4586,45 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
return ((net.minecraft.server.level.ServerChunkCache) level.getChunkSource()).isPositionTicking(this);
}
// Paper end

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Zombie horse naturally spawn
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
index a774e9a2ee85a8356fd9d39a8fbe98ff893f8f1f..558cd427e0b08a6b59b9851242386e89ca87b996 100644
index 4cea8ac36f618e86ef4fcbe214e8d95cf3bf6fcf..14e7aa4f781bda0d964194f9be6935e8bd057931 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -830,9 +830,15 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -831,9 +831,15 @@ public class ServerLevel extends Level implements WorldGenLevel {
boolean flag1 = this.getGameRules().getBoolean(GameRules.RULE_DOMOBSPAWNING) && this.random.nextDouble() < (double) difficultydamagescaler.getEffectiveDifficulty() * this.paperConfig().entities.spawning.skeletonHorseThunderSpawnChance.or(0.01D) && !this.getBlockState(blockposition.below()).is(Blocks.LIGHTNING_ROD); // Paper
if (flag1) {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Configurable void damage height and damage
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index ad8e766c1b8262e9130fca3bd753b0cc6628db35..2ac6152896928b58d722355e24188b43b8b4d190 100644
index b32ce5c62c1a700ee612c4c2177c068e8a2f9f53..ece73bc2f6d67dde38bb2b42dd2dcf3bd5806691 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -890,7 +890,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -891,7 +891,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
public void checkOutOfWorld() {
// Paper start - Configurable nether ceiling damage

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Add canSaveToDisk to Entity
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index 2ac6152896928b58d722355e24188b43b8b4d190..b4b527e496b117b6bf0e8fb6b77aeaf421ac5f41 100644
index ece73bc2f6d67dde38bb2b42dd2dcf3bd5806691..6ffeafc0c9ed077a3923d0b2c0540a83e0606942 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -4625,5 +4625,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -4626,5 +4626,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
public boolean processClick(InteractionHand hand) {
return false;
}

View File

@@ -25,7 +25,7 @@ index be33d4c0c00804547da3f0aa56b52014343dd804..7edc474d30256811a04788e01d6f0ceb
public boolean spiderRidable = false;
diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java
index 2fec279d8880e310cbddea2eb12e2fc4baf99d8c..6e87153e62db14b5bc8a984c6c9c61780d102083 100644
index 7529bca82efe4c33dbf781bcf6f8b583fa54fa95..383a13a26ee9445fa6201770bb9bef274d72283a 100644
--- a/src/main/java/org/spigotmc/ActivationRange.java
+++ b/src/main/java/org/spigotmc/ActivationRange.java
@@ -15,6 +15,7 @@ import net.minecraft.world.entity.ambient.AmbientCreature;
@@ -36,7 +36,7 @@ index 2fec279d8880e310cbddea2eb12e2fc4baf99d8c..6e87153e62db14b5bc8a984c6c9c6178
import net.minecraft.world.entity.animal.WaterAnimal;
import net.minecraft.world.entity.animal.horse.Llama;
import net.minecraft.world.entity.boss.EnderDragonPart;
@@ -392,6 +393,7 @@ public class ActivationRange
@@ -396,6 +397,7 @@ public class ActivationRange
*/
public static boolean checkIfActive(Entity entity)
{

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Stop squids floating on top of water
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index b4b527e496b117b6bf0e8fb6b77aeaf421ac5f41..49f655e9335a13110c2fbb11af02fc81e71e1dbe 100644
index 6ffeafc0c9ed077a3923d0b2c0540a83e0606942..a2a7fa5508c9975449174365299fc6884f51b936 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -4079,6 +4079,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -4080,6 +4080,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
this.yRotO = this.getYRot();
}

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Entities can use portals configuration
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index 49f655e9335a13110c2fbb11af02fc81e71e1dbe..d1c7f434d8779646ceef1e72af38a3e0d25d12f0 100644
index a2a7fa5508c9975449174365299fc6884f51b936..2f78b7c1b2bad8937ac0cdccd5be8faaf1057cbc 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -2892,7 +2892,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -2893,7 +2893,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
public void handleInsidePortal(BlockPos pos) {
if (this.isOnPortalCooldown()) {
this.setPortalCooldown();
@@ -17,7 +17,7 @@ index 49f655e9335a13110c2fbb11af02fc81e71e1dbe..d1c7f434d8779646ceef1e72af38a3e0
if (!this.level.isClientSide && !pos.equals(this.portalEntrancePos)) {
this.portalEntrancePos = pos.immutable();
}
@@ -3568,7 +3568,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -3569,7 +3569,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
}
public boolean canChangeDimensions() {

View File

@@ -18,7 +18,7 @@ index 689ad22925b2561f7c8db961743eb1f821dbb25f..fa3c960992cc240161817e54659d83fe
public ClientboundSetTimePacket(long time, long timeOfDay, boolean doDaylightCycle) {
this.gameTime = time % 192000; // Paper - fix guardian beam
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 2e17a2c1b536715dd5a38e90615315b8670b1d8b..9b3717176ecb40f4c76a5191956f7d378f3f1478 100644
index a90befe6b38d6789e200535f688804d85dad13e7..a1f830b27137f660fd2f0d95eb4b6692ecb56943 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -1511,7 +1511,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -31,7 +31,7 @@ index 2e17a2c1b536715dd5a38e90615315b8670b1d8b..9b3717176ecb40f4c76a5191956f7d37
}
ServerPlayer entityplayer = (ServerPlayer) entityhuman;
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
index 444a8207fe3610f4cd5f975c5983efab43ccbfea..656ea698078724362cd1a39d29d40ba763b1c12a 100644
index 6f2ec08bf3f7a2902b07e87bdca247d30ec900fe..ee9b4db369763cc579ac112be35167e0d0af6100 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -212,6 +212,8 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -51,7 +51,7 @@ index 444a8207fe3610f4cd5f975c5983efab43ccbfea..656ea698078724362cd1a39d29d40ba7
}
public void setWeatherParameters(int clearDuration, int rainDuration, boolean raining, boolean thundering) {
@@ -792,6 +795,13 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -793,6 +796,13 @@ public class ServerLevel extends Level implements WorldGenLevel {
this.serverLevelData.setGameTime(i);
this.serverLevelData.getScheduledEvents().tick(this.server, i);
if (this.levelData.getGameRules().getBoolean(GameRules.RULE_DAYLIGHT)) {
@@ -65,7 +65,7 @@ index 444a8207fe3610f4cd5f975c5983efab43ccbfea..656ea698078724362cd1a39d29d40ba7
this.setDayTime(this.levelData.getDayTime() + 1L);
}
@@ -800,7 +810,21 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -801,7 +811,21 @@ public class ServerLevel extends Level implements WorldGenLevel {
public void setDayTime(long timeOfDay) {
this.serverLevelData.setDayTime(timeOfDay);

View File

@@ -17,10 +17,10 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index fd3aee8e2d69487415a3a0c5725109fc29cc007c..92a04741779445bdccb6edafdff7209120507296 100644
index 2f78b7c1b2bad8937ac0cdccd5be8faaf1057cbc..5622d3a0732c3006cd9de90b62dec741da0caac4 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -1732,7 +1732,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -1733,7 +1733,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
return this.isInWater() || flag;
}

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Fix stuck in portals
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
index 49a828e2c8859352a6a16b1ea43547dbcde1b9ba..52d0e1b5e461eaf5b1eb412e0adfb52e294af2be 100644
index eaf78967480585b57dece2f791f38609c08339d7..67d466b084b30c57898a6eae773c09daa78ca849 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -1188,6 +1188,7 @@ public class ServerPlayer extends Player {
@@ -17,10 +17,10 @@ index 49a828e2c8859352a6a16b1ea43547dbcde1b9ba..52d0e1b5e461eaf5b1eb412e0adfb52e
// CraftBukkit end
this.setLevel(worldserver);
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index 92a04741779445bdccb6edafdff7209120507296..e03bc5bd30b8a8960159edc855f7493bb6afd755 100644
index 5622d3a0732c3006cd9de90b62dec741da0caac4..c8d08fb02eefee08799661423fd4342f05f1b8f2 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -2889,12 +2889,15 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -2890,12 +2890,15 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
return Vec3.directionFromRotation(this.getRotationVector());
}

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Drowning Settings
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index e03bc5bd30b8a8960159edc855f7493bb6afd755..29974e78e864d19681a2eb4b35dad2063465acd4 100644
index c8d08fb02eefee08799661423fd4342f05f1b8f2..a3a76273bb6ce1621366cfd8dec22e5bd3f5c45e 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -3128,7 +3128,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -3129,7 +3129,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
}
public int getMaxAirSupply() {
@@ -18,7 +18,7 @@ index e03bc5bd30b8a8960159edc855f7493bb6afd755..29974e78e864d19681a2eb4b35dad206
public int getAirSupply() {
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
index 8272135f82a8b42e39f208b4d5758ce7d56d501e..f7473ee8fc0ced687d76ee7d569c1d7cb7ae8f63 100644
index 782bfe3a360b7e63f8457cb7b8b5973740d2b8db..a814faa3be41a60eb6c1a27bafd5a9489c6e8687 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -422,7 +422,7 @@ public abstract class LivingEntity extends Entity {

View File

@@ -6,10 +6,10 @@ Subject: [PATCH] API for any mob to burn daylight
Co-authored by: Encode42 <me@encode42.dev>
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index b0a3d8f7b1b1ad02e11eede0dd4dd88c75ea93ca..cb51ff789d0de27a3cb81ccb863897e427475cd1 100644
index a3a76273bb6ce1621366cfd8dec22e5bd3f5c45e..bd76451230bb0b5abb744088b67b7e558a3241a4 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -4638,5 +4638,20 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -4639,5 +4639,20 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
public boolean canSaveToDisk() {
return true;
}

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Add toggle for end portal safe teleporting
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index ce844dfc6f01f3aa6463054174a41f6f3161ad7a..333cb9aaf281822ed47443d54a27fe2fc438cd21 100644
index bd76451230bb0b5abb744088b67b7e558a3241a4..c18ec8ea889eda26498ec7a31c631cafdaf53432 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -2948,7 +2948,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -2949,7 +2949,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
}
this.processPortalCooldown();

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Make lightning rod range configurable
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
index c96ce52b97881d48d81f0cbe6c44aa1c1505e43c..f08262d7c8c0c7ebaafe5e9d946d6f5328896463 100644
index 45257a5292b4f6e95c2628547233a81ce9e67008..4b86792bfdf02ac8235a981bfca8779527de5b38 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -973,7 +973,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -974,7 +974,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
return holder.is(PoiTypes.LIGHTNING_ROD);
}, (blockposition1) -> {
return blockposition1.getY() == this.getHeight(Heightmap.Types.WORLD_SURFACE, blockposition1.getX(), blockposition1.getZ()) - 1;

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Customizable sleeping actionbar messages
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
index f08262d7c8c0c7ebaafe5e9d946d6f5328896463..38a2173688a4911fd62f7072acf6003bbbeabc13 100644
index 4b86792bfdf02ac8235a981bfca8779527de5b38..6a8c1da4e69f1ceaa74a30c7571af87910fe8562 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -1022,11 +1022,27 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -1023,11 +1023,27 @@ public class ServerLevel extends Level implements WorldGenLevel {
if (this.canSleepThroughNights()) {
if (!this.getServer().isSingleplayer() || this.getServer().isPublished()) {
int i = this.getGameRules().getInt(GameRules.RULE_PLAYERS_SLEEPING_PERCENTAGE);

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Option for if rain and thunder should stop on sleep
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
index 38a2173688a4911fd62f7072acf6003bbbeabc13..f869fe906a5c65c1ef045f77cff894d005aad835 100644
index 6a8c1da4e69f1ceaa74a30c7571af87910fe8562..1ae2b3ce635c6e4b3cdabddda253ec9c925d06cc 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -1181,6 +1181,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -1182,6 +1182,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
private void resetWeatherCycle() {
// CraftBukkit start
@@ -16,7 +16,7 @@ index 38a2173688a4911fd62f7072acf6003bbbeabc13..f869fe906a5c65c1ef045f77cff894d0
this.serverLevelData.setRaining(false, org.bukkit.event.weather.WeatherChangeEvent.Cause.SLEEP); // Paper - when passing the night
// If we stop due to everyone sleeping we should reset the weather duration to some other random value.
// Not that everyone ever manages to get the whole server to sleep at the same time....
@@ -1188,6 +1189,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -1189,6 +1190,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
this.serverLevelData.setRainTime(0);
}
// CraftBukkit end

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Option to prevent spiders from climbing world border
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index 333cb9aaf281822ed47443d54a27fe2fc438cd21..f9cf68820e01619a4ec319f18583a24115bfe112 100644
index c18ec8ea889eda26498ec7a31c631cafdaf53432..9ec8bb25f4b6101e0fe2f99ca6e15da2c000e6e7 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -304,6 +304,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -16,7 +16,7 @@ index 333cb9aaf281822ed47443d54a27fe2fc438cd21..f9cf68820e01619a4ec319f18583a241
public boolean hurtMarked;
protected Vec3 stuckSpeedMultiplier;
@Nullable
@@ -1416,7 +1417,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -1417,7 +1418,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
io.papermc.paper.util.CollisionUtil.getCollisions(world, this, collisionBox, potentialCollisions, false, this.level.paperConfig().chunks.preventMovingIntoUnloadedChunks,
false, false, null, null);

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Allow void trading
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
index f869fe906a5c65c1ef045f77cff894d005aad835..71ff2cfc4aba6da71911ea717e3557647c41c210 100644
index 1ae2b3ce635c6e4b3cdabddda253ec9c925d06cc..4ba091c3ecb1cf65839b91a459954545214ef15b 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -2700,7 +2700,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -2701,7 +2701,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
// Spigot Start
if (entity.getBukkitEntity() instanceof org.bukkit.inventory.InventoryHolder && (!(entity instanceof ServerPlayer) || entity.getRemovalReason() != Entity.RemovalReason.KILLED)) { // SPIGOT-6876: closeInventory clears death message
// Paper start

View File

@@ -7,10 +7,10 @@ Paper patches RNG maniplulation by using a shared (and locked) random source.
This comes with a performance gain, but technical players may prefer the ability to manipulate RNG.
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index 2988818acd52ae37f4ac4005ae550aefc40fe431..ef8d7c0c922cdc9e4ee857144677990c90c663ba 100644
index 9ec8bb25f4b6101e0fe2f99ca6e15da2c000e6e7..bf55ce8f12650037fab0a2133cc1c047a891b5bb 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -576,7 +576,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -577,7 +577,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
this.bb = Entity.INITIAL_AABB;
this.stuckSpeedMultiplier = Vec3.ZERO;
this.nextStep = 1.0F;

View File

@@ -88,7 +88,7 @@ index 8bc0cb9ad5bb4e76d962ff54305e2c08e279a17b..e8efbbeece7e866c6c4d7489677d2d9e
PacketUtils.LOGGER.debug("Ignoring packet due to disconnection: {}", packet);
}
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 13d86c1fba2377808a5ef1e2820db445383af156..8569938bfc2b71ea32301ad78f64e5017149f5d7 100644
index 0a1662fc8bffca26de909c980b828f7ab05aa5a3..72ac77dd27840c834cbf368ffe5173ba5f21cc30 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -1408,15 +1408,15 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -271,7 +271,7 @@ index cd04f57fee33097a45bcf670c25c6baf9b76851c..8b8655300fa81de8352dfec92c088f4f
@Override
diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java
index 8d19dcf7a91d1e9c17d03e6e339885d99647ec92..6d819e330f55ddf7e2ccf2f615543f4c9eca1f71 100644
index 5b714df6faca6424e7c7d89e56a4e0425bd1b1c6..fac291c9a48b2563d33fe7250e57556aa29ec669 100644
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java
+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
@@ -608,15 +608,15 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
@@ -354,7 +354,7 @@ index 8d19dcf7a91d1e9c17d03e6e339885d99647ec92..6d819e330f55ddf7e2ccf2f615543f4c
}
diff --git a/src/main/java/net/minecraft/server/level/ServerChunkCache.java b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
index 0b75caca3f77980505d0689601d920fb50f7ac4d..2af21158dfb44a49f15c07d765a09335f76ed3dd 100644
index 014255019ce3f22e0c8cf8f0a775669f909d18f4..6a11e522c5bd9042dcf89e2538d354448e501fbe 100644
--- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java
+++ b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
@@ -449,10 +449,10 @@ public class ServerChunkCache extends ChunkSource {
@@ -477,7 +477,7 @@ index 0b75caca3f77980505d0689601d920fb50f7ac4d..2af21158dfb44a49f15c07d765a09335
// Paper end - use set of chunks requiring updates, rather than iterating every single one loaded
// Paper start - controlled flush for entity tracker packets
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
index 71ff2cfc4aba6da71911ea717e3557647c41c210..550c3566b14aace0dbd4e77876abc2bb663bcf5c 100644
index 4ba091c3ecb1cf65839b91a459954545214ef15b..c94246d19a0d2f2a87f74d6ca4b14a764ccfa948 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -686,7 +686,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -533,9 +533,9 @@ index 71ff2cfc4aba6da71911ea717e3557647c41c210..550c3566b14aace0dbd4e77876abc2bb
- timings.entityTick.startTiming(); // Spigot
+ //timings.entityTick.startTiming(); // Spigot // Purpur
this.entityTickList.forEach((entity) -> {
entity.activatedPriorityReset = false; // Pufferfish - DAB
if (!entity.isRemoved()) {
if (false && this.shouldDiscardEntity(entity)) { // CraftBukkit - We prevent spawning in general, so this butchering is not needed
@@ -767,8 +767,8 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -768,8 +768,8 @@ public class ServerLevel extends Level implements WorldGenLevel {
}
}
});
@@ -546,7 +546,7 @@ index 71ff2cfc4aba6da71911ea717e3557647c41c210..550c3566b14aace0dbd4e77876abc2bb
gameprofilerfiller.pop();
this.tickBlockEntities();
}
@@ -930,7 +930,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -931,7 +931,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
// Paper start - optimise random block ticking
gameprofilerfiller.popPush("randomTick");
@@ -555,7 +555,7 @@ index 71ff2cfc4aba6da71911ea717e3557647c41c210..550c3566b14aace0dbd4e77876abc2bb
if (randomTickSpeed > 0) {
LevelChunkSection[] sections = chunk.getSections();
int minSection = io.papermc.paper.util.WorldUtil.getMinSection(this);
@@ -964,7 +964,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -965,7 +965,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
}
}
// Paper end - optimise random block ticking
@@ -564,7 +564,7 @@ index 71ff2cfc4aba6da71911ea717e3557647c41c210..550c3566b14aace0dbd4e77876abc2bb
gameprofilerfiller.pop();
}
@@ -1257,8 +1257,8 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -1258,8 +1258,8 @@ public class ServerLevel extends Level implements WorldGenLevel {
// Spigot end
// Paper start- timings
final boolean isActive = org.spigotmc.ActivationRange.checkIfActive(entity);
@@ -575,7 +575,7 @@ index 71ff2cfc4aba6da71911ea717e3557647c41c210..550c3566b14aace0dbd4e77876abc2bb
// Paper end - timings
entity.setOldPosAndRot();
ProfilerFiller gameprofilerfiller = this.getProfiler();
@@ -1274,7 +1274,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -1275,7 +1275,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
entity.postTick(); // CraftBukkit
} else { entity.inactiveTick(); } // Paper - EAR 2
this.getProfiler().pop();
@@ -584,7 +584,7 @@ index 71ff2cfc4aba6da71911ea717e3557647c41c210..550c3566b14aace0dbd4e77876abc2bb
Iterator iterator = entity.getPassengers().iterator();
while (iterator.hasNext()) {
@@ -1297,8 +1297,8 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -1298,8 +1298,8 @@ public class ServerLevel extends Level implements WorldGenLevel {
if (passenger instanceof Player || this.entityTickList.contains(passenger)) {
// Paper - EAR 2
final boolean isActive = org.spigotmc.ActivationRange.checkIfActive(passenger);
@@ -595,7 +595,7 @@ index 71ff2cfc4aba6da71911ea717e3557647c41c210..550c3566b14aace0dbd4e77876abc2bb
// Paper end
passenger.setOldPosAndRot();
++passenger.tickCount;
@@ -1328,7 +1328,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -1329,7 +1329,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
this.tickPassenger(passenger, entity2);
}
@@ -604,7 +604,7 @@ index 71ff2cfc4aba6da71911ea717e3557647c41c210..550c3566b14aace0dbd4e77876abc2bb
}
} else {
passenger.stopRiding();
@@ -1348,14 +1348,14 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -1349,14 +1349,14 @@ public class ServerLevel extends Level implements WorldGenLevel {
org.bukkit.Bukkit.getPluginManager().callEvent(new org.bukkit.event.world.WorldSaveEvent(getWorld()));
}
@@ -622,7 +622,7 @@ index 71ff2cfc4aba6da71911ea717e3557647c41c210..550c3566b14aace0dbd4e77876abc2bb
// Copied from save()
// CraftBukkit start - moved from MinecraftServer.saveChunks
@@ -1367,7 +1367,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -1368,7 +1368,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
this.convertable.saveDataTag(this.server.registryHolder, this.serverLevelData, this.server.getPlayerList().getSingleplayerData());
}
// CraftBukkit end
@@ -631,7 +631,7 @@ index 71ff2cfc4aba6da71911ea717e3557647c41c210..550c3566b14aace0dbd4e77876abc2bb
}
// Paper end
@@ -1381,7 +1381,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -1382,7 +1382,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
if (!savingDisabled) {
org.bukkit.Bukkit.getPluginManager().callEvent(new org.bukkit.event.world.WorldSaveEvent(getWorld())); // CraftBukkit
@@ -640,7 +640,7 @@ index 71ff2cfc4aba6da71911ea717e3557647c41c210..550c3566b14aace0dbd4e77876abc2bb
if (progressListener != null) {
progressListener.progressStartNoAbort(Component.translatable("menu.savingLevel"));
}
@@ -1391,11 +1391,11 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -1392,11 +1392,11 @@ public class ServerLevel extends Level implements WorldGenLevel {
progressListener.progressStage(Component.translatable("menu.savingChunks"));
}
@@ -656,7 +656,7 @@ index 71ff2cfc4aba6da71911ea717e3557647c41c210..550c3566b14aace0dbd4e77876abc2bb
} else if (close) { chunkproviderserver.close(false); } // Paper - rewrite chunk system
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index 799c279e63f23227cb473f7828aeaf7afb0de355..3503b7defe826db564370dbab78a8c91f5156d20 100644
index 20314fae0222f42849eb02d4b3ce4058f0b532d1..66c89b3c3668cfc0d427bca85918dbd7fc7089af 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -2603,7 +2603,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@@ -687,7 +687,7 @@ index 799c279e63f23227cb473f7828aeaf7afb0de355..3503b7defe826db564370dbab78a8c91
}
// CraftBukkit end
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
index eb3d0956a43f96d495ce6712f413e84acbc0fa1c..755d15af7cc0e47c1700db55f51e8169a521bfb8 100644
index 637099bcf299d56aeb9ef12b1a2ff69c8a2246a4..82634bd0ab2792f637573c2ee7d9d00ba1104900 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -1287,7 +1287,7 @@ public abstract class PlayerList {
@@ -790,7 +790,7 @@ index 09ae98db728bade8121587e9ded6f3ab98f3bb30..5e3acd365d9aca4271a590564e3eaad0
co.aikar.timings.TimingHistory.tileEntityTicks += this.blockEntityTickers.size(); // Paper
gameprofilerfiller.pop();
diff --git a/src/main/java/net/minecraft/world/level/NaturalSpawner.java b/src/main/java/net/minecraft/world/level/NaturalSpawner.java
index eceae1230e672d95491405f3f7c550c90ea9b138..724f034d92f9f3f1021802e2bc2a845146c45efa 100644
index a182b3c804cf56855e15290f826fdebdc289a552..2d19db940d4f1624631cec29547e88842a4cfb98 100644
--- a/src/main/java/net/minecraft/world/level/NaturalSpawner.java
+++ b/src/main/java/net/minecraft/world/level/NaturalSpawner.java
@@ -132,7 +132,7 @@ public final class NaturalSpawner {
@@ -812,7 +812,7 @@ index eceae1230e672d95491405f3f7c550c90ea9b138..724f034d92f9f3f1021802e2bc2a8451
}
diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java
index d9638971ac4d8dfaf4351cebb5ff6ea16327091e..434e33aa5c1c9722ea065627f1559c833954a342 100644
index e0e4a924e926b086699998095a1abddd01d8c002..772a2dc21071a3f687b51fbddf9f12a90d41ce79 100644
--- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java
+++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java
@@ -930,7 +930,7 @@ public class LevelChunk extends ChunkAccess {
@@ -929,7 +929,7 @@ index 138407c2d4b0bc55ddb9aac5d2aa3edadda090fb..a6e9e503a496c18e2501b03ec84f4600
// Paper end - add timings for scoreboard search
}
diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java
index 6e87153e62db14b5bc8a984c6c9c61780d102083..937e3e783cf2f38b30024d29600eb4d042816058 100644
index 383a13a26ee9445fa6201770bb9bef274d72283a..fe830a419c81811f0a72add63a3f09a94392e4a7 100644
--- a/src/main/java/org/spigotmc/ActivationRange.java
+++ b/src/main/java/org/spigotmc/ActivationRange.java
@@ -170,7 +170,7 @@ public class ActivationRange
@@ -941,7 +941,7 @@ index 6e87153e62db14b5bc8a984c6c9c61780d102083..937e3e783cf2f38b30024d29600eb4d0
final int miscActivationRange = world.spigotConfig.miscActivationRange;
final int raiderActivationRange = world.spigotConfig.raiderActivationRange;
final int animalActivationRange = world.spigotConfig.animalActivationRange;
@@ -240,7 +240,7 @@ public class ActivationRange
@@ -244,7 +244,7 @@ public class ActivationRange
}
// Paper end
}

View File

@@ -39,7 +39,7 @@ index edd378813873ed367784379b0f1666d1ccf2194d..eb4dac2239592d680ef31edf47f1ab66
return b0;
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 8569938bfc2b71ea32301ad78f64e5017149f5d7..0168d31480ded035584157c747f60df7f712f250 100644
index 72ac77dd27840c834cbf368ffe5173ba5f21cc30..2c6461491881da9f878bd5aa245272ea49dd5fd8 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -328,13 +328,13 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -538,7 +538,7 @@ index 6a11e522c5bd9042dcf89e2538d354448e501fbe..3bee0bfc481ffe3ea1860c5b23ad2efb
}
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
index a242d1d51784c5e22464c3c23cd45b62e338f5fd..55dfc1e2d7653a474aefed403dc67016aaa77514 100644
index c94246d19a0d2f2a87f74d6ca4b14a764ccfa948..2833d47fd1e8913d2160cbf48f34e941ad885a78 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -653,12 +653,12 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -614,7 +614,7 @@ index a242d1d51784c5e22464c3c23cd45b62e338f5fd..55dfc1e2d7653a474aefed403dc67016
}
org.spigotmc.ActivationRange.activateEntities(this); // Spigot
@@ -733,9 +733,9 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -734,9 +734,9 @@ public class ServerLevel extends Level implements WorldGenLevel {
if (false && this.shouldDiscardEntity(entity)) { // CraftBukkit - We prevent spawning in general, so this butchering is not needed
entity.discard();
} else {
@@ -626,7 +626,7 @@ index a242d1d51784c5e22464c3c23cd45b62e338f5fd..55dfc1e2d7653a474aefed403dc67016
if (true || this.chunkSource.chunkMap.getDistanceManager().inEntityTickingRange(entity.chunkPosition().toLong())) { // Paper - now always true if in the ticking list
Entity entity1 = entity.getVehicle();
@@ -747,7 +747,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -748,7 +748,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
entity.stopRiding();
}
@@ -635,7 +635,7 @@ index a242d1d51784c5e22464c3c23cd45b62e338f5fd..55dfc1e2d7653a474aefed403dc67016
// Pufferfish start - copied from this.guardEntityTick
try {
this.tickNonPassenger(entity); // Pufferfish - changed
@@ -762,22 +762,22 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -763,22 +763,22 @@ public class ServerLevel extends Level implements WorldGenLevel {
// Paper end
}
// Pufferfish end
@@ -663,7 +663,7 @@ index a242d1d51784c5e22464c3c23cd45b62e338f5fd..55dfc1e2d7653a474aefed403dc67016
}
@Override
@@ -859,9 +859,9 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -860,9 +860,9 @@ public class ServerLevel extends Level implements WorldGenLevel {
boolean flag = this.isRaining();
int j = chunkcoordintpair.getMinBlockX();
int k = chunkcoordintpair.getMinBlockZ();
@@ -675,7 +675,7 @@ index a242d1d51784c5e22464c3c23cd45b62e338f5fd..55dfc1e2d7653a474aefed403dc67016
final BlockPos.MutableBlockPos blockposition = this.chunkTickMutablePosition; // Paper - use mutable to reduce allocation rate, final to force compile fail on change
if (!this.paperConfig().environment.disableThunder && flag && this.isThundering() && this.spigotConfig.thunderChance > 0 && /*this.random.nextInt(this.spigotConfig.thunderChance) == 0 &&*/ chunk.shouldDoLightning(this.random)) { // Spigot // Paper - disable thunder // Pufferfish - replace random with shouldDoLightning
@@ -893,7 +893,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -894,7 +894,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
}
}
@@ -684,7 +684,7 @@ index a242d1d51784c5e22464c3c23cd45b62e338f5fd..55dfc1e2d7653a474aefed403dc67016
if (!this.paperConfig().environment.disableIceAndSnow && (this.currentIceAndSnowTick++ & 15) == 0) { // Paper - Disable ice and snow // Paper - optimise random ticking // Pufferfish - optimize further random ticking
// Paper start - optimise chunk ticking
this.getRandomBlockPosition(j, 0, k, 15, blockposition);
@@ -929,7 +929,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -930,7 +930,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
}
// Paper start - optimise random block ticking
@@ -693,7 +693,7 @@ index a242d1d51784c5e22464c3c23cd45b62e338f5fd..55dfc1e2d7653a474aefed403dc67016
//timings.chunkTicksBlocks.startTiming(); // Paper // Purpur
if (randomTickSpeed > 0) {
LevelChunkSection[] sections = chunk.getSections();
@@ -965,7 +965,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -966,7 +966,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
}
// Paper end - optimise random block ticking
//timings.chunkTicksBlocks.stopTiming(); // Paper // Purpur
@@ -702,7 +702,7 @@ index a242d1d51784c5e22464c3c23cd45b62e338f5fd..55dfc1e2d7653a474aefed403dc67016
}
public Optional<BlockPos> findLightningRod(BlockPos pos) {
@@ -1261,19 +1261,19 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -1262,19 +1262,19 @@ public class ServerLevel extends Level implements WorldGenLevel {
//try { // Purpur
// Paper end - timings
entity.setOldPosAndRot();
@@ -727,7 +727,7 @@ index a242d1d51784c5e22464c3c23cd45b62e338f5fd..55dfc1e2d7653a474aefed403dc67016
//} finally { timer.stopTiming(); } // Paper - timings // Purpur
Iterator iterator = entity.getPassengers().iterator();
@@ -1302,12 +1302,12 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -1303,12 +1303,12 @@ public class ServerLevel extends Level implements WorldGenLevel {
// Paper end
passenger.setOldPosAndRot();
++passenger.tickCount;
@@ -744,7 +744,7 @@ index a242d1d51784c5e22464c3c23cd45b62e338f5fd..55dfc1e2d7653a474aefed403dc67016
// Paper start - EAR 2
if (isActive) {
passenger.rideTick();
@@ -1319,7 +1319,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -1320,7 +1320,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
vehicle.positionRider(passenger);
}
// Paper end - EAR 2
@@ -1013,10 +1013,10 @@ index 5725c6593480fada65facc29664a00a8cc073512..ccb1f998ae3122d1856d77149ff7e7df
};
}
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index ef8d7c0c922cdc9e4ee857144677990c90c663ba..6c8a5126c45aec13dc881a1998bdbb0f11bb9688 100644
index bf55ce8f12650037fab0a2133cc1c047a891b5bb..0981acb2a87bb2535a0b447c4f23e14befcc81d3 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -821,7 +821,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -822,7 +822,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
return;
}
// Pufferfish end - entity TTL
@@ -1025,7 +1025,7 @@ index ef8d7c0c922cdc9e4ee857144677990c90c663ba..6c8a5126c45aec13dc881a1998bdbb0f
if (firstTick && this instanceof net.minecraft.world.entity.NeutralMob neutralMob) neutralMob.tickInitialPersistentAnger(level); // Paper - Update last hurt when ticking
this.feetBlockState = null;
if (this.isPassenger() && this.getVehicle().isRemoved()) {
@@ -882,7 +882,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -883,7 +883,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
}
this.firstTick = false;
@@ -1034,7 +1034,7 @@ index ef8d7c0c922cdc9e4ee857144677990c90c663ba..6c8a5126c45aec13dc881a1998bdbb0f
}
public void setSharedFlagOnFire(boolean onFire) {
@@ -1056,7 +1056,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -1057,7 +1057,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
}
}
@@ -1043,7 +1043,7 @@ index ef8d7c0c922cdc9e4ee857144677990c90c663ba..6c8a5126c45aec13dc881a1998bdbb0f
if (this.stuckSpeedMultiplier.lengthSqr() > 1.0E-7D) {
movement = movement.multiply(this.stuckSpeedMultiplier);
this.stuckSpeedMultiplier = Vec3.ZERO;
@@ -1065,7 +1065,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -1066,7 +1066,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
// Paper start - ignore movement changes while inactive.
if (isTemporarilyActive && !(this instanceof ItemEntity || this instanceof net.minecraft.world.entity.vehicle.AbstractMinecart) && movement == getDeltaMovement() && movementType == MoverType.SELF) {
setDeltaMovement(Vec3.ZERO);
@@ -1052,7 +1052,7 @@ index ef8d7c0c922cdc9e4ee857144677990c90c663ba..6c8a5126c45aec13dc881a1998bdbb0f
return;
}
// Paper end
@@ -1086,8 +1086,8 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -1087,8 +1087,8 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
this.setPos(this.getX() + vec3d1.x, this.getY() + vec3d1.y, this.getZ() + vec3d1.z);
}
@@ -1063,7 +1063,7 @@ index ef8d7c0c922cdc9e4ee857144677990c90c663ba..6c8a5126c45aec13dc881a1998bdbb0f
boolean flag = !Mth.equal(movement.x, vec3d1.x);
boolean flag1 = !Mth.equal(movement.z, vec3d1.z);
@@ -1106,7 +1106,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -1107,7 +1107,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
this.checkFallDamage(vec3d1.y, this.onGround, iblockdata, blockposition);
if (this.isRemoved()) {
@@ -1072,7 +1072,7 @@ index ef8d7c0c922cdc9e4ee857144677990c90c663ba..6c8a5126c45aec13dc881a1998bdbb0f
} else {
if (this.horizontalCollision) {
Vec3 vec3d2 = this.getDeltaMovement();
@@ -1247,7 +1247,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -1248,7 +1248,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
this.setRemainingFireTicks(-this.getFireImmuneTicks());
}
@@ -1081,7 +1081,7 @@ index ef8d7c0c922cdc9e4ee857144677990c90c663ba..6c8a5126c45aec13dc881a1998bdbb0f
}
}
// Paper start - detailed watchdog information
@@ -2916,7 +2916,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -2917,7 +2917,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
ServerLevel worldserver1 = minecraftserver.getLevel(resourcekey);
if (true && !this.isPassenger() && this.portalTime++ >= i) { // CraftBukkit
@@ -1090,7 +1090,7 @@ index ef8d7c0c922cdc9e4ee857144677990c90c663ba..6c8a5126c45aec13dc881a1998bdbb0f
this.portalTime = i;
// Paper start
io.papermc.paper.event.entity.EntityPortalReadyEvent event = new io.papermc.paper.event.entity.EntityPortalReadyEvent(this.getBukkitEntity(), worldserver1 == null ? null : worldserver1.getWorld(), org.bukkit.PortalType.NETHER);
@@ -2934,7 +2934,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -2935,7 +2935,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
}
} // Paper
// CraftBukkit end
@@ -1099,7 +1099,7 @@ index ef8d7c0c922cdc9e4ee857144677990c90c663ba..6c8a5126c45aec13dc881a1998bdbb0f
}
this.isInsidePortal = false;
@@ -3392,14 +3392,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -3393,14 +3393,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
}
// Paper end
if (this.level instanceof ServerLevel && !this.isRemoved()) {
@@ -1116,7 +1116,7 @@ index ef8d7c0c922cdc9e4ee857144677990c90c663ba..6c8a5126c45aec13dc881a1998bdbb0f
PortalInfo shapedetectorshape = (location == null) ? this.findDimensionEntryPoint(worldserver) : new PortalInfo(new Vec3(location.x(), location.y(), location.z()), Vec3.ZERO, this.yRot, this.xRot, worldserver, null); // CraftBukkit
if (shapedetectorshape == null) {
@@ -3433,7 +3433,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -3434,7 +3434,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
this.unRide();
// CraftBukkit end
@@ -1125,7 +1125,7 @@ index ef8d7c0c922cdc9e4ee857144677990c90c663ba..6c8a5126c45aec13dc881a1998bdbb0f
// Paper start - Change lead drop timing to prevent dupe
if (this instanceof Mob) {
((Mob) this).dropLeash(true, true); // Paper drop lead
@@ -3456,10 +3456,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -3457,10 +3457,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
}
this.removeAfterChangingDimensions();

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Fire Immunity API
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index 6c8a5126c45aec13dc881a1998bdbb0f11bb9688..9f3a065a24d2e8cc2ea7ae307545af013fdbbf1b 100644
index 0981acb2a87bb2535a0b447c4f23e14befcc81d3..a9a915efb5b270b3f13cb7493f59b36d818312d8 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -398,6 +398,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -16,7 +16,7 @@ index 6c8a5126c45aec13dc881a1998bdbb0f11bb9688..9f3a065a24d2e8cc2ea7ae307545af01
public void setOrigin(@javax.annotation.Nonnull Location location) {
this.origin = location.toVector();
@@ -1664,7 +1665,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -1665,7 +1666,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
}
public boolean fireImmune() {
@@ -25,7 +25,7 @@ index 6c8a5126c45aec13dc881a1998bdbb0f11bb9688..9f3a065a24d2e8cc2ea7ae307545af01
}
public boolean causeFallDamage(float fallDistance, float damageMultiplier, DamageSource damageSource) {
@@ -2301,6 +2302,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -2302,6 +2303,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
nbt.putBoolean("Paper.FreezeLock", true);
}
// Paper end
@@ -37,7 +37,7 @@ index 6c8a5126c45aec13dc881a1998bdbb0f11bb9688..9f3a065a24d2e8cc2ea7ae307545af01
return nbt;
} catch (Throwable throwable) {
CrashReport crashreport = CrashReport.forThrowable(throwable, "Saving entity NBT");
@@ -2468,6 +2474,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -2469,6 +2475,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
freezeLocked = nbt.getBoolean("Paper.FreezeLock");
}
// Paper end

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Add option to teleport to spawn on nether ceiling damage
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index 9f3a065a24d2e8cc2ea7ae307545af013fdbbf1b..c8a24d1026671652cc5042d6b41b85e38ddfda8b 100644
index a9a915efb5b270b3f13cb7493f59b36d818312d8..dd13fc7cbf82948b1474ea33411e64b465608672 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -419,7 +419,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -420,7 +420,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
public int activatedPriority = gg.pufferfish.pufferfish.PufferfishConfig.maximumActivationPrio; // golf score
public final BlockPos.MutableBlockPos cachedBlockPos = new BlockPos.MutableBlockPos(); // used where needed
// Pufferfish end
@@ -17,7 +17,7 @@ index 9f3a065a24d2e8cc2ea7ae307545af013fdbbf1b..c8a24d1026671652cc5042d6b41b85e3
public float getBukkitYaw() {
return this.yRot;
}
@@ -896,6 +896,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -897,6 +897,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
&& this.level.paperConfig().environment.netherCeilingVoidDamageHeight.test(v -> this.getY() >= v)
&& (!(this instanceof Player player) || !player.getAbilities().invulnerable))) {
// Paper end