diff options
Diffstat (limited to 'patches/api/0147-Add-Git-information-to-version-command-on-startup.patch')
-rw-r--r-- | patches/api/0147-Add-Git-information-to-version-command-on-startup.patch | 101 |
1 files changed, 0 insertions, 101 deletions
diff --git a/patches/api/0147-Add-Git-information-to-version-command-on-startup.patch b/patches/api/0147-Add-Git-information-to-version-command-on-startup.patch deleted file mode 100644 index 6c3f8d857b..0000000000 --- a/patches/api/0147-Add-Git-information-to-version-command-on-startup.patch +++ /dev/null @@ -1,101 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Professor Bloodstone <[email protected]> -Date: Sun, 20 Jun 2021 01:48:31 +0200 -Subject: [PATCH] Add Git information to version command/on startup - - -diff --git a/src/main/java/io/papermc/paper/util/JarManifests.java b/src/main/java/io/papermc/paper/util/JarManifests.java -new file mode 100644 -index 0000000000000000000000000000000000000000..909617079db61b675cc7b60b44ef96b306076343 ---- /dev/null -+++ b/src/main/java/io/papermc/paper/util/JarManifests.java -@@ -0,0 +1,37 @@ -+package io.papermc.paper.util; -+ -+import java.io.IOException; -+import java.io.InputStream; -+import java.net.URL; -+import java.util.Collections; -+import java.util.Map; -+import java.util.WeakHashMap; -+import java.util.jar.Manifest; -+import org.jetbrains.annotations.ApiStatus; -+import org.jetbrains.annotations.NotNull; -+import org.jetbrains.annotations.Nullable; -+ -+public final class JarManifests { -+ private JarManifests() { -+ } -+ -+ private static final Map<ClassLoader, Manifest> MANIFESTS = Collections.synchronizedMap(new WeakHashMap<>()); -+ -+ public static @Nullable Manifest manifest(final @NotNull Class<?> clazz) { -+ return MANIFESTS.computeIfAbsent(clazz.getClassLoader(), classLoader -> { -+ final String classLocation = "/" + clazz.getName().replace(".", "/") + ".class"; -+ final URL resource = clazz.getResource(classLocation); -+ if (resource == null) { -+ return null; -+ } -+ final String classFilePath = resource.toString().replace("\\", "/"); -+ final String archivePath = classFilePath.substring(0, classFilePath.length() - classLocation.length()); -+ try (final InputStream stream = new URL(archivePath + "/META-INF/MANIFEST.MF").openStream()) { -+ return new Manifest(stream); -+ } catch (final IOException ex) { -+ return null; -+ } -+ }); -+ } -+} -diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java -index 3e32a6bbf593b269f1af23c7e2fdafaccc0d2110..d60780a26e10f5f9c80446693552384281327b51 100644 ---- a/src/main/java/org/bukkit/Bukkit.java -+++ b/src/main/java/org/bukkit/Bukkit.java -@@ -60,6 +60,7 @@ import org.bukkit.util.CachedServerIcon; - import org.jetbrains.annotations.Contract; - import org.jetbrains.annotations.NotNull; - import org.jetbrains.annotations.Nullable; -+import io.papermc.paper.util.JarManifests; // Paper - - /** - * Represents the Bukkit core, for version and Server singleton handling -@@ -109,7 +110,25 @@ public final class Bukkit { - } - - Bukkit.server = server; -- server.getLogger().info("This server is running " + getName() + " version " + getVersion() + " (Implementing API version " + getBukkitVersion() + ")"); -+ // Paper start - add git information -+ server.getLogger().info(getVersionMessage()); -+ } -+ /** -+ * Gets message describing the version server is running. -+ * -+ * @return message describing the version server is running -+ */ -+ @NotNull -+ public static String getVersionMessage() { -+ final var manifest = JarManifests.manifest(Bukkit.getServer().getClass()); -+ final String gitBranch = manifest == null ? null : manifest.getMainAttributes().getValue("Git-Branch"); -+ final String gitCommit = manifest == null ? null : manifest.getMainAttributes().getValue("Git-Commit"); -+ String branchMsg = " on " + gitBranch; -+ if ("master".equals(gitBranch) || "main".equals(gitBranch)) { -+ branchMsg = ""; // Don't show branch on main/master -+ } -+ return "This server is running " + getName() + " version " + getVersion() + " (Implementing API version " + getBukkitVersion() + ") (Git: " + gitCommit + branchMsg + ")"; -+ // Paper end - } - - /** -diff --git a/src/main/java/org/bukkit/command/defaults/VersionCommand.java b/src/main/java/org/bukkit/command/defaults/VersionCommand.java -index b437cf212a63aa96a9492db8d01d5d37061aee23..fd5d9881abfd930bb883120f018f76dc78b62b14 100644 ---- a/src/main/java/org/bukkit/command/defaults/VersionCommand.java -+++ b/src/main/java/org/bukkit/command/defaults/VersionCommand.java -@@ -256,7 +256,7 @@ public class VersionCommand extends BukkitCommand { - private void setVersionMessage(final @NotNull Component msg) { - lastCheck = System.currentTimeMillis(); - final Component message = Component.textOfChildren( -- Component.text("This server is running " + Bukkit.getName() + " version " + Bukkit.getVersion() + " (Implementing API version " + Bukkit.getBukkitVersion() + ")", NamedTextColor.WHITE), -+ Component.text(Bukkit.getVersionMessage(), NamedTextColor.WHITE), - Component.newline(), - msg - ); |