From 738b566a2d7bd8b968c7842ab5a22dffd27d77c0 Mon Sep 17 00:00:00 2001 From: MiniDay <372403923@qq.com> Date: Sat, 29 Jun 2024 01:42:12 +0800 Subject: [PATCH] =?UTF-8?q?feat(bukkit):=20=E6=94=AF=E6=8C=81=201.20.6=20?= =?UTF-8?q?=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core-bukkit/build.gradle.kts | 2 +- .../core/bukkit/util/MinecraftVersion.java | 35 +++++++++--------- .../common/util/async/CompletableTask.java | 36 +++++-------------- 3 files changed, 28 insertions(+), 45 deletions(-) diff --git a/core-bukkit/build.gradle.kts b/core-bukkit/build.gradle.kts index c8e8219..b26b17c 100644 --- a/core-bukkit/build.gradle.kts +++ b/core-bukkit/build.gradle.kts @@ -29,7 +29,7 @@ dependencies { api("com.sun.mail:jakarta.mail:2.0.1") // https://www.spigotmc.org/resources/nbt-api.7939/ - implementation("de.tr7zw:item-nbt-api:2.12.2") + implementation("de.tr7zw:item-nbt-api:+") // https://mvnrepository.com/artifact/com.zaxxer/HikariCP implementation("com.zaxxer:HikariCP:4.0.3") { exclude(group = "org.slf4j") } // https://mvnrepository.com/artifact/org.jetbrains.kotlin/kotlin-stdlib-jdk8 diff --git a/core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/util/MinecraftVersion.java b/core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/util/MinecraftVersion.java index 3b70e19..300ec99 100644 --- a/core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/util/MinecraftVersion.java +++ b/core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/util/MinecraftVersion.java @@ -7,18 +7,18 @@ import org.jetbrains.annotations.NotNull; @SuppressWarnings("unused") public class MinecraftVersion { @Getter - public static final int Version1; + public static final int version1; @Getter - public static final int Version2; + public static final int version2; @Getter - public static final int Version3; + public static final int version3; static { String version = getMCVersion(); String[] split = version.split("\\."); - Version1 = Integer.parseInt(split[0]); - Version2 = Integer.parseInt(split[1]); - Version3 = split.length >= 3 ? Integer.parseInt(split[2]) : 0; + version1 = Integer.parseInt(split[0]); + version2 = Integer.parseInt(split[1]); + version3 = split.length >= 3 ? Integer.parseInt(split[2]) : 0; } /** @@ -35,18 +35,18 @@ public class MinecraftVersion { */ public static int compareTo(@NotNull String version) { String[] split = version.split("\\."); - int version1 = Integer.parseInt(split[0]); - int version2 = Integer.parseInt(split[1]); - int version3 = split.length >= 3 ? Integer.parseInt(split[2]) : 0; - int compare = Integer.compare(Version1, version1); + int compareVersion1 = Integer.parseInt(split[0]); + int compareVersion2 = Integer.parseInt(split[1]); + int compareVersion3 = split.length >= 3 ? Integer.parseInt(split[2]) : 0; + int compare = Integer.compare(compareVersion1, MinecraftVersion.version1); if (compare != 0) { return compare; } - compare = Integer.compare(Version2, version2); + compare = Integer.compare(compareVersion2, MinecraftVersion.version2); if (compare != 0) { return compare; } - return Integer.compare(Version3, version3); + return Integer.compare(compareVersion3, MinecraftVersion.version3); } @NotNull @@ -61,7 +61,7 @@ public class MinecraftVersion { @NotNull public static Class getNMSClass(@NotNull String className) throws ClassNotFoundException { - if (Version2 >= 17) { + if (version1 >= 1 && version2 >= 17) { return Class.forName("net.minecraft.server." + className); } String nmsVersion = getNMSVersion(); @@ -70,9 +70,8 @@ public class MinecraftVersion { @NotNull public static Class getNMSClassSilent(@NotNull String className) { - String nmsVersion = getNMSVersion(); try { - return Class.forName("net.minecraft.server." + nmsVersion + "." + className); + return getNMSClass(className); } catch (ClassNotFoundException e) { throw new RuntimeException(e); } @@ -80,15 +79,17 @@ public class MinecraftVersion { @NotNull public static Class getCraftBukkitClass(@NotNull String className) throws ClassNotFoundException { + if (version1 >= 1 && version2 >= 20 && version3 >= 6) { + return Class.forName("org.bukkit.craftbukkit." + className); + } String nmsVersion = getNMSVersion(); return Class.forName("org.bukkit.craftbukkit." + nmsVersion + "." + className); } @NotNull public static Class getCraftBukkitClassSilent(@NotNull String className) { - String nmsVersion = getNMSVersion(); try { - return Class.forName("org.bukkit.craftbukkit." + nmsVersion + "." + className); + return getCraftBukkitClass(className); } catch (ClassNotFoundException e) { throw new RuntimeException(e); } diff --git a/core-common/src/main/java/cn/hamster3/mc/plugin/core/common/util/async/CompletableTask.java b/core-common/src/main/java/cn/hamster3/mc/plugin/core/common/util/async/CompletableTask.java index 0d61f46..61f4c73 100644 --- a/core-common/src/main/java/cn/hamster3/mc/plugin/core/common/util/async/CompletableTask.java +++ b/core-common/src/main/java/cn/hamster3/mc/plugin/core/common/util/async/CompletableTask.java @@ -118,42 +118,24 @@ public class CompletableTask { return this; } - public T get() throws Throwable { + public T get() throws InterruptedException { if (state == State.WAITING) { synchronized (this) { - try { - wait(); - } catch (InterruptedException e) { - e.printStackTrace(); - } + wait(); } } - switch (state) { - case SUCCESS: - return value; - case FAILED: - throw throwable; + if (state == State.SUCCESS) { + return value; } return null; } - public T getOrDefault(T defaultValue) { - if (state == State.WAITING) { - synchronized (this) { - try { - wait(); - } catch (InterruptedException e) { - e.printStackTrace(); - } - } + public T join() { + try { + return get(); + } catch (Exception e) { + throw new RuntimeException(e); } - switch (state) { - case SUCCESS: - return value; - case FAILED: - return defaultValue; - } - return defaultValue; } public enum State {