ItemStack serialized to YAML with "internal" tag breaks on 1.20.6 > 1.21.1 update
Nobody has claimed this yet.
- Dominant language
- Java
- Stars
- 12.7k
- Forks
- 3.5k
- Avg merge
- 3d 13h
- Merged PRs (30d)
- 11
Description
Expected behavior
The "internal" tag will continue to work...
Observed/Actual behavior
The tag is lost upon loading and storing the ItemStack, as it now seems to be renamed to "custom" without automatic migration
Steps/models to reproduce
Given the below yaml output, load it as itemstack and save it again on 1.21.1
spawns:
- custom_egg:
==: org.bukkit.inventory.ItemStack
v: 3700
type: MAGMA_CUBE_SPAWN_EGG
meta:
==: ItemMeta
meta-type: SPAWN_EGG
display-name: '{"extra":[{"italic":false,"color":"white","text":"Spawn LavaLurker"}],"text":""}'
lore:
- '{"extra":[{"bold":false,"italic":false,"underlined":false,"strikethrough":false,"obfuscated":false,"color":"gray","text":""}],"text":""}'
- '{"extra":[{"bold":true,"italic":false,"color":"dark_green","text":"< "},{"bold":false,"italic":false,"color":"gray","text":"Left click for menu."}],"text":""}'
- '{"extra":[{"bold":true,"italic":false,"color":"dark_green","text":"> "},{"bold":false,"italic":false,"color":"gray","text":"Right click to summon."}],"text":""}'
enchants:
DURABILITY: 1
ItemFlags:
- HIDE_ENCHANTS
internal: H4sIAAAAAAAA/+NiYOBi4HbKLy6O90sqCUlM52BgB/PCTBi4fBLLEn1Ki7JTixgYADZ7h3UpAAAA
Plugin and Datapack List
N/A
Paper version
This server is running Paper version 1.21.1-85-master@c5a1066 (2024-09-19T14:47:47Z) (Implementing API version 1.21.1-R0.1-SNAPSHOT)
Other
I managed to "fix" this by manually replacing "internal" with "custom", however that should be dealt with automatically. CraftMetaItem seems to contain support for both, not sure why it no longer works.
Thanks!
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with CraftMetaItem and the ItemStack YAML loading and saving path, using the supplied YAML and Paper 1.21.1 behavior as the reproduction case. Trace how the legacy "internal" tag and the "custom" tag are handled, then verify that loading and saving preserves the tag data without manual replacement.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- api, backend
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100