Fix crash when clicking hotkey button; introduced in 83690f4
This commit is contained in:
@@ -2,6 +2,7 @@ package com.replaymod.core;
|
|||||||
|
|
||||||
import com.google.common.collect.ArrayListMultimap;
|
import com.google.common.collect.ArrayListMultimap;
|
||||||
import com.google.common.collect.Multimap;
|
import com.google.common.collect.Multimap;
|
||||||
|
import com.replaymod.core.mixin.KeyBindingAccessor;
|
||||||
import de.johni0702.minecraft.gui.utils.EventRegistrations;
|
import de.johni0702.minecraft.gui.utils.EventRegistrations;
|
||||||
import com.replaymod.core.versions.MCVer;
|
import com.replaymod.core.versions.MCVer;
|
||||||
import net.minecraft.client.options.KeyBinding;
|
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()) {
|
for (Binding binding : bindings.values()) {
|
||||||
while (binding.keyBinding.wasPressed()) {
|
while (binding.keyBinding.wasPressed()) {
|
||||||
invokeKeyBindingHandlers(binding, binding.handlers);
|
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 String name;
|
||||||
public final KeyBinding keyBinding;
|
public final KeyBinding keyBinding;
|
||||||
private final List<Runnable> handlers = new ArrayList<>();
|
private final List<Runnable> handlers = new ArrayList<>();
|
||||||
@@ -183,5 +184,11 @@ public class KeyBindingRegistry extends EventRegistrations {
|
|||||||
public String getBoundKey() {
|
public String getBoundKey() {
|
||||||
return MCVer.getBoundKey(keyBinding);
|
return MCVer.getBoundKey(keyBinding);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void trigger() {
|
||||||
|
KeyBindingAccessor acc = (KeyBindingAccessor) keyBinding;
|
||||||
|
acc.setPressTime(acc.getPressTime() + 1);
|
||||||
|
handleKeyBindings();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,7 +2,6 @@ package com.replaymod.extras;
|
|||||||
|
|
||||||
import com.replaymod.core.KeyBindingRegistry;
|
import com.replaymod.core.KeyBindingRegistry;
|
||||||
import com.replaymod.core.ReplayMod;
|
import com.replaymod.core.ReplayMod;
|
||||||
import com.replaymod.core.mixin.KeyBindingAccessor;
|
|
||||||
import com.replaymod.replay.events.ReplayOpenedCallback;
|
import com.replaymod.replay.events.ReplayOpenedCallback;
|
||||||
import com.replaymod.replay.gui.overlay.GuiReplayOverlay;
|
import com.replaymod.replay.gui.overlay.GuiReplayOverlay;
|
||||||
import de.johni0702.minecraft.gui.GuiRenderer;
|
import de.johni0702.minecraft.gui.GuiRenderer;
|
||||||
@@ -77,11 +76,7 @@ public class HotkeyButtons extends EventRegistrations implements Extra {
|
|||||||
setLabel(keyBinding.getBoundKey());
|
setLabel(keyBinding.getBoundKey());
|
||||||
super.draw(renderer, size, renderInfo);
|
super.draw(renderer, size, renderInfo);
|
||||||
}
|
}
|
||||||
}.onClick(() -> {
|
}.onClick(keyBinding::trigger);
|
||||||
KeyBindingAccessor acc = (KeyBindingAccessor) keyBinding;
|
|
||||||
acc.setPressTime(acc.getPressTime() + 1);
|
|
||||||
keyBindingRegistry.handleKeyBindings();
|
|
||||||
});
|
|
||||||
panel.addElements(null, new GuiPanel().setSize(150, 20).setLayout(new HorizontalLayout().setSpacing(2))
|
panel.addElements(null, new GuiPanel().setSize(150, 20).setLayout(new HorizontalLayout().setSpacing(2))
|
||||||
.addElements(new HorizontalLayout.Data(0.5),
|
.addElements(new HorizontalLayout.Data(0.5),
|
||||||
new GuiPanel().setLayout(new CustomLayout<GuiPanel>() {
|
new GuiPanel().setLayout(new CustomLayout<GuiPanel>() {
|
||||||
|
|||||||
Reference in New Issue
Block a user