diff options
author | Aaron <51387595+AzureAaron@users.noreply.github.com> | 2024-03-02 15:16:27 -0500 |
---|---|---|
committer | Aaron <51387595+AzureAaron@users.noreply.github.com> | 2024-04-26 16:23:20 -0400 |
commit | 4e2924407645b04c30d4a2823a1d9d0983c2c790 (patch) | |
tree | ee6d4ba29f50d3cdd76216fee0193dad07752627 /src/main/java/de/hysky/skyblocker/utils/datafixer | |
parent | cc00542e78fd87e0b554ab2a74d1cb193feabbb2 (diff) | |
download | Skyblocker-4e2924407645b04c30d4a2823a1d9d0983c2c790.tar.gz Skyblocker-4e2924407645b04c30d4a2823a1d9d0983c2c790.tar.bz2 Skyblocker-4e2924407645b04c30d4a2823a1d9d0983c2c790.zip |
24w09a
Diffstat (limited to 'src/main/java/de/hysky/skyblocker/utils/datafixer')
-rw-r--r-- | src/main/java/de/hysky/skyblocker/utils/datafixer/ItemStackComponentizationFixer.java | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/src/main/java/de/hysky/skyblocker/utils/datafixer/ItemStackComponentizationFixer.java b/src/main/java/de/hysky/skyblocker/utils/datafixer/ItemStackComponentizationFixer.java new file mode 100644 index 00000000..f1306ad5 --- /dev/null +++ b/src/main/java/de/hysky/skyblocker/utils/datafixer/ItemStackComponentizationFixer.java @@ -0,0 +1,26 @@ +package de.hysky.skyblocker.utils.datafixer; + +import com.mojang.serialization.Dynamic; + +import net.minecraft.datafixer.Schemas; +import net.minecraft.datafixer.TypeReferences; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NbtCompound; +import net.minecraft.nbt.NbtElement; +import net.minecraft.nbt.NbtOps; + +/** + * Contains a data fixer to convert legacy item NBT to the new components system. + * + * @see {@link net.minecraft.datafixer.fix.ItemStackComponentizationFix} + */ +public class ItemStackComponentizationFixer { + private static final int ITEM_NBT_DATA_VERSION = 3817; + private static final int ITEM_COMPONENTS_DATA_VERSION = 3818; + + public static ItemStack fixUpItem(NbtCompound nbt) { + Dynamic<NbtElement> dynamic = Schemas.getFixer().update(TypeReferences.ITEM_STACK, new Dynamic<NbtElement>(NbtOps.INSTANCE, nbt), ITEM_NBT_DATA_VERSION, ITEM_COMPONENTS_DATA_VERSION); + + return ItemStack.CODEC.parse(dynamic).result().orElseThrow(); + } +} |