diff --git a/client/src/main/java/plugin/PluginRepository.java b/client/src/main/java/plugin/PluginRepository.java index bf108db..b04c2ea 100644 --- a/client/src/main/java/plugin/PluginRepository.java +++ b/client/src/main/java/plugin/PluginRepository.java @@ -47,6 +47,7 @@ public class PluginRepository { API.registeredMouseListeners.clear(); API.registeredKeyListeners.clear(); loadedPlugins.clear(); + SaveStorage(); Init(); } @@ -69,13 +70,7 @@ public class PluginRepository { } catch (Exception e) {e.printStackTrace();} } - Runtime.getRuntime().addShutdownHook(new Thread(() -> { - try(FileOutputStream fos = new FileOutputStream(GlobalJsonConfig.instance.pluginsFolder + File.separator + "plsto")) { - ObjectOutputStream oos = new ObjectOutputStream(fos); - oos.writeObject(PluginRepository.pluginStorage); - oos.close(); - } catch (Exception e) {e.printStackTrace();} - })); + Runtime.getRuntime().addShutdownHook(new Thread(PluginRepository::SaveStorage)); try { URL[] classPath = {pluginsDirectory.toURI().toURL()}; @@ -183,4 +178,15 @@ public class PluginRepository { public static void OnLogin() { loadedPlugins.values().forEach((plugin) -> plugin.OnLogin()); } + + public static void SaveStorage() { + if (pluginStorage.containsKey("_keystoreDirty")) { + pluginStorage.remove("_keystoreDirty"); + try(FileOutputStream fos = new FileOutputStream(GlobalJsonConfig.instance.pluginsFolder + File.separator + "plsto")) { + ObjectOutputStream oos = new ObjectOutputStream(fos); + oos.writeObject(PluginRepository.pluginStorage); + oos.close(); + } catch (Exception e) {e.printStackTrace();} + } + } } diff --git a/client/src/main/java/plugin/api/API.java b/client/src/main/java/plugin/api/API.java index 6c903c1..9a25306 100644 --- a/client/src/main/java/plugin/api/API.java +++ b/client/src/main/java/plugin/api/API.java @@ -242,6 +242,7 @@ public class API { public static void StoreData(String key, Object value) { PluginRepository.pluginStorage.put(key, value); + PluginRepository.pluginStorage.put("_keystoreDirty", true); } public static Object GetData(String key) {