From 1641f2767ff10176a97e02a4ad2512ebecedae68 Mon Sep 17 00:00:00 2001 From: Sotr Date: Sat, 28 Jul 2018 02:57:20 +0800 Subject: [PATCH] Done world load a bit more safer --- .../server/mixin/core/MixinMinecraftServer.java | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) 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();