From f26e1b2e2925a53267f64d55226a0688e32229ac Mon Sep 17 00:00:00 2001 From: Josh Roy <10731363+JRoy@users.noreply.github.com> Date: Sat, 22 Jul 2023 16:46:15 -0400 Subject: [PATCH] Fix invalid unlimited items preventing userdata to load Invalid material names would previously return a null value when deserializing. This raises an exception from within Configurate because they use an EnumSet internally during deserialization which doesn't support null elements. --- .../essentials/config/serializers/MaterialTypeSerializer.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Essentials/src/main/java/com/earth2me/essentials/config/serializers/MaterialTypeSerializer.java b/Essentials/src/main/java/com/earth2me/essentials/config/serializers/MaterialTypeSerializer.java index 50e23157293..3fb5c1a5c12 100644 --- a/Essentials/src/main/java/com/earth2me/essentials/config/serializers/MaterialTypeSerializer.java +++ b/Essentials/src/main/java/com/earth2me/essentials/config/serializers/MaterialTypeSerializer.java @@ -17,7 +17,9 @@ public Material deserialize(Type type, Object obj) throws SerializationException if (obj instanceof String) { return Material.matchMaterial((String) obj); } - return null; + + // Configurate will use an EnumSet to deserialize, which doesn't support null types. Default to air. + return Material.AIR; } @Override