aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/de/hysky/skyblocker/skyblock/item
diff options
context:
space:
mode:
authorAaron <51387595+AzureAaron@users.noreply.github.com>2024-06-18 16:52:24 -0400
committerGitHub <noreply@github.com>2024-06-18 16:52:24 -0400
commitd6b220a8e42a1fc2dbc955779e86d199851b4674 (patch)
treeb17f740786785e3a5b23f00fb327f11e1230fd88 /src/main/java/de/hysky/skyblocker/skyblock/item
parent265c09b16b78b93a55745ce8dd008d405e735d6b (diff)
parent9d7604c52e4d786032168b4ef46ac7d8af0a5891 (diff)
downloadSkyblocker-d6b220a8e42a1fc2dbc955779e86d199851b4674.tar.gz
Skyblocker-d6b220a8e42a1fc2dbc955779e86d199851b4674.tar.bz2
Skyblocker-d6b220a8e42a1fc2dbc955779e86d199851b4674.zip
Merge pull request #769 from SkyblockerMod/1.21
1.21
Diffstat (limited to 'src/main/java/de/hysky/skyblocker/skyblock/item')
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/item/CustomArmorTrims.java14
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/item/SkyblockCraftingTableScreen.java16
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/BackpackPreview.java17
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/CompactorPreviewTooltipComponent.java2
4 files changed, 30 insertions, 19 deletions
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/item/CustomArmorTrims.java b/src/main/java/de/hysky/skyblocker/skyblock/item/CustomArmorTrims.java
index 65e1b138..6170eab1 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/item/CustomArmorTrims.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/item/CustomArmorTrims.java
@@ -47,14 +47,14 @@ public class CustomArmorTrims {
}
private static void initializeTrimCache() {
- ClientPlayerEntity player = MinecraftClient.getInstance().player;
+ MinecraftClient client = MinecraftClient.getInstance();
FabricLoader loader = FabricLoader.getInstance();
- if (trimsInitialized || (player == null && !Debug.debugEnabled())) {
+ if (trimsInitialized || (client == null && !Debug.debugEnabled())) {
return;
}
try {
TRIMS_CACHE.clear();
- RegistryWrapper.WrapperLookup wrapperLookup = getWrapperLookup(loader, player);
+ RegistryWrapper.WrapperLookup wrapperLookup = getWrapperLookup(loader, client);
for (Reference<ArmorTrimMaterial> material : wrapperLookup.getWrapperOrThrow(RegistryKeys.TRIM_MATERIAL).streamEntries().toList()) {
for (Reference<ArmorTrimPattern> pattern : wrapperLookup.getWrapperOrThrow(RegistryKeys.TRIM_PATTERN).streamEntries().toList()) {
ArmorTrim trim = new ArmorTrim(material, pattern);
@@ -70,8 +70,8 @@ public class CustomArmorTrims {
}
}
- private static RegistryWrapper.WrapperLookup getWrapperLookup(FabricLoader loader, ClientPlayerEntity player) {
- return !Debug.debugEnabled() ? player.networkHandler.getRegistryManager() : BuiltinRegistries.createWrapperLookup();
+ private static RegistryWrapper.WrapperLookup getWrapperLookup(FabricLoader loader, MinecraftClient client) {
+ return client != null && client.getNetworkHandler() != null && client.getNetworkHandler().getRegistryManager() != null ? client.getNetworkHandler().getRegistryManager() : BuiltinRegistries.createWrapperLookup();
}
private static void registerCommand(CommandDispatcher<FabricClientCommandSource> dispatcher, CommandRegistryAccess registryAccess) {
@@ -140,8 +140,8 @@ public class CustomArmorTrims {
public record ArmorTrimId(@SerialEntry Identifier material, @SerialEntry Identifier pattern) implements Pair<Identifier, Identifier> {
public static final Codec<ArmorTrimId> CODEC = RecordCodecBuilder.create(instance -> instance.group(
- Identifier.CODEC.fieldOf("material").forGetter(ArmorTrimId::material),
- Identifier.CODEC.fieldOf("pattern").forGetter(ArmorTrimId::pattern))
+ Identifier.CODEC.fieldOf("material").forGetter(ArmorTrimId::material),
+ Identifier.CODEC.fieldOf("pattern").forGetter(ArmorTrimId::pattern))
.apply(instance, ArmorTrimId::new));
@Override
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/item/SkyblockCraftingTableScreen.java b/src/main/java/de/hysky/skyblocker/skyblock/item/SkyblockCraftingTableScreen.java
index a09b260a..e7cc61ae 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/item/SkyblockCraftingTableScreen.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/item/SkyblockCraftingTableScreen.java
@@ -15,10 +15,12 @@ import net.minecraft.entity.player.PlayerInventory;
import net.minecraft.inventory.SimpleInventory;
import net.minecraft.item.ItemStack;
import net.minecraft.item.Items;
+import net.minecraft.recipe.CraftingRecipe;
import net.minecraft.recipe.Recipe;
import net.minecraft.recipe.RecipeEntry;
import net.minecraft.recipe.RecipeMatcher;
import net.minecraft.recipe.book.RecipeBookCategory;
+import net.minecraft.recipe.input.CraftingRecipeInput;
import net.minecraft.screen.AbstractRecipeScreenHandler;
import net.minecraft.screen.ScreenHandlerType;
import net.minecraft.screen.slot.Slot;
@@ -28,14 +30,14 @@ import net.minecraft.text.Text;
import net.minecraft.util.Identifier;
public class SkyblockCraftingTableScreen extends HandledScreen<SkyblockCraftingTableScreenHandler> {
- private static final Identifier TEXTURE = new Identifier("textures/gui/container/crafting_table.png");
+ private static final Identifier TEXTURE = Identifier.ofVanilla("textures/gui/container/crafting_table.png");
protected static final ButtonTextures MORE_CRAFTS_TEXTURES = new ButtonTextures(
- new Identifier(SkyblockerMod.NAMESPACE, "quick_craft/more_button"),
- new Identifier(SkyblockerMod.NAMESPACE, "quick_craft/more_button_disabled"),
- new Identifier(SkyblockerMod.NAMESPACE, "quick_craft/more_button_highlighted")
+ Identifier.of(SkyblockerMod.NAMESPACE, "quick_craft/more_button"),
+ Identifier.of(SkyblockerMod.NAMESPACE, "quick_craft/more_button_disabled"),
+ Identifier.of(SkyblockerMod.NAMESPACE, "quick_craft/more_button_highlighted")
);
- protected static final Identifier QUICK_CRAFT = new Identifier(SkyblockerMod.NAMESPACE, "quick_craft/quick_craft_overlay");
+ protected static final Identifier QUICK_CRAFT = Identifier.of(SkyblockerMod.NAMESPACE, "quick_craft/quick_craft_overlay");
private final ItemListWidget recipeBook = new ItemListWidget();
private boolean narrow;
private TexturedButtonWidget moreCraftsButton;
@@ -139,7 +141,7 @@ public class SkyblockCraftingTableScreen extends HandledScreen<SkyblockCraftingT
}
- static class DummyRecipeScreenHandler extends AbstractRecipeScreenHandler<SimpleInventory> {
+ static class DummyRecipeScreenHandler extends AbstractRecipeScreenHandler<CraftingRecipeInput, CraftingRecipe> {
public DummyRecipeScreenHandler() {
super(ScreenHandlerType.GENERIC_9X6, -69);
@@ -152,7 +154,7 @@ public class SkyblockCraftingTableScreen extends HandledScreen<SkyblockCraftingT
public void clearCraftingSlots() {}
@Override
- public boolean matches(RecipeEntry<? extends Recipe<SimpleInventory>> recipe) {
+ public boolean matches(RecipeEntry<CraftingRecipe> recipe) {
return false;
}
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/BackpackPreview.java b/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/BackpackPreview.java
index 50772789..cad1eaab 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/BackpackPreview.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/BackpackPreview.java
@@ -15,13 +15,17 @@ 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.ingame.HandledScreen;
+import net.minecraft.client.network.ClientPlayNetworkHandler;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.inventory.Inventory;
import net.minecraft.inventory.SimpleInventory;
import net.minecraft.item.ItemStack;
+import net.minecraft.nbt.NbtElement;
import net.minecraft.nbt.NbtOps;
import net.minecraft.nbt.StringNbtReader;
import net.minecraft.nbt.visitor.StringNbtWriter;
+import net.minecraft.registry.BuiltinRegistries;
+import net.minecraft.registry.RegistryOps;
import net.minecraft.util.Identifier;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -38,8 +42,8 @@ import java.util.stream.Collectors;
public class BackpackPreview {
private static final Logger LOGGER = LoggerFactory.getLogger(BackpackPreview.class);
- private static final Identifier ITEM_PROTECTION = new Identifier(SkyblockerMod.NAMESPACE, "textures/gui/item_protection.png");
- private static final Identifier TEXTURE = new Identifier("textures/gui/container/generic_54.png");
+ private static final Identifier ITEM_PROTECTION = Identifier.of(SkyblockerMod.NAMESPACE, "textures/gui/item_protection.png");
+ private static final Identifier TEXTURE = Identifier.ofVanilla("textures/gui/container/generic_54.png");
private static final Pattern ECHEST_PATTERN = Pattern.compile("Ender Chest.*\\((\\d+)/\\d+\\)");
private static final Pattern BACKPACK_PATTERN = Pattern.compile("Backpack.*\\(Slot #(\\d+)\\)");
private static final int STORAGE_SIZE = 27;
@@ -88,7 +92,7 @@ public class BackpackPreview {
Path storageFile = saveDir.resolve(index + ".nbt");
if (Files.isRegularFile(storageFile)) {
try (BufferedReader reader = Files.newBufferedReader(storageFile)) {
- storages[index] = Storage.CODEC.parse(NbtOps.INSTANCE, StringNbtReader.parse(reader.lines().collect(Collectors.joining()))).getOrThrow();
+ storages[index] = Storage.CODEC.parse(getOps(), StringNbtReader.parse(reader.lines().collect(Collectors.joining()))).getOrThrow();
} catch (Exception e) {
LOGGER.error("Failed to load backpack preview file: {}", storageFile.getFileName().toString(), e);
}
@@ -96,6 +100,11 @@ public class BackpackPreview {
}
}
+ private static RegistryOps<NbtElement> getOps() {
+ MinecraftClient client = MinecraftClient.getInstance();
+ return client != null && client.getNetworkHandler() != null && client.getNetworkHandler().getRegistryManager() != null ? client.getNetworkHandler().getRegistryManager().getOps(NbtOps.INSTANCE) : BuiltinRegistries.createWrapperLookup().getOps(NbtOps.INSTANCE);
+ }
+
private static void saveStorages() {
for (int index = 0; index < STORAGE_SIZE; ++index) {
if (storages[index] != null && storages[index].dirty) {
@@ -107,7 +116,7 @@ public class BackpackPreview {
private static void saveStorage(int index) {
Path storageFile = saveDir.resolve(index + ".nbt");
try (BufferedWriter writer = Files.newBufferedWriter(storageFile)) {
- writer.write(new StringNbtWriter().apply(Storage.CODEC.encodeStart(NbtOps.INSTANCE, storages[index]).getOrThrow()));
+ writer.write(new StringNbtWriter().apply(Storage.CODEC.encodeStart(getOps(), storages[index]).getOrThrow()));
storages[index].markClean();
} catch (Exception e) {
LOGGER.error("Failed to save backpack preview file: {}", storageFile.getFileName().toString(), e);
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/CompactorPreviewTooltipComponent.java b/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/CompactorPreviewTooltipComponent.java
index 8f2c0901..b7ac2856 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/CompactorPreviewTooltipComponent.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/CompactorPreviewTooltipComponent.java
@@ -10,7 +10,7 @@ import net.minecraft.item.Items;
import net.minecraft.util.Identifier;
public class CompactorPreviewTooltipComponent implements TooltipComponent {
- private static final Identifier TEXTURE = new Identifier("textures/gui/container/generic_54.png");
+ private static final Identifier TEXTURE = Identifier.ofVanilla("textures/gui/container/generic_54.png");
private static final ItemStack BLACK_STAINED_GLASS_PANE = new ItemStack(Items.BLACK_STAINED_GLASS_PANE);
private final Iterable<IntObjectPair<ItemStack>> items;
private final IntIntPair dimensions;