-
Bug
-
Resolution: Fixed
-
Minor
-
None
-
None
-
This server is running CraftBukkit version dev-Spigot-342f493-87d0a33 (MC: 1.20.6) (Implementing API version 1.20.6-R0.1-SNAPSHOT)
-
Yes
Give command:
/give @p paper[food={nutrition:1,saturation:1f,can_always_eat:true,eat_seconds:5f}] 1
Serialized item data in config:
==: org.bukkit.inventory.ItemStack v: 3839 type: PAPER meta: ==: ItemMeta meta-type: UNSPECIFIC food: ==: Food nutrition: 1 saturation: 1.0 can-always-eat: true eat-seconds: 5.0 effects: []
Error during deserialization:
Caused by: org.bukkit.configuration.InvalidConfigurationException: Could not call constructor 'public org.bukkit.craftbukkit.v1_20_R4.inventory.components.CraftFoodComponent(java.util.Map)' of class org.bukkit.craftbukkit.v1_20_R4.inventory.components.CraftFoodComponent for deserialization at com.nisovin.shopkeepers.util.bukkit.ConfigUtils.loadConfigSafely(ConfigUtils.java:246) ~[?:?] at com.nisovin.shopkeepers.util.data.persistence.bukkit.BukkitConfigDataStore.loadFromString(BukkitConfigDataStore.java:61) ~[?:?] ... 20 more Caused by: java.lang.IllegalArgumentException: saturation(1.0) is not a valid class java.lang.Float at org.bukkit.craftbukkit.v1_20_R4.inventory.SerializableMeta.getObject(SerializableMeta.java:111) ~[spigot-1.20.6-R0.1-SNAPSHOT.jar:dev-Spigot-342f493-87d0a33] at org.bukkit.craftbukkit.v1_20_R4.inventory.components.CraftFoodComponent.<init>(CraftFoodComponent.java:33) ~[spigot-1.20.6-R0.1-SNAPSHOT.jar:dev-Spigot-342f493-87d0a33] at java.base/jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:62) ~[?:?] at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:502) ~[?:?] at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:486) ~[?:?] at org.bukkit.configuration.serialization.ConfigurationSerialization.deserializeViaCtor(ConfigurationSerialization.java:107) ~[spigot-api-1.20.6-R0.1-SNAPSHOT.jar:?] at org.bukkit.configuration.serialization.ConfigurationSerialization.deserialize(ConfigurationSerialization.java:145) ~[spigot-api-1.20.6-R0.1-SNAPSHOT.jar:?] at org.bukkit.configuration.serialization.ConfigurationSerialization.deserializeObject(ConfigurationSerialization.java:209) ~[spigot-api-1.20.6-R0.1-SNAPSHOT.jar:?] at org.bukkit.configuration.file.YamlConstructor$ConstructCustomObject.construct(YamlConstructor.java:58) ~[spigot-api-1.20.6-R0.1-SNAPSHOT.jar:?]
Snakeyaml probably loads this as double. There might also be cases in which the value is loaded as integer if users edit the value manually inside configs and omit the ".0" suffix on the number. In CraftFoodComponent we currently try to load these values as Float, without converting from other number types currently.