From 66a61fbd2b582d88dcb4c07225ada31303548fef Mon Sep 17 00:00:00 2001 From: granny Date: Thu, 4 Jan 2024 21:57:42 -0800 Subject: [PATCH] Updated Upstream (Paper) Upstream has released updates that appear to apply and compile correctly Paper Changes: PaperMC/Paper@ae001ae Fix untrack event not being called for all 'untracks' (#10110) PaperMC/Paper@259bc76 Pass system properties to maven repo session (#10117) PaperMC/Paper@b2a6d57 Validate ResourceLocation in NBT reading PaperMC/Paper@7eaff48 [ci skip] Replace some magic values with constant references PaperMC/Paper@19a6202 Fix experience & improvements to block events (#8067) PaperMC/Paper@8379027 Fix cmd permission levels for command blocks (#7404) PaperMC/Paper@a93acc4 Fix EntityChangePoseEvent being called during worldgen (#10120) PaperMC/Paper@25a99b1 Fix BlockDestroyEvents effectBlock not being set (#10131) --- gradle.properties | 2 +- ...dd-log-suppression-for-LibraryLoader.patch | 8 +-- .../0001-Pufferfish-Server-Changes.patch | 28 +++++------ patches/server/0004-Purpur-config-files.patch | 8 +-- .../0007-Component-related-conveniences.patch | 4 +- patches/server/0008-Ridables.patch | 18 +++---- patches/server/0020-Silk-touch-spawners.patch | 8 +-- ...-Skip-events-if-there-s-no-listeners.patch | 6 +-- ...urable-void-damage-height-and-damage.patch | 6 +-- ...-Add-allow-water-in-end-world-option.patch | 6 +-- ...Stop-squids-floating-on-top-of-water.patch | 4 +- ...tities-can-use-portals-configuration.patch | 6 +-- ...26-Movement-options-for-armor-stands.patch | 4 +- .../server/0127-Fix-stuck-in-portals.patch | 4 +- patches/server/0147-Drowning-Settings.patch | 6 +-- .../0159-Gamemode-extra-permissions.patch | 4 +- ...ggle-for-end-portal-safe-teleporting.patch | 4 +- ...89-Store-placer-on-Block-when-placed.patch | 6 +-- ...ent-BlockEntity-Lore-and-DisplayName.patch | 16 +++--- ...oe-to-replant-crops-and-nether-warts.patch | 12 ++--- patches/server/0238-Allow-void-trading.patch | 4 +- patches/server/0265-Remove-Timings.patch | 14 +++--- .../server/0266-Remove-Mojang-Profiler.patch | 50 +++++++++---------- ...igurable-block-fall-damage-modifiers.patch | 4 +- patches/server/0285-Fire-Immunity-API.patch | 10 ++-- ...leport-to-spawn-on-nether-ceiling-da.patch | 4 +- .../0288-Log-skipped-entity-s-position.patch | 4 +- ...able-sugarcane-cactus-and-netherwart.patch | 4 +- 28 files changed, 127 insertions(+), 127 deletions(-) diff --git a/gradle.properties b/gradle.properties index c888d57c3..4947eae11 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,7 +2,7 @@ group = org.purpurmc.purpur version = 1.20.4-R0.1-SNAPSHOT mcVersion = 1.20.4 -paperCommit = 1fa48d140c5469d894b436a7ba0cb5cb6f819ee0 +paperCommit = 25a99b12e8b18d13f1e69d40f810f9c2d8f2b9c0 org.gradle.caching = true org.gradle.parallel = true diff --git a/patches/api/0048-Add-log-suppression-for-LibraryLoader.patch b/patches/api/0048-Add-log-suppression-for-LibraryLoader.patch index 95e4cd2ac..456417ac0 100644 --- a/patches/api/0048-Add-log-suppression-for-LibraryLoader.patch +++ b/patches/api/0048-Add-log-suppression-for-LibraryLoader.patch @@ -17,10 +17,10 @@ index 301e82369603f3dd6e6c1bd380da4bacacd7ef6c..0c6ca7588fb3d6b6497ddf032fe75e5c /** * This class was not meant to be constructed explicitly diff --git a/src/main/java/org/bukkit/plugin/java/LibraryLoader.java b/src/main/java/org/bukkit/plugin/java/LibraryLoader.java -index e4b6f278a811acbb0070e311c5c3bdaff7b00474..ee83ecb054099cb85168a9499dfe967a0a9ec796 100644 +index 653135352c104a6ddeb74a1b6d4916c6952d6271..46b0d02aa759b3735e6ac811523d459cf263aa8b 100644 --- a/src/main/java/org/bukkit/plugin/java/LibraryLoader.java +++ b/src/main/java/org/bukkit/plugin/java/LibraryLoader.java -@@ -65,6 +65,7 @@ public class LibraryLoader +@@ -66,6 +66,7 @@ public class LibraryLoader @Override public void transferStarted(@NotNull TransferEvent event) throws TransferCancelledException { @@ -28,7 +28,7 @@ index e4b6f278a811acbb0070e311c5c3bdaff7b00474..ee83ecb054099cb85168a9499dfe967a logger.log( Level.INFO, "Downloading {0}", event.getResource().getRepositoryUrl() + event.getResource().getResourceName() ); } } ); -@@ -80,6 +81,7 @@ public class LibraryLoader +@@ -81,6 +82,7 @@ public class LibraryLoader { return null; } @@ -36,7 +36,7 @@ index e4b6f278a811acbb0070e311c5c3bdaff7b00474..ee83ecb054099cb85168a9499dfe967a logger.log( Level.INFO, "[{0}] Loading {1} libraries... please wait", new Object[] { java.util.Objects.requireNonNullElseGet(desc.getPrefix(), desc::getName), desc.getLibraries().size() // Paper - use configured log prefix -@@ -118,6 +120,7 @@ public class LibraryLoader +@@ -119,6 +121,7 @@ public class LibraryLoader } jarFiles.add( url ); diff --git a/patches/server/0001-Pufferfish-Server-Changes.patch b/patches/server/0001-Pufferfish-Server-Changes.patch index c39063819..efd708fc3 100644 --- a/patches/server/0001-Pufferfish-Server-Changes.patch +++ b/patches/server/0001-Pufferfish-Server-Changes.patch @@ -1540,7 +1540,7 @@ index 58536aabf607015939a1326f80207c0a06eed8ff..3b8c810a228a59bf02a8557b229e5eca } } diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index d9cd497bc1b654030ff1a597f038b6a881df9f6b..da1dc26ce76cab20bb56d5a5d806410857f38ea6 100644 +index ecb09c74153349e78bb81d1188c282e4be4000bf..d84b99a8c15f35dc7fa70d250d3cb845b7851880 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -243,7 +243,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider @@ -1552,7 +1552,7 @@ index d9cd497bc1b654030ff1a597f038b6a881df9f6b..da1dc26ce76cab20bb56d5a5d8064108 // Paper end - optimise chunk tick iteration public ChunkMap(ServerLevel world, LevelStorageSource.LevelStorageAccess session, DataFixer dataFixer, StructureTemplateManager structureTemplateManager, Executor executor, BlockableEventLoop mainThreadExecutor, LightChunkGetter chunkProvider, ChunkGenerator chunkGenerator, ChunkProgressListener worldGenerationProgressListener, ChunkStatusUpdateListener chunkStatusChangeListener, Supplier persistentStateManagerFactory, int viewDistance, boolean dsync) { -@@ -1463,8 +1463,28 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1458,8 +1458,28 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider return ChunkMap.this.level.getServer().getScaledTrackingDistance(initialDistance); } @@ -1581,7 +1581,7 @@ index d9cd497bc1b654030ff1a597f038b6a881df9f6b..da1dc26ce76cab20bb56d5a5d8064108 Iterator iterator = this.entity.getIndirectPassengers().iterator(); while (iterator.hasNext()) { -@@ -1476,6 +1496,9 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1471,6 +1491,9 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider i = j; } } @@ -1718,7 +1718,7 @@ index 35674f92a67f93382103c2766df4b678ba5c862f..d46e61640b241d32df05240dedd2c23f this.wasOnGround = this.entity.onGround(); this.teleportDelay = 0; diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 676087c3addd712939c865b39ddb5d9f0bc7ce25..2f89625c216e9751423c623b6e88b98c87d9a00b 100644 +index 7c31f619a6e8e3539c547fc43d821d2cce7df7e7..1b98a2b6a787d3d2490f84b083c162ceef8e6d0d 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -900,6 +900,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -1898,7 +1898,7 @@ index d6cbe98e67fdbf8db46338a88ab1356dd63b50a3..20dd3a63b2f955b05a75eb240e33ae4c int LARGE_MAX_STACK_SIZE = 64; int DEFAULT_DISTANCE_LIMIT = 8; diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 0c46a4aeafd03fbbfd590b0362d41bf2b1d5ca74..b8810cce6f4995d78dca3691b0a1cbd133a05e06 100644 +index 1be10c57e374ad4018c08d96cfb69397a2f541d3..5cbe6cb0676ac23e184e7586e2dacbbc1d5fb218 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -307,7 +307,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -1923,7 +1923,7 @@ index 0c46a4aeafd03fbbfd590b0362d41bf2b1d5ca74..b8810cce6f4995d78dca3691b0a1cbd1 public float getBukkitYaw() { return this.yRot; } -@@ -802,6 +808,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -806,6 +812,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } public void tick() { @@ -1936,7 +1936,7 @@ index 0c46a4aeafd03fbbfd590b0362d41bf2b1d5ca74..b8810cce6f4995d78dca3691b0a1cbd1 this.baseTick(); } -@@ -4399,16 +4411,18 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -4410,16 +4422,18 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } public boolean updateFluidHeightAndDoFluidPushing(TagKey tag, double speed) { @@ -1962,7 +1962,7 @@ index 0c46a4aeafd03fbbfd590b0362d41bf2b1d5ca74..b8810cce6f4995d78dca3691b0a1cbd1 double d1 = 0.0D; boolean flag = this.isPushedByFluid(); boolean flag1 = false; -@@ -4416,14 +4430,61 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -4427,14 +4441,61 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S int k1 = 0; BlockPos.MutableBlockPos blockposition_mutableblockposition = new BlockPos.MutableBlockPos(); @@ -2030,7 +2030,7 @@ index 0c46a4aeafd03fbbfd590b0362d41bf2b1d5ca74..b8810cce6f4995d78dca3691b0a1cbd1 if (d2 >= axisalignedbb.minY) { flag1 = true; -@@ -4445,9 +4506,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -4456,9 +4517,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S // CraftBukkit end } } @@ -2044,7 +2044,7 @@ index 0c46a4aeafd03fbbfd590b0362d41bf2b1d5ca74..b8810cce6f4995d78dca3691b0a1cbd1 if (vec3d.length() > 0.0D) { if (k1 > 0) { diff --git a/src/main/java/net/minecraft/world/entity/EntityType.java b/src/main/java/net/minecraft/world/entity/EntityType.java -index 940b8d0b89d7e55c938aefbe80ee71b0db3dacb8..a63399eedb896c06e96c7fba5cac7102e1c40ba6 100644 +index 00389d7ec3e8b059d5591a2019ba240fda2901fe..81e1854bdce8136f7fee9a25ca76ed356dea18e6 100644 --- a/src/main/java/net/minecraft/world/entity/EntityType.java +++ b/src/main/java/net/minecraft/world/entity/EntityType.java @@ -305,6 +305,8 @@ public class EntityType implements FeatureElement, EntityTypeT @@ -2119,7 +2119,7 @@ index bc908b75cb99536df658281ae7f8b4eeedbbedc9..0a9a77564d624d66e76637eef509e2f3 if (this.isSpectator()) { return false; diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java -index e0cf7771488ab0065708d68b4e8550b865af0ed4..6df13ebec8fbb11eb6e2b7469f9e4ebb44256894 100644 +index a7fbd329ea6d36a46c00b4476c74e426dbbfe238..40fbf1bc4409c289fe9ca154ff306be52708540d 100644 --- a/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java @@ -221,14 +221,16 @@ public abstract class Mob extends LivingEntity implements Targeting { @@ -2680,7 +2680,7 @@ index 27b0a79f7a7c47047216aae42944bac2a2151181..a097cfc528f709c80575f35483b68783 autorecipestackmanager.initialize(this); // Paper - better exact choice recipes int i = 0; diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 8848eeda7a89d445e370626182f9bb4710e5edd4..2e14e03d01c97b9da97e8e15c663262d22b1b3fc 100644 +index 6403341f2e9d7ac4251336cb0bcc5d79dbb7bb0e..ff5880cd1aef52b9df435c8c5935295b116580d2 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -213,6 +213,8 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @@ -2692,7 +2692,7 @@ index 8848eeda7a89d445e370626182f9bb4710e5edd4..2e14e03d01c97b9da97e8e15c663262d protected Level(WritableLevelData worlddatamutable, ResourceKey resourcekey, RegistryAccess iregistrycustom, Holder holder, Supplier supplier, boolean flag, boolean flag1, long i, int j, org.bukkit.generator.ChunkGenerator gen, org.bukkit.generator.BiomeProvider biomeProvider, org.bukkit.World.Environment env, java.util.function.Function paperWorldConfigCreator, java.util.concurrent.Executor executor) { // Paper - Async-Anti-Xray - Pass executor this.spigotConfig = new org.spigotmc.SpigotWorldConfig(((net.minecraft.world.level.storage.PrimaryLevelData) worlddatamutable).getLevelName()); // Spigot this.paperConfig = paperWorldConfigCreator.apply(this.spigotConfig); // Paper -@@ -1313,13 +1315,13 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -1318,13 +1320,13 @@ public abstract class Level implements LevelAccessor, AutoCloseable { try { tickConsumer.accept(entity); MinecraftServer.getServer().executeMidTickTasks(); // Paper - execute chunk tasks mid tick @@ -2708,7 +2708,7 @@ index 8848eeda7a89d445e370626182f9bb4710e5edd4..2e14e03d01c97b9da97e8e15c663262d // Paper end } } -@@ -1793,6 +1795,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -1798,6 +1800,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { } public ProfilerFiller getProfiler() { diff --git a/patches/server/0004-Purpur-config-files.patch b/patches/server/0004-Purpur-config-files.patch index 52daf6d04..fbcc863fe 100644 --- a/patches/server/0004-Purpur-config-files.patch +++ b/patches/server/0004-Purpur-config-files.patch @@ -37,10 +37,10 @@ index 692c962193cf9fcc6801fc93f3220bdc673d527b..8cde30544e14f8fc2dac32966ae3c21f metrics.addCustomChart(new Metrics.DrilldownPie("java_version", () -> { Map> map = new HashMap<>(); diff --git a/src/main/java/net/minecraft/commands/CommandSourceStack.java b/src/main/java/net/minecraft/commands/CommandSourceStack.java -index 14f4c0a93372a58cf36dc95265b5e210ea1605e5..ff27787313a3337e29eac6f623b08f1f333f293c 100644 +index 37ba8fd69a0099f80bdf7c28b593241f1f5d681f..2944b64e3dd5d413ccc12330118eb5248888e21f 100644 --- a/src/main/java/net/minecraft/commands/CommandSourceStack.java +++ b/src/main/java/net/minecraft/commands/CommandSourceStack.java -@@ -322,6 +322,30 @@ public class CommandSourceStack implements ExecutionCommandSource { return worldserver + " " + worldserver.dimension().location(); diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 53e00bb94fd6af9197422218aa92acde897f1aa9..9ded11bdbaf98948a1451e15a237f8423c8cc36d 100644 +index 3ff4c4835029ff6010ac28f933952b56bb823452..6ae230859458b3bf7171577e34c3b6351fa842df 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -225,6 +225,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -46,7 +46,7 @@ index 53e00bb94fd6af9197422218aa92acde897f1aa9..9ded11bdbaf98948a1451e15a237f842 final Throwable thr = new Throwable(entity + " Added to world at " + new java.util.Date()); io.papermc.paper.util.StacktraceDeobfuscator.INSTANCE.deobfuscateThrowable(thr); diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index ae9dfb2719ff2372e3a73adc2163330db886dfbe..f709667d2efab5f7dac22bb6e4b0bf32917f71e4 100644 +index 257675e0f3d44dec2d532161713609502b2ae868..a3b4ed70b7d7012a72d5997c04821871d029d18b 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -763,6 +763,15 @@ public class ServerPlayer extends Player { @@ -66,7 +66,7 @@ index ae9dfb2719ff2372e3a73adc2163330db886dfbe..f709667d2efab5f7dac22bb6e4b0bf32 public void doTick() { diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index ce4c0a721c148ffb3c91d6a59189925aa7a1d766..741b108b2c6ed243c8f4e9124a31a3005e0ce594 100644 +index df07e24ad5e1eaf5211d307965107ec1776cfa19..748c48a5facc24abb106eded9d5f034b5c36757e 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -2722,6 +2722,8 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -79,7 +79,7 @@ index ce4c0a721c148ffb3c91d6a59189925aa7a1d766..741b108b2c6ed243c8f4e9124a31a300 if ((entity instanceof Bucketable && entity instanceof LivingEntity && origItem != null && origItem.asItem() == Items.WATER_BUCKET) && (event.isCancelled() || ServerGamePacketListenerImpl.this.player.getInventory().getSelected() == null || ServerGamePacketListenerImpl.this.player.getInventory().getSelected().getItem() != origItem)) { entity.getEntityData().resendPossiblyDesyncedEntity(player); // Paper - The entire mob gets deleted, so resend it. diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index acb0f8ff57e4e08bdbcb93994064d9d216ac69b5..7fc1887f68092da224a1ea1c56de474b471a8aee 100644 +index 4bcd36f4767975e87ec6ed12a3c80e834e2d497b..0bc1c009424ce4e8bc61232b5ffd40db1ae3f262 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -377,7 +377,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -91,7 +91,7 @@ index acb0f8ff57e4e08bdbcb93994064d9d216ac69b5..7fc1887f68092da224a1ea1c56de474b private float eyeHeight; public boolean isInPowderSnow; public boolean wasInPowderSnow; -@@ -3008,6 +3008,13 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -3012,6 +3012,13 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S this.passengers = ImmutableList.copyOf(list); } @@ -105,7 +105,7 @@ index acb0f8ff57e4e08bdbcb93994064d9d216ac69b5..7fc1887f68092da224a1ea1c56de474b this.gameEvent(GameEvent.ENTITY_MOUNT, passenger); } } -@@ -3048,6 +3055,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -3052,6 +3059,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S return false; } // Spigot end @@ -120,7 +120,7 @@ index acb0f8ff57e4e08bdbcb93994064d9d216ac69b5..7fc1887f68092da224a1ea1c56de474b if (this.passengers.size() == 1 && this.passengers.get(0) == entity) { this.passengers = ImmutableList.of(); } else { -@@ -4989,4 +5004,44 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -5000,4 +5015,44 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S return ((net.minecraft.server.level.ServerChunkCache) level.getChunkSource()).isPositionTicking(this); } // Paper end @@ -268,7 +268,7 @@ index 0a9a77564d624d66e76637eef509e2f321333dc6..5e64293b7392e5a4b19a4c7303b0365d // Paper end if (!this.level().isClientSide && this.isSensitiveToWater() && this.isInWaterRainOrBubble()) { diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java -index 6df13ebec8fbb11eb6e2b7469f9e4ebb44256894..62eba7fc2fd013bf17496896c2b7a88c95c070f1 100644 +index 40fbf1bc4409c289fe9ca154ff306be52708540d..f17b7e83a04a2cd738f7d708891fec2e341f3f96 100644 --- a/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java @@ -148,8 +148,8 @@ public abstract class Mob extends LivingEntity implements Targeting { @@ -5204,7 +5204,7 @@ index 1c3e1153d08b59d29b3613fc3b50a4780aa7a3ac..7c8b90444aa635cddf480d49a92a180a + // Purpur end } diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index a36ffbbab5bbfec5a4a224dc5ee8812b98dd4d7c..2d934ed6b21ad2df88e1389dd1aa445aa6ccd1ff 100644 +index 2aab68bac670dcd134d817940020214c7b0797f9..11dacda7c56c1819adc0c5a420b277c8e0db0aeb 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -591,6 +591,15 @@ public class CraftEventFactory { diff --git a/patches/server/0020-Silk-touch-spawners.patch b/patches/server/0020-Silk-touch-spawners.patch index d65d2f6b8..1c214676f 100644 --- a/patches/server/0020-Silk-touch-spawners.patch +++ b/patches/server/0020-Silk-touch-spawners.patch @@ -18,7 +18,7 @@ index f692149d91b525bda6dc79d489d7496ea24037e8..7fbd4bf29bcc0795aa4b0e6d5d4bc374 public static final Item CRAFTING_TABLE = registerBlock(Blocks.CRAFTING_TABLE); public static final Item FARMLAND = registerBlock(Blocks.FARMLAND); diff --git a/src/main/java/net/minecraft/world/level/block/SpawnerBlock.java b/src/main/java/net/minecraft/world/level/block/SpawnerBlock.java -index e8b1c44da90f60cde20cda65aba2aa1e30f89d25..c2e03881fff78aff203b5838180894bb70f419b9 100644 +index e8b1c44da90f60cde20cda65aba2aa1e30f89d25..c55576424993236da46ed1c2ccd03b72d7ee97f9 100644 --- a/src/main/java/net/minecraft/world/level/block/SpawnerBlock.java +++ b/src/main/java/net/minecraft/world/level/block/SpawnerBlock.java @@ -42,6 +42,58 @@ public class SpawnerBlock extends BaseEntityBlock { @@ -27,7 +27,7 @@ index e8b1c44da90f60cde20cda65aba2aa1e30f89d25..c2e03881fff78aff203b5838180894bb + // Purpur start + @Override -+ public void playerDestroy(Level level, net.minecraft.world.entity.player.Player player, BlockPos pos, BlockState state, BlockEntity blockEntity, ItemStack stack, boolean includeDrops) { ++ public void playerDestroy(Level level, net.minecraft.world.entity.player.Player player, BlockPos pos, BlockState state, @Nullable BlockEntity blockEntity, ItemStack stack, boolean includeDrops, boolean dropExp) { + if (level.purpurConfig.silkTouchEnabled && player.getBukkitEntity().hasPermission("purpur.drop.spawners") && isSilkTouch(level, stack)) { + java.util.Optional> type = net.minecraft.world.entity.EntityType.by(((SpawnerBlockEntity) blockEntity).getSpawner().nextSpawnData.getEntityToSpawn()); + @@ -63,13 +63,13 @@ index e8b1c44da90f60cde20cda65aba2aa1e30f89d25..c2e03881fff78aff203b5838180894bb + ItemStack item = new ItemStack(Blocks.SPAWNER.asItem()); + if (entityType != null) { + tag.putString("Purpur.mob_type", entityType.getName()); -+ tag.putDouble("HideFlags", 32); // hides the "Interact with Spawn Egg" tooltip ++ tag.putDouble("HideFlags", ItemStack.TooltipPart.ADDITIONAL.getMask()); // hides the "Interact with Spawn Egg" tooltip + item.setTag(tag); + } + + popResource(level, pos, item); + } -+ super.playerDestroy(level, player, pos, state, blockEntity, stack, includeDrops); ++ super.playerDestroy(level, player, pos, state, blockEntity, stack, includeDrops, dropExp); + } + + private boolean isSilkTouch(Level level, ItemStack stack) { diff --git a/patches/server/0044-Skip-events-if-there-s-no-listeners.patch b/patches/server/0044-Skip-events-if-there-s-no-listeners.patch index 4dc73ab51..9fc44407d 100644 --- a/patches/server/0044-Skip-events-if-there-s-no-listeners.patch +++ b/patches/server/0044-Skip-events-if-there-s-no-listeners.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Skip events if there's no listeners diff --git a/src/main/java/net/minecraft/commands/Commands.java b/src/main/java/net/minecraft/commands/Commands.java -index 55f3f5396dac2b0bb0cc37b537547e9245042100..471270f302cbfaf81500976fcc5a02eaed4120f3 100644 +index 8fe48c6bf65db6b11fcd0674aad01d5bb8d17a5f..8572142117fbc469199a538c4624b2f064e8cb6f 100644 --- a/src/main/java/net/minecraft/commands/Commands.java +++ b/src/main/java/net/minecraft/commands/Commands.java -@@ -516,6 +516,7 @@ public class Commands { +@@ -507,6 +507,7 @@ public class Commands { private void runSync(ServerPlayer player, Collection bukkit, RootCommandNode rootcommandnode) { // Paper end - Async command map building new com.destroystokyo.paper.event.brigadier.AsyncPlayerSendCommandsEvent(player.getBukkitEntity(), (RootCommandNode) rootcommandnode, false).callEvent(); // Paper @@ -16,7 +16,7 @@ index 55f3f5396dac2b0bb0cc37b537547e9245042100..471270f302cbfaf81500976fcc5a02ea PlayerCommandSendEvent event = new PlayerCommandSendEvent(player.getBukkitEntity(), new LinkedHashSet<>(bukkit)); event.getPlayer().getServer().getPluginManager().callEvent(event); -@@ -526,6 +527,7 @@ public class Commands { +@@ -517,6 +518,7 @@ public class Commands { } } // CraftBukkit end diff --git a/patches/server/0054-Configurable-void-damage-height-and-damage.patch b/patches/server/0054-Configurable-void-damage-height-and-damage.patch index a81ccf1ba..c68d9754e 100644 --- a/patches/server/0054-Configurable-void-damage-height-and-damage.patch +++ b/patches/server/0054-Configurable-void-damage-height-and-damage.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Configurable void damage height and damage diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 5cc0caee5ba7d63fb1ec4144623ec9a94401c86c..ed1d9e97d0892e2c51915b1b8636791ea261943b 100644 +index 59ff2180e0c621cc821affb34aa051ac017f9431..bc1033008eb893ef94f0abb7a0309d787bcde8f0 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -897,7 +897,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -901,7 +901,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S public void checkBelowWorld() { // Paper start - Configurable nether ceiling damage @@ -18,7 +18,7 @@ index 5cc0caee5ba7d63fb1ec4144623ec9a94401c86c..ed1d9e97d0892e2c51915b1b8636791e && (!(this instanceof Player player) || !player.getAbilities().invulnerable))) { // Paper end diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 4d0332666d705610d3e48c96462ef655f2fd2ed5..0b5e92a5b631da4c9b700e3d65297d639f792986 100644 +index d6aef7ea15df04046b005d4d5d747ef70b846385..abd146185cfd512c23367d478f269a9c4a35f086 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -2540,7 +2540,7 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0070-Add-allow-water-in-end-world-option.patch b/patches/server/0070-Add-allow-water-in-end-world-option.patch index 5b9a40f61..10e65f39c 100644 --- a/patches/server/0070-Add-allow-water-in-end-world-option.patch +++ b/patches/server/0070-Add-allow-water-in-end-world-option.patch @@ -27,10 +27,10 @@ index aa0f09a18ea781e027ea70928b30d3e93061120f..5cb8f1e13f4889792395d6b498c0ade2 return true; diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index ea437adbb8a96c27fb2dd5de8c4ccda3489eddd0..faff675121dd1d0064376e0281bb357f78119097 100644 +index 6ed3b2803c22ddac4234d573cecbaa5991a320d9..f0d9c35062983b0308820feee621caf6e4a6648a 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -1909,4 +1909,14 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -1914,4 +1914,14 @@ public abstract class Level implements LevelAccessor, AutoCloseable { } } // Paper end - notify observers even if grow failed @@ -46,7 +46,7 @@ index ea437adbb8a96c27fb2dd5de8c4ccda3489eddd0..faff675121dd1d0064376e0281bb357f + // Purpur end } diff --git a/src/main/java/net/minecraft/world/level/block/IceBlock.java b/src/main/java/net/minecraft/world/level/block/IceBlock.java -index 4ab6997dad5b112f5105f786a6cee78c6c5667e8..bbf19716d84a0d7e71a11559ef4f62590f2f367c 100644 +index 9ebe74e235d425fde985a6180857dc4039ecfedf..2c21888c477b93f38adaf18abe62732b08e1c9c2 100644 --- a/src/main/java/net/minecraft/world/level/block/IceBlock.java +++ b/src/main/java/net/minecraft/world/level/block/IceBlock.java @@ -41,7 +41,7 @@ public class IceBlock extends HalfTransparentBlock { diff --git a/patches/server/0084-Stop-squids-floating-on-top-of-water.patch b/patches/server/0084-Stop-squids-floating-on-top-of-water.patch index fba12436a..e0712d2a0 100644 --- a/patches/server/0084-Stop-squids-floating-on-top-of-water.patch +++ b/patches/server/0084-Stop-squids-floating-on-top-of-water.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Stop squids floating on top of water diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index c1d82f042da0628450cbbf4b45f6db7552ba268a..38bed7071513e9449d970ecfb628bd1ba37cd45f 100644 +index 667b560c5b414d174f265778038942e87d4451ef..9a790f72307e4e044a2ae9aded57025e3974c278 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -4443,6 +4443,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -4454,6 +4454,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S this.yRotO = this.getYRot(); } diff --git a/patches/server/0086-Entities-can-use-portals-configuration.patch b/patches/server/0086-Entities-can-use-portals-configuration.patch index 4b1d40c04..9f1226539 100644 --- a/patches/server/0086-Entities-can-use-portals-configuration.patch +++ b/patches/server/0086-Entities-can-use-portals-configuration.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Entities can use portals configuration diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 38bed7071513e9449d970ecfb628bd1ba37cd45f..6651c11dfa81d4289637555f24c91f5f03a8c750 100644 +index 9a790f72307e4e044a2ae9aded57025e3974c278..efadee43018d6d22b11ed59169a89d91192af3cc 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -3149,7 +3149,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -3153,7 +3153,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S public void handleInsidePortal(BlockPos pos) { if (this.isOnPortalCooldown()) { this.setPortalCooldown(); @@ -17,7 +17,7 @@ index 38bed7071513e9449d970ecfb628bd1ba37cd45f..6651c11dfa81d4289637555f24c91f5f if (!this.level().isClientSide && !pos.equals(this.portalEntrancePos)) { this.portalEntrancePos = pos.immutable(); } -@@ -3858,7 +3858,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -3862,7 +3862,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } public boolean canChangeDimensions() { diff --git a/patches/server/0126-Movement-options-for-armor-stands.patch b/patches/server/0126-Movement-options-for-armor-stands.patch index 8dfcddde5..797a63e06 100644 --- a/patches/server/0126-Movement-options-for-armor-stands.patch +++ b/patches/server/0126-Movement-options-for-armor-stands.patch @@ -17,10 +17,10 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 6651c11dfa81d4289637555f24c91f5f03a8c750..fe793f51e9f81d14d6b2614c2da33f6d9e347fd2 100644 +index efadee43018d6d22b11ed59169a89d91192af3cc..2919e79d24eecb3114d1a32991e12c39ac88f6b8 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -1870,7 +1870,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -1874,7 +1874,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S return this.isInWater() || flag; } diff --git a/patches/server/0127-Fix-stuck-in-portals.patch b/patches/server/0127-Fix-stuck-in-portals.patch index 0143f85fd..703ca1256 100644 --- a/patches/server/0127-Fix-stuck-in-portals.patch +++ b/patches/server/0127-Fix-stuck-in-portals.patch @@ -17,10 +17,10 @@ index e7b654c1991348a7f73ca8bc950d776e4e708779..487e4ab76e255e10369f7968d73d4195 // CraftBukkit end this.setServerLevel(worldserver); diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index fe793f51e9f81d14d6b2614c2da33f6d9e347fd2..0647431984d263fcd90ca4273626973c44716734 100644 +index 2919e79d24eecb3114d1a32991e12c39ac88f6b8..07a9f53448e6adbb45d941a72759187fefe30313 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -3146,12 +3146,15 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -3150,12 +3150,15 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S return Vec3.directionFromRotation(this.getRotationVector()); } diff --git a/patches/server/0147-Drowning-Settings.patch b/patches/server/0147-Drowning-Settings.patch index 03089f61f..da8844ca6 100644 --- a/patches/server/0147-Drowning-Settings.patch +++ b/patches/server/0147-Drowning-Settings.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Drowning Settings diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 0647431984d263fcd90ca4273626973c44716734..7ecc956aa2907090c9b0c9dcaf674330bb18f3d3 100644 +index 07a9f53448e6adbb45d941a72759187fefe30313..9c4c5aa169b4a9943a096ad84d0bd66fad15c55d 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -3395,7 +3395,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -3399,7 +3399,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } public int getMaxAirSupply() { @@ -18,7 +18,7 @@ index 0647431984d263fcd90ca4273626973c44716734..7ecc956aa2907090c9b0c9dcaf674330 public int getAirSupply() { diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 5ac686c5d3fc20d55899eb7ffafa48c4130344cf..b320b4bc692efdd9f7efd4f3fa195bc26512cf66 100644 +index 4ba269d7c63a8e2df498a5ab7253c3a9fbc44103..385bc1cb2c1b00e80ecfcb0a59a24670407af5cd 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -438,7 +438,7 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0159-Gamemode-extra-permissions.patch b/patches/server/0159-Gamemode-extra-permissions.patch index b60266c46..b89c41997 100644 --- a/patches/server/0159-Gamemode-extra-permissions.patch +++ b/patches/server/0159-Gamemode-extra-permissions.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Gamemode extra permissions diff --git a/src/main/java/net/minecraft/commands/CommandSourceStack.java b/src/main/java/net/minecraft/commands/CommandSourceStack.java -index ff27787313a3337e29eac6f623b08f1f333f293c..e75a5caa06a1a92a7ab4c70b1d4ab512f645022d 100644 +index 2944b64e3dd5d413ccc12330118eb5248888e21f..288e3cf7d522232aeb40090537a55a2cf06d92e2 100644 --- a/src/main/java/net/minecraft/commands/CommandSourceStack.java +++ b/src/main/java/net/minecraft/commands/CommandSourceStack.java -@@ -217,6 +217,19 @@ public class CommandSourceStack implements ExecutionCommandSource { - Block.popResource(world, pos, itemstack1); + Block.popResource(world, pos, applyDisplayNameAndLoreFromTile(itemstack1, blockEntity)); // Purpur }); - state.spawnAfterBreak((ServerLevel) world, pos, tool, true); + state.spawnAfterBreak((ServerLevel) world, pos, tool, dropExperience); // Paper } } diff --git a/patches/server/0228-Ability-for-hoe-to-replant-crops-and-nether-warts.patch b/patches/server/0228-Ability-for-hoe-to-replant-crops-and-nether-warts.patch index fb5d948e2..766fcd703 100644 --- a/patches/server/0228-Ability-for-hoe-to-replant-crops-and-nether-warts.patch +++ b/patches/server/0228-Ability-for-hoe-to-replant-crops-and-nether-warts.patch @@ -34,7 +34,7 @@ index bed3d9c781c7d3ca260027b4737970889a54689c..db1941ed32d141327a8b11e54b3ff990 + // Purpur end } diff --git a/src/main/java/net/minecraft/world/level/block/CropBlock.java b/src/main/java/net/minecraft/world/level/block/CropBlock.java -index 0e06958657201806f425990ac01a5f8acc540f3e..32b121fc8b92ce6ff202b967b7d08f77a9a332f4 100644 +index 0e06958657201806f425990ac01a5f8acc540f3e..2dbfc522990964b2ae5a9e5f84426e0749f92563 100644 --- a/src/main/java/net/minecraft/world/level/block/CropBlock.java +++ b/src/main/java/net/minecraft/world/level/block/CropBlock.java @@ -214,4 +214,15 @@ public class CropBlock extends BushBlock implements BonemealableBlock { @@ -44,17 +44,17 @@ index 0e06958657201806f425990ac01a5f8acc540f3e..32b121fc8b92ce6ff202b967b7d08f77 + + // Purpur start + @Override -+ public void playerDestroy(Level world, net.minecraft.world.entity.player.Player player, BlockPos pos, BlockState state, @javax.annotation.Nullable net.minecraft.world.level.block.entity.BlockEntity blockEntity, ItemStack itemInHand, boolean includeDrops) { ++ public void playerDestroy(Level world, net.minecraft.world.entity.player.Player player, BlockPos pos, BlockState state, @javax.annotation.Nullable net.minecraft.world.level.block.entity.BlockEntity blockEntity, ItemStack itemInHand, boolean includeDrops, boolean dropExp) { + if (world.purpurConfig.hoeReplantsCrops && itemInHand.getItem() instanceof net.minecraft.world.item.HoeItem) { + super.playerDestroyAndReplant(world, player, pos, state, blockEntity, itemInHand, getBaseSeedId()); + } else { -+ super.playerDestroy(world, player, pos, state, blockEntity, itemInHand, includeDrops); ++ super.playerDestroy(world, player, pos, state, blockEntity, itemInHand, includeDrops, dropExp); + } + } + // Purpur end } diff --git a/src/main/java/net/minecraft/world/level/block/NetherWartBlock.java b/src/main/java/net/minecraft/world/level/block/NetherWartBlock.java -index 0fc333f240d6918e841a9221be42973839408802..7328764abb0790b389d396179db32f4a63bfe98a 100644 +index 0fc333f240d6918e841a9221be42973839408802..464a9d2e4c694d5d4aae6c2d3e8a5fad0111e910 100644 --- a/src/main/java/net/minecraft/world/level/block/NetherWartBlock.java +++ b/src/main/java/net/minecraft/world/level/block/NetherWartBlock.java @@ -68,4 +68,15 @@ public class NetherWartBlock extends BushBlock { @@ -64,11 +64,11 @@ index 0fc333f240d6918e841a9221be42973839408802..7328764abb0790b389d396179db32f4a + + // Purpur start + @Override -+ public void playerDestroy(net.minecraft.world.level.Level world, net.minecraft.world.entity.player.Player player, BlockPos pos, BlockState state, @javax.annotation.Nullable net.minecraft.world.level.block.entity.BlockEntity blockEntity, ItemStack itemInHand, boolean includeDrops) { ++ public void playerDestroy(net.minecraft.world.level.Level world, net.minecraft.world.entity.player.Player player, BlockPos pos, BlockState state, @javax.annotation.Nullable net.minecraft.world.level.block.entity.BlockEntity blockEntity, ItemStack itemInHand, boolean includeDrops, boolean dropExp) { + if (world.purpurConfig.hoeReplantsNetherWarts && itemInHand.getItem() instanceof net.minecraft.world.item.HoeItem) { + super.playerDestroyAndReplant(world, player, pos, state, blockEntity, itemInHand, Items.NETHER_WART); + } else { -+ super.playerDestroy(world, player, pos, state, blockEntity, itemInHand, includeDrops); ++ super.playerDestroy(world, player, pos, state, blockEntity, itemInHand, includeDrops, dropExp); + } + } + // Purpur end diff --git a/patches/server/0238-Allow-void-trading.patch b/patches/server/0238-Allow-void-trading.patch index d8887eb59..092dfebf1 100644 --- a/patches/server/0238-Allow-void-trading.patch +++ b/patches/server/0238-Allow-void-trading.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Allow void trading diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 9751b8b052cd47bc460207224aaf547b5d271411..2e457d9c2a65875419fcc8cfcda33cfe9b528640 100644 +index 603a13a1720123fd987b686d8d881d955d1bab08..fea3f6366606a15ed57c5b23bb4db274b3e26fd8 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -2929,7 +2929,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -2930,7 +2930,7 @@ public class ServerLevel extends Level implements WorldGenLevel { // Spigot Start if (entity.getBukkitEntity() instanceof org.bukkit.inventory.InventoryHolder && (!(entity instanceof ServerPlayer) || entity.getRemovalReason() != Entity.RemovalReason.KILLED)) { // SPIGOT-6876: closeInventory clears death message // Paper start diff --git a/patches/server/0265-Remove-Timings.patch b/patches/server/0265-Remove-Timings.patch index fe835ca0b..2d92ebb0c 100644 --- a/patches/server/0265-Remove-Timings.patch +++ b/patches/server/0265-Remove-Timings.patch @@ -236,7 +236,7 @@ index 434391fd88a5ef1013d4655f539361ac4227a501..a39105007dd3aa44cc035864b388618e @Override diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index da1dc26ce76cab20bb56d5a5d806410857f38ea6..dfec9e39877826699ac4b1208f060dc84857d3fb 100644 +index d84b99a8c15f35dc7fa70d250d3cb845b7851880..c0aef32f3669dd9ce3a5aa50c2ceeda06f614b00 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -547,15 +547,15 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider @@ -447,7 +447,7 @@ index 5cf74fe0214191d42e74fc104eba150a95894e0f..9f438b41b61ee1174d8f23bcb7d93380 gameprofilerfiller.pop(); gameprofilerfiller.pop(); diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 2e457d9c2a65875419fcc8cfcda33cfe9b528640..1ccdea0e7c64de5bcb7a6a6f14105cf62a211fd6 100644 +index fea3f6366606a15ed57c5b23bb4db274b3e26fd8..949f8b68ba6776dfed412c0d55e8642264262f7d 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -872,7 +872,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -630,7 +630,7 @@ index 2e457d9c2a65875419fcc8cfcda33cfe9b528640..1ccdea0e7c64de5bcb7a6a6f14105cf6 } else if (close) { chunkproviderserver.close(false); } // Paper - rewrite chunk system diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 22298bc61205b2da0a13a97144704d0dd1d33260..56f110d08fa24b26792f55b2ea062249b0f9643d 100644 +index 709e0c73178e02f181d2d5de8929a3ed7bcab2f9..a6a852ccfbe0a039937d9c453276a2ab23a76110 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -2460,7 +2460,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -732,10 +732,10 @@ index fcdb9bde8e1605e30dde3e580491522d4b62cdc0..7094701d213c73ba47ace806962244c1 } diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index f47a00bbe6d9cfa15fc3a55a8953934ac12ca85f..54ceb622d9588ccd8df3cba849571aa3fdbb364a 100644 +index 23e2299c1e5b47129c63fbf89a14c1560b1cfeb5..6a7f03f08c8910215ac0e08363aa4c3d8b2f737c 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -1313,15 +1313,15 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -1318,15 +1318,15 @@ public abstract class Level implements LevelAccessor, AutoCloseable { ProfilerFiller gameprofilerfiller = this.getProfiler(); gameprofilerfiller.push("blockEntities"); @@ -754,7 +754,7 @@ index f47a00bbe6d9cfa15fc3a55a8953934ac12ca85f..54ceb622d9588ccd8df3cba849571aa3 // Spigot start // Iterator iterator = this.blockEntityTickers.iterator(); boolean flag = this.tickRateManager().runsNormally(); -@@ -1350,7 +1350,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -1355,7 +1355,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { } this.blockEntityTickers.removeAll(toRemove); @@ -903,7 +903,7 @@ index b3e1adeb932da9b3bed16acd94e2f16da48a7c72..d3ec817e95628f1fc8be4a29c9a0f13c // Paper end - add timings for scoreboard search } diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java -index a7ecbd77d0017a298b94cceeddc049eff713f60f..0b03dae85e6008283e68b07fa438daccf0e4f5fa 100644 +index e7c384a8bf16de5132245c24226fff22f5c38585..2b73e291e44987c4d63f2064091f7f8e28276b90 100644 --- a/src/main/java/org/spigotmc/ActivationRange.java +++ b/src/main/java/org/spigotmc/ActivationRange.java @@ -170,7 +170,7 @@ public class ActivationRange diff --git a/patches/server/0266-Remove-Mojang-Profiler.patch b/patches/server/0266-Remove-Mojang-Profiler.patch index 1336479fa..8b7a40ba0 100644 --- a/patches/server/0266-Remove-Mojang-Profiler.patch +++ b/patches/server/0266-Remove-Mojang-Profiler.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Remove Mojang Profiler diff --git a/src/main/java/net/minecraft/commands/Commands.java b/src/main/java/net/minecraft/commands/Commands.java -index 428dd75450bdd5daf902a1fbaca7031a9bc585a8..c1202a56b560269e132eafd8bb12383473d4d33e 100644 +index eb8de6edea600be63934c4024142c97e7c669c99..2fd8940727e4f361c67114794233d4ddc6548dbb 100644 --- a/src/main/java/net/minecraft/commands/Commands.java +++ b/src/main/java/net/minecraft/commands/Commands.java @@ -165,7 +165,7 @@ public class Commands { @@ -17,7 +17,7 @@ index 428dd75450bdd5daf902a1fbaca7031a9bc585a8..c1202a56b560269e132eafd8bb123834 DefaultGameModeCommands.register(this.dispatcher); DifficultyCommand.register(this.dispatcher); EffectCommands.register(this.dispatcher, commandRegistryAccess); -@@ -341,9 +341,9 @@ public class Commands { +@@ -332,9 +332,9 @@ public class Commands { public void performCommand(ParseResults parseresults, String s, String label) { // CraftBukkit CommandSourceStack commandlistenerwrapper = (CommandSourceStack) parseresults.getContext().getSource(); @@ -29,7 +29,7 @@ index 428dd75450bdd5daf902a1fbaca7031a9bc585a8..c1202a56b560269e132eafd8bb123834 ContextChain contextchain = this.finishParsing(parseresults, s, commandlistenerwrapper, label); // CraftBukkit // Paper - make finishParsing not static try { -@@ -372,7 +372,7 @@ public class Commands { +@@ -363,7 +363,7 @@ public class Commands { Commands.LOGGER.error("'/{}' threw an exception", s, exception); } } finally { @@ -448,7 +448,7 @@ index df0c15f6b5b2224d53e4f8fad42b9a1e5f33dc25..5dd0dcb47211cec69189115bf4eab1df } diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index dfec9e39877826699ac4b1208f060dc84857d3fb..cd55b5bbba17a60766c3302fd8cb94553fe3f929 100644 +index c0aef32f3669dd9ce3a5aa50c2ceeda06f614b00..2631c05a3855c71eff3f8cf8d13920430f929a13 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -545,20 +545,20 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider @@ -626,7 +626,7 @@ index 9f438b41b61ee1174d8f23bcb7d93380ad932e9c..c3c47857515a7f75d69c718f352d8bae } diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 1ccdea0e7c64de5bcb7a6a6f14105cf62a211fd6..7912c26d27e9f143c34d63410155052cd00e0b8d 100644 +index 949f8b68ba6776dfed412c0d55e8642264262f7d..ac3e1d0f5b8def2bdace6f3b680ff9e929c515fb 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -830,16 +830,16 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -1107,10 +1107,10 @@ index 2e6e8eac987c4ef6b2dcd3de592d8a51d2b29792..863343a87fe34d72f04af89d75268b47 }; } diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 67ebbf6005cdef280d62e2150287f18699b2fe6a..386259c78d134814479427b0591f0c6f4d064c91 100644 +index 8cfba1af2f4ca7be42d997269187466c130de7b3..05f92d609a5d38b737093603a6831d6b7bcb8609 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -846,7 +846,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -850,7 +850,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S // CraftBukkit end public void baseTick() { @@ -1119,7 +1119,7 @@ index 67ebbf6005cdef280d62e2150287f18699b2fe6a..386259c78d134814479427b0591f0c6f if (firstTick && this instanceof net.minecraft.world.entity.NeutralMob neutralMob) neutralMob.tickInitialPersistentAnger(level); // Paper - Update last hurt when ticking this.feetBlockState = null; if (this.isPassenger() && this.getVehicle().isRemoved()) { -@@ -907,7 +907,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -911,7 +911,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } this.firstTick = false; @@ -1128,7 +1128,7 @@ index 67ebbf6005cdef280d62e2150287f18699b2fe6a..386259c78d134814479427b0591f0c6f } public void setSharedFlagOnFire(boolean onFire) { -@@ -1126,7 +1126,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -1130,7 +1130,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } } @@ -1137,7 +1137,7 @@ index 67ebbf6005cdef280d62e2150287f18699b2fe6a..386259c78d134814479427b0591f0c6f if (this.stuckSpeedMultiplier.lengthSqr() > 1.0E-7D) { movement = movement.multiply(this.stuckSpeedMultiplier); this.stuckSpeedMultiplier = Vec3.ZERO; -@@ -1135,7 +1135,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -1139,7 +1139,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S // Paper start - ignore movement changes while inactive. if (isTemporarilyActive && !(this instanceof ItemEntity || this instanceof net.minecraft.world.entity.vehicle.AbstractMinecart) && movement == getDeltaMovement() && movementType == MoverType.SELF) { setDeltaMovement(Vec3.ZERO); @@ -1146,7 +1146,7 @@ index 67ebbf6005cdef280d62e2150287f18699b2fe6a..386259c78d134814479427b0591f0c6f return; } // Paper end -@@ -1156,8 +1156,8 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -1160,8 +1160,8 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S this.setPos(this.getX() + vec3d1.x, this.getY() + vec3d1.y, this.getZ() + vec3d1.z); } @@ -1157,7 +1157,7 @@ index 67ebbf6005cdef280d62e2150287f18699b2fe6a..386259c78d134814479427b0591f0c6f boolean flag = !Mth.equal(movement.x, vec3d1.x); boolean flag1 = !Mth.equal(movement.z, vec3d1.z); -@@ -1176,7 +1176,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -1180,7 +1180,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S this.checkFallDamage(vec3d1.y, this.onGround(), iblockdata, blockposition); if (this.isRemoved()) { @@ -1166,7 +1166,7 @@ index 67ebbf6005cdef280d62e2150287f18699b2fe6a..386259c78d134814479427b0591f0c6f } else { if (this.horizontalCollision) { Vec3 vec3d2 = this.getDeltaMovement(); -@@ -1314,7 +1314,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -1318,7 +1318,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S this.setRemainingFireTicks(-this.getFireImmuneTicks()); } @@ -1175,7 +1175,7 @@ index 67ebbf6005cdef280d62e2150287f18699b2fe6a..386259c78d134814479427b0591f0c6f } } // Paper start - detailed watchdog information -@@ -3187,7 +3187,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -3191,7 +3191,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S ServerLevel worldserver1 = minecraftserver.getLevel(resourcekey); if (true && !this.isPassenger() && this.portalTime++ >= i) { // CraftBukkit @@ -1184,7 +1184,7 @@ index 67ebbf6005cdef280d62e2150287f18699b2fe6a..386259c78d134814479427b0591f0c6f this.portalTime = i; // Paper start io.papermc.paper.event.entity.EntityPortalReadyEvent event = new io.papermc.paper.event.entity.EntityPortalReadyEvent(this.getBukkitEntity(), worldserver1 == null ? null : worldserver1.getWorld(), org.bukkit.PortalType.NETHER); -@@ -3205,7 +3205,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -3209,7 +3209,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } } // Paper // CraftBukkit end @@ -1193,7 +1193,7 @@ index 67ebbf6005cdef280d62e2150287f18699b2fe6a..386259c78d134814479427b0591f0c6f } this.isInsidePortal = false; -@@ -3680,14 +3680,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -3684,14 +3684,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } // Paper end if (this.level() instanceof ServerLevel && !this.isRemoved()) { @@ -1210,7 +1210,7 @@ index 67ebbf6005cdef280d62e2150287f18699b2fe6a..386259c78d134814479427b0591f0c6f PortalInfo shapedetectorshape = (location == null) ? this.findDimensionEntryPoint(worldserver) : new PortalInfo(new Vec3(location.x(), location.y(), location.z()), Vec3.ZERO, this.yRot, this.xRot, worldserver, null); // CraftBukkit if (shapedetectorshape == null) { -@@ -3726,7 +3726,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -3730,7 +3730,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S this.unRide(); // CraftBukkit end @@ -1219,7 +1219,7 @@ index 67ebbf6005cdef280d62e2150287f18699b2fe6a..386259c78d134814479427b0591f0c6f // Paper start - Change lead drop timing to prevent dupe if (this instanceof Mob) { ((Mob) this).dropLeash(true, true); // Paper drop lead -@@ -3753,10 +3753,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -3757,10 +3757,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } this.removeAfterChangingDimensions(); @@ -1344,7 +1344,7 @@ index 6e7ed46a3a10a1ec69d0b69ee49be304760e419b..f9e035405c42fbe0a8c0dca2157798d6 // Purpur start if (this.xo != this.getX() || this.yo != this.getY() || this.zo != this.getZ() || this.yRotO != this.getYRot() || this.xRotO != this.getXRot()) { diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java -index 4328b688b8ef5d44d4ca5501e090c943e8d598b3..5fe8838b4512ba6676a5fe7f3ab412ff87f07667 100644 +index 5b8e981632894b81307fdcf550064bf1047d3ea9..c802c0807897a5c162223b47be1eef43f8b2d58e 100644 --- a/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java @@ -367,13 +367,13 @@ public abstract class Mob extends LivingEntity implements Targeting { @@ -1833,10 +1833,10 @@ index 9442f58dff89ec843c321533965fbee2727d02f8..17abd085b3faf88e10a44a6c98af9968 if (this.fire) { diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 54ceb622d9588ccd8df3cba849571aa3fdbb364a..2bf34cf58f7de58b113e6f325d16b5bd13bc3dbf 100644 +index 6a7f03f08c8910215ac0e08363aa4c3d8b2f737c..2b5409e653be7d6b9c0529b512b2f7408b218011 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -1310,9 +1310,9 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -1315,9 +1315,9 @@ public abstract class Level implements LevelAccessor, AutoCloseable { } protected void tickBlockEntities() { @@ -1848,7 +1848,7 @@ index 54ceb622d9588ccd8df3cba849571aa3fdbb364a..2bf34cf58f7de58b113e6f325d16b5bd //this.timings.tileEntityPending.startTiming(); // Spigot // Purpur this.tickingBlockEntities = true; if (!this.pendingBlockEntityTickers.isEmpty()) { -@@ -1353,7 +1353,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -1358,7 +1358,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { //this.timings.tileEntityTick.stopTiming(); // Spigot // Purpur this.tickingBlockEntities = false; co.aikar.timings.TimingHistory.tileEntityTicks += this.blockEntityTickers.size(); // Paper @@ -1857,7 +1857,7 @@ index 54ceb622d9588ccd8df3cba849571aa3fdbb364a..2bf34cf58f7de58b113e6f325d16b5bd this.spigotConfig.currentPrimedTnt = 0; // Spigot } -@@ -1563,7 +1563,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -1568,7 +1568,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @Override public List getEntities(@Nullable Entity except, AABB box, Predicate predicate) { @@ -1866,7 +1866,7 @@ index 54ceb622d9588ccd8df3cba849571aa3fdbb364a..2bf34cf58f7de58b113e6f325d16b5bd List list = Lists.newArrayList(); ((ServerLevel)this).getEntityLookup().getEntities(except, box, list, predicate); // Paper - optimise this call return list; -@@ -1582,7 +1582,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -1587,7 +1587,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { } public void getEntities(EntityTypeTest filter, AABB box, Predicate predicate, List result, int limit) { @@ -1875,7 +1875,7 @@ index 54ceb622d9588ccd8df3cba849571aa3fdbb364a..2bf34cf58f7de58b113e6f325d16b5bd // Paper start - optimise this call //TODO use limit if (filter instanceof net.minecraft.world.entity.EntityType entityTypeTest) { -@@ -1841,7 +1841,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -1846,7 +1846,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { } public ProfilerFiller getProfiler() { diff --git a/patches/server/0279-Configurable-block-fall-damage-modifiers.patch b/patches/server/0279-Configurable-block-fall-damage-modifiers.patch index 8473d33e1..be1f6ac75 100644 --- a/patches/server/0279-Configurable-block-fall-damage-modifiers.patch +++ b/patches/server/0279-Configurable-block-fall-damage-modifiers.patch @@ -18,7 +18,7 @@ index ab11b017f0795f5ec8161a4831c463c780307eaa..8c6a8ab9e18bfbb015febea55e188ee9 @Override diff --git a/src/main/java/net/minecraft/world/level/block/Block.java b/src/main/java/net/minecraft/world/level/block/Block.java -index f70d462a42e5f4b1951cf015234c3b383d90bc9b..9e32ca4a0f94627bbd4d3cedd5be93bfeb8115ee 100644 +index b1ca9c192645a31c7f2be6aa039ce642ea3e65a4..2376a305bd160e83e3e8684f50c55498e42fe0d9 100644 --- a/src/main/java/net/minecraft/world/level/block/Block.java +++ b/src/main/java/net/minecraft/world/level/block/Block.java @@ -96,6 +96,10 @@ public class Block extends BlockBehaviour implements ItemLike { @@ -32,7 +32,7 @@ index f70d462a42e5f4b1951cf015234c3b383d90bc9b..9e32ca4a0f94627bbd4d3cedd5be93bf // Paper start public final boolean isDestroyable() { return io.papermc.paper.configuration.GlobalConfiguration.get().unsupportedSettings.allowPermanentBlockBreakExploits || -@@ -513,7 +517,7 @@ public class Block extends BlockBehaviour implements ItemLike { +@@ -521,7 +525,7 @@ public class Block extends BlockBehaviour implements ItemLike { } public void fallOn(Level world, BlockState state, BlockPos pos, Entity entity, float fallDistance) { diff --git a/patches/server/0285-Fire-Immunity-API.patch b/patches/server/0285-Fire-Immunity-API.patch index f40936298..745a79375 100644 --- a/patches/server/0285-Fire-Immunity-API.patch +++ b/patches/server/0285-Fire-Immunity-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fire Immunity API diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 386259c78d134814479427b0591f0c6f4d064c91..8625f37ed94191a2b4dac593e67a99431a8335cf 100644 +index 05f92d609a5d38b737093603a6831d6b7bcb8609..7d0aee4be3a240df18b47c583581ad9c7af5fdb6 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -422,6 +422,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -16,7 +16,7 @@ index 386259c78d134814479427b0591f0c6f4d064c91..8625f37ed94191a2b4dac593e67a9943 public void setOrigin(@javax.annotation.Nonnull Location location) { this.origin = location.toVector(); -@@ -1812,7 +1813,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -1816,7 +1817,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } public boolean fireImmune() { @@ -25,7 +25,7 @@ index 386259c78d134814479427b0591f0c6f4d064c91..8625f37ed94191a2b4dac593e67a9943 } public boolean causeFallDamage(float fallDistance, float damageMultiplier, DamageSource damageSource) { -@@ -2504,6 +2505,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -2508,6 +2509,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S nbttagcompound.putBoolean("Paper.FreezeLock", true); } // Paper end @@ -37,7 +37,7 @@ index 386259c78d134814479427b0591f0c6f4d064c91..8625f37ed94191a2b4dac593e67a9943 return nbttagcompound; } catch (Throwable throwable) { CrashReport crashreport = CrashReport.forThrowable(throwable, "Saving entity NBT"); -@@ -2651,6 +2657,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -2655,6 +2661,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S freezeLocked = nbt.getBoolean("Paper.FreezeLock"); } // Paper end @@ -50,7 +50,7 @@ index 386259c78d134814479427b0591f0c6f4d064c91..8625f37ed94191a2b4dac593e67a9943 } catch (Throwable throwable) { CrashReport crashreport = CrashReport.forThrowable(throwable, "Loading entity NBT"); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index bfd8f6d85272f3ecbb0f7fc5fc92d2055205c0e0..deab17ae3deca2e49f6c3005048ad10e597d7329 100644 +index ea5ac1f53309fdd30aad40fd4a092f297d76fd61..315c9be5841d55910500fcc225b5e42f271cf2cb 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java @@ -83,6 +83,16 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { diff --git a/patches/server/0286-Add-option-to-teleport-to-spawn-on-nether-ceiling-da.patch b/patches/server/0286-Add-option-to-teleport-to-spawn-on-nether-ceiling-da.patch index a4752d76d..34649b32b 100644 --- a/patches/server/0286-Add-option-to-teleport-to-spawn-on-nether-ceiling-da.patch +++ b/patches/server/0286-Add-option-to-teleport-to-spawn-on-nether-ceiling-da.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add option to teleport to spawn on nether ceiling damage diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 8625f37ed94191a2b4dac593e67a99431a8335cf..a9d5a9b9bff5631f3f458fba7d88c3fc642416b8 100644 +index 7d0aee4be3a240df18b47c583581ad9c7af5fdb6..251b336c1915f173c975fd0c568dfb04182fc91b 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -921,6 +921,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -925,6 +925,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S && this.level.paperConfig().environment.netherCeilingVoidDamageHeight.test(v -> this.getY() >= v) && (!(this instanceof Player player) || !player.getAbilities().invulnerable))) { // Paper end diff --git a/patches/server/0288-Log-skipped-entity-s-position.patch b/patches/server/0288-Log-skipped-entity-s-position.patch index 6d2a32222..cdac231c4 100644 --- a/patches/server/0288-Log-skipped-entity-s-position.patch +++ b/patches/server/0288-Log-skipped-entity-s-position.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Log skipped entity's position diff --git a/src/main/java/net/minecraft/world/entity/EntityType.java b/src/main/java/net/minecraft/world/entity/EntityType.java -index e5aa1bac908f947f2ed70a05194bf30b4cb55115..38845300ceb7092de4cd8e31ef8782728892f656 100644 +index b9aa6d6d22346a558fa84b4552958cdd6f977873..bab59399da0b515ad97918b824f9297b31c8de7c 100644 --- a/src/main/java/net/minecraft/world/entity/EntityType.java +++ b/src/main/java/net/minecraft/world/entity/EntityType.java -@@ -617,6 +617,12 @@ public class EntityType implements FeatureElement, EntityTypeT +@@ -623,6 +623,12 @@ public class EntityType implements FeatureElement, EntityTypeT entity.load(nbt); }, () -> { EntityType.LOGGER.warn("Skipping Entity with id {}", nbt.getString("id")); diff --git a/patches/server/0293-bonemealable-sugarcane-cactus-and-netherwart.patch b/patches/server/0293-bonemealable-sugarcane-cactus-and-netherwart.patch index 4f3034ed7..dff31886d 100644 --- a/patches/server/0293-bonemealable-sugarcane-cactus-and-netherwart.patch +++ b/patches/server/0293-bonemealable-sugarcane-cactus-and-netherwart.patch @@ -53,7 +53,7 @@ index 89c0006c06098e0d09a259ea8415d55b997367aa..a476f9a1eaa99b557962947149b6ee6e + // Purpur end } diff --git a/src/main/java/net/minecraft/world/level/block/NetherWartBlock.java b/src/main/java/net/minecraft/world/level/block/NetherWartBlock.java -index 7328764abb0790b389d396179db32f4a63bfe98a..9e47da91a5daed92b7326c84a88e619d2d981dd0 100644 +index 464a9d2e4c694d5d4aae6c2d3e8a5fad0111e910..13eb4dffd60ea7902d620f484df5e3f2c4688402 100644 --- a/src/main/java/net/minecraft/world/level/block/NetherWartBlock.java +++ b/src/main/java/net/minecraft/world/level/block/NetherWartBlock.java @@ -16,7 +16,7 @@ import net.minecraft.world.level.block.state.properties.IntegerProperty; @@ -66,7 +66,7 @@ index 7328764abb0790b389d396179db32f4a63bfe98a..9e47da91a5daed92b7326c84a88e619d public static final MapCodec CODEC = simpleCodec(NetherWartBlock::new); public static final int MAX_AGE = 3; @@ -78,5 +78,22 @@ public class NetherWartBlock extends BushBlock { - super.playerDestroy(world, player, pos, state, blockEntity, itemInHand, includeDrops); + super.playerDestroy(world, player, pos, state, blockEntity, itemInHand, includeDrops, dropExp); } } +