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..a6d4f55799ca04d9c33292db80bd6dfc3f943330 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("https://ci.lucko.me/job/spark/317/artifact/spark-bukkit/build/libs/spark-1.9.15-bukkit.jar"), 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