diff options
| author | Unknown <shekwancheung0528@gmail.com> | 2018-12-22 13:17:31 +0800 |
|---|---|---|
| committer | Unknown <shekwancheung0528@gmail.com> | 2018-12-22 13:17:31 +0800 |
| commit | d1e292ca25b7987bc4ddf334205238d75f7f29b7 (patch) | |
| tree | 3c2911284faccd10f97e3aa307719ec12efd4b53 /src/main/java/me/shedaniel/mixins/SettingsMixin.java | |
| parent | 7bcd4d2e868210a842ad7e4e4fc34240de40a121 (diff) | |
| download | RoughlyEnoughItems-d1e292ca25b7987bc4ddf334205238d75f7f29b7.tar.gz RoughlyEnoughItems-d1e292ca25b7987bc4ddf334205238d75f7f29b7.tar.bz2 RoughlyEnoughItems-d1e292ca25b7987bc4ddf334205238d75f7f29b7.zip | |
from aei but like jei now
Diffstat (limited to 'src/main/java/me/shedaniel/mixins/SettingsMixin.java')
| -rwxr-xr-x | src/main/java/me/shedaniel/mixins/SettingsMixin.java | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/src/main/java/me/shedaniel/mixins/SettingsMixin.java b/src/main/java/me/shedaniel/mixins/SettingsMixin.java new file mode 100755 index 000000000..fa4dee435 --- /dev/null +++ b/src/main/java/me/shedaniel/mixins/SettingsMixin.java @@ -0,0 +1,44 @@ +package me.shedaniel.mixins; + +import me.shedaniel.listenerdefinitions.PreLoadOptions; +import net.minecraft.client.GameSettings; +import net.minecraft.client.settings.KeyBinding; +import org.dimdev.riftloader.RiftLoader; +import org.spongepowered.asm.mixin.Mixin; +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; + +import java.util.ArrayList; +import java.util.List; + +/** + * Created by James on 8/7/2018. + */ + +@Mixin(GameSettings.class) +public class SettingsMixin { + @Shadow + public KeyBinding[] keyBindings; + + public SettingsMixin() { + System.out.println("loaded"); + } + + @Inject(method = "loadOptions", at = @At("HEAD")) + public void beforeLoadOptions(CallbackInfo ci) { + + RiftLoader.instance.getListeners(PreLoadOptions.class).stream().forEach(f -> processNewBindings(f.loadOptions())); + } + + private void processNewBindings(List<KeyBinding> newBindings) { + List<KeyBinding> toAdd = new ArrayList<>(); + toAdd.addAll(newBindings); + for(KeyBinding keyBinding : keyBindings) { + toAdd.add(keyBinding); + } + keyBindings = (KeyBinding[]) toAdd.toArray(new KeyBinding[0]); + } + +} |
