aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/me/shedaniel/rei/impl/ClientHelperImpl.java
diff options
context:
space:
mode:
authorshedaniel <daniel@shedaniel.me>2020-04-10 21:25:39 +0800
committershedaniel <daniel@shedaniel.me>2020-04-10 21:25:39 +0800
commit7121053d7b8a54dff0089ad60e3c3082be5572e0 (patch)
treecbf1c79014011b82c9cdd047be828307f9a2302b /src/main/java/me/shedaniel/rei/impl/ClientHelperImpl.java
parentdf107611287fd75dafbef1d0a5c91a8bac2f1e2d (diff)
downloadRoughlyEnoughItems-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.java73
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();
}
- }
+ });
}
}