diff --git a/src/main/java/me/melontini/recipebookispain/mixin/RecipeBookGroupMixin.java b/src/main/java/me/melontini/recipebookispain/mixin/RecipeBookGroupMixin.java index d79ac07..aabf4ff 100644 --- a/src/main/java/me/melontini/recipebookispain/mixin/RecipeBookGroupMixin.java +++ b/src/main/java/me/melontini/recipebookispain/mixin/RecipeBookGroupMixin.java @@ -1,7 +1,6 @@ package me.melontini.recipebookispain.mixin; import com.google.common.collect.ImmutableList; -import com.google.common.collect.ImmutableMap; import me.melontini.recipebookispain.client.RecipeBookIsPainClient; import net.minecraft.client.recipebook.RecipeBookGroup; import net.minecraft.item.ItemGroup; @@ -11,13 +10,13 @@ import org.objectweb.asm.Opcodes; import org.spongepowered.asm.mixin.*; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.Redirect; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; import java.util.ArrayList; import java.util.Arrays; import java.util.List; -import java.util.Map; @Mixin(RecipeBookGroup.class) @Unique @@ -35,22 +34,19 @@ public class RecipeBookGroupMixin { @Unique private static List CRAFTING_SEARCH_MAP; - @Final - @Shadow - @Mutable - public static Map> SEARCH_MAP = ImmutableMap.of( - RecipeBookGroup.CRAFTING_SEARCH, - CRAFTING_SEARCH_MAP, - RecipeBookGroup.FURNACE_SEARCH, - ImmutableList.of(RecipeBookGroup.FURNACE_FOOD, RecipeBookGroup.FURNACE_BLOCKS, RecipeBookGroup.FURNACE_MISC), - RecipeBookGroup.BLAST_FURNACE_SEARCH, - ImmutableList.of(RecipeBookGroup.BLAST_FURNACE_BLOCKS, RecipeBookGroup.BLAST_FURNACE_MISC), - RecipeBookGroup.SMOKER_SEARCH, - ImmutableList.of(RecipeBookGroup.SMOKER_FOOD)); @Unique private static List CRAFTING_MAP; - @Inject(method = "", at = @At(value = "FIELD", opcode = Opcodes.PUTSTATIC, target = "Lnet/minecraft/client/recipebook/RecipeBookGroup;field_1805:[Lnet/minecraft/client/recipebook/RecipeBookGroup;", shift = At.Shift.AFTER)) + // pls work pls work pls work pls work pls work pls work pls work pls work pls work pls work pls work pls work pls work pls work pls work pls work pls work pls work + @Redirect(at = @At(value = "INVOKE", target = "Lcom/google/common/collect/ImmutableList;of(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Lcom/google/common/collect/ImmutableList;"), method = "") + private static ImmutableList listOf(E e1, E e2, E e3, E e4) { + if (e1 == RecipeBookGroup.CRAFTING_EQUIPMENT) { + return (ImmutableList) ImmutableList.copyOf(CRAFTING_SEARCH_MAP); + } + return ImmutableList.of(e1, e2, e3, e4); + } + + @Inject(at = @At(value = "FIELD", opcode = Opcodes.PUTSTATIC, target = "Lnet/minecraft/client/recipebook/RecipeBookGroup;field_1805:[Lnet/minecraft/client/recipebook/RecipeBookGroup;", shift = At.Shift.AFTER), method = "") private static void recipe_book_is_pain$addCustomGroups(CallbackInfo ci) { var groups = new ArrayList<>(Arrays.asList(field_1805)); var last = groups.get(groups.size() - 1); diff --git a/src/main/java/me/melontini/recipebookispain/mixin/RecipeBookWidgetMixin.java b/src/main/java/me/melontini/recipebookispain/mixin/RecipeBookWidgetMixin.java index 608c2e1..c89de55 100644 --- a/src/main/java/me/melontini/recipebookispain/mixin/RecipeBookWidgetMixin.java +++ b/src/main/java/me/melontini/recipebookispain/mixin/RecipeBookWidgetMixin.java @@ -106,16 +106,13 @@ public abstract class RecipeBookWidgetMixin { if (nextPageButton.mouseClicked(mouseX, mouseY, button)) { if (page <= this.pages) ++page; updatePages(); - //RecipeBookIsPainClient.LOGGER.info(page); cir.setReturnValue(true); } else if (prevPageButton.mouseClicked(mouseX, mouseY, button)) { if (page > 0) --page; updatePages(); - //RecipeBookIsPainClient.LOGGER.info(page); cir.setReturnValue(true); } } - //RecipeBookIsPainClient.LOGGER.info(pages); } private void updatePages() { @@ -129,18 +126,13 @@ public abstract class RecipeBookWidgetMixin { private void recipe_book_is_pain$refresh(CallbackInfo ci) { groupTab.clear(); this.pages = 0; - int l = 0; int p = 0; //I'm in pain for (RecipeGroupButtonWidget widget : this.tabButtons) { RecipeBookGroup recipeBookGroup = widget.getCategory(); if (recipeBookGroup == RecipeBookGroup.CRAFTING_SEARCH || recipeBookGroup == RecipeBookGroup.FURNACE_SEARCH || widget.hasKnownRecipes(recipeBook)) { - p++; - l++; groupTab.add(new Pair<>((int) Math.ceil(p / 6), widget)); - if (l == 6) { - l = 0; - } + p++; } }