Better versioning system

This commit is contained in:
nostalgic853
2022-10-23 21:41:22 +08:00
parent 97a5503a11
commit 2c814f8d41
3 changed files with 93 additions and 19 deletions

View File

@@ -1,8 +1,8 @@
name: Build (stable/1.19.2)
name: Build (main)
on:
push:
branches:
- "stable/1.19.2"
- "main"
env:
MC_VERSION: "1.19.2"
@@ -44,12 +44,12 @@ jobs:
export BUILD_NUMBER_111=${{ env.workflow }}
./gradlew createReobfPaperclipJar --stacktrace --no-daemon
- name: Rename Jar
run: "mv build/libs/keyi-paperclip-${{ env.MC_VERSION }}-R0.1-SNAPSHOT-reobf.jar build/libs/keyi-stable-${{ env.MC_VERSION }}-${{ env.workflow }}.jar"
run: "mv build/libs/keyi-paperclip-${{ env.MC_VERSION }}-R0.1-SNAPSHOT-reobf.jar build/libs/keyi-${{ env.ref }}-${{ env.MC_VERSION }}-${{ env.workflow }}.jar"
- name: Release Artifacts
uses: marvinpinto/action-automatic-releases@latest
with:
title: "[${{ env.ref }}] #${{ env.workflow }}"
automatic_release_tag: "stable-latest"
automatic_release_tag: "main-latest"
repo_token: "${{ secrets.GITHUB_TOKEN }}"
files: build/libs/keyi-stable-${{ env.MC_VERSION }}-${{ env.workflow }}.jar
files: "build/libs/keyi-${{ env.ref }}-${{ env.MC_VERSION }}-${{ env.workflow }}.jar"
prerelease: false

View File

