From 4e20baa09c746e348cab7c0603c604c2287879c7 Mon Sep 17 00:00:00 2001 From: granny Date: Fri, 25 Oct 2024 18:56:16 -0700 Subject: [PATCH] first 9 patches :eyes: --- .../0001-Rebrand.patch} | 72 +++++++++---------- .../0002-Purpur-config-files.patch} | 48 ++++++------- .../0003-Purpur-client-support.patch} | 14 ++-- .../0004-MC-Utils.patch} | 0 .../0005-Fix-decompile-errors.patch} | 0 ...0006-Component-related-conveniences.patch} | 18 ++--- 6 files changed, 76 insertions(+), 76 deletions(-) rename patches/{unapplied-server/0003-Rebrand.patch => server/0001-Rebrand.patch} (95%) rename patches/{unapplied-server/0004-Purpur-config-files.patch => server/0002-Purpur-config-files.patch} (90%) rename patches/{unapplied-server/0005-Purpur-client-support.patch => server/0003-Purpur-client-support.patch} (87%) rename patches/{unapplied-server/0006-MC-Utils.patch => server/0004-MC-Utils.patch} (100%) rename patches/{unapplied-server/0007-Fix-decompile-errors.patch => server/0005-Fix-decompile-errors.patch} (100%) rename patches/{unapplied-server/0008-Component-related-conveniences.patch => server/0006-Component-related-conveniences.patch} (89%) diff --git a/patches/unapplied-server/0003-Rebrand.patch b/patches/server/0001-Rebrand.patch similarity index 95% rename from patches/unapplied-server/0003-Rebrand.patch rename to patches/server/0001-Rebrand.patch index 81be64dbd..1e5a2c788 100644 --- a/patches/unapplied-server/0003-Rebrand.patch +++ b/patches/server/0001-Rebrand.patch @@ -5,21 +5,21 @@ Subject: [PATCH] Rebrand diff --git a/build.gradle.kts b/build.gradle.kts -index 6c1b5b2ae207c0139d097c5ca857dd662a63f997..535b0c6a750cc77fb9340d6e080932f3eb3bde17 100644 +index 9966576652ed6007d2228237f292c1dc83ede485..c8c44df62289accad53d436383adbed134539049 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -13,7 +13,7 @@ configurations.named(log4jPlugins.compileClasspathConfigurationName) { val alsoShade: Configuration by configurations.creating dependencies { -- implementation(project(":pufferfish-api")) // Pufferfish // Paper +- implementation(project(":paper-api")) + implementation(project(":purpur-api")) // Pufferfish // Paper // Purpur // Paper start implementation("org.jline:jline-terminal-jansi:3.21.0") implementation("net.minecrell:terminalconsoleappender:1.3.0") -@@ -54,6 +54,10 @@ dependencies { - } - // Pufferfish end +@@ -47,6 +47,10 @@ dependencies { + runtimeOnly("org.apache.maven.resolver:maven-resolver-connector-basic:1.9.18") + runtimeOnly("org.apache.maven.resolver:maven-resolver-transport-http:1.9.18") + implementation("org.mozilla:rhino-runtime:1.7.14") // Purpur + implementation("org.mozilla:rhino-engine:1.7.14") // Purpur @@ -28,27 +28,27 @@ index 6c1b5b2ae207c0139d097c5ca857dd662a63f997..535b0c6a750cc77fb9340d6e080932f3 testImplementation("io.github.classgraph:classgraph:4.8.47") // Paper - mob goal test testImplementation("org.junit.jupiter:junit-jupiter:5.10.2") testImplementation("org.junit.platform:junit-platform-suite-engine:1.10.0") -@@ -100,14 +104,14 @@ tasks.jar { +@@ -81,14 +85,14 @@ tasks.jar { val gitBranch = git("rev-parse", "--abbrev-ref", "HEAD").getText().trim() // Paper attributes( "Main-Class" to "org.bukkit.craftbukkit.Main", -- "Implementation-Title" to "Pufferfish", // Pufferfish +- "Implementation-Title" to "Paper", + "Implementation-Title" to "Purpur", // Pufferfish // Purpur "Implementation-Version" to implementationVersion, "Implementation-Vendor" to date, // Paper -- "Specification-Title" to "Pufferfish", // Pufferfish +- "Specification-Title" to "Paper", + "Specification-Title" to "Purpur", // Pufferfish // Purpur "Specification-Version" to project.version, -- "Specification-Vendor" to "Pufferfish Studios LLC", // Pufferfish -- "Brand-Id" to "pufferfish:pufferfish", // Pufferfish -- "Brand-Name" to "Pufferfish", // Pufferfish +- "Specification-Vendor" to "Paper Team", +- "Brand-Id" to "papermc:paper", +- "Brand-Name" to "Paper", + "Specification-Vendor" to "Purpur Team", // Pufferfish // Purpur + "Brand-Id" to "purpurmc:purpur", // Pufferfish // Purpur + "Brand-Name" to "Purpur", // Pufferfish // Purpur "Build-Number" to (build ?: ""), "Build-Time" to Instant.now().toString(), "Git-Branch" to gitBranch, // Paper -@@ -168,7 +172,7 @@ fun TaskContainer.registerRunTask( +@@ -149,7 +153,7 @@ fun TaskContainer.registerRunTask( name: String, block: JavaExec.() -> Unit ): TaskProvider = register(name) { @@ -151,40 +151,40 @@ index 6ee39b534b8d992655bc0cef3c299d12cbae0034..90b3526479320064378f2cde6c2f2b8e .completer(new ConsoleCommandCompleter(this.server)) .option(LineReader.Option.COMPLETE_IN_WORD, true); diff --git a/src/main/java/io/papermc/paper/ServerBuildInfoImpl.java b/src/main/java/io/papermc/paper/ServerBuildInfoImpl.java -index bf1aacdfac2d501c62038a22cb9eac7f9b946619..3099c21ee589acf6edff5903a23673adf489024f 100644 +index 790bad0494454ca12ee152e3de6da3da634d9b20..a6e5950b5875cafd734300cdfbf58f5d3736f3c8 100644 --- a/src/main/java/io/papermc/paper/ServerBuildInfoImpl.java +++ b/src/main/java/io/papermc/paper/ServerBuildInfoImpl.java -@@ -32,6 +32,7 @@ public record ServerBuildInfoImpl( +@@ -31,6 +31,7 @@ public record ServerBuildInfoImpl( + private static final String ATTRIBUTE_GIT_COMMIT = "Git-Commit"; private static final String BRAND_PAPER_NAME = "Paper"; - private static final String BRAND_PUFFERFISH_NAME = "Pufferfish"; // Purpur + private static final String BRAND_PURPUR_NAME = "Purpur"; // Purpur private static final String BUILD_DEV = "DEV"; -@@ -43,9 +44,9 @@ public record ServerBuildInfoImpl( +@@ -42,9 +43,9 @@ public record ServerBuildInfoImpl( this( getManifestAttribute(manifest, ATTRIBUTE_BRAND_ID) .map(Key::key) -- .orElse(BRAND_PUFFERFISH_ID), // Purpur +- .orElse(BRAND_PAPER_ID), + .orElse(BRAND_PURPUR_ID), // Purpur getManifestAttribute(manifest, ATTRIBUTE_BRAND_NAME) -- .orElse(BRAND_PUFFERFISH_NAME), // Purpur +- .orElse(BRAND_PAPER_NAME), + .orElse(BRAND_PURPUR_NAME), // Purpur SharedConstants.getCurrentVersion().getId(), SharedConstants.getCurrentVersion().getName(), getManifestAttribute(manifest, ATTRIBUTE_BUILD_NUMBER) -@@ -62,7 +63,7 @@ public record ServerBuildInfoImpl( +@@ -61,7 +62,7 @@ public record ServerBuildInfoImpl( @Override public boolean isBrandCompatible(final @NotNull Key brandId) { -- return brandId.equals(this.brandId) || brandId.equals(BRAND_PAPER_ID); // Purpur -+ return brandId.equals(this.brandId) || brandId.equals(BRAND_PAPER_ID) || brandId.equals(BRAND_PUFFERFISH_ID); // Purpur +- return brandId.equals(this.brandId); ++ return brandId.equals(this.brandId) || brandId.equals(BRAND_PAPER_ID); // Purpur } @Override diff --git a/src/main/java/net/minecraft/CrashReport.java b/src/main/java/net/minecraft/CrashReport.java -index b24265573fdef5d9a964bcd76146f34542c420cf..710477ae27ebc5afdf0012ef0867d05efd293c24 100644 +index 589a8bf75be6ccc59f1e5dd5d8d9afed41c4772d..7eabcb453ef655741c4802d2f574932d6d741631 100644 --- a/src/main/java/net/minecraft/CrashReport.java +++ b/src/main/java/net/minecraft/CrashReport.java @@ -32,6 +32,7 @@ public class CrashReport { @@ -214,10 +214,10 @@ index b24265573fdef5d9a964bcd76146f34542c420cf..710477ae27ebc5afdf0012ef0867d05e public SystemReport getSystemReport() { diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java -index 40689256711cc94a806ca1da346f4f62eda31526..4c178b234bc1118a577d0e016f4b986e9197e99d 100644 +index 2d5c1b91b814316bf9f2f22bcd30adacc8970b01..82a661db5fc88e4e06befc0abf720d3e9fb8da97 100644 --- a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java +++ b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java -@@ -177,7 +177,7 @@ public class RegionFileStorage implements AutoCloseable, ca.spottedleaf.moonrise +@@ -243,7 +243,7 @@ public class RegionFileStorage implements AutoCloseable, ca.spottedleaf.moonrise // Paper start private static void printOversizedLog(String msg, Path file, int x, int z) { @@ -254,49 +254,49 @@ index 4e56018b64d11f76c8da43fd8f85c6de72204e36..9607675e6c5bff2183c4420d11fc63ee @Override diff --git a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java -index 2f4d6b56301195f8d39ed50dffe842464065bfe1..30ddb35140ae4a6faba98c191bb8eadbafc35377 100644 +index 5fc88196b2c873427c817e9802ad3b12009f265f..4178f48c1614af8e6796cf07fd018b9c6e67dcd0 100644 --- a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java +++ b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java @@ -492,7 +492,7 @@ public class CraftScheduler implements BukkitScheduler { this.parsePending(); } else { - // this.debugTail = this.debugTail.setNext(new CraftAsyncDebugger(currentTick + CraftScheduler.RECENT_TICKS, task.getOwner(), task.getTaskClass())); // Paper + // this.debugTail = this.debugTail.setNext(new CraftAsyncDebugger(this.currentTick + CraftScheduler.RECENT_TICKS, task.getOwner(), task.getTaskClass())); // Paper - task.getOwner().getLogger().log(Level.SEVERE, "Unexpected Async Task in the Sync Scheduler. Report this to Paper"); // Paper + task.getOwner().getLogger().log(Level.SEVERE, "Unexpected Async Task in the Sync Scheduler. Report this to Purpur"); // Paper // Purpur // We don't need to parse pending // (async tasks must live with race-conditions if they attempt to cancel between these few lines of code) } diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java -index 8fa2b2a67891d34ec95f7eed2a4118ddd8a5be15..5505c13d0e602f39fe02dde350082c11a2f2a2e0 100644 +index bc53c263682ada9eebcaccc13e741844d310a7a6..8a96f77d16eb0c977fd6212bece419ef4860e95e 100644 --- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java +++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java @@ -489,7 +489,7 @@ public final class CraftMagicNumbers implements UnsafeValues { @Override public com.destroystokyo.paper.util.VersionFetcher getVersionFetcher() { -- return new gg.pufferfish.pufferfish.PufferfishVersionFetcher(); // Pufferfish +- return new com.destroystokyo.paper.PaperVersionFetcher(); + return new com.destroystokyo.paper.PaperVersionFetcher(); // Pufferfish // Purpur } @Override diff --git a/src/main/java/org/bukkit/craftbukkit/util/Versioning.java b/src/main/java/org/bukkit/craftbukkit/util/Versioning.java -index 80553face9c70c2a3d897681e7761df85b22d464..99597258e8e88cd9e2c901c4ac3ff7faeeabee2b 100644 +index 774556a62eb240da42e84db4502e2ed43495be17..99597258e8e88cd9e2c901c4ac3ff7faeeabee2b 100644 --- a/src/main/java/org/bukkit/craftbukkit/util/Versioning.java +++ b/src/main/java/org/bukkit/craftbukkit/util/Versioning.java @@ -11,7 +11,7 @@ public final class Versioning { public static String getBukkitVersion() { String result = "Unknown-Version"; -- InputStream stream = Bukkit.class.getClassLoader().getResourceAsStream("META-INF/maven/gg.pufferfish.pufferfish/pufferfish-api/pom.properties"); // Pufferfish +- InputStream stream = Bukkit.class.getClassLoader().getResourceAsStream("META-INF/maven/io.papermc.paper/paper-api/pom.properties"); + InputStream stream = Bukkit.class.getClassLoader().getResourceAsStream("META-INF/maven/org.purpurmc.purpur/purpur-api/pom.properties"); // Pufferfish // Purpur Properties properties = new Properties(); if (stream != null) { diff --git a/src/main/java/org/spigotmc/WatchdogThread.java b/src/main/java/org/spigotmc/WatchdogThread.java -index f7a4fee9bb25ff256dc2e5ea26bfbceca6a49167..f51cc3de3ca935ef90f7f0e9dd0506b856fc55f3 100644 +index 529df2a41dd93d6e1505053bd04032dbf0cdaa31..c0aa9f4bfaa1d6fb81823363e3ac3f1ff06efc3d 100644 --- a/src/main/java/org/spigotmc/WatchdogThread.java +++ b/src/main/java/org/spigotmc/WatchdogThread.java -@@ -96,7 +96,7 @@ public class WatchdogThread extends ca.spottedleaf.moonrise.common.util.TickThre +@@ -23,7 +23,7 @@ public class WatchdogThread extends ca.spottedleaf.moonrise.common.util.TickThre private WatchdogThread(long timeoutTime, boolean restart) { @@ -305,7 +305,7 @@ index f7a4fee9bb25ff256dc2e5ea26bfbceca6a49167..f51cc3de3ca935ef90f7f0e9dd0506b8 this.timeoutTime = timeoutTime; this.restart = restart; earlyWarningEvery = Math.min(io.papermc.paper.configuration.GlobalConfiguration.get().watchdog.earlyWarningEvery, timeoutTime); // Paper -@@ -155,14 +155,14 @@ public class WatchdogThread extends ca.spottedleaf.moonrise.common.util.TickThre +@@ -80,14 +80,14 @@ public class WatchdogThread extends ca.spottedleaf.moonrise.common.util.TickThre if (isLongTimeout) { // Paper end log.log( Level.SEVERE, "------------------------------" ); @@ -323,7 +323,7 @@ index f7a4fee9bb25ff256dc2e5ea26bfbceca6a49167..f51cc3de3ca935ef90f7f0e9dd0506b8 // if ( net.minecraft.world.level.Level.lastPhysicsProblem != null ) { -@@ -184,12 +184,12 @@ public class WatchdogThread extends ca.spottedleaf.moonrise.common.util.TickThre +@@ -109,12 +109,12 @@ public class WatchdogThread extends ca.spottedleaf.moonrise.common.util.TickThre // Paper end } else { @@ -336,9 +336,9 @@ index f7a4fee9bb25ff256dc2e5ea26bfbceca6a49167..f51cc3de3ca935ef90f7f0e9dd0506b8 - log.log( Level.SEVERE, "Server thread dump (Look for plugins here before reporting to Paper!):" ); // Paper + log.log( Level.SEVERE, "Server thread dump (Look for plugins here before reporting to Purpur!):" ); // Paper // Purpur ca.spottedleaf.moonrise.patches.chunk_system.scheduling.ChunkTaskScheduler.dumpAllChunkLoadInfo(MinecraftServer.getServer(), isLongTimeout); // Paper - rewrite chunk system - this.dumpTickingInfo(); // Paper - log detailed tick information WatchdogThread.dumpThread( ManagementFactory.getThreadMXBean().getThreadInfo( MinecraftServer.getServer().serverThread.getId(), Integer.MAX_VALUE ), log ); -@@ -205,7 +205,7 @@ public class WatchdogThread extends ca.spottedleaf.moonrise.common.util.TickThre + log.log( Level.SEVERE, "------------------------------" ); +@@ -129,7 +129,7 @@ public class WatchdogThread extends ca.spottedleaf.moonrise.common.util.TickThre WatchdogThread.dumpThread( thread, log ); } } else { diff --git a/patches/unapplied-server/0004-Purpur-config-files.patch b/patches/server/0002-Purpur-config-files.patch similarity index 90% rename from patches/unapplied-server/0004-Purpur-config-files.patch rename to patches/server/0002-Purpur-config-files.patch index c2db8f880..7aa8db475 100644 --- a/patches/unapplied-server/0004-Purpur-config-files.patch +++ b/patches/server/0002-Purpur-config-files.patch @@ -5,19 +5,19 @@ Subject: [PATCH] Purpur config files diff --git a/src/main/java/com/destroystokyo/paper/Metrics.java b/src/main/java/com/destroystokyo/paper/Metrics.java -index 692c962193cf9fcc6801fc93f3220bdc673d527b..8cde30544e14f8fc2dac32966ae3c21f8cf3a551 100644 +index 6aaed8e8bf8c721fc834da5c76ac72a4c3e92458..308d80ca27aa0edd63fba87343b12b39675462bc 100644 --- a/src/main/java/com/destroystokyo/paper/Metrics.java +++ b/src/main/java/com/destroystokyo/paper/Metrics.java -@@ -593,7 +593,7 @@ public class Metrics { +@@ -588,7 +588,7 @@ public class Metrics { boolean logFailedRequests = config.getBoolean("logFailedRequests", false); // Only start Metrics, if it's enabled in the config if (config.getBoolean("enabled", true)) { -- Metrics metrics = new Metrics("Pufferfish", serverUUID, logFailedRequests, Bukkit.getLogger()); // Pufferfish +- Metrics metrics = new Metrics("Paper", serverUUID, logFailedRequests, Bukkit.getLogger()); + Metrics metrics = new Metrics("Purpur", serverUUID, logFailedRequests, Bukkit.getLogger()); // Pufferfish // Purpur metrics.addCustomChart(new Metrics.SimplePie("minecraft_version", () -> { String minecraftVersion = Bukkit.getVersion(); -@@ -602,16 +602,8 @@ public class Metrics { +@@ -597,16 +597,8 @@ public class Metrics { })); metrics.addCustomChart(new Metrics.SingleLineChart("players", () -> Bukkit.getOnlinePlayers().size())); @@ -26,21 +26,21 @@ index 692c962193cf9fcc6801fc93f3220bdc673d527b..8cde30544e14f8fc2dac32966ae3c21f - final String implVersion = org.bukkit.craftbukkit.Main.class.getPackage().getImplementationVersion(); - if (implVersion != null) { - final String buildOrHash = implVersion.substring(implVersion.lastIndexOf('-') + 1); -- paperVersion = "git-Pufferfish-%s-%s".formatted(Bukkit.getServer().getMinecraftVersion(), buildOrHash); // Pufferfish +- paperVersion = "git-Paper-%s-%s".formatted(Bukkit.getServer().getMinecraftVersion(), buildOrHash); - } else { - paperVersion = "unknown"; - } -- metrics.addCustomChart(new Metrics.SimplePie("pufferfish_version", () -> paperVersion)); // Pufferfish +- metrics.addCustomChart(new Metrics.SimplePie("paper_version", () -> paperVersion)); + metrics.addCustomChart(new Metrics.SimplePie("online_mode", () -> Bukkit.getOnlineMode() ? "online" : (io.papermc.paper.configuration.GlobalConfiguration.get().proxies.isProxyOnlineMode() ? "bungee" : "offline"))); // Purpur + metrics.addCustomChart(new Metrics.SimplePie("purpur_version", () -> (org.bukkit.craftbukkit.Main.class.getPackage().getImplementationVersion() != null) ? org.bukkit.craftbukkit.Main.class.getPackage().getImplementationVersion() : "unknown")); // Purpur metrics.addCustomChart(new Metrics.DrilldownPie("java_version", () -> { Map> map = new HashMap<>(); diff --git a/src/main/java/net/minecraft/commands/CommandSourceStack.java b/src/main/java/net/minecraft/commands/CommandSourceStack.java -index 2d344df35d47b4b1ecddf32ccaa4dae41e5f58cb..2f7ed5b38e8930b3a615f160cdf4c5b0ec932a8d 100644 +index 13bd145b1e8006a53c22f5dc0c78f29b540c7663..ae2d9c91afe13d07fd0de6d455b90a2a704a2c91 100644 --- a/src/main/java/net/minecraft/commands/CommandSourceStack.java +++ b/src/main/java/net/minecraft/commands/CommandSourceStack.java -@@ -310,6 +310,30 @@ public class CommandSourceStack implements ExecutionCommandSource resourcekey, RegistryAccess iregistrycustom, Holder holder, Supplier supplier, boolean flag, boolean flag1, long i, int j, org.bukkit.generator.ChunkGenerator gen, org.bukkit.generator.BiomeProvider biomeProvider, org.bukkit.World.Environment env, java.util.function.Function paperWorldConfigCreator, java.util.concurrent.Executor executor) { // Paper - create paper world config & Anti-Xray +@@ -843,6 +844,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl + // Paper end - getblock optimisations - cache world height/sections this.spigotConfig = new org.spigotmc.SpigotWorldConfig(((net.minecraft.world.level.storage.PrimaryLevelData) worlddatamutable).getLevelName()); // Spigot this.paperConfig = paperWorldConfigCreator.apply(this.spigotConfig); // Paper - create paper world config + this.purpurConfig = new org.purpurmc.purpur.PurpurWorldConfig(((net.minecraft.world.level.storage.PrimaryLevelData) worlddatamutable).getLevelName(), env); // Purpur @@ -112,18 +112,18 @@ index 2479b47186202de40cdb4ae773c696a4adee9bad..97f83c9737726be0c3b6dc847b56970e 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 c7df339aeb62ee627edaf1bb4c8474b61e357ba6..bc3d41df5cc55281c513f8d4b35c71319119f499 100644 +index a34e40e273a79a234c3d79b6ad360ce3a4d35ba3..910539a3c6f89d5f6cf120d36014ed33b05ac39a 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -1072,6 +1072,7 @@ public final class CraftServer implements Server { +@@ -1073,6 +1073,7 @@ public final class CraftServer implements Server { org.spigotmc.SpigotConfig.init((File) this.console.options.valueOf("spigot-settings")); // Spigot this.console.paperConfigurations.reloadConfigs(this.console); + org.purpurmc.purpur.PurpurConfig.init((File) console.options.valueOf("purpur-settings")); // Purpur for (ServerLevel world : this.console.getAllLevels()) { // world.serverLevelData.setDifficulty(config.difficulty); // Paper - per level difficulty - world.setSpawnSettings(world.serverLevelData.getDifficulty() != Difficulty.PEACEFUL && config.spawnMonsters, config.spawnAnimals); // Paper - per level difficulty (from MinecraftServer#setDifficulty(ServerLevel, Difficulty, boolean)) -@@ -1087,6 +1088,7 @@ public final class CraftServer implements Server { + world.setSpawnSettings(world.serverLevelData.getDifficulty() != Difficulty.PEACEFUL && config.spawnMonsters); // Paper - per level difficulty (from MinecraftServer#setDifficulty(ServerLevel, Difficulty, boolean)) +@@ -1088,6 +1089,7 @@ public final class CraftServer implements Server { } } world.spigotConfig.init(); // Spigot @@ -132,14 +132,14 @@ index c7df339aeb62ee627edaf1bb4c8474b61e357ba6..bc3d41df5cc55281c513f8d4b35c7131 Plugin[] pluginClone = pluginManager.getPlugins().clone(); // Paper @@ -1104,6 +1106,7 @@ public final class CraftServer implements Server { + this.reloadData(); org.spigotmc.SpigotConfig.registerCommands(); // Spigot io.papermc.paper.command.PaperCommands.registerCommands(this.console); // Paper - this.spark.registerCommandBeforePlugins(this); // Paper - spark + org.purpurmc.purpur.PurpurConfig.registerCommands(); // Purpur this.overrideAllCommandBlockCommands = this.commandsConfiguration.getStringList("command-block-overrides").contains("*"); this.ignoreVanillaPermissions = this.commandsConfiguration.getBoolean("ignore-vanilla-permissions"); -@@ -2990,6 +2993,18 @@ public final class CraftServer implements Server { +@@ -2968,6 +2971,18 @@ public final class CraftServer implements Server { return CraftServer.this.console.paperConfigurations.createLegacyObject(CraftServer.this.console); } @@ -159,7 +159,7 @@ index c7df339aeb62ee627edaf1bb4c8474b61e357ba6..bc3d41df5cc55281c513f8d4b35c7131 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 b3ba6bccdbb08af27916f0c611c60b2595b90164..e5efd29e577e7f2ebf18be9a591edb2528a95442 100644 +index a7524d3853d5b67b6385d2b74832b9267503dfe6..bc0353e4f41680d04f4d5e2dd85640d9e0f06736 100644 --- a/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java @@ -176,6 +176,14 @@ public class Main { diff --git a/patches/unapplied-server/0005-Purpur-client-support.patch b/patches/server/0003-Purpur-client-support.patch similarity index 87% rename from patches/unapplied-server/0005-Purpur-client-support.patch rename to patches/server/0003-Purpur-client-support.patch index 24252774f..6e9554e5f 100644 --- a/patches/unapplied-server/0005-Purpur-client-support.patch +++ b/patches/server/0003-Purpur-client-support.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Purpur client support diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index c396580a9cfd86ff261bed439bb4662ae88010b5..2e45bc48c8a86d9522e4574bf3037611cfda63a3 100644 +index 8ceeebb561046933cba0725e15732fa074226884..eb6f95a37b26ac077423accc93492d9957456a1a 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -302,6 +302,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player imple +@@ -323,6 +323,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player imple public com.destroystokyo.paper.event.entity.PlayerNaturallySpawnCreaturesEvent playerNaturallySpawnedEvent; // Paper - PlayerNaturallySpawnCreaturesEvent public @Nullable String clientBrandName = null; // Paper - Brand support public org.bukkit.event.player.PlayerQuitEvent.QuitReason quitReason = null; // Paper - Add API for quit reason; there are a lot of changes to do if we change all methods leading to the event @@ -17,10 +17,10 @@ index c396580a9cfd86ff261bed439bb4662ae88010b5..2e45bc48c8a86d9522e4574bf3037611 // Paper start - rewrite chunk system private ca.spottedleaf.moonrise.patches.chunk_system.player.RegionizedPlayerChunkLoader.PlayerChunkLoaderData chunkLoader; diff --git a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java -index 7174f8c89a7cdcf40ff28f6636ecfb23b13ccdaa..0b661bbfa4279cbb26c065c3ed4f2b9eb4342c4e 100644 +index b0bc66dc7248aae691dcab68b925b52a1695e63f..b6dd6bde947ac7502f25d3160399596130e8064f 100644 --- a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java -@@ -84,6 +84,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack +@@ -85,6 +85,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack public final java.util.Map packCallbacks = new java.util.concurrent.ConcurrentHashMap<>(); // Paper - adventure resource pack callbacks private static final long KEEPALIVE_LIMIT = Long.getLong("paper.playerconnection.keepalive", 30) * 1000; // Paper - provide property to set keepalive limit protected static final ResourceLocation MINECRAFT_BRAND = ResourceLocation.withDefaultNamespace("brand"); // Paper - Brand support @@ -28,7 +28,7 @@ index 7174f8c89a7cdcf40ff28f6636ecfb23b13ccdaa..0b661bbfa4279cbb26c065c3ed4f2b9e public ServerCommonPacketListenerImpl(MinecraftServer minecraftserver, Connection networkmanager, CommonListenerCookie commonlistenercookie, ServerPlayer player) { // CraftBukkit this.server = minecraftserver; -@@ -172,6 +173,13 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack +@@ -179,6 +180,13 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack ServerGamePacketListenerImpl.LOGGER.error("Couldn\'t register custom payload", ex); this.disconnect(Component.literal("Invalid payload REGISTER!"), PlayerKickEvent.Cause.INVALID_PAYLOAD); // Paper - kick event cause } @@ -43,10 +43,10 @@ index 7174f8c89a7cdcf40ff28f6636ecfb23b13ccdaa..0b661bbfa4279cbb26c065c3ed4f2b9e try { String channels = payload.toString(com.google.common.base.Charsets.UTF_8); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 42d7660efe5baa6f796f2a7606686c765b6f2478..9e7c447a786bde25bb7ebe58619700b4c2e3d05e 100644 +index 550e175c7fec97818644933a4e4f7805e54d7d5f..e4b41edc7c08c00f4411812a20944507a5b674c7 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -3568,4 +3568,11 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -3598,4 +3598,11 @@ public class CraftPlayer extends CraftHumanEntity implements Player { this.getHandle().connection.send(new net.minecraft.network.protocol.game.ClientboundEntityEventPacket(((CraftEntity) target).getHandle(), effect.getData())); } // Paper end - entity effect API diff --git a/patches/unapplied-server/0006-MC-Utils.patch b/patches/server/0004-MC-Utils.patch similarity index 100% rename from patches/unapplied-server/0006-MC-Utils.patch rename to patches/server/0004-MC-Utils.patch diff --git a/patches/unapplied-server/0007-Fix-decompile-errors.patch b/patches/server/0005-Fix-decompile-errors.patch similarity index 100% rename from patches/unapplied-server/0007-Fix-decompile-errors.patch rename to patches/server/0005-Fix-decompile-errors.patch diff --git a/patches/unapplied-server/0008-Component-related-conveniences.patch b/patches/server/0006-Component-related-conveniences.patch similarity index 89% rename from patches/unapplied-server/0008-Component-related-conveniences.patch rename to patches/server/0006-Component-related-conveniences.patch index 6b9587f4c..22de066d2 100644 --- a/patches/unapplied-server/0008-Component-related-conveniences.patch +++ b/patches/server/0006-Component-related-conveniences.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Component related conveniences diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 2e45bc48c8a86d9522e4574bf3037611cfda63a3..98fd4d8aab273ab86bcb9b95a331cd8bbcb61373 100644 +index eb6f95a37b26ac077423accc93492d9957456a1a..f00e708fe38454e228cf126199651b8104375891 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -2008,6 +2008,26 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player imple +@@ -2246,6 +2246,26 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player imple this.lastSentExp = -1; // CraftBukkit - Added to reset } @@ -36,10 +36,10 @@ index 2e45bc48c8a86d9522e4574bf3037611cfda63a3..98fd4d8aab273ab86bcb9b95a331cd8b 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 5e2c4969e77c669acbb4a13c07033cb267c3d586..0a7f30f86adfbcbfc4d65f6194d26c51dba8bff1 100644 +index bbefb529607d1cffe8917b883389494a8fa126c0..a4454289fb92cf7b97ee77db422c328f008521f1 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java -@@ -1026,6 +1026,20 @@ public abstract class PlayerList { +@@ -985,6 +985,20 @@ public abstract class PlayerList { } // CraftBukkit end @@ -81,10 +81,10 @@ index bb1a60180e58c1333e7bb33e8acf1b0225eda8a8..c83e80ebdbbfb2d0e08561a44486a308 return this.type().msgId(); } diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index b0db87fc0e1a05a6268b3f93403ec4209f10f685..bc484b2ad1fbbece041adb3282d80fac2dc826bd 100644 +index b36a915e6d337d7ec3f797bf1773b14c5b231d76..3ca09f9ac97ad835feae8800a72d882af2192077 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -4189,6 +4189,20 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -4426,6 +4426,20 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess return SlotAccess.NULL; } @@ -102,6 +102,6 @@ index b0db87fc0e1a05a6268b3f93403ec4209f10f685..bc484b2ad1fbbece041adb3282d80fac + } + // Purpur end + - @Override - public void sendSystemMessage(Component message) {} - + public Level getCommandSenderWorld() { + return this.level(); + }