This repository was archived by the owner on Apr 28, 2020. It is now read-only.
File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ package org .dimdev .rift .listener .client ;
2+
3+ import net .minecraft .client .settings .KeyBinding ;
4+
5+ import java .util .Collection ;
6+
7+ public interface KeyBindingAdder {
8+ Collection <? extends KeyBinding > getKeyBindings ();
9+ }
Original file line number Diff line number Diff line change 1+ package org .dimdev .rift .mixin .hook .client ;
2+
3+ import net .minecraft .client .GameSettings ;
4+ import net .minecraft .client .settings .KeyBinding ;
5+ import org .dimdev .rift .listener .client .KeyBindingAdder ;
6+ import org .dimdev .riftloader .RiftLoader ;
7+ import org .spongepowered .asm .mixin .Mixin ;
8+ import org .spongepowered .asm .mixin .Shadow ;
9+ import org .spongepowered .asm .mixin .injection .At ;
10+ import org .spongepowered .asm .mixin .injection .Inject ;
11+ import org .spongepowered .asm .mixin .injection .callback .CallbackInfo ;
12+
13+ import java .util .ArrayList ;
14+ import java .util .Collections ;
15+ import java .util .List ;
16+
17+ @ Mixin (GameSettings .class )
18+ public class MixinGameSettings {
19+ @ Shadow public KeyBinding [] keyBindings ;
20+
21+ @ Inject (method = "loadOptions" , at = @ At ("HEAD" ))
22+ private void onLoadOptions (CallbackInfo ci ) {
23+ List <KeyBinding > keyBindingList = new ArrayList <>(keyBindings .length );
24+ Collections .addAll (keyBindingList , keyBindings );
25+ for (KeyBindingAdder keyBindingAdder : RiftLoader .instance .getListeners (KeyBindingAdder .class )) {
26+ keyBindingList .addAll (keyBindingAdder .getKeyBindings ());
27+ }
28+ keyBindings = keyBindingList .toArray (new KeyBinding [0 ]);
29+ }
30+ }
Original file line number Diff line number Diff line change 4747 " client.MixinTileEntityRendererDispatcher" ,
4848 " client.MixinRenderManager" ,
4949 " client.MixinEntityPlayerSP" ,
50+ " client.MixinGameSettings" ,
5051 " client.MixinGuiIngame" ,
5152 " client.MixinIntegratedServer"
5253 ]
You can’t perform that action at this time.
0 commit comments