diff options
8 files changed, 33 insertions, 11 deletions
diff --git a/build.gradle.kts b/build.gradle.kts index 6232699..3cd25bb 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -65,6 +65,7 @@ repositories { val relocated = registerRelocationAttribute("relocate") { relocate("gg.essential", "cc.polyfrost.oneconfig.libs") relocate("me.kbrewster", "cc.polyfrost.oneconfig.libs") + relocate("com.github.benmanes", "cc.polyfrost.oneconfig.libs") } val shadeRelocated: Configuration by configurations.creating { @@ -114,6 +115,9 @@ dependencies { isTransitive = false } + @Suppress("GradlePackageUpdate") + shadeRelocated("com.github.ben-manes.caffeine:caffeine:2.9.3") + // for other mods and universalcraft val kotlinVersion: String by project val coroutinesVersion: String by project diff --git a/src/main/java/cc/polyfrost/oneconfig/events/event/KeyInputEvent.java b/src/main/java/cc/polyfrost/oneconfig/events/event/KeyInputEvent.java new file mode 100644 index 0000000..15056d6 --- /dev/null +++ b/src/main/java/cc/polyfrost/oneconfig/events/event/KeyInputEvent.java @@ -0,0 +1,4 @@ +package cc.polyfrost.oneconfig.events.event; + +public class KeyInputEvent { +} diff --git a/src/main/java/cc/polyfrost/oneconfig/events/event/MouseInputEvent.java b/src/main/java/cc/polyfrost/oneconfig/events/event/MouseInputEvent.java new file mode 100644 index 0000000..e2373ef --- /dev/null +++ b/src/main/java/cc/polyfrost/oneconfig/events/event/MouseInputEvent.java @@ -0,0 +1,4 @@ +package cc.polyfrost.oneconfig.events.event; + +public class MouseInputEvent { +} diff --git a/src/main/java/cc/polyfrost/oneconfig/gui/elements/config/ConfigKeyBind.java b/src/main/java/cc/polyfrost/oneconfig/gui/elements/config/ConfigKeyBind.java index 1aa5d66..aa215a4 100644 --- a/src/main/java/cc/polyfrost/oneconfig/gui/elements/config/ConfigKeyBind.java +++ b/src/main/java/cc/polyfrost/oneconfig/gui/elements/config/ConfigKeyBind.java @@ -23,7 +23,7 @@ public class ConfigKeyBind extends BasicOption { super(field, parent, name, category, subcategory, size); button = new BasicButton(256, 32, "", SVGs.KEYSTROKE, null, BasicButton.ALIGNMENT_JUSTIFIED, ColorPalette.SECONDARY); button.setToggleable(true); - KeyBindHandler.addKeyBind(getKeyBind()); + KeyBindHandler.INSTANCE.addKeyBind(getKeyBind()); } public static ConfigKeyBind create(Field field, Object parent) { diff --git a/src/main/java/cc/polyfrost/oneconfig/internal/OneConfig.java b/src/main/java/cc/polyfrost/oneconfig/internal/OneConfig.java index c3e2750..efc4324 100644 --- a/src/main/java/cc/polyfrost/oneconfig/internal/OneConfig.java +++ b/src/main/java/cc/polyfrost/oneconfig/internal/OneConfig.java @@ -13,7 +13,6 @@ import cc.polyfrost.oneconfig.internal.hud.HudCore; import cc.polyfrost.oneconfig.utils.commands.CommandManager; import cc.polyfrost.oneconfig.utils.gui.GuiUtils; import cc.polyfrost.oneconfig.utils.hypixel.HypixelUtils; -import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.fml.common.DummyModContainer; import net.minecraftforge.fml.common.Loader; import net.minecraftforge.fml.common.ModContainer; @@ -75,7 +74,7 @@ public class OneConfig { CommandManager.INSTANCE.registerCommand(OneConfigCommand.class); EventManager.INSTANCE.register(new HudCore()); EventManager.INSTANCE.register(HypixelUtils.INSTANCE); - MinecraftForge.EVENT_BUS.register(new KeyBindHandler()); + EventManager.INSTANCE.register(KeyBindHandler.INSTANCE); reloadModsList(); initialized = true; } diff --git a/src/main/java/cc/polyfrost/oneconfig/internal/config/core/ConfigCore.java b/src/main/java/cc/polyfrost/oneconfig/internal/config/core/ConfigCore.java index 5a9dd0b..a1084a1 100644 --- a/src/main/java/cc/polyfrost/oneconfig/internal/config/core/ConfigCore.java +++ b/src/main/java/cc/polyfrost/oneconfig/internal/config/core/ConfigCore.java @@ -18,7 +18,7 @@ public class ConfigCore { ArrayList<Mod> data = new ArrayList<>(oneConfigMods); oneConfigMods.clear(); HudCore.huds.clear(); - KeyBindHandler.clearKeyBinds(); + KeyBindHandler.INSTANCE.clearKeyBinds(); for (Mod modData : data) { modData.config.init(modData); } diff --git a/src/main/java/cc/polyfrost/oneconfig/internal/config/core/KeyBindHandler.java b/src/main/java/cc/polyfrost/oneconfig/internal/config/core/KeyBindHandler.java index da82951..6829ae4 100644 --- a/src/main/java/cc/polyfrost/oneconfig/internal/config/core/KeyBindHandler.java +++ b/src/main/java/cc/polyfrost/oneconfig/internal/config/core/KeyBindHandler.java @@ -1,27 +1,28 @@ package cc.polyfrost.oneconfig.internal.config.core; import cc.polyfrost.oneconfig.config.core.OneKeyBind; -import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; -import net.minecraftforge.fml.common.gameevent.InputEvent; +import cc.polyfrost.oneconfig.events.event.KeyInputEvent; +import cc.polyfrost.oneconfig.libs.eventbus.Subscribe; import java.util.ArrayList; public class KeyBindHandler { - private static final ArrayList<OneKeyBind> keyBinds = new ArrayList<>(); + public static final KeyBindHandler INSTANCE = new KeyBindHandler(); + private final ArrayList<OneKeyBind> keyBinds = new ArrayList<>(); - @SubscribeEvent - public void onKeyPressed(InputEvent.KeyInputEvent event) { + @Subscribe + private void onKeyPressed(KeyInputEvent event) { for (OneKeyBind keyBind : keyBinds) { if (keyBind.isActive()) keyBind.run(); } } - public static void addKeyBind(OneKeyBind keyBind) { + public void addKeyBind(OneKeyBind keyBind) { if (keyBind == null) return; keyBinds.add(keyBind); } - public static void clearKeyBinds() { + public void clearKeyBinds() { keyBinds.clear(); } } diff --git a/src/main/java/cc/polyfrost/oneconfig/internal/mixin/MinecraftMixin.java b/src/main/java/cc/polyfrost/oneconfig/internal/mixin/MinecraftMixin.java index 8a28bed..6308fdb 100644 --- a/src/main/java/cc/polyfrost/oneconfig/internal/mixin/MinecraftMixin.java +++ b/src/main/java/cc/polyfrost/oneconfig/internal/mixin/MinecraftMixin.java @@ -74,4 +74,14 @@ public class MinecraftMixin { private void onDeltaTickTimerUpdate(CallbackInfo ci) { EventManager.INSTANCE.post(new TimerUpdateEvent(timer, true)); } + + @Inject(method = "runTick", at = @At(value = "INVOKE", target = "Lnet/minecraftforge/fml/common/FMLCommonHandler;fireKeyInput()V")) + private void onKeyEvent(CallbackInfo ci) { + EventManager.INSTANCE.post(new KeyInputEvent()); + } + + @Inject(method = "runTick", at = @At(value = "INVOKE", target = "Lnet/minecraftforge/fml/common/FMLCommonHandler;fireMouseInput()V")) + private void onMouseEvent(CallbackInfo ci) { + EventManager.INSTANCE.post(new MouseInputEvent()); + } } |