diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java index 2380b5f..1e04d7e 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -378,14 +378,6 @@ { this.usageSnooper.stopSnooper(); } - - logger.info("Saving other data"); - try - { - GlobalExecutors.writingIOExecutor().shutdown(); - GlobalExecutors.writingIOExecutor().awaitTermination(10000, TimeUnit.MILLISECONDS); - } - catch(InterruptedException ignored){} } } diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java index a6d7b18..00c7851 100644 --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java @@ -16,6 +16,7 @@ import java.util.List; import java.util.Random; import java.util.concurrent.Callable; +import java.util.concurrent.TimeUnit; import net.minecraft.command.ICommandSender; import net.minecraft.command.ServerCommand; @@ -49,6 +50,7 @@ import org.ultramine.server.UltramineServerConfig; import org.ultramine.server.WorldsConfig.WorldConfig; import org.ultramine.server.util.BasicTypeParser; +import org.ultramine.server.util.GlobalExecutors; @SideOnly(Side.SERVER) public class DedicatedServer extends MinecraftServer implements IServer @@ -586,6 +588,24 @@ } @Override + public void stopServer() + { + super.stopServer(); + + field_155771_h.info("Saving other data"); + try + { + GlobalExecutors.cachedExecutor().shutdown(); + if(!GlobalExecutors.cachedExecutor().awaitTermination(10000, TimeUnit.MILLISECONDS)) + field_155771_h.info("Global cached executor did not terminated cleanly"); + GlobalExecutors.writingIOExecutor().shutdown(); + if(!GlobalExecutors.writingIOExecutor().awaitTermination(10000, TimeUnit.MILLISECONDS)) + field_155771_h.info("Global writing IO executor did not terminated cleanly"); + } + catch(InterruptedException ignored){} + } + + @Override protected File getDataDirectory() { return ConfigurationHandler.getStorageDir();