From e86a583558a39a2b1ec366147255caa445670958 Mon Sep 17 00:00:00 2001 From: Jonas Herzig Date: Thu, 5 Nov 2020 15:39:41 +0100 Subject: [PATCH] Fix crash when clicking hotkey button; introduced in 83690f4 --- .../java/com/replaymod/core/KeyBindingRegistry.java | 11 +++++++++-- src/main/java/com/replaymod/extras/HotkeyButtons.java | 7 +------ 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/replaymod/core/KeyBindingRegistry.java b/src/main/java/com/replaymod/core/KeyBindingRegistry.java index 4d05c1b9..f89e4eec 100644 --- a/src/main/java/com/replaymod/core/KeyBindingRegistry.java +++ b/src/main/java/com/replaymod/core/KeyBindingRegistry.java @@ -2,6 +2,7 @@ package com.replaymod.core; import com.google.common.collect.ArrayListMultimap; import com.google.common.collect.Multimap; +import com.replaymod.core.mixin.KeyBindingAccessor; import de.johni0702.minecraft.gui.utils.EventRegistrations; import com.replaymod.core.versions.MCVer; import net.minecraft.client.options.KeyBinding; @@ -127,7 +128,7 @@ public class KeyBindingRegistry extends EventRegistrations { } } - public void handleKeyBindings() { + private void handleKeyBindings() { for (Binding binding : bindings.values()) { while (binding.keyBinding.wasPressed()) { invokeKeyBindingHandlers(binding, binding.handlers); @@ -169,7 +170,7 @@ public class KeyBindingRegistry extends EventRegistrations { } } - public static class Binding { + public class Binding { public final String name; public final KeyBinding keyBinding; private final List handlers = new ArrayList<>(); @@ -183,5 +184,11 @@ public class KeyBindingRegistry extends EventRegistrations { public String getBoundKey() { return MCVer.getBoundKey(keyBinding); } + + public void trigger() { + KeyBindingAccessor acc = (KeyBindingAccessor) keyBinding; + acc.setPressTime(acc.getPressTime() + 1); + handleKeyBindings(); + } } } diff --git a/src/main/java/com/replaymod/extras/HotkeyButtons.java b/src/main/java/com/replaymod/extras/HotkeyButtons.java index 6e45de5c..49324f50 100644 --- a/src/main/java/com/replaymod/extras/HotkeyButtons.java +++ b/src/main/java/com/replaymod/extras/HotkeyButtons.java @@ -2,7 +2,6 @@ package com.replaymod.extras; import com.replaymod.core.KeyBindingRegistry; import com.replaymod.core.ReplayMod; -import com.replaymod.core.mixin.KeyBindingAccessor; import com.replaymod.replay.events.ReplayOpenedCallback; import com.replaymod.replay.gui.overlay.GuiReplayOverlay; import de.johni0702.minecraft.gui.GuiRenderer; @@ -77,11 +76,7 @@ public class HotkeyButtons extends EventRegistrations implements Extra { setLabel(keyBinding.getBoundKey()); super.draw(renderer, size, renderInfo); } - }.onClick(() -> { - KeyBindingAccessor acc = (KeyBindingAccessor) keyBinding; - acc.setPressTime(acc.getPressTime() + 1); - keyBindingRegistry.handleKeyBindings(); - }); + }.onClick(keyBinding::trigger); panel.addElements(null, new GuiPanel().setSize(150, 20).setLayout(new HorizontalLayout().setSpacing(2)) .addElements(new HorizontalLayout.Data(0.5), new GuiPanel().setLayout(new CustomLayout() {