diff --git a/gradle.properties b/gradle.properties index ff57b293a..401583e18 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,7 +2,7 @@ group=com.lokamc.slice version=1.20.4-R0.1-SNAPSHOT mcVersion=1.20.4 -paperRef=8d94596e309ed6d8d00c501336b7899b7c53562f +paperRef=b7004609991dab287b582a1546a1b59c5d90c916 org.gradle.caching=true org.gradle.parallel=true diff --git a/patches/server/0001-Build-Changes.patch b/patches/server/0001-Build-Changes.patch index d3054d3ae..d23f09b45 100644 --- a/patches/server/0001-Build-Changes.patch +++ b/patches/server/0001-Build-Changes.patch @@ -42,20 +42,20 @@ index 376e8983fdfdbb6c3e5fd8ad0f6a05e655b622bf..c9868e781ce212285a9621236efa6578 standardInput = System.`in` workingDir = rootProject.layout.projectDirectory diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 71dd7a881fff1a25e65efce0e9c0074584bcd0e8..078f6e9d081f6efd9417da0798197cf4b5661198 100644 +index 4e1011dca1081a5246981fabb93f142442dcc92c..544f8b6c9f2b5d1f9681cc97db09e815e77f8765 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1852,7 +1852,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop // Spigot - Spigot > // CraftBukkit - cb > vanilla! +- return "Paper"; // Paper + return "Slice"; // Slice - Slice > // Paper - Paper > // Spigot - Spigot > // CraftBukkit - cb > vanilla! } public SystemReport fillSystemReport(SystemReport details) { diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index eb617d659c701e512aac8a1ff822c147b69d3a3b..827f36a3bee4174831b8030c5719bdc24d6bc33a 100644 +index 9d00c98ddfa1b9c04e6d587dcdf779822f35964a..beb0f8a7d155b4d1f5b1f3b0f325616ac6dfcfd5 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -264,7 +264,7 @@ import javax.annotation.Nullable; // Paper diff --git a/patches/server/0002-Set-BlockData-without-light-updates.patch b/patches/server/0002-Set-BlockData-without-light-updates.patch index 83e6a46ad..6b464e2d1 100644 --- a/patches/server/0002-Set-BlockData-without-light-updates.patch +++ b/patches/server/0002-Set-BlockData-without-light-updates.patch @@ -27,10 +27,10 @@ index 5ece375eaf6bcc61864997a389bb5e24625e4505..2d61315c9ab87a216e235f1586618b11 return false; } else { diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 0c1d7265dee638642f7c868e2f988af7b59e6d7e..e6690b38eb09cd925f9cc2a9b431745e95160fa5 100644 +index b33bb001a48788e727e2f01788a6163024121bf3..5eec5badaaaa0b750fa3a88a381a9be0f6fe4d09 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -906,12 +906,12 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -905,12 +905,12 @@ public abstract class Level implements LevelAccessor, AutoCloseable { } @Override @@ -45,8 +45,8 @@ index 0c1d7265dee638642f7c868e2f988af7b59e6d7e..e6690b38eb09cd925f9cc2a9b431745e + public boolean setBlock(BlockPos pos, BlockState state, int flags, int maxUpdateDepth, boolean checkLight) { // CraftBukkit start - tree generation if (this.captureTreeGeneration) { - // Paper start -@@ -1107,7 +1107,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { + // Paper start - Protect Bedrock and End Portal/Frames from being destroyed +@@ -1106,7 +1106,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { iblockdata.getBlock().popExperience((ServerLevel) this, pos, xp, breakingEntity); // Paper - Properly handle xp dropping; custom amount } @@ -90,7 +90,7 @@ index 73d6f881a7d4d8ff96040d34ac502e5b0937d577..f9f147861359258c02fd5f99008a3ab8 } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java -index 99b890e8650356fc059a89a4164ca3f9a80f9d1f..3b42df7ee3abeb2f06446cc1eb9fe80cf50f3508 100644 +index 9dd6012556979514f9879f867138bc836c58ef3f..e332c7cff4a9c76b54f530c41f4fdd701a0ad63d 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java @@ -142,7 +142,7 @@ public abstract class CraftRegionAccessor implements RegionAccessor { diff --git a/patches/server/0003-Add-BlockDestroyedByNeighborEvent.patch b/patches/server/0003-Add-BlockDestroyedByNeighborEvent.patch index 4626cd22d..3aa019537 100644 --- a/patches/server/0003-Add-BlockDestroyedByNeighborEvent.patch +++ b/patches/server/0003-Add-BlockDestroyedByNeighborEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add BlockDestroyedByNeighborEvent diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index a9126548672522eb2b824221783453f707c5dd40..f47a1767fe5c1454fd9d52660e4d3ead42f38e25 100644 +index cfd4ac06a9af6bf3fac293110482e1df690e075e..12eab26762eaa7058bee5c33b46c46752316b2c0 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java @@ -419,6 +419,7 @@ public class ServerPlayerGameMode { @@ -25,7 +25,7 @@ index a9126548672522eb2b824221783453f707c5dd40..f47a1767fe5c1454fd9d52660e4d3ead org.bukkit.craftbukkit.event.CraftEventFactory.handleBlockDropItemEvent(bblock, state, this.player, itemsToDrop); // Paper - capture all item additions to the world } diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index d7d51f16396ad5539d39b7914125b559bd7dd2b4..6bf4548902316b18e14821767868a9dce36c6d89 100644 +index ed27a963223bfe18310ad5adabf461b5e307ef9c..94a94186dc27d69ef09b12afbce7ecc69ec2bfc5 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java @@ -378,6 +378,7 @@ public final class ItemStack { @@ -37,12 +37,12 @@ index d7d51f16396ad5539d39b7914125b559bd7dd2b4..6bf4548902316b18e14821767868a9dc if (!(item instanceof BucketItem/* || item instanceof SolidBucketItem*/)) { // if not bucket // Paper - Fix cancelled powdered snow bucket placement world.captureBlockStates = true; diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index e6690b38eb09cd925f9cc2a9b431745e95160fa5..87eefde9481291d016e7bcb4c2214b5c0cefc544 100644 +index 5eec5badaaaa0b750fa3a88a381a9be0f6fe4d09..f37686b4e7a50b8cab4d72fcb353ec305c2dc645 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -187,6 +187,27 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -186,6 +186,27 @@ public abstract class Level implements LevelAccessor, AutoCloseable { public final Map explosionDensityCache = new HashMap<>(); // Paper - Optimize explosions - public java.util.ArrayDeque redstoneUpdateInfos; // Paper - Move from Map in BlockRedstoneTorch to here + public java.util.ArrayDeque redstoneUpdateInfos; // Paper - Faster redstone torch rapid clock removal; Move from Map in BlockRedstoneTorch to here + // Paper start - Holder class used to track what Player is responsible the last block event + public static class PendingBlockEvent { @@ -68,7 +68,7 @@ index e6690b38eb09cd925f9cc2a9b431745e95160fa5..87eefde9481291d016e7bcb4c2214b5c // Paper start - fix and optimise world upgrading // copied from below public static ResourceKey getDimensionKey(DimensionType manager) { -@@ -1056,6 +1077,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -1055,6 +1076,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { if (!this.preventPoiUpdated) { this.onBlockStateChange(blockposition, iblockdata1, iblockdata2); } @@ -76,7 +76,7 @@ index e6690b38eb09cd925f9cc2a9b431745e95160fa5..87eefde9481291d016e7bcb4c2214b5c // CraftBukkit end } } -@@ -1077,6 +1099,17 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -1076,6 +1098,17 @@ public abstract class Level implements LevelAccessor, AutoCloseable { if (iblockdata.isAir()) { return false; } else { @@ -92,7 +92,7 @@ index e6690b38eb09cd925f9cc2a9b431745e95160fa5..87eefde9481291d016e7bcb4c2214b5c + // Paper end + FluidState fluid = this.getFluidState(pos); - // Paper start - while the above setAir method is named same and looks very similar + // Paper start - BlockDestroyEvent; while the above setAir method is named same and looks very similar // they are NOT used with same intent and the above should not fire this event. The above method is more of a BlockSetToAirEvent, diff --git a/src/main/java/net/minecraft/world/level/block/DoublePlantBlock.java b/src/main/java/net/minecraft/world/level/block/DoublePlantBlock.java index 03b5ab8251497c0c94467f90e6663a0dc766babb..0be28c971bbd88268af4dfdd4489d4fb309ad03a 100644 @@ -115,7 +115,7 @@ index 03b5ab8251497c0c94467f90e6663a0dc766babb..0be28c971bbd88268af4dfdd4489d4fb BlockState iblockdata2 = iblockdata1.getFluidState().is((Fluid) Fluids.WATER) ? Blocks.WATER.defaultBlockState() : Blocks.AIR.defaultBlockState(); diff --git a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java -index eb5d6446e639649cdef20101045872a978265f0d..a11693ff8fab2accc7793c79664248a6f58176cb 100644 +index 97a9fbbe6d8435e88e5fe716770e4034ab0db7a7..cf7013d3d1679e675f7f1f71b987b74b73174cf1 100644 --- a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java +++ b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java @@ -1242,11 +1242,22 @@ public abstract class BlockBehaviour implements FeatureElement { diff --git a/patches/server/0006-Add-World-Instance-flag.patch b/patches/server/0006-Add-World-Instance-flag.patch index c624d55c2..65398af7d 100644 --- a/patches/server/0006-Add-World-Instance-flag.patch +++ b/patches/server/0006-Add-World-Instance-flag.patch @@ -5,22 +5,22 @@ Subject: [PATCH] Add World Instance flag diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index fb3f71f9824e522df22c50f55b4d41e70a1d1c63..7f81f3c3339ee1858013a2e1b18c457d9f3eaf03 100644 +index 6934e9dac0d69c043b73b7c46d59f2d39b37c67f..f033f530eef10177c349f2673bb3ee8ebdb1d30b 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -223,6 +223,7 @@ public class ServerLevel extends Level implements WorldGenLevel { public final UUID uuid; - public boolean hasPhysicsEvent = true; // Paper - public boolean hasEntityMoveEvent = false; // Paper - Add EntityMoveEvent + public boolean hasPhysicsEvent = true; // Paper - BlockPhysicsEvent + public boolean hasEntityMoveEvent; // Paper - Add EntityMoveEvent + public boolean instance; // Slice private final alternate.current.wire.WireHandler wireHandler = new alternate.current.wire.WireHandler(this); // Paper - optimize redstone (Alternate Current) - public static Throwable getAddToWorldStackTrace(Entity entity) { - final Throwable thr = new Throwable(entity + " Added to world at " + new java.util.Date()); + + public LevelChunk getChunkIfLoaded(int x, int z) { diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index ec61ed7da1531b26e372a72e824c72d5b314524c..2f7ca95e8ac48ea63a2ee28afc50521d8d71accb 100644 +index cd559e6aaf4bd2bd322c953bbb186135489ddcaa..589bc913577a8188521856db874a48f86d03ee9a 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -@@ -1301,6 +1301,18 @@ public class CraftWorld extends CraftRegionAccessor implements World { +@@ -1298,6 +1298,18 @@ public class CraftWorld extends CraftRegionAccessor implements World { this.world.noSave = !value; } diff --git a/patches/server/0008-Add-PlayerGetRespawnLocationEvent.patch b/patches/server/0008-Add-PlayerGetRespawnLocationEvent.patch index feebd59e6..bd4a7c9d8 100644 --- a/patches/server/0008-Add-PlayerGetRespawnLocationEvent.patch +++ b/patches/server/0008-Add-PlayerGetRespawnLocationEvent.patch @@ -5,14 +5,14 @@ Subject: [PATCH] Add PlayerGetRespawnLocationEvent diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index e2eb3feb786d6348b6d45dd9babb7b36eebccd6e..f54e00f11e92d63aa241a3b8693afa5f1797d1ab 100644 +index e0ee45036b9bf14a6e2013fe291cde0402b85b1f..8148bb81322b3ba7becbf0fdb636c83558324f81 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java -@@ -867,49 +867,57 @@ public abstract class PlayerList { +@@ -866,49 +866,57 @@ public abstract class PlayerList { // CraftBukkit start - fire PlayerRespawnEvent if (location == null) { -- // boolean isBedSpawn = false; // Paper - moved up +- // boolean isBedSpawn = false; // Paper - Add PlayerPostRespawnEvent; moved up - ServerLevel worldserver1 = this.server.getLevel(entityplayer.getRespawnDimension()); - if (worldserver1 != null) { - Optional optional; @@ -29,7 +29,7 @@ index e2eb3feb786d6348b6d45dd9babb7b36eebccd6e..f54e00f11e92d63aa241a3b8693afa5f - } + if (location == null) { + // Slice end -+ // boolean isBedSpawn = false; // Paper - moved up ++ // boolean isBedSpawn = false; // Paper - Add PlayerPostRespawnEvent; moved up + ServerLevel worldserver1 = this.server.getLevel(entityplayer.getRespawnDimension()); + if (worldserver1 != null) { + Optional optional; diff --git a/patches/server/0010-Smooth-Teleports.patch b/patches/server/0010-Smooth-Teleports.patch index 7f8d01d18..be6fb7496 100644 --- a/patches/server/0010-Smooth-Teleports.patch +++ b/patches/server/0010-Smooth-Teleports.patch @@ -5,11 +5,11 @@ Subject: [PATCH] Smooth Teleports diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 4858282de0ad6758b487b80dc3d746ae0357ad39..260bcff54607b61db8f2bb5d4ee7c468b80c900a 100644 +index 0dba30c41affafe7b1d585b515925043b37712fa..d9b9dd6023532a26f5d8173fb1fccf10a9dfec8c 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -281,6 +281,7 @@ public class ServerPlayer extends Player { - public com.destroystokyo.paper.event.entity.PlayerNaturallySpawnCreaturesEvent playerNaturallySpawnedEvent; // Paper + public com.destroystokyo.paper.event.entity.PlayerNaturallySpawnCreaturesEvent playerNaturallySpawnedEvent; // Paper - PlayerNaturallySpawnCreaturesEvent public @Nullable String clientBrandName = null; // Paper - Brand support public org.bukkit.event.player.PlayerQuitEvent.QuitReason quitReason = null; // Paper - Add API for quit reason; there are a lot of changes to do if we change all methods leading to the event + public boolean smoothWorldTeleport; // Slice @@ -17,10 +17,10 @@ index 4858282de0ad6758b487b80dc3d746ae0357ad39..260bcff54607b61db8f2bb5d4ee7c468 // Paper start - replace player chunk loader private final java.util.concurrent.atomic.AtomicReference viewDistances = new java.util.concurrent.atomic.AtomicReference<>(new io.papermc.paper.chunk.system.RegionizedPlayerChunkLoader.ViewDistances(-1, -1, -1)); diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index f54e00f11e92d63aa241a3b8693afa5f1797d1ab..0913c1be8b4130ada71e7d4f473a709e55b7d2d5 100644 +index 8148bb81322b3ba7becbf0fdb636c83558324f81..a412b92ee14b685ec30ce8dc70effffa5c11819f 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java -@@ -953,10 +953,10 @@ public abstract class PlayerList { +@@ -952,10 +952,10 @@ public abstract class PlayerList { ServerLevel worldserver2 = entityplayer1.serverLevel(); LevelData worlddata = worldserver2.getLevelData(); @@ -34,7 +34,7 @@ index f54e00f11e92d63aa241a3b8693afa5f1797d1ab..0913c1be8b4130ada71e7d4f473a709e entityplayer1.connection.send(new ClientboundChangeDifficultyPacket(worlddata.getDifficulty(), worlddata.isDifficultyLocked())); entityplayer1.connection.send(new ClientboundSetExperiencePacket(entityplayer1.experienceProgress, entityplayer1.totalExperience, entityplayer1.experienceLevel)); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index b364a042a9b5d1b3c604f6bf6d03b6aeff03ec82..331b47b82d2f0c6544e5417accb5a962daac3111 100644 +index c11b974cf4dee385d0730ecc20715feac0f20352..f63b9365d25ed0a31cfd484cf87b89acc2cb7df5 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -1267,6 +1267,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0015-Don-t-send-fire-packets-if-player-has-FR.patch b/patches/server/0015-Don-t-send-fire-packets-if-player-has-FR.patch index 036ae8bef..06f3a33f3 100644 --- a/patches/server/0015-Don-t-send-fire-packets-if-player-has-FR.patch +++ b/patches/server/0015-Don-t-send-fire-packets-if-player-has-FR.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Don't send fire packets if player has FR diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index ef2ef6f34e2045ccbf93de123785b44886072cee..1412e120cfcaf03f266a8a2c9b4336cfcc010b5d 100644 +index a9649cbd58e22411bfac00580a2c266cd9133802..4872d9c2a7591aacf9e0fe852c06351289387c8f 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -878,7 +878,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -877,7 +877,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S this.checkBelowWorld(); if (!this.level().isClientSide) { diff --git a/patches/server/0016-Allow-access-to-LightEngine.patch b/patches/server/0016-Allow-access-to-LightEngine.patch index 19e3dee2e..7f64c4d52 100644 --- a/patches/server/0016-Allow-access-to-LightEngine.patch +++ b/patches/server/0016-Allow-access-to-LightEngine.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Allow access to LightEngine diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 673f0d1ee4e4228a52c07fc1b570822257e59300..bccd73960976be2838ccc803a4a9574437689f98 100644 +index 5637dcf1f6c76df33988c3279171aafbc1868a82..22ec85fb9e5313b94f1dc55c3cfbfe88eded0db6 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java -@@ -435,7 +435,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -434,7 +434,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider // Paper end - rewrite player chunk loader } diff --git a/patches/server/0019-PlayerLoadStatsEvent.patch b/patches/server/0019-PlayerLoadStatsEvent.patch index f6fbbc09b..aa992af31 100644 --- a/patches/server/0019-PlayerLoadStatsEvent.patch +++ b/patches/server/0019-PlayerLoadStatsEvent.patch @@ -5,10 +5,10 @@ Subject: [PATCH] PlayerLoadStatsEvent diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 0913c1be8b4130ada71e7d4f473a709e55b7d2d5..4483bc16c81a5ca088320a28b4723a603b563f7e 100644 +index a412b92ee14b685ec30ce8dc70effffa5c11819f..5946a1b76bc29aaad003b2096e8115d9ee3ffe7c 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java -@@ -1495,7 +1495,7 @@ public abstract class PlayerList { +@@ -1494,7 +1494,7 @@ public abstract class PlayerList { } } diff --git a/patches/server/0020-Add-Force-Crit-to-PlayerPreAttackEntityEvent.patch b/patches/server/0020-Add-Force-Crit-to-PlayerPreAttackEntityEvent.patch index 8c4addfc3..858c465dd 100644 --- a/patches/server/0020-Add-Force-Crit-to-PlayerPreAttackEntityEvent.patch +++ b/patches/server/0020-Add-Force-Crit-to-PlayerPreAttackEntityEvent.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add Force Crit to PlayerPreAttackEntityEvent diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index 9044458491fc9a33923852e324a15ac59d6660b2..433cca813b5c56aadc6c4b44ff5eb19b4d1f67a6 100644 +index 44a17a8e763455e834dcf488044a0f4907ce346e..1f1f40c8c9290dbffce3e92ac5d36696856cb5d3 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java -@@ -1278,10 +1278,11 @@ public abstract class Player extends LivingEntity { +@@ -1276,10 +1276,11 @@ public abstract class Player extends LivingEntity { flag1 = true; } @@ -16,9 +16,8 @@ index 9044458491fc9a33923852e324a15ac59d6660b2..433cca813b5c56aadc6c4b44ff5eb19b + boolean forceCrit = playerAttackEntityEvent.isForceCrit(); + boolean flag2 = forceCrit || (flag && this.fallDistance > 0.0F && !this.onGround() && !this.onClimbable() && !this.isInWater() && !this.hasEffect(MobEffects.BLINDNESS) && !this.isPassenger() && target instanceof LivingEntity); // Paper - Add critical damage API; diff on change -- flag2 = flag2 && !this.level().paperConfig().entities.behavior.disablePlayerCrits; // Paper + flag2 = flag2 && !this.level().paperConfig().entities.behavior.disablePlayerCrits; // Paper - Toggleable player crits - flag2 = flag2 && !this.isSprinting(); -+ flag2 = flag2 && !level().paperConfig().entities.behavior.disablePlayerCrits; // Paper + flag2 = forceCrit || (flag2 && !this.isSprinting()); // Slice if (flag2) { f *= 1.5F; diff --git a/patches/server/0021-Add-Preventing-KB-Bonus-to-PlayerPreAttackEntityEven.patch b/patches/server/0021-Add-Preventing-KB-Bonus-to-PlayerPreAttackEntityEven.patch index bfbf4c21f..b42752eb4 100644 --- a/patches/server/0021-Add-Preventing-KB-Bonus-to-PlayerPreAttackEntityEven.patch +++ b/patches/server/0021-Add-Preventing-KB-Bonus-to-PlayerPreAttackEntityEven.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add Preventing KB Bonus to PlayerPreAttackEntityEvent diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index 433cca813b5c56aadc6c4b44ff5eb19b4d1f67a6..2a6a85519c63bd3f879a8dbe146a9d05310cee3c 100644 +index 1f1f40c8c9290dbffce3e92ac5d36696856cb5d3..8192278ee16adfb74abb7ce955752fe8b43787d2 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java -@@ -1270,7 +1270,11 @@ public abstract class Player extends LivingEntity { +@@ -1268,7 +1268,11 @@ public abstract class Player extends LivingEntity { boolean flag = f2 > 0.9F; boolean flag1 = false; byte b0 = 0; diff --git a/patches/server/0022-noEntityCollisions-for-Entity.patch b/patches/server/0022-noEntityCollisions-for-Entity.patch index ff40fee71..5eca95ba1 100644 --- a/patches/server/0022-noEntityCollisions-for-Entity.patch +++ b/patches/server/0022-noEntityCollisions-for-Entity.patch @@ -18,10 +18,10 @@ index ee0331a6bc40cdde08d926fd8eb1dc642630c2e5..d1094f6a61976a81f400ab5b2b604f96 } diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 1412e120cfcaf03f266a8a2c9b4336cfcc010b5d..bee42880274cf36c57abc5f633e6f14f41a0ea2b 100644 +index 4872d9c2a7591aacf9e0fe852c06351289387c8f..ccd0fbf0d61a0a5e9e806df964c711f5c883a8d4 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -459,6 +459,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -520,6 +520,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S * Overriding this field will cause memory leaks. */ private final boolean hardCollides; diff --git a/patches/server/0025-Maybe-can-t-tostring.patch b/patches/server/0025-Maybe-can-t-tostring.patch deleted file mode 100644 index 6458b2cc8..000000000 --- a/patches/server/0025-Maybe-can-t-tostring.patch +++ /dev/null @@ -1,37 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Cryptite -Date: Sat, 6 May 2023 18:14:26 -0500 -Subject: [PATCH] Maybe can't tostring? - - -diff --git a/src/main/java/net/minecraft/nbt/CompoundTag.java b/src/main/java/net/minecraft/nbt/CompoundTag.java -index 22106323902ceb4fc58a95918c754234a581f7a1..72d7f519a28bc76733e67e2d0d0fcda581999242 100644 ---- a/src/main/java/net/minecraft/nbt/CompoundTag.java -+++ b/src/main/java/net/minecraft/nbt/CompoundTag.java -@@ -507,6 +507,9 @@ public class CompoundTag implements Tag { - @Override - public CompoundTag copy() { - // Paper start - reduce memory footprint of NBTTagCompound -+ if (this.tags.size() < 0) { -+ net.minecraft.server.MinecraftServer.LOGGER.debug("Tried to copy an invalid item with negative tags: {}, {}, {}, {}", this.tags, this.tags.getClass().getName()); -+ } - it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap ret = new it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap<>(this.tags.size(), 0.8f); - java.util.Iterator> iterator = (this.tags instanceof it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap) ? ((it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap)this.tags).object2ObjectEntrySet().fastIterator() : this.tags.entrySet().iterator(); - while (iterator.hasNext()) { -diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index 6bf4548902316b18e14821767868a9dce36c6d89..fce143bb16e4ee2e43fbcf6363b08a0dfeb8a2e1 100644 ---- a/src/main/java/net/minecraft/world/item/ItemStack.java -+++ b/src/main/java/net/minecraft/world/item/ItemStack.java -@@ -765,7 +765,11 @@ public final class ItemStack { - - itemstack.setPopTime(this.getPopTime()); - if (this.tag != null) { -- itemstack.tag = this.tag.copy(); -+ if (this.tag.tags.size() < 0) { -+ ItemStack.LOGGER.debug("Tried to copy an invalid item with negative tags: {}, {}, {}, {}", this.tag, this.tag.tags, this.tag.tags.getClass().getName()); -+ } else { -+ itemstack.tag = this.tag.copy(); -+ } - } - - return itemstack; diff --git a/patches/server/0026-Allow-inventory-clicks-in-Spectator.patch b/patches/server/0026-Allow-inventory-clicks-in-Spectator.patch index 2d43f1718..66c943a1a 100644 --- a/patches/server/0026-Allow-inventory-clicks-in-Spectator.patch +++ b/patches/server/0026-Allow-inventory-clicks-in-Spectator.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Allow inventory clicks in Spectator diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 6a85b44021df6226b53da478ac6f35dcfb55c3ed..b5765dfaf21c03f98d2309072851319f32997d39 100644 +index 6f9ec543185b6f68bb1eaa61a7ebea9d866d688f..831c34212351ce05ce9a24a7aa5d7ff8655e74da 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -2880,7 +2880,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -2865,7 +2865,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl if (this.player.isImmobile()) return; // CraftBukkit this.player.resetLastActionTime(); if (this.player.containerMenu.containerId == packet.getContainerId() && this.player.containerMenu.stillValid(this.player)) { // CraftBukkit diff --git a/patches/server/0027-Packet-obfuscation-and-reduction.patch b/patches/server/0027-Packet-obfuscation-and-reduction.patch index 21fb3513c..57862d387 100644 --- a/patches/server/0027-Packet-obfuscation-and-reduction.patch +++ b/patches/server/0027-Packet-obfuscation-and-reduction.patch @@ -118,7 +118,7 @@ index 58b602e550258c1062ee940bc46538dac95d8979..3ad5950d05fed7ff8810a8a7969fcb58 public static record DataValue(int id, EntityDataSerializer serializer, T value) { // CraftBukkit - decompile error diff --git a/src/main/java/net/minecraft/server/level/ServerEntity.java b/src/main/java/net/minecraft/server/level/ServerEntity.java -index ae188ae314336d971303023c7b7b8ecf32bae253..506e4d80e47723a0764703578370a45ad2f126fd 100644 +index 529ab44baaf573b97cf7e89560c548642733188f..e3e0f306ebed31ce4742e7d2f15ab102b93a9dff 100644 --- a/src/main/java/net/minecraft/server/level/ServerEntity.java +++ b/src/main/java/net/minecraft/server/level/ServerEntity.java @@ -380,7 +380,20 @@ public class ServerEntity { @@ -144,10 +144,10 @@ index ae188ae314336d971303023c7b7b8ecf32bae253..506e4d80e47723a0764703578370a45a if (this.entity instanceof LivingEntity) { diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index bee42880274cf36c57abc5f633e6f14f41a0ea2b..12fa631aa176e67dcda522dca6376a69ca5b34d8 100644 +index ccd0fbf0d61a0a5e9e806df964c711f5c883a8d4..85d1f19cc02b9bd159d2614305f070ad26df8f17 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -3388,7 +3388,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -3385,7 +3385,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S this.entityData.markDirty(Entity.DATA_AIR_SUPPLY_ID); return; } @@ -157,10 +157,10 @@ index bee42880274cf36c57abc5f633e6f14f41a0ea2b..12fa631aa176e67dcda522dca6376a69 } diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index 2a6a85519c63bd3f879a8dbe146a9d05310cee3c..d6cdb7c3314004ee25cbed96eb289d420999c01c 100644 +index 8192278ee16adfb74abb7ce955752fe8b43787d2..2b93d9ca3df4d1a9acd670752390018a4332065f 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java -@@ -644,7 +644,7 @@ public abstract class Player extends LivingEntity { +@@ -642,7 +642,7 @@ public abstract class Player extends LivingEntity { public void increaseScore(int score) { int j = this.getScore(); @@ -170,7 +170,7 @@ index 2a6a85519c63bd3f879a8dbe146a9d05310cee3c..d6cdb7c3314004ee25cbed96eb289d42 public void startAutoSpinAttack(int riptideTicks) { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 82eb22d1539951cd04267d7269b1447ebc4ee2c6..d95d08fd519ca633c1c126982f3720e7c3aabe28 100644 +index e009a7dffc548043d22ec62259bb0b737178388d..0c980953444001ca5bbdb06ccf56079cd02588f0 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -2733,7 +2733,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0028-Long-distance-tracking.patch b/patches/server/0028-Long-distance-tracking.patch index 8d4737bb0..4b41692c0 100644 --- a/patches/server/0028-Long-distance-tracking.patch +++ b/patches/server/0028-Long-distance-tracking.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Long distance tracking diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index bccd73960976be2838ccc803a4a9574437689f98..0d36816f679f08c81aecf683584ecd932bfcf8f7 100644 +index 22ec85fb9e5313b94f1dc55c3cfbfe88eded0db6..b88dd166628c46a7f2bf98b0b8bf5a215acb99de 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java -@@ -1425,6 +1425,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1417,6 +1417,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider // Paper end - remove allocation of Vec3D here int i = ChunkMap.this.getPlayerViewDistance(player); double d0 = (double) Math.min(this.getEffectiveRange(), i * 16); @@ -17,7 +17,7 @@ index bccd73960976be2838ccc803a4a9574437689f98..0d36816f679f08c81aecf683584ecd93 double d2 = d0 * d0; boolean flag = d1 <= d2 && this.entity.broadcastToPlayer(player) && ChunkMap.this.isChunkTracked(player, this.entity.chunkPosition().x, this.entity.chunkPosition().z); diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 260bcff54607b61db8f2bb5d4ee7c468b80c900a..466a4eed74729e7ff8a3d634ad4ca5f2befcca25 100644 +index d9b9dd6023532a26f5d8173fb1fccf10a9dfec8c..dec8e20a8132e601ed0db3352d22fad968ed555a 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -282,6 +282,7 @@ public class ServerPlayer extends Player { diff --git a/patches/server/0029-Equipment-Packet-Caching.patch b/patches/server/0029-Equipment-Packet-Caching.patch index dc6b122f6..e506f143a 100644 --- a/patches/server/0029-Equipment-Packet-Caching.patch +++ b/patches/server/0029-Equipment-Packet-Caching.patch @@ -25,7 +25,7 @@ index 5a8f850b447fc3a4bd0eb0c505bbdfc8be7115e8..34d74735b7a7d258c6bd14bb7e540693 this.entity = buf.readVarInt(); EquipmentSlot[] equipmentSlots = EquipmentSlot.values(); diff --git a/src/main/java/net/minecraft/server/level/ServerEntity.java b/src/main/java/net/minecraft/server/level/ServerEntity.java -index 506e4d80e47723a0764703578370a45ad2f126fd..a1d03e7d4f0a73930e932fffc870723859ca5e43 100644 +index e3e0f306ebed31ce4742e7d2f15ab102b93a9dff..4f4ea6dcef4e1960ac69271fbd771dd3ad6af275 100644 --- a/src/main/java/net/minecraft/server/level/ServerEntity.java +++ b/src/main/java/net/minecraft/server/level/ServerEntity.java @@ -331,27 +331,8 @@ public class ServerEntity { @@ -59,7 +59,7 @@ index 506e4d80e47723a0764703578370a45ad2f126fd..a1d03e7d4f0a73930e932fffc8707238 if (!this.entity.getPassengers().isEmpty()) { diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index f0d565ac0b3c8d3c3a200348a16e7db21ff3920a..67a83bfd09befa7250f7a02eaf21797cc24e8c71 100644 +index 6071451339080bbdd98fb634791a56988984c8bc..70d2ec6c248b01438de30827404186e5d152cda0 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -262,6 +262,8 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -106,7 +106,7 @@ index f0d565ac0b3c8d3c3a200348a16e7db21ff3920a..67a83bfd09befa7250f7a02eaf21797c } // Paper start - Hide unnecessary item meta -@@ -4544,4 +4565,74 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -4543,4 +4564,74 @@ public abstract class LivingEntity extends Entity implements Attackable { public static record Fallsounds(SoundEvent small, SoundEvent big) { } diff --git a/patches/server/0031-Add-reason-to-PlayerConnectionCloseEvent.patch b/patches/server/0031-Add-reason-to-PlayerConnectionCloseEvent.patch index 89fbcb39c..35b26d5cd 100644 --- a/patches/server/0031-Add-reason-to-PlayerConnectionCloseEvent.patch +++ b/patches/server/0031-Add-reason-to-PlayerConnectionCloseEvent.patch @@ -5,11 +5,11 @@ Subject: [PATCH] Add reason to PlayerConnectionCloseEvent diff --git a/src/main/java/net/minecraft/server/network/ServerConfigurationPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerConfigurationPacketListenerImpl.java -index cae10b963d153fb1777b18054796a45b2809342b..45a50cf9b7ceba080b6de70eee03bab854652905 100644 +index 76f31845fe50200d09e5ab6a6c08da00444414ad..eb86d1d10c61f599161e2387613bfcd5d6cb2dea 100644 --- a/src/main/java/net/minecraft/server/network/ServerConfigurationPacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerConfigurationPacketListenerImpl.java @@ -138,6 +138,7 @@ public class ServerConfigurationPacketListenerImpl extends ServerCommonPacketLis - // Paper end + // Paper end - Debugging this.connection.send(new ClientboundDisconnectPacket(ServerConfigurationPacketListenerImpl.DISCONNECT_REASON_INVALID_DATA)); this.connection.disconnect(ServerConfigurationPacketListenerImpl.DISCONNECT_REASON_INVALID_DATA); + new com.destroystokyo.paper.event.player.PlayerConnectionCloseEvent(this.gameProfile.getId(), this.gameProfile.getName(), ((java.net.InetSocketAddress)this.connection.address).getAddress(), com.destroystokyo.paper.event.player.PlayerConnectionCloseEvent.ConnectionCloseReason.INVALID_PLAYER_DATA, false).callEvent(); // Slice diff --git a/patches/server/0035-Non-saveable-entities.patch b/patches/server/0035-Non-saveable-entities.patch index c07340bb4..2872b0bd3 100644 --- a/patches/server/0035-Non-saveable-entities.patch +++ b/patches/server/0035-Non-saveable-entities.patch @@ -18,10 +18,10 @@ index 7e8dc9e8f381abfdcce2746edc93122d623622d1..303e5ed4d5cf2a64b998656bfd189f19 if (entity.isVehicle()) { // we cannot assume that these entities are contained within this chunk, because entities can diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 12fa631aa176e67dcda522dca6376a69ca5b34d8..f62b6e4777486721a1f9d3b5a80591c26b50bd66 100644 +index 85d1f19cc02b9bd159d2614305f070ad26df8f17..5069faacb2e16b112b5c7167de5fe310e20bc086 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -424,6 +424,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -423,6 +423,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S private UUID originWorld; public boolean freezeLocked = false; // Paper - Freeze Tick Lock API public boolean fixedPose = false; // Paper - Expand Pose API @@ -29,7 +29,7 @@ index 12fa631aa176e67dcda522dca6376a69ca5b34d8..f62b6e4777486721a1f9d3b5a80591c2 public void setOrigin(@javax.annotation.Nonnull Location location) { this.origin = location.toVector(); -@@ -4825,7 +4826,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -4817,7 +4818,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @Override public boolean shouldBeSaved() { @@ -39,7 +39,7 @@ index 12fa631aa176e67dcda522dca6376a69ca5b34d8..f62b6e4777486721a1f9d3b5a80591c2 @Override diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index f16ac1d640fc97f348c244d4ea86e3278b30ae19..3e1c22cd06ecaa26b0c36563a4d0c44ee7e91b1d 100644 +index 8698104e3eb98e2cc5da5de87a8f538860c1d91d..749c9e53b8c0d8cec866bfe5ceaf9be0312c75aa 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java @@ -1227,4 +1227,16 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { diff --git a/patches/server/0037-Disable-sending-Entity-Movement-Packets.patch b/patches/server/0037-Disable-sending-Entity-Movement-Packets.patch index bfef0eb14..dcf0adbaf 100644 --- a/patches/server/0037-Disable-sending-Entity-Movement-Packets.patch +++ b/patches/server/0037-Disable-sending-Entity-Movement-Packets.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Disable sending Entity Movement Packets diff --git a/src/main/java/net/minecraft/server/level/ServerEntity.java b/src/main/java/net/minecraft/server/level/ServerEntity.java -index a1d03e7d4f0a73930e932fffc870723859ca5e43..2718501470b958daa581c4cb169fe9561f21ea54 100644 +index 4f4ea6dcef4e1960ac69271fbd771dd3ad6af275..81371980e0eaa362ea1fff9813f632db93021bda 100644 --- a/src/main/java/net/minecraft/server/level/ServerEntity.java +++ b/src/main/java/net/minecraft/server/level/ServerEntity.java @@ -151,7 +151,7 @@ public class ServerEntity { @@ -36,10 +36,10 @@ index a1d03e7d4f0a73930e932fffc870723859ca5e43..2718501470b958daa581c4cb169fe956 flag5 = true; } diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index f62b6e4777486721a1f9d3b5a80591c26b50bd66..b405ef4ba9343e9dcd7d3b136899bff879e82362 100644 +index 5069faacb2e16b112b5c7167de5fe310e20bc086..d80be25ceca44a536d4989a0799716ea7f3a2026 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -425,6 +425,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -424,6 +424,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S public boolean freezeLocked = false; // Paper - Freeze Tick Lock API public boolean fixedPose = false; // Paper - Expand Pose API public boolean saveable = true; // Slice diff --git a/patches/server/0038-Player-spawnsOwnMobs.patch b/patches/server/0038-Player-spawnsOwnMobs.patch index 181b79e0c..87b2b5db5 100644 --- a/patches/server/0038-Player-spawnsOwnMobs.patch +++ b/patches/server/0038-Player-spawnsOwnMobs.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Player spawnsOwnMobs diff --git a/src/main/java/net/minecraft/server/level/ServerChunkCache.java b/src/main/java/net/minecraft/server/level/ServerChunkCache.java -index 7b3dc5ba8ce6fb5c7091f82c2eea1cb63eb07149..b1bc5a645385a931d56699e852c398e22e04100a 100644 +index ce1cee91351d2665437573b0d756420769637fa0..a4319888da00ee82b17c01a118e325efab43d976 100644 --- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java +++ b/src/main/java/net/minecraft/server/level/ServerChunkCache.java -@@ -564,7 +564,7 @@ public class ServerChunkCache extends ChunkSource { +@@ -562,7 +562,7 @@ public class ServerChunkCache extends ChunkSource { // Paper start - optimise chunk tick iteration ChunkMap playerChunkMap = this.chunkMap; for (ServerPlayer player : this.level.players) { @@ -18,12 +18,12 @@ index 7b3dc5ba8ce6fb5c7091f82c2eea1cb63eb07149..b1bc5a645385a931d56699e852c398e2 player.playerNaturallySpawnedEvent = null; player.lastEntitySpawnRadiusSquared = -1.0; diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index d6cdb7c3314004ee25cbed96eb289d420999c01c..3bc1c402aadd5af534fc343f2d90a20a602e82d1 100644 +index 2b93d9ca3df4d1a9acd670752390018a4332065f..5d37ffb421b22b0d1acffa43ac0bdd2c80414123 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java -@@ -184,6 +184,8 @@ public abstract class Player extends LivingEntity { +@@ -182,6 +182,8 @@ public abstract class Player extends LivingEntity { + public boolean affectsSpawning = true; // Paper - Affects Spawning API public net.kyori.adventure.util.TriState flyingFallDamage = net.kyori.adventure.util.TriState.NOT_SET; // Paper - flying fall damage - // Paper end + public boolean spawnsOwnMobs = false; // Slice + diff --git a/patches/server/0040-Shared-Data-Storage.patch b/patches/server/0040-Shared-Data-Storage.patch index a02d3e904..96df48621 100644 --- a/patches/server/0040-Shared-Data-Storage.patch +++ b/patches/server/0040-Shared-Data-Storage.patch @@ -17,7 +17,7 @@ index a6f58b3457b7477015c5c6d969e7d83017dd3fa1..7f2070bd2d7eb7f0256a96df00103d20 public BlockUpdates blockUpdates; diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 078f6e9d081f6efd9417da0798197cf4b5661198..b71fa704c812c138cb44c7580a61ddec15bdc18d 100644 +index 544f8b6c9f2b5d1f9681cc97db09e815e77f8765..a7335d9f890397eff67d0063d077e263a66d2fdd 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -2,6 +2,7 @@ package net.minecraft.server; @@ -28,16 +28,16 @@ index 078f6e9d081f6efd9417da0798197cf4b5661198..b71fa704c812c138cb44c7580a61ddec import com.google.common.collect.ImmutableList; import co.aikar.timings.Timings; import com.destroystokyo.paper.event.server.PaperServerListPingEvent; -@@ -315,6 +316,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop S spin(Function serverFactory) { AtomicReference atomicreference = new AtomicReference(); Thread thread = new io.papermc.paper.util.TickThread(() -> { // Paper - rewrite chunk system -@@ -416,6 +419,12 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop