aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUnknown <shekwancheung0528@gmail.com>2019-06-21 20:59:21 +0800
committerUnknown <shekwancheung0528@gmail.com>2019-06-21 20:59:21 +0800
commit47abce72950ce51c8e37cedb7462096fa3a55161 (patch)
tree31b19aba19a00d63bd9febf67be6f86531061b25
parente4962523646054eaa425fdb616490e09e13d0ba9 (diff)
downloadRoughlyEnoughItems-47abce72950ce51c8e37cedb7462096fa3a55161.tar.gz
RoughlyEnoughItems-47abce72950ce51c8e37cedb7462096fa3a55161.tar.bz2
RoughlyEnoughItems-47abce72950ce51c8e37cedb7462096fa3a55161.zip
Try to fix mods
Fix 109
-rw-r--r--src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java5
-rw-r--r--src/main/java/me/shedaniel/rei/gui/widget/ItemListOverlay.java19
-rw-r--r--src/main/java/me/shedaniel/rei/listeners/RecipeBookButtonWidgetHooks.java12
-rw-r--r--src/main/java/me/shedaniel/rei/plugin/DefaultPlugin.java1
-rw-r--r--src/main/resources/listeners.roughlyenoughitems.mixins.json3
5 files changed, 26 insertions, 14 deletions
diff --git a/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java b/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java
index e8d8b5c6b..f9f689033 100644
--- a/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java
+++ b/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java
@@ -15,6 +15,7 @@ import me.shedaniel.rei.api.*;
import me.shedaniel.rei.client.*;
import me.shedaniel.rei.gui.ContainerScreenOverlay;
import me.shedaniel.rei.gui.widget.ItemListOverlay;
+import me.shedaniel.rei.listeners.RecipeBookButtonWidgetHooks;
import me.shedaniel.rei.listeners.RecipeBookGuiHooks;
import net.fabricmc.api.ClientModInitializer;
import net.fabricmc.fabric.api.network.ClientSidePacketRegistry;
@@ -209,6 +210,7 @@ public class RoughlyEnoughItemsCore implements ClientModInitializer {
}
private void registerClothEvents() {
+ final Identifier recipeButtonTex = new Identifier("textures/gui/recipe_button.png");
ClothClientHooks.SYNC_RECIPES.register((minecraftClient, recipeManager, synchronizeRecipesS2CPacket) -> {
if (RoughlyEnoughItemsCore.getConfigManager().getConfig().registerRecipesInAnotherThread)
CompletableFuture.runAsync(() -> ((RecipeHelperImpl) RoughlyEnoughItemsCore.getRecipeHelper()).recipesLoaded(recipeManager), SYNC_RECIPES);
@@ -217,7 +219,8 @@ public class RoughlyEnoughItemsCore implements ClientModInitializer {
});
ClothClientHooks.SCREEN_ADD_BUTTON.register((minecraftClient, screen, abstractButtonWidget) -> {
if (RoughlyEnoughItemsCore.getConfigManager().getConfig().disableRecipeBook && screen instanceof AbstractContainerScreen && abstractButtonWidget instanceof RecipeBookButtonWidget)
- return ActionResult.FAIL;
+ if (((RecipeBookButtonWidgetHooks) abstractButtonWidget).rei_getTexture().equals(recipeButtonTex))
+ return ActionResult.FAIL;
return ActionResult.PASS;
});
ClothClientHooks.SCREEN_INIT_POST.register((minecraftClient, screen, screenHooks) -> {
diff --git a/src/main/java/me/shedaniel/rei/gui/widget/ItemListOverlay.java b/src/main/java/me/shedaniel/rei/gui/widget/ItemListOverlay.java
index db0da188f..1c5f8017d 100644
--- a/src/main/java/me/shedaniel/rei/gui/widget/ItemListOverlay.java
+++ b/src/main/java/me/shedaniel/rei/gui/widget/ItemListOverlay.java
@@ -39,7 +39,6 @@ public class ItemListOverlay extends Widget {
private static final String SPACE = " ", EMPTY = "";
private static final Comparator<ItemStack> ASCENDING_COMPARATOR;
- private static final Comparator<ItemStack> DECENDING_COMPARATOR;
private static List<Item> searchBlacklisted = Lists.newArrayList();
static {
@@ -52,10 +51,9 @@ public class ItemListOverlay extends Widget {
}
return 0;
};
- DECENDING_COMPARATOR = ASCENDING_COMPARATOR.reversed();
}
- private final List<ItemStack> currentDisplayed;
+ private List<ItemStack> currentDisplayed;
private final List<SearchArgument[]> lastSearchArgument;
private List<Widget> widgets;
private int width, height, page;
@@ -163,10 +161,8 @@ public class ItemListOverlay extends Widget {
this.page = page;
this.widgets = Lists.newLinkedList();
calculateListSize(rectangle);
- if (currentDisplayed.isEmpty() || processSearchTerm) {
- currentDisplayed.clear();
- currentDisplayed.addAll(processSearchTerm(searchTerm, RoughlyEnoughItemsCore.getItemRegisterer().getItemList(), ScreenHelper.inventoryStacks));
- }
+ if (currentDisplayed.isEmpty() || processSearchTerm)
+ currentDisplayed = processSearchTerm(searchTerm, RoughlyEnoughItemsCore.getItemRegisterer().getItemList(), new ArrayList<>(ScreenHelper.inventoryStacks));
int startX = (int) rectangle.getCenterX() - width * 9;
int startY = (int) rectangle.getCenterY() - height * 9;
this.listArea = new Rectangle((int) startX, (int) startY, width * 18, height * 18);
@@ -259,12 +255,11 @@ public class ItemListOverlay extends Widget {
private List<ItemStack> processSearchTerm(String searchTerm, List<ItemStack> ol, List<ItemStack> inventoryItems) {
lastSearchArgument.clear();
- List<ItemStack> os = ol;
+ List<ItemStack> os = new LinkedList<>(ol);
if (RoughlyEnoughItemsCore.getConfigManager().getConfig().itemListOrdering != ItemListOrdering.registry)
- if (RoughlyEnoughItemsCore.getConfigManager().getConfig().isAscending)
- os = ol.stream().sorted(ASCENDING_COMPARATOR).collect(Collectors.toList());
- else
- os = ol.stream().sorted(DECENDING_COMPARATOR).collect(Collectors.toList());
+ os = ol.stream().sorted(ASCENDING_COMPARATOR).collect(Collectors.toList());
+ if (!RoughlyEnoughItemsCore.getConfigManager().getConfig().isAscending)
+ Collections.reverse(os);
String[] splitSearchTerm = StringUtils.splitByWholeSeparatorPreserveAllTokens(searchTerm, "|");
Arrays.stream(splitSearchTerm).forEachOrdered(s -> {
String[] split = StringUtils.split(s);
diff --git a/src/main/java/me/shedaniel/rei/listeners/RecipeBookButtonWidgetHooks.java b/src/main/java/me/shedaniel/rei/listeners/RecipeBookButtonWidgetHooks.java
new file mode 100644
index 000000000..13f450254
--- /dev/null
+++ b/src/main/java/me/shedaniel/rei/listeners/RecipeBookButtonWidgetHooks.java
@@ -0,0 +1,12 @@
+package me.shedaniel.rei.listeners;
+
+import net.minecraft.client.gui.widget.RecipeBookButtonWidget;
+import net.minecraft.util.Identifier;
+import org.spongepowered.asm.mixin.Mixin;
+import org.spongepowered.asm.mixin.gen.Accessor;
+
+@Mixin(RecipeBookButtonWidget.class)
+public interface RecipeBookButtonWidgetHooks {
+ @Accessor("texture")
+ Identifier rei_getTexture();
+}
diff --git a/src/main/java/me/shedaniel/rei/plugin/DefaultPlugin.java b/src/main/java/me/shedaniel/rei/plugin/DefaultPlugin.java
index c04aba51a..f5c7cc938 100644
--- a/src/main/java/me/shedaniel/rei/plugin/DefaultPlugin.java
+++ b/src/main/java/me/shedaniel/rei/plugin/DefaultPlugin.java
@@ -81,6 +81,7 @@ public class DefaultPlugin implements REIPluginEntry {
try {
itemRegistry.registerItemStack(itemRegistry.getAllStacksFromItem(item));
} catch (Exception e) {
+ e.printStackTrace();
}
});
Registry.ENCHANTMENT.forEach(enchantment -> {
diff --git a/src/main/resources/listeners.roughlyenoughitems.mixins.json b/src/main/resources/listeners.roughlyenoughitems.mixins.json
index 429adad8a..4b0e7874c 100644
--- a/src/main/resources/listeners.roughlyenoughitems.mixins.json
+++ b/src/main/resources/listeners.roughlyenoughitems.mixins.json
@@ -7,7 +7,8 @@
"client": [
"ContainerScreenHooks",
"CreativePlayerInventoryScreenHooks",
- "RecipeBookGuiHooks"
+ "RecipeBookGuiHooks",
+ "RecipeBookButtonWidgetHooks"
],
"injectors": {
"defaultRequire": 1