aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/me
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/me')
-rw-r--r--src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java15
-rw-r--r--src/main/java/me/shedaniel/rei/client/ClientHelper.java6
-rw-r--r--src/main/java/me/shedaniel/rei/cloth/ClothRegistry.java21
-rw-r--r--src/main/java/me/shedaniel/rei/gui/config/ConfigScreen.java14
4 files changed, 48 insertions, 8 deletions
diff --git a/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java b/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java
index ee6bbeae1..652c2cb29 100644
--- a/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java
+++ b/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java
@@ -5,12 +5,14 @@ import me.shedaniel.rei.api.ItemRegistry;
import me.shedaniel.rei.api.PluginDisabler;
import me.shedaniel.rei.api.REIPlugin;
import me.shedaniel.rei.api.RecipeHelper;
-import me.shedaniel.rei.client.*;
+import me.shedaniel.rei.client.ConfigManager;
+import me.shedaniel.rei.client.ItemRegistryImpl;
+import me.shedaniel.rei.client.PluginDisablerImpl;
+import me.shedaniel.rei.client.RecipeHelperImpl;
import me.shedaniel.rei.gui.widget.ItemListOverlay;
import me.shedaniel.rei.plugin.DefaultPlugin;
import net.fabricmc.api.ClientModInitializer;
import net.fabricmc.api.ModInitializer;
-import net.fabricmc.fabric.api.event.client.ClientTickCallback;
import net.fabricmc.fabric.api.network.ServerSidePacketRegistry;
import net.fabricmc.loader.api.FabricLoader;
import net.minecraft.client.resource.language.I18n;
@@ -22,6 +24,7 @@ import net.minecraft.util.Identifier;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
+import java.lang.reflect.InvocationTargetException;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
@@ -81,6 +84,14 @@ public class RoughlyEnoughItemsCore implements ClientModInitializer, ModInitiali
RoughlyEnoughItemsCore.LOGGER.warn("REI: Plugin Loader is not loaded! Please consider installing https://minecraft.curseforge.com/projects/pluginloader for REI plugin compatibility!");
registerPlugin(new Identifier("roughlyenoughitems", "default_plugin"), new DefaultPlugin());
}
+
+ if (FabricLoader.getInstance().isModLoaded("cloth")) {
+ try {
+ Class.forName("me.shedaniel.rei.cloth.ClothRegistry").getDeclaredMethod("register").invoke(null);
+ } catch (IllegalAccessException | InvocationTargetException | ClassNotFoundException | NoSuchMethodException e) {
+ e.printStackTrace();
+ }
+ }
}
@Override
diff --git a/src/main/java/me/shedaniel/rei/client/ClientHelper.java b/src/main/java/me/shedaniel/rei/client/ClientHelper.java
index 252d41a81..84a3706f3 100644
--- a/src/main/java/me/shedaniel/rei/client/ClientHelper.java
+++ b/src/main/java/me/shedaniel/rei/client/ClientHelper.java
@@ -120,8 +120,12 @@ public class ClientHelper implements ClientModInitializer {
return map.keySet().size() > 0;
}
+ public static void openConfigWindow(Screen parent, boolean initOverlay) {
+ MinecraftClient.getInstance().openScreen(new ConfigScreen(parent, initOverlay));
+ }
+
public static void openConfigWindow(Screen parent) {
- MinecraftClient.getInstance().openScreen(new ConfigScreen(parent));
+ openConfigWindow(parent, true);
}
public static List<ItemStack> getInventoryItemsTypes() {
diff --git a/src/main/java/me/shedaniel/rei/cloth/ClothRegistry.java b/src/main/java/me/shedaniel/rei/cloth/ClothRegistry.java
new file mode 100644
index 000000000..a644046b0
--- /dev/null
+++ b/src/main/java/me/shedaniel/rei/cloth/ClothRegistry.java
@@ -0,0 +1,21 @@
+package me.shedaniel.rei.cloth;
+
+import me.shedaniel.cloth.api.EventPriority;
+import me.shedaniel.cloth.hooks.ClothModMenuHooks;
+import me.shedaniel.rei.client.ClientHelper;
+import net.minecraft.client.MinecraftClient;
+
+public class ClothRegistry {
+
+ public static void register() {
+ Runnable configRunnable = () -> ClientHelper.openConfigWindow(MinecraftClient.getInstance().currentScreen, false);
+ ClothModMenuHooks.CONFIG_BUTTON_EVENT.registerListener(event -> {
+ if (event.getModContainer() != null && event.getModContainer().getMetadata().getId().equalsIgnoreCase("roughlyenoughitems")) {
+ event.setEnabled(true);
+ event.setClickedRunnable(configRunnable);
+ event.setCancelled(true);
+ }
+ }, EventPriority.LOWEST);
+ }
+
+}
diff --git a/src/main/java/me/shedaniel/rei/gui/config/ConfigScreen.java b/src/main/java/me/shedaniel/rei/gui/config/ConfigScreen.java
index 32624584a..5e1e7cc1f 100644
--- a/src/main/java/me/shedaniel/rei/gui/config/ConfigScreen.java
+++ b/src/main/java/me/shedaniel/rei/gui/config/ConfigScreen.java
@@ -3,8 +3,8 @@ package me.shedaniel.rei.gui.config;
import com.google.common.collect.Lists;
import me.shedaniel.rei.RoughlyEnoughItemsCore;
import me.shedaniel.rei.client.ClientHelper;
-import me.shedaniel.rei.client.ScreenHelper;
import me.shedaniel.rei.client.ItemListOrdering;
+import me.shedaniel.rei.client.ScreenHelper;
import me.shedaniel.rei.gui.widget.QueuedTooltip;
import me.shedaniel.rei.gui.widget.TextFieldWidget;
import net.minecraft.client.MinecraftClient;
@@ -24,10 +24,12 @@ public class ConfigScreen extends Screen {
private final List<QueuedTooltip> tooltipList;
private Screen parent;
+ private boolean initOverlay;
private ConfigEntryListWidget entryListWidget;
- public ConfigScreen(Screen parent) {
+ public ConfigScreen(Screen parent, boolean initOverlay) {
this.parent = parent;
+ this.initOverlay = initOverlay;
this.tooltipList = Lists.newArrayList();
}
@@ -35,7 +37,8 @@ public class ConfigScreen extends Screen {
public boolean keyPressed(int int_1, int int_2, int int_3) {
if (int_1 == 256 && this.doesEscapeKeyClose()) {
MinecraftClient.getInstance().openScreen(parent);
- ScreenHelper.getLastOverlay().onInitialized();
+ if (initOverlay)
+ ScreenHelper.getLastOverlay().onInitialized();
return true;
} else {
return super.keyPressed(int_1, int_2, int_3);
@@ -220,7 +223,7 @@ public class ConfigScreen extends Screen {
}
return true;
}
-
+
@Override
public String getText() {
return getTrueFalseText(RoughlyEnoughItemsCore.getConfigManager().getConfig().disableRecipeBook);
@@ -340,7 +343,8 @@ public class ConfigScreen extends Screen {
e.printStackTrace();
}
ConfigScreen.this.client.openScreen(parent);
- ScreenHelper.getLastOverlay().onInitialized();
+ if (initOverlay)
+ ScreenHelper.getLastOverlay().onInitialized();
}
});
super.onInitialized();