diff --git a/sources/src/main/java/io/akarin/server/mixin/core/MixinMinecraftServer.java b/sources/src/main/java/io/akarin/server/mixin/core/MixinMinecraftServer.java index 1867ed7b7..d63a71b22 100644 --- a/sources/src/main/java/io/akarin/server/mixin/core/MixinMinecraftServer.java +++ b/sources/src/main/java/io/akarin/server/mixin/core/MixinMinecraftServer.java @@ -119,9 +119,17 @@ public abstract class MixinMinecraftServer { executor.submit(() -> prepareChunks(world, fIndex), null); } - for (WorldServer world : this.worlds) { - if (world.getWorld().getKeepSpawnInMemory()) executor.take(); - this.server.getPluginManager().callEvent(new WorldLoadEvent(world.getWorld())); + if (WorldLoadEvent.getHandlerList().getRegisteredListeners().length == 0) { + for (WorldServer world : this.worlds) { + if (world.getWorld().getKeepSpawnInMemory()) executor.take(); + } + } else { + for (WorldServer world : this.worlds) { + if (world.getWorld().getKeepSpawnInMemory()) executor.take(); + } + for (WorldServer world : this.worlds) { + this.server.getPluginManager().callEvent(new WorldLoadEvent(world.getWorld())); + } } enablePluginsPostWorld();