diff --git a/common/src/main/java/com/github/epsilon/Epsilon.java b/common/src/main/java/com/github/epsilon/Epsilon.java index 2b78ae4e..2df83fbf 100644 --- a/common/src/main/java/com/github/epsilon/Epsilon.java +++ b/common/src/main/java/com/github/epsilon/Epsilon.java @@ -1,6 +1,5 @@ package com.github.epsilon; -import com.github.epsilon.assets.i18n.I18NFileGenerator; import com.github.epsilon.events.bus.EventBus; import com.github.epsilon.managers.AddonManager; import com.github.epsilon.managers.ConfigManager; @@ -25,19 +24,14 @@ public static void init() { EventBus.INSTANCE.registerLambdaFactory(Epsilon.class.getPackageName(), (lookupInMethod, klass) -> (MethodHandles.Lookup) lookupInMethod.invoke(null, klass, MethodHandles.lookup())); - // 初始化 Managers ModuleManager.INSTANCE.initModules(); AddonManager.INSTANCE.setupAddons(); ConfigManager.INSTANCE.initConfig(); HealthManager.INSTANCE.getClass(); - // 生成空的 i18n 文件 - I18NFileGenerator.generate("epsilon-empty-i18n.json"); - - // 添加一个退出游戏时候的钩子 Runtime.getRuntime().addShutdownHook(new Thread(() -> { ConfigManager.INSTANCE.saveNow(); - Epsilon.LOGGER.info("お兄ちゃん、私はあなたを一番愛しています~"); + Epsilon.LOGGER.info("Epsilon saved config on shutdown"); })); Epsilon.LOGGER.info("Epsilon has loaded successfully, Meow~"); diff --git a/common/src/main/java/com/github/epsilon/assets/config/LegacyConfigMigrator.java b/common/src/main/java/com/github/epsilon/assets/config/LegacyConfigMigrator.java index 64489026..90e529c0 100644 --- a/common/src/main/java/com/github/epsilon/assets/config/LegacyConfigMigrator.java +++ b/common/src/main/java/com/github/epsilon/assets/config/LegacyConfigMigrator.java @@ -31,7 +31,8 @@ public LegacyConfigMigrator(Path legacyRootDir, Path targetConfigDir, Gson gson) * {@code {targetConfigDir}/{addonId}/{moduleName}.json} */ public Path getModuleFile(Module module) { - return targetConfigDir.resolve("modules").resolve(module.getName() + ".json"); + String addonId = module.getAddonId() != null ? module.getAddonId() : "unknown"; + return targetConfigDir.resolve(addonId).resolve(module.getName() + ".json"); } public void migrateIfNeeded(List modules) { diff --git a/common/src/main/java/com/github/epsilon/events/bus/listeners/LambdaListener.java b/common/src/main/java/com/github/epsilon/events/bus/listeners/LambdaListener.java index ebb69148..f9e68ab7 100644 --- a/common/src/main/java/com/github/epsilon/events/bus/listeners/LambdaListener.java +++ b/common/src/main/java/com/github/epsilon/events/bus/listeners/LambdaListener.java @@ -74,7 +74,7 @@ public LambdaListener(Factory factory, Class klass, Object object, Method met if (isStatic) this.executor = (Consumer) lambdaFactory.invoke(); else this.executor = (Consumer) lambdaFactory.invoke(object); } catch (Throwable throwable) { - throwable.printStackTrace(); + throw new IllegalStateException("Failed to create event listener for " + klass.getName() + "#" + method.getName(), throwable); } } diff --git a/common/src/main/java/com/github/epsilon/modules/impl/combat/AutoHitCrystal.java b/common/src/main/java/com/github/epsilon/modules/impl/combat/AutoHitCrystal.java index b1020247..835c42a3 100644 --- a/common/src/main/java/com/github/epsilon/modules/impl/combat/AutoHitCrystal.java +++ b/common/src/main/java/com/github/epsilon/modules/impl/combat/AutoHitCrystal.java @@ -95,6 +95,11 @@ protected void onEnable() { resetState(); } + @Override + protected void onDisable() { + renderBoxes.clear(); + } + @EventHandler private void onTick(TickEvent.Pre event) { if (nullCheck()) return; diff --git a/common/src/main/java/com/github/epsilon/modules/impl/combat/SafeAnchor.java b/common/src/main/java/com/github/epsilon/modules/impl/combat/SafeAnchor.java index 0ec565ce..a11e019d 100644 --- a/common/src/main/java/com/github/epsilon/modules/impl/combat/SafeAnchor.java +++ b/common/src/main/java/com/github/epsilon/modules/impl/combat/SafeAnchor.java @@ -141,6 +141,7 @@ protected void onEnable() { @Override protected void onDisable() { ownAnchors.clear(); + renderBoxes.clear(); } @EventHandler diff --git a/common/src/main/java/com/github/epsilon/modules/impl/movement/Scaffold.java b/common/src/main/java/com/github/epsilon/modules/impl/movement/Scaffold.java index 79ad7831..22b87120 100644 --- a/common/src/main/java/com/github/epsilon/modules/impl/movement/Scaffold.java +++ b/common/src/main/java/com/github/epsilon/modules/impl/movement/Scaffold.java @@ -127,6 +127,7 @@ protected void onDisable() { if (shouldSwapBack) { InvUtils.swapBack(); } + renderBoxes.clear(); } @EventHandler