diff options
| author | Aaron <51387595+AzureAaron@users.noreply.github.com> | 2024-06-18 16:52:24 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-06-18 16:52:24 -0400 |
| commit | d6b220a8e42a1fc2dbc955779e86d199851b4674 (patch) | |
| tree | b17f740786785e3a5b23f00fb327f11e1230fd88 /src/main/java/de/hysky/skyblocker/skyblock/item | |
| parent | 265c09b16b78b93a55745ce8dd008d405e735d6b (diff) | |
| parent | 9d7604c52e4d786032168b4ef46ac7d8af0a5891 (diff) | |
| download | Skyblocker-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')
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; |
