aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAaron <51387595+AzureAaron@users.noreply.github.com>2025-02-14 21:11:57 -0500
committerGitHub <noreply@github.com>2025-02-15 10:11:57 +0800
commit2270b4925aa1f7c4e64371c85e8354bb2f3fdb55 (patch)
tree613edf12b4b0cc39a8cb7d75f09b258924703032
parent0cd860224d4a2a62118e125092a98b111d5b72a8 (diff)
downloadSkyblocker-2270b4925aa1f7c4e64371c85e8354bb2f3fdb55.tar.gz
Skyblocker-2270b4925aa1f7c4e64371c85e8354bb2f3fdb55.tar.bz2
Skyblocker-2270b4925aa1f7c4e64371c85e8354bb2f3fdb55.zip
Fix recipe book crashes (#1121)
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/itemlist/recipebook/RecipeTab.java5
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/itemlist/recipebook/SkyblockCraftingRecipeResults.java1
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/itemlist/recipebook/SkyblockCraftingTab.java49
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/itemlist/recipebook/SkyblockRecipeBookWidget.java4
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/itemlist/recipebook/UpcomingEventsTab.java3
5 files changed, 27 insertions, 35 deletions
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/itemlist/recipebook/RecipeTab.java b/src/main/java/de/hysky/skyblocker/skyblock/itemlist/recipebook/RecipeTab.java
index 61b1d9ef..4df75f76 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/itemlist/recipebook/RecipeTab.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/itemlist/recipebook/RecipeTab.java
@@ -4,9 +4,4 @@ import net.minecraft.item.ItemStack;
public interface RecipeTab extends RecipeAreaDisplay {
ItemStack icon();
-
- /**
- * If this tab does not use the search bar then no-op this.
- */
- void initializeSearchResults(String query);
}
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/itemlist/recipebook/SkyblockCraftingRecipeResults.java b/src/main/java/de/hysky/skyblocker/skyblock/itemlist/recipebook/SkyblockCraftingRecipeResults.java
index d6d7ea56..834440a5 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/itemlist/recipebook/SkyblockCraftingRecipeResults.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/itemlist/recipebook/SkyblockCraftingRecipeResults.java
@@ -16,7 +16,6 @@ import de.hysky.skyblocker.utils.scheduler.MessageScheduler;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.font.TextRenderer;
import net.minecraft.client.gui.DrawContext;
-import net.minecraft.client.gui.screen.Screen;
import net.minecraft.client.gui.screen.recipebook.RecipeBookResults;
import net.minecraft.client.gui.widget.ToggleButtonWidget;
import net.minecraft.component.DataComponentTypes;
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/itemlist/recipebook/SkyblockCraftingTab.java b/src/main/java/de/hysky/skyblocker/skyblock/itemlist/recipebook/SkyblockCraftingTab.java
index 953c1da1..7b69f725 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/itemlist/recipebook/SkyblockCraftingTab.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/itemlist/recipebook/SkyblockCraftingTab.java
@@ -21,32 +21,40 @@ record SkyblockCraftingTab(SkyblockRecipeBookWidget recipeBook, ItemStack icon,
@Override
public void draw(DrawContext context, int x, int y, int mouseX, int mouseY, float delta) {
assert recipeBook.searchField != null;
- recipeBook.searchField.render(context, mouseX, mouseY, delta);
- recipeBook.filterOption.render(context, mouseX, mouseY, delta);
- results.draw(context, x, y, mouseX, mouseY, delta);
+
+ if (ItemRepository.filesImported()) {
+ recipeBook.searchField.render(context, mouseX, mouseY, delta);
+ recipeBook.filterOption.render(context, mouseX, mouseY, delta);
+ results.draw(context, x, y, mouseX, mouseY, delta);
+ } else {
+ //68 is from 137 / 2 and 137 is the height from which the page flip buttons are rendered
+ context.drawCenteredTextWithShadow(MinecraftClient.getInstance().textRenderer, "Loading...", x + (SkyblockRecipeBookWidget.IMAGE_WIDTH / 2), y + 68, 0xFFFFFFFF);
+ }
}
@Override
public void drawTooltip(DrawContext context, int x, int y) {
- results.drawTooltip(context, x, y);
+ if (ItemRepository.filesImported()) results.drawTooltip(context, x, y);
}
@Override
public boolean mouseClicked(double mouseX, double mouseY, int button) {
- if (results.mouseClicked(mouseX, mouseY, button)) {
- return true;
- } else {
- if (recipeBook.searchField != null) {
- boolean magnifyingGlassClicked = recipeBook.searchFieldRect != null && recipeBook.searchFieldRect.contains(MathHelper.floor(mouseX), MathHelper.floor(mouseY));
+ if (ItemRepository.filesImported()) {
+ if (results.mouseClicked(mouseX, mouseY, button)) {
+ return true;
+ } else {
+ if (recipeBook.searchField != null) {
+ boolean magnifyingGlassClicked = recipeBook.searchFieldRect != null && recipeBook.searchFieldRect.contains(MathHelper.floor(mouseX), MathHelper.floor(mouseY));
- if (magnifyingGlassClicked || recipeBook.searchField.mouseClicked(mouseX, mouseY, button)) {
- results.closeRecipeView();
- recipeBook.searchField.setFocused(true);
+ if (magnifyingGlassClicked || recipeBook.searchField.mouseClicked(mouseX, mouseY, button)) {
+ results.closeRecipeView();
+ recipeBook.searchField.setFocused(true);
- return true;
+ return true;
+ }
+ recipeBook.searchField.setFocused(false);
+ return recipeBook.filterOption.mouseClicked(mouseX, mouseY, button);
}
- recipeBook.searchField.setFocused(false);
- return recipeBook.filterOption.mouseClicked(mouseX, mouseY, button);
}
}
@@ -55,18 +63,11 @@ record SkyblockCraftingTab(SkyblockRecipeBookWidget recipeBook, ItemStack icon,
@Override
public boolean keyPressed(double mouseX, double mouseY, int keyCode, int scanCode, int modifiers) {
- return this.results.keyPressed(mouseX, mouseY, keyCode, scanCode, modifiers);
+ return ItemRepository.filesImported() ? this.results.keyPressed(mouseX, mouseY, keyCode, scanCode, modifiers) : false;
}
@Override
public void updateSearchResults(String query, FilterOption filterOption, boolean refresh) {
- results.updateSearchResults(query, filterOption, refresh);
- }
-
- @Override
- public void initializeSearchResults(String query) {
- if (ItemRepository.filesImported()) {
- updateSearchResults(query, FilterOption.ALL);
- }
+ if (ItemRepository.filesImported()) results.updateSearchResults(query, filterOption, refresh);
}
}
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/itemlist/recipebook/SkyblockRecipeBookWidget.java b/src/main/java/de/hysky/skyblocker/skyblock/itemlist/recipebook/SkyblockRecipeBookWidget.java
index b1767acd..adc9993b 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/itemlist/recipebook/SkyblockRecipeBookWidget.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/itemlist/recipebook/SkyblockRecipeBookWidget.java
@@ -31,7 +31,7 @@ import net.minecraft.util.context.ContextParameterMap;
* Based on {@link net.minecraft.client.gui.screen.recipebook.RecipeBookWidget}.
*/
public class SkyblockRecipeBookWidget extends RecipeBookWidget<NoopRecipeScreenHandler> {
- private static final int IMAGE_WIDTH = RecipeBookWidget.field_32408;
+ protected static final int IMAGE_WIDTH = RecipeBookWidget.field_32408;
private static final int IMAGE_HEIGHT = RecipeBookWidget.field_32409;
//Corresponds to field_32410 in RecipeBookWidget
private static final int OFFSET_X_POSITION = 86;
@@ -106,7 +106,7 @@ public class SkyblockRecipeBookWidget extends RecipeBookWidget<NoopRecipeScreenH
//Tab Init
this.currentTab.left().initialize(this.client, left, top);
- this.currentTab.left().initializeSearchResults(defaultSearchText);
+ this.currentTab.left().updateSearchResults(defaultSearchText, FilterOption.ALL);
}
@Override
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/itemlist/recipebook/UpcomingEventsTab.java b/src/main/java/de/hysky/skyblocker/skyblock/itemlist/recipebook/UpcomingEventsTab.java
index c30df294..ee91d458 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/itemlist/recipebook/UpcomingEventsTab.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/itemlist/recipebook/UpcomingEventsTab.java
@@ -97,9 +97,6 @@ public class UpcomingEventsTab implements RecipeTab {
@Override
public void updateSearchResults(String query, FilterOption filterOption, boolean refresh) {}
- @Override
- public void initializeSearchResults(String query) {}
-
private static class EventRenderer {
private static final int HEIGHT = 20;