diff --git a/Paper b/Paper index e9c723226..70ce6ce83 160000 --- a/Paper +++ b/Paper @@ -1 +1 @@ -Subproject commit e9c7232267fd91fc4cf7d3f36359e74e4da0cbb0 +Subproject commit 70ce6ce8314b9268cb5985cf2ebbd2115e9d9f11 diff --git a/current-paper b/current-paper index c5c009516..62fdcfba5 100644 --- a/current-paper +++ b/current-paper @@ -1 +1 @@ -1.14.1--7fa77f1f7a24ee5eaf47465fa258efa19929c759 +1.14.1--8f47f6acfd6895c4b15ca63f63ac0f2da26dbee7 diff --git a/patches/api/0001-Rebrand.patch b/patches/api/0001-Rebrand.patch index 6404c4ccf..0758fa54e 100644 --- a/patches/api/0001-Rebrand.patch +++ b/patches/api/0001-Rebrand.patch @@ -1,12 +1,11 @@ -From 85f4ec173933924204aaaa98c5011d248f22ec50 Mon Sep 17 00:00:00 2001 +From 795f3007cf8f327486ac944f86de331532290c47 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Sat, 4 May 2019 00:57:16 -0500 Subject: [PATCH] Rebrand --- - pom.xml | 13 ++++++------- - .../org/bukkit/command/defaults/VersionCommand.java | 8 ++++---- - 2 files changed, 10 insertions(+), 11 deletions(-) + pom.xml | 13 ++++++------- + 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/pom.xml b/pom.xml index dbbb5c72f..ea0ab736d 100644 @@ -45,39 +44,6 @@ index dbbb5c72f..ea0ab736d 100644 org.apache.maven.plugins -diff --git a/src/main/java/org/bukkit/command/defaults/VersionCommand.java b/src/main/java/org/bukkit/command/defaults/VersionCommand.java -index ece8d1c8a..2909e9ecf 100644 ---- a/src/main/java/org/bukkit/command/defaults/VersionCommand.java -+++ b/src/main/java/org/bukkit/command/defaults/VersionCommand.java -@@ -211,8 +211,8 @@ public class VersionCommand extends BukkitCommand { - private void obtainVersion() { - String version = Bukkit.getVersion(); - if (version == null) version = "Custom"; -- if (version.startsWith("git-Paper-")) { -- String[] parts = version.substring("git-Paper-".length()).split("[-\\s]"); -+ if (version.startsWith("git-Purpur-")) { // Purpur -+ String[] parts = version.substring("git-Purpur-".length()).split("[-\\s]"); // Purpur - int distance = getDistance(null, parts[0]); - switch (distance) { - case -1: -@@ -268,7 +268,7 @@ public class VersionCommand extends BukkitCommand { - return getFromJenkins(currentVer); - } catch (NumberFormatException ex) { - verInfo = verInfo.replace("\"", ""); -- return getFromRepo("PaperMC/Paper", "ver/1.14", verInfo); // Just for now -+ return getFromRepo("pl3xgaming/Purpur", "master", verInfo); // Purpur - } - /* - BufferedReader reader = Resources.asCharSource( -@@ -290,7 +290,7 @@ public class VersionCommand extends BukkitCommand { - private static int getFromJenkins(int currentVer) { - try { - BufferedReader reader = Resources.asCharSource( -- new URL("https://ci.destroystokyo.com/job/Paper-1.14/lastSuccessfulBuild/buildNumber"), // Paper -+ new URL("https://ci.pl3x.net/job/Purpur/lastSuccessfulBuild/buildNumber"), // Purpur // Paper - Charsets.UTF_8 - ).openBufferedStream(); - try { -- 2.20.1 diff --git a/patches/server/0001-Rebrand.patch b/patches/server/0001-Rebrand.patch index 903305e3c..412addd4c 100644 --- a/patches/server/0001-Rebrand.patch +++ b/patches/server/0001-Rebrand.patch @@ -1,15 +1,18 @@ -From 1e655261f55aa2c8547e09d05bc7f5a910757ab2 Mon Sep 17 00:00:00 2001 +From 9a63e95cdc75772fed818396f250dc14767c171b Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Sat, 4 May 2019 01:02:11 -0500 Subject: [PATCH] Rebrand --- - pom.xml | 18 +++++++++--------- - .../paper/console/PaperConsole.java | 2 +- - .../net/minecraft/server/MinecraftServer.java | 2 +- - .../org/bukkit/craftbukkit/CraftServer.java | 2 +- - .../bukkit/craftbukkit/util/Versioning.java | 2 +- - 5 files changed, 13 insertions(+), 13 deletions(-) + pom.xml | 18 +-- + .../paper/console/PaperConsole.java | 2 +- + .../net/minecraft/server/MinecraftServer.java | 2 +- + .../net/pl3x/purpur/PurpurVersionFetcher.java | 114 ++++++++++++++++++ + .../org/bukkit/craftbukkit/CraftServer.java | 2 +- + .../craftbukkit/util/CraftMagicNumbers.java | 2 +- + .../bukkit/craftbukkit/util/Versioning.java | 2 +- + 7 files changed, 128 insertions(+), 14 deletions(-) + create mode 100644 src/main/java/net/pl3x/purpur/PurpurVersionFetcher.java diff --git a/pom.xml b/pom.xml index e01d95f17..4955fa3e8 100644 @@ -95,6 +98,126 @@ index 184f1b00f..5bd0a4cc7 100644 } public CrashReport b(CrashReport crashreport) { +diff --git a/src/main/java/net/pl3x/purpur/PurpurVersionFetcher.java b/src/main/java/net/pl3x/purpur/PurpurVersionFetcher.java +new file mode 100644 +index 000000000..a05a8ff70 +--- /dev/null ++++ b/src/main/java/net/pl3x/purpur/PurpurVersionFetcher.java +@@ -0,0 +1,114 @@ ++package net.pl3x.purpur; ++ ++import com.destroystokyo.paper.VersionHistoryManager; ++import com.destroystokyo.paper.util.VersionFetcher; ++import com.google.common.base.Charsets; ++import com.google.common.io.Resources; ++import com.google.gson.Gson; ++import com.google.gson.JsonObject; ++import com.google.gson.JsonSyntaxException; ++ ++import javax.annotation.Nonnull; ++import javax.annotation.Nullable; ++import java.io.BufferedReader; ++import java.io.IOException; ++import java.io.InputStreamReader; ++import java.net.HttpURLConnection; ++import java.net.URL; ++ ++public class PurpurVersionFetcher implements VersionFetcher { ++ private static final String JENKINS_URL = "https://ci.pl3x.net/job/Purpur/lastSuccessfulBuild/buildNumber"; ++ private static final String GITHUB_BRANCH_NAME = "master"; ++ ++ @Override ++ public long getCacheTime() { ++ return 720000; ++ } ++ ++ @Nonnull ++ @Override ++ public String getVersionMessage(@Nonnull String serverVersion) { ++ String[] parts = serverVersion.substring("git-Purpur-".length()).split("[-\\s]"); ++ String updateMessage = getUpdateStatusMessage("pl3xgaming/Purpur", GITHUB_BRANCH_NAME, parts[0]); ++ ++ return getHistory() + "\n" + updateMessage; ++ } ++ ++ private static String getUpdateStatusMessage(@Nonnull String repo, @Nonnull String branch, @Nonnull String versionInfo) { ++ int distance; ++ try { ++ int jenkinsBuild = Integer.parseInt(versionInfo); ++ distance = fetchDistanceFromJenkins(jenkinsBuild); ++ } catch (NumberFormatException ignored) { ++ versionInfo = versionInfo.replace("\"", ""); ++ distance = fetchDistanceFromGitHub(repo, branch, versionInfo); ++ } ++ ++ switch (distance) { ++ case -1: ++ return "Error obtaining version information"; ++ case 0: ++ return "You are running the latest version"; ++ case -2: ++ return "Unknown version"; ++ default: ++ return "You are " + distance + " version(s) behind"; ++ } ++ } ++ ++ private static int fetchDistanceFromJenkins(int jenkinsBuild) { ++ try { ++ try (BufferedReader reader = Resources.asCharSource(new URL(JENKINS_URL), Charsets.UTF_8).openBufferedStream()) { ++ return Integer.decode(reader.readLine()) - jenkinsBuild; ++ } catch (NumberFormatException ex) { ++ ex.printStackTrace(); ++ return -2; ++ } ++ } catch (IOException e) { ++ e.printStackTrace(); ++ return -1; ++ } ++ } ++ ++ // Contributed by Techcable in GH-65 ++ private static int fetchDistanceFromGitHub(@Nonnull String repo, @Nonnull String branch, @Nonnull String hash) { ++ try { ++ HttpURLConnection connection = (HttpURLConnection) new URL("https://api.github.com/repos/" + repo + "/compare/" + branch + "..." + hash).openConnection(); ++ connection.connect(); ++ if (connection.getResponseCode() == HttpURLConnection.HTTP_NOT_FOUND) return -2; // Unknown commit ++ try (BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream(), Charsets.UTF_8))) { ++ JsonObject obj = new Gson().fromJson(reader, JsonObject.class); ++ String status = obj.get("status").getAsString(); ++ switch (status) { ++ case "identical": ++ return 0; ++ case "behind": ++ return obj.get("behind_by").getAsInt(); ++ default: ++ return -1; ++ } ++ } catch (JsonSyntaxException | NumberFormatException e) { ++ e.printStackTrace(); ++ return -1; ++ } ++ } catch (IOException e) { ++ e.printStackTrace(); ++ return -1; ++ } ++ } ++ ++ @Nullable ++ private String getHistory() { ++ final VersionHistoryManager.VersionData data = VersionHistoryManager.INSTANCE.getVersionData(); ++ if (data == null) { ++ return null; ++ } ++ ++ final String oldVersion = data.getOldVersion(); ++ if (oldVersion == null) { ++ return null; ++ } ++ ++ return "Previous version: " + oldVersion; ++ } ++} diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java index 62cfb6e42..5500c3a22 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -108,6 +231,19 @@ index 62cfb6e42..5500c3a22 100644 private final String serverVersion; private final String bukkitVersion = Versioning.getBukkitVersion(); private final Logger logger = Logger.getLogger("Minecraft"); +diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java +index bb29b329b..25d10d0c7 100644 +--- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java ++++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java +@@ -279,7 +279,7 @@ public final class CraftMagicNumbers implements UnsafeValues { + + @Override + public com.destroystokyo.paper.util.VersionFetcher getVersionFetcher() { +- return new com.destroystokyo.paper.PaperVersionFetcher(); ++ return new net.pl3x.purpur.PurpurVersionFetcher(); + } + // Paper end + diff --git a/src/main/java/org/bukkit/craftbukkit/util/Versioning.java b/src/main/java/org/bukkit/craftbukkit/util/Versioning.java index 674096cab..e9aee2d8a 100644 --- a/src/main/java/org/bukkit/craftbukkit/util/Versioning.java diff --git a/patches/server/0014-Villager-shops.patch b/patches/server/0014-Villager-shops.patch index defb82971..b50e70467 100644 --- a/patches/server/0014-Villager-shops.patch +++ b/patches/server/0014-Villager-shops.patch @@ -1,4 +1,4 @@ -From 132991733ea1452650a9aac46b3f7477659ff4e6 Mon Sep 17 00:00:00 2001 +From 4092f0654e1564971542f82e7c13d7957f762976 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Sat, 11 May 2019 01:31:50 -0500 Subject: [PATCH] Villager shops @@ -283,10 +283,10 @@ index 000000000..eb7213217 + } +} diff --git a/src/main/java/net/minecraft/server/NavigationAbstract.java b/src/main/java/net/minecraft/server/NavigationAbstract.java -index 1bf7ead71..46a6511f7 100644 +index 856ff22b0..8ed86e25f 100644 --- a/src/main/java/net/minecraft/server/NavigationAbstract.java +++ b/src/main/java/net/minecraft/server/NavigationAbstract.java -@@ -125,6 +125,7 @@ public abstract class NavigationAbstract { +@@ -123,6 +123,7 @@ public abstract class NavigationAbstract { } } @@ -294,7 +294,7 @@ index 1bf7ead71..46a6511f7 100644 public boolean a(double d0, double d1, double d2, double d3) { return this.a(this.a(d0, d1, d2), d3); } -@@ -258,6 +259,7 @@ public abstract class NavigationAbstract { +@@ -255,6 +256,7 @@ public abstract class NavigationAbstract { }