diff --git a/src/main/java/me/melontini/recipebookispain/mixin/ClientRecipeBookMixin.java b/src/main/java/me/melontini/recipebookispain/mixin/ClientRecipeBookMixin.java index 58183df..c3e0ed7 100644 --- a/src/main/java/me/melontini/recipebookispain/mixin/ClientRecipeBookMixin.java +++ b/src/main/java/me/melontini/recipebookispain/mixin/ClientRecipeBookMixin.java @@ -14,6 +14,10 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; @Mixin(value = ClientRecipeBook.class, priority = 999) public class ClientRecipeBookMixin { + static { + //noinspection ResultOfMethodCallIgnored + RecipeBookGroup.values(); + } @Inject(at = @At("HEAD"), method = "getGroupForRecipe", cancellable = true) private static void recipe_book_is_pain$getGroupForRecipe(Recipe recipe, CallbackInfoReturnable cir) { RecipeType recipeType = recipe.getType(); @@ -22,10 +26,10 @@ public class ClientRecipeBookMixin { ItemGroup group = itemStack.getItem().getGroup(); if (group != null) { if (group != ItemGroup.HOTBAR && group != ItemGroup.INVENTORY && group != ItemGroup.SEARCH) - if (RecipeBookIsPainClient.ADDED_GROUPS.get("P_CRAFTING_" + group.toString().toUpperCase().replace(".", "_")) != null) - cir.setReturnValue(RecipeBookIsPainClient.ADDED_GROUPS.get("P_CRAFTING_" + group.toString().toUpperCase().replace(".", "_"))); + if (RecipeBookIsPainClient.ADDED_GROUPS.get("P_CRAFTING_" + group.getIndex()) != null) + cir.setReturnValue(RecipeBookIsPainClient.ADDED_GROUPS.get("P_CRAFTING_" + group.getIndex())); else - cir.setReturnValue(RecipeBookIsPainClient.ADDED_GROUPS.get("P_CRAFTING_" + ItemGroup.MISC.toString().toUpperCase().replace(".", "_"))); + cir.setReturnValue(RecipeBookIsPainClient.ADDED_GROUPS.get("P_CRAFTING_" + ItemGroup.MISC + group.getIndex())); } } } diff --git a/src/main/java/me/melontini/recipebookispain/mixin/RecipeBookGroupMixin.java b/src/main/java/me/melontini/recipebookispain/mixin/RecipeBookGroupMixin.java index 3b9b283..e5291f4 100644 --- a/src/main/java/me/melontini/recipebookispain/mixin/RecipeBookGroupMixin.java +++ b/src/main/java/me/melontini/recipebookispain/mixin/RecipeBookGroupMixin.java @@ -33,6 +33,7 @@ public class RecipeBookGroupMixin { private static List CRAFTING_MAP; // 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 + @SuppressWarnings("unchecked") @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;"), remap = false, method = "") private static ImmutableList listOf(E e1, E e2, E e3, E e4) { if (e1 == RecipeBookGroup.CRAFTING_EQUIPMENT) { @@ -48,8 +49,8 @@ public class RecipeBookGroupMixin { for (ItemGroup group : ItemGroup.GROUPS) { if (group != ItemGroup.HOTBAR && group != ItemGroup.INVENTORY && group != ItemGroup.SEARCH) { - var group1 = Accessor.newGroup("P_CRAFTING_" + group.getName().toUpperCase().replace(".", "_"), last.ordinal() + 1, new ItemStack(group.getIcon().getItem())); - String name = "P_CRAFTING_" + group.toString().toUpperCase().replace(".", "_"); + var group1 = Accessor.newGroup("P_CRAFTING_" + group.getIndex(), last.ordinal() + 1, new ItemStack(group.getIcon().getItem())); + String name = "P_CRAFTING_" + group.getIndex(); RecipeBookIsPainClient.ADDED_GROUPS.put(name, group1); RecipeBookIsPainClient.AAAAAAAA.put(name, group); groups.add(group1); diff --git a/src/main/java/me/melontini/recipebookispain/mixin/RecipeBookWidgetMixin.java b/src/main/java/me/melontini/recipebookispain/mixin/RecipeBookWidgetMixin.java index 6fe9d24..c8c70af 100644 --- a/src/main/java/me/melontini/recipebookispain/mixin/RecipeBookWidgetMixin.java +++ b/src/main/java/me/melontini/recipebookispain/mixin/RecipeBookWidgetMixin.java @@ -95,14 +95,14 @@ public abstract class RecipeBookWidgetMixin { RecipeGroupButtonWidget widget = pair.getRight(); if (pair.getLeft() == page) { RecipeBookGroup recipeBookGroup = widget.getCategory(); - if (recipeBookGroup.toString().contains("SEARCH")) { + if (client.currentScreen != null) if (recipeBookGroup.toString().contains("SEARCH")) { widget.visible = true; if (widget.isHovered()) client.currentScreen.renderTooltip(stack, ItemGroup.SEARCH.getDisplayName(), mouseX, mouseY); } else if (widget.hasKnownRecipes(recipeBook)) { widget.checkForNewRecipes(this.client); if (RecipeBookIsPainClient.AAAAAAAA.get(recipeBookGroup.toString()) != null) { - Text text = RecipeBookIsPainClient.AAAAAAAA.get(recipeBookGroup.toString()).getDisplayName(); + Text text = RecipeBookIsPainClient.AAAAAAAA.get(recipeBookGroup.name()).getDisplayName(); if (text != null) if (widget.isHovered()) client.currentScreen.renderTooltip(stack, text, mouseX, mouseY); } @@ -115,7 +115,7 @@ public abstract class RecipeBookWidgetMixin { @Inject(at = @At("HEAD"), method = "mouseClicked", cancellable = true) private void recipe_book_is_pain$mouseClicked(double mouseX, double mouseY, int button, CallbackInfoReturnable cir) { - if (this.isOpen() && !this.client.player.isSpectator()) { + if (this.client.player != null) if (this.isOpen() && !this.client.player.isSpectator()) { if (nextPageButton.mouseClicked(mouseX, mouseY, button)) { if (this.page <= this.pages) ++this.page; updatePageSwitchButtons();