diff --git a/README.md b/README.md index c29f84eac..178bd2d18 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Zote Core Loader -__Zote Core__ — серверное ядро, основанное на Inner Core 1.26.200, созданное для создания уникального геймплея с модами. +__Zote Core__ — серверное ядро, основанное на Inner Core 1.16.200, созданное для создания уникального геймплея с модами. Основой серверного ядра послужил [Nukkit-MOT](https://github.com/MemoriesOfTime/Nukkit-MOT), его можно легко обновить, заменив соответствующую библиотеку. @@ -53,6 +53,12 @@ allow-unsafe-scripting: on # Режим разработчика позволяет получать дополнительную информацию # о работе ядра, а также профайлинг методов. developer-mode: off + +# Период сохранения данных inner core +auto-save-period: 60 + +# Обновлять вместе с сохранениями inner core сохранения мира +auto-save-world: on ``` ## Лицензия diff --git a/iclibs/Nukkit-MOT-SNAPSHOT.jar b/iclibs/Nukkit-MOT-SNAPSHOT.jar index 7090abfa6..4923dd3e4 100644 Binary files a/iclibs/Nukkit-MOT-SNAPSHOT.jar and b/iclibs/Nukkit-MOT-SNAPSHOT.jar differ diff --git a/src/main/java/com/reider745/InnerCoreServer.java b/src/main/java/com/reider745/InnerCoreServer.java index 2d3f7722f..1988bd72b 100644 --- a/src/main/java/com/reider745/InnerCoreServer.java +++ b/src/main/java/com/reider745/InnerCoreServer.java @@ -22,6 +22,7 @@ import com.zhekasmirnov.innercore.api.NativeCallback; import com.zhekasmirnov.innercore.api.NativeFurnaceRegistry; import com.zhekasmirnov.innercore.api.runtime.LoadingStage; +import com.zhekasmirnov.innercore.api.runtime.saver.world.WorldDataSaverHandler; import com.zhekasmirnov.innercore.mod.build.ExtractionHelper; import com.zhekasmirnov.innercore.modpack.ModPack; import com.zhekasmirnov.innercore.modpack.ModPackContext; @@ -281,6 +282,7 @@ public void preload(Server server) throws Exception { }); NativeCallback.onLocalServerStarted(); + WorldDataSaverHandler.getInstance().fetchParamsFromConfig(); Logger.info("INNERCORE", "preloaded in " + (System.currentTimeMillis() - startupMillis) + "ms"); } @@ -418,6 +420,14 @@ public static boolean isDeveloperMode() { return singleton.getPropertyBoolean("developer-mode", false); } + public static int getAutoSavePeriod() { + return singleton.getPropertyInt("auto-save-period", 60); + } + + public static boolean canAutoSaveWorld() { + return singleton.getPropertyBoolean("auto-save-world", true); + } + public static MethodHandling getUnsupportedMethodHandling() { try { return MethodHandling diff --git a/src/main/java/com/zhekasmirnov/innercore/api/runtime/saver/world/WorldDataSaverHandler.java b/src/main/java/com/zhekasmirnov/innercore/api/runtime/saver/world/WorldDataSaverHandler.java index e1661dfcb..0f93f1cad 100644 --- a/src/main/java/com/zhekasmirnov/innercore/api/runtime/saver/world/WorldDataSaverHandler.java +++ b/src/main/java/com/zhekasmirnov/innercore/api/runtime/saver/world/WorldDataSaverHandler.java @@ -1,5 +1,6 @@ package com.zhekasmirnov.innercore.api.runtime.saver.world; +import com.reider745.InnerCoreServer; import com.zhekasmirnov.apparatus.adapter.innercore.EngineConfig; import com.zhekasmirnov.horizon.runtime.logger.Logger; import com.zhekasmirnov.innercore.api.NativeAPI; @@ -25,10 +26,13 @@ public static WorldDataSaverHandler getInstance() { private long previousAutoSave = 0; public void fetchParamsFromConfig() { + final int auto_save_period = InnerCoreServer.getAutoSavePeriod(); + setParams( - EngineConfig.getBoolean("background.auto_save", true), - EngineConfig.getBoolean("background.auto_save_world", true), - EngineConfig.getInt("background.auto_save_period", 30) * 1000); + auto_save_period > 10, + InnerCoreServer.canAutoSaveWorld(), + auto_save_period * 1000 + ); } public void setParams(boolean autoSaveEnabled, boolean autoSaveMinecraftWorld, int autoSaveInterval) {