[SPIGOT-7502] CraftMetaItem: Cannot deserialize BlockStateTag Created: 08/Oct/23 Updated: 25/Dec/24 Resolved: 08/Oct/23 |
|
| Status: | Resolved |
| Project: | Spigot |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Bug | Priority: | Minor |
| Reporter: | blablubbabc | Assignee: | Unassigned |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | item, serialization | ||
| Version: | This server is running CraftBukkit version dev-Spigot-a0f3d48-dc45a67 (MC: 1.20.2) (Implementing API version 1.20.2-R0.1-SNAPSHOT) |
| Guidelines Read: | Yes |
| Description |
|
Error during deserialization of items with block state data: Serialized item: item:
==: org.bukkit.inventory.ItemStack
v: 3578
type: BEE_NEST
meta:
==: ItemMeta
meta-type: TILE_ENTITY
BlockStateTag: |-
{
honey_level: "5"
}
internal: H4sIAAAAAAAA/+NiYOBi4HPKyU/Ods0rySypDElM52RgcUpNLWaAAACK5YvWIgAAAA==
blockMaterial: BEE_NEST
Error during deserialization: Caused by: org.bukkit.configuration.InvalidConfigurationException: Could not call method 'public static org.bukkit.inventory.meta.ItemMeta org.bukkit.craftbukkit.v1_20_R2.inventory.CraftMetaItem$SerializableMeta.deserialize(java.util.Map) throws java.lang.Throwable' of class org.bukkit.craftbukkit.v1_20_R2.inventory.CraftMetaItem$SerializableMeta for deserialization
... 34 more
Caused by: java.lang.IllegalArgumentException: BlockStateTag({
honey_level: 5
}) is not a valid interface java.util.Map
at org.bukkit.craftbukkit.v1_20_R2.inventory.CraftMetaItem$SerializableMeta.getObject(CraftMetaItem.java:233) ~[spigot-1.20.2-R0.1-SNAPSHOT.jar:dev-Spigot-a0f3d48-dc45a67]
at org.bukkit.craftbukkit.v1_20_R2.inventory.CraftMetaItem.<init>(CraftMetaItem.java:488) ~[spigot-1.20.2-R0.1-SNAPSHOT.jar:dev-Spigot-a0f3d48-dc45a67]
at org.bukkit.craftbukkit.v1_20_R2.inventory.CraftMetaBlockState.<init>(CraftMetaBlockState.java:164) ~[spigot-1.20.2-R0.1-SNAPSHOT.jar:dev-Spigot-a0f3d48-dc45a67]
at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:?]
at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77) ~[?:?]
at jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[?:?]
at java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499) ~[?:?]
at java.lang.reflect.Constructor.newInstance(Constructor.java:480) ~[?:?]
at org.bukkit.craftbukkit.v1_20_R2.inventory.CraftMetaItem$SerializableMeta.deserialize(CraftMetaItem.java:197) ~[spigot-1.20.2-R0.1-SNAPSHOT.jar:dev-Spigot-a0f3d48-dc45a67]
at jdk.internal.reflect.GeneratedMethodAccessor5.invoke(Unknown Source) ~[?:?]
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
at java.lang.reflect.Method.invoke(Method.java:568) ~[?:?]
at org.bukkit.configuration.serialization.ConfigurationSerialization.deserializeViaMethod(ConfigurationSerialization.java:85) ~[spigot-api-1.20.2-R0.1-SNAPSHOT.jar:?]
at org.bukkit.configuration.serialization.ConfigurationSerialization.deserialize(ConfigurationSerialization.java:127) ~[spigot-api-1.20.2-R0.1-SNAPSHOT.jar:?]
at org.bukkit.configuration.serialization.ConfigurationSerialization.deserializeObject(ConfigurationSerialization.java:207) ~[spigot-api-1.20.2-R0.1-SNAPSHOT.jar:?]
at org.bukkit.configuration.file.YamlConstructor$ConstructCustomObject.construct(YamlConstructor.java:58) ~[spigot-api-1.20.2-R0.1-SNAPSHOT.jar:?]
at org.yaml.snakeyaml.constructor.BaseConstructor.constructObjectNoCheck(BaseConstructor.java:264) ~[snakeyaml-2.2.jar:?]
at org.yaml.snakeyaml.constructor.BaseConstructor.constructObject(BaseConstructor.java:247) ~[snakeyaml-2.2.jar:?]
at org.yaml.snakeyaml.constructor.BaseConstructor.constructMapping2ndStep(BaseConstructor.java:576) ~[snakeyaml-2.2.jar:?]
at org.yaml.snakeyaml.constructor.SafeConstructor.constructMapping2ndStep(SafeConstructor.java:210) ~[snakeyaml-2.2.jar:?]
at org.yaml.snakeyaml.constructor.BaseConstructor.constructMapping(BaseConstructor.java:552) ~[snakeyaml-2.2.jar:?]
at org.yaml.snakeyaml.constructor.SafeConstructor$ConstructYamlMap.construct(SafeConstructor.java:597) ~[snakeyaml-2.2.jar:?]
at org.bukkit.configuration.file.YamlConstructor$ConstructCustomObject.construct(YamlConstructor.java:49) ~[spigot-api-1.20.2-R0.1-SNAPSHOT.jar:?]
at org.yaml.snakeyaml.constructor.BaseConstructor.constructObjectNoCheck(BaseConstructor.java:264) ~[snakeyaml-2.2.jar:?]
at org.yaml.snakeyaml.constructor.BaseConstructor.constructObject(BaseConstructor.java:247) ~[snakeyaml-2.2.jar:?]
at org.bukkit.configuration.file.YamlConstructor.construct(YamlConstructor.java:37) ~[spigot-api-1.20.2-R0.1-SNAPSHOT.jar:?]
at org.bukkit.configuration.file.YamlConfiguration.fromNodeTree(YamlConfiguration.java:162) ~[spigot-api-1.20.2-R0.1-SNAPSHOT.jar:?]
at org.bukkit.configuration.file.YamlConfiguration.fromNodeTree(YamlConfiguration.java:160) ~[spigot-api-1.20.2-R0.1-SNAPSHOT.jar:?]
at org.bukkit.configuration.file.YamlConfiguration.fromNodeTree(YamlConfiguration.java:160) ~[spigot-api-1.20.2-R0.1-SNAPSHOT.jar:?]
at org.bukkit.configuration.file.YamlConfiguration.fromNodeTree(YamlConfiguration.java:160) ~[spigot-api-1.20.2-R0.1-SNAPSHOT.jar:?]
at org.bukkit.configuration.file.YamlConfiguration.loadFromString(YamlConfiguration.java:119) ~[spigot-api-1.20.2-R0.1-SNAPSHOT.jar:?]
I think this issue is related to the recent change of serializing PDC as string rather than Map (https://hub.spigotmc.org/stash/projects/SPIGOT/repos/craftbukkit/commits/f0661c3514a7d8e51e2281f045e1c14d0e733230#src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java): |