mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-02-17 16:37:43 +01:00
71 lines
3.4 KiB
Diff
71 lines
3.4 KiB
Diff
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/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
|
index 7960433f8278e3bd0ec43db3d3820ff2740a7c13..3048fe320912d805394c472661ab20c00994116b 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
|
@@ -410,6 +410,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 +424,7 @@ public final class CraftServer implements Server {
|
|
String message = String.format("Loading %s", plugin.getDescription().getFullName());
|
|
plugin.getLogger().info(message);
|
|
plugin.onLoad();
|
|
+ sparkLoaded = 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 +432,43 @@ public final class CraftServer implements Server {
|
|
} else {
|
|
pluginFolder.mkdir();
|
|
}
|
|
+
|
|
+ // Purpur start
|
|
+ if (!sparkLoaded) {
|
|
+ try {
|
|
+ File file = new File("cache", "spark.jar");
|
|
+ file.getParentFile().mkdirs();
|
|
+
|
|
+ boolean shouldDownload = true;
|
|
+ if (file.exists()) {
|
|
+ String fileSha1 = String.format("%040x", new java.math.BigInteger(1, java.security.MessageDigest.getInstance("SHA-1").digest(java.nio.file.Files.readAllBytes(file.toPath()))));
|
|
+ String sparkSha1;
|
|
+ try (java.io.BufferedReader reader = new java.io.BufferedReader(new InputStreamReader(new java.net.URL("https://sparkapi.lucko.me/download/bukkit/sha1").openStream()))) {
|
|
+ sparkSha1 = reader.lines().collect(Collectors.joining(""));
|
|
+ }
|
|
+
|
|
+ System.out.println("File SHA1: " + fileSha1);
|
|
+ System.out.println("Spark SHA1: " + sparkSha1);
|
|
+
|
|
+ if (fileSha1.equals(sparkSha1)) {
|
|
+ shouldDownload = false;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ if (shouldDownload) {
|
|
+ java.nio.file.Files.copy(new java.net.URL("https://sparkapi.lucko.me/download/bukkit").openStream(), file.toPath(), java.nio.file.StandardCopyOption.REPLACE_EXISTING);
|
|
+ }
|
|
+
|
|
+ Plugin spark = this.pluginManager.loadPlugin(file);
|
|
+ String message = String.format("Loading %s", spark.getDescription().getFullName());
|
|
+ spark.getLogger().info(message);
|
|
+ spark.onLoad();
|
|
+ } catch (Exception e) {
|
|
+ getLogger().severe("Failed to download and load spark plugin");
|
|
+ e.printStackTrace();
|
|
+ }
|
|
+ }
|
|
+ // Purpur end
|
|
}
|
|
|
|
// Paper start
|