This commit is contained in:
Ben Kerllenevich
2022-06-25 20:40:28 -04:00
committed by GitHub
parent 8bd5048b7b
commit b7f61428bb
2 changed files with 89 additions and 0 deletions

View File

@@ -0,0 +1,88 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Ben Kerllenevich <ben@omega24.dev>
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<JavaCompile> {
}
// 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