diff options
| author | shedaniel <daniel@shedaniel.me> | 2020-04-10 21:25:39 +0800 |
|---|---|---|
| committer | shedaniel <daniel@shedaniel.me> | 2020-04-10 21:25:39 +0800 |
| commit | 7121053d7b8a54dff0089ad60e3c3082be5572e0 (patch) | |
| tree | cbf1c79014011b82c9cdd047be828307f9a2302b /src/main/java/me/shedaniel/rei/impl/ClientHelperImpl.java | |
| parent | df107611287fd75dafbef1d0a5c91a8bac2f1e2d (diff) | |
| download | RoughlyEnoughItems-7121053d7b8a54dff0089ad60e3c3082be5572e0.tar.gz RoughlyEnoughItems-7121053d7b8a54dff0089ad60e3c3082be5572e0.tar.bz2 RoughlyEnoughItems-7121053d7b8a54dff0089ad60e3c3082be5572e0.zip | |
Error Screen when Fabric API is not installed
Signed-off-by: shedaniel <daniel@shedaniel.me>
Diffstat (limited to 'src/main/java/me/shedaniel/rei/impl/ClientHelperImpl.java')
| -rw-r--r-- | src/main/java/me/shedaniel/rei/impl/ClientHelperImpl.java | 73 |
1 files changed, 41 insertions, 32 deletions
diff --git a/src/main/java/me/shedaniel/rei/impl/ClientHelperImpl.java b/src/main/java/me/shedaniel/rei/impl/ClientHelperImpl.java index 5513dd179..13af0c0a0 100644 --- a/src/main/java/me/shedaniel/rei/impl/ClientHelperImpl.java +++ b/src/main/java/me/shedaniel/rei/impl/ClientHelperImpl.java @@ -28,8 +28,10 @@ import io.netty.buffer.Unpooled; import me.sargunvohra.mcmods.autoconfig1u.annotation.ConfigEntry; import me.shedaniel.clothconfig2.api.FakeModifierKeyCodeAdder; import me.shedaniel.clothconfig2.api.ModifierKeyCode; +import me.shedaniel.math.api.Executor; import me.shedaniel.rei.RoughlyEnoughItemsCore; import me.shedaniel.rei.RoughlyEnoughItemsNetwork; +import me.shedaniel.rei.RoughlyEnoughItemsState; import me.shedaniel.rei.api.*; import me.shedaniel.rei.gui.PreRecipeViewingScreen; import me.shedaniel.rei.gui.RecipeScreen; @@ -285,41 +287,48 @@ public class ClientHelperImpl implements ClientHelper, ClientModInitializer { @Override public void registerFabricKeyBinds() { - String category = "key.rei.category"; - if (!FabricLoader.getInstance().isModLoaded("amecs")) { - try { - ConfigObjectImpl.General general = ConfigObject.getInstance().getGeneral(); - ConfigObjectImpl.General instance = general.getClass().getConstructor().newInstance(); - for (Field declaredField : general.getClass().getDeclaredFields()) { - if (declaredField.getType() == ModifierKeyCode.class && !declaredField.isAnnotationPresent(ConfigEntry.Gui.Excluded.class)) { - declaredField.setAccessible(true); - FakeModifierKeyCodeAdder.INSTANCE.registerModifierKeyCode(category, "config.roughlyenoughitems." + declaredField.getName(), () -> { - try { - ModifierKeyCode code = (ModifierKeyCode) declaredField.get(general); - return code == null ? ModifierKeyCode.unknown() : code; - } catch (Exception e) { - throw new RuntimeException(e); - } - }, () -> { - try { - return (ModifierKeyCode) declaredField.get(instance); - } catch (IllegalAccessException e) { - throw new RuntimeException(e); - } - }, keyCode -> { - try { - declaredField.set(general, keyCode); - } catch (IllegalAccessException e) { - throw new RuntimeException(e); - } - }); + boolean keybindingsLoaded = FabricLoader.getInstance().isModLoaded("fabric-keybindings-v0"); + if (!keybindingsLoaded) { + RoughlyEnoughItemsState.failedToLoad("Fabric API is not installed!", "https://www.curseforge.com/minecraft/mc-mods/fabric-api/files/all"); + return; + } + Executor.run(() -> () -> { + String category = "key.rei.category"; + if (!FabricLoader.getInstance().isModLoaded("amecs")) { + try { + ConfigObjectImpl.General general = ConfigObject.getInstance().getGeneral(); + ConfigObjectImpl.General instance = general.getClass().getConstructor().newInstance(); + for (Field declaredField : general.getClass().getDeclaredFields()) { + if (declaredField.getType() == ModifierKeyCode.class && !declaredField.isAnnotationPresent(ConfigEntry.Gui.Excluded.class)) { + declaredField.setAccessible(true); + FakeModifierKeyCodeAdder.INSTANCE.registerModifierKeyCode(category, "config.roughlyenoughitems." + declaredField.getName(), () -> { + try { + ModifierKeyCode code = (ModifierKeyCode) declaredField.get(general); + return code == null ? ModifierKeyCode.unknown() : code; + } catch (Exception e) { + throw new RuntimeException(e); + } + }, () -> { + try { + return (ModifierKeyCode) declaredField.get(instance); + } catch (IllegalAccessException e) { + throw new RuntimeException(e); + } + }, keyCode -> { + try { + declaredField.set(general, keyCode); + } catch (IllegalAccessException e) { + throw new RuntimeException(e); + } + }); + } } + KeyBindingRegistryImpl.INSTANCE.addCategory(category); + } catch (Throwable throwable) { + throwable.printStackTrace(); } - KeyBindingRegistryImpl.INSTANCE.addCategory(category); - } catch (Throwable throwable) { - throwable.printStackTrace(); } - } + }); } } |
