Apply remaining patches, fix API

This commit is contained in:
Nassim Jahnke 2024-12-03 21:24:17 +01:00
parent dc74c6f19e
commit d7d2f88893
No known key found for this signature in database
GPG key ID: EF6771C01F6EF02F
36 changed files with 105 additions and 101 deletions

View file

@ -71,7 +71,7 @@ index 21f9998b472dc18eb308554f5cdf467f6675f2f0..521f035409ee61a9ad73d39bec938f29
return Lists.newArrayList(Registry.ATTRIBUTE).toArray(new Attribute[0]);
}
diff --git a/src/main/java/org/bukkit/block/Biome.java b/src/main/java/org/bukkit/block/Biome.java
index 739fef949defca7b6bf4e6b3e079446c24d9b34c..1b9f7a7759e59e0294f379dc6388f400010faa2f 100644
index 739fef949defca7b6bf4e6b3e079446c24d9b34c..20fc2b30fdcdedb012dfe129e746d0b9e162fc36 100644
--- a/src/main/java/org/bukkit/block/Biome.java
+++ b/src/main/java/org/bukkit/block/Biome.java
@@ -93,7 +93,7 @@ public interface Biome extends OldEnum<Biome>, Keyed, net.kyori.adventure.transl
@ -79,7 +79,7 @@ index 739fef949defca7b6bf4e6b3e079446c24d9b34c..1b9f7a7759e59e0294f379dc6388f400
* @deprecated Biome is no longer an enum, custom biomes will have their own biome instance.
*/
- @Deprecated(since = "1.21.3")
+ @Deprecated(since = "1.21.3", forRemoval = true) @ApiStatus.ScheduledForRemoval(inVersion = "1.22") // Paper - will be removed via asm-utils
+ @Deprecated(since = "1.21.3", forRemoval = true) @org.jetbrains.annotations.ApiStatus.ScheduledForRemoval(inVersion = "1.22") // Paper - will be removed via asm-utils
Biome CUSTOM = Bukkit.getUnsafe().getCustomBiome();
@NotNull
@ -88,7 +88,7 @@ index 739fef949defca7b6bf4e6b3e079446c24d9b34c..1b9f7a7759e59e0294f379dc6388f400
*/
@NotNull
- @Deprecated(since = "1.21.3")
+ @Deprecated(since = "1.21.3", forRemoval = true) @ApiStatus.ScheduledForRemoval(inVersion = "1.22") // Paper - will be removed via asm-utils
+ @Deprecated(since = "1.21.3", forRemoval = true) @org.jetbrains.annotations.ApiStatus.ScheduledForRemoval(inVersion = "1.22") // Paper - will be removed via asm-utils
static Biome valueOf(@NotNull String name) {
if ("CUSTOM".equals(name)) {
return Biome.CUSTOM;

View file

@ -5,7 +5,7 @@ Subject: [PATCH] Improve entity effect API
diff --git a/src/main/java/org/bukkit/EntityEffect.java b/src/main/java/org/bukkit/EntityEffect.java
index d7ccccdf3f5e2c572efd528a92e240ec6ea60028..51d51638b7220f886c8415581869df8708e72fef 100644
index d7ccccdf3f5e2c572efd528a92e240ec6ea60028..37c321067ee25f8a38130eb65ed06e1c986c65b6 100644
--- a/src/main/java/org/bukkit/EntityEffect.java
+++ b/src/main/java/org/bukkit/EntityEffect.java
@@ -112,11 +112,25 @@ public enum EntityEffect {
@ -76,7 +76,7 @@ index d7ccccdf3f5e2c572efd528a92e240ec6ea60028..51d51638b7220f886c8415581869df87
HURT_BERRY_BUSH(44, LivingEntity.class),
/**
* Fox chews the food in its mouth
@@ -331,7 +355,25 @@ public enum EntityEffect {
@@ -331,7 +355,23 @@ public enum EntityEffect {
* Sniffer must have a target and be in {@link Sniffer.State#SEARCHING} or
* {@link Sniffer.State#DIGGING}
*/
@ -96,9 +96,7 @@ index d7ccccdf3f5e2c572efd528a92e240ec6ea60028..51d51638b7220f886c8415581869df87
+ * Does not apply to plain creaking entities as they are not invulnerable like the transient ones spawned by the
+ * creaking heart.
+ */
+ @MinecraftExperimental(MinecraftExperimental.Requires.WINTER_DROP)
+ @org.jetbrains.annotations.ApiStatus.Experimental
+ SHAKE(66, org.bukkit.entity.CreakingTransient.class);
+ SHAKE(66, org.bukkit.entity.Creaking.class);
+ // Paper end - add missing EntityEffect
private final byte data;

View file

@ -5,10 +5,10 @@ Subject: [PATCH] API for checking sent chunks
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index 71ed0230baf3115a53a8ce8f0a5c72f01954fffc..d4e497961578bb693275cdf95915b60b2cc76eb7 100644
index 79d72a2f6cd85f18c644bd48801fdda86f9d235a..84c494ca81b8f58604b372ac7236147776817a4f 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -3500,6 +3500,35 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -3485,6 +3485,35 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
}
// Paper end

View file

@ -6,7 +6,7 @@ Subject: [PATCH] Fix CraftWorld#isChunkGenerated
The upstream implementation is returning true for non-full chunks.
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
index ddf6403682025e544ab4060c32ff089ed11ffe0a..57da11c0da7322e74810e7108e9c8000b0c36520 100644
index 7c936f59ad8fc1fa244adcc19c413d6e0e4f7323..a9f7ac8d1f5e184687d53ab3e8b348bb7f4f2ba0 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -398,11 +398,28 @@ public class CraftWorld extends CraftRegionAccessor implements World {

View file

@ -6,10 +6,10 @@ Subject: [PATCH] Add startup flag to disable gamerule limits
-DPaper.DisableGameRuleLimits=true will disable gamerule limits
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
index 9928e14a5a42a2f0deba86e9dcb1f6f9f59412ef..c5eed86a8982466fd8302c678f0f041db1b24029 100644
index 5889a47a25abf3494fba74ebb3c5e07a2408f161..e4a50b2f6cdc9daf6a018aaf44bb029c5003fa65 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -2071,13 +2071,21 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
@@ -2077,13 +2077,21 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
}
if (this.lastSpawnChunkRadius > 1) {

View file

@ -105,11 +105,11 @@ index 589a8bf75be6ccc59f1e5dd5d8d9afed41c4772d..b24265573fdef5d9a964bcd76146f345
cause = cause.getCause();
}
diff --git a/src/main/java/net/minecraft/server/Main.java b/src/main/java/net/minecraft/server/Main.java
index e114e687f2f4503546687fd6792226a643af8793..90ca25c4aaf92a5639839a7cdaee2ffcdb75efa7 100644
index 42d46c7a7437bea5335a23cbee5708ac57131474..300a044bb0f0e377133f24469cea1a9669de6e58 100644
--- a/src/main/java/net/minecraft/server/Main.java
+++ b/src/main/java/net/minecraft/server/Main.java
@@ -77,6 +77,7 @@ public class Main {
@@ -79,6 +79,7 @@ public class Main {
@SuppressForbidden(reason = "System.out needed before bootstrap") // CraftBukkit - decompile error
@DontObfuscate
public static void main(final OptionSet optionset) { // CraftBukkit - replaces main(String[] astring)
+ io.papermc.paper.util.LogManagerShutdownThread.hook(); // Paper
@ -117,7 +117,7 @@ index e114e687f2f4503546687fd6792226a643af8793..90ca25c4aaf92a5639839a7cdaee2ffc
/* CraftBukkit start - Replace everything
OptionParser optionparser = new OptionParser();
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 9cb435573d0b1bdf5488bd5b9cef5d2aba6a1c2d..4ac8bc8dc326ef12c4ffdfdf8325f3111ca5b665 100644
index 6de6f76e8385c50bd18ef9caaca68a79e1e797ca..8549292b4e96c7b09e2a9707f2d8a75b870ee35b 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -317,7 +317,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@ -329,10 +329,10 @@ index d6e942aca1bcc769c390504a4119d6619872c4d4..9b706276dc5b5f55b966c5472c6c4e86
}
}
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
index 061d3e77fe8d9322eb660ac1995e025aba51ae1a..3f69dfe877a6c3a362a28c29f556b7b9b2ad19b0 100644
index f477c5817f022ce7c4ad25e9b827401434bcfff1..d518493ecf3853b9f2aefceb72e1a4d2e9bf1184 100644
--- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java
@@ -1488,6 +1488,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl
@@ -1489,6 +1489,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl
try {
tickConsumer.accept(entity);
} catch (Throwable throwable) {
@ -341,10 +341,10 @@ index 061d3e77fe8d9322eb660ac1995e025aba51ae1a..3f69dfe877a6c3a362a28c29f556b7b9
final String msg = String.format("Entity threw exception at %s:%s,%s,%s", entity.level().getWorld().getName(), entity.getX(), entity.getY(), entity.getZ());
MinecraftServer.LOGGER.error(msg, throwable);
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 01cfb478764b8deb38be5692390dd9f014b8999f..4640baec5bed6c2d53cc0f8ca1d273cc115abe9b 100644
index 134d63076f231791988e67a5bdf191005112080b..97937e3bd211997f0a0a3e9e671a1c59712d0003 100644
--- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java
+++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java
@@ -1078,6 +1078,7 @@ public class LevelChunk extends ChunkAccess implements ca.spottedleaf.moonrise.p
@@ -1083,6 +1083,7 @@ public class LevelChunk extends ChunkAccess implements ca.spottedleaf.moonrise.p
gameprofilerfiller.pop();
} catch (Throwable throwable) {

View file

@ -9,7 +9,7 @@ Subject: [PATCH] Detail more information in watchdog dumps
Feature patch
diff --git a/src/main/java/net/minecraft/network/Connection.java b/src/main/java/net/minecraft/network/Connection.java
index d18af548fa6e979267347443b61efc58b271dfcf..e693a003ea8f022eef8b49e4332025b769333b30 100644
index e300293ba64a8ac54cc9c5348ecc9f3ed2d27e19..3c866432c8a938c677a315612f3e159bda67a2a2 100644
--- a/src/main/java/net/minecraft/network/Connection.java
+++ b/src/main/java/net/minecraft/network/Connection.java
@@ -632,7 +632,13 @@ public class Connection extends SimpleChannelInboundHandler<Packet<?>> {
@ -78,10 +78,10 @@ index f7197f1347251a37dd0f6d9ffa2f09bc3a4e1233..1f7f68aad97ee73763c042837f239bdc
});
throw RunningOnDifferentThreadException.RUNNING_ON_DIFFERENT_THREAD;
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
index c5eed86a8982466fd8302c678f0f041db1b24029..2e0dcac7642d899efd60cf70fb0ad0336e1923da 100644
index e4a50b2f6cdc9daf6a018aaf44bb029c5003fa65..abed6e7b92d1472bbbc5bfd60abf4f9052c749c5 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -1253,7 +1253,26 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
@@ -1254,7 +1254,26 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
}
@ -108,7 +108,7 @@ index c5eed86a8982466fd8302c678f0f041db1b24029..2e0dcac7642d899efd60cf70fb0ad033
// Spigot start
/*if (!org.spigotmc.ActivationRange.checkIfActive(entity)) { // Paper - comment out EAR 2
entity.tickCount++;
@@ -1283,6 +1302,13 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
@@ -1284,6 +1303,13 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
this.tickPassenger(entity, entity1, isActive); // Paper - EAR 2
}
@ -123,10 +123,10 @@ index c5eed86a8982466fd8302c678f0f041db1b24029..2e0dcac7642d899efd60cf70fb0ad033
private void tickPassenger(Entity vehicle, Entity passenger, boolean isActive) { // Paper - EAR 2
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index b810f887e536af938f978ca2af068e6ae89b5e60..8c62d1aa5c8a062685474dca7e91bf9f8b004ca5 100644
index 717500b8b88f123d6b2d3545d33d5c78a1ef7cc1..d7f2950223533c3cc2d182612d4c485edf3fba2b 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -1128,8 +1128,43 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
@@ -1136,8 +1136,43 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
return this.onGround;
}
@ -170,7 +170,7 @@ index b810f887e536af938f978ca2af068e6ae89b5e60..8c62d1aa5c8a062685474dca7e91bf9f
if (this.noPhysics) {
this.setPos(this.getX() + movement.x, this.getY() + movement.y, this.getZ() + movement.z);
} else {
@@ -1250,6 +1285,13 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
@@ -1261,6 +1296,13 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
gameprofilerfiller.pop();
}
}
@ -184,7 +184,7 @@ index b810f887e536af938f978ca2af068e6ae89b5e60..8c62d1aa5c8a062685474dca7e91bf9f
}
private void applyMovementEmissionAndPlaySound(Entity.MovementEmission moveEffect, Vec3 movement, BlockPos landingPos, BlockState landingState) {
@@ -4872,7 +4914,9 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
@@ -4902,7 +4944,9 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
}
public void setDeltaMovement(Vec3 velocity) {
@ -194,7 +194,7 @@ index b810f887e536af938f978ca2af068e6ae89b5e60..8c62d1aa5c8a062685474dca7e91bf9f
}
public void addDeltaMovement(Vec3 velocity) {
@@ -4978,7 +5022,9 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
@@ -5008,7 +5052,9 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
}
// Paper end - Fix MC-4
if (this.position.x != x || this.position.y != y || this.position.z != z) {

View file

@ -9,7 +9,7 @@ defaults are only included for certain entites, this allows setting
limits for any entity type.
diff --git a/src/main/java/ca/spottedleaf/moonrise/patches/chunk_system/level/entity/ChunkEntitySlices.java b/src/main/java/ca/spottedleaf/moonrise/patches/chunk_system/level/entity/ChunkEntitySlices.java
index 5ed6599d1f9a2edf8c904f3602b06d26d857600c..b3c993a790fc3fab6a408c731deb297f74c959ce 100644
index 7aea4e343581b977d11af90f9f65eac3532eade1..d21ce54ebb5724c04eadf56a2cde701d5eeb5db2 100644
--- a/src/main/java/ca/spottedleaf/moonrise/patches/chunk_system/level/entity/ChunkEntitySlices.java
+++ b/src/main/java/ca/spottedleaf/moonrise/patches/chunk_system/level/entity/ChunkEntitySlices.java
@@ -104,7 +104,18 @@ public final class ChunkEntitySlices {
@ -32,10 +32,10 @@ index 5ed6599d1f9a2edf8c904f3602b06d26d857600c..b3c993a790fc3fab6a408c731deb297f
if (entity.save(compoundTag)) {
entitiesTag.add(compoundTag);
diff --git a/src/main/java/net/minecraft/world/entity/EntityType.java b/src/main/java/net/minecraft/world/entity/EntityType.java
index 629c1316920ad4c111fff489f8c3ea0ed39d0099..c8c2394558952d7ca57d29874485251b8f2b3400 100644
index 0ec3e1837e36d17e9ff33e7d50c66353aa7539db..d23914a3ab3723d532ae867db6b954c843030f75 100644
--- a/src/main/java/net/minecraft/world/entity/EntityType.java
+++ b/src/main/java/net/minecraft/world/entity/EntityType.java
@@ -706,9 +706,20 @@ public class EntityType<T extends Entity> implements FeatureElement, EntityTypeT
@@ -716,9 +716,20 @@ public class EntityType<T extends Entity> implements FeatureElement, EntityTypeT
final Spliterator<? extends Tag> spliterator = entityNbtList.spliterator();
return StreamSupport.stream(new Spliterator<Entity>() {

View file

@ -5,7 +5,7 @@ Subject: [PATCH] Bundle spark
diff --git a/build.gradle.kts b/build.gradle.kts
index 9e6c2a4630ce75e4115f76b5e7a1e0b50e8b3197..faf3e3fd72e8c915e7a4803dacbe1bb576c6663e 100644
index 2ceee9c2f7a237dac1c2e5c3fcc50a869d93d1ac..092a9ee1e862bde04c2025de6f7e25b6ec13760a 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -76,6 +76,10 @@ dependencies {
@ -279,7 +279,7 @@ index 6b8ed8a0baaf4a57d20e57cec3400af5561ddd79..48604e7f96adc9e226e034054c5e2bad
}
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 4ac8bc8dc326ef12c4ffdfdf8325f3111ca5b665..ca70815b73199835b88c9d68c8a01699536d320f 100644
index 8549292b4e96c7b09e2a9707f2d8a75b870ee35b..aa0a693af442a791ad8e5ec5a9e11594e6b42419 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -764,6 +764,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa

View file

@ -6,7 +6,7 @@ Subject: [PATCH] Incremental chunk and player saving
Feature patch
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index ca70815b73199835b88c9d68c8a01699536d320f..be6e64d5c858961b19eb7b1b028530c1eb4c68d7 100644
index aa0a693af442a791ad8e5ec5a9e11594e6b42419..0af2e1f951683023124f1733a6079e4eaa5deb48 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -1007,7 +1007,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@ -51,10 +51,10 @@ index ca70815b73199835b88c9d68c8a01699536d320f..be6e64d5c858961b19eb7b1b028530c1
ProfilerFiller gameprofilerfiller = Profiler.get();
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
index 2e0dcac7642d899efd60cf70fb0ad0336e1923da..b5f0ce0869c0ea6ad478bddddfc463ec42a5bef7 100644
index abed6e7b92d1472bbbc5bfd60abf4f9052c749c5..03ff07e4047fcf5e2cad7be998b76b4fcef6b49a 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -1353,6 +1353,30 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
@@ -1354,6 +1354,30 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
return !this.server.isUnderSpawnProtection(this, pos, player) && this.getWorldBorder().isWithinBounds(pos);
}
@ -86,10 +86,10 @@ index 2e0dcac7642d899efd60cf70fb0ad0336e1923da..b5f0ce0869c0ea6ad478bddddfc463ec
// Paper start - add close param
this.save(progressListener, flush, savingDisabled, false);
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
index 2b6c5b2387b67f25d8877849ccbfaaa77eab51d3..05981a075898794b899f1327bff1e7ca8ef8fc13 100644
index 9b61fb06875c8070dba30ee541f85b4eed589681..c7c637fcaf02bf5a0861c9ffaca2b473fdeceddb 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -221,6 +221,7 @@ import org.bukkit.inventory.MainHand;
@@ -220,6 +220,7 @@ import org.bukkit.inventory.MainHand;
public class ServerPlayer extends net.minecraft.world.entity.player.Player implements ca.spottedleaf.moonrise.patches.chunk_system.player.ChunkSystemServerPlayer { // Paper - rewrite chunk system
private static final Logger LOGGER = LogUtils.getLogger();

View file

@ -845,10 +845,10 @@ index 0000000000000000000000000000000000000000..f39294b1f83c4022be5ced4da781103a
+ }
+}
diff --git a/src/main/java/net/minecraft/world/entity/ai/behavior/AcquirePoi.java b/src/main/java/net/minecraft/world/entity/ai/behavior/AcquirePoi.java
index e8aa27547e3fa1a42720889c7038d4fb0273e7b5..e1b6fe9ecda25f86431baf414f1bfd3a26a8b2bd 100644
index 45974895c464b4c0186ab9add5eacb98abe90e09..0d177e828c2b338ce93c58aaef04df326e1eb0b2 100644
--- a/src/main/java/net/minecraft/world/entity/ai/behavior/AcquirePoi.java
+++ b/src/main/java/net/minecraft/world/entity/ai/behavior/AcquirePoi.java
@@ -71,11 +71,11 @@ public class AcquirePoi {
@@ -84,12 +84,16 @@ public class AcquirePoi {
return true;
}
};
@ -856,11 +856,17 @@ index e8aa27547e3fa1a42720889c7038d4fb0273e7b5..e1b6fe9ecda25f86431baf414f1bfd3a
- poiPredicate, predicate2, entity.blockPosition(), 48, PoiManager.Occupancy.HAS_SPACE
- )
- .limit(5L)
- .filter(pairx -> worldPosBiPredicate.test(world, (BlockPos)pairx.getSecond()))
- .collect(Collectors.toSet());
+ // Paper start - optimise POI access
+ java.util.List<Pair<Holder<PoiType>, BlockPos>> poiposes = new java.util.ArrayList<>();
+ final java.util.List<Pair<Holder<PoiType>, BlockPos>> poiposes = new java.util.ArrayList<>();
+ io.papermc.paper.util.PoiAccess.findNearestPoiPositions(poiManager, poiPredicate, predicate2, entity.blockPosition(), 48, 48*48, PoiManager.Occupancy.HAS_SPACE, false, 5, poiposes);
+ Set<Pair<Holder<PoiType>, BlockPos>> set = new java.util.HashSet<>(poiposes);
+ final Set<Pair<Holder<PoiType>, BlockPos>> set = new java.util.HashSet<>(poiposes.size());
+ for (final Pair<Holder<PoiType>, BlockPos> poiPose : poiposes) {
+ if (worldPosBiPredicate.test(world, poiPose.getSecond())) {
+ set.add(poiPose);
+ }
+ }
+ // Paper end - optimise POI access
Path path = findPathToPois(entity, set);
if (path != null && path.canReach()) {

View file

@ -62,7 +62,7 @@ index 67cfc3236a39008cfcf3acffefafda1a604b8573..7833c53b4eff67f2ff37c091b5926cb0
} else if (this.seenBy.remove(player.connection)) {
this.serverEntity.removePairing(player);
diff --git a/src/main/java/net/minecraft/server/level/ServerEntity.java b/src/main/java/net/minecraft/server/level/ServerEntity.java
index 5bbc7ceaafc163f12344e5d5d355ad2ff30ddca2..90eb4927fa51ce3df86aa7b6c71f49150a03e337 100644
index 301e8d6599d200cb0f1328f0e386af2f9a619939..103e2c414780be66324bcb9cd4ea539bbdfe12ad 100644
--- a/src/main/java/net/minecraft/server/level/ServerEntity.java
+++ b/src/main/java/net/minecraft/server/level/ServerEntity.java
@@ -100,6 +100,13 @@ public class ServerEntity {

View file

@ -10,7 +10,7 @@ Areas affected by lag comepnsation:
Feature patch
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index be6e64d5c858961b19eb7b1b028530c1eb4c68d7..11a0bf52d891d79e3520de91d270b876871510f7 100644
index 0af2e1f951683023124f1733a6079e4eaa5deb48..b5c5e9d9279e61e2476319e9ce8a829743d56267 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -331,6 +331,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@ -30,10 +30,10 @@ index be6e64d5c858961b19eb7b1b028530c1eb4c68d7..11a0bf52d891d79e3520de91d270b876
gameprofilerfiller.push(() -> {
String s = String.valueOf(worldserver);
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
index b5f0ce0869c0ea6ad478bddddfc463ec42a5bef7..06ae6347d2c9666cb64aea2bea9ff946324015d9 100644
index 03ff07e4047fcf5e2cad7be998b76b4fcef6b49a..020ef251fd3d03c9e8fb9fc859d4ef9fc04cd3ba 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -582,6 +582,17 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
@@ -583,6 +583,17 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
);
}
// Paper end - chunk tick iteration
@ -65,10 +65,10 @@ index 504c996220b278c194c93e001a3b326d549868ec..a96f859a5d0c6ec692d4627a69f3c9ee
if (this.hasDelayedDestroy) {
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
index 59c992173fda6153c58722caae061b0e6bee86a1..6a3a8f0466998409a01223bc0c16d92b96e50118 100644
index 02b412dcad5c8df6e14e92166b3bea629d640680..91735414a81c40861315ea2d4ca6fdce64b2c228 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -4051,6 +4051,10 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -4058,6 +4058,10 @@ public abstract class LivingEntity extends Entity implements Attackable {
this.resendPossiblyDesyncedDataValues(java.util.List.of(DATA_LIVING_ENTITY_FLAGS), serverPlayer);
}
// Paper end - Properly cancel usable items
@ -79,7 +79,7 @@ index 59c992173fda6153c58722caae061b0e6bee86a1..6a3a8f0466998409a01223bc0c16d92b
private void updatingUsingItem() {
if (this.isUsingItem()) {
if (ItemStack.isSameItem(this.getItemInHand(this.getUsedItemHand()), this.useItem)) {
@@ -4065,7 +4069,12 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -4072,7 +4076,12 @@ public abstract class LivingEntity extends Entity implements Attackable {
protected void updateUsingItem(ItemStack stack) {
stack.onUseTick(this.level(), this, this.getUseItemRemainingTicks());
@ -93,7 +93,7 @@ index 59c992173fda6153c58722caae061b0e6bee86a1..6a3a8f0466998409a01223bc0c16d92b
this.completeUsingItem();
}
@@ -4103,7 +4112,10 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -4110,7 +4119,10 @@ public abstract class LivingEntity extends Entity implements Attackable {
if (!itemstack.isEmpty() && !this.isUsingItem() || forceUpdate) { // Paper - Prevent consuming the wrong itemstack
this.useItem = itemstack;
@ -105,7 +105,7 @@ index 59c992173fda6153c58722caae061b0e6bee86a1..6a3a8f0466998409a01223bc0c16d92b
if (!this.level().isClientSide) {
this.setLivingEntityFlag(1, true);
this.setLivingEntityFlag(2, hand == InteractionHand.OFF_HAND);
@@ -4128,7 +4140,10 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -4135,7 +4147,10 @@ public abstract class LivingEntity extends Entity implements Attackable {
}
} else if (!this.isUsingItem() && !this.useItem.isEmpty()) {
this.useItem = ItemStack.EMPTY;
@ -117,7 +117,7 @@ index 59c992173fda6153c58722caae061b0e6bee86a1..6a3a8f0466998409a01223bc0c16d92b
}
}
@@ -4259,7 +4274,10 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -4266,7 +4281,10 @@ public abstract class LivingEntity extends Entity implements Attackable {
}
this.useItem = ItemStack.EMPTY;

View file

@ -8,10 +8,10 @@ Move collision logic to just the hasNewCollision call instead of getCubes + hasN
Feature patch
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index e3458038d56b7133f991a5198db26398a299bf30..d7ac001d53a083e9881f2320eb7fd5dcbd20416e 100644
index f0200e2e68e3ec88b82d337a76e22a6e80419b6f..a3d8d5d735272ae2a67536e4d5bbcdb5d2e4bf8b 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -577,7 +577,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
@@ -579,7 +579,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
return;
}
@ -19,8 +19,8 @@ index e3458038d56b7133f991a5198db26398a299bf30..d7ac001d53a083e9881f2320eb7fd5dc
+ AABB oldBox = entity.getBoundingBox(); // Paper - copy from player movement packet
d6 = d3 - this.vehicleLastGoodX; // Paper - diff on change, used for checking large move vectors above
d7 = d4 - this.vehicleLastGoodY - 1.0E-6D; // Paper - diff on change, used for checking large move vectors above
@@ -593,6 +593,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
d7 = d4 - this.vehicleLastGoodY; // Paper - diff on change, used for checking large move vectors above
@@ -595,6 +595,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
}
entity.move(MoverType.PLAYER, new Vec3(d6, d7, d8));
@ -28,7 +28,7 @@ index e3458038d56b7133f991a5198db26398a299bf30..d7ac001d53a083e9881f2320eb7fd5dc
double d11 = d7;
d6 = d3 - entity.getX();
@@ -606,15 +607,23 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
@@ -608,15 +609,23 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
boolean flag2 = false;
if (d10 > org.spigotmc.SpigotConfig.movedWronglyThreshold) { // Spigot
@ -54,8 +54,8 @@ index e3458038d56b7133f991a5198db26398a299bf30..d7ac001d53a083e9881f2320eb7fd5dc
+ if (teleportBack) { // Paper end - optimise out extra getCubes
entity.absMoveTo(d0, d1, d2, f, f1);
this.player.absMoveTo(d0, d1, d2, this.player.getYRot(), this.player.getXRot()); // CraftBukkit
this.send(new ClientboundMoveVehiclePacket(entity));
@@ -697,7 +706,32 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
this.send(ClientboundMoveVehiclePacket.fromEntity(entity));
@@ -692,7 +701,32 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
}
private boolean noBlocksAround(Entity entity) {
@ -89,7 +89,7 @@ index e3458038d56b7133f991a5198db26398a299bf30..d7ac001d53a083e9881f2320eb7fd5dc
}
@Override
@@ -1398,7 +1432,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
@@ -1451,7 +1485,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
}
}
@ -98,7 +98,7 @@ index e3458038d56b7133f991a5198db26398a299bf30..d7ac001d53a083e9881f2320eb7fd5dc
d6 = d0 - this.lastGoodX; // Paper - diff on change, used for checking large move vectors above
d7 = d1 - this.lastGoodY; // Paper - diff on change, used for checking large move vectors above
@@ -1440,6 +1474,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
@@ -1493,6 +1527,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
this.player.move(MoverType.PLAYER, new Vec3(d6, d7, d8));
this.player.onGround = packet.isOnGround(); // CraftBukkit - SPIGOT-5810, SPIGOT-5835, SPIGOT-6828: reset by this.player.move
@ -106,7 +106,7 @@ index e3458038d56b7133f991a5198db26398a299bf30..d7ac001d53a083e9881f2320eb7fd5dc
// Paper start - prevent position desync
if (this.awaitingPositionFromClient != null) {
return; // ... thanks Mojang for letting move calls teleport across dimensions.
@@ -1470,7 +1505,17 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
@@ -1523,7 +1558,17 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
}
// Paper start - Add fail move event
@ -125,7 +125,7 @@ index e3458038d56b7133f991a5198db26398a299bf30..d7ac001d53a083e9881f2320eb7fd5dc
if (teleportBack) {
io.papermc.paper.event.player.PlayerFailMoveEvent event = fireFailMove(io.papermc.paper.event.player.PlayerFailMoveEvent.FailReason.CLIPPED_INTO_BLOCK,
toX, toY, toZ, toYaw, toPitch, false);
@@ -1594,7 +1639,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
@@ -1647,7 +1692,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
private boolean updateAwaitingTeleport() {
if (this.awaitingPositionFromClient != null) {
@ -134,7 +134,7 @@ index e3458038d56b7133f991a5198db26398a299bf30..d7ac001d53a083e9881f2320eb7fd5dc
this.awaitingTeleportTime = this.tickCount;
this.teleport(this.awaitingPositionFromClient.x, this.awaitingPositionFromClient.y, this.awaitingPositionFromClient.z, this.player.getYRot(), this.player.getXRot());
}
@@ -1607,6 +1652,33 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
@@ -1660,6 +1705,33 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
}
}

View file

@ -72,10 +72,10 @@ index b3ce572547535001959d9bcc6cb567da552c6539..8e96905fa93b02623f16feb4369a45b1
this.lastSpawnState = spawnercreature_d;
profiler.popPush("spawnAndTick");
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
index 05981a075898794b899f1327bff1e7ca8ef8fc13..2b40896483ffbba2c84dbaaae3194342ed5d2170 100644
index c7c637fcaf02bf5a0861c9ffaca2b473fdeceddb..1ac3f820d2f7c1bd29e2f2a323747f8262a57d89 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -303,6 +303,10 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player imple
@@ -301,6 +301,10 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player imple
public boolean queueHealthUpdatePacket;
public net.minecraft.network.protocol.game.ClientboundSetHealthPacket queuedHealthUpdatePacket;
// Paper end - cancellable death event

View file

@ -60,10 +60,10 @@ index 8e96905fa93b02623f16feb4369a45b175031ebf..d021cd5b6136f0125076513977f430c6
spawnercreature_d = NaturalSpawner.createState(naturalSpawnChunkCount, this.level.getAllEntities(), this::getFullChunk, null, true);
} else {
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
index 2b40896483ffbba2c84dbaaae3194342ed5d2170..a755a2742f18ed55adc1fc735d995c9874b1e62e 100644
index 1ac3f820d2f7c1bd29e2f2a323747f8262a57d89..a2cd4385fca0cf2ec164d06be2732755506c0249 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -307,6 +307,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player imple
@@ -305,6 +305,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player imple
public static final int MOBCATEGORY_TOTAL_ENUMS = net.minecraft.world.entity.MobCategory.values().length;
public final int[] mobCounts = new int[MOBCATEGORY_TOTAL_ENUMS]; // Paper
// Paper end - Optional per player mob spawns

View file

@ -11,7 +11,7 @@ sleep by default, which avoids the problem and makes it more obvious to check if
enabled. We also unload chunks during sleep to prevent memory leaks caused by plugin chunk loads.
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 11a0bf52d891d79e3520de91d270b876871510f7..317bb0bd16d8125a40c37b75be1d4d0461bcf9ce 100644
index b5c5e9d9279e61e2476319e9ce8a829743d56267..6a4f99c56f8f49f5087a582a8c77be2c261537bb 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -1638,6 +1638,16 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa

View file

@ -9,10 +9,10 @@ When enabled, ender pearls will not load chunks and will save to the world inste
public net.minecraft.world.entity.projectile.Projectile cachedOwner
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
index a755a2742f18ed55adc1fc735d995c9874b1e62e..5a8f396d47577f087abb415c972fd4f51e50faba 100644
index a2cd4385fca0cf2ec164d06be2732755506c0249..8aff5b7dd14b835788348b22b1fec4d381df816f 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -836,6 +836,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player imple
@@ -834,6 +834,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player imple
while (iterator.hasNext()) {
ThrownEnderpearl entityenderpearl = (ThrownEnderpearl) iterator.next();
@ -20,7 +20,7 @@ index a755a2742f18ed55adc1fc735d995c9874b1e62e..5a8f396d47577f087abb415c972fd4f5
if (entityenderpearl.isRemoved()) {
ServerPlayer.LOGGER.warn("Trying to save removed ender pearl, skipping");
@@ -3143,7 +3144,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player imple
@@ -3123,7 +3124,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player imple
}
public static long placeEnderPearlTicket(ServerLevel world, ChunkPos chunkPos) {

View file

@ -19,10 +19,10 @@ fully prevent enderpearl travel exploits.
public net.minecraft.world.entity.projectile.Projectile ownerUUID
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
index 06ae6347d2c9666cb64aea2bea9ff946324015d9..7db77a36701e766c148e91d8313838d307855d8a 100644
index 020ef251fd3d03c9e8fb9fc859d4ef9fc04cd3ba..17ddec036cb6135c7489efbd76121304e76c32c0 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -2672,6 +2672,12 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
@@ -2678,6 +2678,12 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
public void onTickingEnd(Entity entity) {
ServerLevel.this.entityTickList.remove(entity);
@ -36,7 +36,7 @@ index 06ae6347d2c9666cb64aea2bea9ff946324015d9..7db77a36701e766c148e91d8313838d3
public void onTrackingStart(Entity entity) {
diff --git a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java
index bf2e79c50092acd13e97ab6e32471a9c527a524e..6c2d4d6f3a36ab452dfd3c33f66e54f152906639 100644
index 4c71642474d97d1943db302947a4566a326b9ac3..9a7b56b653848974e1194eb4f6d40cb99a96ff57 100644
--- a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java
+++ b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java
@@ -134,6 +134,7 @@ public abstract class Projectile extends Entity implements TraceableEntity {

View file

@ -48,7 +48,7 @@ index dff30954e4c588ee4cc79d3f6dab6fb456934d65..ddb264443f2e38b6348226016f913972
return stack;
diff --git a/src/main/java/net/minecraft/core/dispenser/DispenseItemBehavior.java b/src/main/java/net/minecraft/core/dispenser/DispenseItemBehavior.java
index 8f9b86e50717746e55232293d9e5ac05b8616aa0..0d12605dc84dad49faa18bf1fd058c3c168623ee 100644
index 9246ec011c7d94618c0aa73792d1bef8f447c88c..c81050f58a8c75f7f3b16ab466d8d87edd83ea31 100644
--- a/src/main/java/net/minecraft/core/dispenser/DispenseItemBehavior.java
+++ b/src/main/java/net/minecraft/core/dispenser/DispenseItemBehavior.java
@@ -106,7 +106,7 @@ public interface DispenseItemBehavior {

View file

@ -10,10 +10,10 @@ now leads to an IOOB.
patch uses instead.
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index d7ac001d53a083e9881f2320eb7fd5dcbd20416e..cd1b6b539a62fa5237d6dab2d1c09a2e631d9941 100644
index a3d8d5d735272ae2a67536e4d5bbcdb5d2e4bf8b..cdee55bece5e64a88051ecc0c43f446b50076ed3 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -3287,7 +3287,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
@@ -3353,7 +3353,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
case PLACE_SOME:
case PLACE_ONE:
case SWAP_WITH_CURSOR:
@ -22,7 +22,7 @@ index d7ac001d53a083e9881f2320eb7fd5dcbd20416e..cd1b6b539a62fa5237d6dab2d1c09a2e
this.player.connection.send(new ClientboundContainerSetSlotPacket(this.player.containerMenu.containerId, this.player.inventoryMenu.incrementStateId(), packet.getSlotNum(), this.player.containerMenu.getSlot(packet.getSlotNum()).getItem()));
break;
// Modified clicked only
@@ -3299,7 +3299,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
@@ -3365,7 +3365,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
case DROP_ALL_CURSOR:
case DROP_ONE_CURSOR:
case CLONE_STACK:
@ -31,7 +31,7 @@ index d7ac001d53a083e9881f2320eb7fd5dcbd20416e..cd1b6b539a62fa5237d6dab2d1c09a2e
break;
// Nothing
case NOTHING:
@@ -3497,7 +3497,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
@@ -3543,7 +3543,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
// Reset the slot
if (packet.slotNum() >= 0) {
this.player.connection.send(new ClientboundContainerSetSlotPacket(this.player.inventoryMenu.containerId, this.player.inventoryMenu.incrementStateId(), packet.slotNum(), this.player.inventoryMenu.getSlot(packet.slotNum()).getItem()));

View file

@ -5,10 +5,10 @@ Subject: [PATCH] Call CraftPlayer#onEntityRemove for all online players
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
index 7db77a36701e766c148e91d8313838d307855d8a..657d8af7cc104962ee46ad1a7dc88b13c24262db 100644
index 17ddec036cb6135c7489efbd76121304e76c32c0..7e8713373315eebf57541f8afe10902681449ad9 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -2794,7 +2794,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
@@ -2800,7 +2800,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
// CraftBukkit start
entity.valid = false;
if (!(entity instanceof ServerPlayer)) {

View file

@ -5,10 +5,10 @@ Subject: [PATCH] Improve performance of RecipeMap#removeRecipe
diff --git a/src/main/java/net/minecraft/world/item/crafting/RecipeManager.java b/src/main/java/net/minecraft/world/item/crafting/RecipeManager.java
index d376d89b479a4d5cc9ac568d23c7603a9355d580..f6dd363ececf967d282f5ba713013085da1ddf37 100644
index 6fe39c9910c09aa47cf7b130e8f3aeec6d036013..2483627f807d7a3907f6848a8bc45d7a798e746d 100644
--- a/src/main/java/net/minecraft/world/item/crafting/RecipeManager.java
+++ b/src/main/java/net/minecraft/world/item/crafting/RecipeManager.java
@@ -258,7 +258,7 @@ public class RecipeManager extends SimplePreparableReloadListener<RecipeMap> imp
@@ -260,7 +260,7 @@ public class RecipeManager extends SimplePreparableReloadListener<RecipeMap> imp
// CraftBukkit start
public boolean removeRecipe(ResourceKey<Recipe<?>> mcKey) {

View file

@ -2328,10 +2328,10 @@ index 0000000000000000000000000000000000000000..298076a0db4e6ee6e4775ac43bf749d9
+ }
+}
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
index 657d8af7cc104962ee46ad1a7dc88b13c24262db..585e2b43a0326f0b81597fa1234d3c67c76af550 100644
index 7e8713373315eebf57541f8afe10902681449ad9..7270a94246df73ee195156fc7b62470d090a337a 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -230,6 +230,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
@@ -231,6 +231,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
public final UUID uuid;
public boolean hasPhysicsEvent = true; // Paper - BlockPhysicsEvent
public boolean hasEntityMoveEvent; // Paper - Add EntityMoveEvent
@ -2339,7 +2339,7 @@ index 657d8af7cc104962ee46ad1a7dc88b13c24262db..585e2b43a0326f0b81597fa1234d3c67
public LevelChunk getChunkIfLoaded(int x, int z) {
return this.chunkSource.getChunkAtIfLoadedImmediately(x, z); // Paper - Use getChunkIfLoadedImmediately
@@ -2655,6 +2656,13 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
@@ -2661,6 +2662,13 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
return this.chunkSource.getGenerator().getSeaLevel();
}
@ -2354,10 +2354,10 @@ index 657d8af7cc104962ee46ad1a7dc88b13c24262db..585e2b43a0326f0b81597fa1234d3c67
EntityCallbacks() {}
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
index 3f69dfe877a6c3a362a28c29f556b7b9b2ad19b0..0de2b79481352b52438dde284262019b29949ad8 100644
index d518493ecf3853b9f2aefceb72e1a4d2e9bf1184..27f9d167b5ae9ce5117798ea44324107df59425f 100644
--- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java
@@ -2015,6 +2015,17 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl
@@ -2018,6 +2018,17 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl
public abstract FuelValues fuelValues();

View file

@ -27,7 +27,7 @@ Instead, this patch makes use of the DamageModifier API, implementing
the last-damage-reduction as a DamageModifier.
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
index 6a3a8f0466998409a01223bc0c16d92b96e50118..51f913a495e7fda7e0e72439c6d7cc9607bd4af8 100644
index 91735414a81c40861315ea2d4ca6fdce64b2c228..cc4cc42adc95fb9357d4cf94d81b6c0c109879c1 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -1505,12 +1505,12 @@ public abstract class LivingEntity extends Entity implements Attackable {
@ -54,7 +54,7 @@ index 6a3a8f0466998409a01223bc0c16d92b96e50118..51f913a495e7fda7e0e72439c6d7cc96
amount = computeAmountFromEntityDamageEvent(event);
// Paper end - only call damage event when actuallyHurt will be called - move call logic down
// CraftBukkit start
@@ -2322,8 +2322,19 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -2333,8 +2333,19 @@ public abstract class LivingEntity extends Entity implements Attackable {
}
// CraftBukkit start
@ -75,7 +75,7 @@ index 6a3a8f0466998409a01223bc0c16d92b96e50118..51f913a495e7fda7e0e72439c6d7cc96
com.google.common.base.Function<Double, Double> freezing = new com.google.common.base.Function<Double, Double>() {
@Override
@@ -2400,7 +2411,12 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -2411,7 +2422,12 @@ public abstract class LivingEntity extends Entity implements Attackable {
};
float absorptionModifier = absorption.apply((double) f).floatValue();

View file

@ -5,10 +5,10 @@ Subject: [PATCH] Fix NPE when EntityResurrectEvent is uncancelled
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
index 51f913a495e7fda7e0e72439c6d7cc9607bd4af8..f36a075dbee2b96d01899e02460b1d8443e91749 100644
index cc4cc42adc95fb9357d4cf94d81b6c0c109879c1..a542bde48edd91929cb7e3dc62c425507a8118fa 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -1711,6 +1711,12 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -1722,6 +1722,12 @@ public abstract class LivingEntity extends Entity implements Attackable {
if (!itemstack1.isEmpty() && itemstack != null) { // Paper - only reduce item if actual totem was found
itemstack1.shrink(1);
}

View file

@ -5,7 +5,7 @@ Subject: [PATCH] API to check if the server is sleeping
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 317bb0bd16d8125a40c37b75be1d4d0461bcf9ce..135fb7f722947a57169f0ce584cb031f4c54c854 100644
index 6a4f99c56f8f49f5087a582a8c77be2c261537bb..78ec2c6d4546bc4eaedd64fa8340f5654876f65c 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -3186,4 +3186,10 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa

View file

@ -5,7 +5,7 @@ Subject: [PATCH] API to allow/disallow tick sleeping
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 135fb7f722947a57169f0ce584cb031f4c54c854..780582ebaa8deb0c0b0c8de17de5abcebafa4bd3 100644
index 78ec2c6d4546bc4eaedd64fa8340f5654876f65c..c352c6717835d92cadc2bd131fba432714fe56e5 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -332,6 +332,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa

View file

@ -5,7 +5,7 @@ Subject: [PATCH] Configurable Entity Despawn Time
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index 8c62d1aa5c8a062685474dca7e91bf9f8b004ca5..a15546e433ebba6c0de01bdaaef201a3d99a87b5 100644
index d7f2950223533c3cc2d182612d4c485edf3fba2b..6e01c521cdc6e7d18643248a352a7ad058dab294 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -388,6 +388,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
@ -24,7 +24,7 @@ index 8c62d1aa5c8a062685474dca7e91bf9f8b004ca5..a15546e433ebba6c0de01bdaaef201a3
this.passengers = ImmutableList.of();
this.deltaMovement = Vec3.ZERO;
this.bb = Entity.INITIAL_AABB;
@@ -868,6 +870,12 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
@@ -872,6 +874,12 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
}
public void tick() {

View file

@ -6,7 +6,7 @@ Subject: [PATCH] Only attempt to find spawn position if there isn't a fixed
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 780582ebaa8deb0c0b0c8de17de5abcebafa4bd3..4158473fd553a16fec23bcbcf9a278d413120600 100644
index c352c6717835d92cadc2bd131fba432714fe56e5..40eddfb94d85834b384ae34445c6159f904ae577 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -816,7 +816,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa