diff --git a/gradle.properties b/gradle.properties index f34eb8600..2bf2d4cc2 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,7 +2,7 @@ group = org.purpurmc.purpur version = 1.20-R0.1-SNAPSHOT mcVersion = 1.20 -paperCommit = 3fe0e32495a0a95a92a203321a3f414e9bb5a55f +paperCommit = 4b5f84712ba3afab4ab9184de91d85d070584e60 org.gradle.caching = true org.gradle.parallel = true diff --git a/patches/server/0002-Purpur-config-files.patch b/patches/server/0002-Purpur-config-files.patch index 37c264a95..0f4ab92d7 100644 --- a/patches/server/0002-Purpur-config-files.patch +++ b/patches/server/0002-Purpur-config-files.patch @@ -72,7 +72,7 @@ index 22884a2b148b9a5af8655bb754ebe73618218a83..4d9a796422ab595acc8b0158cf9dcd5b boolean flag1 = this.source.acceptsSuccess() && !this.silent; boolean flag2 = broadcastToOps && this.source.shouldInformAdmins() && !this.silent; diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -index 7f0b8cdae07e7e4745a099242a4f0c5914be8667..2dbb2a21942a4e2cb2d3e1fc77a487dd5bd3d964 100644 +index 9f422cbeaa52b3e6a0a27af4f8ad4ddb7808483f..44d76c80e67bc0d5ab28e26bfcf64e2534e627a5 100644 --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java @@ -218,6 +218,15 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface @@ -92,19 +92,19 @@ index 7f0b8cdae07e7e4745a099242a4f0c5914be8667..2dbb2a21942a4e2cb2d3e1fc77a487dd io.papermc.paper.brigadier.PaperBrigadierProviderImpl.INSTANCE.getClass(); // init PaperBrigadierProvider // Paper end diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 7771748a15c153352ce4874495f5fa7437aaf9a7..9669206231d90d371b6d55e8e6360eb9dd89c485 100644 +index 147d802d9207e358fdb2d1c7806fc2f634dcfd98..13176ad151b53047993938838b3763f85ae1aeff 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -175,6 +175,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { - } +@@ -176,6 +176,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { // Paper end + public final com.destroystokyo.paper.antixray.ChunkPacketBlockController chunkPacketBlockController; // Paper - Anti-Xray + public final org.purpurmc.purpur.PurpurWorldConfig purpurConfig; // Purpur public final co.aikar.timings.WorldTimingsHandler timings; // Paper public static BlockPos lastPhysicsProblem; // Spigot private org.spigotmc.TickLimiter entityLimiter; -@@ -275,6 +276,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { - 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) { // Paper +@@ -276,6 +277,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { + 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 + this.purpurConfig = new org.purpurmc.purpur.PurpurWorldConfig(((net.minecraft.world.level.storage.PrimaryLevelData) worlddatamutable).getLevelName(), env); // Purpur @@ -112,7 +112,7 @@ index 7771748a15c153352ce4874495f5fa7437aaf9a7..9669206231d90d371b6d55e8e6360eb9 this.world = new CraftWorld((ServerLevel) this, gen, biomeProvider, env); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 977ca71853dee58deed9e025942e7c6e103a40d2..4b5aea6617a11914ee15dc12a3393504d6f48a1d 100644 +index 7923d98fa98894986a600b8f81eeeb1b25a69c9a..81bfd0f9d297f22c24e5d23e4e63ca7e08a7c2d8 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -979,6 +979,7 @@ public final class CraftServer implements Server { @@ -139,7 +139,7 @@ index 977ca71853dee58deed9e025942e7c6e103a40d2..4b5aea6617a11914ee15dc12a3393504 this.overrideAllCommandBlockCommands = this.commandsConfiguration.getStringList("command-block-overrides").contains("*"); this.ignoreVanillaPermissions = this.commandsConfiguration.getBoolean("ignore-vanilla-permissions"); -@@ -2761,6 +2764,18 @@ public final class CraftServer implements Server { +@@ -2759,6 +2762,18 @@ public final class CraftServer implements Server { return CraftServer.this.console.paperConfigurations.createLegacyObject(CraftServer.this.console); } diff --git a/patches/server/0003-Purpur-client-support.patch b/patches/server/0003-Purpur-client-support.patch index d74d31c59..c59cc8e08 100644 --- a/patches/server/0003-Purpur-client-support.patch +++ b/patches/server/0003-Purpur-client-support.patch @@ -17,10 +17,10 @@ index 5fad40fa88f697108e42461c41012d5964ed7d75..a808c7bb143dc8c5f60bf8eacdb6e45f 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)); public io.papermc.paper.chunk.system.RegionizedPlayerChunkLoader.PlayerChunkLoaderData chunkLoader; diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 705181a7cc203b7f60d7038d1f341c2d52cec6b1..67a71b0d04cc3c8239dce26c7022b18a6ff3a58c 100644 +index ae82ab0e3d8e99f87ca8465fbcbb44b5ce18bf96..63d694edc25fcd33873fdbe7468a37b3be3f1b8d 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -3501,6 +3501,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -3502,6 +3502,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic private static final ResourceLocation CUSTOM_UNREGISTER = new ResourceLocation("unregister"); private static final ResourceLocation MINECRAFT_BRAND = new ResourceLocation("brand"); // Paper - Brand support @@ -28,7 +28,7 @@ index 705181a7cc203b7f60d7038d1f341c2d52cec6b1..67a71b0d04cc3c8239dce26c7022b18a @Override public void handleCustomPayload(ServerboundCustomPayloadPacket packet) { -@@ -3525,6 +3526,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -3526,6 +3527,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic ServerGamePacketListenerImpl.LOGGER.error("Couldn\'t unregister custom payload", ex); this.disconnect("Invalid payload UNREGISTER!", org.bukkit.event.player.PlayerKickEvent.Cause.INVALID_PAYLOAD); // Paper - kick event cause } @@ -43,10 +43,10 @@ index 705181a7cc203b7f60d7038d1f341c2d52cec6b1..67a71b0d04cc3c8239dce26c7022b18a try { byte[] data = new byte[packet.data.readableBytes()]; diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index be933acd3004e7e092be3688d0d9ee97b159ab5a..09d2f1586d19d0d5c9c78cde5263f30e7a7d0647 100644 +index 548eddde8b0558b780f672d321507cfcbac92558..12b4841d319836b2453552f2bb3aa4accc8f7bc3 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -3143,4 +3143,11 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -3144,4 +3144,11 @@ public class CraftPlayer extends CraftHumanEntity implements Player { return this.spigot; } // Spigot end diff --git a/patches/server/0005-Component-related-conveniences.patch b/patches/server/0005-Component-related-conveniences.patch index 76b81e87a..9596a9e86 100644 --- a/patches/server/0005-Component-related-conveniences.patch +++ b/patches/server/0005-Component-related-conveniences.patch @@ -36,7 +36,7 @@ index a808c7bb143dc8c5f60bf8eacdb6e45f73da69fb..15539499b5a0f16ad2d44c39c5b82487 public void displayClientMessage(Component message, boolean overlay) { this.sendSystemMessage(message, overlay); diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 731459d80748cdcc7cb9c6c9ede3c56f3f5a0060..b2f26b4b09d9bf2de273e1258f98c175c6d5900a 100644 +index 683b5d78f9e3dc34e40c54683f64be32317797ac..01a550086f21672c7e2e51e304bf8fcffd6451f0 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -1036,6 +1036,20 @@ public abstract class PlayerList { @@ -81,10 +81,10 @@ index 25a5a3b949a0eb632611355e74ccd4865be108ca..14fcfd7c1d3a62833978e163f4e0d6f9 return this.type().msgId(); } diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 81fdfe150845d57e82fb136af63424103197aebd..cf68705a5cfde9a1e5e3161c73e6308354e01043 100644 +index 92202262eff01ae3bbeff0e6ebdcf26ad613c169..ac795034342cabd85ccb62faf0adb10ee4ac1c00 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -3978,6 +3978,20 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -4011,6 +4011,20 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { return SlotAccess.NULL; } diff --git a/patches/server/0006-Ridables.patch b/patches/server/0006-Ridables.patch index 7215598c4..6e9729e76 100644 --- a/patches/server/0006-Ridables.patch +++ b/patches/server/0006-Ridables.patch @@ -34,7 +34,7 @@ index 7fe5d22b4c9eac832646780d4b5326edaca2979e..1f08b8e81fd6dfa850ead13f2d45adb8 this.profiler.push(() -> { 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 42d5b4ffc51da90a8f3bbec84e44ac2b0cb7b5ee..9168a02ede5b2fc924dbcf0063109f8e72d94d61 100644 +index 18aac3da3c88f33b1a71a5920a8daa27e9723913..a6acc178949f45c18009b5da2b8998cbcab2289b 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 { @@ -66,10 +66,10 @@ index 15539499b5a0f16ad2d44c39c5b824876fdf0951..632af791c9c4c9d2fa84f46b0c28bb80 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 67a71b0d04cc3c8239dce26c7022b18a6ff3a58c..a419308c2d71bf0e228aa7c591deb76c77eda894 100644 +index 63d694edc25fcd33873fdbe7468a37b3be3f1b8d..c825027b644cbc70f5142c4c826eab6061ad4d41 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -2804,6 +2804,8 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2805,6 +2805,8 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic ServerGamePacketListenerImpl.this.cserver.getPluginManager().callEvent(event); @@ -79,10 +79,10 @@ index 67a71b0d04cc3c8239dce26c7022b18a6ff3a58c..a419308c2d71bf0e228aa7c591deb76c 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 cf68705a5cfde9a1e5e3161c73e6308354e01043..23bc033aad04fc73a211e9b304cf6d49bce59c4e 100644 +index ac795034342cabd85ccb62faf0adb10ee4ac1c00..f5de46130df5b6057e8b3b8a46843428f600b9f1 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -363,7 +363,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -364,7 +364,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { private final Set tags; private final double[] pistonDeltas; private long pistonDeltasGameTime; @@ -91,7 +91,7 @@ index cf68705a5cfde9a1e5e3161c73e6308354e01043..23bc033aad04fc73a211e9b304cf6d49 private float eyeHeight; public boolean isInPowderSnow; public boolean wasInPowderSnow; -@@ -2877,6 +2877,13 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -2910,6 +2910,13 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { this.passengers = ImmutableList.copyOf(list); } @@ -105,7 +105,7 @@ index cf68705a5cfde9a1e5e3161c73e6308354e01043..23bc033aad04fc73a211e9b304cf6d49 this.gameEvent(GameEvent.ENTITY_MOUNT, entity); } return true; // CraftBukkit -@@ -2918,6 +2925,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -2951,6 +2958,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { return false; } // Spigot end @@ -120,7 +120,7 @@ index cf68705a5cfde9a1e5e3161c73e6308354e01043..23bc033aad04fc73a211e9b304cf6d49 if (this.passengers.size() == 1 && this.passengers.get(0) == entity) { this.passengers = ImmutableList.of(); } else { -@@ -4757,4 +4772,45 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -4790,4 +4805,45 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { return ((net.minecraft.server.level.ServerChunkCache) level.getChunkSource()).isPositionTicking(this); } // Paper end @@ -191,7 +191,7 @@ index 759713f7c646aaf1a918c87a2834a1d405385dad..c6a06e07f0b4bb29b5f4c70dfa53ff6d protected ParticleOptions getInkParticle() { return ParticleTypes.GLOW_SQUID_INK; diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index a6d730eaee1df1c5c61aa0f8731b8c055080a9a6..218eaf5f18162422b3376335e32f25d03c0655ec 100644 +index 67627bbf84f5aab2872f636b1dcb6728c8494147..57317c6b848c598155928aa3ade9957201155787 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -220,9 +220,9 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -2014,7 +2014,7 @@ index b05b560b7570e97bc234b75f26233909fcf575b3..71234b258157579d3a47064e7e299bb7 return "entity.minecraft.tropical_fish.predefined." + variant; } diff --git a/src/main/java/net/minecraft/world/entity/animal/Turtle.java b/src/main/java/net/minecraft/world/entity/animal/Turtle.java -index 9f7fa132997829e9a34aaae7aac7a6f7d529eee2..9022f5fa0ff94ccf2c46f96c541e77e1f82b81da 100644 +index 098ae9d8fa3e7cad8473a877decba771f6bd1b36..e8d4fa852f22b7de191dcf26b52f19cb81967fa0 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Turtle.java +++ b/src/main/java/net/minecraft/world/entity/animal/Turtle.java @@ -83,6 +83,23 @@ public class Turtle extends Animal { @@ -2262,7 +2262,7 @@ index 2682a49cd3948e0f80e2d7e58abcd3e6d8f7ac4e..ede5469f26f530beacfc655581e213d3 } diff --git a/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java b/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java -index 22eb0a8fc35baa04b34265b62aa29a71f3cc7343..815de16599638bdc4507d8d0bdf941bb6b2aeb92 100644 +index 203691417e208b9e023e5f8c3b76993db2747ba8..d4100aab149913a3146ce00f20baf15e2c3ecbfb 100644 --- a/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java +++ b/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java @@ -77,16 +77,65 @@ public class Frog extends Animal implements VariantHolder { @@ -2332,7 +2332,7 @@ index 22eb0a8fc35baa04b34265b62aa29a71f3cc7343..815de16599638bdc4507d8d0bdf941bb @Override protected Brain.Provider brainProvider() { return Brain.provider(MEMORY_TYPES, SENSOR_TYPES); -@@ -340,7 +389,7 @@ public class Frog extends Animal implements VariantHolder { +@@ -345,7 +394,7 @@ public class Frog extends Animal implements VariantHolder { return world.getBlockState(pos.below()).is(BlockTags.FROGS_SPAWNABLE_ON) && isBrightEnoughToSpawn(world, pos); } @@ -2684,7 +2684,7 @@ index e2935115c8d41af1d623da4f0d4f73de80386129..86029716d5538e28a8845375cc23d4bf } } diff --git a/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java b/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java -index c0f19138c6a00ce6ae837c972ae4af522ddd2895..81e2dbcba09c65ab4646fe1a8c4dccf7019a6acc 100644 +index a6d98f64910c816a5c11867d12698f5cd63c751a..76e4b87ffc470b7b205fba0a254668f15a394034 100644 --- a/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java +++ b/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java @@ -90,6 +90,23 @@ public class Sniffer extends Animal { @@ -5156,7 +5156,7 @@ index ea056babe2f8123f20dc608d8a636da1de634b8c..a820a00440510d77fa1839eef485f8ea + // 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 1ced79cf92fe0b01a42f097794dacc3ce74518f3..f759b1b25e3f4fbbb1dd0b222c70698e58c8062d 100644 +index a9a58f0bb19e034cffdafcc38fdc9003744a5d6c..be7e427deda9ac335b2b6ce5f8fbd036001b3468 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -563,6 +563,15 @@ public class CraftEventFactory { diff --git a/patches/server/0007-Configurable-entity-base-attributes.patch b/patches/server/0007-Configurable-entity-base-attributes.patch index bce2aad55..30a9780a8 100644 --- a/patches/server/0007-Configurable-entity-base-attributes.patch +++ b/patches/server/0007-Configurable-entity-base-attributes.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Configurable entity base attributes diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 23bc033aad04fc73a211e9b304cf6d49bce59c4e..9b692140796eb5296a0478fd18d9b33278be6f5d 100644 +index f5de46130df5b6057e8b3b8a46843428f600b9f1..a45f705caf08adf4ed1efbe237c592b5d557793f 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -155,7 +155,7 @@ import org.bukkit.plugin.PluginManager; +@@ -156,7 +156,7 @@ import org.bukkit.plugin.PluginManager; // CraftBukkit end public abstract class Entity implements Nameable, EntityAccess, CommandSource { @@ -34,7 +34,7 @@ index c6a06e07f0b4bb29b5f4c70dfa53ff6db2e4e6ea..730958dab7f074930cdccb88a89aa26e protected ParticleOptions getInkParticle() { return ParticleTypes.GLOW_SQUID_INK; diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 218eaf5f18162422b3376335e32f25d03c0655ec..9d9cb6e697c4f09badc3ca121f2ef987900d65a8 100644 +index 57317c6b848c598155928aa3ade9957201155787..03499f6142a77f75150fe3421cbff628598c6a3b 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -289,6 +289,7 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -427,7 +427,7 @@ index 71234b258157579d3a47064e7e299bb7fb90908f..7d02e552a27632939bb9c40a62f4e0df return "entity.minecraft.tropical_fish.predefined." + variant; } diff --git a/src/main/java/net/minecraft/world/entity/animal/Turtle.java b/src/main/java/net/minecraft/world/entity/animal/Turtle.java -index 9022f5fa0ff94ccf2c46f96c541e77e1f82b81da..39590707049a19f0763efa1083a1813b6f6fff9c 100644 +index e8d4fa852f22b7de191dcf26b52f19cb81967fa0..9aa764686433ad8d58191f96ab22d30154058af7 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Turtle.java +++ b/src/main/java/net/minecraft/world/entity/animal/Turtle.java @@ -100,6 +100,11 @@ public class Turtle extends Animal { @@ -743,7 +743,7 @@ index 86029716d5538e28a8845375cc23d4bf408073ff..973c5045137850905126db91238dd8e5 return createBaseHorseAttributes().add(Attributes.MAX_HEALTH, 15.0D).add(Attributes.MOVEMENT_SPEED, (double)0.2F); } diff --git a/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java b/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java -index 81e2dbcba09c65ab4646fe1a8c4dccf7019a6acc..549960b870a0f4b0fc1813b48a229773ccbab499 100644 +index 76e4b87ffc470b7b205fba0a254668f15a394034..e46751dacee17e81933345266049675d0b11ee49 100644 --- a/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java +++ b/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java @@ -107,6 +107,11 @@ public class Sniffer extends Animal { diff --git a/patches/server/0010-AFK-API.patch b/patches/server/0010-AFK-API.patch index 32c1d48b6..24cf4cbd6 100644 --- a/patches/server/0010-AFK-API.patch +++ b/patches/server/0010-AFK-API.patch @@ -79,7 +79,7 @@ index 632af791c9c4c9d2fa84f46b0c28bb8089930ebe..62fb638dc4d1f88ff6ddb48bad891b77 return this.stats; } diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index a419308c2d71bf0e228aa7c591deb76c77eda894..06046289cdad2413b065ea2515c852adeeeb2edb 100644 +index c825027b644cbc70f5142c4c826eab6061ad4d41..da209820b52dfef1756f72b3c5cc77fe1239bd6d 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -340,6 +340,20 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic @@ -134,7 +134,7 @@ index a419308c2d71bf0e228aa7c591deb76c77eda894..06046289cdad2413b065ea2515c852ad } // Paper start - optimise out extra getCubes -@@ -1596,6 +1618,8 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -1597,6 +1619,8 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic this.lastYaw = to.getYaw(); this.lastPitch = to.getPitch(); @@ -224,7 +224,7 @@ index 3b959f42d958bf0f426853aee56753d6c455fcdb..d17abb283ea818244df0379d6b57fc63 if (range < 0.0D || d < range * range) { return true; diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 09d2f1586d19d0d5c9c78cde5263f30e7a7d0647..fea8f974c5e35b0f5c515a4c7f033482e54979c6 100644 +index 12b4841d319836b2453552f2bb3aa4accc8f7bc3..3998281dce08288167456fe7257e5a6308746cca 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -501,10 +501,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @@ -244,7 +244,7 @@ index 09d2f1586d19d0d5c9c78cde5263f30e7a7d0647..fea8f974c5e35b0f5c515a4c7f033482 for (ServerPlayer player : (List) server.getHandle().players) { if (player.getBukkitEntity().canSee(this)) { player.connection.send(new ClientboundPlayerInfoUpdatePacket(ClientboundPlayerInfoUpdatePacket.Action.UPDATE_DISPLAY_NAME, this.getHandle())); -@@ -3149,5 +3154,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -3150,5 +3155,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player { public boolean usesPurpurClient() { return getHandle().purpurClient; } @@ -290,7 +290,7 @@ index 687710a138edd8492e58aa026872851d00466508..d11442476371fefe6549654c97825a01 public static boolean enderChestSixRows = false; public static boolean enderChestPermissionRows = false; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 2bd21bcd94e63048f29bf7e833fabb0751308447..835795fda996469b365f7513a393593af3792d77 100644 +index d16e7c78f6da209a94ab0fd95fb8e178b1a61609..43a49703a2a17c1fa2b623930b901ce60e2549b6 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -92,6 +92,24 @@ public class PurpurWorldConfig { diff --git a/patches/server/0011-Bring-back-server-name.patch b/patches/server/0011-Bring-back-server-name.patch index 411b3929b..f01feceea 100644 --- a/patches/server/0011-Bring-back-server-name.patch +++ b/patches/server/0011-Bring-back-server-name.patch @@ -17,10 +17,10 @@ index 818289e831e3dad29345c43265e2efd7689bc500..1ea3012995c738c67b31e997c138f824 public final boolean spawnNpcs = this.get("spawn-npcs", true); public final boolean pvp = this.get("pvp", true); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 4b5aea6617a11914ee15dc12a3393504d6f48a1d..7df709528c8c1d743d0ce1711a7acde4b5c4abb8 100644 +index 81bfd0f9d297f22c24e5d23e4e63ca7e08a7c2d8..a11723890dccee913e3c50e46e18d04afe2966e6 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -2989,4 +2989,11 @@ public final class CraftServer implements Server { +@@ -2987,4 +2987,11 @@ public final class CraftServer implements Server { } // Paper end diff --git a/patches/server/0014-Lagging-threshold.patch b/patches/server/0014-Lagging-threshold.patch index a7ac02588..01cf98d84 100644 --- a/patches/server/0014-Lagging-threshold.patch +++ b/patches/server/0014-Lagging-threshold.patch @@ -25,10 +25,10 @@ index b8ea1f9aa3a486033b6f3d0d150aa21ab6130d53..75d15b7c157fea129a730a0f48ae9ea7 } // Spigot end diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 7df709528c8c1d743d0ce1711a7acde4b5c4abb8..447cf06cb98d7b1d8399a2bfa76c580e6621a17b 100644 +index a11723890dccee913e3c50e46e18d04afe2966e6..0f28b2c5b92a6530ebfccbced082a9cf221b3938 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -2995,5 +2995,10 @@ public final class CraftServer implements Server { +@@ -2993,5 +2993,10 @@ public final class CraftServer implements Server { public String getServerName() { return this.getProperties().serverName; } diff --git a/patches/server/0016-Player-invulnerabilities.patch b/patches/server/0016-Player-invulnerabilities.patch index aeebcaccf..3b950727a 100644 --- a/patches/server/0016-Player-invulnerabilities.patch +++ b/patches/server/0016-Player-invulnerabilities.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Player invulnerabilities diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 68c163b6817ba4dd6ecd6b1fc82e37e5549d9569..dcc4a25a8c7a7809222cf585901f057c64946a68 100644 +index 62fb638dc4d1f88ff6ddb48bad891b77baf5443c..29f4b1142269675a76401ba2d3ae965839db4e3f 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -278,6 +278,7 @@ public class ServerPlayer extends Player { @@ -82,10 +82,10 @@ index 68c163b6817ba4dd6ecd6b1fc82e37e5549d9569..dcc4a25a8c7a7809222cf585901f057c public Scoreboard getScoreboard() { return this.getBukkitEntity().getScoreboard().getHandle(); diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 06046289cdad2413b065ea2515c852adeeeb2edb..863ac0559e8ec3ebad355a4863277ff6ee2228f0 100644 +index da209820b52dfef1756f72b3c5cc77fe1239bd6d..95578d07025c859ce9b85651d8fd77a79b648266 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -2088,12 +2088,21 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2089,12 +2089,21 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic @Override public void handleResourcePackResponse(ServerboundResourcePackPacket packet) { PacketUtils.ensureRunningOnSameThread(packet, this, this.player.serverLevel()); @@ -108,7 +108,7 @@ index 06046289cdad2413b065ea2515c852adeeeb2edb..863ac0559e8ec3ebad355a4863277ff6 this.cserver.getPluginManager().callEvent(new PlayerResourcePackStatusEvent(this.getCraftPlayer(), packStatus)); // CraftBukkit // Paper end diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index e73f0615ab8320da2a993d7dae0601d8e1536c58..4729f40c5420f80d4c6ba25a7745c4c51a327fbd 100644 +index 1ad17a1536540c393e52ec0b0fb4593cf4a16f3a..2829e81ac79b515160b26e414c671552c1f7beea 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -976,6 +976,8 @@ public abstract class PlayerList { @@ -121,10 +121,10 @@ index e73f0615ab8320da2a993d7dae0601d8e1536c58..4729f40c5420f80d4c6ba25a7745c4c5 return entityplayer1; } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index fea8f974c5e35b0f5c515a4c7f033482e54979c6..cf82afb7949a0031c1b656149e583c4075362211 100644 +index 3998281dce08288167456fe7257e5a6308746cca..c09bbe22c13f3f05e38e46cf4d9d1e94141623f4 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -3169,5 +3169,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -3170,5 +3170,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player { public void resetIdleTimer() { getHandle().resetLastActionTime(); } @@ -146,7 +146,7 @@ index fea8f974c5e35b0f5c515a4c7f033482e54979c6..cf82afb7949a0031c1b656149e583c40 // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 7052ca0128562fb59c3acc2ef354092e349cbffb..724ceea7198e540c391e0c5ad02817033bec694c 100644 +index 43a49703a2a17c1fa2b623930b901ce60e2549b6..3093fffeaebec9f8aa7c013bb84113ab5148159c 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -97,6 +97,8 @@ public class PurpurWorldConfig { diff --git a/patches/server/0018-Alternative-Keepalive-Handling.patch b/patches/server/0018-Alternative-Keepalive-Handling.patch index ab7b21865..5640e2a24 100644 --- a/patches/server/0018-Alternative-Keepalive-Handling.patch +++ b/patches/server/0018-Alternative-Keepalive-Handling.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Alternative Keepalive Handling diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 585a712467ee29c32ef8e59cc800f2a5bfae1db6..6ad34d0de6c5637f8c11c77ea8baee5ba040ff40 100644 +index 95578d07025c859ce9b85651d8fd77a79b648266..f45577dd5156c93902744e6914f1d4aff7a2b138 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -263,6 +263,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic @@ -38,7 +38,7 @@ index 585a712467ee29c32ef8e59cc800f2a5bfae1db6..6ad34d0de6c5637f8c11c77ea8baee5b if (this.keepAlivePending) { if (!this.processedDisconnect && elapsedTime >= KEEPALIVE_LIMIT) { // check keepalive limit, don't fire if already disconnected ServerGamePacketListenerImpl.LOGGER.warn("{} was kicked due to keepalive timeout!", this.player.getScoreboardName()); // more info -@@ -3486,6 +3502,16 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -3487,6 +3503,16 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic @Override public void handleKeepAlive(ServerboundKeepAlivePacket packet) { diff --git a/patches/server/0024-Zombie-horse-naturally-spawn.patch b/patches/server/0024-Zombie-horse-naturally-spawn.patch index 12747948b..e69e75b1d 100644 --- a/patches/server/0024-Zombie-horse-naturally-spawn.patch +++ b/patches/server/0024-Zombie-horse-naturally-spawn.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Zombie horse naturally spawn diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 9168a02ede5b2fc924dbcf0063109f8e72d94d61..e2b1433034b1ab9bad821983515a37fd12ba4b37 100644 +index a6acc178949f45c18009b5da2b8998cbcab2289b..2cd6b08ef5d8a67175c86d33e938c088dd053a82 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -874,10 +874,18 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -955,10 +955,18 @@ public class ServerLevel extends Level implements WorldGenLevel { boolean flag1 = this.getGameRules().getBoolean(GameRules.RULE_DOMOBSPAWNING) && this.random.nextDouble() < (double) difficultydamagescaler.getEffectiveDifficulty() * this.paperConfig().entities.spawning.skeletonHorseThunderSpawnChance.or(0.01D) && !this.getBlockState(blockposition.below()).is(Blocks.LIGHTNING_ROD); // Paper if (flag1) { diff --git a/patches/server/0031-Add-option-to-set-armorstand-step-height.patch b/patches/server/0031-Add-option-to-set-armorstand-step-height.patch index 2e752c709..1f1e27160 100644 --- a/patches/server/0031-Add-option-to-set-armorstand-step-height.patch +++ b/patches/server/0031-Add-option-to-set-armorstand-step-height.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add option to set armorstand step height diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 9b692140796eb5296a0478fd18d9b33278be6f5d..43d5b06a87909b544d151b238f7479c95c1ac1b2 100644 +index a45f705caf08adf4ed1efbe237c592b5d557793f..c8fea6ecc4507615d60f080be5707b16211c32f3 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -321,7 +321,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -322,7 +322,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { public double xOld; public double yOld; public double zOld; @@ -30,7 +30,7 @@ index 8a8b9e8983be1acad66ad875c901be5bbdeabb1f..09912c11bad7dc639b8afe8b0041a5fb if (!this.canTick) { if (this.noTickPoseDirty) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 7dd253bdce33673b4f748c47c137f14af5054cca..b957311ec505d5472492ecf49d33e86a2d62bcad 100644 +index 7d0d29f9934fc4b7a4227cecd223f145e3502c83..2ad780f84f5717f9f171540939b543820c4867ee 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -92,6 +92,11 @@ public class PurpurWorldConfig { diff --git a/patches/server/0053-Configurable-void-damage-height-and-damage.patch b/patches/server/0053-Configurable-void-damage-height-and-damage.patch index d5f010b63..7538cc95b 100644 --- a/patches/server/0053-Configurable-void-damage-height-and-damage.patch +++ b/patches/server/0053-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 43d5b06a87909b544d151b238f7479c95c1ac1b2..ba7901f72f97275ffac8d30e7b6c39f1f31dad37 100644 +index c8fea6ecc4507615d60f080be5707b16211c32f3..f710e0ba731071570bf84467e5dc884d4b4ca7dd 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -834,7 +834,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -867,7 +867,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { public void checkBelowWorld() { // Paper start - Configurable nether ceiling damage @@ -18,7 +18,7 @@ index 43d5b06a87909b544d151b238f7479c95c1ac1b2..ba7901f72f97275ffac8d30e7b6c39f1 && (!(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 7d9ecae23415e8f06831bc5bf4fae9137d43eb12..6e0250d4ae4afb73d8f6f613ec014d38552ffa6d 100644 +index 95c7c83e1b1e9f1667bd4b12c787d5cb18ab9734..7cdbf5e9a10ae4a1f846c39b02af61c73d4ee0a5 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -2481,7 +2481,7 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -31,7 +31,7 @@ index 7d9ecae23415e8f06831bc5bf4fae9137d43eb12..6e0250d4ae4afb73d8f6f613ec014d38 protected void updateSwingTime() { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 4c73bd5aae5587e1d196a7b63fe84319cad0853d..645a8a35a9e165f656c9a2581a2325cf2598f1b4 100644 +index 5b50a6c932c1a963627ffe5083aa78831ee8d3a6..59ea4e7f8bf404f239f329fda94b2c526245fb50 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -100,10 +100,14 @@ public class PurpurWorldConfig { diff --git a/patches/server/0054-Add-canSaveToDisk-to-Entity.patch b/patches/server/0054-Add-canSaveToDisk-to-Entity.patch index 13e769a1c..8eb0dd9da 100644 --- a/patches/server/0054-Add-canSaveToDisk-to-Entity.patch +++ b/patches/server/0054-Add-canSaveToDisk-to-Entity.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add canSaveToDisk to Entity diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index ba7901f72f97275ffac8d30e7b6c39f1f31dad37..0447ed23dd3e09fb887b7d7911846030a4e7fb45 100644 +index f710e0ba731071570bf84467e5dc884d4b4ca7dd..26cb7466872b6e5b503cbaec933a7de18c928422 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -473,6 +473,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -474,6 +474,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { return false; } @@ -36,17 +36,17 @@ index 38800a318f675ab11eeba17cb1966e9a294c69e1..a20017a6086421061ee13df9cf37e08e @Override diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/EntityStorage.java b/src/main/java/net/minecraft/world/level/chunk/storage/EntityStorage.java -index 0ec0be22f7292d57c40da6f1f4575bdebf8dbd09..f1d19cbe165a190cac325e646c7e8080b59cdd54 100644 +index 060e064625969610539dbf969ce773b877a7c579..32cd9df202704cdfb8fa06aaf0e738d483054feb 100644 --- a/src/main/java/net/minecraft/world/level/chunk/storage/EntityStorage.java +++ b/src/main/java/net/minecraft/world/level/chunk/storage/EntityStorage.java -@@ -111,6 +111,7 @@ public class EntityStorage implements EntityPersistentStorage { - +@@ -112,6 +112,7 @@ public class EntityStorage implements EntityPersistentStorage { ListTag listTag = new ListTag(); + final java.util.Map, Integer> savedEntityCounts = new java.util.HashMap<>(); // Paper entities.forEach((entity) -> { // diff here: use entities parameter + if (!entity.canSaveToDisk()) return; // Purpur - CompoundTag compoundTag = new CompoundTag(); - if (entity.save(compoundTag)) { - listTag.add(compoundTag); + // Paper start + final EntityType entityType = entity.getType(); + final int saveLimit = level.paperConfig().chunks.entityPerChunkSaveLimit.getOrDefault(entityType, -1); diff --git a/src/main/java/org/purpurmc/purpur/entity/DolphinSpit.java b/src/main/java/org/purpurmc/purpur/entity/DolphinSpit.java index b436fd92e2db17f6a2ee4118a7a51e324b567b46..fe14721ac16e702850a778b7481e306ed4bdfd74 100644 --- a/src/main/java/org/purpurmc/purpur/entity/DolphinSpit.java diff --git a/patches/server/0057-Mending-mends-most-damages-equipment-first.patch b/patches/server/0057-Mending-mends-most-damages-equipment-first.patch index a975db146..5403a3ece 100644 --- a/patches/server/0057-Mending-mends-most-damages-equipment-first.patch +++ b/patches/server/0057-Mending-mends-most-damages-equipment-first.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Mending mends most damages equipment first diff --git a/src/main/java/net/minecraft/world/entity/ExperienceOrb.java b/src/main/java/net/minecraft/world/entity/ExperienceOrb.java -index 673327af0f77aeac0d704b0fb6bebebc76a3c966..45af026f572a67061ce63229913366f719cf0a5f 100644 +index eca634792d2a7cc649675e3394e84dbaf1453905..2bd576849403bc2cfae298c2210616192ddc38db 100644 --- a/src/main/java/net/minecraft/world/entity/ExperienceOrb.java +++ b/src/main/java/net/minecraft/world/entity/ExperienceOrb.java -@@ -329,7 +329,7 @@ public class ExperienceOrb extends Entity { +@@ -331,7 +331,7 @@ public class ExperienceOrb extends Entity { } private int repairPlayerItems(Player player, int amount) { @@ -18,10 +18,10 @@ index 673327af0f77aeac0d704b0fb6bebebc76a3c966..45af026f572a67061ce63229913366f7 if (entry != null) { ItemStack itemstack = (ItemStack) entry.getValue(); diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index 103ad5f373a59fadb4783892579f3e681a8fd596..62f70729e92c63b0fc060b0f1eadeb50c298d32f 100644 +index b367ec1feaccbd67e9e28c0d0515e163f37135fe..7de8d028ff8a6099b207e444d8173e5fc09d4ed2 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java -@@ -574,6 +574,16 @@ public final class ItemStack { +@@ -578,6 +578,16 @@ public final class ItemStack { return this.isDamageableItem() && this.getDamageValue() > 0; } @@ -73,7 +73,7 @@ index ecf640b00007a386290f8dfe9935a8aa610079fd..2048899f8e4c8211e8dde0d11148d647 public static Map.Entry getRandomItemWith(Enchantment enchantment, LivingEntity entity) { return getRandomItemWith(enchantment, entity, (stack) -> { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 0427450b37f89d6eaf90a80be1d4c8db37475b3b..3682ec40e65d1d8db52db5db53238a86b01ecaf3 100644 +index a91d8e9ca70b2fb89765c1b09d62583fbcd1e61e..ce713dc6a05be884cea7141859f1c31a30adf24d 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -97,6 +97,7 @@ public class PurpurWorldConfig { diff --git a/patches/server/0058-Add-5-second-tps-average-in-tps.patch b/patches/server/0058-Add-5-second-tps-average-in-tps.patch index f73d56132..b2c87910a 100644 --- a/patches/server/0058-Add-5-second-tps-average-in-tps.patch +++ b/patches/server/0058-Add-5-second-tps-average-in-tps.patch @@ -69,10 +69,10 @@ index d9f3613381cf7166e0b504a4370420e1d0fadc4e..6e5bfabe11da547f28b1d56e5a279ae5 lagging = recentTps[0] < org.purpurmc.purpur.PurpurConfig.laggingThreshold; // Purpur tickSection = curTime; diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 447cf06cb98d7b1d8399a2bfa76c580e6621a17b..3f5ed031272c358f19e7ec3d7bf6d1a527d77f25 100644 +index 0f28b2c5b92a6530ebfccbced082a9cf221b3938..7afc14b00a38bd83f5ec6dc12bf86bc7ee6574a2 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -2718,6 +2718,7 @@ public final class CraftServer implements Server { +@@ -2716,6 +2716,7 @@ public final class CraftServer implements Server { @Override public double[] getTPS() { return new double[] { diff --git a/patches/server/0059-Implement-elytra-settings.patch b/patches/server/0059-Implement-elytra-settings.patch index a27c2d224..564e3c3a1 100644 --- a/patches/server/0059-Implement-elytra-settings.patch +++ b/patches/server/0059-Implement-elytra-settings.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Implement elytra settings diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 6e0250d4ae4afb73d8f6f613ec014d38552ffa6d..851bffca44dce8680a34bd5e862c1c0794806021 100644 +index 7cdbf5e9a10ae4a1f846c39b02af61c73d4ee0a5..dc143439cca2940ac391c18dae652dbe1214e389 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3504,7 +3504,16 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -54,10 +54,10 @@ index 82b0bda3e35ec2157a477e1a17b2b46baadc97d9..0fc45b1048a1c4e0dc2bd1ae0437eecb itemStack.shrink(1); } else ((net.minecraft.server.level.ServerPlayer) user).getBukkitEntity().updateInventory(); diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index 62f70729e92c63b0fc060b0f1eadeb50c298d32f..961aca57888de6fe7ea249c2a7596c9863c1effe 100644 +index 7de8d028ff8a6099b207e444d8173e5fc09d4ed2..0addb98459b9de0fc954531f8c09b0af73abcc45 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java -@@ -603,7 +603,7 @@ public final class ItemStack { +@@ -607,7 +607,7 @@ public final class ItemStack { int j; if (amount > 0) { @@ -66,7 +66,7 @@ index 62f70729e92c63b0fc060b0f1eadeb50c298d32f..961aca57888de6fe7ea249c2a7596c98 int k = 0; for (int l = 0; j > 0 && l < amount; ++l) { -@@ -658,6 +658,12 @@ public final class ItemStack { +@@ -662,6 +662,12 @@ public final class ItemStack { if (this.hurt(amount, entity.getRandom(), entity /*instanceof ServerPlayer ? (ServerPlayer) entity : null*/)) { // Paper - pass LivingEntity for EntityItemDamageEvent breakCallback.accept(entity); Item item = this.getItem(); @@ -99,7 +99,7 @@ index 8078f127ff4b6e0aafb5804b9c02e237f79445b5..06c2f30b77a2c8aecc65e0c305f643d5 entityhuman.startAutoSpinAttack(20); if (entityhuman.onGround()) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 3682ec40e65d1d8db52db5db53238a86b01ecaf3..999f31194d694961582df1b998fbcefc5dc7d26f 100644 +index ce713dc6a05be884cea7141859f1c31a30adf24d..c652972d4018938564ae938ee8057f84518a6cc1 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -114,6 +114,19 @@ public class PurpurWorldConfig { diff --git a/patches/server/0069-Add-allow-water-in-end-world-option.patch b/patches/server/0069-Add-allow-water-in-end-world-option.patch index 3f15651ef..462cbf64c 100644 --- a/patches/server/0069-Add-allow-water-in-end-world-option.patch +++ b/patches/server/0069-Add-allow-water-in-end-world-option.patch @@ -27,10 +27,10 @@ index 578c3db52dda4c169b5ea615a4ce4a79f15a4cad..0bd98b802f246a3f6061f716d470a479 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 9669206231d90d371b6d55e8e6360eb9dd89c485..8673d325bd866704ae90ac31eb54f78097eac952 100644 +index 13176ad151b53047993938838b3763f85ae1aeff..6e3d1122a2b7cdb91115bb8ed6c1578fa02ab58b 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -1468,4 +1468,14 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -1471,4 +1471,14 @@ public abstract class Level implements LevelAccessor, AutoCloseable { return null; } // Paper end diff --git a/patches/server/0071-Entity-lifespan.patch b/patches/server/0071-Entity-lifespan.patch index 2a3c4a6c3..a04a1ceb4 100644 --- a/patches/server/0071-Entity-lifespan.patch +++ b/patches/server/0071-Entity-lifespan.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Entity lifespan diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 0e616bc3a09fcab0d5d3b6243c2e1d39223a2de1..00a41647b127552c511a16a88e1e8208423b645b 100644 +index 0b465c5525655014a45a7555d7a0b1adc12fdd99..5ef66bdf6a382cc3b6774e472b34b8ac530b6e31 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -2856,6 +2856,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2857,6 +2857,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic AABB axisalignedbb = entity.getBoundingBox(); if (axisalignedbb.distanceToSqr(this.player.getEyePosition()) < ServerGamePacketListenerImpl.MAX_INTERACTION_DISTANCE) { @@ -94,7 +94,7 @@ index ef290c4f243e07a15a489ddd7461b4f182cb2345..9f68247ffc31b67e1eb66d3b6449c44f } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 70576507db0a84b209729cdd2efa595bd0450042..af6cae292b86b7bfca06f869f22f1b4d40fdd81b 100644 +index c85beb39a9881ed5a5b9938e37b85ab4f2733cea..74a495010f4fbdf549fbc1dc092703d788dcdb7d 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -127,6 +127,11 @@ public class PurpurWorldConfig { 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 429f9f7ba..51f0ea8db 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 0447ed23dd3e09fb887b7d7911846030a4e7fb45..0c18b2b3fcb64aa8c606e0823f365435929fe6f8 100644 +index 26cb7466872b6e5b503cbaec933a7de18c928422..1a96037e195b7689db52a0991e644f500b8a9663 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -4292,6 +4292,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -4325,6 +4325,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { 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 da0049a21..c6c7afdb0 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 0c18b2b3fcb64aa8c606e0823f365435929fe6f8..68233db015138b0a615a65eac8c11afc42f7a1c6 100644 +index 1a96037e195b7689db52a0991e644f500b8a9663..54b1404fed0df43795c24f2f84306fe7aceb7c6d 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -2999,7 +2999,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -3032,7 +3032,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { public void handleInsidePortal(BlockPos pos) { if (this.isOnPortalCooldown()) { this.setPortalCooldown(); @@ -17,7 +17,7 @@ index 0c18b2b3fcb64aa8c606e0823f365435929fe6f8..68233db015138b0a615a65eac8c11afc if (!this.level().isClientSide && !pos.equals(this.portalEntrancePos)) { this.portalEntrancePos = pos.immutable(); } -@@ -3695,7 +3695,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -3728,7 +3728,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { } public boolean canChangeDimensions() { @@ -27,7 +27,7 @@ index 0c18b2b3fcb64aa8c606e0823f365435929fe6f8..68233db015138b0a615a65eac8c11afc public float getBlockExplosionResistance(Explosion explosion, BlockGetter world, BlockPos pos, BlockState blockState, FluidState fluidState, float max) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 506a61275a5baf285a061afb92ea8bd5fd22b541..aa723588cb7209ae44bb6796c8d78c168efc6b08 100644 +index 99ce124edf3cb3e747785675c17bd831bf68fc74..a36f35990fe315dbb87c453b501892009acaa342 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -100,6 +100,7 @@ public class PurpurWorldConfig { diff --git a/patches/server/0089-Allow-toggling-special-MobSpawners-per-world.patch b/patches/server/0089-Allow-toggling-special-MobSpawners-per-world.patch index 3065a3cca..e2eb651f0 100644 --- a/patches/server/0089-Allow-toggling-special-MobSpawners-per-world.patch +++ b/patches/server/0089-Allow-toggling-special-MobSpawners-per-world.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Allow toggling special MobSpawners per world In vanilla, these are all hardcoded on for world type 0 (overworld) and hardcoded off for every other world type. Default config behaviour matches this. diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index e2b1433034b1ab9bad821983515a37fd12ba4b37..854e6e73a7fa9c2cd4f0b9beadbff6427c8346e5 100644 +index 2cd6b08ef5d8a67175c86d33e938c088dd053a82..c8c52f0c430ed956f82a7554ec1cf5d44c842383 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -582,7 +582,24 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -663,7 +663,24 @@ public class ServerLevel extends Level implements WorldGenLevel { this.dragonParts = new Int2ObjectOpenHashMap(); this.tickTime = flag1; this.server = minecraftserver; @@ -59,7 +59,7 @@ index 5d199fe497bd852827d3d18fb7566a09e70331a3..6cd8a50289a6404441e9e5e08d82d2eb if (NaturalSpawner.isSpawnPositionOk(SpawnPlacements.Type.ON_GROUND, world, blockposition2, EntityType.WANDERING_TRADER)) { blockposition1 = blockposition2; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 1e95bf6efe93c22f135fb15c4600c181580daf0a..82b4e05b4f4ad23bc98e81385bf0e715bf8cda50 100644 +index af5bc07bf5598dc4ecb88b05e36d0ce232441b1e..b707a91e9d73e39708f9a5eec579a6d20fb95e8c 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -71,6 +71,12 @@ public class PurpurWorldConfig { diff --git a/patches/server/0096-Configurable-daylight-cycle.patch b/patches/server/0096-Configurable-daylight-cycle.patch index 36fd47b2f..951568fcb 100644 --- a/patches/server/0096-Configurable-daylight-cycle.patch +++ b/patches/server/0096-Configurable-daylight-cycle.patch @@ -31,7 +31,7 @@ index 6e5bfabe11da547f28b1d56e5a279ae5d9bb3c54..12a5a8c06dc636fbd5008b8f71d05cfa } ServerPlayer entityplayer = (ServerPlayer) entityhuman; diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 854e6e73a7fa9c2cd4f0b9beadbff6427c8346e5..3b512beac50bc5a2405ca3287b08e7ffcb620313 100644 +index c8c52f0c430ed956f82a7554ec1cf5d44c842383..baf3924a522793a7584ba3ccf6b57e90a9b8a64b 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -214,6 +214,8 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -43,7 +43,7 @@ index 854e6e73a7fa9c2cd4f0b9beadbff6427c8346e5..3b512beac50bc5a2405ca3287b08e7ff private final RandomSequences randomSequences; public long lastMidTickExecuteFailure; // Paper - execute chunk tasks mid tick -@@ -669,6 +671,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -750,6 +752,7 @@ public class ServerLevel extends Level implements WorldGenLevel { this.chunkTaskScheduler = new io.papermc.paper.chunk.system.scheduling.ChunkTaskScheduler(this, io.papermc.paper.chunk.system.scheduling.ChunkTaskScheduler.workerThreads); // Paper - rewrite chunk system this.entityLookup = new io.papermc.paper.chunk.system.entity.EntityLookup(this, new EntityCallbacks()); // Paper - rewrite chunk system @@ -51,7 +51,7 @@ index 854e6e73a7fa9c2cd4f0b9beadbff6427c8346e5..3b512beac50bc5a2405ca3287b08e7ff } // Paper start -@@ -838,6 +841,13 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -919,6 +922,13 @@ public class ServerLevel extends Level implements WorldGenLevel { this.serverLevelData.setGameTime(i); this.serverLevelData.getScheduledEvents().tick(this.server, i); if (this.levelData.getGameRules().getBoolean(GameRules.RULE_DAYLIGHT)) { @@ -65,7 +65,7 @@ index 854e6e73a7fa9c2cd4f0b9beadbff6427c8346e5..3b512beac50bc5a2405ca3287b08e7ff this.setDayTime(this.levelData.getDayTime() + 1L); } -@@ -846,7 +856,21 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -927,7 +937,21 @@ public class ServerLevel extends Level implements WorldGenLevel { public void setDayTime(long timeOfDay) { this.serverLevelData.setDayTime(timeOfDay); @@ -88,7 +88,7 @@ index 854e6e73a7fa9c2cd4f0b9beadbff6427c8346e5..3b512beac50bc5a2405ca3287b08e7ff public void tickCustomSpawners(boolean spawnMonsters, boolean spawnAnimals) { Iterator iterator = this.customSpawners.iterator(); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 8c3a81393bb2d0ff251277cf81d5d0b8276b3628..11938cd9c6196f5cc89a13ad7a81d4e4fa8d0879 100644 +index 00e9d0d1dba377b7af19463c6780708e837ee397..5027da645940c9747f58c7276fe67742d34ffe84 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -124,6 +124,13 @@ public class PurpurWorldConfig { diff --git a/patches/server/0101-Add-adjustable-breeding-cooldown-to-config.patch b/patches/server/0101-Add-adjustable-breeding-cooldown-to-config.patch index dd30ef04c..0f5a1c45b 100644 --- a/patches/server/0101-Add-adjustable-breeding-cooldown-to-config.patch +++ b/patches/server/0101-Add-adjustable-breeding-cooldown-to-config.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add adjustable breeding cooldown to config diff --git a/src/main/java/net/minecraft/world/entity/animal/Animal.java b/src/main/java/net/minecraft/world/entity/animal/Animal.java -index 80598d4e679999138f6aca9f6f847e9509fa68da..e3a0a2914db92c95c894174e3815e3eca8d70826 100644 +index 7ec2ce1c9aa9a78b03770adc0c2faa28cdbe60f2..975eaac5d1e6cbf40454a0bebcea0ee4451c0cb2 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Animal.java +++ b/src/main/java/net/minecraft/world/entity/animal/Animal.java @@ -151,7 +151,7 @@ public abstract class Animal extends AgeableMob { @@ -42,10 +42,10 @@ index 80598d4e679999138f6aca9f6f847e9509fa68da..e3a0a2914db92c95c894174e3815e3ec org.bukkit.event.entity.EntityBreedEvent entityBreedEvent = org.bukkit.craftbukkit.event.CraftEventFactory.callEntityBreedEvent(entityageable, this, other, breeder, this.breedItem, experience); if (entityBreedEvent.isCancelled()) { diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 8673d325bd866704ae90ac31eb54f78097eac952..10cff85dd4a59558dd487a3c5c7871a026835ceb 100644 +index 6e3d1122a2b7cdb91115bb8ed6c1578fa02ab58b..de6ca4b7e7549905d3ff53b13db28f1bde8f51bf 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -193,6 +193,49 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -194,6 +194,49 @@ public abstract class Level implements LevelAccessor, AutoCloseable { } // Paper end - fix and optimise world upgrading @@ -95,7 +95,7 @@ index 8673d325bd866704ae90ac31eb54f78097eac952..10cff85dd4a59558dd487a3c5c7871a0 public CraftWorld getWorld() { return this.world; } -@@ -277,6 +320,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -278,6 +321,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { this.spigotConfig = new org.spigotmc.SpigotWorldConfig(((net.minecraft.world.level.storage.PrimaryLevelData) worlddatamutable).getLevelName()); // Spigot this.paperConfig = paperWorldConfigCreator.apply(this.spigotConfig); // Paper this.purpurConfig = new org.purpurmc.purpur.PurpurWorldConfig(((net.minecraft.world.level.storage.PrimaryLevelData) worlddatamutable).getLevelName(), env); // Purpur @@ -104,7 +104,7 @@ index 8673d325bd866704ae90ac31eb54f78097eac952..10cff85dd4a59558dd487a3c5c7871a0 this.world = new CraftWorld((ServerLevel) this, gen, biomeProvider, env); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 78e2afcbe361e32a023a9a3b0708b9c1705138a4..39c8e6f7bf012e94c653c12383d2a7cf856e1123 100644 +index 27f499f7a6924f9d3ca923c5c57d8770228c3c38..79f951f6275612234a26bff758ef3b0a67be9e52 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -117,6 +117,7 @@ public class PurpurWorldConfig { diff --git a/patches/server/0102-Make-entity-breeding-times-configurable.patch b/patches/server/0102-Make-entity-breeding-times-configurable.patch index 3dbd744ba..af09fba8d 100644 --- a/patches/server/0102-Make-entity-breeding-times-configurable.patch +++ b/patches/server/0102-Make-entity-breeding-times-configurable.patch @@ -22,7 +22,7 @@ index 0951c04533e7c39b969d041271684355770b53c2..02d4ba2ccdce99ca97614baa7c8e4921 world.broadcastEntityEvent(entityvillager2, (byte) 12); return Optional.of(entityvillager2); diff --git a/src/main/java/net/minecraft/world/entity/animal/Animal.java b/src/main/java/net/minecraft/world/entity/animal/Animal.java -index e3a0a2914db92c95c894174e3815e3eca8d70826..4643c07bc2a26e7886b714514b7a4a059835af64 100644 +index 975eaac5d1e6cbf40454a0bebcea0ee4451c0cb2..3977e59d9d248accc1d2946874960f1072e11a7b 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Animal.java +++ b/src/main/java/net/minecraft/world/entity/animal/Animal.java @@ -40,6 +40,7 @@ public abstract class Animal extends AgeableMob { @@ -33,10 +33,10 @@ index e3a0a2914db92c95c894174e3815e3eca8d70826..4643c07bc2a26e7886b714514b7a4a05 protected Animal(EntityType type, Level world) { super(type, world); -@@ -272,8 +273,10 @@ public abstract class Animal extends AgeableMob { +@@ -274,8 +275,10 @@ public abstract class Animal extends AgeableMob { entityplayer.awardStat(Stats.ANIMALS_BRED); CriteriaTriggers.BRED_ANIMALS.trigger(entityplayer, this, entityanimal, entityageable); - }); + } // Paper - this.setAge(6000); - entityanimal.setAge(6000); + // Purpur start @@ -268,7 +268,7 @@ index 3d212b09258b9777079d4bc7ce950f529cdce69e..c3b79c109e895cb4460571c8816b2104 protected void registerGoals() { this.eatBlockGoal = new EatBlockGoal(this); diff --git a/src/main/java/net/minecraft/world/entity/animal/Turtle.java b/src/main/java/net/minecraft/world/entity/animal/Turtle.java -index 39590707049a19f0763efa1083a1813b6f6fff9c..c04e77f8c5c1c8c038a9c8f76546b683691c6b2a 100644 +index 9aa764686433ad8d58191f96ab22d30154058af7..cded4a8baa6815f9d6a3107173f9654136d5943a 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Turtle.java +++ b/src/main/java/net/minecraft/world/entity/animal/Turtle.java @@ -105,6 +105,11 @@ public class Turtle extends Animal { @@ -334,7 +334,7 @@ index e2540b7e28c8ba63a0360766a8afa57ac33e336f..d560bb344fefdfb2e8393dc1c5d96ef6 public void addAdditionalSaveData(CompoundTag nbt) { super.addAdditionalSaveData(nbt); diff --git a/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java b/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java -index 815de16599638bdc4507d8d0bdf941bb6b2aeb92..e60f530f78feebf851382f30b035ec9bcacf22b4 100644 +index d4100aab149913a3146ce00f20baf15e2c3ecbfb..eab6d7bb5ae6635eb881156f50c8fd4ed2adb11a 100644 --- a/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java +++ b/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java @@ -136,6 +136,10 @@ public class Frog extends Animal implements VariantHolder { @@ -477,7 +477,7 @@ index 973c5045137850905126db91238dd8e59db7ddf6..cc821385394121dcd7a9f314fa34a3f5 return createBaseHorseAttributes().add(Attributes.MAX_HEALTH, 15.0D).add(Attributes.MOVEMENT_SPEED, (double)0.2F); } diff --git a/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java b/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java -index 549960b870a0f4b0fc1813b48a229773ccbab499..ac84a3812fa8d5b61b69cc29cf0a756f5ac8a886 100644 +index e46751dacee17e81933345266049675d0b11ee49..3ab900c53469327b8d686da81ed5b4aaaddb7440 100644 --- a/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java +++ b/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java @@ -112,6 +112,11 @@ public class Sniffer extends Animal { diff --git a/patches/server/0124-Add-EntityTeleportHinderedEvent.patch b/patches/server/0124-Add-EntityTeleportHinderedEvent.patch index d9abd45fd..9a5e2c355 100644 --- a/patches/server/0124-Add-EntityTeleportHinderedEvent.patch +++ b/patches/server/0124-Add-EntityTeleportHinderedEvent.patch @@ -89,10 +89,10 @@ index a820a00440510d77fa1839eef485f8ea2de9ff84..eed8be5d6f796450a99f8dd11c673780 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index cf82afb7949a0031c1b656149e583c4075362211..d65147f864dc75475cbb893fdcc9b391538b7c3c 100644 +index c09bbe22c13f3f05e38e46cf4d9d1e94141623f4..e35de674549b09d9aad4d675e91d66106f54d51b 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -1336,6 +1336,10 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1337,6 +1337,10 @@ public class CraftPlayer extends CraftHumanEntity implements Player { } if (entity.isVehicle() && !ignorePassengers) { // Paper - Teleport API @@ -104,7 +104,7 @@ index cf82afb7949a0031c1b656149e583c4075362211..d65147f864dc75475cbb893fdcc9b391 } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 4cc37f929b9875e52e029be163f4725f289d1aa9..f0ac7b1e9157870c396f7abdbc66363e6c609029 100644 +index d5a0920338e53d28aa181b4c47555730ea8dc4eb..e7d63ba6ada0ceb79b547acd6b07f4ce3f32c12c 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -119,6 +119,7 @@ public class PurpurWorldConfig { diff --git a/patches/server/0126-Movement-options-for-armor-stands.patch b/patches/server/0126-Movement-options-for-armor-stands.patch index fbfa9dccd..58a016300 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 68233db015138b0a615a65eac8c11afc42f7a1c6..8c2327fa0af4c2148cf6bab7f5960f81660c6259 100644 +index 54b1404fed0df43795c24f2f84306fe7aceb7c6d..c3311e8d49b874323afa28e4f4891fe7d312334c 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -1795,7 +1795,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -1828,7 +1828,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { return this.isInWater() || flag; } @@ -66,7 +66,7 @@ index 9eb196ee4061bb4c5713f33e8b16d91ec52711cd..ffb3ae1d36dda5f521cf3b292d819cb3 + // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 56049d177f9e483bc68b694cb4c4d1031269eb91..8fa017d79fc5f061baec537fe1666636615e15d5 100644 +index 2f8a7e1ea33e1dae5390a5ee42fe74ce56e952d7..0b4147b270f5683661686873a662df04347a702d 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -101,10 +101,16 @@ public class PurpurWorldConfig { diff --git a/patches/server/0127-Fix-stuck-in-portals.patch b/patches/server/0127-Fix-stuck-in-portals.patch index 1dfeb7fdb..b75e30f65 100644 --- a/patches/server/0127-Fix-stuck-in-portals.patch +++ b/patches/server/0127-Fix-stuck-in-portals.patch @@ -17,10 +17,10 @@ index 81947e1dc48b91600f9b6417c13d153a41a9d502..026e3035167d41c18735cf57c63025bd // 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 8c2327fa0af4c2148cf6bab7f5960f81660c6259..10dca8fdfea6c4c98bd36684598fab425cbd348a 100644 +index c3311e8d49b874323afa28e4f4891fe7d312334c..49639113d0fb81acb0cc795d8a28e487a303de90 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -2996,12 +2996,15 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -3029,12 +3029,15 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { return Vec3.directionFromRotation(this.getRotationVector()); } @@ -37,7 +37,7 @@ index 8c2327fa0af4c2148cf6bab7f5960f81660c6259..10dca8fdfea6c4c98bd36684598fab42 this.isInsidePortal = true; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 8fa017d79fc5f061baec537fe1666636615e15d5..eb25f0210f8466430ed3bdc377ea6eb42edc78f1 100644 +index 0b4147b270f5683661686873a662df04347a702d..1cb4be76d5903cf85103a248c0ff0720c75aaef5 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -337,6 +337,7 @@ public class PurpurWorldConfig { diff --git a/patches/server/0132-Dont-run-with-scissors.patch b/patches/server/0132-Dont-run-with-scissors.patch index 4967d735d..9ff55c4cb 100644 --- a/patches/server/0132-Dont-run-with-scissors.patch +++ b/patches/server/0132-Dont-run-with-scissors.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Dont run with scissors! diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 85c9a892dd15e8bafc65146e1dcb33e508e9fc05..4ac0941974e6e8aeaea88ce0fc589381f3c0eaad 100644 +index ae117a47c9aaf4c660e1e05d469a4c1a8caa2d58..9b59fc923c85af6daf07d7bcf0d30ad39bd0cd8e 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -1693,6 +1693,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -1694,6 +1694,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic this.player.resetFallDistance(); } @@ -22,7 +22,7 @@ index 85c9a892dd15e8bafc65146e1dcb33e508e9fc05..4ac0941974e6e8aeaea88ce0fc589381 this.player.checkMovementStatistics(this.player.getX() - d3, this.player.getY() - d4, this.player.getZ() - d5); this.lastGoodX = this.player.getX(); this.lastGoodY = this.player.getY(); -@@ -1725,6 +1732,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -1726,6 +1733,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic } } // Paper end - optimise out extra getCubes diff --git a/patches/server/0143-Sneak-to-bulk-process-composter.patch b/patches/server/0143-Sneak-to-bulk-process-composter.patch index 2c1cac0f2..c2e954e9f 100644 --- a/patches/server/0143-Sneak-to-bulk-process-composter.patch +++ b/patches/server/0143-Sneak-to-bulk-process-composter.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Sneak to bulk process composter diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index bb7ad618fad7f11a02d7e088e2c05bfffaf0b41d..2a923b575fa2e3393f6f667e2ce8adf38fc03afe 100644 +index 1635fee928d64f4d2c336dca6675ed4641918830..e85b6f9e4b0695479839a45212c74be9ef44d110 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -@@ -575,7 +575,7 @@ public class ServerPlayerGameMode { +@@ -577,7 +577,7 @@ public class ServerPlayerGameMode { boolean flag1 = player.isSecondaryUseActive() && flag; ItemStack itemstack1 = stack.copy(); @@ -90,7 +90,7 @@ index 87153b5576fed05103183a9860d804c2c8cfbe1c..e8ee608aa5e352d741694f50cdf77f06 int i = (Integer) state.getValue(ComposterBlock.LEVEL); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 29d0653160a3035e0a7dfea906cf2ab7fc67205e..d221ad77f0dee2a8cd7f08f368679183038a88ec 100644 +index be9dcd118cc5a7f105589e5dc2f0fb5e2b80b2bd..72ef41fcb32d91361eefe6fcb0930c91160aa20d 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -485,6 +485,11 @@ public class PurpurWorldConfig { diff --git a/patches/server/0144-Config-for-skipping-night.patch b/patches/server/0144-Config-for-skipping-night.patch index 9b768eb79..99be01d97 100644 --- a/patches/server/0144-Config-for-skipping-night.patch +++ b/patches/server/0144-Config-for-skipping-night.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Config for skipping night diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 3b512beac50bc5a2405ca3287b08e7ffcb620313..a7faa7e1cc78e900ec09889e2a683a3eacce675a 100644 +index baf3924a522793a7584ba3ccf6b57e90a9b8a64b..100ca2bdc0b537407e6bb3b82ce2112860e586c7 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -724,7 +724,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -805,7 +805,7 @@ public class ServerLevel extends Level implements WorldGenLevel { int i = this.getGameRules().getInt(GameRules.RULE_PLAYERS_SLEEPING_PERCENTAGE); long j; @@ -18,7 +18,7 @@ index 3b512beac50bc5a2405ca3287b08e7ffcb620313..a7faa7e1cc78e900ec09889e2a683a3e j = this.levelData.getDayTime() + 24000L; TimeSkipEvent event = new TimeSkipEvent(this.getWorld(), TimeSkipEvent.SkipReason.NIGHT_SKIP, (j - j % 24000L) - this.getDayTime()); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index d221ad77f0dee2a8cd7f08f368679183038a88ec..80b76a20848321e982e8b542aa9f5295cfd7e3dd 100644 +index 72ef41fcb32d91361eefe6fcb0930c91160aa20d..2c83ed4bec42d5d463c152a03213517615e6d622 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -360,6 +360,7 @@ public class PurpurWorldConfig { diff --git a/patches/server/0147-Drowning-Settings.patch b/patches/server/0147-Drowning-Settings.patch index 2fa422410..05c31c3dc 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 10dca8fdfea6c4c98bd36684598fab425cbd348a..a1aaef67d5f4ee42714638e324f7965f2ad27eb0 100644 +index 49639113d0fb81acb0cc795d8a28e487a303de90..0734602a64f169665ca416efa37aa52d649e900c 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -3241,7 +3241,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -3274,7 +3274,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { } public int getMaxAirSupply() { @@ -18,7 +18,7 @@ index 10dca8fdfea6c4c98bd36684598fab425cbd348a..a1aaef67d5f4ee42714638e324f7965f 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 234b92b189e921768ea83ef4f0c128266735cc6e..2f48ddb7d2731bd05d149d6286ae8292dfbec94b 100644 +index e7725f76f3c9f0e3e414fc72b7d076e573ca0cd5..20a9562db4ea7cbd33ea84eab52646a30f4adca8 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -441,7 +441,7 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -40,7 +40,7 @@ index 234b92b189e921768ea83ef4f0c128266735cc6e..2f48ddb7d2731bd05d149d6286ae8292 } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index f2efffa40204c658375f3ebba8ab710bf3cacb80..40cc8ba677500053e3e2e95b83ba88527ebd21e5 100644 +index c1b28f0a964b83a3f887c78c7f0b75c3c79e8734..35a43f76f8c388f0d1e2b16d0ec0f3e421c4ddbd 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -166,6 +166,15 @@ public class PurpurWorldConfig { diff --git a/patches/server/0148-Break-individual-slabs-when-sneaking.patch b/patches/server/0148-Break-individual-slabs-when-sneaking.patch index e12059ac0..e2f558aa9 100644 --- a/patches/server/0148-Break-individual-slabs-when-sneaking.patch +++ b/patches/server/0148-Break-individual-slabs-when-sneaking.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Break individual slabs when sneaking diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index 2a923b575fa2e3393f6f667e2ce8adf38fc03afe..2a18d9b7ab5d28458e53ccad29edc6f9c2c3099c 100644 +index e85b6f9e4b0695479839a45212c74be9ef44d110..fe207cd67517de05b0da84d55c4218357f0274dc 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -@@ -396,6 +396,7 @@ public class ServerPlayerGameMode { +@@ -398,6 +398,7 @@ public class ServerPlayerGameMode { } else {capturedBlockEntity = true;} // Paper end return false; } @@ -47,7 +47,7 @@ index 18b603d646081926343dea108b55d641df1c2c34..370772b1297b78bcc7419684015830a8 + // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 40cc8ba677500053e3e2e95b83ba88527ebd21e5..cd2de2f0a6aeda4b87f18e97e2c5999e1fd3246e 100644 +index 35a43f76f8c388f0d1e2b16d0ec0f3e421c4ddbd..8aba6dd9ea9d2d915d33bdfb16a161ea6b20bc0a 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -606,6 +606,11 @@ public class PurpurWorldConfig { diff --git a/patches/server/0152-Config-to-allow-for-unsafe-enchants.patch b/patches/server/0152-Config-to-allow-for-unsafe-enchants.patch index cfb2e59e4..1b2c71c50 100644 --- a/patches/server/0152-Config-to-allow-for-unsafe-enchants.patch +++ b/patches/server/0152-Config-to-allow-for-unsafe-enchants.patch @@ -70,10 +70,10 @@ index 6fc5699ad90127dc48fa9ff5cb6ba5367031ce83..c179fd1ee55116e1bbdd8f8fadd18825 ((ServerPlayer) player).connection.send(new ClientboundContainerSetDataPacket(containerId, 0, cost.get())); } diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index 961aca57888de6fe7ea249c2a7596c9863c1effe..4f8fa99211257930adb2ae13505ba5d32c1999ba 100644 +index 0addb98459b9de0fc954531f8c09b0af73abcc45..5a6a80b544ff5a0259da9bd49baf8ef43c220480 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java -@@ -1198,6 +1198,12 @@ public final class ItemStack { +@@ -1202,6 +1202,12 @@ public final class ItemStack { return this.tag != null && this.tag.contains("Enchantments", 9) ? !this.tag.getList("Enchantments", 10).isEmpty() : false; } diff --git a/patches/server/0173-ShulkerBox-allow-oversized-stacks.patch b/patches/server/0173-ShulkerBox-allow-oversized-stacks.patch index 9b9c9a0cb..ce4cc992f 100644 --- a/patches/server/0173-ShulkerBox-allow-oversized-stacks.patch +++ b/patches/server/0173-ShulkerBox-allow-oversized-stacks.patch @@ -9,10 +9,10 @@ creating an itemstack using the TileEntity's NBT data (how it handles it for creative players) instead of routing it through the LootableBuilder. diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index 2a18d9b7ab5d28458e53ccad29edc6f9c2c3099c..2f0c5df784d5847c59826c3d7930b5d707a5f1aa 100644 +index fe207cd67517de05b0da84d55c4218357f0274dc..7ddc9a7ff7b1d6de234ea5b1c8f4246d6ba7976d 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -@@ -427,7 +427,7 @@ public class ServerPlayerGameMode { +@@ -429,7 +429,7 @@ public class ServerPlayerGameMode { ItemStack mainHandStack = null; // Paper boolean isCorrectTool = false; // Paper @@ -35,7 +35,7 @@ index b51155ad12515b2d0dd0f202580b9f455c114d9a..dd6c82a418ee299d7a5614cb0260949c blockEntity.saveToItem(itemStack); if (shulkerBoxBlockEntity.hasCustomName()) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 9a4b594658a5815430d3c74d32c2adc3b8fc9984..b09cab96a780cadf6b4aad287cc3ca70dd2d60a7 100644 +index 3965a9f456d7815a4f375bc5792f888a38c149ef..e508637fabd5b8688230f6e6aed82480f5c513e9 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -678,6 +678,11 @@ public class PurpurWorldConfig { diff --git a/patches/server/0175-API-for-any-mob-to-burn-daylight.patch b/patches/server/0175-API-for-any-mob-to-burn-daylight.patch index 9a7eebcc0..d83274c5f 100644 --- a/patches/server/0175-API-for-any-mob-to-burn-daylight.patch +++ b/patches/server/0175-API-for-any-mob-to-burn-daylight.patch @@ -6,10 +6,10 @@ Subject: [PATCH] API for any mob to burn daylight Co-authored by: Encode42 diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index a1aaef67d5f4ee42714638e324f7965f2ad27eb0..776cef835e2512bde83842e72b1bd00250374eb6 100644 +index 0734602a64f169665ca416efa37aa52d649e900c..20fae6041a0a93c0de24f4e8bf0d2acf4b1bcced 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -477,6 +477,21 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -478,6 +478,21 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { return true; } @@ -32,7 +32,7 @@ index a1aaef67d5f4ee42714638e324f7965f2ad27eb0..776cef835e2512bde83842e72b1bd002 return this.hardCollides; } diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 9cf87d4009e8d71d844cf1583a1457b45a523fff..75e994b0da981190083c8cda27a253116221aadb 100644 +index c31a33a22540dcaf854b3633686af969e77e0ad6..d4cdb88ca3247f3f9ea8f6797cc3b6ce0c7b5152 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -265,6 +265,7 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0179-Add-toggle-for-end-portal-safe-teleporting.patch b/patches/server/0179-Add-toggle-for-end-portal-safe-teleporting.patch index dcda44032..33864f421 100644 --- a/patches/server/0179-Add-toggle-for-end-portal-safe-teleporting.patch +++ b/patches/server/0179-Add-toggle-for-end-portal-safe-teleporting.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add toggle for end portal safe teleporting diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 776cef835e2512bde83842e72b1bd00250374eb6..23280c8183285e3570d0d08b6af7fa1d03a57d35 100644 +index 20fae6041a0a93c0de24f4e8bf0d2acf4b1bcced..f8caeea9c1ecd3c5dfe0f0a1e8aec342ca21f251 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -3070,7 +3070,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -3103,7 +3103,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { } this.processPortalCooldown(); @@ -45,7 +45,7 @@ index f80f6da484f4144e743079e5104bf503419074b2..2deddc746e43896584bd65ba8e7971a8 entity.portalWorld = ((ServerLevel)world); entity.portalBlock = pos.immutable(); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 911b30143e7807a432ac793352bb9be6866823d8..08a62eed5b50b216ea4ef1884501c33faa996723 100644 +index 4ebc5524a83992b90c4bb9dffa5c51ed8e1d6097..2bc1ab2989d2973dafad1951c579e27e17b650c8 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -652,6 +652,11 @@ public class PurpurWorldConfig { diff --git a/patches/server/0180-Make-lightning-rod-range-configurable.patch b/patches/server/0180-Make-lightning-rod-range-configurable.patch index 4558d41f7..84313bbcc 100644 --- a/patches/server/0180-Make-lightning-rod-range-configurable.patch +++ b/patches/server/0180-Make-lightning-rod-range-configurable.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Make lightning rod range configurable diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index a7faa7e1cc78e900ec09889e2a683a3eacce675a..f40eda7740b680d4a1bba7e8d177a8e0333caec7 100644 +index 100ca2bdc0b537407e6bb3b82ce2112860e586c7..aa43bec60f31dd8319ac74a4f91ff9771d3eaceb 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -1039,7 +1039,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1120,7 +1120,7 @@ public class ServerLevel extends Level implements WorldGenLevel { return holder.is(PoiTypes.LIGHTNING_ROD); }, (blockposition1) -> { return blockposition1.getY() == this.getHeight(Heightmap.Types.WORLD_SURFACE, blockposition1.getX(), blockposition1.getZ()) - 1; diff --git a/patches/server/0193-Customizable-sleeping-actionbar-messages.patch b/patches/server/0193-Customizable-sleeping-actionbar-messages.patch index 6903f9086..524481b3c 100644 --- a/patches/server/0193-Customizable-sleeping-actionbar-messages.patch +++ b/patches/server/0193-Customizable-sleeping-actionbar-messages.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Customizable sleeping actionbar messages diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index f40eda7740b680d4a1bba7e8d177a8e0333caec7..4e26cdfa7b2134c699795bc0c36b739352d80eb3 100644 +index aa43bec60f31dd8319ac74a4f91ff9771d3eaceb..2a857449a95fab2738d16f7c9e1488d58c645e9b 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -1088,11 +1088,27 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1169,11 +1169,27 @@ public class ServerLevel extends Level implements WorldGenLevel { if (this.canSleepThroughNights()) { if (!this.getServer().isSingleplayer() || this.getServer().isPublished()) { int i = this.getGameRules().getInt(GameRules.RULE_PLAYERS_SLEEPING_PERCENTAGE); diff --git a/patches/server/0211-Extended-OfflinePlayer-API.patch b/patches/server/0211-Extended-OfflinePlayer-API.patch index ff3357df8..01e95629a 100644 --- a/patches/server/0211-Extended-OfflinePlayer-API.patch +++ b/patches/server/0211-Extended-OfflinePlayer-API.patch @@ -223,10 +223,10 @@ index 714afc98b5150907b45a00060be4e41582333204..312a6d90c0a09570aef24c205dc2ff27 + // Purpur end - OfflinePlayer API } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index d65147f864dc75475cbb893fdcc9b391538b7c3c..48a330e253d5db20dbc834cf0e802a6c114e97a0 100644 +index e35de674549b09d9aad4d675e91d66106f54d51b..c0bb0ae121690412bae087367f4023378e6d3d19 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -2387,6 +2387,28 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -2388,6 +2388,28 @@ public class CraftPlayer extends CraftHumanEntity implements Player { return this.getHandle().getAbilities().walkingSpeed * 2f; } diff --git a/patches/server/0213-Option-for-if-rain-and-thunder-should-stop-on-sleep.patch b/patches/server/0213-Option-for-if-rain-and-thunder-should-stop-on-sleep.patch index 6e4fd32ef..f05932ba2 100644 --- a/patches/server/0213-Option-for-if-rain-and-thunder-should-stop-on-sleep.patch +++ b/patches/server/0213-Option-for-if-rain-and-thunder-should-stop-on-sleep.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Option for if rain and thunder should stop on sleep diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 4e26cdfa7b2134c699795bc0c36b739352d80eb3..d48132f978a4395e489b3ba21f634f19790134b3 100644 +index 2a857449a95fab2738d16f7c9e1488d58c645e9b..a3841f5aa7dfc2176f64d8be6c453d2a4c8cf817 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -1247,6 +1247,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1328,6 +1328,7 @@ public class ServerLevel extends Level implements WorldGenLevel { private void resetWeatherCycle() { // CraftBukkit start @@ -16,7 +16,7 @@ index 4e26cdfa7b2134c699795bc0c36b739352d80eb3..d48132f978a4395e489b3ba21f634f19 this.serverLevelData.setRaining(false, org.bukkit.event.weather.WeatherChangeEvent.Cause.SLEEP); // Paper - when passing the night // If we stop due to everyone sleeping we should reset the weather duration to some other random value. // Not that everyone ever manages to get the whole server to sleep at the same time.... -@@ -1254,6 +1255,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1335,6 +1336,7 @@ public class ServerLevel extends Level implements WorldGenLevel { this.serverLevelData.setRainTime(0); } // CraftBukkit end @@ -25,7 +25,7 @@ index 4e26cdfa7b2134c699795bc0c36b739352d80eb3..d48132f978a4395e489b3ba21f634f19 // CraftBukkit start // If we stop due to everyone sleeping we should reset the weather duration to some other random value. diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index b0b8918135e4a363f1fbf01064be4cf79886b72c..22fee7a93b8b6c9ce064e386016f671d88f0ee14 100644 +index b7cb860fde71c5be95b1c758ddbb0bd32350baa0..c12fc8aadb72cec739de6a952a960363e7b99b63 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -141,6 +141,8 @@ public class PurpurWorldConfig { diff --git a/patches/server/0215-Shift-right-click-to-use-exp-for-mending.patch b/patches/server/0215-Shift-right-click-to-use-exp-for-mending.patch index 9b0c20360..d2484465c 100644 --- a/patches/server/0215-Shift-right-click-to-use-exp-for-mending.patch +++ b/patches/server/0215-Shift-right-click-to-use-exp-for-mending.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Shift right click to use exp for mending diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index 2f0c5df784d5847c59826c3d7930b5d707a5f1aa..5cc5bf4305a6e91c303841e752aeece9a1d03502 100644 +index 7ddc9a7ff7b1d6de234ea5b1c8f4246d6ba7976d..02f615e797ac22b8a6226233d815346ca09c3173 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -@@ -516,6 +516,7 @@ public class ServerPlayerGameMode { +@@ -518,6 +518,7 @@ public class ServerPlayerGameMode { public InteractionHand interactHand; public ItemStack interactItemStack; public InteractionResult useItemOn(ServerPlayer player, Level world, ItemStack stack, InteractionHand hand, BlockHitResult hitResult) { @@ -16,7 +16,7 @@ index 2f0c5df784d5847c59826c3d7930b5d707a5f1aa..5cc5bf4305a6e91c303841e752aeece9 BlockPos blockposition = hitResult.getBlockPos(); BlockState iblockdata = world.getBlockState(blockposition); InteractionResult enuminteractionresult = InteractionResult.PASS; -@@ -612,4 +613,18 @@ public class ServerPlayerGameMode { +@@ -614,4 +615,18 @@ public class ServerPlayerGameMode { public void setLevel(ServerLevel world) { this.level = world; } @@ -36,10 +36,10 @@ index 2f0c5df784d5847c59826c3d7930b5d707a5f1aa..5cc5bf4305a6e91c303841e752aeece9 + // Purpur end } diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 4ac0941974e6e8aeaea88ce0fc589381f3c0eaad..f3210aa312af48a77129962fe483e65eec36a342 100644 +index 9b59fc923c85af6daf07d7bcf0d30ad39bd0cd8e..c4d8ca22639f8ad5c4375927f8ce7afa856d1689 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -2084,6 +2084,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2085,6 +2085,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic boolean cancelled; if (movingobjectposition == null || movingobjectposition.getType() != HitResult.Type.BLOCK) { @@ -48,7 +48,7 @@ index 4ac0941974e6e8aeaea88ce0fc589381f3c0eaad..f3210aa312af48a77129962fe483e65e cancelled = event.useItemInHand() == Event.Result.DENY; } else { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 57e2897e96e26ae5abef4d1d10373ea1ddb499b9..453ba32578e4dc9340332f048cce734bc0b06139 100644 +index 2ad272de2bf20a2fbb5ec847e45ed5093285d35f..a8544e65700025cd326fe62edbaf7558432165ec 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -417,6 +417,7 @@ public class PurpurWorldConfig { diff --git a/patches/server/0240-Configurable-player-pickup-exp-delay.patch b/patches/server/0240-Configurable-player-pickup-exp-delay.patch index 4fc7b135b..be3026eef 100644 --- a/patches/server/0240-Configurable-player-pickup-exp-delay.patch +++ b/patches/server/0240-Configurable-player-pickup-exp-delay.patch @@ -9,10 +9,10 @@ players still only pick up one orb every tick. However, setting this to any negative number will pick up all orbs instantly. diff --git a/src/main/java/net/minecraft/world/entity/ExperienceOrb.java b/src/main/java/net/minecraft/world/entity/ExperienceOrb.java -index 45af026f572a67061ce63229913366f719cf0a5f..7ccf214d376771814b27aa8e1f34d5a73f1b61f5 100644 +index 2bd576849403bc2cfae298c2210616192ddc38db..b2233635b6acc35ea3668c36c56e57f15420ac62 100644 --- a/src/main/java/net/minecraft/world/entity/ExperienceOrb.java +++ b/src/main/java/net/minecraft/world/entity/ExperienceOrb.java -@@ -311,7 +311,7 @@ public class ExperienceOrb extends Entity { +@@ -313,7 +313,7 @@ public class ExperienceOrb extends Entity { public void playerTouch(Player player) { if (!this.level().isClientSide) { if (player.takeXpDelay == 0 && new com.destroystokyo.paper.event.player.PlayerPickupExperienceEvent(((net.minecraft.server.level.ServerPlayer) player).getBukkitEntity(), (org.bukkit.entity.ExperienceOrb) this.getBukkitEntity()).callEvent()) { // Paper @@ -35,7 +35,7 @@ index 0a9d8b22c7127b87826d9d256a5f36c34f2bfc0f..d00035e31cf4773a418d1cc6a6018d08 } else if (!entity.isRemoved()) { this.touch(entity); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index a64f33a9dd1710fb95dc17c98e5b70e5ceef792b..8320fe867358376fc80073a632c9436b0d7d0a79 100644 +index d53a4fef85b4b0e43db8b655604cfc6c08e7c6d6..01b862bf567649a80efa487c9fdcea9436f884f8 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -426,6 +426,7 @@ public class PurpurWorldConfig { diff --git a/patches/server/0241-Allow-void-trading.patch b/patches/server/0241-Allow-void-trading.patch index db216b64b..fef17f675 100644 --- a/patches/server/0241-Allow-void-trading.patch +++ b/patches/server/0241-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 d48132f978a4395e489b3ba21f634f19790134b3..c490c88fd7798c0ac186b1de22a0dfc433adc431 100644 +index a3841f5aa7dfc2176f64d8be6c453d2a4c8cf817..19df5bf9323eb10e22e87fcd29d941698d6705fb 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -2740,7 +2740,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -2821,7 +2821,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 @@ -18,7 +18,7 @@ index d48132f978a4395e489b3ba21f634f19790134b3..c490c88fd7798c0ac186b1de22a0dfc4 } // Paper end diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 8320fe867358376fc80073a632c9436b0d7d0a79..60cc0d990edf1ec072a8d017550072e24e80e221 100644 +index 01b862bf567649a80efa487c9fdcea9436f884f8..e6f22da99c0f74c8d880ec76d7370c37c8812882 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -427,6 +427,7 @@ public class PurpurWorldConfig { diff --git a/patches/server/0242-Dont-eat-blocks-in-non-ticking-chunks.patch b/patches/server/0242-Dont-eat-blocks-in-non-ticking-chunks.patch index b5a84c875..3a06016b0 100644 --- a/patches/server/0242-Dont-eat-blocks-in-non-ticking-chunks.patch +++ b/patches/server/0242-Dont-eat-blocks-in-non-ticking-chunks.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Dont eat blocks in non ticking chunks diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index c2dec99102fa4c64c3c874f725cdc65845cd98d2..90828993a9dffdc27dbdbcb9fcf2fa861e4cad5b 100644 +index 9209b598d7168b82574e4800056b8b9f84265dd0..3bf565ce5110e38366523e0a383ac00cc6c4351a 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java -@@ -934,7 +934,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1010,7 +1010,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider return this.anyPlayerCloseEnoughForSpawning(this.getUpdatingChunkIfPresent(chunkcoordintpair.toLong()), chunkcoordintpair, reducedRange); } diff --git a/patches/server/0254-Add-toggle-for-enchant-level-clamping.patch b/patches/server/0254-Add-toggle-for-enchant-level-clamping.patch index 23480a87f..25cfaf6aa 100644 --- a/patches/server/0254-Add-toggle-for-enchant-level-clamping.patch +++ b/patches/server/0254-Add-toggle-for-enchant-level-clamping.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add toggle for enchant level clamping diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index c6bcf026f9e5bfd0f3ba261714612ebd1f092427..c6bd785382fcd0097c0cfc60ed9b5241cd1b2250 100644 +index 3660b54ef390bf5629676bc14d819a78b645ef2e..ae19380c2e14f81f068a02744f64a99dc643eb51 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java -@@ -1192,7 +1192,7 @@ public final class ItemStack { +@@ -1196,7 +1196,7 @@ public final class ItemStack { ListTag nbttaglist = this.tag.getList("Enchantments", 10); diff --git a/patches/server/0263-Option-to-disable-kick-for-out-of-order-chat.patch b/patches/server/0263-Option-to-disable-kick-for-out-of-order-chat.patch index fb51a1eff..cfc52c6af 100644 --- a/patches/server/0263-Option-to-disable-kick-for-out-of-order-chat.patch +++ b/patches/server/0263-Option-to-disable-kick-for-out-of-order-chat.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Option to disable kick for out of order chat diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index f3210aa312af48a77129962fe483e65eec36a342..d3158d0bea38780463e7fcc4cf2a27f96eef3331 100644 +index c4d8ca22639f8ad5c4375927f8ce7afa856d1689..9add904665ae8aa5bb7f447bb8b84e4439be56ad 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -2448,7 +2448,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2449,7 +2449,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic do { instant1 = (Instant) this.lastChatTimeStamp.get(); if (timestamp.isBefore(instant1)) { diff --git a/patches/server/0266-Add-local-difficulty-api.patch b/patches/server/0266-Add-local-difficulty-api.patch index c76fb4ff0..e7e18c588 100644 --- a/patches/server/0266-Add-local-difficulty-api.patch +++ b/patches/server/0266-Add-local-difficulty-api.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add local difficulty api diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 439857a814212b36e475461a01b320731a10b86d..2456d3710592dfc62b60dd609602306a20bd825a 100644 +index 89514af7f3771db496e7e2a40fa4e7fdf527f095..c62fb633f3d27edd6cbfe4221c164ee68f1df5ae 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -@@ -2278,6 +2278,12 @@ public class CraftWorld extends CraftRegionAccessor implements World { +@@ -2283,6 +2283,12 @@ public class CraftWorld extends CraftRegionAccessor implements World { return (this.getHandle().getDragonFight() == null) ? null : new CraftDragonBattle(this.getHandle().getDragonFight()); } diff --git a/patches/server/0267-Add-toggle-for-RNG-manipulation.patch b/patches/server/0267-Add-toggle-for-RNG-manipulation.patch index cfe8c9d2a..f3a102042 100644 --- a/patches/server/0267-Add-toggle-for-RNG-manipulation.patch +++ b/patches/server/0267-Add-toggle-for-RNG-manipulation.patch @@ -7,10 +7,10 @@ Paper patches RNG maniplulation by using a shared (and locked) random source. This comes with a performance gain, but technical players may prefer the ability to manipulate RNG. diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 23280c8183285e3570d0d08b6af7fa1d03a57d35..3a5ca6953a28c13b2f6ba0f38d7fa3a46df7947b 100644 +index f8caeea9c1ecd3c5dfe0f0a1e8aec342ca21f251..7a955f3848fcea9a72e5b758165f7685e74436c2 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -542,7 +542,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -575,7 +575,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { this.bb = Entity.INITIAL_AABB; this.stuckSpeedMultiplier = Vec3.ZERO; this.nextStep = 1.0F; @@ -33,7 +33,7 @@ index beef2f6a42eebeaf5761bac841300f780bfdf4f2..41797940d89fec55cb7de4c63eb3ea5c } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index f7c21ff0da5e83b3e2c04df6478fbb5038e8e568..2cf32b572bf9d737bbecf6777ec3db62dd9b0283 100644 +index 9c0bbaf1573167bc558fedfe5656b225de4ff1a3..2544326898b5dcfe0d15a0ebaf0e3cfbea5572b8 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -206,9 +206,11 @@ public class PurpurWorldConfig { diff --git a/patches/server/0272-Remove-Timings.patch b/patches/server/0272-Remove-Timings.patch index dd4c46769..79bd5ddfc 100644 --- a/patches/server/0272-Remove-Timings.patch +++ b/patches/server/0272-Remove-Timings.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Remove Timings diff --git a/src/main/java/io/papermc/paper/chunk/system/scheduling/ChunkHolderManager.java b/src/main/java/io/papermc/paper/chunk/system/scheduling/ChunkHolderManager.java -index ae0c01539e068e2cc851d2ad52baccf5ebc9545f..7c8a863c32d532552eb71ac37f124efbf3dbb966 100644 +index abd0217cf0bff183c8e262edc173a53403797c1a..2519ad2884b6c09b312432b933c31476b369e599 100644 --- a/src/main/java/io/papermc/paper/chunk/system/scheduling/ChunkHolderManager.java +++ b/src/main/java/io/papermc/paper/chunk/system/scheduling/ChunkHolderManager.java -@@ -1082,9 +1082,9 @@ public final class ChunkHolderManager { +@@ -1315,9 +1315,9 @@ public final class ChunkHolderManager { } public boolean processTicketUpdates() { @@ -21,10 +21,10 @@ index ae0c01539e068e2cc851d2ad52baccf5ebc9545f..7c8a863c32d532552eb71ac37f124efb private static final ThreadLocal> CURRENT_TICKET_UPDATE_SCHEDULING = new ThreadLocal<>(); diff --git a/src/main/java/io/papermc/paper/chunk/system/scheduling/NewChunkHolder.java b/src/main/java/io/papermc/paper/chunk/system/scheduling/NewChunkHolder.java -index cfd97d48ae77d33b68e11de3140a00f3faca34a4..fc51147c8e38d0057444eaea712b4f44a1e50e74 100644 +index 51304c5cf4b0ac7646693ef97ef4a3847d3342b5..535ab99585cd4463d051334681bc80b5d20df7c0 100644 --- a/src/main/java/io/papermc/paper/chunk/system/scheduling/NewChunkHolder.java +++ b/src/main/java/io/papermc/paper/chunk/system/scheduling/NewChunkHolder.java -@@ -1774,7 +1774,7 @@ public final class NewChunkHolder { +@@ -1779,7 +1779,7 @@ public final class NewChunkHolder { boolean canSavePOI = !(chunk instanceof LevelChunk levelChunk && levelChunk.mustNotSave) && (poi != null && poi.isDirty()); boolean canSaveEntities = entities != null; @@ -33,7 +33,7 @@ index cfd97d48ae77d33b68e11de3140a00f3faca34a4..fc51147c8e38d0057444eaea712b4f44 if (canSaveChunk) { canSaveChunk = this.saveChunk(chunk, unloading); } -@@ -1788,7 +1788,7 @@ public final class NewChunkHolder { +@@ -1793,7 +1793,7 @@ public final class NewChunkHolder { this.lastEntityUnload = null; } } @@ -222,7 +222,7 @@ index 4a610b712acfe0b1b4dcf4988bc22c6a71616050..aa3f4ca3be843616d34897e41909255f i = this.context.runTopCommand(function, source); } finally { diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -index 9eeda0276b4a6f444e7fd2afee7a2c62ad58e0cd..15edbb226bd42af3a33e4150eec50236ff5af5d9 100644 +index 4b9cf94e24bc583f7bef593e6e8fd70e5564ca38..f7238261f9797d127ff6e5dcdd62dd20bc65cdba 100644 --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java @@ -521,7 +521,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface @@ -244,10 +244,10 @@ index 9eeda0276b4a6f444e7fd2afee7a2c62ad58e0cd..15edbb226bd42af3a33e4150eec50236 @Override diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 90828993a9dffdc27dbdbcb9fcf2fa861e4cad5b..89aebe46deff84ab458b6e2302a98a42103b7195 100644 +index 3bf565ce5110e38366523e0a383ac00cc6c4351a..f60c8dbe8d6e04a19450a6cc1f3b2a27ca3ba2db 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java -@@ -544,15 +544,15 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -620,15 +620,15 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider protected void tick(BooleanSupplier shouldKeepTicking) { ProfilerFiller gameprofilerfiller = this.level.getProfiler(); @@ -267,7 +267,7 @@ index 90828993a9dffdc27dbdbcb9fcf2fa861e4cad5b..89aebe46deff84ab458b6e2302a98a42 } gameprofilerfiller.pop(); -@@ -1186,7 +1186,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1282,7 +1282,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider List list = Lists.newArrayList(); List list1 = this.level.players(); ObjectIterator objectiterator = this.entityMap.values().iterator(); @@ -276,7 +276,7 @@ index 90828993a9dffdc27dbdbcb9fcf2fa861e4cad5b..89aebe46deff84ab458b6e2302a98a42 ChunkMap.TrackedEntity playerchunkmap_entitytracker; -@@ -1211,17 +1211,17 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1307,17 +1307,17 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider playerchunkmap_entitytracker.serverEntity.sendChanges(); } } @@ -298,10 +298,10 @@ index 90828993a9dffdc27dbdbcb9fcf2fa861e4cad5b..89aebe46deff84ab458b6e2302a98a42 } diff --git a/src/main/java/net/minecraft/server/level/ServerChunkCache.java b/src/main/java/net/minecraft/server/level/ServerChunkCache.java -index 1409db8d73a2ed43efbba7f0932bd6d497d9009e..a616c9a2532beb67960259bf1910da1759cfe698 100644 +index 488a253e218409b5f0b4a872cee0928578fa7582..c4601ee883ecff651585aaaf33fe3a9f747d4338 100644 --- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java +++ b/src/main/java/net/minecraft/server/level/ServerChunkCache.java -@@ -447,10 +447,10 @@ public class ServerChunkCache extends ChunkSource { +@@ -296,10 +296,10 @@ public class ServerChunkCache extends ChunkSource { io.papermc.paper.chunk.system.scheduling.ChunkTaskScheduler.pushChunkWait(this.level, x1, z1); // Paper - rewrite chunk system // Paper end com.destroystokyo.paper.io.SyncLoadFinder.logSyncLoad(this.level, x1, z1); // Paper - sync load info @@ -314,7 +314,7 @@ index 1409db8d73a2ed43efbba7f0932bd6d497d9009e..a616c9a2532beb67960259bf1910da17 } // Paper ichunkaccess = (ChunkAccess) ((Either) completablefuture.join()).map((ichunkaccess1) -> { return ichunkaccess1; -@@ -599,17 +599,17 @@ public class ServerChunkCache extends ChunkSource { +@@ -448,17 +448,17 @@ public class ServerChunkCache extends ChunkSource { public void save(boolean flush) { this.runDistanceManagerUpdates(); @@ -336,7 +336,7 @@ index 1409db8d73a2ed43efbba7f0932bd6d497d9009e..a616c9a2532beb67960259bf1910da17 } // Paper end -@@ -639,22 +639,22 @@ public class ServerChunkCache extends ChunkSource { +@@ -488,22 +488,22 @@ public class ServerChunkCache extends ChunkSource { @Override public void tick(BooleanSupplier shouldKeepTicking, boolean tickChunks) { this.level.getProfiler().push("purge"); @@ -365,7 +365,7 @@ index 1409db8d73a2ed43efbba7f0932bd6d497d9009e..a616c9a2532beb67960259bf1910da17 this.level.getProfiler().pop(); this.clearCache(); } -@@ -708,7 +708,7 @@ public class ServerChunkCache extends ChunkSource { +@@ -557,7 +557,7 @@ public class ServerChunkCache extends ChunkSource { boolean flag1 = level.ticksPerSpawnCategory.getLong(org.bukkit.entity.SpawnCategory.ANIMAL) != 0L && worlddata.getGameTime() % level.ticksPerSpawnCategory.getLong(org.bukkit.entity.SpawnCategory.ANIMAL) == 0L; // CraftBukkit gameprofilerfiller.push("naturalSpawnCount"); @@ -374,7 +374,7 @@ index 1409db8d73a2ed43efbba7f0932bd6d497d9009e..a616c9a2532beb67960259bf1910da17 int l = this.distanceManager.getNaturalSpawnChunkCount(); // Paper start - per player mob spawning NaturalSpawner.SpawnState spawnercreature_d; // moved down -@@ -722,12 +722,12 @@ public class ServerChunkCache extends ChunkSource { +@@ -571,12 +571,12 @@ public class ServerChunkCache extends ChunkSource { spawnercreature_d = NaturalSpawner.createState(l, this.level.getAllEntities(), this::getFullChunk, this.chunkMap.playerMobDistanceMap == null ? new LocalMobCapCalculator(this.chunkMap) : null, false); } // Paper end @@ -389,7 +389,7 @@ index 1409db8d73a2ed43efbba7f0932bd6d497d9009e..a616c9a2532beb67960259bf1910da17 // Paper - moved down -@@ -782,17 +782,17 @@ public class ServerChunkCache extends ChunkSource { +@@ -631,17 +631,17 @@ public class ServerChunkCache extends ChunkSource { } } // Paper end - optimise chunk tick iteration @@ -411,7 +411,7 @@ index 1409db8d73a2ed43efbba7f0932bd6d497d9009e..a616c9a2532beb67960259bf1910da17 if (!this.chunkMap.needsChangeBroadcasting.isEmpty()) { ReferenceOpenHashSet copy = this.chunkMap.needsChangeBroadcasting.clone(); this.chunkMap.needsChangeBroadcasting.clear(); -@@ -804,7 +804,7 @@ public class ServerChunkCache extends ChunkSource { +@@ -653,7 +653,7 @@ public class ServerChunkCache extends ChunkSource { } } } @@ -421,10 +421,10 @@ index 1409db8d73a2ed43efbba7f0932bd6d497d9009e..a616c9a2532beb67960259bf1910da17 // Paper end - use set of chunks requiring updates, rather than iterating every single one loaded // Paper start - controlled flush for entity tracker packets diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index c490c88fd7798c0ac186b1de22a0dfc433adc431..48e259562bd46075e4d64ed1a291e32c33fbefca 100644 +index 19df5bf9323eb10e22e87fcd29d941698d6705fb..55f892e0b9eb098f3cdd922fa5d5d53005722859 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -747,7 +747,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -828,7 +828,7 @@ public class ServerLevel extends Level implements WorldGenLevel { this.updateSkyBrightness(); this.tickTime(); gameprofilerfiller.popPush("tickPending"); @@ -433,7 +433,7 @@ index c490c88fd7798c0ac186b1de22a0dfc433adc431..48e259562bd46075e4d64ed1a291e32c if (!this.isDebug()) { j = this.getGameTime(); gameprofilerfiller.push("blockTicks"); -@@ -756,20 +756,20 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -837,20 +837,20 @@ public class ServerLevel extends Level implements WorldGenLevel { this.fluidTicks.tick(j, 65536, this::tickFluid); gameprofilerfiller.pop(); } @@ -461,7 +461,7 @@ index c490c88fd7798c0ac186b1de22a0dfc433adc431..48e259562bd46075e4d64ed1a291e32c this.handlingTick = false; gameprofilerfiller.pop(); boolean flag = true || !this.players.isEmpty() || !this.getForcedChunks().isEmpty(); // CraftBukkit - this prevents entity cleanup, other issues on servers with no players -@@ -780,7 +780,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -861,7 +861,7 @@ public class ServerLevel extends Level implements WorldGenLevel { if (flag || this.emptyTime++ < 300) { gameprofilerfiller.push("entities"); @@ -470,7 +470,7 @@ index c490c88fd7798c0ac186b1de22a0dfc433adc431..48e259562bd46075e4d64ed1a291e32c if (this.dragonFight != null) { gameprofilerfiller.push("dragonFight"); this.dragonFight.tick(); -@@ -788,7 +788,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -869,7 +869,7 @@ public class ServerLevel extends Level implements WorldGenLevel { } org.spigotmc.ActivationRange.activateEntities(this); // Spigot @@ -479,7 +479,7 @@ index c490c88fd7798c0ac186b1de22a0dfc433adc431..48e259562bd46075e4d64ed1a291e32c this.entityTickList.forEach((entity) -> { if (!entity.isRemoved()) { if (false && this.shouldDiscardEntity(entity)) { // CraftBukkit - We prevent spawning in general, so this butchering is not needed -@@ -815,8 +815,8 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -896,8 +896,8 @@ public class ServerLevel extends Level implements WorldGenLevel { } } }); @@ -490,7 +490,7 @@ index c490c88fd7798c0ac186b1de22a0dfc433adc431..48e259562bd46075e4d64ed1a291e32c gameprofilerfiller.pop(); this.tickBlockEntities(); } -@@ -996,7 +996,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1077,7 +1077,7 @@ public class ServerLevel extends Level implements WorldGenLevel { // Paper start - optimise random block ticking gameprofilerfiller.popPush("randomTick"); @@ -499,7 +499,7 @@ index c490c88fd7798c0ac186b1de22a0dfc433adc431..48e259562bd46075e4d64ed1a291e32c if (randomTickSpeed > 0) { LevelChunkSection[] sections = chunk.getSections(); int minSection = io.papermc.paper.util.WorldUtil.getMinSection(this); -@@ -1030,7 +1030,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1111,7 +1111,7 @@ public class ServerLevel extends Level implements WorldGenLevel { } } // Paper end - optimise random block ticking @@ -508,7 +508,7 @@ index c490c88fd7798c0ac186b1de22a0dfc433adc431..48e259562bd46075e4d64ed1a291e32c gameprofilerfiller.pop(); } -@@ -1323,8 +1323,8 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1404,8 +1404,8 @@ public class ServerLevel extends Level implements WorldGenLevel { // Spigot end // Paper start- timings final boolean isActive = org.spigotmc.ActivationRange.checkIfActive(entity); @@ -519,7 +519,7 @@ index c490c88fd7798c0ac186b1de22a0dfc433adc431..48e259562bd46075e4d64ed1a291e32c // Paper end - timings entity.setOldPosAndRot(); ProfilerFiller gameprofilerfiller = this.getProfiler(); -@@ -1340,7 +1340,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1421,7 +1421,7 @@ public class ServerLevel extends Level implements WorldGenLevel { entity.postTick(); // CraftBukkit } else { entity.inactiveTick(); } // Paper - EAR 2 this.getProfiler().pop(); @@ -528,7 +528,7 @@ index c490c88fd7798c0ac186b1de22a0dfc433adc431..48e259562bd46075e4d64ed1a291e32c Iterator iterator = entity.getPassengers().iterator(); while (iterator.hasNext()) { -@@ -1363,8 +1363,8 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1444,8 +1444,8 @@ public class ServerLevel extends Level implements WorldGenLevel { if (passenger instanceof Player || this.entityTickList.contains(passenger)) { // Paper - EAR 2 final boolean isActive = org.spigotmc.ActivationRange.checkIfActive(passenger); @@ -539,7 +539,7 @@ index c490c88fd7798c0ac186b1de22a0dfc433adc431..48e259562bd46075e4d64ed1a291e32c // Paper end passenger.setOldPosAndRot(); ++passenger.tickCount; -@@ -1394,7 +1394,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1475,7 +1475,7 @@ public class ServerLevel extends Level implements WorldGenLevel { this.tickPassenger(passenger, entity2); } @@ -548,7 +548,7 @@ index c490c88fd7798c0ac186b1de22a0dfc433adc431..48e259562bd46075e4d64ed1a291e32c } } else { passenger.stopRiding(); -@@ -1414,14 +1414,14 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1495,14 +1495,14 @@ public class ServerLevel extends Level implements WorldGenLevel { org.bukkit.Bukkit.getPluginManager().callEvent(new org.bukkit.event.world.WorldSaveEvent(getWorld())); } @@ -566,7 +566,7 @@ index c490c88fd7798c0ac186b1de22a0dfc433adc431..48e259562bd46075e4d64ed1a291e32c // Copied from save() // CraftBukkit start - moved from MinecraftServer.saveChunks -@@ -1433,7 +1433,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1514,7 +1514,7 @@ public class ServerLevel extends Level implements WorldGenLevel { this.convertable.saveDataTag(this.server.registryAccess(), this.serverLevelData, this.server.getPlayerList().getSingleplayerData()); } // CraftBukkit end @@ -575,7 +575,7 @@ index c490c88fd7798c0ac186b1de22a0dfc433adc431..48e259562bd46075e4d64ed1a291e32c } // Paper end -@@ -1447,7 +1447,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1528,7 +1528,7 @@ public class ServerLevel extends Level implements WorldGenLevel { if (!savingDisabled) { org.bukkit.Bukkit.getPluginManager().callEvent(new org.bukkit.event.world.WorldSaveEvent(getWorld())); // CraftBukkit @@ -584,7 +584,7 @@ index c490c88fd7798c0ac186b1de22a0dfc433adc431..48e259562bd46075e4d64ed1a291e32c if (progressListener != null) { progressListener.progressStartNoAbort(Component.translatable("menu.savingLevel")); } -@@ -1457,11 +1457,11 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1538,11 +1538,11 @@ public class ServerLevel extends Level implements WorldGenLevel { progressListener.progressStage(Component.translatable("menu.savingChunks")); } @@ -600,10 +600,10 @@ index c490c88fd7798c0ac186b1de22a0dfc433adc431..48e259562bd46075e4d64ed1a291e32c } 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 d3158d0bea38780463e7fcc4cf2a27f96eef3331..1205b3099fdaa56e2d45e46b650fb602892e9c8b 100644 +index 9add904665ae8aa5bb7f447bb8b84e4439be56ad..cc46bb346b7cd8e0a730fbc9b43b4d04f719115e 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -2585,7 +2585,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2586,7 +2586,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic } } // Paper End @@ -612,7 +612,7 @@ index d3158d0bea38780463e7fcc4cf2a27f96eef3331..1205b3099fdaa56e2d45e46b650fb602 if ( org.spigotmc.SpigotConfig.logCommands ) // Spigot this.LOGGER.info(this.player.getScoreboardName() + " issued server command: " + s); -@@ -2595,7 +2595,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2596,7 +2596,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic this.cserver.getPluginManager().callEvent(event); if (event.isCancelled()) { @@ -621,7 +621,7 @@ index d3158d0bea38780463e7fcc4cf2a27f96eef3331..1205b3099fdaa56e2d45e46b650fb602 return; } -@@ -2608,7 +2608,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2609,7 +2609,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic java.util.logging.Logger.getLogger(ServerGamePacketListenerImpl.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); return; } finally { @@ -631,7 +631,7 @@ index d3158d0bea38780463e7fcc4cf2a27f96eef3331..1205b3099fdaa56e2d45e46b650fb602 } // CraftBukkit end diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 64a1fd3316f7b0b6e7feafc1be4649a4084d61a3..1327e5d045c672e121ae57f1cfcbeb46be6c00ab 100644 +index 59930a325da1fcba50eb995f83d6a5618e447572..725149019d69f3350b7235391092b1fbe2cd9dfb 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -1248,7 +1248,7 @@ public abstract class PlayerList { @@ -702,10 +702,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 10cff85dd4a59558dd487a3c5c7871a026835ceb..b4bfddb406fce51d1100976d9445db161dcb3f22 100644 +index de6ca4b7e7549905d3ff53b13db28f1bde8f51bf..000697994299163fa3287450652be551a81cf466 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -909,15 +909,15 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -912,15 +912,15 @@ public abstract class Level implements LevelAccessor, AutoCloseable { ProfilerFiller gameprofilerfiller = this.getProfiler(); gameprofilerfiller.push("blockEntities"); @@ -724,7 +724,7 @@ index 10cff85dd4a59558dd487a3c5c7871a026835ceb..b4bfddb406fce51d1100976d9445db16 // Spigot start // Iterator iterator = this.blockEntityTickers.iterator(); int tilesThisCycle = 0; -@@ -950,7 +950,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -953,7 +953,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { } this.blockEntityTickers.removeAll(toRemove); @@ -756,7 +756,7 @@ index 089dd93d4cd4c1f72e63c4944b3b82c1e2ba732d..4e2611c9a7df8343f76e3be3f01f2f82 } diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java -index 17398a48ff84ba1b21bd64f7857e3a326fcc54cf..c4b4091a52cc08c33ab73bc1ed725477aae26982 100644 +index 4ff0d2fc9fd76e92e64abd69f2c9e299aa08ac32..5de3b6cd73a45348d0feba858d96a500bf236ce7 100644 --- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java +++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java @@ -881,7 +881,7 @@ public class LevelChunk extends ChunkAccess { diff --git a/patches/server/0273-Remove-Mojang-Profiler.patch b/patches/server/0273-Remove-Mojang-Profiler.patch index e34c77a6f..4aa0c0b43 100644 --- a/patches/server/0273-Remove-Mojang-Profiler.patch +++ b/patches/server/0273-Remove-Mojang-Profiler.patch @@ -388,10 +388,10 @@ index aa3f4ca3be843616d34897e41909255f512f8963..426ac5faa9344472560fb20bdea8bdc3 ++j; diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 89aebe46deff84ab458b6e2302a98a42103b7195..530ce9950b83420d5a033e6c552dafb388945c05 100644 +index f60c8dbe8d6e04a19450a6cc1f3b2a27ca3ba2db..7fb00407b75603cf6ff63f1fd1f3e020524caf82 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java -@@ -542,20 +542,20 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -618,20 +618,20 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider } protected void tick(BooleanSupplier shouldKeepTicking) { @@ -417,10 +417,10 @@ index 89aebe46deff84ab458b6e2302a98a42103b7195..530ce9950b83420d5a033e6c552dafb3 public boolean hasWork() { diff --git a/src/main/java/net/minecraft/server/level/ServerChunkCache.java b/src/main/java/net/minecraft/server/level/ServerChunkCache.java -index a616c9a2532beb67960259bf1910da1759cfe698..e2bab8e845e7ac940ab690dcb2db25cdf92b6dcf 100644 +index c4601ee883ecff651585aaaf33fe3a9f747d4338..f75f7b39aa4ed5c18cd2d761a1337df5b1771a23 100644 --- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java +++ b/src/main/java/net/minecraft/server/level/ServerChunkCache.java -@@ -428,16 +428,16 @@ public class ServerChunkCache extends ChunkSource { +@@ -277,16 +277,16 @@ public class ServerChunkCache extends ChunkSource { return ifLoaded; } // Paper end @@ -440,7 +440,7 @@ index a616c9a2532beb67960259bf1910da1759cfe698..e2bab8e845e7ac940ab690dcb2db25cd CompletableFuture> completablefuture = this.getChunkFutureMainThread(x, z, leastStatus, create, true); // Paper ServerChunkCache.MainThreadExecutor chunkproviderserver_b = this.mainThreadProcessor; -@@ -626,24 +626,24 @@ public class ServerChunkCache extends ChunkSource { +@@ -475,24 +475,24 @@ public class ServerChunkCache extends ChunkSource { // CraftBukkit start - modelled on below public void purgeUnload() { if (true) return; // Paper - tickets will be removed later, this behavior isn't really well accounted for by the chunk system @@ -470,7 +470,7 @@ index a616c9a2532beb67960259bf1910da1759cfe698..e2bab8e845e7ac940ab690dcb2db25cd if (tickChunks) { //this.level.timings.chunks.startTiming(); // Paper - timings // Purpur this.chunkMap.level.playerChunkLoader.tick(); // Paper - replace player chunk loader - this is mostly required to account for view distance changes -@@ -652,10 +652,10 @@ public class ServerChunkCache extends ChunkSource { +@@ -501,10 +501,10 @@ public class ServerChunkCache extends ChunkSource { } //this.level.timings.doChunkUnload.startTiming(); // Spigot // Purpur @@ -483,7 +483,7 @@ index a616c9a2532beb67960259bf1910da1759cfe698..e2bab8e845e7ac940ab690dcb2db25cd this.clearCache(); } -@@ -701,13 +701,13 @@ public class ServerChunkCache extends ChunkSource { +@@ -550,13 +550,13 @@ public class ServerChunkCache extends ChunkSource { } // Paper end - optimize isOutisdeRange LevelData worlddata = this.level.getLevelData(); @@ -500,7 +500,7 @@ index a616c9a2532beb67960259bf1910da1759cfe698..e2bab8e845e7ac940ab690dcb2db25cd //this.level.timings.countNaturalMobs.startTiming(); // Paper - timings // Purpur int l = this.distanceManager.getNaturalSpawnChunkCount(); // Paper start - per player mob spawning -@@ -725,13 +725,13 @@ public class ServerChunkCache extends ChunkSource { +@@ -574,13 +574,13 @@ public class ServerChunkCache extends ChunkSource { //this.level.timings.countNaturalMobs.stopTiming(); // Paper - timings // Purpur this.lastSpawnState = spawnercreature_d; @@ -516,7 +516,7 @@ index a616c9a2532beb67960259bf1910da1759cfe698..e2bab8e845e7ac940ab690dcb2db25cd boolean flag2 = this.level.getGameRules().getBoolean(GameRules.RULE_DOMOBSPAWNING) && !this.level.players().isEmpty(); // CraftBukkit // Paper - only shuffle if per-player mob spawning is disabled -@@ -783,15 +783,15 @@ public class ServerChunkCache extends ChunkSource { +@@ -632,15 +632,15 @@ public class ServerChunkCache extends ChunkSource { } // Paper end - optimise chunk tick iteration //this.level.timings.chunkTicks.stopTiming(); // Paper // Purpur @@ -535,7 +535,7 @@ index a616c9a2532beb67960259bf1910da1759cfe698..e2bab8e845e7ac940ab690dcb2db25cd //this.level.timings.broadcastChunkUpdates.startTiming(); // Paper - timing // Purpur if (!this.chunkMap.needsChangeBroadcasting.isEmpty()) { ReferenceOpenHashSet copy = this.chunkMap.needsChangeBroadcasting.clone(); -@@ -805,7 +805,7 @@ public class ServerChunkCache extends ChunkSource { +@@ -654,7 +654,7 @@ public class ServerChunkCache extends ChunkSource { } } //this.level.timings.broadcastChunkUpdates.stopTiming(); // Paper - timing // Purpur @@ -544,7 +544,7 @@ index a616c9a2532beb67960259bf1910da1759cfe698..e2bab8e845e7ac940ab690dcb2db25cd // Paper end - use set of chunks requiring updates, rather than iterating every single one loaded // Paper start - controlled flush for entity tracker packets List disabledFlushes = new java.util.ArrayList<>(this.level.players.size()); -@@ -996,7 +996,7 @@ public class ServerChunkCache extends ChunkSource { +@@ -845,7 +845,7 @@ public class ServerChunkCache extends ChunkSource { @Override protected void doRunTask(Runnable task) { @@ -554,10 +554,10 @@ index a616c9a2532beb67960259bf1910da1759cfe698..e2bab8e845e7ac940ab690dcb2db25cd } diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 48e259562bd46075e4d64ed1a291e32c33fbefca..bfa949be7bb08b0d7c3ec5611181151a1c294ff7 100644 +index 55f892e0b9eb098f3cdd922fa5d5d53005722859..653e469c726e6e44b93452e0cac2448e3816b3c8 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -714,12 +714,12 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -795,12 +795,12 @@ public class ServerLevel extends Level implements WorldGenLevel { } } // Paper end - optimise checkDespawn @@ -573,7 +573,7 @@ index 48e259562bd46075e4d64ed1a291e32c33fbefca..bfa949be7bb08b0d7c3ec5611181151a this.advanceWeatherCycle(); int i = this.getGameRules().getInt(GameRules.RULE_PLAYERS_SLEEPING_PERCENTAGE); long j; -@@ -746,32 +746,32 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -827,32 +827,32 @@ public class ServerLevel extends Level implements WorldGenLevel { this.updateSkyBrightness(); this.tickTime(); @@ -614,7 +614,7 @@ index 48e259562bd46075e4d64ed1a291e32c33fbefca..bfa949be7bb08b0d7c3ec5611181151a boolean flag = true || !this.players.isEmpty() || !this.getForcedChunks().isEmpty(); // CraftBukkit - this prevents entity cleanup, other issues on servers with no players if (flag) { -@@ -779,12 +779,12 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -860,12 +860,12 @@ public class ServerLevel extends Level implements WorldGenLevel { } if (flag || this.emptyTime++ < 300) { @@ -630,7 +630,7 @@ index 48e259562bd46075e4d64ed1a291e32c33fbefca..bfa949be7bb08b0d7c3ec5611181151a } org.spigotmc.ActivationRange.activateEntities(this); // Spigot -@@ -794,9 +794,9 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -875,9 +875,9 @@ public class ServerLevel extends Level implements WorldGenLevel { if (false && this.shouldDiscardEntity(entity)) { // CraftBukkit - We prevent spawning in general, so this butchering is not needed entity.discard(); } else { @@ -642,7 +642,7 @@ index 48e259562bd46075e4d64ed1a291e32c33fbefca..bfa949be7bb08b0d7c3ec5611181151a if (true || this.chunkSource.chunkMap.getDistanceManager().inEntityTickingRange(entity.chunkPosition().toLong())) { // Paper - now always true if in the ticking list Entity entity1 = entity.getVehicle(); -@@ -808,22 +808,21 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -889,22 +889,21 @@ public class ServerLevel extends Level implements WorldGenLevel { entity.stopRiding(); } @@ -669,7 +669,7 @@ index 48e259562bd46075e4d64ed1a291e32c33fbefca..bfa949be7bb08b0d7c3ec5611181151a } @Override -@@ -903,9 +902,9 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -984,9 +983,9 @@ public class ServerLevel extends Level implements WorldGenLevel { boolean flag = this.isRaining(); int j = chunkcoordintpair.getMinBlockX(); int k = chunkcoordintpair.getMinBlockZ(); @@ -681,7 +681,7 @@ index 48e259562bd46075e4d64ed1a291e32c33fbefca..bfa949be7bb08b0d7c3ec5611181151a final BlockPos.MutableBlockPos blockposition = this.chunkTickMutablePosition; // Paper - use mutable to reduce allocation rate, final to force compile fail on change if (!this.paperConfig().environment.disableThunder && flag && this.isThundering() && this.spigotConfig.thunderChance > 0 && this.random.nextInt(this.spigotConfig.thunderChance) == 0) { // Spigot // Paper - disable thunder -@@ -943,7 +942,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1024,7 +1023,7 @@ public class ServerLevel extends Level implements WorldGenLevel { } } @@ -690,7 +690,7 @@ index 48e259562bd46075e4d64ed1a291e32c33fbefca..bfa949be7bb08b0d7c3ec5611181151a int l; int i1; -@@ -995,7 +994,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1076,7 +1075,7 @@ public class ServerLevel extends Level implements WorldGenLevel { } // Paper start - optimise random block ticking @@ -699,7 +699,7 @@ index 48e259562bd46075e4d64ed1a291e32c33fbefca..bfa949be7bb08b0d7c3ec5611181151a //timings.chunkTicksBlocks.startTiming(); // Paper // Purpur if (randomTickSpeed > 0) { LevelChunkSection[] sections = chunk.getSections(); -@@ -1031,7 +1030,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1112,7 +1111,7 @@ public class ServerLevel extends Level implements WorldGenLevel { } // Paper end - optimise random block ticking //timings.chunkTicksBlocks.stopTiming(); // Paper // Purpur @@ -708,7 +708,7 @@ index 48e259562bd46075e4d64ed1a291e32c33fbefca..bfa949be7bb08b0d7c3ec5611181151a } public Optional findLightningRod(BlockPos pos) { -@@ -1327,19 +1326,19 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1408,19 +1407,19 @@ public class ServerLevel extends Level implements WorldGenLevel { //try { // Purpur // Paper end - timings entity.setOldPosAndRot(); @@ -733,7 +733,7 @@ index 48e259562bd46075e4d64ed1a291e32c33fbefca..bfa949be7bb08b0d7c3ec5611181151a //} finally { timer.stopTiming(); } // Paper - timings // Purpur Iterator iterator = entity.getPassengers().iterator(); -@@ -1368,12 +1367,12 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1449,12 +1448,12 @@ public class ServerLevel extends Level implements WorldGenLevel { // Paper end passenger.setOldPosAndRot(); ++passenger.tickCount; @@ -750,7 +750,7 @@ index 48e259562bd46075e4d64ed1a291e32c33fbefca..bfa949be7bb08b0d7c3ec5611181151a // Paper start - EAR 2 if (isActive) { passenger.rideTick(); -@@ -1385,7 +1384,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1466,7 +1465,7 @@ public class ServerLevel extends Level implements WorldGenLevel { vehicle.positionRider(passenger); } // Paper end - EAR 2 @@ -793,7 +793,7 @@ index a155e61a95c0fe4fc16d6d18a02a83b6d5b2a930..c3bb1f0d4ea44d88f2f5453e9fc8b109 this.connection.send(new ClientboundPlayerAbilitiesPacket(this.getAbilities())); playerlist.sendLevelInfo(this, worldserver); diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 1205b3099fdaa56e2d45e46b650fb602892e9c8b..eb62c04013d981390524beb74dc37bc2443b844c 100644 +index cc46bb346b7cd8e0a730fbc9b43b4d04f719115e..e3ec7429e262658ca94db9b74f3fe39e927f93c1 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -410,7 +410,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic @@ -1019,10 +1019,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 3a5ca6953a28c13b2f6ba0f38d7fa3a46df7947b..b2853cdac60ff1497423078e907530c446a499fb 100644 +index 7a955f3848fcea9a72e5b758165f7685e74436c2..4dcb02a7326361ecef6fe3cc5cd426fc949f9fd8 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -783,7 +783,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -816,7 +816,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { // CraftBukkit end public void baseTick() { @@ -1031,7 +1031,7 @@ index 3a5ca6953a28c13b2f6ba0f38d7fa3a46df7947b..b2853cdac60ff1497423078e907530c4 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()) { -@@ -844,7 +844,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -877,7 +877,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { } this.firstTick = false; @@ -1040,7 +1040,7 @@ index 3a5ca6953a28c13b2f6ba0f38d7fa3a46df7947b..b2853cdac60ff1497423078e907530c4 } public void setSharedFlagOnFire(boolean onFire) { -@@ -1063,7 +1063,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -1096,7 +1096,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { } } @@ -1049,7 +1049,7 @@ index 3a5ca6953a28c13b2f6ba0f38d7fa3a46df7947b..b2853cdac60ff1497423078e907530c4 if (this.stuckSpeedMultiplier.lengthSqr() > 1.0E-7D) { movement = movement.multiply(this.stuckSpeedMultiplier); this.stuckSpeedMultiplier = Vec3.ZERO; -@@ -1072,7 +1072,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -1105,7 +1105,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { // Paper start - ignore movement changes while inactive. if (isTemporarilyActive && !(this instanceof ItemEntity || this instanceof net.minecraft.world.entity.vehicle.AbstractMinecart) && movement == getDeltaMovement() && movementType == MoverType.SELF) { setDeltaMovement(Vec3.ZERO); @@ -1058,7 +1058,7 @@ index 3a5ca6953a28c13b2f6ba0f38d7fa3a46df7947b..b2853cdac60ff1497423078e907530c4 return; } // Paper end -@@ -1093,8 +1093,8 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -1126,8 +1126,8 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { this.setPos(this.getX() + vec3d1.x, this.getY() + vec3d1.y, this.getZ() + vec3d1.z); } @@ -1069,7 +1069,7 @@ index 3a5ca6953a28c13b2f6ba0f38d7fa3a46df7947b..b2853cdac60ff1497423078e907530c4 boolean flag = !Mth.equal(movement.x, vec3d1.x); boolean flag1 = !Mth.equal(movement.z, vec3d1.z); -@@ -1113,7 +1113,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -1146,7 +1146,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { this.checkFallDamage(vec3d1.y, this.onGround(), iblockdata, blockposition); if (this.isRemoved()) { @@ -1078,7 +1078,7 @@ index 3a5ca6953a28c13b2f6ba0f38d7fa3a46df7947b..b2853cdac60ff1497423078e907530c4 } else { if (this.horizontalCollision) { Vec3 vec3d2 = this.getDeltaMovement(); -@@ -1251,7 +1251,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -1284,7 +1284,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { this.setRemainingFireTicks(-this.getFireImmuneTicks()); } @@ -1087,7 +1087,7 @@ index 3a5ca6953a28c13b2f6ba0f38d7fa3a46df7947b..b2853cdac60ff1497423078e907530c4 } } // Paper start - detailed watchdog information -@@ -3037,7 +3037,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -3070,7 +3070,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { ServerLevel worldserver1 = minecraftserver.getLevel(resourcekey); if (true && !this.isPassenger() && this.portalTime++ >= i) { // CraftBukkit @@ -1096,7 +1096,7 @@ index 3a5ca6953a28c13b2f6ba0f38d7fa3a46df7947b..b2853cdac60ff1497423078e907530c4 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); -@@ -3055,7 +3055,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -3088,7 +3088,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { } } // Paper // CraftBukkit end @@ -1105,7 +1105,7 @@ index 3a5ca6953a28c13b2f6ba0f38d7fa3a46df7947b..b2853cdac60ff1497423078e907530c4 } this.isInsidePortal = false; -@@ -3526,14 +3526,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -3559,14 +3559,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { } // Paper end if (this.level() instanceof ServerLevel && !this.isRemoved()) { @@ -1122,7 +1122,7 @@ index 3a5ca6953a28c13b2f6ba0f38d7fa3a46df7947b..b2853cdac60ff1497423078e907530c4 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) { -@@ -3567,7 +3567,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -3600,7 +3600,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { this.unRide(); // CraftBukkit end @@ -1131,7 +1131,7 @@ index 3a5ca6953a28c13b2f6ba0f38d7fa3a46df7947b..b2853cdac60ff1497423078e907530c4 // Paper start - Change lead drop timing to prevent dupe if (this instanceof Mob) { ((Mob) this).dropLeash(true, true); // Paper drop lead -@@ -3590,10 +3590,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -3623,10 +3623,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { } this.removeAfterChangingDimensions(); @@ -1145,7 +1145,7 @@ index 3a5ca6953a28c13b2f6ba0f38d7fa3a46df7947b..b2853cdac60ff1497423078e907530c4 } } else { diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index b8fbc726f1f73a4c20ea7eeca2846c864b9e67bc..3084ea26a9364a58a78a4f75df40aa509124ac44 100644 +index 6e2412640d76c45158777136bc38cbe523440e69..af5a747241966dd93b331f1d79e3a857a38ac86c 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -412,7 +412,7 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -1508,7 +1508,7 @@ index d560bb344fefdfb2e8393dc1c5d96ef6d9dbf0e5..42c571c154ebdd24fabc5354618e6be0 } diff --git a/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java b/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java -index e60f530f78feebf851382f30b035ec9bcacf22b4..4eb091a1cd9c803bfc0a2258099f03404be7d82b 100644 +index eab6d7bb5ae6635eb881156f50c8fd4ed2adb11a..21f0554ae9281ddd088cf36c79bb005e18473a7f 100644 --- a/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java +++ b/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java @@ -217,12 +217,12 @@ public class Frog extends Animal implements VariantHolder { @@ -1572,10 +1572,10 @@ index 0ebb9ac9d951741eb9dea8475380cfcc68becae3..a707954d8e5b88ed37c2640437a10781 } diff --git a/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java b/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java -index ac84a3812fa8d5b61b69cc29cf0a756f5ac8a886..479b041711134ea2eaa0e00f8ef4858a84de30d2 100644 +index 3ab900c53469327b8d686da81ed5b4aaaddb7440..14df8a4e0c1a1dcfbbd2f4fdfd865bd77bb02325 100644 --- a/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java +++ b/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java -@@ -514,11 +514,11 @@ public class Sniffer extends Animal { +@@ -519,11 +519,11 @@ public class Sniffer extends Animal { @Override protected void customServerAiStep() { @@ -1719,10 +1719,10 @@ index 8f97c9df726ac20cfce7bdddd5dd4f8c5aa76c35..e35ebb5b923c2f63e37e5dae006bc4a0 } diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index b4bfddb406fce51d1100976d9445db161dcb3f22..57fceb21ca6bc536a6faf04dbc8ddc782a52db8e 100644 +index 000697994299163fa3287450652be551a81cf466..5287a6fe5742bdfe179fe669ee1f1edfbbd0fae6 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -906,9 +906,9 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -909,9 +909,9 @@ public abstract class Level implements LevelAccessor, AutoCloseable { } protected void tickBlockEntities() { @@ -1734,7 +1734,7 @@ index b4bfddb406fce51d1100976d9445db161dcb3f22..57fceb21ca6bc536a6faf04dbc8ddc78 //timings.tileEntityPending.startTiming(); // Spigot // Purpur this.tickingBlockEntities = true; if (!this.pendingBlockEntityTickers.isEmpty()) { -@@ -953,7 +953,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -956,7 +956,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { //timings.tileEntityTick.stopTiming(); // Spigot // Purpur this.tickingBlockEntities = false; co.aikar.timings.TimingHistory.tileEntityTicks += this.blockEntityTickers.size(); // Paper @@ -1743,7 +1743,7 @@ index b4bfddb406fce51d1100976d9445db161dcb3f22..57fceb21ca6bc536a6faf04dbc8ddc78 spigotConfig.currentPrimedTnt = 0; // Spigot } -@@ -1146,7 +1146,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -1149,7 +1149,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @Override public List getEntities(@Nullable Entity except, AABB box, Predicate predicate) { @@ -1752,7 +1752,7 @@ index b4bfddb406fce51d1100976d9445db161dcb3f22..57fceb21ca6bc536a6faf04dbc8ddc78 List list = Lists.newArrayList(); ((ServerLevel)this).getEntityLookup().getEntities(except, box, list, predicate); // Paper - optimise this call return list; -@@ -1165,7 +1165,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -1168,7 +1168,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { } public void getEntities(EntityTypeTest filter, AABB box, Predicate predicate, List result, int limit) { @@ -1761,7 +1761,7 @@ index b4bfddb406fce51d1100976d9445db161dcb3f22..57fceb21ca6bc536a6faf04dbc8ddc78 // Paper start - optimise this call //TODO use limit if (filter instanceof net.minecraft.world.entity.EntityType entityTypeTest) { -@@ -1422,6 +1422,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -1425,6 +1425,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { } public ProfilerFiller getProfiler() { @@ -1792,7 +1792,7 @@ index 4e2611c9a7df8343f76e3be3f01f2f828cdf8a1d..03fc9c6ef0fb320924038f2730c6f084 // Paper start diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java -index c4b4091a52cc08c33ab73bc1ed725477aae26982..590cb3c8fe3061e861aa3c792a2898d4e9f971bd 100644 +index 5de3b6cd73a45348d0feba858d96a500bf236ce7..d7b8b8250564831ab3e84043292e48f058698a93 100644 --- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java +++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java @@ -1256,9 +1256,9 @@ public class LevelChunk extends ChunkAccess { diff --git a/patches/server/0276-Debug-Marker-API.patch b/patches/server/0276-Debug-Marker-API.patch index 22f95d0ee..fed8bcd4a 100644 --- a/patches/server/0276-Debug-Marker-API.patch +++ b/patches/server/0276-Debug-Marker-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Debug Marker API diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 3ef465b4ff9f3a602f8c289e65e5a9548846cbcd..ce8179d33d5a6a187e16496731798e42488cb87a 100644 +index 00fe4b406eaec3e1bc02cb9bb35530d9c98743b0..c1967a538812b871aa99ba34d83599d5fcf1601f 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -1458,6 +1458,42 @@ public final class CraftServer implements Server { @@ -52,10 +52,10 @@ index 3ef465b4ff9f3a602f8c289e65e5a9548846cbcd..ce8179d33d5a6a187e16496731798e42 @Override diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 2456d3710592dfc62b60dd609602306a20bd825a..b0a9e40e6054a23a9ebe8019ff40850942d6938e 100644 +index c62fb633f3d27edd6cbfe4221c164ee68f1df5ae..1a6aa05490dffb3b61e9831e3f99a7bdd2cfa795 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -@@ -2282,6 +2282,42 @@ public class CraftWorld extends CraftRegionAccessor implements World { +@@ -2287,6 +2287,42 @@ public class CraftWorld extends CraftRegionAccessor implements World { public float getLocalDifficultyAt(Location location) { return getHandle().getCurrentDifficultyAt(io.papermc.paper.util.MCUtil.toBlockPosition(location)).getEffectiveDifficulty(); } @@ -99,10 +99,10 @@ index 2456d3710592dfc62b60dd609602306a20bd825a..b0a9e40e6054a23a9ebe8019ff408509 @Override diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 48a330e253d5db20dbc834cf0e802a6c114e97a0..f71f9b1c6810bd021ae194386cec3792c8e57c62 100644 +index c0bb0ae121690412bae087367f4023378e6d3d19..bfab934938bc0650fd6cbf0b551edecbbaf37404 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -3210,5 +3210,48 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -3211,5 +3211,48 @@ public class CraftPlayer extends CraftHumanEntity implements Player { public void setSpawnInvulnerableTicks(int spawnInvulnerableTime) { getHandle().spawnInvulnerableTime = spawnInvulnerableTime; } diff --git a/patches/server/0280-Add-death-screen-API.patch b/patches/server/0280-Add-death-screen-API.patch index 46d10684e..8119496a4 100644 --- a/patches/server/0280-Add-death-screen-API.patch +++ b/patches/server/0280-Add-death-screen-API.patch @@ -30,10 +30,10 @@ index 76a62d872bc2ad12efd9522d8dd445b8d2342525..075a891413d072998e6d468e76d839e1 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index f71f9b1c6810bd021ae194386cec3792c8e57c62..d511adbeaf9ae22256e8e316237f9d487e04c2bf 100644 +index bfab934938bc0650fd6cbf0b551edecbbaf37404..bcd26a48a9fe3443eed943a3b131c1d5eb3da345 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -3253,5 +3253,18 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -3254,5 +3254,18 @@ public class CraftPlayer extends CraftHumanEntity implements Player { if (this.getHandle().connection == null) return; this.getHandle().connection.send(new net.minecraft.network.protocol.game.ClientboundCustomPayloadPacket(ClientboundCustomPayloadPacket.DEBUG_GAME_TEST_CLEAR, new FriendlyByteBuf(io.netty.buffer.Unpooled.buffer()))); } diff --git a/patches/server/0282-Add-item-packet-serialize-event.patch b/patches/server/0282-Add-item-packet-serialize-event.patch index 64d9a968f..0f15a7e2f 100644 --- a/patches/server/0282-Add-item-packet-serialize-event.patch +++ b/patches/server/0282-Add-item-packet-serialize-event.patch @@ -48,10 +48,10 @@ index af3ab7bebc69f0485ec2eb5550ad52171cca6de3..77b84d49ab7c9d64dc44df5310dca789 while (iterator.hasNext()) { ServerLevel worldserver = (ServerLevel) iterator.next(); diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index bf9635072d4ffc298a5221309bdf329c67e0451a..51267c07f4ec562c5a2f0ec932539d77581fd66f 100644 +index ea27cb95743970b519b9ab3a3163ba2a7d098921..9dfc12ccf53f5b4d4432bd89449b09504f3a2285 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -3451,6 +3451,12 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -3452,6 +3452,12 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic } } } diff --git a/patches/server/0294-Fire-Immunity-API.patch b/patches/server/0294-Fire-Immunity-API.patch index 2f45acc04..d97105d9c 100644 --- a/patches/server/0294-Fire-Immunity-API.patch +++ b/patches/server/0294-Fire-Immunity-API.patch @@ -5,10 +5,10 @@ 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 b2853cdac60ff1497423078e907530c446a499fb..a04a75bd1fb673fe6182694d730daae41f184763 100644 +index 4dcb02a7326361ecef6fe3cc5cd426fc949f9fd8..4a2d517d1610d5a9a6c18a18886130005e6fa5bb 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -404,6 +404,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -405,6 +405,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { private UUID originWorld; public boolean freezeLocked = false; // Paper - Freeze Tick Lock API public boolean collidingWithWorldBorder; // Paper @@ -16,7 +16,7 @@ index b2853cdac60ff1497423078e907530c446a499fb..a04a75bd1fb673fe6182694d730daae4 public void setOrigin(@javax.annotation.Nonnull Location location) { this.origin = location.toVector(); -@@ -1741,7 +1742,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -1774,7 +1775,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { } public boolean fireImmune() { @@ -25,7 +25,7 @@ index b2853cdac60ff1497423078e907530c446a499fb..a04a75bd1fb673fe6182694d730daae4 } public boolean causeFallDamage(float fallDistance, float damageMultiplier, DamageSource damageSource) { -@@ -2411,6 +2412,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -2444,6 +2445,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { nbt.putBoolean("Paper.FreezeLock", true); } // Paper end @@ -37,7 +37,7 @@ index b2853cdac60ff1497423078e907530c446a499fb..a04a75bd1fb673fe6182694d730daae4 return nbt; } catch (Throwable throwable) { CrashReport crashreport = CrashReport.forThrowable(throwable, "Saving entity NBT"); -@@ -2579,6 +2585,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -2612,6 +2618,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { freezeLocked = nbt.getBoolean("Paper.FreezeLock"); } // Paper end diff --git a/patches/server/0295-Add-option-to-teleport-to-spawn-on-nether-ceiling-da.patch b/patches/server/0295-Add-option-to-teleport-to-spawn-on-nether-ceiling-da.patch index 4dcb52aac..194d90e12 100644 --- a/patches/server/0295-Add-option-to-teleport-to-spawn-on-nether-ceiling-da.patch +++ b/patches/server/0295-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 a04a75bd1fb673fe6182694d730daae41f184763..4468df604ea48789d840e18a04d37d5b9ebe0711 100644 +index 4a2d517d1610d5a9a6c18a18886130005e6fa5bb..6417fd26d7675c967986055067ce8876a1263e9f 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -858,6 +858,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -891,6 +891,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { && this.level.paperConfig().environment.netherCeilingVoidDamageHeight.test(v -> this.getY() >= v) && (!(this instanceof Player player) || !player.getAbilities().invulnerable))) { // Paper end diff --git a/patches/server/0306-Add-mending-multiplier.patch b/patches/server/0306-Add-mending-multiplier.patch index 239067606..c8f9808d2 100644 --- a/patches/server/0306-Add-mending-multiplier.patch +++ b/patches/server/0306-Add-mending-multiplier.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add mending multiplier diff --git a/src/main/java/net/minecraft/world/entity/ExperienceOrb.java b/src/main/java/net/minecraft/world/entity/ExperienceOrb.java -index 7ccf214d376771814b27aa8e1f34d5a73f1b61f5..3e42b12804f37c4b0ab083273a105939fe8f5734 100644 +index b2233635b6acc35ea3668c36c56e57f15420ac62..724bf857bf1b89cb0947b8a82e0ce09a0bec0335 100644 --- a/src/main/java/net/minecraft/world/entity/ExperienceOrb.java +++ b/src/main/java/net/minecraft/world/entity/ExperienceOrb.java -@@ -357,13 +357,15 @@ public class ExperienceOrb extends Entity { +@@ -359,13 +359,15 @@ public class ExperienceOrb extends Entity { } } @@ -27,7 +27,7 @@ index 7ccf214d376771814b27aa8e1f34d5a73f1b61f5..3e42b12804f37c4b0ab083273a105939 public int getValue() { return this.value; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 882b362b756c2203a2d3ffc4edb6cdb68e6f3879..d37fb48ec7c4cef4a30da30471c9d8080babe67b 100644 +index 0e83609e0a0cd9765f62464d7e0303d4e2417b82..f9c46c7a840dd73f4736dff4b34f4bd1c6e4c7ac 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -121,6 +121,7 @@ public class PurpurWorldConfig {