diff options
author | Kevinthegreat <92656833+kevinthegreat1@users.noreply.github.com> | 2024-06-14 20:01:38 +0800 |
---|---|---|
committer | Aaron <51387595+AzureAaron@users.noreply.github.com> | 2024-06-18 16:34:37 -0400 |
commit | 70a7e2528cc4757e324c99dc8b51f082a457d1db (patch) | |
tree | 8fad17559cd5ff029678f9e7553ad92682cb1d3a /src/main/java/de/hysky/skyblocker | |
parent | 3a53e51494523871870491617ae6add9b3fe87fe (diff) | |
download | Skyblocker-70a7e2528cc4757e324c99dc8b51f082a457d1db.tar.gz Skyblocker-70a7e2528cc4757e324c99dc8b51f082a457d1db.tar.bz2 Skyblocker-70a7e2528cc4757e324c99dc8b51f082a457d1db.zip |
Fix dynamic registry usage and related tests
Diffstat (limited to 'src/main/java/de/hysky/skyblocker')
6 files changed, 29 insertions, 24 deletions
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/end/EndHudWidget.java b/src/main/java/de/hysky/skyblocker/skyblock/end/EndHudWidget.java index 0d9822fe..86e8d23e 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/end/EndHudWidget.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/end/EndHudWidget.java @@ -37,7 +37,7 @@ public class EndHudWidget extends Widget { static { ENDERMAN_HEAD.set(DataComponentTypes.PROFILE, new ProfileComponent(Optional.of("MHF_Enderman"), Optional.empty(), new PropertyMap())); - POPPY.addEnchantment(BuiltinRegistries.createWrapperLookup().getWrapperOrThrow(RegistryKeys.ENCHANTMENT).getOptional(Enchantments.INFINITY).get(), 1); + POPPY.set(DataComponentTypes.ENCHANTMENT_GLINT_OVERRIDE, true); INSTANCE.setX(SkyblockerConfigManager.get().otherLocations.end.x); INSTANCE.setY(SkyblockerConfigManager.get().otherLocations.end.y); 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 6bd163e9..e7cc61ae 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/item/SkyblockCraftingTableScreen.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/item/SkyblockCraftingTableScreen.java @@ -154,6 +154,11 @@ public class SkyblockCraftingTableScreen extends HandledScreen<SkyblockCraftingT public void clearCraftingSlots() {} @Override + public boolean matches(RecipeEntry<CraftingRecipe> recipe) { + return false; + } + + @Override public int getCraftingResultSlotIndex() { return 0; } @@ -192,10 +197,5 @@ public class SkyblockCraftingTableScreen extends HandledScreen<SkyblockCraftingT public boolean canUse(PlayerEntity player) { return false; } - - @Override - 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 ecbd2f31..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 @@ -101,9 +101,8 @@ public class BackpackPreview { } private static RegistryOps<NbtElement> getOps() { - ClientPlayNetworkHandler handler = MinecraftClient.getInstance().player != null ? MinecraftClient.getInstance().player.networkHandler : null; - - return handler != null ? handler.getRegistryManager().getOps(NbtOps.INSTANCE) : BuiltinRegistries.createWrapperLookup().getOps(NbtOps.INSTANCE); + 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() { diff --git a/src/main/java/de/hysky/skyblocker/utils/ColorUtils.java b/src/main/java/de/hysky/skyblocker/utils/ColorUtils.java index 4b17ef1a..2c8f5e4a 100644 --- a/src/main/java/de/hysky/skyblocker/utils/ColorUtils.java +++ b/src/main/java/de/hysky/skyblocker/utils/ColorUtils.java @@ -5,6 +5,7 @@ import net.minecraft.util.DyeColor; public class ColorUtils { /** * Takes an RGB color as an integer and returns an array of the color's components as floats, in RGB format. + * * @param color The color to get the components of. * @return An array of the color's components as floats. */ @@ -20,10 +21,6 @@ public class ColorUtils { * @param dye The dye from which the entity color will be used for the components. */ public static float[] getFloatComponents(DyeColor dye) { - return new float[] { - ((dye.getEntityColor() >> 16) & 0xFF) / 255f, - ((dye.getEntityColor() >> 8) & 0xFF) / 255f, - (dye.getEntityColor() & 0xFF) / 255f - }; + return getFloatComponents(dye.getEntityColor()); } } diff --git a/src/main/java/de/hysky/skyblocker/utils/datafixer/ItemStackComponentizationFixer.java b/src/main/java/de/hysky/skyblocker/utils/datafixer/ItemStackComponentizationFixer.java index 959e6a5f..a9b227a1 100644 --- a/src/main/java/de/hysky/skyblocker/utils/datafixer/ItemStackComponentizationFixer.java +++ b/src/main/java/de/hysky/skyblocker/utils/datafixer/ItemStackComponentizationFixer.java @@ -7,6 +7,7 @@ import java.util.Optional; import com.mojang.brigadier.StringReader; import com.mojang.serialization.Dynamic; +import net.minecraft.client.MinecraftClient; import net.minecraft.command.argument.ItemStringReader; import net.minecraft.command.argument.ItemStringReader.ItemResult; import net.minecraft.component.ComponentType; @@ -33,7 +34,7 @@ public class ItemStackComponentizationFixer { private static final WrapperLookup LOOKUP = BuiltinRegistries.createWrapperLookup(); public static ItemStack fixUpItem(NbtCompound nbt) { - Dynamic<NbtElement> dynamic = Schemas.getFixer().update(TypeReferences.ITEM_STACK, new Dynamic<>(LOOKUP.getOps(NbtOps.INSTANCE), nbt), ITEM_NBT_DATA_VERSION, ITEM_COMPONENTS_DATA_VERSION); + Dynamic<NbtElement> dynamic = Schemas.getFixer().update(TypeReferences.ITEM_STACK, new Dynamic<>(getRegistryLookup().getOps(NbtOps.INSTANCE), nbt), ITEM_NBT_DATA_VERSION, ITEM_COMPONENTS_DATA_VERSION); return ItemStack.CODEC.parse(dynamic).getOrThrow(); } @@ -44,7 +45,7 @@ public class ItemStackComponentizationFixer { * @return The {@link ItemStack}'s components as a string which is in the format that the {@code /give} command accepts. */ public static String componentsAsString(ItemStack stack) { - RegistryOps<NbtElement> nbtRegistryOps = LOOKUP.getOps(NbtOps.INSTANCE); + RegistryOps<NbtElement> nbtRegistryOps = getRegistryLookup().getOps(NbtOps.INSTANCE); return Arrays.toString(stack.getComponentChanges().entrySet().stream().map(entry -> { @SuppressWarnings("unchecked") @@ -66,7 +67,7 @@ public class ItemStackComponentizationFixer { * @return an {@link ItemStack} or {@link ItemStack#EMPTY} if there was an exception thrown. */ public static ItemStack fromComponentsString(String itemId, int count, String componentsString) { - ItemStringReader reader = new ItemStringReader(LOOKUP); + ItemStringReader reader = new ItemStringReader(getRegistryLookup()); try { ItemResult result = reader.consume(new StringReader(itemId + componentsString)); @@ -80,4 +81,12 @@ public class ItemStackComponentizationFixer { return ItemStack.EMPTY; } + + /** + * Tries to get the dynamic registry manager instance currently in use or else returns {@link #LOOKUP} + */ + public static WrapperLookup getRegistryLookup() { + MinecraftClient client = MinecraftClient.getInstance(); + return client != null && client.getNetworkHandler() != null && client.getNetworkHandler().getRegistryManager() != null ? client.getNetworkHandler().getRegistryManager() : LOOKUP; + } } |