9
0
mirror of https://github.com/Xiao-MoMi/craft-engine.git synced 2025-12-27 02:49:15 +00:00

feat(bukkit): 添加 FastAsyncWorldEdit 兼容性检查

This commit is contained in:
jhqwqmc
2025-05-30 10:11:42 +08:00
parent 78a3772eb3
commit d29900255d

View File

@@ -82,8 +82,12 @@ public class BukkitCompatibilityManager implements CompatibilityManager {
}
// WorldEdit
if (this.isPluginEnabled("FastAsyncWorldEdit")) {
this.initFastAsyncWorldEditHook();
logHook("FastAsyncWorldEdit");
try {
this.initFastAsyncWorldEditHook();
logHook("FastAsyncWorldEdit");
} catch (Exception e) {
this.plugin.logger().warn("[Compatibility] Failed to initialize FastAsyncWorldEdit hook", e);
}
} else if (this.isPluginEnabled("WorldEdit")) {
this.initWorldEditHook();
logHook("WorldEdit");
@@ -172,10 +176,28 @@ public class BukkitCompatibilityManager implements CompatibilityManager {
}
}
@SuppressWarnings("all")
private void initFastAsyncWorldEditHook() {
Plugin fastAsyncWorldEdit = Bukkit.getPluginManager().getPlugin("FastAsyncWorldEdit");
String version = VersionHelper.isPaper() ? fastAsyncWorldEdit.getPluginMeta().getVersion() : fastAsyncWorldEdit.getDescription().getVersion();
if (!this.fastAsyncWorldEditVersionCheck(new int[]{2, 13, 0}, version)) {
this.plugin.logger().warn("[Compatibility] FastAsyncWorldEdit version is too old, please update to 2.13.0 or newer");
}
new WorldEditBlockRegister(BukkitBlockManager.instance(), true);
}
private boolean fastAsyncWorldEditVersionCheck(int[] target, String version) {
String cleanVersion = version.split("-")[0];
String[] parts = cleanVersion.split("\\.");
for (int i = 0; i < target.length; i++) {
if (i >= parts.length) return false;
int currentPart = Integer.parseInt(parts[i]);
if (currentPart > target[i]) return true;
if (currentPart < target[i]) return false;
}
return true;
}
private void initWorldEditHook() {
WorldEditBlockRegister weBlockRegister = new WorldEditBlockRegister(BukkitBlockManager.instance(), false);
try {