From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Etil <81570777+etil2jz@users.noreply.github.com> Date: Fri, 17 Sep 2021 22:19:14 +0200 Subject: [PATCH] (Patina) Remove VersionFetcher diff --git a/src/main/java/org/bukkit/command/defaults/VersionCommand.java b/src/main/java/org/bukkit/command/defaults/VersionCommand.java index 57a21495843f3a144cd73473cdc8781d6129b7ca..c1a6df34bb09e8b732136f550b293f86bb380c48 100644 --- a/src/main/java/org/bukkit/command/defaults/VersionCommand.java +++ b/src/main/java/org/bukkit/command/defaults/VersionCommand.java @@ -1,6 +1,6 @@ package org.bukkit.command.defaults; -import com.destroystokyo.paper.util.VersionFetcher; // Paper - version supplier +//import com.destroystokyo.paper.util.VersionFetcher; // Paper - version supplier // Patina - remove import com.google.common.base.Charsets; import com.google.common.collect.ImmutableList; import com.google.common.io.Resources; @@ -28,14 +28,6 @@ import org.bukkit.util.StringUtil; import org.jetbrains.annotations.NotNull; public class VersionCommand extends BukkitCommand { - private VersionFetcher versionFetcher; - private VersionFetcher getVersionFetcher() { // lazy load because unsafe isn't available at command registration - if (versionFetcher == null) { - versionFetcher = Bukkit.getUnsafe().getVersionFetcher(); - } - - return versionFetcher; - } public VersionCommand(@NotNull String name) { super(name); @@ -51,8 +43,8 @@ public class VersionCommand extends BukkitCommand { if (!testPermission(sender)) return true; if (args.length == 0) { - //sender.sendMessage("This server is running " + Bukkit.getName() + " version " + Bukkit.getVersion() + " (Implementing API version " + Bukkit.getBukkitVersion() + ")"); // Paper - moved to setVersionMessage - sendVersion(sender); + sender.sendMessage("This server is running " + Bukkit.getName() + " version " + Bukkit.getVersion() + " (Implementing API version " + Bukkit.getBukkitVersion() + ")"); // Patina + //sendVersion(sender); // Patina } else { StringBuilder name = new StringBuilder(); @@ -154,134 +146,5 @@ public class VersionCommand extends BukkitCommand { } return ImmutableList.of(); } - - private final ReentrantLock versionLock = new ReentrantLock(); - private boolean hasVersion = false; - private Component versionMessage = null; // Paper - private final Set versionWaiters = new HashSet(); - private boolean versionTaskStarted = false; - private long lastCheck = 0; - - private void sendVersion(@NotNull CommandSender sender) { - if (hasVersion) { - if (System.currentTimeMillis() - lastCheck > getVersionFetcher().getCacheTime()) { // Paper - use version supplier - lastCheck = System.currentTimeMillis(); - hasVersion = false; - } else { - sender.sendMessage(versionMessage); - return; - } - } - versionLock.lock(); - try { - if (hasVersion) { - sender.sendMessage(versionMessage); - return; - } - versionWaiters.add(sender); - sender.sendMessage(Component.text("Checking version, please wait...", net.kyori.adventure.text.format.NamedTextColor.WHITE, net.kyori.adventure.text.format.TextDecoration.ITALIC)); // Paper - if (!versionTaskStarted) { - versionTaskStarted = true; - new Thread(new Runnable() { - - @Override - public void run() { - obtainVersion(); - } - }).start(); - } - } finally { - versionLock.unlock(); - } - } - - private void obtainVersion() { - String version = Bukkit.getVersion(); - // Paper start - if (version.startsWith("null")) { // running from ide? - setVersionMessage(Component.text("Unknown version, custom build?", net.kyori.adventure.text.format.NamedTextColor.YELLOW)); - return; - } - setVersionMessage(getVersionFetcher().getVersionMessage(version)); - /* - if (version == null) version = "Custom"; - String[] parts = version.substring(0, version.indexOf(' ')).split("-"); - if (parts.length == 4) { - int cbVersions = getDistance("craftbukkit", parts[3]); - int spigotVersions = getDistance("spigot", parts[2]); - if (cbVersions == -1 || spigotVersions == -1) { - setVersionMessage("Error obtaining version information"); - } else { - if (cbVersions == 0 && spigotVersions == 0) { - setVersionMessage("You are running the latest version"); - } else { - setVersionMessage("You are " + (cbVersions + spigotVersions) + " version(s) behind"); - } - } - - } else if (parts.length == 3) { - int cbVersions = getDistance("craftbukkit", parts[2]); - if (cbVersions == -1) { - setVersionMessage("Error obtaining version information"); - } else { - if (cbVersions == 0) { - setVersionMessage("You are running the latest version"); - } else { - setVersionMessage("You are " + cbVersions + " version(s) behind"); - } - } - } else { - setVersionMessage("Unknown version, custom build?"); - } - */ - // Paper end - } - - // Paper start - private void setVersionMessage(final @NotNull Component msg) { - lastCheck = System.currentTimeMillis(); - final Component message = net.kyori.adventure.text.TextComponent.ofChildren( - Component.text(Bukkit.getVersionMessage(), net.kyori.adventure.text.format.NamedTextColor.WHITE), - Component.newline(), - msg - ); - this.versionMessage = Component.text() - .append(message) - .hoverEvent(Component.text("Click to copy to clipboard", net.kyori.adventure.text.format.NamedTextColor.WHITE)) - .clickEvent(net.kyori.adventure.text.event.ClickEvent.copyToClipboard(net.kyori.adventure.text.serializer.plain.PlainComponentSerializer.plain().serialize(message))) - .build(); - // Paper end - versionLock.lock(); - try { - hasVersion = true; - versionTaskStarted = false; - for (CommandSender sender : versionWaiters) { - sender.sendMessage(versionMessage); - } - versionWaiters.clear(); - } finally { - versionLock.unlock(); - } - } - - private static int getDistance(@NotNull String repo, @NotNull String hash) { - try { - BufferedReader reader = Resources.asCharSource( - new URL("https://hub.spigotmc.org/stash/rest/api/1.0/projects/SPIGOT/repos/" + repo + "/commits?since=" + URLEncoder.encode(hash, "UTF-8") + "&withCounts=true"), - Charsets.UTF_8 - ).openBufferedStream(); - try { - JsonObject obj = new Gson().fromJson(reader, JsonObject.class); - return obj.get("totalCount").getAsInt(); - } catch (JsonSyntaxException ex) { - ex.printStackTrace(); - return -1; - } finally { - reader.close(); - } - } catch (IOException e) { - e.printStackTrace(); - return -1; - } - } + // Patina - remove }