diff --git a/gradle.properties b/gradle.properties index 0fcb6f73d..bf3ae4297 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,7 +1,7 @@ group = org.purpurmc.purpur version = 1.18.2-R0.1-SNAPSHOT -paperCommit = 2ab0258b5ab985da6d8fe3728c994b325c08ada0 +paperCommit = 7a6163b41def87c559f74dba84d79a21a78e3955 org.gradle.caching = true org.gradle.parallel = true diff --git a/patches/api/0004-Purpur-config-files.patch b/patches/api/0004-Purpur-config-files.patch index 2e95658d1..ee9c932b5 100644 --- a/patches/api/0004-Purpur-config-files.patch +++ b/patches/api/0004-Purpur-config-files.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Purpur config files diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index 0eda17c8642aa49c2f57c409c3bd3234948feae9..3fe569f79ee2f408553bfda0340b1d96a47dd770 100644 +index 743a4091e06015b303d1eebc3b6bd393f98e4b9f..541da7064f5bd563cde8475be6bc47c82d9cd22b 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java -@@ -1902,6 +1902,18 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi +@@ -1900,6 +1900,18 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi } // Paper end diff --git a/patches/api/0011-Bring-back-server-name.patch b/patches/api/0011-Bring-back-server-name.patch index 553df0e3f..646a45bdf 100644 --- a/patches/api/0011-Bring-back-server-name.patch +++ b/patches/api/0011-Bring-back-server-name.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Bring back server name diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java -index 5dc245bfbc1d466ab96294bbc10ead1fcec4f841..010f9d3a42dd998c7f7837157ef18699ba445ec1 100644 +index d8666481f9a407403d0114ff02024fd3c50c27c4..a1374b608c20d47fde15135089bf8aceb98d6129 100644 --- a/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java -@@ -2370,4 +2370,15 @@ public final class Bukkit { +@@ -2368,4 +2368,15 @@ public final class Bukkit { public static Server.Spigot spigot() { return server.spigot(); } @@ -25,10 +25,10 @@ index 5dc245bfbc1d466ab96294bbc10ead1fcec4f841..010f9d3a42dd998c7f7837157ef18699 + // Purpur end } diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index 3fe569f79ee2f408553bfda0340b1d96a47dd770..8357f802f60f146cbc08ea7991a3b3a24d8bc233 100644 +index 541da7064f5bd563cde8475be6bc47c82d9cd22b..027e0141995ce8edc11ae0ab3c589ad6ac00b43c 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java -@@ -2072,4 +2072,13 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi +@@ -2070,4 +2070,13 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi */ @NotNull org.bukkit.potion.PotionBrewer getPotionBrewer(); // Paper end diff --git a/patches/api/0014-Lagging-threshold.patch b/patches/api/0014-Lagging-threshold.patch index 9162ac269..4eadef179 100644 --- a/patches/api/0014-Lagging-threshold.patch +++ b/patches/api/0014-Lagging-threshold.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Lagging threshold diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java -index 010f9d3a42dd998c7f7837157ef18699ba445ec1..a5eb36738e6cbb55dc3a28467b062f014395e013 100644 +index a1374b608c20d47fde15135089bf8aceb98d6129..e7bca7fc74a6a2914c966183c9f83340dd510bf0 100644 --- a/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java -@@ -2380,5 +2380,14 @@ public final class Bukkit { +@@ -2378,5 +2378,14 @@ public final class Bukkit { public static String getServerName() { return server.getServerName(); } @@ -24,10 +24,10 @@ index 010f9d3a42dd998c7f7837157ef18699ba445ec1..a5eb36738e6cbb55dc3a28467b062f01 // Purpur end } diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index 8357f802f60f146cbc08ea7991a3b3a24d8bc233..dbca73bfab240b5d207e9904b69be1481096f874 100644 +index 027e0141995ce8edc11ae0ab3c589ad6ac00b43c..d723e5503ddface53f670ac4e2dac2aa250f68b5 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java -@@ -2080,5 +2080,12 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi +@@ -2078,5 +2078,12 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi */ @NotNull String getServerName(); diff --git a/patches/api/0032-Conflict-on-change-for-adventure-deprecations.patch b/patches/api/0032-Conflict-on-change-for-adventure-deprecations.patch index 64b0da475..506a6e041 100644 --- a/patches/api/0032-Conflict-on-change-for-adventure-deprecations.patch +++ b/patches/api/0032-Conflict-on-change-for-adventure-deprecations.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Conflict on change for adventure deprecations diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java -index a5eb36738e6cbb55dc3a28467b062f014395e013..791a6f13f7048e2c42f945f752f88fddd6825078 100644 +index e7bca7fc74a6a2914c966183c9f83340dd510bf0..9189ada0644a226038eeb7967d45c72ddfc89085 100644 --- a/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java @@ -415,7 +415,7 @@ public final class Bukkit { @@ -26,7 +26,7 @@ index a5eb36738e6cbb55dc3a28467b062f014395e013..791a6f13f7048e2c42f945f752f88fdd public static int broadcast(@NotNull String message, @NotNull String permission) { return server.broadcast(message, permission); } -@@ -1532,7 +1532,7 @@ public final class Bukkit { +@@ -1530,7 +1530,7 @@ public final class Bukkit { * * @see InventoryType#isCreatable() */ @@ -35,7 +35,7 @@ index a5eb36738e6cbb55dc3a28467b062f014395e013..791a6f13f7048e2c42f945f752f88fdd @NotNull public static Inventory createInventory(@Nullable InventoryHolder owner, @NotNull InventoryType type, @NotNull String title) { return server.createInventory(owner, type, title); -@@ -1582,7 +1582,7 @@ public final class Bukkit { +@@ -1580,7 +1580,7 @@ public final class Bukkit { * @throws IllegalArgumentException if the size is not a multiple of 9 * @deprecated in favour of {@link #createInventory(InventoryHolder, InventoryType, net.kyori.adventure.text.Component)} */ @@ -44,7 +44,7 @@ index a5eb36738e6cbb55dc3a28467b062f014395e013..791a6f13f7048e2c42f945f752f88fdd @NotNull public static Inventory createInventory(@Nullable InventoryHolder owner, int size, @NotNull String title) throws IllegalArgumentException { return server.createInventory(owner, size, title); -@@ -1609,7 +1609,7 @@ public final class Bukkit { +@@ -1607,7 +1607,7 @@ public final class Bukkit { * @deprecated in favour of {@link #createMerchant(net.kyori.adventure.text.Component)} */ @NotNull @@ -53,7 +53,7 @@ index a5eb36738e6cbb55dc3a28467b062f014395e013..791a6f13f7048e2c42f945f752f88fdd public static Merchant createMerchant(@Nullable String title) { return server.createMerchant(title); } -@@ -1733,7 +1733,7 @@ public final class Bukkit { +@@ -1731,7 +1731,7 @@ public final class Bukkit { * @deprecated in favour of {@link #motd()} */ @NotNull @@ -62,7 +62,7 @@ index a5eb36738e6cbb55dc3a28467b062f014395e013..791a6f13f7048e2c42f945f752f88fdd public static String getMotd() { return server.getMotd(); } -@@ -1755,7 +1755,7 @@ public final class Bukkit { +@@ -1753,7 +1753,7 @@ public final class Bukkit { * @deprecated in favour of {@link #shutdownMessage()} */ @Nullable @@ -72,7 +72,7 @@ index a5eb36738e6cbb55dc3a28467b062f014395e013..791a6f13f7048e2c42f945f752f88fdd return server.getShutdownMessage(); } diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index dbca73bfab240b5d207e9904b69be1481096f874..9f602f664cc468012a86971b6cbab9549771e723 100644 +index d723e5503ddface53f670ac4e2dac2aa250f68b5..41fdb8e58fdf9a9153fc671d1aab45e8b8b1f8bc 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java @@ -327,7 +327,7 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi @@ -93,7 +93,7 @@ index dbca73bfab240b5d207e9904b69be1481096f874..9f602f664cc468012a86971b6cbab954 public int broadcast(@NotNull String message, @NotNull String permission); // Paper start /** -@@ -1291,7 +1291,7 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi +@@ -1289,7 +1289,7 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi * * @see InventoryType#isCreatable() */ @@ -102,7 +102,7 @@ index dbca73bfab240b5d207e9904b69be1481096f874..9f602f664cc468012a86971b6cbab954 @NotNull Inventory createInventory(@Nullable InventoryHolder owner, @NotNull InventoryType type, @NotNull String title); -@@ -1335,7 +1335,7 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi +@@ -1333,7 +1333,7 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi * @throws IllegalArgumentException if the size is not a multiple of 9 * @deprecated in favour of {@link #createInventory(InventoryHolder, int, net.kyori.adventure.text.Component)} */ @@ -111,7 +111,7 @@ index dbca73bfab240b5d207e9904b69be1481096f874..9f602f664cc468012a86971b6cbab954 @NotNull Inventory createInventory(@Nullable InventoryHolder owner, int size, @NotNull String title) throws IllegalArgumentException; -@@ -1358,7 +1358,7 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi +@@ -1356,7 +1356,7 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi * @deprecated in favour of {@link #createMerchant(net.kyori.adventure.text.Component)} */ @NotNull @@ -120,7 +120,7 @@ index dbca73bfab240b5d207e9904b69be1481096f874..9f602f664cc468012a86971b6cbab954 Merchant createMerchant(@Nullable String title); /** -@@ -1461,7 +1461,7 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi +@@ -1459,7 +1459,7 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi * @deprecated in favour of {@link #motd()} */ @NotNull @@ -129,7 +129,7 @@ index dbca73bfab240b5d207e9904b69be1481096f874..9f602f664cc468012a86971b6cbab954 String getMotd(); // Paper start -@@ -1479,7 +1479,7 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi +@@ -1477,7 +1477,7 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi * @deprecated in favour of {@link #shutdownMessage()} */ @Nullable diff --git a/patches/api/0042-Added-the-ability-to-add-combustible-items.patch b/patches/api/0042-Added-the-ability-to-add-combustible-items.patch index 64172a1fe..e7cd45fa3 100644 --- a/patches/api/0042-Added-the-ability-to-add-combustible-items.patch +++ b/patches/api/0042-Added-the-ability-to-add-combustible-items.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Added the ability to add combustible items diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java -index 791a6f13f7048e2c42f945f752f88fddd6825078..171eb247b083e2d665bfee0a2f7ed9e29f728abb 100644 +index 9189ada0644a226038eeb7967d45c72ddfc89085..8c37680ca16adbf030cfd3098330d2592d4aaa23 100644 --- a/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java -@@ -2389,5 +2389,24 @@ public final class Bukkit { +@@ -2387,5 +2387,24 @@ public final class Bukkit { public static boolean isLagging() { return server.isLagging(); } @@ -34,10 +34,10 @@ index 791a6f13f7048e2c42f945f752f88fddd6825078..171eb247b083e2d665bfee0a2f7ed9e2 // Purpur end } diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index 9f602f664cc468012a86971b6cbab9549771e723..e15b869241113633ed0ded1d49c805ef7b40460c 100644 +index 41fdb8e58fdf9a9153fc671d1aab45e8b8b1f8bc..ccb8909d3da0bb6ccc6d35e8497c3b4b993b9044 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java -@@ -2087,5 +2087,20 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi +@@ -2085,5 +2085,20 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi * @return True if lagging */ boolean isLagging(); diff --git a/patches/server/0001-Pufferfish-Server-Changes.patch b/patches/server/0001-Pufferfish-Server-Changes.patch index 6204e2aa2..279233d26 100644 --- a/patches/server/0001-Pufferfish-Server-Changes.patch +++ b/patches/server/0001-Pufferfish-Server-Changes.patch @@ -111,7 +111,7 @@ index 218f5bafeed8551b55b91c7fccaf6935c8b631ca..f2fe6ea3719ff8b2913b7a3a939d7a5b metrics.addCustomChart(new Metrics.DrilldownPie("java_version", () -> { Map> map = new HashMap<>(); diff --git a/src/main/java/com/destroystokyo/paper/PaperConfig.java b/src/main/java/com/destroystokyo/paper/PaperConfig.java -index 33adaac9449862879724da25f0c138709a536dbe..5578cc3eb2e3a7aadcda576e6f7c96c6bfecdd7e 100644 +index 1ac6cf51f2682d5eb14fe19646e79f6617d492dd..5ffc636329029ae070e7a79ab9c822c17c0c5fa6 100644 --- a/src/main/java/com/destroystokyo/paper/PaperConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperConfig.java @@ -241,6 +241,15 @@ public class PaperConfig { @@ -2370,10 +2370,10 @@ index f91e1a876ad4c46a7c92cead18947a941b4d9e68..d52072ab126f2fdee30bb114f3058338 this.wasOnGround = this.entity.isOnGround(); this.teleportDelay = 0; diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 50fd3419deb668dda64b1056f03fb66da55e6960..c63ee396e990d11e2f613f3b5a478b486076ed56 100644 +index 98209532ad3e692d7e459640123f78bbd9a65889..93c1f9e3e9d62cc993fedb93fe43cbeed7d39542 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -670,7 +670,20 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -671,7 +671,20 @@ public class ServerLevel extends Level implements WorldGenLevel { } gameprofilerfiller.push("tick"); @@ -2395,7 +2395,7 @@ index 50fd3419deb668dda64b1056f03fb66da55e6960..c63ee396e990d11e2f613f3b5a478b48 gameprofilerfiller.pop(); } } -@@ -735,9 +748,11 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -736,9 +749,11 @@ public class ServerLevel extends Level implements WorldGenLevel { } // Paper start - optimise random block ticking private final BlockPos.MutableBlockPos chunkTickMutablePosition = new BlockPos.MutableBlockPos(); @@ -2408,7 +2408,7 @@ index 50fd3419deb668dda64b1056f03fb66da55e6960..c63ee396e990d11e2f613f3b5a478b48 public void tickChunk(LevelChunk chunk, int randomTickSpeed) { ChunkPos chunkcoordintpair = chunk.getPos(); boolean flag = this.isRaining(); -@@ -748,7 +763,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -749,7 +764,7 @@ public class ServerLevel extends Level implements WorldGenLevel { gameprofilerfiller.push("thunder"); final BlockPos.MutableBlockPos blockposition = this.chunkTickMutablePosition; // Paper - use mutable to reduce allocation rate, final to force compile fail on change @@ -2417,7 +2417,7 @@ index 50fd3419deb668dda64b1056f03fb66da55e6960..c63ee396e990d11e2f613f3b5a478b48 blockposition.set(this.findLightningTargetAround(this.getBlockRandomPos(j, 0, k, 15))); // Paper if (this.isRainingAt(blockposition)) { DifficultyInstance difficultydamagescaler = this.getCurrentDifficultyAt(blockposition); -@@ -772,7 +787,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -773,7 +788,7 @@ public class ServerLevel extends Level implements WorldGenLevel { } gameprofilerfiller.popPush("iceandsnow"); @@ -2551,7 +2551,7 @@ index 7437f01ca8f416e2c9150250e324af4725a4efb6..7ac51dbfce18a2bc52faa7a915abeccc int LARGE_MAX_STACK_SIZE = 64; diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 49cf3601df7b145d49b1fe9a71ba0bc60c5394b3..570a9f1a3387ac42a3c935519aa1656f9d016504 100644 +index 03ba63163650463040815562e4e76a92758f8661..4e6cbb858806cbf73dbf195bb436bbeff1a5b92a 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -230,7 +230,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { @@ -2623,7 +2623,7 @@ index 49cf3601df7b145d49b1fe9a71ba0bc60c5394b3..570a9f1a3387ac42a3c935519aa1656f return chunkMap.playerEntityTrackerTrackMaps[type.ordinal()].getObjectsInRange(MCUtil.getCoordinateKey(this)); } -@@ -3891,16 +3918,18 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -3892,16 +3919,18 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { } public boolean updateFluidHeightAndDoFluidPushing(TagKey tag, double speed) { @@ -2649,7 +2649,7 @@ index 49cf3601df7b145d49b1fe9a71ba0bc60c5394b3..570a9f1a3387ac42a3c935519aa1656f double d1 = 0.0D; boolean flag = this.isPushedByFluid(); boolean flag1 = false; -@@ -3908,14 +3937,61 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -3909,14 +3938,61 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { int k1 = 0; BlockPos.MutableBlockPos blockposition_mutableblockposition = new BlockPos.MutableBlockPos(); @@ -2717,7 +2717,7 @@ index 49cf3601df7b145d49b1fe9a71ba0bc60c5394b3..570a9f1a3387ac42a3c935519aa1656f if (d2 >= axisalignedbb.minY) { flag1 = true; -@@ -3937,9 +4013,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -3938,9 +4014,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { // CraftBukkit end } } @@ -2743,7 +2743,7 @@ index 79abd84696ef099f6b12ddeaa6e398f18c53316a..29169f9819ebbe0b90d87ed1e5833a3a public final String id; diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 1521f53ee1bd85ca44a68b2c9d969eaf63fa342e..bf896f821b88415691312d5c725ed21bb2e3f024 100644 +index bd5825c5b5c81e0694a3635b981588f0d2ba83cb..2fe2307a10cb2e4e2b055cbe615b3750bf8fd310 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -141,7 +141,6 @@ import org.bukkit.event.entity.EntityTeleportEvent; @@ -3391,7 +3391,7 @@ index 22feab6477bad023c2d6cc9ac99d392d0afe0a31..fb2626d2a6babe531dd1849333b119ab final String id; private final GameRules.Category category; diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 160c0f37aa3aaf7598f852acf9bd444f79444c97..8026e8ca528071bf80fecb5e96370d1d2ae799db 100644 +index aece6a47d978e9d3579334bbedadfeb9f4770894..a96f336e3fa32bba3dbb3a12ce12f107b60e2e4f 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -261,6 +261,15 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @@ -4233,7 +4233,7 @@ index 774556a62eb240da42e84db4502e2ed43495be17..80553face9c70c2a3d897681e7761df8 if (stream != null) { diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java -index 5bffc9a0f6ef9d54abb359565d07509b177c2b82..9bccf9ae5f7a38eb5792697700f6d17cd5969cbe 100644 +index 1a1a1f4d0ac025daccc2d3f84faf6592819f4d5c..8643df8d81714edf60eebd6984bac2c933d1fbd6 100644 --- a/src/main/java/org/spigotmc/ActivationRange.java +++ b/src/main/java/org/spigotmc/ActivationRange.java @@ -38,6 +38,10 @@ import co.aikar.timings.MinecraftTimings; diff --git a/patches/server/0005-Component-related-conveniences.patch b/patches/server/0005-Component-related-conveniences.patch index 8125fcd8b..8ab8a7f30 100644 --- a/patches/server/0005-Component-related-conveniences.patch +++ b/patches/server/0005-Component-related-conveniences.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Component related conveniences diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index ddf4345c48b9033f96ba237fc5c338578e39764b..5c445772eb244bd31316be3f78305614c46b9363 100644 +index 2dcb24145bf07b186b853bd3e4c4be46495575d8..c2507dead89ea66ea8d2bf9081cbe30b7c4eb7dc 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -1698,6 +1698,26 @@ public class ServerPlayer extends Player { @@ -36,7 +36,7 @@ index ddf4345c48b9033f96ba237fc5c338578e39764b..5c445772eb244bd31316be3f78305614 public void displayClientMessage(Component message, boolean actionBar) { this.sendMessage(message, actionBar ? ChatType.GAME_INFO : ChatType.CHAT, Util.NIL_UUID); diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 188c68d4ae46bc05c6d9c901b5c6ab883fa05ea4..1d96cb7914c93bb822968ad485d69c32121543c8 100644 +index 95fe4240f3e1174ec36598f24d63f0073c13b376..563999906b3f8a79e9bd090cb13d946577a4781b 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -1384,6 +1384,62 @@ public abstract class PlayerList { @@ -123,10 +123,10 @@ index a828cad27fcd39f8bfbaefa97052a2a3b6650ee7..67e559d63c543ff716d610cb04ff9426 return this.isFireSource; } diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 570a9f1a3387ac42a3c935519aa1656f9d016504..c0339051f82d60f07cad2b9e23b8ea14dc229300 100644 +index 4e6cbb858806cbf73dbf195bb436bbeff1a5b92a..de9d25ff83818ae0943fd0ed59512bef073a61a2 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -3681,6 +3681,34 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -3682,6 +3682,34 @@ 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 c9a175c85..2304972ea 100644 --- a/patches/server/0006-Ridables.patch +++ b/patches/server/0006-Ridables.patch @@ -34,19 +34,19 @@ index a6f29c00d6716b501d0f52db8670d81e1304b7c0..1b3784eaac409c86806b6deeffcb0848 this.profiler.push(() -> { diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index c63ee396e990d11e2f613f3b5a478b486076ed56..ce247a8412d8adcac995d71c4a42bd9372da947e 100644 +index 93c1f9e3e9d62cc993fedb93fe43cbeed7d39542..8066a3372d21823357942771adc0b4768f505ea2 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -212,6 +212,7 @@ public class ServerLevel extends Level implements WorldGenLevel { - public final UUID uuid; +@@ -213,6 +213,7 @@ public class ServerLevel extends Level implements WorldGenLevel { public boolean hasPhysicsEvent = true; // Paper public boolean hasEntityMoveEvent = false; // Paper + private final alternate.current.wire.WireHandler wireHandler = new alternate.current.wire.WireHandler(this); // Paper - optimize redstone (Alternate Current) + public boolean hasRidableMoveEvent = false; // Purpur public static Throwable getAddToWorldStackTrace(Entity entity) { return new Throwable(entity + " Added to world at " + new java.util.Date()); } diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 5c445772eb244bd31316be3f78305614c46b9363..38995873e2b4cf9e7ac83d074c817a0452948250 100644 +index c2507dead89ea66ea8d2bf9081cbe30b7c4eb7dc..0b4ed7eb6fec1774a6147e48ecc437898578b7b9 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -661,6 +661,15 @@ public class ServerPlayer extends Player { @@ -66,7 +66,7 @@ index 5c445772eb244bd31316be3f78305614c46b9363..38995873e2b4cf9e7ac83d074c817a04 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 41e6543ecb8b4459af91f58ab8a3034b3a429512..835c7ca3473d34b97534998500d2820a5881bdbf 100644 +index 590099657a83bb0bbeeb3273040672486eaec8a4..a2c349175ddcbec725073d746f55fc7f3d83216f 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -2475,6 +2475,8 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser @@ -79,7 +79,7 @@ index 41e6543ecb8b4459af91f58ab8a3034b3a429512..835c7ca3473d34b97534998500d2820a 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)) { ServerGamePacketListenerImpl.this.send(new ClientboundAddMobPacket((LivingEntity) entity)); diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index c0339051f82d60f07cad2b9e23b8ea14dc229300..c7d8db9944876a7e4c9036ef7d65daf7a18b6e86 100644 +index de9d25ff83818ae0943fd0ed59512bef073a61a2..62fee036e91c77f77fece4a0028f95a111fe3382 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -300,7 +300,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { @@ -91,7 +91,7 @@ index c0339051f82d60f07cad2b9e23b8ea14dc229300..c7d8db9944876a7e4c9036ef7d65daf7 private float eyeHeight; public boolean isInPowderSnow; public boolean wasInPowderSnow; -@@ -2671,6 +2671,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -2672,6 +2672,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { this.passengers = ImmutableList.copyOf(list); } @@ -104,7 +104,7 @@ index c0339051f82d60f07cad2b9e23b8ea14dc229300..c7d8db9944876a7e4c9036ef7d65daf7 } return true; // CraftBukkit } -@@ -2711,6 +2717,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -2712,6 +2718,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { return false; } // Spigot end @@ -119,7 +119,7 @@ index c0339051f82d60f07cad2b9e23b8ea14dc229300..c7d8db9944876a7e4c9036ef7d65daf7 if (this.passengers.size() == 1 && this.passengers.get(0) == entity) { this.passengers = ImmutableList.of(); } else { -@@ -4439,4 +4453,45 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -4440,4 +4454,45 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { return ((ServerChunkCache) level.getChunkSource()).isPositionTicking(this); } // Paper end @@ -194,7 +194,7 @@ index e82a9d41a0710c0bd8a3fa2f8ee1704f7e1e56df..2ce9b08535cf3783e6823de348943300 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 bf896f821b88415691312d5c725ed21bb2e3f024..a052d67bbcf1fc4b0a5eb44fb0f0d26e96841416 100644 +index 2fe2307a10cb2e4e2b055cbe615b3750bf8fd310..a8e87b39094756edd111ed321ed6a272e997bc91 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -219,9 +219,9 @@ public abstract class LivingEntity extends Entity { @@ -813,7 +813,7 @@ index 79a9fa2a2257925685e45329365d2828ccd4c48c..793e7c659af32e8bdc07bd7ecfa31fb5 } diff --git a/src/main/java/net/minecraft/world/entity/animal/Cat.java b/src/main/java/net/minecraft/world/entity/animal/Cat.java -index e4eac546836b73b5e9c8fd68ca0d32c01148313e..8ff83309964280e09c36c32d45c7e05e9af5abf1 100644 +index 9f5180271ca8a790aa52763ac46d31b905c9d477..2edd9efb8bf71071807ac1ff5b58bc4b555ecc6b 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Cat.java +++ b/src/main/java/net/minecraft/world/entity/animal/Cat.java @@ -124,6 +124,31 @@ public class Cat extends TamableAnimal { @@ -2138,7 +2138,7 @@ index ac17fd4454730db831cf9b781963062db8614bb7..bd370b91e482913971816dac5f04f494 this.turtle.setSpeed(Mth.lerp(0.125F, this.turtle.getSpeed(), f1)); this.turtle.setDeltaMovement(this.turtle.getDeltaMovement().add(0.0D, (double) this.turtle.getSpeed() * d1 * 0.1D, 0.0D)); diff --git a/src/main/java/net/minecraft/world/entity/animal/Wolf.java b/src/main/java/net/minecraft/world/entity/animal/Wolf.java -index aaf7096835bab3a42d617553dd83e048e4a83766..851dfd17602767556e34059d1282de3c6191480e 100644 +index 249ef89342d2811614507090b79250adf78e33ce..b4825647058df6803be24ea30028c95179a34fb8 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Wolf.java +++ b/src/main/java/net/minecraft/world/entity/animal/Wolf.java @@ -102,9 +102,32 @@ public class Wolf extends TamableAnimal implements NeutralMob { @@ -4273,7 +4273,7 @@ index 0676f452280a9148546c35d1113932b5adc1fc3d..f809b68b0250670c07a2e0ed0f62efa8 if (flag && !this.isSilent()) { this.level.playSound((Player) null, this.getX(), this.getY(), this.getZ(), SoundEvents.STRIDER_EAT, this.getSoundSource(), 1.0F, 1.0F + (this.random.nextFloat() - this.random.nextFloat()) * 0.2F); diff --git a/src/main/java/net/minecraft/world/entity/monster/Vex.java b/src/main/java/net/minecraft/world/entity/monster/Vex.java -index b830858cc68c7c9c8b32ffd3c46b98158c165793..55bd55fbc6fa5f9e84b847c770679334c617d188 100644 +index 1271b6d6a5aa4d9f46aba30d2cc912b942e71176..0f67b219e761712e9befbef4a6012a5e247c9770 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Vex.java +++ b/src/main/java/net/minecraft/world/entity/monster/Vex.java @@ -58,6 +58,50 @@ public class Vex extends Monster { @@ -4384,7 +4384,7 @@ index b830858cc68c7c9c8b32ffd3c46b98158c165793..55bd55fbc6fa5f9e84b847c770679334 Vec3 vec3d1 = Vex.this.getDeltaMovement(); diff --git a/src/main/java/net/minecraft/world/entity/monster/Vindicator.java b/src/main/java/net/minecraft/world/entity/monster/Vindicator.java -index b3a00bff85ade49b476c883350ff3563e1a4b842..ddb0b32821aa6f61370ce8d262ce3d846c7ee9d0 100644 +index 430492facbaa80471875da07bf4b9b601777d1fd..daf76124bfb812141ba7cf66a30599e9a01d4fcc 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Vindicator.java +++ b/src/main/java/net/minecraft/world/entity/monster/Vindicator.java @@ -58,15 +58,34 @@ public class Vindicator extends AbstractIllager { @@ -4552,7 +4552,7 @@ index 056e4c2f7f632dadc0015710c032a0b718d46ff9..a6aaffc41a39be4ae1da44d54a27d324 this.level.getProfiler().pop(); this.updateActivity(); diff --git a/src/main/java/net/minecraft/world/entity/monster/Zombie.java b/src/main/java/net/minecraft/world/entity/monster/Zombie.java -index a6e8f0ddbf17711a10f9853ec4a01291f96f6f06..147883d571532e9d5348dc1aaee9dddc09bb81c2 100644 +index cd88413f30632307faba63572915656b6a8469f7..8d121dcb646d6d77bde48540b14c5d3770d0b276 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Zombie.java +++ b/src/main/java/net/minecraft/world/entity/monster/Zombie.java @@ -104,11 +104,30 @@ public class Zombie extends Monster { diff --git a/patches/server/0028-Zombie-horse-naturally-spawn.patch b/patches/server/0028-Zombie-horse-naturally-spawn.patch index 45bc50bf8..914ecaa7b 100644 --- a/patches/server/0028-Zombie-horse-naturally-spawn.patch +++ b/patches/server/0028-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 291ec6d665daf222150f05ccdf759b8166a718a9..b3c38d079e1365265c3d672484d408df76dfaf2d 100644 +index 8066a3372d21823357942771adc0b4768f505ea2..ac233f1f6a645a927631efdda15aee91040705d8 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -771,9 +771,15 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -772,9 +772,15 @@ public class ServerLevel extends Level implements WorldGenLevel { boolean flag1 = this.getGameRules().getBoolean(GameRules.RULE_DOMOBSPAWNING) && this.random.nextDouble() < (double) difficultydamagescaler.getEffectiveDifficulty() * paperConfig.skeleHorseSpawnChance && !this.getBlockState(blockposition.below()).is(Blocks.LIGHTNING_ROD); // Paper if (flag1) { diff --git a/patches/server/0045-Minecart-settings-and-WASD-controls.patch b/patches/server/0045-Minecart-settings-and-WASD-controls.patch index e72f84ba3..bbdce6051 100644 --- a/patches/server/0045-Minecart-settings-and-WASD-controls.patch +++ b/patches/server/0045-Minecart-settings-and-WASD-controls.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Minecart settings and WASD controls diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index c03f9ed7dfb53041d37de950b2ec734bde614d0e..1a85642f17e84efa2b2484990fcedf91fbbc281d 100644 +index 3c42c1d0c9542f8ce058cd2bfc931f53ad0a82e8..54c6433daec4574fd1653a73fa80761ddf49549e 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -1023,6 +1023,7 @@ public class ServerPlayer extends Player { @@ -135,13 +135,13 @@ index 024124249fafa1ed2cf0257037f655ca8fb0aea2..f6c8def0d9d2f9580a172c3a36a7db0a } } diff --git a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java -index 61590f2f04a797235299f1bd6b78a08f5bfe4a33..c8b85a89bc23139384dfada2e86edbadff9a3d61 100644 +index 15e1d54cb53bcdf962b799d1deb2cade6491b433..e588650ade9f78aed4ad34fef912287e5c4013f4 100644 --- a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java +++ b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java @@ -71,7 +71,7 @@ import net.minecraft.world.phys.shapes.VoxelShape; public abstract class BlockBehaviour { - protected static final Direction[] UPDATE_SHAPE_ORDER = new Direction[]{Direction.WEST, Direction.EAST, Direction.NORTH, Direction.SOUTH, Direction.DOWN, Direction.UP}; + public static final Direction[] UPDATE_SHAPE_ORDER = new Direction[]{Direction.WEST, Direction.EAST, Direction.NORTH, Direction.SOUTH, Direction.DOWN, Direction.UP}; - protected final Material material; + public final Material material; // Purpur - protected -> public public final boolean hasCollision; diff --git a/patches/server/0062-Add-canSaveToDisk-to-Entity.patch b/patches/server/0062-Add-canSaveToDisk-to-Entity.patch index ca8796d42..4ed84ec53 100644 --- a/patches/server/0062-Add-canSaveToDisk-to-Entity.patch +++ b/patches/server/0062-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 e1f161c3ebcf7eb1eb5903144e88c411c9234fbf..02c4c7970dea0a1d9612077c548e118e3b0dc732 100644 +index d6280d4c0fa3221324f80e2cb1480baf80803a72..ff6c87e7084fd6a1bf69a8679ddeed60c2bffcfc 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -4494,5 +4494,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -4495,5 +4495,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { public boolean processClick(InteractionHand hand) { return false; } diff --git a/patches/server/0077-Add-allow-water-in-end-world-option.patch b/patches/server/0077-Add-allow-water-in-end-world-option.patch index 888716e12..737c3de6e 100644 --- a/patches/server/0077-Add-allow-water-in-end-world-option.patch +++ b/patches/server/0077-Add-allow-water-in-end-world-option.patch @@ -27,11 +27,11 @@ index a3f04f66c66f40068792da3ef0e75e7df102b0e0..e4ee273568502f4cf4d85c5d50d5d63c 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 5c69a8914ce87f1a19c4a86c7d7a8a15df78a270..7769befb5775df71d67b1d9b594e33be5334431b 100644 +index 46ed6eeee93c6dc45a43229294d1d161aac5ed24..a0b5ecc76144d3f8291e85ea9b76b9f8bf849f5d 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -1604,4 +1604,14 @@ public abstract class Level implements LevelAccessor, AutoCloseable { - return ret; +@@ -1615,4 +1615,14 @@ public abstract class Level implements LevelAccessor, AutoCloseable { + return null; } // Paper end + diff --git a/patches/server/0092-Stop-squids-floating-on-top-of-water.patch b/patches/server/0092-Stop-squids-floating-on-top-of-water.patch index cf8753c0d..0f903d726 100644 --- a/patches/server/0092-Stop-squids-floating-on-top-of-water.patch +++ b/patches/server/0092-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 02c4c7970dea0a1d9612077c548e118e3b0dc732..204c870b409f82d98b99ff7dee348ba09697d5fe 100644 +index ff6c87e7084fd6a1bf69a8679ddeed60c2bffcfc..d587907d1caf01df2f559c6d1adfc2d5bd5d2242 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -3960,6 +3960,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -3961,6 +3961,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { this.yRotO = this.getYRot(); } diff --git a/patches/server/0094-Entities-can-use-portals-configuration.patch b/patches/server/0094-Entities-can-use-portals-configuration.patch index 11d9e24b4..27f1c4b63 100644 --- a/patches/server/0094-Entities-can-use-portals-configuration.patch +++ b/patches/server/0094-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 204c870b409f82d98b99ff7dee348ba09697d5fe..a4aed8c797f0a5548b5837471083cc48e717ad37 100644 +index d587907d1caf01df2f559c6d1adfc2d5bd5d2242..b7c3d93f2fad502386151e7955414b71d6532673 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -2783,7 +2783,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -2784,7 +2784,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { public void handleInsidePortal(BlockPos pos) { if (this.isOnPortalCooldown()) { this.setPortalCooldown(); @@ -17,7 +17,7 @@ index 204c870b409f82d98b99ff7dee348ba09697d5fe..a4aed8c797f0a5548b5837471083cc48 if (!this.level.isClientSide && !pos.equals(this.portalEntrancePos)) { this.portalEntrancePos = pos.immutable(); } -@@ -3449,7 +3449,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -3450,7 +3450,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { } public boolean canChangeDimensions() { diff --git a/patches/server/0097-Allow-toggling-special-MobSpawners-per-world.patch b/patches/server/0097-Allow-toggling-special-MobSpawners-per-world.patch index a81bef51a..d4d025f4f 100644 --- a/patches/server/0097-Allow-toggling-special-MobSpawners-per-world.patch +++ b/patches/server/0097-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 b3c38d079e1365265c3d672484d408df76dfaf2d..c2481006511217c1677dbb2bab01b40c2d8233ee 100644 +index ac233f1f6a645a927631efdda15aee91040705d8..40d5196cbb3567d642925cd7f0d2924884c46347 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -497,7 +497,24 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -498,7 +498,24 @@ public class ServerLevel extends Level implements WorldGenLevel { this.dragonParts = new Int2ObjectOpenHashMap(); this.tickTime = flag1; this.server = minecraftserver; diff --git a/patches/server/0105-Configurable-daylight-cycle.patch b/patches/server/0105-Configurable-daylight-cycle.patch index a629840af..12d8dc121 100644 --- a/patches/server/0105-Configurable-daylight-cycle.patch +++ b/patches/server/0105-Configurable-daylight-cycle.patch @@ -31,7 +31,7 @@ index d011944a64c4e61b7285325a37ab05a540c99b5c..b15647b6cf2495b15a994ab32a4d53cb } 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 321f6a27ef87261db910df421ed453570c8a81ac..5f3090e86b885d6cac8688082046408d6b06354f 100644 +index 40d5196cbb3567d642925cd7f0d2924884c46347..09800a0c113e1e70ad773e55bd370e7b3c36d463 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -202,6 +202,8 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -43,7 +43,7 @@ index 321f6a27ef87261db910df421ed453570c8a81ac..5f3090e86b885d6cac8688082046408d // Paper start - execute chunk tasks mid tick public long lastMidTickExecuteFailure; // Paper end - execute chunk tasks mid tick -@@ -565,6 +567,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -566,6 +568,7 @@ public class ServerLevel extends Level implements WorldGenLevel { this.getCraftServer().addWorld(this.getWorld()); // CraftBukkit this.asyncChunkTaskManager = new com.destroystokyo.paper.io.chunk.ChunkTaskManager(this); // Paper @@ -51,7 +51,7 @@ index 321f6a27ef87261db910df421ed453570c8a81ac..5f3090e86b885d6cac8688082046408d } public void setWeatherParameters(int clearDuration, int rainDuration, boolean raining, boolean thundering) { -@@ -733,6 +736,13 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -734,6 +737,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 321f6a27ef87261db910df421ed453570c8a81ac..5f3090e86b885d6cac8688082046408d this.setDayTime(this.levelData.getDayTime() + 1L); } -@@ -741,7 +751,21 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -742,7 +752,21 @@ public class ServerLevel extends Level implements WorldGenLevel { public void setDayTime(long timeOfDay) { this.serverLevelData.setDayTime(timeOfDay); diff --git a/patches/server/0137-Fix-stuck-in-portals.patch b/patches/server/0137-Fix-stuck-in-portals.patch index b9ff5b86a..90d1668ed 100644 --- a/patches/server/0137-Fix-stuck-in-portals.patch +++ b/patches/server/0137-Fix-stuck-in-portals.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix stuck in portals diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 152d4f5be6ec00e3a38aeeaf89fbfddfafdc21c3..ceb6d67079819b5ef293b030875666eb8de7095c 100644 +index e070c4dc4f8583b7d5c10b353c5e21304add0233..9f282439d30ada6b206153d65812b772bcaa1e45 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -1176,6 +1176,7 @@ public class ServerPlayer extends Player { @@ -17,10 +17,10 @@ index 152d4f5be6ec00e3a38aeeaf89fbfddfafdc21c3..ceb6d67079819b5ef293b030875666eb // CraftBukkit end this.setLevel(worldserver); diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 213dc23771b85da8db6825c4ba5463abe42f690c..5225812252721bd183957bd43bc485b2d7b9208d 100644 +index aab048f2bf12b2f956c3946ba8446aa58bf5826c..44a03a3e9b34651f45d94a71c9c4272cd0bdc4af 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -2780,12 +2780,15 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -2781,12 +2781,15 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { return Vec3.directionFromRotation(this.getRotationVector()); } diff --git a/patches/server/0155-Config-for-skipping-night.patch b/patches/server/0155-Config-for-skipping-night.patch index 66fc77be7..6246b6771 100644 --- a/patches/server/0155-Config-for-skipping-night.patch +++ b/patches/server/0155-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 fef7565a9f64a8630e8bce20ea423f70b0ffa48e..be0e83831f9eea27a3a323c234165b3af4ac652a 100644 +index 09800a0c113e1e70ad773e55bd370e7b3c36d463..285927ca0c196c554df725403ea2cfd6d84013db 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -606,7 +606,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -607,7 +607,7 @@ public class ServerLevel extends Level implements WorldGenLevel { int i = this.getGameRules().getInt(GameRules.RULE_PLAYERS_SLEEPING_PERCENTAGE); long j; diff --git a/patches/server/0158-Drowning-Settings.patch b/patches/server/0158-Drowning-Settings.patch index c8130a513..c29eb1899 100644 --- a/patches/server/0158-Drowning-Settings.patch +++ b/patches/server/0158-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 5225812252721bd183957bd43bc485b2d7b9208d..df6caa1d3f3024b26b7e4b01ebb2e307138850dc 100644 +index 44a03a3e9b34651f45d94a71c9c4272cd0bdc4af..5142a2256272383693a9c0ad7605ac4843673363 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -3014,7 +3014,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -3015,7 +3015,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { } public int getMaxAirSupply() { @@ -18,7 +18,7 @@ index 5225812252721bd183957bd43bc485b2d7b9208d..df6caa1d3f3024b26b7e4b01ebb2e307 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 bb114e9c8fb06c6530f302f5db5ba90eb048ff05..82ef5fa5ca09fafff3c1720072158a3098b54496 100644 +index 66cf9f16f0f983c1f19cc96958d0214dcef2c960..42935f0818bc854cd62476802c3c4c3751f7c755 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -421,7 +421,7 @@ public abstract class LivingEntity extends Entity { diff --git a/patches/server/0187-API-for-any-mob-to-burn-daylight.patch b/patches/server/0187-API-for-any-mob-to-burn-daylight.patch index 6243164ce..df2a4b72b 100644 --- a/patches/server/0187-API-for-any-mob-to-burn-daylight.patch +++ b/patches/server/0187-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 ab822d03cbd8cc5047277f42f29e4c736fb177b3..6c45a860407e42d0f72ab02afddc5b1feca837f3 100644 +index 8026ffe6c253ab142fa4f9401235fc63e5240a24..c3b6be428c2536ac6423dd5024a46ed0324e0216 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -4507,5 +4507,18 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -4508,5 +4508,18 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { public boolean canSaveToDisk() { return true; } @@ -29,7 +29,7 @@ index ab822d03cbd8cc5047277f42f29e4c736fb177b3..6c45a860407e42d0f72ab02afddc5b1f // Purpur end } diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index e5077f045b2a2bea277494d062b3d5c5cd1385e8..6866f2efa5d558d8eb01bfa88e1d916013cf6577 100644 +index 7c8fe0cfd3b9d72cf7d719f2ac8ed2e85db962de..56423ccb31763d51dd38708ffc3d97dc4cfe09ce 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -263,6 +263,7 @@ public abstract class LivingEntity extends Entity { @@ -273,7 +273,7 @@ index e7e4d87fb8a5276fd617afc4e0b925100abf3f76..42919b2267eed71e29830a96afdd3be1 // Paper end private static enum AttackPhase { diff --git a/src/main/java/net/minecraft/world/entity/monster/Zombie.java b/src/main/java/net/minecraft/world/entity/monster/Zombie.java -index 6e2ab702f63c08f0124b529ca196e83934e1d7a0..bc92a419f15d20f741dc6b7b218018c0c06ae6c2 100644 +index 52e6eb5269249e586683de647c350651e2c96c91..2e9eaa19aaf643c09bc1fea04fe37388c02845e7 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Zombie.java +++ b/src/main/java/net/minecraft/world/entity/monster/Zombie.java @@ -93,11 +93,12 @@ public class Zombie extends Monster { @@ -285,7 +285,7 @@ index 6e2ab702f63c08f0124b529ca196e83934e1d7a0..bc92a419f15d20f741dc6b7b218018c0 public Zombie(EntityType type, Level world) { super(type, world); - this.breakDoorGoal = new BreakDoorGoal(this, com.google.common.base.Predicates.in(world.paperConfig.zombieBreakDoors)); // Paper + this.breakDoorGoal = new BreakDoorGoal(this, com.google.common.base.Predicates.in(world.paperConfig.entitiesDifficultyBreakDoors.getOrDefault(type, world.paperConfig.entitiesDifficultyBreakDoors.get(EntityType.ZOMBIE)))); // Paper + this.setShouldBurnInDay(true); // Purpur } diff --git a/patches/server/0190-Add-toggle-for-sand-duping-fix.patch b/patches/server/0190-Add-toggle-for-sand-duping-fix.patch index b4909a9b4..1f2f55af9 100644 --- a/patches/server/0190-Add-toggle-for-sand-duping-fix.patch +++ b/patches/server/0190-Add-toggle-for-sand-duping-fix.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add toggle for sand duping fix diff --git a/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java b/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java -index 46102c28d10b11ecbafd3dda2de66982eaed8a00..fa88207befcee5e95c86479af1f8923eeeb0bce9 100644 +index 318ea6ebf4c13a984b3815f00bf6cb3856ff6fe0..ae35add70d25c6c202e24237d6626665bb1bdcd5 100644 --- a/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java +++ b/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java -@@ -127,7 +127,7 @@ public class FallingBlockEntity extends Entity { +@@ -128,7 +128,7 @@ public class FallingBlockEntity extends Entity { @Override public void tick() { // Paper start - fix sand duping @@ -17,7 +17,7 @@ index 46102c28d10b11ecbafd3dda2de66982eaed8a00..fa88207befcee5e95c86479af1f8923e return; } // Paper end - fix sand duping -@@ -144,7 +144,7 @@ public class FallingBlockEntity extends Entity { +@@ -145,7 +145,7 @@ public class FallingBlockEntity extends Entity { this.move(MoverType.SELF, this.getDeltaMovement()); // Paper start - fix sand duping diff --git a/patches/server/0191-Add-toggle-for-end-portal-safe-teleporting.patch b/patches/server/0191-Add-toggle-for-end-portal-safe-teleporting.patch index f7577f84a..ac1289b5f 100644 --- a/patches/server/0191-Add-toggle-for-end-portal-safe-teleporting.patch +++ b/patches/server/0191-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 6c45a860407e42d0f72ab02afddc5b1feca837f3..f09f233c2005b600feffee27237ce01c6207b255 100644 +index c3b6be428c2536ac6423dd5024a46ed0324e0216..219f9255d0a20bd66a7d33d84f6224621a56c030 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -2831,7 +2831,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -2832,7 +2832,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { } this.processPortalCooldown(); diff --git a/patches/server/0193-Make-lightning-rod-range-configurable.patch b/patches/server/0193-Make-lightning-rod-range-configurable.patch index 0cbbbdaaa..da14ee82c 100644 --- a/patches/server/0193-Make-lightning-rod-range-configurable.patch +++ b/patches/server/0193-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 be0e83831f9eea27a3a323c234165b3af4ac652a..91633d891c6a5d7c54c996240f657d47ac705a05 100644 +index 285927ca0c196c554df725403ea2cfd6d84013db..24b800d99fda57154c23352b1c8889f7cd2cba36 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -914,7 +914,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -915,7 +915,7 @@ public class ServerLevel extends Level implements WorldGenLevel { return villageplacetype == PoiType.LIGHTNING_ROD; }, (blockposition1) -> { return blockposition1.getY() == this.getLevel().getHeight(Heightmap.Types.WORLD_SURFACE, blockposition1.getX(), blockposition1.getZ()) - 1; diff --git a/patches/server/0208-Customizable-sleeping-actionbar-messages.patch b/patches/server/0208-Customizable-sleeping-actionbar-messages.patch index f5d41b847..0f5496bc4 100644 --- a/patches/server/0208-Customizable-sleeping-actionbar-messages.patch +++ b/patches/server/0208-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 91633d891c6a5d7c54c996240f657d47ac705a05..43bfe80596987cd80c7aa475cd168777cda8a422 100644 +index 24b800d99fda57154c23352b1c8889f7cd2cba36..d85249f7944e548f360712212166cdf7ecbf475c 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -963,11 +963,29 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -964,11 +964,29 @@ 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/0229-Option-for-if-rain-and-thunder-should-stop-on-sleep.patch b/patches/server/0229-Option-for-if-rain-and-thunder-should-stop-on-sleep.patch index 945ee32e9..a56c872f4 100644 --- a/patches/server/0229-Option-for-if-rain-and-thunder-should-stop-on-sleep.patch +++ b/patches/server/0229-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 43bfe80596987cd80c7aa475cd168777cda8a422..1bc17912d2cdfb1af4584dd95d0a6c7a87b31b41 100644 +index d85249f7944e548f360712212166cdf7ecbf475c..77cb010bd8b67f436726dfe32e5dd3b897beff55 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -1124,6 +1124,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1125,6 +1125,7 @@ public class ServerLevel extends Level implements WorldGenLevel { private void resetWeatherCycle() { // CraftBukkit start @@ -16,7 +16,7 @@ index 43bfe80596987cd80c7aa475cd168777cda8a422..1bc17912d2cdfb1af4584dd95d0a6c7a 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.... -@@ -1131,6 +1132,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1132,6 +1133,7 @@ public class ServerLevel extends Level implements WorldGenLevel { this.serverLevelData.setRainTime(0); } // CraftBukkit end @@ -25,7 +25,7 @@ index 43bfe80596987cd80c7aa475cd168777cda8a422..1bc17912d2cdfb1af4584dd95d0a6c7a // 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 24f78e964f39104be5f5eb6c961a7d98bfbeb362..6ecdae838b988bd7b40dea9cbb4d17965d31d17f 100644 +index 759ca5b6ac6269957b28ef2454e9fd89a9eafc8f..0af5fe7dc87551b1f0322e5955aca6a13fd8dfa2 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -133,6 +133,8 @@ public class PurpurWorldConfig { diff --git a/patches/server/0258-Allow-void-trading.patch b/patches/server/0258-Allow-void-trading.patch index ef3700367..a03849556 100644 --- a/patches/server/0258-Allow-void-trading.patch +++ b/patches/server/0258-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 603d68d01a8357d510f0cae81b399668e83f75d3..8066c874098039f75017e6bebd7981fd4804bcda 100644 +index 77cb010bd8b67f436726dfe32e5dd3b897beff55..72df9c6d1ac2fef090b0532da079c607f79bce89 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -2593,7 +2593,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -2602,7 +2602,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