diff --git a/gradle.properties b/gradle.properties index abd3e57e9..591050a79 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,7 +1,7 @@ group = org.purpurmc.purpur version = 1.19.2-R0.1-SNAPSHOT -paperCommit = aabf67672174c4b3bf5a7de65fdeb5315ade37dc +paperCommit = eff22eb0541559f05cf9a8c370d70c3b346f80f6 org.gradle.caching = true org.gradle.parallel = true diff --git a/patches/api/0001-Pufferfish-API-Changes.patch b/patches/api/0001-Pufferfish-API-Changes.patch index ad3571b06..1469763ad 100644 --- a/patches/api/0001-Pufferfish-API-Changes.patch +++ b/patches/api/0001-Pufferfish-API-Changes.patch @@ -476,7 +476,7 @@ index 8ff78fad47f6086aa289e32590f4fbec24b3d500..a16c841751bc44e46d27fc4efbfc2ab2 if (cloader instanceof PluginClassLoader) { diff --git a/src/main/java/org/bukkit/plugin/java/PluginClassLoader.java b/src/main/java/org/bukkit/plugin/java/PluginClassLoader.java -index 345394132df70593800127d34a38f8f8a4dafe00..4f736a267eb4c8a3bedb2d02fb30468484b991d5 100644 +index 345394132df70593800127d34a38f8f8a4dafe00..8f778e7d1b8508414ed47c6c6071cae9ebf2d986 100644 --- a/src/main/java/org/bukkit/plugin/java/PluginClassLoader.java +++ b/src/main/java/org/bukkit/plugin/java/PluginClassLoader.java @@ -46,6 +46,8 @@ public final class PluginClassLoader extends URLClassLoader { // Spigot @@ -505,7 +505,15 @@ index 345394132df70593800127d34a38f8f8a4dafe00..4f736a267eb4c8a3bedb2d02fb304684 String path = name.replace('.', '/').concat(".class"); JarEntry entry = jar.getJarEntry(path); -@@ -213,6 +216,7 @@ public final class PluginClassLoader extends URLClassLoader { // Spigot +@@ -205,6 +208,7 @@ public final class PluginClassLoader extends URLClassLoader { // Spigot + classes.put(name, result); + } + ++ if (result == null) throw new ClassNotFoundException(name); // Pufferfish + return result; + } + +@@ -213,6 +217,7 @@ public final class PluginClassLoader extends URLClassLoader { // Spigot try { super.close(); } finally { diff --git a/patches/api/0002-Fix-pufferfish-issues.patch b/patches/api/0002-Fix-pufferfish-issues.patch index ff14e5f6f..b2f08398c 100644 --- a/patches/api/0002-Fix-pufferfish-issues.patch +++ b/patches/api/0002-Fix-pufferfish-issues.patch @@ -4,19 +4,6 @@ Date: Tue, 4 Jan 2022 23:05:41 -0600 Subject: [PATCH] Fix pufferfish issues -diff --git a/src/main/java/org/bukkit/plugin/java/PluginClassLoader.java b/src/main/java/org/bukkit/plugin/java/PluginClassLoader.java -index 4f736a267eb4c8a3bedb2d02fb30468484b991d5..8bddfbdcc947ffd4ff9a923fb8edf367c9a6b498 100644 ---- a/src/main/java/org/bukkit/plugin/java/PluginClassLoader.java -+++ b/src/main/java/org/bukkit/plugin/java/PluginClassLoader.java -@@ -161,7 +161,7 @@ public final class PluginClassLoader extends URLClassLoader { // Spigot - } - Class result = classes.get(name); - -- if (result == null && !this.closed) { // Pufferfish -+ if (result == null /*&& !this.closed*/) { // Pufferfish // Purpur - don't modify the classloader b.s. - String path = name.replace('.', '/').concat(".class"); - JarEntry entry = jar.getJarEntry(path); - diff --git a/src/test/java/org/bukkit/AnnotationTest.java b/src/test/java/org/bukkit/AnnotationTest.java index bbe81f7a420f913ffdcad913a3c43ff41ead41f5..49de298146814fdf238929e10270ac6717dd73bd 100644 --- a/src/test/java/org/bukkit/AnnotationTest.java diff --git a/patches/server/0001-Pufferfish-Server-Changes.patch b/patches/server/0001-Pufferfish-Server-Changes.patch index 9f79f81b1..c6675a5ba 100644 --- a/patches/server/0001-Pufferfish-Server-Changes.patch +++ b/patches/server/0001-Pufferfish-Server-Changes.patch @@ -20,7 +20,7 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/build.gradle.kts b/build.gradle.kts -index 2374cc9bab5039d0a0dc11d4b2ec573ab75778a7..27d1663fea7cbddfa4e2000cf73d215886c70aa5 100644 +index 2374cc9bab5039d0a0dc11d4b2ec573ab75778a7..7074295d7399d03e259598bb4bfa0f21434d74be 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -9,8 +9,12 @@ plugins { @@ -31,7 +31,7 @@ index 2374cc9bab5039d0a0dc11d4b2ec573ab75778a7..27d1663fea7cbddfa4e2000cf73d2158 - implementation(project(":paper-mojangapi")) + implementation(project(":pufferfish-api")) // Pufferfish // Paper + // Pufferfish start -+ implementation("io.papermc.paper:paper-mojangapi:1.19.2-R0.1-SNAPSHOT") { // Purpur ++ implementation("io.papermc.paper:paper-mojangapi:1.19.2-R0.1-SNAPSHOT") { + exclude("io.papermc.paper", "paper-api") + } + // Pufferfish end @@ -3202,10 +3202,10 @@ index 3d986805c89d22330d6ad1e09760940b2f399214..0c71d72fb04eb00e159ddd456df82376 this.getRandomBlockPosition(j, 0, k, 15, blockposition); int normalY = chunk.getHeight(Heightmap.Types.MOTION_BLOCKING, blockposition.getX() & 15, blockposition.getZ() & 15) + 1; diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index c3a5aa2cbfeef1d2841ef85d135a2f6e0a7a2f61..9aab29dd7a09c306d6c0e1e8143daf005d611d65 100644 +index 325def3149693f64b2b21e0e655b5b3e888fd9a0..3d4e0be647f48a33d1afcdbec62c6624f2086294 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -1222,6 +1222,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -1216,6 +1216,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic @Override public void handleEditBook(ServerboundEditBookPacket packet) { @@ -3213,7 +3213,7 @@ index c3a5aa2cbfeef1d2841ef85d135a2f6e0a7a2f61..9aab29dd7a09c306d6c0e1e8143daf00 // Paper start if (!this.cserver.isPrimaryThread()) { List pageList = packet.getPages(); -@@ -2368,6 +2369,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2362,6 +2363,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic } private boolean updateChatOrder(Instant timestamp) { @@ -4351,6 +4351,22 @@ index a9cdf9034ad269f7a71358443acc053288cfbe6d..dbeb70913d3933164e997ce5d662b489 } } } +diff --git a/src/main/java/net/minecraft/world/entity/animal/allay/Allay.java b/src/main/java/net/minecraft/world/entity/animal/allay/Allay.java +index 2d87b740e84435ef9bd3eee3d3e2af9f707a0826..d38d1e3692e093d6707b6bd80cd56ec4afcf093b 100644 +--- a/src/main/java/net/minecraft/world/entity/animal/allay/Allay.java ++++ b/src/main/java/net/minecraft/world/entity/animal/allay/Allay.java +@@ -228,9 +228,11 @@ public class Allay extends PathfinderMob implements InventoryCarrier { + return 0.4F; + } + ++ private int behaviorTick = 0; // Pufferfish + @Override + protected void customServerAiStep() { + this.level.getProfiler().push("allayBrain"); ++ if (this.behaviorTick++ % this.activatedPriority == 0) // Pufferfish + this.getBrain().tick((ServerLevel) this.level, this); + this.level.getProfiler().pop(); + this.level.getProfiler().push("allayActivityUpdate"); diff --git a/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java b/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java index da5e6141f548539cac720aba558e1b6f3a87e474..fdd2c63ff0017bafa544a3cff2ee6d2d62c92cb3 100644 --- a/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java @@ -4368,10 +4384,22 @@ index da5e6141f548539cac720aba558e1b6f3a87e474..fdd2c63ff0017bafa544a3cff2ee6d2d this.level.getProfiler().pop(); this.level.getProfiler().push("axolotlActivityUpdate"); diff --git a/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java b/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java -index bb6063ae7f4438916306ce876057f7488537b444..9a2d1285c207290946ae664915a77b8f9dc00ad7 100644 +index bb6063ae7f4438916306ce876057f7488537b444..4c3fd27bff777139e29905e8684f6e92a44decfe 100644 --- a/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java +++ b/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java -@@ -411,6 +411,14 @@ public class Frog extends Animal { +@@ -174,9 +174,11 @@ public class Frog extends Animal { + return this.getDeltaMovement().horizontalDistanceSqr() > 1.0E-6D && this.isInWaterOrBubble(); + } + ++ private int behaviorTick = 0; // Pufferfish + @Override + protected void customServerAiStep() { + this.level.getProfiler().push("frogBrain"); ++ if (this.behaviorTick++ % this.activatedPriority == 0) // Pufferfish + this.getBrain().tick((ServerLevel)this.level, this); + this.level.getProfiler().pop(); + this.level.getProfiler().push("frogActivityUpdate"); +@@ -411,6 +413,14 @@ public class Frog extends Animal { } static class FrogPathNavigation extends AmphibiousPathNavigation { @@ -4386,7 +4414,7 @@ index bb6063ae7f4438916306ce876057f7488537b444..9a2d1285c207290946ae664915a77b8f FrogPathNavigation(Frog frog, Level world) { super(frog, world); } -@@ -419,7 +427,13 @@ public class Frog extends Animal { +@@ -419,7 +429,13 @@ public class Frog extends Animal { protected PathFinder createPathFinder(int range) { this.nodeEvaluator = new Frog.FrogNodeEvaluator(true); this.nodeEvaluator.setCanPassDoors(true); @@ -4401,6 +4429,22 @@ index bb6063ae7f4438916306ce876057f7488537b444..9a2d1285c207290946ae664915a77b8f } } } +diff --git a/src/main/java/net/minecraft/world/entity/animal/frog/Tadpole.java b/src/main/java/net/minecraft/world/entity/animal/frog/Tadpole.java +index 3dd4e6d622a6daafa00ae971edd88a147e34beef..32cca29fd622d18030931e1f330791491e7f9fa0 100644 +--- a/src/main/java/net/minecraft/world/entity/animal/frog/Tadpole.java ++++ b/src/main/java/net/minecraft/world/entity/animal/frog/Tadpole.java +@@ -76,9 +76,11 @@ public class Tadpole extends AbstractFish { + return SoundEvents.TADPOLE_FLOP; + } + ++ private int behaviorTick = 0; // Pufferfish + @Override + protected void customServerAiStep() { + this.level.getProfiler().push("tadpoleBrain"); ++ if (this.behaviorTick++ % this.activatedPriority == 0) // Pufferfish + this.getBrain().tick((ServerLevel) this.level, this); + this.level.getProfiler().pop(); + this.level.getProfiler().push("tadpoleActivityUpdate"); diff --git a/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java b/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java index 31be36e6b7b6bd0c0d7fda4e1b03ecd38947f3a5..362f952888f63a453a4352a9f1dc7df799244a3c 100644 --- a/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java @@ -4507,6 +4551,24 @@ index 793576928dad6752dddd86e62d4c0800d8515fc4..9bde52b723237b1f0f945bc564009e35 this.getBrain().tick((ServerLevel) this.level, this); this.level.getProfiler().pop(); PiglinAi.updateActivity(this); +diff --git a/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java b/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java +index 27bd70dc30c8472e5a80f3273f9233a0392f831d..b3158b1a7772f1254dd081ff6d3278a92192e896 100644 +--- a/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java ++++ b/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java +@@ -270,11 +270,13 @@ public class Warden extends Monster implements VibrationListener.VibrationListen + + } + ++ private int behaviorTick = 0; // Pufferfish + @Override + protected void customServerAiStep() { + ServerLevel worldserver = (ServerLevel) this.level; + + worldserver.getProfiler().push("wardenBrain"); ++ if (this.behaviorTick++ % this.activatedPriority == 0) // Pufferfish + this.getBrain().tick(worldserver, this); + this.level.getProfiler().pop(); + super.customServerAiStep(); diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java index 10b45ec24a5a0867106d1694312385ad1e267f43..93077e8c6b5a35adc6febb749d1d08be172402f1 100644 --- a/src/main/java/net/minecraft/world/entity/npc/Villager.java diff --git a/patches/server/0002-Fix-pufferfish-issues.patch b/patches/server/0002-Fix-pufferfish-issues.patch index 207967dc9..5451f412e 100644 --- a/patches/server/0002-Fix-pufferfish-issues.patch +++ b/patches/server/0002-Fix-pufferfish-issues.patch @@ -4,39 +4,6 @@ Date: Sun, 12 Jun 2022 09:18:57 -0500 Subject: [PATCH] Fix pufferfish issues -diff --git a/src/main/java/gg/pufferfish/pufferfish/PufferfishConfig.java b/src/main/java/gg/pufferfish/pufferfish/PufferfishConfig.java -index 38cb29c646ff496ffaa6553f98a565b71155c464..76bbaa30dd5ec60024129542f3bd5c2cac8ce426 100644 ---- a/src/main/java/gg/pufferfish/pufferfish/PufferfishConfig.java -+++ b/src/main/java/gg/pufferfish/pufferfish/PufferfishConfig.java -@@ -36,6 +36,7 @@ public class PufferfishConfig { - - private static final YamlFile config = new YamlFile(); - private static int updates = 0; -+ public static File pufferfishFile; // Purpur - - private static ConfigurationSection convertToBukkit(org.simpleyaml.configuration.ConfigurationSection section) { - ConfigurationSection newSection = new MemoryConfiguration(); -@@ -58,7 +59,7 @@ public class PufferfishConfig { - } - - public static void load() throws IOException { -- File configFile = new File("pufferfish.yml"); -+ File configFile = pufferfishFile; // Purpur - - if (configFile.exists()) { - try { -diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -index 519883c5549744e047a8a96afee142746fcb49cd..7cf328cf8d31f1041cb964a5a6289c27fd65d3bd 100644 ---- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -+++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -@@ -223,6 +223,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface - thread.start(); // Paper - start console thread after MinecraftServer.console & PaperConfig are initialized - io.papermc.paper.command.PaperCommands.registerCommands(this); - com.destroystokyo.paper.Metrics.PaperMetrics.startMetrics(); -+ gg.pufferfish.pufferfish.PufferfishConfig.pufferfishFile = (java.io.File) options.valueOf("pufferfish-settings"); // Purpur - com.destroystokyo.paper.VersionHistoryManager.INSTANCE.getClass(); // load version history now - io.papermc.paper.brigadier.PaperBrigadierProviderImpl.INSTANCE.getClass(); // init PaperBrigadierProvider - // Paper end diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java index 0c71d72fb04eb00e159ddd456df82376fc912b4e..da146b6e30a97ed27732165e3defa747bef7c14b 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -76,22 +43,3 @@ index 0b08a91ae9dc73c011dbb5f517becac7d08fd1e9..6fbf26eb7da8df2f0a4158ff9f120225 } public org.bukkit.Chunk bukkitChunk; -diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java -index 56a784e943cb5d8b15b41e3e66545ebf166c221c..d9882b1211aea28de4890aa8b121e69a539a7aa0 100644 ---- a/src/main/java/org/bukkit/craftbukkit/Main.java -+++ b/src/main/java/org/bukkit/craftbukkit/Main.java -@@ -164,6 +164,14 @@ public class Main { - .describedAs("Jar file"); - // Paper end - -+ // Purpur Start -+ acceptsAll(asList("pufferfish", "pufferfish-settings"), "File for pufferfish settings") -+ .withRequiredArg() -+ .ofType(File.class) -+ .defaultsTo(new File("pufferfish.yml")) -+ .describedAs("Yml file"); -+ // Purpur end -+ - // Paper start - acceptsAll(asList("server-name"), "Name of the server") - .withRequiredArg() diff --git a/patches/server/0003-Rebrand.patch b/patches/server/0003-Rebrand.patch index 2d6b953e4..f5dbfb79d 100644 --- a/patches/server/0003-Rebrand.patch +++ b/patches/server/0003-Rebrand.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Rebrand diff --git a/build.gradle.kts b/build.gradle.kts -index 27d1663fea7cbddfa4e2000cf73d215886c70aa5..a9acec9feef3c5322ce2c312cd8800bcdaca0947 100644 +index 7074295d7399d03e259598bb4bfa0f21434d74be..dc00d06f9bd4cc7403e0fe89822ed40ed2e148c8 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -9,7 +9,7 @@ plugins { @@ -15,7 +15,7 @@ index 27d1663fea7cbddfa4e2000cf73d215886c70aa5..a9acec9feef3c5322ce2c312cd8800bc - implementation(project(":pufferfish-api")) // Pufferfish // Paper + implementation(project(":purpur-api")) // Purpur // Pufferfish start - implementation("io.papermc.paper:paper-mojangapi:1.19.2-R0.1-SNAPSHOT") { // Purpur + implementation("io.papermc.paper:paper-mojangapi:1.19.2-R0.1-SNAPSHOT") { exclude("io.papermc.paper", "paper-api") @@ -44,6 +44,9 @@ dependencies { runtimeOnly("mysql:mysql-connector-java:8.0.29") @@ -199,10 +199,10 @@ index 92f685b1b6015cdd3e6c50fd39a79e2ad187fc91..98a166edfda01f5e07a144a34fd57f0e public SystemReport fillSystemReport(SystemReport details) { diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -index 7cf328cf8d31f1041cb964a5a6289c27fd65d3bd..8a42d36d450c024b1c465d134649a6db6d97bdc3 100644 +index 519883c5549744e047a8a96afee142746fcb49cd..7c09182f465b66979e1981222d20fa4f574680d5 100644 --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -@@ -286,11 +286,12 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface +@@ -285,11 +285,12 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface DedicatedServer.LOGGER.warn("**** SERVER IS RUNNING IN OFFLINE/INSECURE MODE!"); DedicatedServer.LOGGER.warn("The server will make no attempt to authenticate usernames. Beware."); // Spigot start @@ -231,7 +231,7 @@ index c31b9a6b1d4548d507ecb60d42ca9f96f49f6c4b..f613825c69a8d683b8029fe345031259 private static final int DEFAULT_SIZE_THRESHOLD = 1024 * 8; diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index a464d0a771875d3574fe4e461abe7212a933baf5..27b2416f725a57fcdc14378e7c14713978e51783 100644 +index 660d3f6e8a59751aa1d5b71f5bab72254b6065b8..0ab7d6b9fa8c1eca9b2e3b2548c37b444e1576dc 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -248,7 +248,7 @@ import javax.annotation.Nullable; // Paper diff --git a/patches/server/0004-Purpur-config-files.patch b/patches/server/0004-Purpur-config-files.patch index 4255cbbfb..241583958 100644 --- a/patches/server/0004-Purpur-config-files.patch +++ b/patches/server/0004-Purpur-config-files.patch @@ -64,10 +64,10 @@ index dd0143f319d4adef8834c513af34b1cce7a94a84..40f6d9845d2405c6e54c5213618e1b21 if (this.source.acceptsSuccess() && !this.silent) { this.source.sendSystemMessage(message); diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -index 8a42d36d450c024b1c465d134649a6db6d97bdc3..956e21a45e82e288efa40100d7b4f0f05f5aa6e5 100644 +index 7c09182f465b66979e1981222d20fa4f574680d5..629024e5c3f480bd50ae2df9dadb72f06a62c3bf 100644 --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -@@ -223,7 +223,16 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface +@@ -223,6 +223,15 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface thread.start(); // Paper - start console thread after MinecraftServer.console & PaperConfig are initialized io.papermc.paper.command.PaperCommands.registerCommands(this); com.destroystokyo.paper.Metrics.PaperMetrics.startMetrics(); @@ -79,7 +79,6 @@ index 8a42d36d450c024b1c465d134649a6db6d97bdc3..956e21a45e82e288efa40100d7b4f0f0 + return false; + } + org.purpurmc.purpur.PurpurConfig.registerCommands(); - gg.pufferfish.pufferfish.PufferfishConfig.pufferfishFile = (java.io.File) options.valueOf("pufferfish-settings"); // Purpur + // Purpur end com.destroystokyo.paper.VersionHistoryManager.INSTANCE.getClass(); // load version history now io.papermc.paper.brigadier.PaperBrigadierProviderImpl.INSTANCE.getClass(); // init PaperBrigadierProvider @@ -106,7 +105,7 @@ index b6f5d2aa4c6edb61421a553211ce71592d8c767a..9d68706d23da00700a89b533e9efefa3 this.world = new CraftWorld((ServerLevel) this, gen, biomeProvider, env); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 27b2416f725a57fcdc14378e7c14713978e51783..14669d51d624e7af1a06cff07f451524160687b3 100644 +index 0ab7d6b9fa8c1eca9b2e3b2548c37b444e1576dc..742c65fe400977ad7087f6756b6a80617fff2bfc 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -961,6 +961,7 @@ public final class CraftServer implements Server { @@ -153,21 +152,24 @@ index 27b2416f725a57fcdc14378e7c14713978e51783..14669d51d624e7af1a06cff07f451524 public void restart() { org.spigotmc.RestartCommand.restart(); diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java -index d9882b1211aea28de4890aa8b121e69a539a7aa0..323c0e2e96b6900206eed5a42a977c06f0364da3 100644 +index 56a784e943cb5d8b15b41e3e66545ebf166c221c..64489713611840abb069957dcdb495c60c990059 100644 --- a/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java -@@ -170,6 +170,11 @@ public class Main { - .ofType(File.class) - .defaultsTo(new File("pufferfish.yml")) - .describedAs("Yml file"); +@@ -164,6 +164,14 @@ public class Main { + .describedAs("Jar file"); + // Paper end + ++ // Purpur Start + acceptsAll(asList("purpur", "purpur-settings"), "File for purpur settings") + .withRequiredArg() + .ofType(File.class) + .defaultsTo(new File("purpur.yml")) + .describedAs("Yml file"); - // Purpur end - ++ // Purpur end ++ // Paper start + acceptsAll(asList("server-name"), "Name of the server") + .withRequiredArg() diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java new file mode 100644 index 0000000000000000000000000000000000000000..6dbb2e10ed244845fe9f857b237589900ea3cf40 diff --git a/patches/server/0005-Purpur-client-support.patch b/patches/server/0005-Purpur-client-support.patch index ab26f999b..04258b5e9 100644 --- a/patches/server/0005-Purpur-client-support.patch +++ b/patches/server/0005-Purpur-client-support.patch @@ -17,10 +17,10 @@ index 3615576c24d5d6790a6894a91180de25fa0e5a9c..266a26d73dd5aec427b64a638693decf public double lastEntitySpawnRadiusSquared; // Paper - optimise isOutsideRange, this field is in blocks public final com.destroystokyo.paper.util.misc.PooledLinkedHashSets.PooledObjectLinkedOpenHashSet cachedSingleHashSet; // Paper diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 9aab29dd7a09c306d6c0e1e8143daf005d611d65..0f9dea99893581122a6d5f9176b374c1c815973c 100644 +index 3d4e0be647f48a33d1afcdbec62c6624f2086294..5d8f2eedb1c2acc82e61a4adc3c688802e2d25a7 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -3653,6 +3653,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -3647,6 +3647,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic private static final ResourceLocation CUSTOM_UNREGISTER = new ResourceLocation("unregister"); private static final ResourceLocation MINECRAFT_BRAND = new ResourceLocation("brand"); // Paper - Brand support @@ -28,7 +28,7 @@ index 9aab29dd7a09c306d6c0e1e8143daf005d611d65..0f9dea99893581122a6d5f9176b374c1 @Override public void handleCustomPayload(ServerboundCustomPayloadPacket packet) { -@@ -3677,6 +3678,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -3671,6 +3672,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic ServerGamePacketListenerImpl.LOGGER.error("Couldn\'t unregister custom payload", ex); this.disconnect("Invalid payload UNREGISTER!", org.bukkit.event.player.PlayerKickEvent.Cause.INVALID_PAYLOAD); // Paper - kick event cause } diff --git a/patches/server/0007-Component-related-conveniences.patch b/patches/server/0007-Component-related-conveniences.patch index 036363c8b..a90566743 100644 --- a/patches/server/0007-Component-related-conveniences.patch +++ b/patches/server/0007-Component-related-conveniences.patch @@ -36,10 +36,10 @@ index 266a26d73dd5aec427b64a638693decf70ea36cb..2049fa1008be5208d9bb168dd6548361 public void displayClientMessage(Component message, boolean overlay) { this.sendSystemMessage(message, overlay); diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 8326775a4005b03468fba1ec556f951dc740c302..26400f0efc7e0f97d2010532d42d0caaff99e071 100644 +index e1b6017953edffcea0be81b70cf7b22ce8c0570d..41c00d0fad32f2e6b7928e9ecc054217529819ce 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java -@@ -1070,6 +1070,20 @@ public abstract class PlayerList { +@@ -1077,6 +1077,20 @@ public abstract class PlayerList { } // CraftBukkit end diff --git a/patches/server/0008-Ridables.patch b/patches/server/0008-Ridables.patch index d9e35ad1d..5b7bb4a24 100644 --- a/patches/server/0008-Ridables.patch +++ b/patches/server/0008-Ridables.patch @@ -66,10 +66,10 @@ index 2049fa1008be5208d9bb168dd65483613a7296f1..8e3e3dbbea328f76a790477545b46d2d 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 0f9dea99893581122a6d5f9176b374c1c815973c..f11f917130298aeca48fa51c1d9ea8150df60d8b 100644 +index 5d8f2eedb1c2acc82e61a4adc3c688802e2d25a7..34955c9dc680eb64403848da27ce0c5121ef8be5 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -2921,6 +2921,8 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2915,6 +2915,8 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic ServerGamePacketListenerImpl.this.cserver.getPluginManager().callEvent(event); @@ -2194,7 +2194,7 @@ index 45c3cec839a7c23903dedf6e3e004305da2adceb..248531727dcafb71d7d2d2767205e09a this.targetSelector.addGoal(2, new OwnerHurtTargetGoal(this)); this.targetSelector.addGoal(3, (new HurtByTargetGoal(this, new Class[0])).setAlertOthers()); diff --git a/src/main/java/net/minecraft/world/entity/animal/allay/Allay.java b/src/main/java/net/minecraft/world/entity/animal/allay/Allay.java -index 2d87b740e84435ef9bd3eee3d3e2af9f707a0826..d9cd71c57cde4cbd7131344ba7760fb6c224c7b6 100644 +index d38d1e3692e093d6707b6bd80cd56ec4afcf093b..c960aac9e1dbffe5e765f9adcfacc1966dc29148 100644 --- a/src/main/java/net/minecraft/world/entity/animal/allay/Allay.java +++ b/src/main/java/net/minecraft/world/entity/animal/allay/Allay.java @@ -101,10 +101,23 @@ public class Allay extends PathfinderMob implements InventoryCarrier { @@ -2320,7 +2320,7 @@ index fdd2c63ff0017bafa544a3cff2ee6d2d62c92cb3..32b31e5efb5fc68430b9bcd4cd972494 } diff --git a/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java b/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java -index 9a2d1285c207290946ae664915a77b8f9dc00ad7..952d8da2d5bc35aba52b9b63c3cf0e7b2c81f157 100644 +index 4c3fd27bff777139e29905e8684f6e92a44decfe..5c670b368407010524dcee1064fac2748d84cec2 100644 --- a/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java +++ b/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java @@ -83,16 +83,65 @@ public class Frog extends Animal { @@ -2390,7 +2390,7 @@ index 9a2d1285c207290946ae664915a77b8f9dc00ad7..952d8da2d5bc35aba52b9b63c3cf0e7b @Override protected Brain.Provider brainProvider() { return Brain.provider(MEMORY_TYPES, SENSOR_TYPES); -@@ -378,7 +427,7 @@ public class Frog extends Animal { +@@ -380,7 +429,7 @@ public class Frog extends Animal { return world.getBlockState(pos.below()).is(BlockTags.FROGS_SPAWNABLE_ON) && isBrightEnoughToSpawn(world, pos); } @@ -2400,7 +2400,7 @@ index 9a2d1285c207290946ae664915a77b8f9dc00ad7..952d8da2d5bc35aba52b9b63c3cf0e7b super(entity); } diff --git a/src/main/java/net/minecraft/world/entity/animal/frog/Tadpole.java b/src/main/java/net/minecraft/world/entity/animal/frog/Tadpole.java -index 3dd4e6d622a6daafa00ae971edd88a147e34beef..4dca3788a8fa335dc5969bd61cd0658f21e3bff3 100644 +index 32cca29fd622d18030931e1f330791491e7f9fa0..8561d1994cb8c42e69ef77fad16d037c205dad33 100644 --- a/src/main/java/net/minecraft/world/entity/animal/frog/Tadpole.java +++ b/src/main/java/net/minecraft/world/entity/animal/frog/Tadpole.java @@ -44,13 +44,50 @@ public class Tadpole extends AbstractFish { @@ -4944,7 +4944,7 @@ index 769e4fbaac01a4fe3a45bd9cab5c63b61fc69f53..ff149234a8f3e1c94961e41d5bc81174 this.level.getProfiler().pop(); PiglinBruteAi.updateActivity(this); diff --git a/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java b/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java -index 27bd70dc30c8472e5a80f3273f9233a0392f831d..54959365ffc81d305d07562fc5677cbb9fb97d2b 100644 +index b3158b1a7772f1254dd081ff6d3278a92192e896..df55f9a9f684b474a3bff0977069471727b242f4 100644 --- a/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java +++ b/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java @@ -120,8 +120,32 @@ public class Warden extends Monster implements VibrationListener.VibrationListen @@ -4980,7 +4980,7 @@ index 27bd70dc30c8472e5a80f3273f9233a0392f831d..54959365ffc81d305d07562fc5677cbb @Override public Packet getAddEntityPacket() { return new ClientboundAddEntityPacket(this, this.hasPose(Pose.EMERGING) ? 1 : 0); -@@ -403,19 +427,16 @@ public class Warden extends Monster implements VibrationListener.VibrationListen +@@ -405,19 +429,16 @@ public class Warden extends Monster implements VibrationListener.VibrationListen @Contract("null->false") public boolean canTargetEntity(@Nullable Entity entity) { diff --git a/patches/server/0010-Barrels-and-enderchests-6-rows.patch b/patches/server/0010-Barrels-and-enderchests-6-rows.patch index d7fab0de0..d727dcb56 100644 --- a/patches/server/0010-Barrels-and-enderchests-6-rows.patch +++ b/patches/server/0010-Barrels-and-enderchests-6-rows.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Barrels and enderchests 6 rows diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 26400f0efc7e0f97d2010532d42d0caaff99e071..482e6e00639f80497c61d6cb42502a05559d3ff9 100644 +index 41c00d0fad32f2e6b7928e9ecc054217529819ce..3fd73a7fe1ac10edeb3e688149820682e7f20f7b 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java -@@ -1195,6 +1195,27 @@ public abstract class PlayerList { +@@ -1202,6 +1202,27 @@ public abstract class PlayerList { player.getBukkitEntity().recalculatePermissions(); // CraftBukkit this.server.getCommands().sendCommands(player); } // Paper diff --git a/patches/server/0012-AFK-API.patch b/patches/server/0012-AFK-API.patch index de36ca7e2..54dc2bcb0 100644 --- a/patches/server/0012-AFK-API.patch +++ b/patches/server/0012-AFK-API.patch @@ -68,10 +68,10 @@ index 8e3e3dbbea328f76a790477545b46d2d3013546b..905aa1311791564720e541fc4fbe1e4f return this.stats; } diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index f11f917130298aeca48fa51c1d9ea8150df60d8b..b10a5f39145cf62b981fad6595e42ac09602d510 100644 +index 34955c9dc680eb64403848da27ce0c5121ef8be5..575839fb7bd54d6a34cf8bfa59cf1086eaf22834 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -343,6 +343,20 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -342,6 +342,20 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic private boolean justTeleported = false; private boolean hasMoved; // Spigot @@ -92,7 +92,7 @@ index f11f917130298aeca48fa51c1d9ea8150df60d8b..b10a5f39145cf62b981fad6595e42ac0 public CraftPlayer getCraftPlayer() { return (this.player == null) ? null : (CraftPlayer) this.player.getBukkitEntity(); } -@@ -445,6 +459,12 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -439,6 +453,12 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic } if (this.player.getLastActionTime() > 0L && this.server.getPlayerIdleTimeout() > 0 && Util.getMillis() - this.player.getLastActionTime() > (long) (this.server.getPlayerIdleTimeout() * 1000 * 60) && !this.player.wonGame) { // Paper - Prevent AFK kick while watching end credits. @@ -105,7 +105,7 @@ index f11f917130298aeca48fa51c1d9ea8150df60d8b..b10a5f39145cf62b981fad6595e42ac0 this.player.resetLastActionTime(); // CraftBukkit - SPIGOT-854 this.disconnect(Component.translatable("multiplayer.disconnect.idling"), org.bukkit.event.player.PlayerKickEvent.Cause.IDLING); // Paper - kick event cause } -@@ -750,6 +770,8 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -744,6 +764,8 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic this.lastYaw = to.getYaw(); this.lastPitch = to.getPitch(); @@ -114,7 +114,7 @@ index f11f917130298aeca48fa51c1d9ea8150df60d8b..b10a5f39145cf62b981fad6595e42ac0 // Skip the first time we do this if (true) { // Spigot - don't skip any move events Location oldTo = to.clone(); -@@ -1554,7 +1576,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -1548,7 +1570,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic if (!this.player.isChangingDimension() && d11 > org.spigotmc.SpigotConfig.movedWronglyThreshold && !this.player.isSleeping() && !this.player.gameMode.isCreative() && this.player.gameMode.getGameModeForPlayer() != GameType.SPECTATOR) { // Spigot flag2 = true; // Paper - diff on change, this should be moved wrongly @@ -123,7 +123,7 @@ index f11f917130298aeca48fa51c1d9ea8150df60d8b..b10a5f39145cf62b981fad6595e42ac0 } this.player.absMoveTo(d0, d1, d2, f, f1); -@@ -1604,6 +1626,8 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -1598,6 +1620,8 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic this.lastYaw = to.getYaw(); this.lastPitch = to.getPitch(); diff --git a/patches/server/0019-Player-invulnerabilities.patch b/patches/server/0019-Player-invulnerabilities.patch index 765cb71f1..fbe0a3e20 100644 --- a/patches/server/0019-Player-invulnerabilities.patch +++ b/patches/server/0019-Player-invulnerabilities.patch @@ -82,10 +82,10 @@ index 905aa1311791564720e541fc4fbe1e4f8d38a0e7..577a8a033c13832bc9cf5783b8cd6d47 public Scoreboard getScoreboard() { return this.getBukkitEntity().getScoreboard().getHandle(); diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index b10a5f39145cf62b981fad6595e42ac09602d510..9873e559675203df5fc0b44c820fdd2671b17c23 100644 +index 575839fb7bd54d6a34cf8bfa59cf1086eaf22834..8d13fad0bd574cf9cd01d7aa5754023aecf46104 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -2105,12 +2105,21 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2099,12 +2099,21 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic @Override public void handleResourcePackResponse(ServerboundResourcePackPacket packet) { PacketUtils.ensureRunningOnSameThread(packet, this, this.player.getLevel()); @@ -108,10 +108,10 @@ index b10a5f39145cf62b981fad6595e42ac09602d510..9873e559675203df5fc0b44c820fdd26 this.cserver.getPluginManager().callEvent(new PlayerResourcePackStatusEvent(this.getCraftPlayer(), packStatus)); // CraftBukkit // Paper end diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 482e6e00639f80497c61d6cb42502a05559d3ff9..c00f332e466b6d57877d80f0038d2f65c25fd751 100644 +index 3fd73a7fe1ac10edeb3e688149820682e7f20f7b..3c2f5ab8f566dadcc16d63eec754f057bca7444c 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java -@@ -1010,6 +1010,8 @@ public abstract class PlayerList { +@@ -1017,6 +1017,8 @@ public abstract class PlayerList { } // Paper end diff --git a/patches/server/0022-Alternative-Keepalive-Handling.patch b/patches/server/0022-Alternative-Keepalive-Handling.patch index 153bbc354..8f4a913fc 100644 --- a/patches/server/0022-Alternative-Keepalive-Handling.patch +++ b/patches/server/0022-Alternative-Keepalive-Handling.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Alternative Keepalive Handling diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 9873e559675203df5fc0b44c820fdd2671b17c23..accc5e15eef680c82bab4fdcf759d7b17e57dd67 100644 +index 8d13fad0bd574cf9cd01d7aa5754023aecf46104..2e03ec98f16295c8adec397dfaf0fb2a101ecc88 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -261,6 +261,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -260,6 +260,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic private long keepAliveTime = Util.getMillis(); private boolean keepAlivePending; private long keepAliveChallenge; @@ -16,7 +16,7 @@ index 9873e559675203df5fc0b44c820fdd2671b17c23..accc5e15eef680c82bab4fdcf759d7b1 // 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 -@@ -427,6 +428,21 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -421,6 +422,21 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic long currentTime = Util.getMillis(); long elapsedTime = currentTime - this.keepAliveTime; @@ -38,7 +38,7 @@ index 9873e559675203df5fc0b44c820fdd2671b17c23..accc5e15eef680c82bab4fdcf759d7b1 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 -@@ -3638,6 +3654,16 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -3632,6 +3648,16 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic @Override public void handleKeepAlive(ServerboundKeepAlivePacket packet) { diff --git a/patches/server/0027-Disable-outdated-build-check.patch b/patches/server/0027-Disable-outdated-build-check.patch index d7745c749..8bd4a12f5 100644 --- a/patches/server/0027-Disable-outdated-build-check.patch +++ b/patches/server/0027-Disable-outdated-build-check.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Disable outdated build check diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java -index 323c0e2e96b6900206eed5a42a977c06f0364da3..ee15a1f29b7af499ccedb3ff37413d68fb98d270 100644 +index 64489713611840abb069957dcdb495c60c990059..420300ce19d01f36f071eae44efd4cb32beb0ed6 100644 --- a/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java -@@ -281,7 +281,7 @@ public class Main { +@@ -276,7 +276,7 @@ public class Main { System.setProperty(TerminalConsoleAppender.JLINE_OVERRIDE_PROPERTY, "false"); // Paper } diff --git a/patches/server/0051-Add-permission-for-F3-N-debug.patch b/patches/server/0051-Add-permission-for-F3-N-debug.patch index 9677b9733..61d7fd875 100644 --- a/patches/server/0051-Add-permission-for-F3-N-debug.patch +++ b/patches/server/0051-Add-permission-for-F3-N-debug.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add permission for F3+N debug diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index c00f332e466b6d57877d80f0038d2f65c25fd751..26ebd7726783abd97c968c5183545a6e74082956 100644 +index 3c2f5ab8f566dadcc16d63eec754f057bca7444c..a71f315dfedc4e5856f0955b6f97ae5c374e020f 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java -@@ -1189,6 +1189,7 @@ public abstract class PlayerList { +@@ -1196,6 +1196,7 @@ public abstract class PlayerList { } else { b0 = (byte) (24 + permissionLevel); } diff --git a/patches/server/0077-Allow-color-codes-in-books.patch b/patches/server/0077-Allow-color-codes-in-books.patch index 8b296d6dc..6214d1048 100644 --- a/patches/server/0077-Allow-color-codes-in-books.patch +++ b/patches/server/0077-Allow-color-codes-in-books.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Allow color codes in books diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index accc5e15eef680c82bab4fdcf759d7b17e57dd67..9ad05f4e414e147ff1bdb90d83fa700b30d311a5 100644 +index 2e03ec98f16295c8adec397dfaf0fb2a101ecc88..9d8ed13f7bf6ff1bf2a3d1959687d12fa1073374 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -1348,13 +1348,16 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -1342,13 +1342,16 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic itemstack1.setTag(nbttagcompound.copy()); } @@ -28,7 +28,7 @@ index accc5e15eef680c82bab4fdcf759d7b17e57dd67..9ad05f4e414e147ff1bdb90d83fa700b this.updateBookPages(pages, (s) -> { return Component.Serializer.toJson(Component.literal(s)); -@@ -1366,10 +1369,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -1360,10 +1363,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic public void updateBookPages(List list, UnaryOperator unaryoperator, ItemStack itemstack, int slot, ItemStack handItem) { // CraftBukkit ListTag nbttaglist = new ListTag(); @@ -44,7 +44,7 @@ index accc5e15eef680c82bab4fdcf759d7b17e57dd67..9ad05f4e414e147ff1bdb90d83fa700b Objects.requireNonNull(nbttaglist); stream.forEach(nbttaglist::add); -@@ -1379,11 +1385,11 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -1373,11 +1379,11 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic for (int j = list.size(); i < j; ++i) { FilteredText filteredtext = (FilteredText) list.get(i); @@ -58,7 +58,7 @@ index accc5e15eef680c82bab4fdcf759d7b17e57dd67..9ad05f4e414e147ff1bdb90d83fa700b } } -@@ -1396,6 +1402,16 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -1390,6 +1396,16 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic this.player.getInventory().setItem(slot, CraftEventFactory.handleEditBookEvent(player, slot, handItem, itemstack)); // CraftBukkit // Paper - Don't ignore result (see other callsite for handleEditBookEvent) } diff --git a/patches/server/0078-Entity-lifespan.patch b/patches/server/0078-Entity-lifespan.patch index c78f54034..0342a515f 100644 --- a/patches/server/0078-Entity-lifespan.patch +++ b/patches/server/0078-Entity-lifespan.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Entity lifespan diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 9ad05f4e414e147ff1bdb90d83fa700b30d311a5..bdabf2ce37b8662fe3d2387b791eee217ce7b61c 100644 +index 9d8ed13f7bf6ff1bf2a3d1959687d12fa1073374..febc3b007a0486bdcd9abb2d8f8676f8f02bbdc0 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -2976,6 +2976,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2970,6 +2970,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic } if (entity.distanceToSqr(this.player.getEyePosition()) < ServerGamePacketListenerImpl.MAX_INTERACTION_DISTANCE) { diff --git a/patches/server/0098-Despawn-rate-config-options-per-projectile-type.patch b/patches/server/0098-Despawn-rate-config-options-per-projectile-type.patch index 12be50c7d..3344177a2 100644 --- a/patches/server/0098-Despawn-rate-config-options-per-projectile-type.patch +++ b/patches/server/0098-Despawn-rate-config-options-per-projectile-type.patch @@ -7,10 +7,10 @@ This patch's implementation has been removed in favor of Pufferfish's entity-tim The config remains for migration purposes. diff --git a/src/main/java/gg/pufferfish/pufferfish/PufferfishConfig.java b/src/main/java/gg/pufferfish/pufferfish/PufferfishConfig.java -index e03dd590b0c6c8e85d0f78f9ec48168753a92a48..da5bcc3c9a650612f832d3e39fea68613ad9e16b 100644 +index 38cb29c646ff496ffaa6553f98a565b71155c464..e077a43cf3f06207234cb445b58dff79eabcb9c6 100644 --- a/src/main/java/gg/pufferfish/pufferfish/PufferfishConfig.java +++ b/src/main/java/gg/pufferfish/pufferfish/PufferfishConfig.java -@@ -122,6 +122,22 @@ public class PufferfishConfig { +@@ -121,6 +121,22 @@ public class PufferfishConfig { config.setComment(key, String.join("\n", comment), CommentType.BLOCK); } } diff --git a/patches/server/0120-Spread-out-and-optimise-player-list-ticksSpread-out-.patch b/patches/server/0120-Spread-out-and-optimise-player-list-ticksSpread-out-.patch index 4246ae42f..3487bac56 100644 --- a/patches/server/0120-Spread-out-and-optimise-player-list-ticksSpread-out-.patch +++ b/patches/server/0120-Spread-out-and-optimise-player-list-ticksSpread-out-.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Spread out and optimise player list ticksSpread out and diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 26ebd7726783abd97c968c5183545a6e74082956..22fde2975bc5d66bd60ce0325945ee7c5afac55e 100644 +index a71f315dfedc4e5856f0955b6f97ae5c374e020f..80be27593ce08a0acb01fde04994ed60975a7a7f 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java -@@ -1024,22 +1024,22 @@ public abstract class PlayerList { +@@ -1031,22 +1031,22 @@ public abstract class PlayerList { } public void tick() { diff --git a/patches/server/0125-Implement-TPSBar.patch b/patches/server/0125-Implement-TPSBar.patch index b73a7c896..5b13c2bb7 100644 --- a/patches/server/0125-Implement-TPSBar.patch +++ b/patches/server/0125-Implement-TPSBar.patch @@ -29,10 +29,10 @@ index eb12fed7ee6d7d3a5f5b9e99d8f11b38122cac7e..872632875d1569dd348c78983b260ebe this.hasLoggedStop = true; // Paper if (isDebugging()) io.papermc.paper.util.TraceUtil.dumpTraceForThread("Server stopped"); // Paper diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -index 956e21a45e82e288efa40100d7b4f0f05f5aa6e5..4bd120ab4d19052ed769c4dd8a682650f0020bbc 100644 +index 629024e5c3f480bd50ae2df9dadb72f06a62c3bf..19bf680e222d7f91a0e7f67b29e3a5e38a35c1e7 100644 --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -@@ -352,6 +352,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface +@@ -351,6 +351,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface } if (gg.pufferfish.pufferfish.PufferfishConfig.enableAsyncMobSpawning) mobSpawnExecutor.start(); // Pufferfish @@ -83,10 +83,10 @@ index 725358518b73b908c8150bdbabed68909c91f4d4..b858ce2ad443f6690dd71e56fb9eea14 // Purpur end } diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 22fde2975bc5d66bd60ce0325945ee7c5afac55e..d1acb410384899866458fbb8b63284a0148c92f2 100644 +index 80be27593ce08a0acb01fde04994ed60975a7a7f..b82000ecb5c5f61422e1a9c34ef1d2924d447d4b 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java -@@ -499,6 +499,7 @@ public abstract class PlayerList { +@@ -506,6 +506,7 @@ public abstract class PlayerList { scoreboard.addPlayerToTeam(player.getScoreboardName(), collideRuleTeam); } // Paper end @@ -94,7 +94,7 @@ index 22fde2975bc5d66bd60ce0325945ee7c5afac55e..d1acb410384899866458fbb8b63284a0 // CraftBukkit - Moved from above, added world PlayerList.LOGGER.info("{}[{}] logged in with entity id {} at ([{}]{}, {}, {})", player.getName().getString(), s1, player.getId(), worldserver1.serverLevelData.getLevelName(), player.getX(), player.getY(), player.getZ()); } -@@ -609,6 +610,8 @@ public abstract class PlayerList { +@@ -616,6 +617,8 @@ public abstract class PlayerList { } public net.kyori.adventure.text.Component remove(ServerPlayer entityplayer, net.kyori.adventure.text.Component leaveMessage) { // Paper end diff --git a/patches/server/0127-PlayerBookTooLargeEvent.patch b/patches/server/0127-PlayerBookTooLargeEvent.patch index c8208e54a..552a58b12 100644 --- a/patches/server/0127-PlayerBookTooLargeEvent.patch +++ b/patches/server/0127-PlayerBookTooLargeEvent.patch @@ -5,10 +5,10 @@ Subject: [PATCH] PlayerBookTooLargeEvent diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index bdabf2ce37b8662fe3d2387b791eee217ce7b61c..1cee1e7f228d52af4f166d122f21ad37c3704a46 100644 +index febc3b007a0486bdcd9abb2d8f8676f8f02bbdc0..a761a005001fede9e3db415753a4ead59d7dd6f8 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -1268,10 +1268,12 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -1262,10 +1262,12 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic int maxBookPageSize = io.papermc.paper.configuration.GlobalConfiguration.get().itemValidation.bookSize.pageMax; double multiplier = Math.max(0.3D, Math.min(1D, io.papermc.paper.configuration.GlobalConfiguration.get().itemValidation.bookSize.totalMultiplier)); long byteAllowed = maxBookPageSize; @@ -21,7 +21,7 @@ index bdabf2ce37b8662fe3d2387b791eee217ce7b61c..1cee1e7f228d52af4f166d122f21ad37 server.scheduleOnMain(() -> this.disconnect("Book too large!", org.bukkit.event.player.PlayerKickEvent.Cause.ILLEGAL_ACTION)); // Paper - kick event cause return; } -@@ -1295,6 +1297,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -1289,6 +1291,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic if (byteTotal > byteAllowed) { ServerGamePacketListenerImpl.LOGGER.warn(this.player.getScoreboardName() + " tried to send too large of a book. Book Size: " + byteTotal + " - Allowed: "+ byteAllowed + " - Pages: " + pageList.size()); diff --git a/patches/server/0140-Dont-run-with-scissors.patch b/patches/server/0140-Dont-run-with-scissors.patch index 5144dac54..32397d48e 100644 --- a/patches/server/0140-Dont-run-with-scissors.patch +++ b/patches/server/0140-Dont-run-with-scissors.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Dont run with scissors! diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 1cee1e7f228d52af4f166d122f21ad37c3704a46..c914fbbb8b63506e345c747ff5ef0bbbb471c9eb 100644 +index a761a005001fede9e3db415753a4ead59d7dd6f8..0010a80db783d1b33af7751d0c2d85a97df85add 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -1702,6 +1702,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -1696,6 +1696,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic this.player.resetFallDistance(); } @@ -22,7 +22,7 @@ index 1cee1e7f228d52af4f166d122f21ad37c3704a46..c914fbbb8b63506e345c747ff5ef0bbb this.player.checkMovementStatistics(this.player.getX() - d3, this.player.getY() - d4, this.player.getZ() - d5); this.lastGoodX = this.player.getX(); this.lastGoodY = this.player.getY(); -@@ -1735,6 +1742,12 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -1729,6 +1736,12 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic } // Paper end - optimise out extra getCubes diff --git a/patches/server/0191-Allow-player-join-full-server-by-permission.patch b/patches/server/0191-Allow-player-join-full-server-by-permission.patch index 0c7cd5dbf..934b58571 100644 --- a/patches/server/0191-Allow-player-join-full-server-by-permission.patch +++ b/patches/server/0191-Allow-player-join-full-server-by-permission.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Allow player join full server by permission diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index d1acb410384899866458fbb8b63284a0148c92f2..a6fe2e75b3c21a420432f33c9f5666fc558a06d1 100644 +index b82000ecb5c5f61422e1a9c34ef1d2924d447d4b..d9153b04b242e22d6e8894bfd45c92ea6466df00 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java -@@ -779,7 +779,7 @@ public abstract class PlayerList { +@@ -786,7 +786,7 @@ public abstract class PlayerList { event.disallow(PlayerLoginEvent.Result.KICK_BANNED, PaperAdventure.asAdventure(ichatmutablecomponent)); // Paper - Adventure } else { // return this.players.size() >= this.maxPlayers && !this.canBypassPlayerLimit(gameprofile) ? IChatBaseComponent.translatable("multiplayer.disconnect.server_full") : null; diff --git a/patches/server/0227-Shift-right-click-to-use-exp-for-mending.patch b/patches/server/0227-Shift-right-click-to-use-exp-for-mending.patch index 384a73a9e..0de59080a 100644 --- a/patches/server/0227-Shift-right-click-to-use-exp-for-mending.patch +++ b/patches/server/0227-Shift-right-click-to-use-exp-for-mending.patch @@ -36,10 +36,10 @@ index 28463bca77d62ad9175a55cffc92110ffa16fadc..bd77301ef6cde21e1ee1966d2ffa4186 + // Purpur end } diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index c914fbbb8b63506e345c747ff5ef0bbbb471c9eb..7f3c1c9776aab0b92cac6feb1845e55a701a5705 100644 +index 0010a80db783d1b33af7751d0c2d85a97df85add..ae664ac204f47916da38c6ce70bf8531bb6cb704 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -2101,6 +2101,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2095,6 +2095,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic boolean cancelled; if (movingobjectposition == null || movingobjectposition.getType() != HitResult.Type.BLOCK) { diff --git a/patches/server/0233-UPnP-Port-Forwarding.patch b/patches/server/0233-UPnP-Port-Forwarding.patch index 91df38556..197104589 100644 --- a/patches/server/0233-UPnP-Port-Forwarding.patch +++ b/patches/server/0233-UPnP-Port-Forwarding.patch @@ -32,10 +32,10 @@ index d8e0bac3de2f7810d7af82fe6c5c00870fef3155..d950b72b7287b857cb849c1a2fc931fa if (this.server != null) { this.server.disablePlugins(); diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -index 4bd120ab4d19052ed769c4dd8a682650f0020bbc..de711300db4b9abe30bddb430875d4503355e9e2 100644 +index 19bf680e222d7f91a0e7f67b29e3a5e38a35c1e7..ac860bf07d0fca29adad3de79396055f957a64e9 100644 --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -@@ -284,6 +284,30 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface +@@ -283,6 +283,30 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface DedicatedServer.LOGGER.warn("Perhaps a server is already running on that port?"); return false; } diff --git a/patches/server/0238-Signs-allow-color-codes.patch b/patches/server/0238-Signs-allow-color-codes.patch index 62f96c6ce..26ab55aac 100644 --- a/patches/server/0238-Signs-allow-color-codes.patch +++ b/patches/server/0238-Signs-allow-color-codes.patch @@ -17,10 +17,10 @@ index 68008facb6cfcccbcb7501c84c5da9014321ce4a..4d28a1f9fe43bb8e9f5ffaf06895c94f this.connection.send(new ClientboundBlockUpdatePacket(this.level, sign.getBlockPos())); this.connection.send(new ClientboundOpenSignEditorPacket(sign.getBlockPos())); diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 7f3c1c9776aab0b92cac6feb1845e55a701a5705..1eafc5667fd6a9746df7f4233cb021c2c435347e 100644 +index ae664ac204f47916da38c6ce70bf8531bb6cb704..d842f7c95c1105ca5e6a5bd4bdc0347cfa1feee9 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -3662,11 +3662,17 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -3656,11 +3656,17 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic for (int i = 0; i < signText.size(); ++i) { FilteredText filteredtext = (FilteredText) signText.get(i); diff --git a/patches/server/0251-Give-bee-counts-in-beehives-to-Purpur-clients.patch b/patches/server/0251-Give-bee-counts-in-beehives-to-Purpur-clients.patch index 6e870a14f..e64d5b386 100644 --- a/patches/server/0251-Give-bee-counts-in-beehives-to-Purpur-clients.patch +++ b/patches/server/0251-Give-bee-counts-in-beehives-to-Purpur-clients.patch @@ -17,10 +17,10 @@ index d950b72b7287b857cb849c1a2fc931fa7d30f25f..ad75fb1e1d8c91b46c98fc666f12b72f this.hasLoggedStop = true; // Paper if (isDebugging()) io.papermc.paper.util.TraceUtil.dumpTraceForThread("Server stopped"); // Paper diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -index de711300db4b9abe30bddb430875d4503355e9e2..7875606264dc7bc2c4a0e8dfacecf07427c1d5a1 100644 +index ac860bf07d0fca29adad3de79396055f957a64e9..5de95ba778e4a0cd1467e7392aa80eda1bd21a03 100644 --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -@@ -377,6 +377,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface +@@ -376,6 +376,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface if (gg.pufferfish.pufferfish.PufferfishConfig.enableAsyncMobSpawning) mobSpawnExecutor.start(); // Pufferfish org.purpurmc.purpur.task.BossBarTask.startAll(); // Purpur diff --git a/patches/server/0275-Add-log-suppression-for-sent-expired-chat.patch b/patches/server/0275-Add-log-suppression-for-sent-expired-chat.patch index d558b5daf..e55677c7d 100644 --- a/patches/server/0275-Add-log-suppression-for-sent-expired-chat.patch +++ b/patches/server/0275-Add-log-suppression-for-sent-expired-chat.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add log suppression for sent expired chat diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 1eafc5667fd6a9746df7f4233cb021c2c435347e..25c9f742ad12a3ccab9860b4fc1de3d77ea9de82 100644 +index d842f7c95c1105ca5e6a5bd4bdc0347cfa1feee9..6bb6e70ede5c5fb5f505020e70a240b51010cb66 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -2692,7 +2692,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2686,7 +2686,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic } } diff --git a/patches/server/0279-Option-to-disable-kick-for-out-of-order-chat.patch b/patches/server/0279-Option-to-disable-kick-for-out-of-order-chat.patch index aa853a1c8..0c54cac24 100644 --- a/patches/server/0279-Option-to-disable-kick-for-out-of-order-chat.patch +++ b/patches/server/0279-Option-to-disable-kick-for-out-of-order-chat.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Option to disable kick for out of order chat diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 25c9f742ad12a3ccab9860b4fc1de3d77ea9de82..cf24035eb1d145c2118d3ee57527f7cf9d2246fc 100644 +index 6bb6e70ede5c5fb5f505020e70a240b51010cb66..0bc14bd2252705bd08ced10db3ed8dfbdc59893d 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -2457,7 +2457,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2451,7 +2451,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic do { instant1 = (Instant) this.lastChatTimeStamp.get(); if (timestamp.isBefore(instant1)) { diff --git a/patches/server/0288-Remove-Timings.patch b/patches/server/0288-Remove-Timings.patch index 0a4116614..d5a1d87a6 100644 --- a/patches/server/0288-Remove-Timings.patch +++ b/patches/server/0288-Remove-Timings.patch @@ -264,10 +264,10 @@ index 00a50196f6a4768d84acfbbeec79a0753308f091..30093cd8bd35f0bbc8f26eca370622ee i = this.context.runTopCommand(function, source); } finally { diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -index 7875606264dc7bc2c4a0e8dfacecf07427c1d5a1..5a5c5a366e1156e1233efc04d0c0a6051170a4f5 100644 +index 5de95ba778e4a0cd1467e7392aa80eda1bd21a03..0bfdc4247a651f6c1caf7a95114be68bc7d77d7b 100644 --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -@@ -497,7 +497,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface +@@ -496,7 +496,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface } public void handleConsoleInputs() { @@ -276,7 +276,7 @@ index 7875606264dc7bc2c4a0e8dfacecf07427c1d5a1..5a5c5a366e1156e1233efc04d0c0a605 // Paper start - use proper queue ConsoleInput servercommand; while ((servercommand = this.serverCommandQueue.poll()) != null) { -@@ -514,7 +514,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface +@@ -513,7 +513,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface // CraftBukkit end } @@ -769,10 +769,10 @@ index fdc9de253ae6d20b4df71fd6e6c1bb98ec753abf..5a800731927ca20e95fbcd0e8b94999e this.entityManager.saveAll(); } else { diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index cf24035eb1d145c2118d3ee57527f7cf9d2246fc..9dbd5c2e7d0c9bb26556ce32ced4c43ad9f3df0c 100644 +index 0bc14bd2252705bd08ced10db3ed8dfbdc59893d..166fd17d03d84cd3ea5917c17e6b9549a46295e0 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -2607,7 +2607,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2601,7 +2601,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic } } // Paper End @@ -781,7 +781,7 @@ index cf24035eb1d145c2118d3ee57527f7cf9d2246fc..9dbd5c2e7d0c9bb26556ce32ced4c43a if ( org.spigotmc.SpigotConfig.logCommands ) // Spigot this.LOGGER.info(this.player.getScoreboardName() + " issued server command: " + s); -@@ -2617,7 +2617,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2611,7 +2611,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic this.cserver.getPluginManager().callEvent(event); if (event.isCancelled()) { @@ -790,7 +790,7 @@ index cf24035eb1d145c2118d3ee57527f7cf9d2246fc..9dbd5c2e7d0c9bb26556ce32ced4c43a return; } -@@ -2630,7 +2630,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2624,7 +2624,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic java.util.logging.Logger.getLogger(ServerGamePacketListenerImpl.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); return; } finally { @@ -800,10 +800,10 @@ index cf24035eb1d145c2118d3ee57527f7cf9d2246fc..9dbd5c2e7d0c9bb26556ce32ced4c43a } // CraftBukkit end diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index a6fe2e75b3c21a420432f33c9f5666fc558a06d1..cc09274fb3c3068ecd56e4c3c280b4fc876e628f 100644 +index d9153b04b242e22d6e8894bfd45c92ea6466df00..1da509127582618d6ced45e6e8a310304e9ecc16 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java -@@ -1283,7 +1283,7 @@ public abstract class PlayerList { +@@ -1290,7 +1290,7 @@ public abstract class PlayerList { public void saveAll(int interval) { net.minecraft.server.MCUtil.ensureMain("Save Players" , () -> { // Paper - Ensure main @@ -812,7 +812,7 @@ index a6fe2e75b3c21a420432f33c9f5666fc558a06d1..cc09274fb3c3068ecd56e4c3c280b4fc int numSaved = 0; long now = MinecraftServer.currentTick; for (int i = 0; i < this.players.size(); ++i) { -@@ -1294,7 +1294,7 @@ public abstract class PlayerList { +@@ -1301,7 +1301,7 @@ public abstract class PlayerList { } // Paper end } diff --git a/patches/server/0289-Remove-Mojang-Profiler.patch b/patches/server/0289-Remove-Mojang-Profiler.patch index 8bc835ee3..8ee4c5f89 100644 --- a/patches/server/0289-Remove-Mojang-Profiler.patch +++ b/patches/server/0289-Remove-Mojang-Profiler.patch @@ -835,10 +835,10 @@ index 4d28a1f9fe43bb8e9f5ffaf06895c94fa0749d5d..08c46cdc626e89fed0d769d50735e983 this.connection.send(new ClientboundPlayerAbilitiesPacket(this.getAbilities())); playerlist.sendLevelInfo(this, worldserver); diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 9dbd5c2e7d0c9bb26556ce32ced4c43ad9f3df0c..93c0560df791e768277e33999379738ec597a6dd 100644 +index 166fd17d03d84cd3ea5917c17e6b9549a46295e0..48224c850e5be223971b76a4e580b95585208ea6 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -422,7 +422,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -416,7 +416,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic this.aboveGroundVehicleTickCount = 0; }} // Paper - end if (valid) @@ -847,7 +847,7 @@ index 9dbd5c2e7d0c9bb26556ce32ced4c43ad9f3df0c..93c0560df791e768277e33999379738e // Paper Start - give clients a longer time to respond to pings as per pre 1.12.2 timings // This should effectively place the keepalive handling back to "as it was" before 1.12.2 long currentTime = Util.getMillis(); -@@ -458,7 +458,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -452,7 +452,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic } // Paper end @@ -1491,15 +1491,16 @@ index 288c6627906d07c0d223eacd84ae4eb31a349998..9babe636176da3c40598eb5bdac0919a this.seen.add(i); } else { diff --git a/src/main/java/net/minecraft/world/entity/animal/allay/Allay.java b/src/main/java/net/minecraft/world/entity/animal/allay/Allay.java -index d9cd71c57cde4cbd7131344ba7760fb6c224c7b6..0f69e1c4e4b14186e7cb99f170ac4d164d2e252c 100644 +index c960aac9e1dbffe5e765f9adcfacc1966dc29148..c233533fdacb4f5e635267b5fc9fe21bc8b3c51a 100644 --- a/src/main/java/net/minecraft/world/entity/animal/allay/Allay.java +++ b/src/main/java/net/minecraft/world/entity/animal/allay/Allay.java -@@ -265,12 +265,12 @@ public class Allay extends PathfinderMob implements InventoryCarrier { - +@@ -266,13 +266,13 @@ public class Allay extends PathfinderMob implements InventoryCarrier { + private int behaviorTick = 0; // Pufferfish @Override protected void customServerAiStep() { - this.level.getProfiler().push("allayBrain"); + //this.level.getProfiler().push("allayBrain"); // Purpur + if (this.behaviorTick++ % this.activatedPriority == 0) // Pufferfish this.getBrain().tick((ServerLevel) this.level, this); - this.level.getProfiler().pop(); - this.level.getProfiler().push("allayActivityUpdate"); @@ -1534,15 +1535,16 @@ index 32870e6727d09fbf1c4913ffdf321a278b5b6f64..50f19125fa3dda79a850cfce0ab7c720 Optional optional = this.getBrain().getMemory(MemoryModuleType.PLAY_DEAD_TICKS); diff --git a/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java b/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java -index 04262d31dc0767500f2b22cfe5768a8e24de7af9..82d98615fea97ebc0a333748d47b83beeff923d6 100644 +index b84effd5e18fee155e731d1a80ba516b86431d3b..989af6f3e0604a342032b308f97c7b863b3b1e40 100644 --- a/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java +++ b/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java -@@ -229,12 +229,12 @@ public class Frog extends Animal { - +@@ -230,13 +230,13 @@ public class Frog extends Animal { + private int behaviorTick = 0; // Pufferfish @Override protected void customServerAiStep() { - this.level.getProfiler().push("frogBrain"); + //this.level.getProfiler().push("frogBrain"); // Purpur + if (this.behaviorTick++ % this.activatedPriority == 0) // Pufferfish this.getBrain().tick((ServerLevel)this.level, this); - this.level.getProfiler().pop(); - this.level.getProfiler().push("frogActivityUpdate"); @@ -1555,15 +1557,16 @@ index 04262d31dc0767500f2b22cfe5768a8e24de7af9..82d98615fea97ebc0a333748d47b83be } diff --git a/src/main/java/net/minecraft/world/entity/animal/frog/Tadpole.java b/src/main/java/net/minecraft/world/entity/animal/frog/Tadpole.java -index 4dca3788a8fa335dc5969bd61cd0658f21e3bff3..88025a051a9e8c21aaf171431a0850c267ca4ca4 100644 +index 8561d1994cb8c42e69ef77fad16d037c205dad33..5268a56a7967275df63f5a5ddb59219904f9a3c4 100644 --- a/src/main/java/net/minecraft/world/entity/animal/frog/Tadpole.java +++ b/src/main/java/net/minecraft/world/entity/animal/frog/Tadpole.java -@@ -115,12 +115,12 @@ public class Tadpole extends AbstractFish { - +@@ -116,13 +116,13 @@ public class Tadpole extends AbstractFish { + private int behaviorTick = 0; // Pufferfish @Override protected void customServerAiStep() { - this.level.getProfiler().push("tadpoleBrain"); + //this.level.getProfiler().push("tadpoleBrain"); // Purpur + if (this.behaviorTick++ % this.activatedPriority == 0) // Pufferfish this.getBrain().tick((ServerLevel) this.level, this); - this.level.getProfiler().pop(); - this.level.getProfiler().push("tadpoleActivityUpdate"); @@ -1666,15 +1669,16 @@ index 760015f7a98e70b735707c77472c084d8bd052bb..bc6572b1025d74a7590d7e1cc49132f9 PiglinBruteAi.maybePlayActivitySound(this); super.customServerAiStep(); diff --git a/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java b/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java -index 54959365ffc81d305d07562fc5677cbb9fb97d2b..f8d773d3a2c20ab27c0a250b2f5fc7be05ca9b1b 100644 +index df55f9a9f684b474a3bff0977069471727b242f4..5dab2eea9e9c50e41c7971daefc3bbe819583207 100644 --- a/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java +++ b/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java -@@ -298,9 +298,9 @@ public class Warden extends Monster implements VibrationListener.VibrationListen +@@ -299,10 +299,10 @@ public class Warden extends Monster implements VibrationListener.VibrationListen protected void customServerAiStep() { ServerLevel worldserver = (ServerLevel) this.level; - worldserver.getProfiler().push("wardenBrain"); + //worldserver.getProfiler().push("wardenBrain"); // Purpur + if (this.behaviorTick++ % this.activatedPriority == 0) // Pufferfish this.getBrain().tick(worldserver, this); - this.level.getProfiler().pop(); + //this.level.getProfiler().pop(); // Purpur diff --git a/patches/server/0290-Add-more-logger-output-for-invalid-movement-kicks.patch b/patches/server/0290-Add-more-logger-output-for-invalid-movement-kicks.patch index 8f55d8f98..56c30cc52 100644 --- a/patches/server/0290-Add-more-logger-output-for-invalid-movement-kicks.patch +++ b/patches/server/0290-Add-more-logger-output-for-invalid-movement-kicks.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add more logger output for invalid movement kicks diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 93c0560df791e768277e33999379738ec597a6dd..9adc717cffee5065863e2972ad749517e5a4a2a3 100644 +index 48224c850e5be223971b76a4e580b95585208ea6..d70c9d4a77edce10f783ab6c53b1e2d66b44c5fe 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -864,6 +864,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -858,6 +858,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic if (packet.getId() == this.awaitingTeleport) { if (this.awaitingPositionFromClient == null) { this.disconnect(Component.translatable("multiplayer.disconnect.invalid_player_movement"), org.bukkit.event.player.PlayerKickEvent.Cause.INVALID_PLAYER_MOVEMENT); // Paper - kick event cause @@ -16,7 +16,7 @@ index 93c0560df791e768277e33999379738ec597a6dd..9adc717cffee5065863e2972ad749517 return; } -@@ -1444,8 +1445,16 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -1438,8 +1439,16 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic @Override public void handleMovePlayer(ServerboundMovePlayerPacket packet) { PacketUtils.ensureRunningOnSameThread(packet, this, this.player.getLevel()); diff --git a/patches/server/0295-Make-pufferfish-config-relocatable.patch b/patches/server/0295-Make-pufferfish-config-relocatable.patch new file mode 100644 index 000000000..005bfe8f8 --- /dev/null +++ b/patches/server/0295-Make-pufferfish-config-relocatable.patch @@ -0,0 +1,56 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: BillyGalbreath +Date: Sun, 12 Jun 2022 09:18:57 -0500 +Subject: [PATCH] Make pufferfish config relocatable + + +diff --git a/src/main/java/gg/pufferfish/pufferfish/PufferfishConfig.java b/src/main/java/gg/pufferfish/pufferfish/PufferfishConfig.java +index e077a43cf3f06207234cb445b58dff79eabcb9c6..852ed093488ae624960a7dd35f68d8cee39067e7 100644 +--- a/src/main/java/gg/pufferfish/pufferfish/PufferfishConfig.java ++++ b/src/main/java/gg/pufferfish/pufferfish/PufferfishConfig.java +@@ -36,6 +36,7 @@ public class PufferfishConfig { + + private static final YamlFile config = new YamlFile(); + private static int updates = 0; ++ public static File pufferfishFile; // Purpur + + private static ConfigurationSection convertToBukkit(org.simpleyaml.configuration.ConfigurationSection section) { + ConfigurationSection newSection = new MemoryConfiguration(); +@@ -58,7 +59,7 @@ public class PufferfishConfig { + } + + public static void load() throws IOException { +- File configFile = new File("pufferfish.yml"); ++ File configFile = pufferfishFile; // Purpur + + if (configFile.exists()) { + try { +diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +index 0bfdc4247a651f6c1caf7a95114be68bc7d77d7b..33ec9cb7efd5623866c03506b8dcb28831b54b21 100644 +--- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java ++++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +@@ -235,6 +235,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface + com.destroystokyo.paper.VersionHistoryManager.INSTANCE.getClass(); // load version history now + io.papermc.paper.brigadier.PaperBrigadierProviderImpl.INSTANCE.getClass(); // init PaperBrigadierProvider + // Paper end ++ gg.pufferfish.pufferfish.PufferfishConfig.pufferfishFile = (java.io.File) options.valueOf("pufferfish-settings"); // Purpur + gg.pufferfish.pufferfish.PufferfishConfig.load(); // Pufferfish + gg.pufferfish.pufferfish.PufferfishCommand.init(); // Pufferfish + +diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java +index 420300ce19d01f36f071eae44efd4cb32beb0ed6..3080b2a7920a736880c48b66164ed45686ab1d44 100644 +--- a/src/main/java/org/bukkit/craftbukkit/Main.java ++++ b/src/main/java/org/bukkit/craftbukkit/Main.java +@@ -170,6 +170,12 @@ public class Main { + .ofType(File.class) + .defaultsTo(new File("purpur.yml")) + .describedAs("Yml file"); ++ ++ acceptsAll(asList("pufferfish", "pufferfish-settings"), "File for pufferfish settings") ++ .withRequiredArg() ++ .ofType(File.class) ++ .defaultsTo(new File("pufferfish.yml")) ++ .describedAs("Yml file"); + // Purpur end + + // Paper start