diff --git a/gradle.properties b/gradle.properties index a52b4bc..bf37cbc 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,13 +1,8 @@ -group=wtf.etil.mirai -version=1.19-R0.1-SNAPSHOT -mcVersion=1.19 -packageVersion=1_19_R1 -pufferfishRef=37f936f0b89395c6b59b08f4695525096c9a888b - org.gradle.caching=true -org.gradle.caching.debug=false -org.gradle.configureondemand=true org.gradle.parallel=true org.gradle.vfs.watch=false -org.gradle.daemon=false -org.gradle.jvmargs=-Dfile.encoding=UTF-8 + +group=wtf.etil.mirai +version=1.19.1-R0.1-SNAPSHOT +mcVersion=1.19.1 +pufferfishRef=b21931ddf3aa85ced77837172a1740511b2c2ec5 \ No newline at end of file diff --git a/patches/server/0001-Mirai-Branding-Changes.patch b/patches/server/0001-Mirai-Branding-Changes.patch index 789b324..15f8711 100644 --- a/patches/server/0001-Mirai-Branding-Changes.patch +++ b/patches/server/0001-Mirai-Branding-Changes.patch @@ -217,10 +217,10 @@ index b0390eedb507d27426d1e1d73bd4ab63aec89ebe..509a9a5326d94200ca3d7a83ae47c6bb .completer(new ConsoleCommandCompleter(this.server)) .option(LineReader.Option.COMPLETE_IN_WORD, true); diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 67c4cd2fb3c64432b0390c9d497ef7067577c64a..cd704d013024088ba4fbf7a04daeb0135e794651 100644 +index d66c60918313b0ede41ed96aa82e11fb2230f95b..d92c69e902d7631634c2762f0a8339c966ad9f7d 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -911,7 +911,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop { +@@ -218,7 +218,7 @@ public class ListTag extends CollectionTag { } } @@ -173,7 +173,7 @@ index f346306d61854bdc6b395f5d8f799909537a1b50..3dd6526c3550a08f7da75ce0b80be4ba } public long[] getLongArray(int index) { -@@ -228,7 +228,7 @@ public class ListTag extends CollectionTag { +@@ -229,7 +229,7 @@ public class ListTag extends CollectionTag { } } @@ -183,10 +183,10 @@ index f346306d61854bdc6b395f5d8f799909537a1b50..3dd6526c3550a08f7da75ce0b80be4ba public double getDouble(int index) { diff --git a/src/main/java/net/minecraft/network/Connection.java b/src/main/java/net/minecraft/network/Connection.java -index b65a3626d2e0817cd1e223ec3b10e82fa0339663..e3d2d71c31e2257810ee1da00958d43887062200 100644 +index 868d4913f63b3f4752f7f1cdcd81e118e482c474..813b77047cd2b158f0254a18f94983e37fce4b72 100644 --- a/src/main/java/net/minecraft/network/Connection.java +++ b/src/main/java/net/minecraft/network/Connection.java -@@ -315,7 +315,7 @@ public class Connection extends SimpleChannelInboundHandler> { +@@ -311,7 +311,7 @@ public class Connection extends SimpleChannelInboundHandler> { } public void setListener(PacketListener listener) { @@ -209,10 +209,10 @@ index 0a843e0afbcb1af8e2641515eb244b791b819b8c..c420ce5c1bebdb0abe273d73a61a15e5 OptionSpec optionspec11 = optionparser.accepts("port").withRequiredArg().ofType(Integer.class).defaultsTo(-1, new Integer[0]); OptionSpec optionspec12 = optionparser.accepts("serverId").withRequiredArg(); diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index e995aa81665bdf582f753acec3f0584f0060c851..f895903aaf0a69c65947c91f7f486f04991434d8 100644 +index d92c69e902d7631634c2762f0a8339c966ad9f7d..da2cab1d6df536baa9274fb2aa949003d803e332 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1371,8 +1371,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop getCurrentlyTickingEntities() { Entity ticking = currentlyTickingEntity.get(); @@ -259,10 +259,10 @@ index 32a39a150a3d2bbae95a726901f3f46363e34ecf..7b80dfb72b191bd86e5e4443efc87713 return ret; } diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 0960025c64fe2e8c055fcbf6e695ff90c1f41cd9..f4e12d6a122dc66505289651de105cfac5dd7b86 100644 +index 5b543a3f115fc80778db662d8557d12d3bd36942..23038001b5165a0092c23707b779293c8811c868 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -385,7 +385,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser +@@ -413,7 +413,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic 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 @@ -271,7 +271,7 @@ index 0960025c64fe2e8c055fcbf6e695ff90c1f41cd9..f4e12d6a122dc66505289651de105cfa } } else { if (elapsedTime >= 15000L) { // 15 seconds -@@ -831,13 +831,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser +@@ -875,13 +875,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic // PacketUtils.ensureRunningOnSameThread(packet, this, this.player.getLevel()); // Paper - run this async // CraftBukkit start if (this.chatSpamTickCount.addAndGet(io.papermc.paper.configuration.GlobalConfiguration.get().spamLimiter.tabSpamIncrement) > io.papermc.paper.configuration.GlobalConfiguration.get().spamLimiter.tabSpamLimit && !this.server.getPlayerList().isOp(this.player.getGameProfile())) { // Paper start - split and make configurable @@ -287,7 +287,7 @@ index 0960025c64fe2e8c055fcbf6e695ff90c1f41cd9..f4e12d6a122dc66505289651de105cfa return; } // Paper end -@@ -3138,7 +3138,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser +@@ -3346,7 +3346,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic // Paper start if (!org.bukkit.Bukkit.isPrimaryThread()) { if (recipeSpamPackets.addAndGet(io.papermc.paper.configuration.GlobalConfiguration.get().spamLimiter.recipeSpamIncrement) > io.papermc.paper.configuration.GlobalConfiguration.get().spamLimiter.recipeSpamLimit) { @@ -297,10 +297,10 @@ index 0960025c64fe2e8c055fcbf6e695ff90c1f41cd9..f4e12d6a122dc66505289651de105cfa } } diff --git a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java -index 039b47e19d672ec9066c41fcc6342523992bf7b6..9903316fe3164a987a7745104c2f1875ca0c0a47 100644 +index c36babd85b7d5ba57c08708d0bbf01e16a70a4b2..9a4d3d75f12716a69aec78034079fcad6c8cca04 100644 --- a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java -@@ -285,8 +285,8 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener +@@ -295,8 +295,8 @@ public class ServerLoginPacketListenerImpl implements TickablePacketListener, Se @Override public void handleHello(ServerboundHelloPacket packet) { @@ -311,7 +311,7 @@ index 039b47e19d672ec9066c41fcc6342523992bf7b6..9903316fe3164a987a7745104c2f1875 // Paper start - validate usernames if (io.papermc.paper.configuration.GlobalConfiguration.get().proxies.isProxyOnlineMode() && io.papermc.paper.configuration.GlobalConfiguration.get().unsupportedSettings.performUsernameValidation) { if (!this.iKnowThisMayNotBeTheBestIdeaButPleaseDisableUsernameValidation && !validateUsername(packet.name())) { -@@ -356,7 +356,7 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener +@@ -356,7 +356,7 @@ public class ServerLoginPacketListenerImpl implements TickablePacketListener, Se @Override public void handleKey(ServerboundKeyPacket packet) { @@ -321,10 +321,10 @@ index 039b47e19d672ec9066c41fcc6342523992bf7b6..9903316fe3164a987a7745104c2f1875 final String s; diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 20cdfdb3b9351f74e89bc45b3ab972384165659a..4030818ff51eca95e1c2ec38c7eca5bff79a0a4a 100644 +index 37d8a797bb590c30bf42ab04128489a9390684d3..affcdfcc60a3c68a719115c7e3fc06b81e94eda6 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java -@@ -734,7 +734,7 @@ public abstract class PlayerList { +@@ -735,7 +735,7 @@ public abstract class PlayerList { while (iterator.hasNext()) { entityplayer = (ServerPlayer) iterator.next(); this.save(entityplayer); // CraftBukkit - Force the player's inventory to be saved @@ -372,10 +372,10 @@ index c82bb38b5b1c9204daef21455723d21509ad1c44..4aa044ab8748c01b0022096733e5bacf private EquipmentSlot(EquipmentSlot.Type type, int entityId, int armorStandId, String name) { this.type = type; diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 8a9b6cacfb87d4ba825f3386894c25631ecbb1f7..d8f7361960eff24022a15505dec00613310db3b0 100644 +index 8a0e566aa0124480481b17b5b31691849c3ee7cd..2cb4cbbfd6c043d489ac8122a26e711a850b8c23 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -3064,7 +3064,7 @@ public abstract class LivingEntity extends Entity { +@@ -3067,7 +3067,7 @@ public abstract class LivingEntity extends Entity { @Nullable private Map collectEquipmentChanges() { Map map = null; @@ -425,7 +425,7 @@ index e8e60ea8b9e97ed87be78752f398ab25ba8e9a1b..9980df9128dfc51f2afbca8f4aa2031e for (int j = 0; j < i; ++j) { diff --git a/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java b/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java -index cff0ed9ae6e79f84870343e43574f384dd73ea88..79f5390cbbe014687010b110bcf572bdcff3339d 100644 +index fb0a77b4cf1ba47c73c00993bd9b7454240fe5d6..df1dfaea8b49794d9e3ecb792a129113829b60c9 100644 --- a/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java +++ b/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java @@ -233,7 +233,7 @@ public class ZombieVillager extends Zombie implements VillagerDataHolder { @@ -438,7 +438,7 @@ index cff0ed9ae6e79f84870343e43574f384dd73ea88..79f5390cbbe014687010b110bcf572bd for (int j = 0; j < i; ++j) { diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index 6b3cfc19c4fd1382ddf534265a1114995a4f6b55..24cf8fba9515dfbeb1422e69968c085f1d4f8f6e 100644 +index c18a0bc94d0210396046f4475e49a739088593f3..4fea1c9873b4dd9c9f21722adbb02200487caf3c 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java @@ -969,7 +969,7 @@ public final class ItemStack { diff --git a/patches/server/0007-lithium-CompactSineLUT.patch b/patches/server/0007-lithium-CompactSineLUT.patch index df710ab..e060fa1 100644 --- a/patches/server/0007-lithium-CompactSineLUT.patch +++ b/patches/server/0007-lithium-CompactSineLUT.patch @@ -104,10 +104,10 @@ index 0000000000000000000000000000000000000000..d2b00d9a91b60716d5f458048df3d944 +} \ No newline at end of file diff --git a/src/main/java/net/minecraft/util/Mth.java b/src/main/java/net/minecraft/util/Mth.java -index 81c5cf66e15ca814be2d0a5a4798ac71732601c4..a4a6885bea59210192e8a2ce8834372275e7ceb3 100644 +index 9b22034aa655ceb0da151d9d8ca3147f6487889a..ec587cf6592a1dc0d90d6f54af1bdfab97aec7c6 100644 --- a/src/main/java/net/minecraft/util/Mth.java +++ b/src/main/java/net/minecraft/util/Mth.java -@@ -31,6 +31,7 @@ public class Mth { +@@ -32,6 +32,7 @@ public class Mth { }); private static final RandomSource RANDOM = RandomSource.createThreadSafe(); @@ -115,7 +115,7 @@ index 81c5cf66e15ca814be2d0a5a4798ac71732601c4..a4a6885bea59210192e8a2ce88343722 private static final int[] MULTIPLY_DE_BRUIJN_BIT_POSITION = new int[]{0, 1, 28, 2, 29, 14, 24, 3, 30, 22, 20, 15, 25, 17, 4, 8, 31, 27, 13, 23, 21, 19, 16, 7, 26, 12, 18, 6, 11, 5, 10, 9}; private static final double ONE_SIXTH = 0.16666666666666666D; private static final int FRAC_EXP = 8; -@@ -40,11 +41,11 @@ public class Mth { +@@ -41,11 +42,11 @@ public class Mth { private static final double[] COS_TAB = new double[257]; public static float sin(float value) { diff --git a/patches/server/0009-Add-last-tick-time-API.patch b/patches/server/0009-Add-last-tick-time-API.patch index f968642..129a3ff 100644 --- a/patches/server/0009-Add-last-tick-time-API.patch +++ b/patches/server/0009-Add-last-tick-time-API.patch @@ -7,10 +7,10 @@ Original code by YatopiaMC, licensed under MIT You can find the original code on https://github.com/YatopiaMC/Yatopia diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index f895903aaf0a69c65947c91f7f486f04991434d8..d8099a9bac8a6dc48e1096a4d0a56abfad969cd1 100644 +index da2cab1d6df536baa9274fb2aa949003d803e332..f5110261542aa0546b10d0da7e3c4e95d2d59639 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1117,6 +1117,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop currentCommand = new java.util.concurrent.ConcurrentHashMap<>(); // CraftBukkit // Paper + public final java.util.Map currentCommand = new java.util.concurrent.ConcurrentHashMap<>(); // CraftBukkit // Paper // Patina - make a field final diff --git a/patches/server/0016-Don-t-create-new-random-instance.patch b/patches/server/0016-Don-t-create-new-random-instance.patch index 37535aa..6bb5b4a 100644 --- a/patches/server/0016-Don-t-create-new-random-instance.patch +++ b/patches/server/0016-Don-t-create-new-random-instance.patch @@ -7,10 +7,10 @@ Original code by PatinaMC, licensed under GNU General Public License v3.0 You can find the original code on https://github.com/PatinaMC/Patina diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 353463084d90eb684717e65c56da52cd25a1e375..226a3a698e3863296481753434a716a793cb5d51 100644 +index 94944ba458178f9e5b772224da329bb5d85f4394..56e5679a3910a6e5b25aeb0d3eb7420444296932 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -374,7 +374,7 @@ public class ServerPlayer extends Player { +@@ -376,7 +376,7 @@ public class ServerPlayer extends Player { long l = k * k; int i1 = l > 2147483647L ? Integer.MAX_VALUE : (int) l; int j1 = this.getCoprime(i1); @@ -19,7 +19,7 @@ index 353463084d90eb684717e65c56da52cd25a1e375..226a3a698e3863296481753434a716a7 for (int l1 = 0; l1 < i1; ++l1) { int i2 = (k1 + j1 * l1) % i1; -@@ -411,7 +411,7 @@ public class ServerPlayer extends Player { +@@ -413,7 +413,7 @@ public class ServerPlayer extends Player { long l = k * k; int i1 = l > 2147483647L ? Integer.MAX_VALUE : (int) l; int j1 = this.getCoprime(i1); @@ -29,15 +29,15 @@ index 353463084d90eb684717e65c56da52cd25a1e375..226a3a698e3863296481753434a716a7 for (int l1 = 0; l1 < i1; ++l1) { int i2 = (k1 + j1 * l1) % i1; diff --git a/src/main/java/net/minecraft/server/rcon/thread/QueryThreadGs4.java b/src/main/java/net/minecraft/server/rcon/thread/QueryThreadGs4.java -index 29e2bc3fa3091df3c2fa908a2632c3b592c4a872..55a2f7af4b5a78f616fe9af00783d7452f8ee203 100644 +index 1ef089dbf83de35d875c00efdf468c397be56978..c345f10cbf7f3451edc604f97cdf959d70639e17 100644 --- a/src/main/java/net/minecraft/server/rcon/thread/QueryThreadGs4.java +++ b/src/main/java/net/minecraft/server/rcon/thread/QueryThreadGs4.java -@@ -348,7 +348,7 @@ public class QueryThreadGs4 extends GenericThread { +@@ -349,7 +349,7 @@ public class QueryThreadGs4 extends GenericThread { this.identBytes[2] = bs[5]; this.identBytes[3] = bs[6]; this.ident = new String(this.identBytes, StandardCharsets.UTF_8); - this.challenge = RandomSource.create().nextInt(16777216); + this.challenge = java.util.concurrent.ThreadLocalRandom.current().nextInt(16777216); // Patina - don't create new random instance - this.challengeBytes = String.format("\t%s%d\u0000", this.ident, this.challenge).getBytes(StandardCharsets.UTF_8); + this.challengeBytes = String.format(Locale.ROOT, "\t%s%d\u0000", this.ident, this.challenge).getBytes(StandardCharsets.UTF_8); } diff --git a/patches/server/0017-Completely-remove-bootstrapExecutor.patch b/patches/server/0017-Completely-remove-bootstrapExecutor.patch index 3e86ff2..95fd7a9 100644 --- a/patches/server/0017-Completely-remove-bootstrapExecutor.patch +++ b/patches/server/0017-Completely-remove-bootstrapExecutor.patch @@ -7,10 +7,10 @@ Original code by PatinaMC, licensed under GNU General Public License v3.0 You can find the original code on https://github.com/PatinaMC/Patina diff --git a/src/main/java/net/minecraft/Util.java b/src/main/java/net/minecraft/Util.java -index c540b695282e2cca97cc4e3320d641befa19c1c6..eee3347a5fd1b1f4eb0bbee29483f0a81868cf16 100644 +index cdb7aea969b56f59d88f60bc3744e4932228c50a..59ecf5ff33617a6b9d2a3ae317315484235da804 100644 --- a/src/main/java/net/minecraft/Util.java +++ b/src/main/java/net/minecraft/Util.java -@@ -77,7 +77,7 @@ public class Util { +@@ -79,7 +79,7 @@ public class Util { private static final int DEFAULT_MAX_THREADS = 255; private static final String MAX_THREADS_SYSTEM_PROPERTY = "max.bg.threads"; private static final AtomicInteger WORKER_COUNT = new AtomicInteger(1); @@ -19,7 +19,7 @@ index c540b695282e2cca97cc4e3320d641befa19c1c6..eee3347a5fd1b1f4eb0bbee29483f0a8 private static final ExecutorService BACKGROUND_EXECUTOR = makeExecutor("Main", -1); // Paper - add -1 priority // Paper start - don't submit BLOCKING PROFILE LOOKUPS to the world gen thread public static final ExecutorService PROFILE_EXECUTOR = Executors.newFixedThreadPool(2, new java.util.concurrent.ThreadFactory() { -@@ -200,7 +200,7 @@ public class Util { +@@ -207,7 +207,7 @@ public class Util { } public static ExecutorService bootstrapExecutor() { diff --git a/patches/server/0019-Better-handling-of-async-tasks.patch b/patches/server/0019-Better-handling-of-async-tasks.patch index 516d72f..ac80e60 100644 --- a/patches/server/0019-Better-handling-of-async-tasks.patch +++ b/patches/server/0019-Better-handling-of-async-tasks.patch @@ -59,10 +59,10 @@ index c0fdc5a79107f8694a514a12d5526bd431fc45e9..eeb20c5b9365a04db45e738793f6c10a public static Runnable once(Runnable run) { AtomicBoolean ran = new AtomicBoolean(false); diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index e8aeaa1d629d3fe870bbe1c0bacbebd4fb81275e..9f6520d57840b40d506df141bdf755d593b64c27 100644 +index e790ef23bdad13cb40666e408af97e4b6d4c411f..4ace20e9e87c53f2d737c46bde6b9e28282a26a3 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1017,6 +1017,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop { -@@ -142,7 +143,7 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener +@@ -144,7 +145,7 @@ public class ServerLoginPacketListenerImpl implements TickablePacketListener, Se return ret; } @@ -107,7 +107,7 @@ index 9903316fe3164a987a7745104c2f1875ca0c0a47..62c4f737022fa226be1e1140cc4bafa0 // Paper end // Spigot start public void initUUID() -@@ -329,7 +330,8 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener +@@ -329,7 +330,8 @@ public class ServerLoginPacketListenerImpl implements TickablePacketListener, Se // Paper end // Spigot start // Paper start - Cache authenticator threads @@ -117,7 +117,7 @@ index 9903316fe3164a987a7745104c2f1875ca0c0a47..62c4f737022fa226be1e1140cc4bafa0 @Override public void run() { try { -@@ -385,7 +387,8 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener +@@ -387,7 +389,8 @@ public class ServerLoginPacketListenerImpl implements TickablePacketListener, Se } // Paper start - Cache authenticator threads @@ -127,7 +127,7 @@ index 9903316fe3164a987a7745104c2f1875ca0c0a47..62c4f737022fa226be1e1140cc4bafa0 public void run() { GameProfile gameprofile = ServerLoginPacketListenerImpl.this.gameProfile; -@@ -533,7 +536,8 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener +@@ -536,7 +539,8 @@ public class ServerLoginPacketListenerImpl implements TickablePacketListener, Se } // Proceed with login @@ -182,7 +182,7 @@ index 9c1aff17aabd062640e3f451a2ef8c50a7c62f10..29eda0db104fe13fb268ebe0750e5e3e } return false; diff --git a/src/main/java/org/spigotmc/WatchdogThread.java b/src/main/java/org/spigotmc/WatchdogThread.java -index d568fc92d03c313a782796cc720a1ebb1a5ad8be..adfd28b4b34ff0b161076b4b03f7d93fecb09573 100644 +index 413bcdb0389718a73047a114e6f5d05d96bdcf43..4e9ae34c690fed7f5d6c52e39a33a00e7943cedd 100644 --- a/src/main/java/org/spigotmc/WatchdogThread.java +++ b/src/main/java/org/spigotmc/WatchdogThread.java @@ -140,6 +140,7 @@ public class WatchdogThread extends Thread diff --git a/patches/server/0020-Use-MCUtil.asyncExecutor-for-MAIN_WORKER_EXECUTOR-in.patch b/patches/server/0020-Use-MCUtil.asyncExecutor-for-MAIN_WORKER_EXECUTOR-in.patch index 6d94f84..a0fa6ed 100644 --- a/patches/server/0020-Use-MCUtil.asyncExecutor-for-MAIN_WORKER_EXECUTOR-in.patch +++ b/patches/server/0020-Use-MCUtil.asyncExecutor-for-MAIN_WORKER_EXECUTOR-in.patch @@ -39,12 +39,12 @@ index 0000000000000000000000000000000000000000..7bd88761137b2a68c04fbaa920a9ea9c +} \ No newline at end of file diff --git a/src/main/java/net/minecraft/Util.java b/src/main/java/net/minecraft/Util.java -index eee3347a5fd1b1f4eb0bbee29483f0a81868cf16..e7acf1466bd7640d172f84a7a0e5a7e2eb0a0a37 100644 +index 59ecf5ff33617a6b9d2a3ae317315484235da804..4b4f3533f6f8624551794e63baae87138a495835 100644 --- a/src/main/java/net/minecraft/Util.java +++ b/src/main/java/net/minecraft/Util.java -@@ -71,6 +71,12 @@ import net.minecraft.util.datafix.DataFixers; +@@ -73,6 +73,12 @@ import net.minecraft.util.TimeSource; + import net.minecraft.util.datafix.DataFixers; import net.minecraft.world.level.block.state.properties.Property; - import org.apache.commons.io.IOUtils; import org.slf4j.Logger; +// JettPack start +import java.util.concurrent.AbstractExecutorService; @@ -55,7 +55,7 @@ index eee3347a5fd1b1f4eb0bbee29483f0a81868cf16..e7acf1466bd7640d172f84a7a0e5a7e2 public class Util { static final Logger LOGGER = LogUtils.getLogger(); -@@ -158,7 +164,46 @@ public class Util { +@@ -165,7 +171,46 @@ public class Util { if (i <= 0) { executorService = MoreExecutors.newDirectExecutorService(); } else { diff --git a/patches/server/0021-Remove-sync-chunk-writes-in-server.properties.patch b/patches/server/0021-Remove-sync-chunk-writes-in-server.properties.patch index 9cf0709..aeb3611 100644 --- a/patches/server/0021-Remove-sync-chunk-writes-in-server.properties.patch +++ b/patches/server/0021-Remove-sync-chunk-writes-in-server.properties.patch @@ -7,20 +7,20 @@ Original code by Titaniumtown, licensed under GNU General Public License v3.0 You can find the original code on https://gitlab.com/Titaniumtown/JettPack diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -index ea461ff0b13a3ccba2f0ed02b9268712eaf728c1..6d98648934c23cd99694718ff52474fcba76bab4 100644 +index 2ef1d4feff67f9e618dc96bd1a3a086ddff25673..aec14ff5235686a3e02b66eb3ad05fed2c4756b4 100644 --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java @@ -394,7 +394,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface BufferedWriter bufferedwriter = Files.newBufferedWriter(file); try { -- bufferedwriter.write(String.format("sync-chunk-writes=%s%n", dedicatedserverproperties.syncChunkWrites)); -+ //bufferedwriter.write(String.format("sync-chunk-writes=%s%n", dedicatedserverproperties.syncChunkWrites)); // JettPack - remove 'sync-chunk-writes' in server.properties - bufferedwriter.write(String.format("gamemode=%s%n", dedicatedserverproperties.gamemode)); - bufferedwriter.write(String.format("spawn-monsters=%s%n", dedicatedserverproperties.spawnMonsters)); - bufferedwriter.write(String.format("entity-broadcast-range-percentage=%d%n", dedicatedserverproperties.entityBroadcastRangePercentage)); +- bufferedwriter.write(String.format(Locale.ROOT, "sync-chunk-writes=%s%n", dedicatedserverproperties.syncChunkWrites)); ++ //bufferedwriter.write(String.format(Locale.ROOT, "sync-chunk-writes=%s%n", dedicatedserverproperties.syncChunkWrites)); // JettPack - remove 'sync-chunk-writes' in server.properties + bufferedwriter.write(String.format(Locale.ROOT, "gamemode=%s%n", dedicatedserverproperties.gamemode)); + bufferedwriter.write(String.format(Locale.ROOT, "spawn-monsters=%s%n", dedicatedserverproperties.spawnMonsters)); + bufferedwriter.write(String.format(Locale.ROOT, "entity-broadcast-range-percentage=%d%n", dedicatedserverproperties.entityBroadcastRangePercentage)); diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServerProperties.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServerProperties.java -index 26345494ce190b5cd2ab58dd7d4b046796767b20..80c73f43987a66b941b456951f60c7a27082c36f 100644 +index a32cfa75a9bea896f558bab646d0868391b069a9..3e4a3915cdf29fc964e0314ce01d156dd2f4f873 100644 --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServerProperties.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServerProperties.java @@ -136,7 +136,7 @@ public class DedicatedServerProperties extends Settings() { - @Override -- public boolean apply(ServerPlayer input) { +- public boolean test(ServerPlayer input) { - return target.getBukkitEntity().canSee(input.getBukkitEntity()); - } - }).collect(Collectors.toList()))); @@ -48,10 +48,10 @@ index db4b6d7fe91c1a071a833db842f664ec6ba51932..7502f715849fdefc96ad9808cd2070d3 public void broadcastAll(Packet packet) { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 287520f91e22309e1268be1940e0fafb628980a9..384d00b9e5767752ecee946c9c596ff0927b8364 100644 +index 9f34358dfcb95104c5bb9e63fbe295e6e049a55d..2f1fdb19c6e5ac4cadd5586970dbbd5a8f6fabf8 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -1736,7 +1736,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1827,7 +1827,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @Override public boolean canSee(org.bukkit.entity.Entity entity) { diff --git a/patches/server/0036-Skip-events-if-there-s-no-listeners.patch b/patches/server/0036-Skip-events-if-there-s-no-listeners.patch index b3bc0ab..c473343 100644 --- a/patches/server/0036-Skip-events-if-there-s-no-listeners.patch +++ b/patches/server/0036-Skip-events-if-there-s-no-listeners.patch @@ -7,10 +7,10 @@ Original code by PurpurMC, licensed under MIT You can find the original code on https://github.com/PurpurMC/Purpur diff --git a/src/main/java/net/minecraft/commands/Commands.java b/src/main/java/net/minecraft/commands/Commands.java -index ea5f0600d47b0f7c08b96eed91e5de255114637b..02add91d477dfef1bafa39c28b23dfc09418c939 100644 +index a0f5aa8c3cfce63af9cb286278a7fdebd7aa3642..91bb48f66aad86c76b2e7d2e70e84ca0e1a50212 100644 --- a/src/main/java/net/minecraft/commands/Commands.java +++ b/src/main/java/net/minecraft/commands/Commands.java -@@ -393,6 +393,7 @@ public class Commands { +@@ -404,6 +404,7 @@ public class Commands { } private void runSync(ServerPlayer player, Collection bukkit, RootCommandNode rootcommandnode) { @@ -18,7 +18,7 @@ index ea5f0600d47b0f7c08b96eed91e5de255114637b..02add91d477dfef1bafa39c28b23dfc0 // Paper end - Async command map building new com.destroystokyo.paper.event.brigadier.AsyncPlayerSendCommandsEvent(player.getBukkitEntity(), (RootCommandNode) rootcommandnode, false).callEvent(); // Paper PlayerCommandSendEvent event = new PlayerCommandSendEvent(player.getBukkitEntity(), new LinkedHashSet<>(bukkit)); -@@ -405,6 +406,7 @@ public class Commands { +@@ -416,6 +417,7 @@ public class Commands { } } // CraftBukkit end diff --git a/patches/server/0038-Alternative-Keepalive-Handling.patch b/patches/server/0037-Alternative-Keepalive-Handling.patch similarity index 91% rename from patches/server/0038-Alternative-Keepalive-Handling.patch rename to patches/server/0037-Alternative-Keepalive-Handling.patch index 884f0b1..e04c3ef 100644 --- a/patches/server/0038-Alternative-Keepalive-Handling.patch +++ b/patches/server/0037-Alternative-Keepalive-Handling.patch @@ -7,10 +7,10 @@ Original code by PurpurMC, licensed under MIT You can find the original code on https://github.com/PurpurMC/Purpur diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index fc37001445d50f88bc274eb501914d9db49dce40..785e9e9b4408c1193cb3680a3b55f90a8f0d5b0a 100644 +index 2c9c803880621da22e58afe5de992b4f22f833f9..7846ce8a78a560855d7e2263db656143ea12e3f8 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -245,6 +245,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser +@@ -258,6 +258,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic private long keepAliveTime = Util.getMillis(); private boolean keepAlivePending; private long keepAliveChallenge; @@ -18,7 +18,7 @@ index fc37001445d50f88bc274eb501914d9db49dce40..785e9e9b4408c1193cb3680a3b55f90a // CraftBukkit start - multithreaded fields private final AtomicInteger chatSpamTickCount = new AtomicInteger(); private final java.util.concurrent.atomic.AtomicInteger tabSpamLimiter = new java.util.concurrent.atomic.AtomicInteger(); // Paper - configurable tab spam limits -@@ -382,6 +383,21 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser +@@ -410,6 +411,21 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic long currentTime = Util.getMillis(); long elapsedTime = currentTime - this.keepAliveTime; @@ -40,7 +40,7 @@ index fc37001445d50f88bc274eb501914d9db49dce40..785e9e9b4408c1193cb3680a3b55f90a 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 -@@ -3326,6 +3342,16 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser +@@ -3546,6 +3562,16 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic @Override public void handleKeepAlive(ServerboundKeepAlivePacket packet) { diff --git a/patches/server/0037-Fix-the-dead-lagging-the-server.patch b/patches/server/0037-Fix-the-dead-lagging-the-server.patch deleted file mode 100644 index 8ac8f3b..0000000 --- a/patches/server/0037-Fix-the-dead-lagging-the-server.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: William Blake Galbreath -Date: Fri, 6 Mar 2020 13:37:26 -0600 -Subject: [PATCH] Fix the dead lagging the server - -Original code by PurpurMC, licensed under MIT -You can find the original code on https://github.com/PurpurMC/Purpur - -diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index beab9f74ba3c3ef294485ee74daf165475d29566..f85573a6ea0b670bb42252b17bcf88969f5521b4 100644 ---- a/src/main/java/net/minecraft/world/entity/Entity.java -+++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -1871,6 +1871,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { - this.yRotO = this.getYRot(); - this.xRotO = this.getXRot(); - this.setYHeadRot(yaw); // Paper - Update head rotation -+ if (valid && !this.isRemoved()) level.getChunk((int) Math.floor(this.getX()) >> 4, (int) Math.floor(this.getZ()) >> 4); // CraftBukkit // Paper // Purpur - } - - public void absMoveTo(double x, double y, double z) { -diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index d8f7361960eff24022a15505dec00613310db3b0..b7a9f16fb75d7664b6788d20d9b4a07459866dac 100644 ---- a/src/main/java/net/minecraft/world/entity/LivingEntity.java -+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -2967,7 +2967,7 @@ public abstract class LivingEntity extends Entity { - } - } - -- this.aiStep(); -+ if (!this.isRemoved()) this.aiStep(); // Purpur - double d0 = this.getX() - this.xo; - double d1 = this.getZ() - this.zo; - float f = (float) (d0 * d0 + d1 * d1); diff --git a/patches/server/0039-Logger-settings-suppressing-pointless-logs.patch b/patches/server/0038-Logger-settings-suppressing-pointless-logs.patch similarity index 90% rename from patches/server/0039-Logger-settings-suppressing-pointless-logs.patch rename to patches/server/0038-Logger-settings-suppressing-pointless-logs.patch index c0cdb7f..b437674 100644 --- a/patches/server/0039-Logger-settings-suppressing-pointless-logs.patch +++ b/patches/server/0038-Logger-settings-suppressing-pointless-logs.patch @@ -7,10 +7,10 @@ Original code by PurpurMC, licensed under MIT You can find the original code on https://github.com/PurpurMC/Purpur diff --git a/src/main/java/net/minecraft/server/PlayerAdvancements.java b/src/main/java/net/minecraft/server/PlayerAdvancements.java -index de0513b38e5fa0138f1cee6bb633561be12449fc..ef0625c0f860eeedcdc1e3b8801e15631c76cb7a 100644 +index a0c19503aabab5378d672a30163d35a5ba05b6c1..f70be47882fb05e34e672e2c0c4b64f9d3f901a1 100644 --- a/src/main/java/net/minecraft/server/PlayerAdvancements.java +++ b/src/main/java/net/minecraft/server/PlayerAdvancements.java -@@ -185,6 +185,7 @@ public class PlayerAdvancements { +@@ -183,6 +183,7 @@ public class PlayerAdvancements { if (advancement == null) { // CraftBukkit start if (entry.getKey().getNamespace().equals("minecraft")) { @@ -19,10 +19,10 @@ index de0513b38e5fa0138f1cee6bb633561be12449fc..ef0625c0f860eeedcdc1e3b8801e1563 } // CraftBukkit end diff --git a/src/main/java/net/minecraft/server/level/WorldGenRegion.java b/src/main/java/net/minecraft/server/level/WorldGenRegion.java -index f000c822ed4563b5b840936852bc7d8e030763e3..292791bb91f65f9236e52886ceecf699c099143e 100644 +index 80c1e0e47818486a68e0114b063395290365346b..365ede275df6b3b4da7075f29699ca7411b81f6d 100644 --- a/src/main/java/net/minecraft/server/level/WorldGenRegion.java +++ b/src/main/java/net/minecraft/server/level/WorldGenRegion.java -@@ -294,6 +294,7 @@ public class WorldGenRegion implements WorldGenLevel { +@@ -295,6 +295,7 @@ public class WorldGenRegion implements WorldGenLevel { return true; } else { // Paper start @@ -31,15 +31,15 @@ index f000c822ed4563b5b840936852bc7d8e030763e3..292791bb91f65f9236e52886ceecf699 Util.logAndPauseIfInIde("Detected setBlock in a far chunk [" + i + ", " + j + "], pos: " + pos + ", status: " + this.generatingStatus + (this.currentlyGenerating == null ? "" : ", currently generating: " + (String) this.currentlyGenerating.get())); hasSetFarWarned = true; diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 785e9e9b4408c1193cb3680a3b55f90a8f0d5b0a..bbb2c75e0d963159f8c01478da89e46d498ce5b2 100644 +index 7846ce8a78a560855d7e2263db656143ea12e3f8..7bf8ade4c9907c0dc060b318c34cb43f7f9078c5 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -2183,6 +2183,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser +@@ -2577,6 +2577,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic return false; } else { - if (this.isChatExpired(instant)) { + if (message.hasExpiredServer(Instant.now())) { + if (!wtf.etil.mirai.MiraiConfig.loggerSuppressSentExpiredChat) // Purpur - ServerGamePacketListenerImpl.LOGGER.warn("{} sent expired chat: '{}'. Is the client/server system time unsynchronized? c: {} s: {}", this.player.getName().getString(), s, instant.getEpochSecond(), Instant.now().getEpochSecond()); // Paper + ServerGamePacketListenerImpl.LOGGER.warn("{} sent expired chat: '{}'. Is the client/server system time unsynchronized? c: {} s: {}", this.player.getName().getString(), message.signedContent().plain(), message.timeStamp().getEpochSecond(), Instant.now().getEpochSecond()); // Paper } diff --git a/src/main/java/net/minecraft/stats/ServerRecipeBook.java b/src/main/java/net/minecraft/stats/ServerRecipeBook.java diff --git a/patches/server/0040-Add-5-second-tps-average-in-tps.patch b/patches/server/0039-Add-5-second-tps-average-in-tps.patch similarity index 94% rename from patches/server/0040-Add-5-second-tps-average-in-tps.patch rename to patches/server/0039-Add-5-second-tps-average-in-tps.patch index d05670e..9a24e7f 100644 --- a/patches/server/0040-Add-5-second-tps-average-in-tps.patch +++ b/patches/server/0039-Add-5-second-tps-average-in-tps.patch @@ -29,10 +29,10 @@ index fa56cd09102a89692b42f1d14257990508c5c720..f9251183df72ddc56662fd3f02acf216 setListData(vector); } diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 9f6520d57840b40d506df141bdf755d593b64c27..11b0d23783fed5d96bd96c24adfc9a7f353a18b3 100644 +index 4ace20e9e87c53f2d737c46bde6b9e28282a26a3..55f6e8a47d4a50a65cfd08f15499546ef2a3327b 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -287,7 +287,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop dummyPaletteResize = (newSize, added) -> { return 0; @@ -299,30 +314,54 @@ public class PalettedContainer implements PaletteResize, PalettedContainer - public synchronized PalettedContainerRO.PackedData pack(IdMap idMap, PalettedContainer.Strategy strategy) { // Paper - synchronize + public synchronized PalettedContainerRO.PackedData pack(IdMap idList, PalettedContainer.Strategy paletteProvider) { // Paper - synchronize this.acquire(); - PalettedContainerRO.PackedData var12; @@ -345,14 +345,14 @@ index 18c4f815888fee0c85ebbb485d21063ce0d143fb..59bb7c4ca7202cf80493dcc8da1233c8 + Optional data = Optional.empty(); + List elements = null; try { -- HashMapPalette hashMapPalette = new HashMapPalette<>(idMap, this.data.storage.getBits(), this.dummyPaletteResize); -- int i = strategy.size(); +- HashMapPalette hashMapPalette = new HashMapPalette<>(idList, this.data.storage.getBits(), this.dummyPaletteResize); +- int i = paletteProvider.size(); - int[] is = new int[i]; - this.data.storage.unpack(is); -- swapPalette(is, (ix) -> { -- return hashMapPalette.idFor(this.data.palette.valueFor(ix)); +- swapPalette(is, (id) -> { +- return hashMapPalette.idFor(this.data.palette.valueFor(id)); - }); -- int j = strategy.calculateBitsForSerialization(idMap, hashMapPalette.getSize()); +- int j = paletteProvider.calculateBitsForSerialization(idList, hashMapPalette.getSize()); - Optional optional; - if (j != 0) { - SimpleBitStorage simpleBitStorage = new SimpleBitStorage(j, i, is); @@ -373,17 +373,17 @@ index 18c4f815888fee0c85ebbb485d21063ce0d143fb..59bb7c4ca7202cf80493dcc8da1233c8 - var12 = new PalettedContainerRO.PackedData<>(hashMapPalette.getEntries(), optional); + if (elements == null) { -+ LithiumHashPalette compactedPalette = new LithiumHashPalette<>(idMap, storage.getBits(), this.dummyPaletteResize); -+ short[] array = this.getOrCreate(strategy.size()); ++ LithiumHashPalette compactedPalette = new LithiumHashPalette<>(idList, storage.getBits(), this.dummyPaletteResize); ++ short[] array = this.getOrCreate(paletteProvider.size()); + + storage.compact(this.data.palette(), compactedPalette, array); + + // If the palette didn't change during compaction, do a simple copy of the data array -+ if (hashPalette != null && hashPalette.getSize() == compactedPalette.getSize() && storage.getBits() == strategy.calculateBitsForSerialization(idMap, hashPalette.getSize())) { // paletteSize can de-sync from palette - see https://github.com/CaffeineMC/lithium-fabric/issues/279 ++ if (hashPalette != null && hashPalette.getSize() == compactedPalette.getSize() && storage.getBits() == paletteProvider.calculateBitsForSerialization(idMap, hashPalette.getSize())) { // paletteSize can de-sync from palette - see https://github.com/CaffeineMC/lithium-fabric/issues/279 + data = this.asOptional(storage.getRaw().clone()); + elements = hashPalette.getElements(); + } else { -+ int bits = strategy.calculateBitsForSerialization(idMap, compactedPalette.getSize()); ++ int bits = paletteProvider.calculateBitsForSerialization(idList, compactedPalette.getSize()); + if (bits != 0) { + // Re-pack the integer array as the palette has changed size + SimpleBitStorage copy = new SimpleBitStorage(bits, array.length); @@ -407,7 +407,7 @@ index 18c4f815888fee0c85ebbb485d21063ce0d143fb..59bb7c4ca7202cf80493dcc8da1233c8 + // JettPack end } - private static void swapPalette(int[] is, IntUnaryOperator intUnaryOperator) { + private static void swapPalette(int[] is, IntUnaryOperator applier) { @@ -362,17 +401,37 @@ public class PalettedContainer implements PaletteResize, PalettedContainer @Override diff --git a/patches/server/0068-Configurable-criterion-triggers.patch b/patches/server/0067-Configurable-criterion-triggers.patch similarity index 89% rename from patches/server/0068-Configurable-criterion-triggers.patch rename to patches/server/0067-Configurable-criterion-triggers.patch index a0adb4f..76bd9d2 100644 --- a/patches/server/0068-Configurable-criterion-triggers.patch +++ b/patches/server/0067-Configurable-criterion-triggers.patch @@ -9,10 +9,10 @@ Original code by YatopiaMC, licensed under MIT You can find the original code on https://github.com/YatopiaMC/Yatopia diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index f5aca2054dcad52301b9b99e44fbd3723aabdad7..f120e10679d38f3db22315f16a00622ab7601c2a 100644 +index 666189dae2400decc3d5bf97e073301e2de40472..2392913f2c221882bfdf324b671486a05a87ea76 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -613,7 +613,7 @@ public class ServerPlayer extends Player { +@@ -615,7 +615,7 @@ public class ServerPlayer extends Player { @Override protected void onInsideBlock(BlockState state) { @@ -21,7 +21,7 @@ index f5aca2054dcad52301b9b99e44fbd3723aabdad7..f120e10679d38f3db22315f16a00622a } @Override -@@ -659,7 +659,7 @@ public class ServerPlayer extends Player { +@@ -661,7 +661,7 @@ public class ServerPlayer extends Player { } } @@ -30,7 +30,7 @@ index f5aca2054dcad52301b9b99e44fbd3723aabdad7..f120e10679d38f3db22315f16a00622a if (this.levitationStartPos != null) { CriteriaTriggers.LEVITATION.trigger(this, this.levitationStartPos, this.tickCount - this.levitationStartTime); } -@@ -735,9 +735,7 @@ public class ServerPlayer extends Player { +@@ -737,9 +737,7 @@ public class ServerPlayer extends Player { this.connection.send(new ClientboundSetExperiencePacket(this.experienceProgress, this.totalExperience, this.experienceLevel)); } @@ -42,7 +42,7 @@ index f5aca2054dcad52301b9b99e44fbd3723aabdad7..f120e10679d38f3db22315f16a00622a // CraftBukkit start - initialize oldLevel, fire PlayerLevelChangeEvent, and tick client-sided world border if (this.oldLevel == -1) { diff --git a/src/main/java/wtf/etil/mirai/MiraiConfig.java b/src/main/java/wtf/etil/mirai/MiraiConfig.java -index e34fa6934a59fbead5ba4f4329a20507378e727a..6fb5f2f9bb1dc881eff5bc4a6edfcb1d3c7dc161 100644 +index 9bc1e365e0c96907f6fb2b5cd67a12c87d0cf7ed..aa6e4eae07182d74632b7b4ee0844a979a630686 100644 --- a/src/main/java/wtf/etil/mirai/MiraiConfig.java +++ b/src/main/java/wtf/etil/mirai/MiraiConfig.java @@ -209,4 +209,16 @@ public class MiraiConfig { diff --git a/patches/server/0069-Set-item-stuck-sleep-to-15-ticks.patch b/patches/server/0068-Set-item-stuck-sleep-to-15-ticks.patch similarity index 87% rename from patches/server/0069-Set-item-stuck-sleep-to-15-ticks.patch rename to patches/server/0068-Set-item-stuck-sleep-to-15-ticks.patch index 6989fb2..4a18988 100644 --- a/patches/server/0069-Set-item-stuck-sleep-to-15-ticks.patch +++ b/patches/server/0068-Set-item-stuck-sleep-to-15-ticks.patch @@ -7,10 +7,10 @@ Original code by YatopiaMC, licensed under MIT You can find the original code on https://github.com/YatopiaMC/Yatopia diff --git a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java -index 64c8eefa0302b04b416cd4912c01c50feddf1301..b9abfa591bf535de3805f7bb2b3f3401c8a4c1f6 100644 +index 16a55f94bda9f959548772c8916b4dc3eb045d47..3fbcd5e5d83b4451d2bf169971aa23ae5402184b 100644 --- a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java +++ b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java -@@ -138,7 +138,7 @@ public class ItemEntity extends Entity { +@@ -141,7 +141,7 @@ public class ItemEntity extends Entity { if (this.level.isClientSide) { this.noPhysics = false; diff --git a/patches/server/0070-Smarter-statistics-ticking.patch b/patches/server/0069-Smarter-statistics-ticking.patch similarity index 93% rename from patches/server/0070-Smarter-statistics-ticking.patch rename to patches/server/0069-Smarter-statistics-ticking.patch index 239d124..84132a6 100644 --- a/patches/server/0070-Smarter-statistics-ticking.patch +++ b/patches/server/0069-Smarter-statistics-ticking.patch @@ -10,10 +10,10 @@ Original code by YatopiaMC, licensed under MIT You can find the original code on https://github.com/YatopiaMC/Yatopia diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index b22e4068407f3012b62683abd060509829e61c62..da94849a59825b6b2ca886df3080d026e1720418 100644 +index 9b131f0a827413e9f5d6d0f7491c5481576cb8b1..b5ffd28b2d17014d25bc4d099b1cc5da186f3146 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java -@@ -283,19 +283,21 @@ public abstract class Player extends LivingEntity { +@@ -284,19 +284,21 @@ public abstract class Player extends LivingEntity { if (!this.level.isClientSide) { this.foodData.tick(this); this.wardenSpawnTracker.tick(); diff --git a/patches/server/0071-lithium-ai.nearby_entity_tracking-and-ai.nearby_enti.patch b/patches/server/0070-lithium-ai.nearby_entity_tracking-and-ai.nearby_enti.patch similarity index 99% rename from patches/server/0071-lithium-ai.nearby_entity_tracking-and-ai.nearby_enti.patch rename to patches/server/0070-lithium-ai.nearby_entity_tracking-and-ai.nearby_enti.patch index b6710af..e22b26b 100644 --- a/patches/server/0071-lithium-ai.nearby_entity_tracking-and-ai.nearby_enti.patch +++ b/patches/server/0070-lithium-ai.nearby_entity_tracking-and-ai.nearby_enti.patch @@ -600,7 +600,7 @@ index 0000000000000000000000000000000000000000..178fc249777c9997e9586ffe099e54c9 +} \ No newline at end of file diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index fb8fb1332b88427b7340fdeeff2024455f73f502..9d453f71b85be15b5889636569f93cc66efd6a52 100644 +index a189fdcafda1e52ee8bf52361b1aae5cfff7614b..95ad50a86077d42e9c9429635d1eaf3b1ba8c098 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -154,9 +154,29 @@ import org.bukkit.event.entity.EntityPoseChangeEvent; diff --git a/patches/server/0072-some-entity-micro-opts.patch b/patches/server/0071-some-entity-micro-opts.patch similarity index 94% rename from patches/server/0072-some-entity-micro-opts.patch rename to patches/server/0071-some-entity-micro-opts.patch index 41b4ee1..cf6aa56 100644 --- a/patches/server/0072-some-entity-micro-opts.patch +++ b/patches/server/0071-some-entity-micro-opts.patch @@ -7,10 +7,10 @@ Original code by Titaniumtown, licensed under GNU General Public License v3.0 You can find the original code on https://gitlab.com/Titaniumtown/JettPack diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 9d453f71b85be15b5889636569f93cc66efd6a52..ecc7085ecb33f4a2bc08b49ca0889ca41a015c8c 100644 +index 95ad50a86077d42e9c9429635d1eaf3b1ba8c098..9806c35f4ebb1c7541852d3c995a30d6372bdf6f 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -1891,12 +1891,18 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -1886,12 +1886,18 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { } } @@ -30,7 +30,7 @@ index 9d453f71b85be15b5889636569f93cc66efd6a52..ecc7085ecb33f4a2bc08b49ca0889ca4 public void absMoveTo(double x, double y, double z, float yaw, float pitch) { this.absMoveTo(x, y, z); this.setYRot(yaw % 360.0F); -@@ -4325,6 +4331,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -4329,6 +4335,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { } // Paper end - block invalid positions diff --git a/patches/server/0073-Dont-eat-blocks-in-non-ticking-chunks.patch b/patches/server/0072-Dont-eat-blocks-in-non-ticking-chunks.patch similarity index 94% rename from patches/server/0073-Dont-eat-blocks-in-non-ticking-chunks.patch rename to patches/server/0072-Dont-eat-blocks-in-non-ticking-chunks.patch index 5ea2638..f905bd3 100644 --- a/patches/server/0073-Dont-eat-blocks-in-non-ticking-chunks.patch +++ b/patches/server/0072-Dont-eat-blocks-in-non-ticking-chunks.patch @@ -7,10 +7,10 @@ Original code by PurpurMC, licensed under MIT You can find the original code on https://github.com/PurpurMC/Purpur diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index b7f56d1909272bb02591b6e08aed78943ab96ba1..c67c7ba95537ff39bf4a4f4c490698b49dcb0849 100644 +index 87518f6ff223ca211727c3002d107bc9bcaa36f9..b9d4878dd629886c4ef3e29ff1b729571d81d785 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java -@@ -1826,7 +1826,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1823,7 +1823,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider return this.anyPlayerCloseEnoughForSpawning(this.getUpdatingChunkIfPresent(chunkcoordintpair.toLong()), chunkcoordintpair, reducedRange); } diff --git a/patches/server/0074-Fast-speed-check.patch b/patches/server/0073-Fast-speed-check.patch similarity index 92% rename from patches/server/0074-Fast-speed-check.patch rename to patches/server/0073-Fast-speed-check.patch index 1d1c1a2..766d80c 100644 --- a/patches/server/0074-Fast-speed-check.patch +++ b/patches/server/0073-Fast-speed-check.patch @@ -12,7 +12,7 @@ doing questionable/buggy ones, and claiming breathtaking performance improvement any of those Spigot forks! diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index ecc7085ecb33f4a2bc08b49ca0889ca41a015c8c..c7c4f4489f9226d87b6d9f0f77d25806e8d80b75 100644 +index 9806c35f4ebb1c7541852d3c995a30d6372bdf6f..91db9f3a066ef9a7a9c9c0eddc5ecb41f9024bd9 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -1225,7 +1225,18 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { @@ -36,7 +36,7 @@ index ecc7085ecb33f4a2bc08b49ca0889ca41a015c8c..c7c4f4489f9226d87b6d9f0f77d25806 this.setDeltaMovement(this.getDeltaMovement().multiply((double) f2, 1.0D, (double) f2)); // Paper start - remove expensive streams from here diff --git a/src/main/java/wtf/etil/mirai/MiraiConfig.java b/src/main/java/wtf/etil/mirai/MiraiConfig.java -index 6fb5f2f9bb1dc881eff5bc4a6edfcb1d3c7dc161..04d08c44f56a4af207b8240ca1d9d34790ead16d 100644 +index aa6e4eae07182d74632b7b4ee0844a979a630686..dc8f27232aaece57fa5924e4d47b14a5066eb453 100644 --- a/src/main/java/wtf/etil/mirai/MiraiConfig.java +++ b/src/main/java/wtf/etil/mirai/MiraiConfig.java @@ -221,4 +221,11 @@ public class MiraiConfig { diff --git a/patches/server/0075-lithium-cache-iterate-outwards.patch b/patches/server/0074-lithium-cache-iterate-outwards.patch similarity index 100% rename from patches/server/0075-lithium-cache-iterate-outwards.patch rename to patches/server/0074-lithium-cache-iterate-outwards.patch diff --git a/patches/server/0076-lithium-ai.raid.patch b/patches/server/0075-lithium-ai.raid.patch similarity index 100% rename from patches/server/0076-lithium-ai.raid.patch rename to patches/server/0075-lithium-ai.raid.patch diff --git a/patches/server/0077-lithium-block.moving_block_shapes.patch b/patches/server/0076-lithium-block.moving_block_shapes.patch similarity index 100% rename from patches/server/0077-lithium-block.moving_block_shapes.patch rename to patches/server/0076-lithium-block.moving_block_shapes.patch diff --git a/patches/server/0078-lithium-shapes.blockstate_cache.patch b/patches/server/0077-lithium-shapes.blockstate_cache.patch similarity index 97% rename from patches/server/0078-lithium-shapes.blockstate_cache.patch rename to patches/server/0077-lithium-shapes.blockstate_cache.patch index 63323a2..9f8cf6d 100644 --- a/patches/server/0078-lithium-shapes.blockstate_cache.patch +++ b/patches/server/0077-lithium-shapes.blockstate_cache.patch @@ -73,7 +73,7 @@ index 0000000000000000000000000000000000000000..a833ec84b2053c805dd33821cc08939c +} \ No newline at end of file diff --git a/src/main/java/net/minecraft/world/level/block/Block.java b/src/main/java/net/minecraft/world/level/block/Block.java -index 8986eb0cfb151a05a0450d2d46aca1837d3c1152..50bf78a307bf9830fc3bcd5ab8ed5578f9d84095 100644 +index dfe1e522a747b894d43124b97eaceb0ab196ac44..1834470b549d8352317cf081173ff542c9faac1e 100644 --- a/src/main/java/net/minecraft/world/level/block/Block.java +++ b/src/main/java/net/minecraft/world/level/block/Block.java @@ -64,17 +64,19 @@ import net.minecraft.world.phys.shapes.BooleanOp; diff --git a/patches/server/0079-lithium-gen.patch b/patches/server/0078-lithium-gen.patch similarity index 95% rename from patches/server/0079-lithium-gen.patch rename to patches/server/0078-lithium-gen.patch index e2fa87b..73de903 100644 --- a/patches/server/0079-lithium-gen.patch +++ b/patches/server/0078-lithium-gen.patch @@ -106,10 +106,10 @@ index 0000000000000000000000000000000000000000..c99eff34c1be07508c88fe9525c3ae1a +} \ No newline at end of file diff --git a/src/main/java/net/minecraft/server/level/WorldGenRegion.java b/src/main/java/net/minecraft/server/level/WorldGenRegion.java -index 4538e459f35d2e08fbacee71cec142a2db4b1371..d9444afba8c65c9e1591726e0e1c7ba7b6749ff0 100644 +index 365ede275df6b3b4da7075f29699ca7411b81f6d..c7aa41023c32862c577f89fcf23aa7e04130f54e 100644 --- a/src/main/java/net/minecraft/server/level/WorldGenRegion.java +++ b/src/main/java/net/minecraft/server/level/WorldGenRegion.java -@@ -53,6 +53,7 @@ import net.minecraft.world.phys.Vec3; +@@ -54,6 +54,7 @@ import net.minecraft.world.phys.Vec3; import net.minecraft.world.ticks.LevelTickAccess; import net.minecraft.world.ticks.WorldGenTickAccess; import org.slf4j.Logger; @@ -117,7 +117,7 @@ index 4538e459f35d2e08fbacee71cec142a2db4b1371..d9444afba8c65c9e1591726e0e1c7ba7 public class WorldGenRegion implements WorldGenLevel { -@@ -81,6 +82,8 @@ public class WorldGenRegion implements WorldGenLevel { +@@ -82,6 +83,8 @@ public class WorldGenRegion implements WorldGenLevel { private Supplier currentlyGenerating; private final AtomicLong subTickCount = new AtomicLong(); private static final ResourceLocation WORLDGEN_REGION_RANDOM = new ResourceLocation("worldgen_region_random"); @@ -126,7 +126,7 @@ index 4538e459f35d2e08fbacee71cec142a2db4b1371..d9444afba8c65c9e1591726e0e1c7ba7 public WorldGenRegion(ServerLevel world, List chunks, ChunkStatus status, int placementRadius) { this.generatingStatus = status; -@@ -103,6 +106,12 @@ public class WorldGenRegion implements WorldGenLevel { +@@ -104,6 +107,12 @@ public class WorldGenRegion implements WorldGenLevel { this.lastPos = ((ChunkAccess) chunks.get(chunks.size() - 1)).getPos(); this.structureManager = world.structureManager().forWorldGenRegion(this); } @@ -139,7 +139,7 @@ index 4538e459f35d2e08fbacee71cec142a2db4b1371..d9444afba8c65c9e1591726e0e1c7ba7 } public boolean isOldChunkAround(ChunkPos chunkPos, int checkRadius) { -@@ -118,11 +127,33 @@ public class WorldGenRegion implements WorldGenLevel { +@@ -119,11 +128,33 @@ public class WorldGenRegion implements WorldGenLevel { this.currentlyGenerating = structureName; } @@ -174,7 +174,7 @@ index 4538e459f35d2e08fbacee71cec142a2db4b1371..d9444afba8c65c9e1591726e0e1c7ba7 @Nullable @Override public ChunkAccess getChunk(int chunkX, int chunkZ, ChunkStatus leastStatus, boolean create) { -@@ -178,10 +209,24 @@ public class WorldGenRegion implements WorldGenLevel { +@@ -179,10 +210,24 @@ public class WorldGenRegion implements WorldGenLevel { } // Paper end @@ -201,7 +201,7 @@ index 4538e459f35d2e08fbacee71cec142a2db4b1371..d9444afba8c65c9e1591726e0e1c7ba7 @Override public FluidState getFluidState(BlockPos pos) { diff --git a/src/main/java/net/minecraft/world/level/levelgen/NoiseBasedChunkGenerator.java b/src/main/java/net/minecraft/world/level/levelgen/NoiseBasedChunkGenerator.java -index df1db87d2dd5076fccea6a1ac9271a9d786729bb..a9be97c61714597dd68fbe196c90b214a4cd9647 100644 +index 575efe82a7219e256afd8362984eb26795445119..6292dead8c2d682e524edee6af9f04b31a79489c 100644 --- a/src/main/java/net/minecraft/world/level/levelgen/NoiseBasedChunkGenerator.java +++ b/src/main/java/net/minecraft/world/level/levelgen/NoiseBasedChunkGenerator.java @@ -67,6 +67,7 @@ public final class NoiseBasedChunkGenerator extends ChunkGenerator { @@ -210,7 +210,7 @@ index df1db87d2dd5076fccea6a1ac9271a9d786729bb..a9be97c61714597dd68fbe196c90b214 private final Aquifer.FluidPicker globalFluidPicker; + private int cachedSeaLevel; // Mirai - lithium: gen - public NoiseBasedChunkGenerator(Registry structureSetRegistry, Registry noiseRegistry, BiomeSource populationSource, Holder holder) { + public NoiseBasedChunkGenerator(Registry structureSetRegistry, Registry noiseRegistry, BiomeSource populationSource, Holder settings) { super(structureSetRegistry, Optional.empty(), populationSource); @@ -83,6 +84,7 @@ public final class NoiseBasedChunkGenerator extends ChunkGenerator { this.globalFluidPicker = (j, k, l) -> { diff --git a/patches/server/0080-PaperPR-Stop-large-look-changes-from-crashing-the-se.patch b/patches/server/0079-PaperPR-Stop-large-look-changes-from-crashing-the-se.patch similarity index 92% rename from patches/server/0080-PaperPR-Stop-large-look-changes-from-crashing-the-se.patch rename to patches/server/0079-PaperPR-Stop-large-look-changes-from-crashing-the-se.patch index 1d90631..f9b1f68 100644 --- a/patches/server/0080-PaperPR-Stop-large-look-changes-from-crashing-the-se.patch +++ b/patches/server/0079-PaperPR-Stop-large-look-changes-from-crashing-the-se.patch @@ -6,10 +6,10 @@ Subject: [PATCH] PaperPR Stop large look changes from crashing the server Taken from https://github.com/PaperMC/Paper/pull/7459 diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 858ccbfd456777a61e9579beb997abb568d5b75e..4a0ef94baec5b16ca0eee8d971851a08038b1825 100644 +index 58fd02c12894e57312dca70fd4871b8a0590bb76..3174fb7fb678a8a669e28ae10c830ede3855a3ad 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -3006,37 +3006,12 @@ public abstract class LivingEntity extends Entity { +@@ -3009,37 +3009,12 @@ public abstract class LivingEntity extends Entity { this.level.getProfiler().pop(); this.level.getProfiler().push("rangeChecks"); diff --git a/patches/server/0081-PaperPR-Add-more-collision-code-skipping-logic.patch b/patches/server/0080-PaperPR-Add-more-collision-code-skipping-logic.patch similarity index 87% rename from patches/server/0081-PaperPR-Add-more-collision-code-skipping-logic.patch rename to patches/server/0080-PaperPR-Add-more-collision-code-skipping-logic.patch index 5f6df1e..47f163b 100644 --- a/patches/server/0081-PaperPR-Add-more-collision-code-skipping-logic.patch +++ b/patches/server/0080-PaperPR-Add-more-collision-code-skipping-logic.patch @@ -6,10 +6,10 @@ Subject: [PATCH] PaperPR Add more collision code skipping logic Taken from https://github.com/PaperMC/Paper/pull/7581 diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 4a0ef94baec5b16ca0eee8d971851a08038b1825..10fe0a33e7d2663e27413b3affe035e91de37255 100644 +index 3174fb7fb678a8a669e28ae10c830ede3855a3ad..a2c348697b0a9a6646647e7946f6720c5897fb3d 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -3439,6 +3439,10 @@ public abstract class LivingEntity extends Entity { +@@ -3442,6 +3442,10 @@ public abstract class LivingEntity extends Entity { protected void pushEntities() { // Paper start - don't run getEntities if we're not going to use its result diff --git a/patches/server/0082-vmp-use-linked-map-for-entity-trackers-for-faster-it.patch b/patches/server/0081-vmp-use-linked-map-for-entity-trackers-for-faster-it.patch similarity index 87% rename from patches/server/0082-vmp-use-linked-map-for-entity-trackers-for-faster-it.patch rename to patches/server/0081-vmp-use-linked-map-for-entity-trackers-for-faster-it.patch index e2f886b..65d1334 100644 --- a/patches/server/0082-vmp-use-linked-map-for-entity-trackers-for-faster-it.patch +++ b/patches/server/0081-vmp-use-linked-map-for-entity-trackers-for-faster-it.patch @@ -9,10 +9,10 @@ Original code by RelativityMC, licensed under MIT You can find the original code on https://github.com/RelativityMC/VMP-fabric (Yarn mappings) diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index c67c7ba95537ff39bf4a4f4c490698b49dcb0849..a596cbae5981953aa0813ddfedb4cd3677e3d8f6 100644 +index b9d4878dd629886c4ef3e29ff1b729571d81d785..629ee5ece4819608fe12db64b817edeeb777d1fc 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java -@@ -114,6 +114,7 @@ import org.bukkit.craftbukkit.generator.CustomChunkGenerator; +@@ -111,6 +111,7 @@ import org.bukkit.craftbukkit.generator.CustomChunkGenerator; import org.bukkit.entity.Player; // CraftBukkit end import it.unimi.dsi.fastutil.objects.ReferenceOpenHashSet; // Paper @@ -20,7 +20,7 @@ index c67c7ba95537ff39bf4a4f4c490698b49dcb0849..a596cbae5981953aa0813ddfedb4cd36 public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider { -@@ -419,7 +420,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -416,7 +417,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider this.toDrop = new LongOpenHashSet(); this.tickingGenerated = new AtomicInteger(); this.playerMap = new PlayerMap(); diff --git a/patches/server/0083-c2me-reduce_allocs.patch b/patches/server/0082-c2me-reduce_allocs.patch similarity index 100% rename from patches/server/0083-c2me-reduce_allocs.patch rename to patches/server/0082-c2me-reduce_allocs.patch diff --git a/patches/server/0084-lithium-ai.sensor.secondary_poi.patch b/patches/server/0083-lithium-ai.sensor.secondary_poi.patch similarity index 100% rename from patches/server/0084-lithium-ai.sensor.secondary_poi.patch rename to patches/server/0083-lithium-ai.sensor.secondary_poi.patch diff --git a/patches/server/0085-Fix-tick-function-tag-running-before-load.patch b/patches/server/0084-Fix-tick-function-tag-running-before-load.patch similarity index 100% rename from patches/server/0085-Fix-tick-function-tag-running-before-load.patch rename to patches/server/0084-Fix-tick-function-tag-running-before-load.patch diff --git a/patches/server/0086-lithium-suffocation.patch b/patches/server/0085-lithium-suffocation.patch similarity index 96% rename from patches/server/0086-lithium-suffocation.patch rename to patches/server/0085-lithium-suffocation.patch index e63df56..92a3d76 100644 --- a/patches/server/0086-lithium-suffocation.patch +++ b/patches/server/0085-lithium-suffocation.patch @@ -9,10 +9,10 @@ Original license: GNU Lesser General Public License v3.0 Original project: https://github.com/CaffeineMC/lithium-fabric (Yarn mappings) diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index c7c4f4489f9226d87b6d9f0f77d25806e8d80b75..5dc113137840ffe943f4f9c9f50a78b57d990af1 100644 +index 91db9f3a066ef9a7a9c9c0eddc5ecb41f9024bd9..ed4d8ad6c7b6c08045710e6e8135d7b633d950fc 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -2617,39 +2617,64 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -2613,39 +2613,64 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { return !this.isRemoved(); } diff --git a/patches/server/0087-Optimize-default-values-for-configs.patch b/patches/server/0086-Optimize-default-values-for-configs.patch similarity index 99% rename from patches/server/0087-Optimize-default-values-for-configs.patch rename to patches/server/0086-Optimize-default-values-for-configs.patch index 3a3abb5..8deaffa 100644 --- a/patches/server/0087-Optimize-default-values-for-configs.patch +++ b/patches/server/0086-Optimize-default-values-for-configs.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Optimize default values for configs diff --git a/src/main/java/gg/pufferfish/pufferfish/PufferfishConfig.java b/src/main/java/gg/pufferfish/pufferfish/PufferfishConfig.java -index 09827eaa9f6adf49385a33aa60b3a6bf4005a982..49fa028efe1a34d9f37b95866c0824fcf210f338 100644 +index 38cb29c646ff496ffaa6553f98a565b71155c464..755b165279b596807b8fa8def417671abbc4c4bf 100644 --- a/src/main/java/gg/pufferfish/pufferfish/PufferfishConfig.java +++ b/src/main/java/gg/pufferfish/pufferfish/PufferfishConfig.java @@ -216,7 +216,7 @@ public class PufferfishConfig { diff --git a/patches/server/0088-Configurable-map-update-interval.patch b/patches/server/0087-Configurable-map-update-interval.patch similarity index 96% rename from patches/server/0088-Configurable-map-update-interval.patch rename to patches/server/0087-Configurable-map-update-interval.patch index b95a064..5e4714b 100644 --- a/patches/server/0088-Configurable-map-update-interval.patch +++ b/patches/server/0087-Configurable-map-update-interval.patch @@ -27,7 +27,7 @@ index 67b88da702b780f79c0496cb17f1e6f1f8dd6c2b..712707da510977bfa1ce4b991fd8a8f5 // CraftBukkit start java.util.Collection icons = new java.util.ArrayList(); diff --git a/src/main/java/wtf/etil/mirai/MiraiConfig.java b/src/main/java/wtf/etil/mirai/MiraiConfig.java -index 04d08c44f56a4af207b8240ca1d9d34790ead16d..0e1ff578af49eaa44508119b16fae67744041150 100644 +index dc8f27232aaece57fa5924e4d47b14a5066eb453..f9ba32332a64768dc30e7d95deae441ae23b7365 100644 --- a/src/main/java/wtf/etil/mirai/MiraiConfig.java +++ b/src/main/java/wtf/etil/mirai/MiraiConfig.java @@ -228,4 +228,11 @@ public class MiraiConfig { diff --git a/patches/server/0089-Fix-hunger-saturation-depleting-on-peaceful.patch b/patches/server/0088-Fix-hunger-saturation-depleting-on-peaceful.patch similarity index 87% rename from patches/server/0089-Fix-hunger-saturation-depleting-on-peaceful.patch rename to patches/server/0088-Fix-hunger-saturation-depleting-on-peaceful.patch index a8587f1..2eb6e56 100644 --- a/patches/server/0089-Fix-hunger-saturation-depleting-on-peaceful.patch +++ b/patches/server/0088-Fix-hunger-saturation-depleting-on-peaceful.patch @@ -8,10 +8,10 @@ the displayed hunger bar never goes down. Hunger (or any related value, includin should not go down on peaceful. See https://bugs.mojang.com/browse/MC-31819. diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index da94849a59825b6b2ca886df3080d026e1720418..8d465c3ca7af2a804a4c178f054063d6a1a5ddad 100644 +index b5ffd28b2d17014d25bc4d099b1cc5da186f3146..54e241534f0a3c00044c1ce33e7dc3a8fd020ab7 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java -@@ -1911,6 +1911,7 @@ public abstract class Player extends LivingEntity { +@@ -1921,6 +1921,7 @@ public abstract class Player extends LivingEntity { } public void causeFoodExhaustion(float f, EntityExhaustionEvent.ExhaustionReason reason) { diff --git a/patches/server/0090-Fix-mobs-attacking-themselves.patch b/patches/server/0089-Fix-mobs-attacking-themselves.patch similarity index 100% rename from patches/server/0090-Fix-mobs-attacking-themselves.patch rename to patches/server/0089-Fix-mobs-attacking-themselves.patch diff --git a/patches/server/0091-Fix-brewing-stands-resetting-their-brewTime-when-bei.patch b/patches/server/0090-Fix-brewing-stands-resetting-their-brewTime-when-bei.patch similarity index 100% rename from patches/server/0091-Fix-brewing-stands-resetting-their-brewTime-when-bei.patch rename to patches/server/0090-Fix-brewing-stands-resetting-their-brewTime-when-bei.patch diff --git a/patches/server/0092-lithium-world.tick_scheduler.patch b/patches/server/0091-lithium-world.tick_scheduler.patch similarity index 100% rename from patches/server/0092-lithium-world.tick_scheduler.patch rename to patches/server/0091-lithium-world.tick_scheduler.patch diff --git a/patches/server/0093-Save-Json-list-asynchronously.patch b/patches/server/0092-Save-Json-list-asynchronously.patch similarity index 100% rename from patches/server/0093-Save-Json-list-asynchronously.patch rename to patches/server/0092-Save-Json-list-asynchronously.patch diff --git a/patches/server/0094-Swaps-the-predicate-order-of-collision.patch b/patches/server/0093-Swaps-the-predicate-order-of-collision.patch similarity index 88% rename from patches/server/0094-Swaps-the-predicate-order-of-collision.patch rename to patches/server/0093-Swaps-the-predicate-order-of-collision.patch index a9782e1..59d18a2 100644 --- a/patches/server/0094-Swaps-the-predicate-order-of-collision.patch +++ b/patches/server/0093-Swaps-the-predicate-order-of-collision.patch @@ -8,10 +8,10 @@ Original license: GPLv3 Original project: https://github.com/Akarin-project/Akarin diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 5dc113137840ffe943f4f9c9f50a78b57d990af1..a02b8f64502326efa758bfa3bb861dc0a77dec65 100644 +index ed4d8ad6c7b6c08045710e6e8135d7b633d950fc..32bb217e3b1a5ee3be8ba576e192ee93b4123d30 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -2009,8 +2009,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -2003,8 +2003,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { public void playerTouch(Player player) {} public void push(Entity entity) { diff --git a/patches/server/0095-Fix-head-rotation-packet-spam.patch b/patches/server/0094-Fix-head-rotation-packet-spam.patch similarity index 92% rename from patches/server/0095-Fix-head-rotation-packet-spam.patch rename to patches/server/0094-Fix-head-rotation-packet-spam.patch index 640d167..90eee41 100644 --- a/patches/server/0095-Fix-head-rotation-packet-spam.patch +++ b/patches/server/0094-Fix-head-rotation-packet-spam.patch @@ -7,7 +7,7 @@ Original license: GPLv3 Original project: https://github.com/Electroid/SportPaper diff --git a/src/main/java/net/minecraft/server/level/ServerEntity.java b/src/main/java/net/minecraft/server/level/ServerEntity.java -index 0423dff716fdd4f60b792e24a4a5a33d150e734d..bcaa1033f570b1934a770bc51b3a49ef634abcf1 100644 +index 4197961b2f03a5151b396d0d09bf5cb9ab6481e7..09be313aefd5dda15bd4db6ee0324b2aec879744 100644 --- a/src/main/java/net/minecraft/server/level/ServerEntity.java +++ b/src/main/java/net/minecraft/server/level/ServerEntity.java @@ -346,8 +346,10 @@ public class ServerEntity { diff --git a/patches/server/0096-Cache-block-break-animation-packet.patch b/patches/server/0095-Cache-block-break-animation-packet.patch similarity index 86% rename from patches/server/0096-Cache-block-break-animation-packet.patch rename to patches/server/0095-Cache-block-break-animation-packet.patch index 3097d8f..fde499c 100644 --- a/patches/server/0096-Cache-block-break-animation-packet.patch +++ b/patches/server/0095-Cache-block-break-animation-packet.patch @@ -7,10 +7,10 @@ Original license: GPLv3 Original project: https://github.com/Electroid/SportPaper diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 05b895c79accf2f10f54a9868e6b9c10e1e5e687..50daf0762ae2eded8e5e42db12bcdb06ed183225 100644 +index 447fa39cf935072178503c3079c74ffe984d01c4..ef932eaedf1dbf4d2a90cab270516b71923d5678 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -1539,6 +1539,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1540,6 +1540,7 @@ public class ServerLevel extends Level implements WorldGenLevel { if (entity instanceof Player) entityhuman = (Player) entity; // CraftBukkit end @@ -18,7 +18,7 @@ index 05b895c79accf2f10f54a9868e6b9c10e1e5e687..50daf0762ae2eded8e5e42db12bcdb06 while (iterator.hasNext()) { ServerPlayer entityplayer = (ServerPlayer) iterator.next(); -@@ -1554,7 +1555,10 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1555,7 +1556,10 @@ public class ServerLevel extends Level implements WorldGenLevel { // CraftBukkit end if (d0 * d0 + d1 * d1 + d2 * d2 < 1024.0D) { diff --git a/patches/server/0097-Use-more-fastutil-data-structures.patch b/patches/server/0096-Use-more-fastutil-data-structures.patch similarity index 100% rename from patches/server/0097-Use-more-fastutil-data-structures.patch rename to patches/server/0096-Use-more-fastutil-data-structures.patch diff --git a/patches/server/0098-Optimize-Math.round-and-Math.hypot-functions.patch b/patches/server/0097-Optimize-Math.round-and-Math.hypot-functions.patch similarity index 95% rename from patches/server/0098-Optimize-Math.round-and-Math.hypot-functions.patch rename to patches/server/0097-Optimize-Math.round-and-Math.hypot-functions.patch index a0482a6..5695fdd 100644 --- a/patches/server/0098-Optimize-Math.round-and-Math.hypot-functions.patch +++ b/patches/server/0097-Optimize-Math.round-and-Math.hypot-functions.patch @@ -164,10 +164,10 @@ index ae60bd96b5284d54676d8e7e4dd5d170b526ec1e..2344ea858eda8e54c2eb3ccbdad464ed return true; } diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 11b0d23783fed5d96bd96c24adfc9a7f353a18b3..834ad81056c5a22921495c22d410bdf11666b87e 100644 +index 55f6e8a47d4a50a65cfd08f15499546ef2a3327b..acd9ca84f4f208c8264ac6560bea85d1e568404f 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -2744,7 +2744,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop 0.0F && f2 < 3.4028235E37F) { @@ -297,7 +297,7 @@ index 8d465c3ca7af2a804a4c178f054063d6a1a5ddad..4e520a7c5bdf0eb3830905859ea10639 } if (f != 0.0F) { -@@ -1096,7 +1096,7 @@ public abstract class Player extends LivingEntity { +@@ -1097,7 +1097,7 @@ public abstract class Player extends LivingEntity { this.setHealth(this.getHealth() - f); this.getCombatTracker().recordDamage(damagesource, f3, f); if (f < 3.4028235E37F) { @@ -306,7 +306,7 @@ index 8d465c3ca7af2a804a4c178f054063d6a1a5ddad..4e520a7c5bdf0eb3830905859ea10639 } } -@@ -1422,7 +1422,7 @@ public abstract class Player extends LivingEntity { +@@ -1423,7 +1423,7 @@ public abstract class Player extends LivingEntity { if (target instanceof LivingEntity) { float f5 = f3 - ((LivingEntity) target).getHealth(); @@ -315,7 +315,7 @@ index 8d465c3ca7af2a804a4c178f054063d6a1a5ddad..4e520a7c5bdf0eb3830905859ea10639 if (j > 0) { // CraftBukkit start - Call a combust event when somebody hits with a fire enchanted item EntityCombustByEntityEvent combustEvent = new EntityCombustByEntityEvent(this.getBukkitEntity(), target.getBukkitEntity(), j * 4); -@@ -1691,29 +1691,29 @@ public abstract class Player extends LivingEntity { +@@ -1696,29 +1696,29 @@ public abstract class Player extends LivingEntity { int i; if (this.isSwimming()) { @@ -350,7 +350,7 @@ index 8d465c3ca7af2a804a4c178f054063d6a1a5ddad..4e520a7c5bdf0eb3830905859ea10639 if (i > 0) { if (this.isSprinting()) { this.awardStat(Stats.SPRINT_ONE_CM, i); -@@ -1727,10 +1727,10 @@ public abstract class Player extends LivingEntity { +@@ -1732,10 +1732,10 @@ public abstract class Player extends LivingEntity { } } } else if (this.isFallFlying()) { @@ -363,7 +363,7 @@ index 8d465c3ca7af2a804a4c178f054063d6a1a5ddad..4e520a7c5bdf0eb3830905859ea10639 if (i > 25) { this.awardStat(Stats.FLY_ONE_CM, i); } -@@ -1741,7 +1741,7 @@ public abstract class Player extends LivingEntity { +@@ -1746,7 +1746,7 @@ public abstract class Player extends LivingEntity { public void checkRidingStatistics(double dx, double dy, double dz) { if (this.isPassenger()) { @@ -372,7 +372,7 @@ index 8d465c3ca7af2a804a4c178f054063d6a1a5ddad..4e520a7c5bdf0eb3830905859ea10639 if (i > 0) { Entity entity = this.getVehicle(); -@@ -1768,7 +1768,7 @@ public abstract class Player extends LivingEntity { +@@ -1773,7 +1773,7 @@ public abstract class Player extends LivingEntity { return false; } else { if (fallDistance >= 2.0F) { @@ -395,7 +395,7 @@ index 16504b8be08064e61b013fa943f692816612cbd0..c5b39234822626b4ff948464409ca415 i = Mth.clamp(i, (int) 0, (int) 15); diff --git a/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java b/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java -index 264ca51c2f2a5ff69688372b71ad7355366bac1a..01fcbe8445de6d024b17c205d9363faa6b2dfa39 100644 +index 19ffd93b7bc745d9a6822f1e5642d2f640f61df7..0790467860bd793a7e69b2a4080161756d28906d 100644 --- a/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java +++ b/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java @@ -249,8 +249,8 @@ public abstract class ChunkGenerator { @@ -451,7 +451,7 @@ index 0ecac76577eb440a0c3104ef4603acec826c474d..4813bd6de894d0566e8631d8c71915c3 // Yatopia start - Last tick time API diff --git a/src/main/java/wtf/etil/mirai/MiraiConfig.java b/src/main/java/wtf/etil/mirai/MiraiConfig.java -index 0e1ff578af49eaa44508119b16fae67744041150..58464d609824c52bd297e9c242c2957e1545c172 100644 +index f9ba32332a64768dc30e7d95deae441ae23b7365..42da3cbd8bf1f1960fad09f6563087cab1e3fbee 100644 --- a/src/main/java/wtf/etil/mirai/MiraiConfig.java +++ b/src/main/java/wtf/etil/mirai/MiraiConfig.java @@ -235,4 +235,13 @@ public class MiraiConfig { diff --git a/patches/server/0099-Faster-Sheep.getOffspringColor.patch b/patches/server/0098-Faster-Sheep.getOffspringColor.patch similarity index 100% rename from patches/server/0099-Faster-Sheep.getOffspringColor.patch rename to patches/server/0098-Faster-Sheep.getOffspringColor.patch diff --git a/patches/server/0100-Implement-Velocity-VarInt-optimizations.patch b/patches/server/0099-Implement-Velocity-VarInt-optimizations.patch similarity index 100% rename from patches/server/0100-Implement-Velocity-VarInt-optimizations.patch rename to patches/server/0099-Implement-Velocity-VarInt-optimizations.patch diff --git a/patches/server/0101-reduce-work-done-by-game-event-system.patch b/patches/server/0100-reduce-work-done-by-game-event-system.patch similarity index 97% rename from patches/server/0101-reduce-work-done-by-game-event-system.patch rename to patches/server/0100-reduce-work-done-by-game-event-system.patch index c1386d2..97d78f1 100644 --- a/patches/server/0101-reduce-work-done-by-game-event-system.patch +++ b/patches/server/0100-reduce-work-done-by-game-event-system.patch @@ -11,10 +11,10 @@ Original project: https://github.com/Bloom-host/Petal 2. euclideangameeventdispatcher is not used concurrently so we ban that usage for improved performance with allays diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 50daf0762ae2eded8e5e42db12bcdb06ed183225..fa51185762cf68b9f086d278db2f1d1441315344 100644 +index ef932eaedf1dbf4d2a90cab270516b71923d5678..a9bb78d68adac54729a954f766ad993989bfee77 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -1617,6 +1617,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1618,6 +1618,7 @@ public class ServerLevel extends Level implements WorldGenLevel { if (chunk != null) { for (int j2 = k; j2 <= j1; ++j2) { flag |= chunk.getEventDispatcher(j2).walkListeners(event, emitterPos, emitter, (gameeventlistener, vec3d1) -> { diff --git a/patches/server/0102-reduce-sensor-work.patch b/patches/server/0101-reduce-sensor-work.patch similarity index 96% rename from patches/server/0102-reduce-sensor-work.patch rename to patches/server/0101-reduce-sensor-work.patch index 9d2d9d0..12f4fb5 100644 --- a/patches/server/0102-reduce-sensor-work.patch +++ b/patches/server/0101-reduce-sensor-work.patch @@ -10,7 +10,7 @@ this patch is focused around the sensors used for ai delete the line of sight cache less often and use a faster nearby comparison diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index af8012ad3acb294806a18b6aa4fadb1d3fec6b33..c4c32d3f2ee242e3fdd9d57270b8a9d938014351 100644 +index f53e5cd78431e84bf257229cd70fd8dd4599e306..7fe46ecd8221545d56f5c8e509f72cb90ad6425a 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -998,12 +998,14 @@ public abstract class LivingEntity extends Entity {