aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/de
diff options
context:
space:
mode:
authorAaron <51387595+AzureAaron@users.noreply.github.com>2024-07-22 12:47:40 -0400
committerGitHub <noreply@github.com>2024-07-22 12:47:40 -0400
commit8d87aab62965c80fb36111a1baed87b48fc0ee7b (patch)
treefe244c70424352868e28aa8946667e03b6ee4714 /src/main/java/de
parent6541bb6aa43a7141ac259ee34a597891d6a45689 (diff)
parentec74273562ccecd6a759ae8ea1b31ea636fd4ff1 (diff)
downloadSkyblocker-8d87aab62965c80fb36111a1baed87b48fc0ee7b.tar.gz
Skyblocker-8d87aab62965c80fb36111a1baed87b48fc0ee7b.tar.bz2
Skyblocker-8d87aab62965c80fb36111a1baed87b48fc0ee7b.zip
Merge pull request #857 from BigloBot/fix-itemrepo-mutation
[Profileviewer] Copy Instead of Mutating ItemRepo Itemstack map
Diffstat (limited to 'src/main/java/de')
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/profileviewer/inventory/Inventory.java5
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/profileviewer/inventory/PlayerInventory.java5
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/profileviewer/inventory/itemLoaders/ItemLoader.java12
3 files changed, 16 insertions, 6 deletions
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/profileviewer/inventory/Inventory.java b/src/main/java/de/hysky/skyblocker/skyblock/profileviewer/inventory/Inventory.java
index 126c55ec..93f669a0 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/profileviewer/inventory/Inventory.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/profileviewer/inventory/Inventory.java
@@ -24,7 +24,8 @@ import java.util.List;
public class Inventory implements ProfileViewerPage {
private static final Identifier TEXTURE = Identifier.of("textures/gui/container/generic_54.png");
- private static final TextRenderer textRenderer = MinecraftClient.getInstance().textRenderer;
+ private static final MinecraftClient CLIENT = MinecraftClient.getInstance();
+ private static final TextRenderer textRenderer = CLIENT.textRenderer;
private final IntIntPair dimensions;
private final int itemsPerPage;
private final List<ItemStack> containerList;
@@ -86,7 +87,7 @@ public class Inventory implements ProfileViewerPage {
context.drawItemInSlot(textRenderer, containerList.get(startIndex + i), x, y);
if (mouseX > x -1 && mouseX < x + 16 && mouseY > y - 1 && mouseY < y + 16) {
- tooltip = containerList.get(startIndex + i).getTooltip(Item.TooltipContext.DEFAULT, MinecraftClient.getInstance().player, TooltipType.BASIC);
+ tooltip = containerList.get(startIndex + i).getTooltip(Item.TooltipContext.DEFAULT, CLIENT.player, CLIENT.options.advancedItemTooltips ? TooltipType.ADVANCED : TooltipType.BASIC);
}
}
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/profileviewer/inventory/PlayerInventory.java b/src/main/java/de/hysky/skyblocker/skyblock/profileviewer/inventory/PlayerInventory.java
index e210ca9a..715a2b36 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/profileviewer/inventory/PlayerInventory.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/profileviewer/inventory/PlayerInventory.java
@@ -22,7 +22,8 @@ import java.util.List;
public class PlayerInventory implements ProfileViewerPage {
private static final Identifier TEXTURE = Identifier.of("textures/gui/container/generic_54.png");
- private static final TextRenderer textRenderer = MinecraftClient.getInstance().textRenderer;
+ private static final MinecraftClient CLIENT = MinecraftClient.getInstance();
+ private static final TextRenderer textRenderer = CLIENT.textRenderer;
private final List<ItemStack> containerList;
private List<Text> tooltip = Collections.emptyList();
@@ -75,7 +76,7 @@ public class PlayerInventory implements ProfileViewerPage {
context.drawItemInSlot(textRenderer, containerList.get(startIndex + i), x, y);
if (mouseX > x -1 && mouseX < x + 16 && mouseY > y - 1 && mouseY < y + 16) {
- tooltip = containerList.get(startIndex + i).getTooltip(Item.TooltipContext.DEFAULT, MinecraftClient.getInstance().player, TooltipType.BASIC);
+ tooltip = containerList.get(startIndex + i).getTooltip(Item.TooltipContext.DEFAULT, CLIENT.player, CLIENT.options.advancedItemTooltips ? TooltipType.ADVANCED : TooltipType.BASIC);
}
}
}
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/profileviewer/inventory/itemLoaders/ItemLoader.java b/src/main/java/de/hysky/skyblocker/skyblock/profileviewer/inventory/itemLoaders/ItemLoader.java
index 11280af1..cd1a8e23 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/profileviewer/inventory/itemLoaders/ItemLoader.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/profileviewer/inventory/itemLoaders/ItemLoader.java
@@ -54,9 +54,16 @@ public class ItemLoader {
}
Identifier itemId = identifierFromOldId(containerContent.getCompound(i).getInt("id"), containerContent.getCompound(i).getInt("Damage"));
- ItemStack stack = itemId.toString().equals("minecraft:air") ? getItemStack(internalName) : new ItemStack(Registries.ITEM.get(itemId));
- if (stack == null || stack.isEmpty() || stack.getItem().equals(Ico.BARRIER.getItem())) {
+ ItemStack stack;
+ if (itemId.toString().equals("minecraft:air")) {
+ ItemStack itemStack = getItemStack(internalName);
+ stack = itemStack != null ? itemStack.copy() : ItemStack.EMPTY;
+ } else {
+ stack = new ItemStack(Registries.ITEM.get(itemId));
+ }
+
+ if (stack.isEmpty() || stack.getItem().equals(Ico.BARRIER.getItem())) {
// Last ditch effort to find item in NEU REPO
Map<String, NEUItem> items = NEURepoManager.NEU_REPO.getItems().getItems();
stack = items.values().stream()
@@ -64,6 +71,7 @@ public class ItemLoader {
.findFirst()
.map(NEUItem::getSkyblockItemId)
.map(ItemRepository::getItemStack)
+ .map(ItemStack::copy)
.orElse(Ico.BARRIER.copy());