diff --git a/bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/BukkitCompatibilityManager.java b/bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/BukkitCompatibilityManager.java index 636924df9..5e752460f 100644 --- a/bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/BukkitCompatibilityManager.java +++ b/bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/BukkitCompatibilityManager.java @@ -66,8 +66,14 @@ public class BukkitCompatibilityManager implements CompatibilityManager { logHook("Skript"); } // WorldEdit + // FastAsyncWorldEdit if (this.isPluginEnabled("FastAsyncWorldEdit")) { - // do nothing + 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"); @@ -114,15 +120,6 @@ public class BukkitCompatibilityManager implements CompatibilityManager { new MythicItemDropListener(this.plugin); logHook("MythicMobs"); } - // FastAsyncWorldEdit - if (this.isPluginEnabled("FastAsyncWorldEdit")) { - try { - this.initFastAsyncWorldEditHook(); - logHook("FastAsyncWorldEdit"); - } catch (Exception e) { - this.plugin.logger().warn("[Compatibility] Failed to initialize FastAsyncWorldEdit hook", e); - } - } } @Override diff --git a/bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/worldedit/FastAsyncWorldEditDelegate.java b/bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/worldedit/FastAsyncWorldEditDelegate.java index 014f81d63..04401240e 100644 --- a/bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/worldedit/FastAsyncWorldEditDelegate.java +++ b/bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/worldedit/FastAsyncWorldEditDelegate.java @@ -85,6 +85,7 @@ public class FastAsyncWorldEditDelegate extends AbstractDelegateExtent { @SuppressWarnings("unused") public void onEditSessionEvent(EditSessionEvent event) { if (event.getWorld() == null || event.getStage() != EditSession.Stage.BEFORE_CHANGE) return; + if (!BukkitWorldManager.instance().initialized()) return; event.setExtent(new FastAsyncWorldEditDelegate(event, event.getExtent())); } }); diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/user/BukkitServerPlayer.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/user/BukkitServerPlayer.java index 243911557..bf6afab4b 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/user/BukkitServerPlayer.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/user/BukkitServerPlayer.java @@ -18,7 +18,6 @@ import net.momirealms.craftengine.bukkit.plugin.reflection.minecraft.MMobEffects import net.momirealms.craftengine.bukkit.plugin.reflection.minecraft.NetworkReflections; import net.momirealms.craftengine.bukkit.util.*; import net.momirealms.craftengine.bukkit.world.BukkitWorld; -import net.momirealms.craftengine.core.block.BlockSettings; import net.momirealms.craftengine.core.block.BlockStateWrapper; import net.momirealms.craftengine.core.block.ImmutableBlockState; import net.momirealms.craftengine.core.entity.player.GameMode; diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/world/BukkitWorldManager.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/world/BukkitWorldManager.java index ebad6e525..45d45bf9d 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/world/BukkitWorldManager.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/world/BukkitWorldManager.java @@ -48,6 +48,7 @@ public class BukkitWorldManager implements WorldManager, Listener { private CEWorld lastVisitedWorld; private StorageAdaptor storageAdaptor; private boolean isTicking = false; + private boolean initialized = false; public BukkitWorldManager(BukkitCraftEngine plugin) { instance = this; @@ -132,6 +133,7 @@ public class BukkitWorldManager implements WorldManager, Listener { this.worldMapLock.writeLock().unlock(); } Bukkit.getPluginManager().registerEvents(this, this.plugin.javaPlugin()); + this.initialized = true; } @Override @@ -237,6 +239,10 @@ public class BukkitWorldManager implements WorldManager, Listener { } } + public boolean initialized() { + return initialized; + } + @Override public net.momirealms.craftengine.core.world.World wrap(T world) { if (world instanceof World w) { diff --git a/gradle.properties b/gradle.properties index 564230f8d..3ce89d0df 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,7 +2,7 @@ org.gradle.jvmargs=-Xmx1G # Project settings # Rule: [major update].[feature update].[bug fix] -project_version=0.0.61.10 +project_version=0.0.62 config_version=44 lang_version=24 project_group=net.momirealms