Fix crash when clicking hotkey button; introduced in 83690f4

This commit is contained in:
Jonas Herzig
2020-11-05 15:39:41 +01:00
parent 6fc7b8fb0f
commit e86a583558
2 changed files with 10 additions and 8 deletions

View File

@@ -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<Runnable> 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();
}
}
}

View File

@@ -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<GuiPanel>() {