feat: 兼容1.21

This commit is contained in:
2024-07-25 20:22:32 +08:00
parent be756b0a56
commit 2263a74a77
4 changed files with 20 additions and 11 deletions

View File

@@ -35,7 +35,6 @@ import java.io.InputStreamReader;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.StandardCopyOption;
import java.util.logging.Level;
public class HamsterCorePlugin extends JavaPlugin {
@Getter
@@ -91,7 +90,7 @@ public class HamsterCorePlugin extends JavaPlugin {
CoreBukkitAPI.init(configFile);
simpleLogger.info("已初始化 CoreAPI");
} catch (Exception e) {
simpleLogger.log(Level.WARNING, "初始化 CoreAPI 出错", e);
simpleLogger.error(e, "初始化 CoreAPI 出错");
}
CoreMessage.init(this);
simpleLogger.info("已初始化语言文本");
@@ -114,6 +113,9 @@ public class HamsterCorePlugin extends JavaPlugin {
simpleLogger.info("已注册 CallbackListener");
Bukkit.getPluginManager().registerEvents(DebugListener.INSTANCE, this);
simpleLogger.info("已注册 DebugListener");
simpleLogger.info("Redis 启用状态: %b", CoreAPI.getInstance().isEnableRedis());
simpleLogger.info("Database 启用状态: %b", CoreAPI.getInstance().isEnableDatabase());
simpleLogger.info("已注册 DebugListener");
long time = System.currentTimeMillis() - start;
sync(() -> {
PointAPI.reloadPlayerPointAPIHook();

View File

@@ -61,8 +61,10 @@ public class MinecraftVersion {
@NotNull
public static Class<?> getNMSClass(@NotNull String className) throws ClassNotFoundException {
if (version1 >= 1 && version2 >= 17) {
return Class.forName("net.minecraft.server." + className);
if (version1 >= 1) {
if (version2 >= 17) {
return Class.forName("net.minecraft.server." + className);
}
}
String nmsVersion = getNMSVersion();
return Class.forName("net.minecraft.server." + nmsVersion + "." + className);
@@ -79,8 +81,13 @@ 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);
if (version1 >= 1) {
if (version2 >= 21) {
return Class.forName("org.bukkit.craftbukkit." + className);
}
if (version2 == 20 && version3 >= 6) {
return Class.forName("org.bukkit.craftbukkit." + className);
}
}
String nmsVersion = getNMSVersion();
return Class.forName("org.bukkit.craftbukkit." + nmsVersion + "." + className);
@@ -91,6 +98,7 @@ public class MinecraftVersion {
try {
return getCraftBukkitClass(className);
} catch (ClassNotFoundException e) {
e.printStackTrace();
throw new RuntimeException(e);
}
}