12345678910111213141516171819202122232425262728293031323334 |
- package chylex.bettercontrols.mixin;
- import chylex.bettercontrols.BetterControlsMod;
- import chylex.bettercontrols.input.KeyBindingWithModifier;
- import net.minecraft.client.option.GameOptions;
- import net.minecraft.client.option.KeyBinding;
- import org.apache.commons.lang3.ArrayUtils;
- import org.spongepowered.asm.mixin.Final;
- import org.spongepowered.asm.mixin.Mixin;
- import org.spongepowered.asm.mixin.Mutable;
- import org.spongepowered.asm.mixin.Shadow;
- import org.spongepowered.asm.mixin.injection.At;
- import org.spongepowered.asm.mixin.injection.Inject;
- import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
- @Mixin(GameOptions.class)
- public abstract class HookLoadGameOptions {
- private boolean hasLoaded = false;
-
- @Mutable
- @Final
- @Shadow
- public KeyBinding[] keysAll;
-
- @Inject(method = "load()V", at = @At("HEAD"))
- private void load(final CallbackInfo info) {
- if (hasLoaded) {
- return;
- }
-
- hasLoaded = true;
- keysAll = ArrayUtils.addAll(keysAll, BetterControlsMod.config.getAllKeyBindings());
- AccessKeyBindingFields.getCategoryOrderMap().put(KeyBindingWithModifier.CATEGORY, Integer.valueOf(Integer.MAX_VALUE));
- }
- }
|