@@ -0,0 +1,19 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: nostalgic853 <yuu8583@proton.me>
Date: Sun, 23 Oct 2022 21:32:36 +0800
Subject: [PATCH] Rebrand
diff --git a/src/main/java/org/bukkit/command/defaults/VersionCommand.java b/src/main/java/org/bukkit/command/defaults/VersionCommand.java
index eac5830986cd0638950bbb1e6f10a30e246e09a7..f446b486adcbee360ebbb63195ea5828311cf0f3 100644
--- a/src/main/java/org/bukkit/command/defaults/VersionCommand.java
+++ b/src/main/java/org/bukkit/command/defaults/VersionCommand.java
@@ -198,7 +198,7 @@ public class VersionCommand extends BukkitCommand {
String version = Bukkit.getVersion();
// Paper start
if (version.startsWith("null")) { // running from ide?
- setVersionMessage(net.kyori.adventure.text.Component.text("* Unknown version, custom build?", net.kyori.adventure.text.format.NamedTextColor.RED)); // Purpur
+ setVersionMessage(net.kyori.adventure.text.Component.text("Unknown version, custom build?", net.kyori.adventure.text.format.NamedTextColor.RED)); // Purpur // KeYi
return;
}
setVersionMessage(getVersionFetcher().getVersionMessage(version));

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Rebrand
diff --git a/build.gradle.kts b/build.gradle.kts
index 2ee34f92e8a89b90448bbf710fdc0d5d6350e919..f15f7470a591d8491055d0ac3205224f6735ea59 100644
index 2ee34f92e8a89b90448bbf710fdc0d5d6350e919..299ac3fab7543cb7ae0371ae80ea4786e6d37d8b 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -9,7 +9,7 @@ plugins {
@@ -29,7 +29,7 @@ index 2ee34f92e8a89b90448bbf710fdc0d5d6350e919..f15f7470a591d8491055d0ac3205224f
"Main-Class" to "org.bukkit.craftbukkit.Main",
"Implementation-Title" to "CraftBukkit",
- "Implementation-Version" to "git-Purpur-$implementationVersion",// Purpur
+ "Implementation-Version" to "git-KeYi-stable-$implementationVersion",// Purpur // KeYi
+ "Implementation-Version" to "git-KeYi-$gitBranch-$implementationVersion",// Purpur // KeYi
"Implementation-Vendor" to date, // Paper
"Specification-Title" to "Bukkit",
"Specification-Version" to project.version,
@@ -56,10 +56,29 @@ index acd95cf1dc7f009b63e44e4404e1736283fd458e..3436a377f9c11d8f2a39af65c3370861
metrics.addCustomChart(new Metrics.DrilldownPie("java_version", () -> {
Map<String, Map<String, Integer>> map = new HashMap<>();
diff --git a/src/main/java/com/destroystokyo/paper/PaperVersionFetcher.java b/src/main/java/com/destroystokyo/paper/PaperVersionFetcher.java
index fba5dbdb7bcbb55400ef18342c9b54612972a718..fc65beba373834f4c6cf43f15e18b4655960a602 100644
index fba5dbdb7bcbb55400ef18342c9b54612972a718..005983d56b283e54e2cf450f1e9f985aa22503a9 100644
--- a/src/main/java/com/destroystokyo/paper/PaperVersionFetcher.java
+++ b/src/main/java/com/destroystokyo/paper/PaperVersionFetcher.java
@@ -20,7 +20,7 @@ import java.util.stream.StreamSupport;
@@ -4,27 +4,31 @@ import com.destroystokyo.paper.util.VersionFetcher;
import com.google.common.base.Charsets;
import com.google.common.io.Resources;
import com.google.gson.*;
+import io.papermc.paper.util.JarManifests;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.event.ClickEvent;
import net.kyori.adventure.text.format.NamedTextColor;
-import net.kyori.adventure.text.format.TextDecoration;
-import net.kyori.adventure.text.TextComponent;
+import org.bukkit.Bukkit;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;
-import java.util.stream.StreamSupport;
+import java.util.jar.Manifest;
public class PaperVersionFetcher implements VersionFetcher {
private static final java.util.regex.Pattern VER_PATTERN = java.util.regex.Pattern.compile("^([0-9\\.]*)\\-.*R"); // R is an anchor, will always give '-R' at end
// Purpur start
@@ -68,18 +87,26 @@ index fba5dbdb7bcbb55400ef18342c9b54612972a718..fc65beba373834f4c6cf43f15e18b465
private static int distance = -2; public int distance() { return distance; }
// Purpur end
private static @Nullable String mcVer;
@@ -33,8 +33,8 @@ public class PaperVersionFetcher implements VersionFetcher {
-
+ // KeYi start
+ private static final Manifest JAR_MANIFEST = JarManifests.manifest(Bukkit.getServer().getClass());
+ private static final String GIT_BRANCH = JAR_MANIFEST == null ? null : JAR_MANIFEST.getMainAttributes().getValue("Git-Branch");
+ private static final String GIT_COMMIT = JAR_MANIFEST == null ? null : JAR_MANIFEST.getMainAttributes().getValue("Git-Commit");
+ // KeYi end
@Override
public long getCacheTime() {
return 720000;
@@ -33,8 +37,7 @@ public class PaperVersionFetcher implements VersionFetcher {
@Nonnull
@Override
public Component getVersionMessage(@Nonnull String serverVersion) {
- String[] parts = serverVersion.substring("git-Purpur-".length()).split("[-\\s]"); // Purpur
- final Component updateMessage = getUpdateStatusMessage("PurpurMC/Purpur", "ver/" + getMinecraftVersion(), parts[0]); // Purpur
+ String[] parts = serverVersion.substring("git-KeYi-stable-".length()).split("[-\\s]"); // Purpur // KeYi
+ final Component updateMessage = getUpdateStatusMessage("KeYiMC/KeYi", "stable/1.19.2", parts[0]); // Purpur // KeYi
+ final Component updateMessage = getUpdateStatusMessage("KeYiMC/KeYi", GIT_BRANCH, GIT_COMMIT); // Purpur // KeYi
final Component history = getHistory();
return history != null ? Component.join(net.kyori.adventure.text.JoinConfiguration.separator(Component.newline()), history, updateMessage) : updateMessage; // Purpur
@@ -47,7 +47,7 @@ public class PaperVersionFetcher implements VersionFetcher {
@@ -47,7 +50,7 @@ public class PaperVersionFetcher implements VersionFetcher {
String result = matcher.group();
mcVer = result.substring(0, result.length() - 2); // strip 'R' anchor and trailing '-'
} else {
@@ -88,7 +115,7 @@ index fba5dbdb7bcbb55400ef18342c9b54612972a718..fc65beba373834f4c6cf43f15e18b465
org.bukkit.Bukkit.getLogger().warning("Pattern: " + VER_PATTERN.toString());
org.bukkit.Bukkit.getLogger().warning("Version: " + org.bukkit.Bukkit.getBukkitVersion());
}
@@ -58,6 +58,8 @@ public class PaperVersionFetcher implements VersionFetcher {
@@ -58,6 +61,8 @@ public class PaperVersionFetcher implements VersionFetcher {
private static Component getUpdateStatusMessage(@Nonnull String repo, @Nonnull String branch, @Nonnull String versionInfo) {
//int distance; // Purpur - use field
@@ -97,19 +124,47 @@ index fba5dbdb7bcbb55400ef18342c9b54612972a718..fc65beba373834f4c6cf43f15e18b465
try {
int jenkinsBuild = Integer.parseInt(versionInfo);
distance = fetchDistanceFromSiteApi(jenkinsBuild, getMinecraftVersion());
@@ -65,6 +67,12 @@ public class PaperVersionFetcher implements VersionFetcher {
@@ -65,22 +70,25 @@ public class PaperVersionFetcher implements VersionFetcher {
versionInfo = versionInfo.replace("\"", "");
distance = fetchDistanceFromGitHub(repo, branch, versionInfo);
}
+ */
+
- switch (distance) {
- case -1:
- return Component.text("* Error obtaining version information", NamedTextColor.RED); // Purpur
- case 0:
- return Component.text("* You are running the latest version", NamedTextColor.GREEN); // Purpur
- case -2:
- return Component.text("* Unknown version", NamedTextColor.RED); // Purpur
- default:
- return Component.text("* You are " + distance + " version(s) behind", NamedTextColor.YELLOW) // Purpur
- .append(Component.newline())
- .append(Component.text("Download the new version at: ")
- .append(Component.text(DOWNLOAD_PAGE, NamedTextColor.GOLD)
- .hoverEvent(Component.text("Click to open", NamedTextColor.WHITE))
- .clickEvent(ClickEvent.openUrl(DOWNLOAD_PAGE))));
- }
+ versionInfo = versionInfo.replace("\"", "");
+ distance = fetchDistanceFromGitHub(repo, branch, versionInfo);
+
+ // KeYi end
+
+ // KeYi start
+ return switch (distance) {
+ case -1 -> Component.text("Failed to obtain version information.", NamedTextColor.RED); // Purpur // KeYi
+ case 0 -> Component.text("You are running the latest version.", NamedTextColor.GREEN); // Purpur // KeYi
+ case -2 -> Component.text("You are running an unknown version.", NamedTextColor.RED); // Purpur // KeYi
+ default -> Component.text("You are " + distance + " version(s) behind.", NamedTextColor.YELLOW) // Purpur // KeYi
+ .append(Component.newline())
+ .append(Component.text("Download the new version at: ")
+ .append(Component.text(DOWNLOAD_PAGE, NamedTextColor.GOLD)
+ .hoverEvent(Component.text("Click to open", NamedTextColor.WHITE))
+ .clickEvent(ClickEvent.openUrl(DOWNLOAD_PAGE))));
+ };
+ // KeYi end
}
switch (distance) {
case -1:
private static int fetchDistanceFromSiteApi(int jenkinsBuild, @Nullable String siteApiVersion) {
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index f9508a26b2e764e752da3d2c9f43a9d7de19dd27..4f029b96bf8deee597dbb56974e4519a1422f96d 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java