From b7f61428bbda3f73613818b5d3061c7eac8916a6 Mon Sep 17 00:00:00 2001 From: Ben Kerllenevich Date: Sat, 25 Jun 2022 20:40:28 -0400 Subject: [PATCH] Add spark (#1016) --- gradle.properties | 1 + patches/server/0280-Spark-Profiler.patch | 88 ++++++++++++++++++++++++ 2 files changed, 89 insertions(+) create mode 100644 patches/server/0280-Spark-Profiler.patch diff --git a/gradle.properties b/gradle.properties index 261bc30b4..014eadb6e 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,6 +2,7 @@ group = org.purpurmc.purpur version = 1.19-R0.1-SNAPSHOT paperCommit = 37afe987d9fff5af72ea6f16807aa271fe70fbf1 +sparkUrl = https://ci.lucko.me/job/spark/317/artifact/spark-bukkit/build/libs/spark-1.9.15-bukkit.jar org.gradle.caching = true org.gradle.parallel = true diff --git a/patches/server/0280-Spark-Profiler.patch b/patches/server/0280-Spark-Profiler.patch new file mode 100644 index 000000000..c0b98924c --- /dev/null +++ b/patches/server/0280-Spark-Profiler.patch @@ -0,0 +1,88 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Ben Kerllenevich +Date: Sat, 25 Jun 2022 19:40:36 -0400 +Subject: [PATCH] Spark Profiler + + +diff --git a/build.gradle.kts b/build.gradle.kts +index 00d128eba3e778927bc33b71c1145051a0c142f5..da7264bb973303970cc4f04089b2715b7c5435bd 100644 +--- a/build.gradle.kts ++++ b/build.gradle.kts +@@ -75,6 +75,18 @@ tasks.withType { + } + // Pufferfish End + ++// Purpur start ++tasks.processResources { ++ doLast { ++ val dir = destinationDir.resolve("plugins").toPath() ++ Files.createDirectories(dir) ++ ++ val target = dir.resolve("spark.jar") ++ download.get().download(uri(providers.gradleProperty("sparkUrl")), target) ++ } ++} ++// Purpur end ++ + tasks.jar { + archiveClassifier.set("dev") + +diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java +index 7960433f8278e3bd0ec43db3d3820ff2740a7c13..80db19122109f877b8cc0f2d7a89af7f2ce24c2d 100644 +--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java ++++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java +@@ -23,6 +23,7 @@ import java.io.FileInputStream; + import java.io.FileNotFoundException; + import java.io.IOException; + import java.io.InputStreamReader; ++import java.net.URISyntaxException; + import java.nio.ByteBuffer; + import java.nio.charset.StandardCharsets; + import java.util.ArrayList; +@@ -219,6 +220,7 @@ import org.bukkit.map.MapPalette; + import org.bukkit.map.MapView; + import org.bukkit.permissions.Permissible; + import org.bukkit.permissions.Permission; ++import org.bukkit.plugin.InvalidPluginException; + import org.bukkit.plugin.Plugin; + import org.bukkit.plugin.PluginLoadOrder; + import org.bukkit.plugin.PluginManager; +@@ -410,6 +412,7 @@ public final class CraftServer implements Server { + this.pluginManager.registerInterface(JavaPluginLoader.class); + + File pluginFolder = this.getPluginsFolder(); // Paper ++ boolean sparkLoaded = false; // Purpur + + // Paper start + if (true || pluginFolder.exists()) { +@@ -423,6 +426,8 @@ public final class CraftServer implements Server { + String message = String.format("Loading %s", plugin.getDescription().getFullName()); + plugin.getLogger().info(message); + plugin.onLoad(); ++ ++ sparkLoaded = plugin.getDescription().getName().equalsIgnoreCase("spark"); // Purpur + } catch (Throwable ex) { + Logger.getLogger(CraftServer.class.getName()).log(Level.SEVERE, ex.getMessage() + " initializing " + plugin.getDescription().getFullName() + " (Is it up to date?)", ex); + } +@@ -430,6 +435,21 @@ public final class CraftServer implements Server { + } else { + pluginFolder.mkdir(); + } ++ ++ // Purpur start ++ if (!sparkLoaded) { ++ try { ++ File file = new File(getClass().getResource("/plugins/spark.jar").toURI()); ++ Plugin spark = this.pluginManager.loadPlugin(file); ++ ++ String message = String.format("Loading %s", spark.getDescription().getFullName()); ++ spark.getLogger().info(message); ++ spark.onLoad(); ++ } catch (URISyntaxException | InvalidPluginException e) { ++ getLogger().severe("Failed to load spark plugin from jar"); ++ } ++ } ++ // Purpur end + } + + // Paper start