diff --git a/Essentials/src/main/java/com/earth2me/essentials/utils/VersionUtil.java b/Essentials/src/main/java/com/earth2me/essentials/utils/VersionUtil.java index 890e7c2d253..e13bb4213f8 100644 --- a/Essentials/src/main/java/com/earth2me/essentials/utils/VersionUtil.java +++ b/Essentials/src/main/java/com/earth2me/essentials/utils/VersionUtil.java @@ -49,20 +49,15 @@ public final class VersionUtil { public static final boolean PRE_FLATTENING = VersionUtil.getServerBukkitVersion().isLowerThan(VersionUtil.v1_13_0_R01); private static final Map unsupportedServerClasses; + private static final String PFX = make("8(;4>`"); static { final ImmutableMap.Builder builder = new ImmutableMap.Builder<>(); - // Yatopia - Extremely volatile patch set; - // * Messes with proxy-forwarded UUIDs - // * Frequent data corruptions - builder.put("org.yatopiamc.yatopia.server.YatopiaConfig", SupportStatus.DANGEROUS_FORK); - builder.put("net.yatopia.api.event.PlayerAttackEntityEvent", SupportStatus.DANGEROUS_FORK); - builder.put("org.bukkit.plugin.SimplePluginManager#getPluginLoaders", SupportStatus.DANGEROUS_FORK); - builder.put("org.bukkit.Bukkit#getLastTickTime", SupportStatus.DANGEROUS_FORK); - builder.put("brand:Yatopia", SupportStatus.DANGEROUS_FORK); - // Yatopia downstream(s) which attempt to do tricky things :) - builder.put("brand:Hyalus", SupportStatus.DANGEROUS_FORK); + // Leaf, yet another "High Performance" fork of Paper. Not supported by EssentialsX. + builder.put(make("5(=t>(??;7t6?;?(t6;/492t145.t\\02145.\\t?(,?("), SupportStatus.UNSTABLE); + builder.put(PFX + make("\\0035/?("), SupportStatus.UNSTABLE); // Misc translation layers that do not add NMS will be caught by this if (ReflUtil.getNmsVersionObject().isHigherThanOrEqualTo(ReflUtil.V1_17_R1)) { @@ -117,8 +111,8 @@ public static SupportStatus getServerSupportStatus() { if (supportStatus == null) { for (Map.Entry entry : unsupportedServerClasses.entrySet()) { - if (entry.getKey().startsWith("brand:")) { - if (Bukkit.getName().equalsIgnoreCase(entry.getKey().replaceFirst("brand:", ""))) { + if (entry.getKey().startsWith(PFX)) { + if (Bukkit.getName().equalsIgnoreCase(entry.getKey().replaceFirst(PFX, ""))) { supportStatusClass = entry.getKey(); return supportStatus = entry.getValue(); } @@ -354,20 +348,11 @@ public boolean isSupported() { } } - private static String dumb(final int[] clazz, final int len) { - final char[] chars = new char[clazz.length]; - - for (int i = 0; i < clazz.length; i++) { - chars[i] = (char) clazz[i]; - } - - final String decode = String.valueOf(chars); - - if (decode.charAt(0) != 'n' || decode.length() != len) { - System.exit(1); - return "why do hybrids try to bypass this?"; + private static String make(String in) { + final char[] c = in.toCharArray(); + for (int i = 0; i < c.length; i++) { + c[i] ^= 0x5A; } - - return decode; + return new String(c); } } diff --git a/README.md b/README.md index 47f44726e77..463d4375208 100644 --- a/README.md +++ b/README.md @@ -76,7 +76,7 @@ To add EssentialsX to your build system, you should use the following artifacts: | Type | Group ID | Artifact ID | Version | |:---------------|:------------------|:--------------|:------------------| -| Latest release | `net.essentialsx` | `EssentialsX` | `2.21.1` | +| Latest release | `net.essentialsx` | `EssentialsX` | `2.21.2` | | Snapshots | `net.essentialsx` | `EssentialsX` | `2.21.2-SNAPSHOT` | | Older releases | `net.ess3` | `EssentialsX` | `2.18.2` | diff --git a/build.gradle b/build.gradle index e110e913ab8..216fb98cfe9 100644 --- a/build.gradle +++ b/build.gradle @@ -3,7 +3,7 @@ plugins { } group = "net.essentialsx" -version = "2.21.2-SNAPSHOT" +version = "2.21.2" project.ext { GIT_COMMIT = !indraGit.isPresent() ? "unknown" : indraGit.commit().abbreviate(7).name()