diff options
| author | Unknown <shekwancheung0528@gmail.com> | 2019-06-21 20:59:21 +0800 |
|---|---|---|
| committer | Unknown <shekwancheung0528@gmail.com> | 2019-06-21 20:59:21 +0800 |
| commit | 47abce72950ce51c8e37cedb7462096fa3a55161 (patch) | |
| tree | 31b19aba19a00d63bd9febf67be6f86531061b25 | |
| parent | e4962523646054eaa425fdb616490e09e13d0ba9 (diff) | |
| download | RoughlyEnoughItems-47abce72950ce51c8e37cedb7462096fa3a55161.tar.gz RoughlyEnoughItems-47abce72950ce51c8e37cedb7462096fa3a55161.tar.bz2 RoughlyEnoughItems-47abce72950ce51c8e37cedb7462096fa3a55161.zip | |
Try to fix mods
Fix 109
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 |
