From 74db558413a74b739c23b076f92d46e6282d55e1 Mon Sep 17 00:00:00 2001 From: Alex 'mcmonkey' Goodwin Date: Sat, 6 Feb 2021 20:58:51 -0800 Subject: [PATCH] patches for Java 11 compat --- dist/pom.xml | 2 +- plugin/pom.xml | 2 +- .../com/denizenscript/denizen/Denizen.java | 27 +++++++++++-------- .../bukkit/BukkitElementProperties.java | 5 ++-- 4 files changed, 20 insertions(+), 16 deletions(-) diff --git a/dist/pom.xml b/dist/pom.xml index f1267759ef..2bd8d24051 100644 --- a/dist/pom.xml +++ b/dist/pom.xml @@ -75,7 +75,7 @@ org.apache.maven.plugins maven-shade-plugin - 3.2.0 + 3.2.4 package diff --git a/plugin/pom.xml b/plugin/pom.xml index dd7e8b8fc6..3d16a6f5ac 100644 --- a/plugin/pom.xml +++ b/plugin/pom.xml @@ -75,7 +75,7 @@ org.apache.maven.plugins maven-shade-plugin - 3.2.0 + 3.2.4 package diff --git a/plugin/src/main/java/com/denizenscript/denizen/Denizen.java b/plugin/src/main/java/com/denizenscript/denizen/Denizen.java index 3fcf8be619..cc6c4f829a 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/Denizen.java +++ b/plugin/src/main/java/com/denizenscript/denizen/Denizen.java @@ -154,17 +154,22 @@ public void onEnable() { PlayerFlagHandler.dataFolder.mkdir(); } String javaVersion = System.getProperty("java.version"); - if (!javaVersion.startsWith("8") && !javaVersion.startsWith("1.8")) { - if (javaVersion.startsWith("9") || javaVersion.startsWith("1.9") || javaVersion.startsWith("10") || javaVersion.startsWith("1.10") || javaVersion.startsWith("11")) { - getLogger().warning("Running unreliable Java version. Minecraft is built for Java 8. Newer Java versions are not guaranteed to function properly (due to changes Oracle made to how reflection works)."); - getLogger().warning("Found java version: " + javaVersion); - } - else { - getLogger().warning("-------------------------------------"); - getLogger().warning("Running incompatible Java version! Minecraft is built for Java 8. Older versions will not work, and newer versions will cause errors (due to Oracle removing reflection support)!"); - getLogger().warning("Found java version: " + javaVersion); - getLogger().warning("-------------------------------------"); - } + getLogger().info("Running on java version: " + javaVersion); + if (javaVersion.startsWith("8") || javaVersion.startsWith("1.8")) { + getLogger().info("Running on fully supported Java 8."); + } + else if (javaVersion.startsWith("11")) { + getLogger().info("Running on mostly supported Java 11. Some warnings may show or limitations may apply due to Java 11. If these limits become problems, switch to Java 8."); + } + else if (javaVersion.startsWith("9") || javaVersion.startsWith("1.9") || javaVersion.startsWith("10") || javaVersion.startsWith("1.10")) { + getLogger().warning("Running unreliable Java version. Minecraft is built for Java 8, and Paper is built for Java 11. Other Java versions are not guaranteed to function properly."); + getLogger().warning("Found java version: " + javaVersion); + } + else { + getLogger().warning("-------------------------------------"); + getLogger().warning("Running incompatible Java version! Minecraft is built for Java 8, and Paper is built for Java 11. Older versions will not work, and newer versions will cause errors (due to Oracle removing reflection support)!"); + getLogger().warning("Found java version: " + javaVersion); + getLogger().warning("-------------------------------------"); } if (!NMSHandler.initialize(this)) { getLogger().warning("-------------------------------------"); diff --git a/plugin/src/main/java/com/denizenscript/denizen/objects/properties/bukkit/BukkitElementProperties.java b/plugin/src/main/java/com/denizenscript/denizen/objects/properties/bukkit/BukkitElementProperties.java index 05c529da1a..4d0a0b55ee 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/objects/properties/bukkit/BukkitElementProperties.java +++ b/plugin/src/main/java/com/denizenscript/denizen/objects/properties/bukkit/BukkitElementProperties.java @@ -19,7 +19,6 @@ import net.md_5.bungee.chat.ComponentSerializer; import net.md_5.bungee.api.ChatColor; -import javax.xml.bind.DatatypeConverter; import java.nio.charset.StandardCharsets; public class BukkitElementProperties implements Property { @@ -346,7 +345,7 @@ public static void registerTags() { PropertyParser.registerTag("to_secret_colors", (attribute, object) -> { String text = object.asString(); byte[] bytes = text.getBytes(StandardCharsets.UTF_8); - String hex = DatatypeConverter.printHexBinary(bytes); + String hex = CoreUtilities.hexEncode(bytes); StringBuilder colors = new StringBuilder(text.length() * 2); for (int i = 0; i < hex.length(); i++) { colors.append(ChatColor.COLOR_CHAR).append(hex.charAt(i)); @@ -364,7 +363,7 @@ public static void registerTags() { // --> PropertyParser.registerTag("from_secret_colors", (attribute, object) -> { String text = object.asString().replace(String.valueOf(ChatColor.COLOR_CHAR), ""); - byte[] bytes = DatatypeConverter.parseHexBinary(text); + byte[] bytes = CoreUtilities.hexDecode(text); return new ElementTag(new String(bytes, StandardCharsets.UTF_8)); });