From 173145cdbb8b49abc7912921ef9336621560cd7c Mon Sep 17 00:00:00 2001 From: Draylar Date: Mon, 27 Apr 2020 19:07:38 -0500 Subject: [PATCH] add serializers so mod actually works in prod --- .../tiered/data/AttributeDataLoader.java | 16 ++++++++-------- .../tiered/gson/EquipmentSlotDeserializer.java | 17 +++++++++++++++++ 2 files changed, 25 insertions(+), 8 deletions(-) create mode 100644 src/main/java/draylar/tiered/gson/EquipmentSlotDeserializer.java diff --git a/src/main/java/draylar/tiered/data/AttributeDataLoader.java b/src/main/java/draylar/tiered/data/AttributeDataLoader.java index 80515fda..cab176ce 100644 --- a/src/main/java/draylar/tiered/data/AttributeDataLoader.java +++ b/src/main/java/draylar/tiered/data/AttributeDataLoader.java @@ -8,10 +8,13 @@ import com.google.gson.JsonParseException; import draylar.tiered.api.PotentialAttribute; import draylar.tiered.gson.EntityAttributeModifierDeserializer; +import draylar.tiered.gson.EquipmentSlotDeserializer; import draylar.tiered.gson.FormattingDeserializer; +import net.minecraft.entity.EquipmentSlot; import net.minecraft.entity.attribute.EntityAttributeModifier; import net.minecraft.resource.JsonDataLoader; import net.minecraft.resource.ResourceManager; +import net.minecraft.text.Style; import net.minecraft.util.Formatting; import net.minecraft.util.Identifier; import net.minecraft.util.profiler.Profiler; @@ -25,14 +28,11 @@ public class AttributeDataLoader extends JsonDataLoader { private static final Gson GSON = new GsonBuilder() .setPrettyPrinting() .disableHtmlEscaping() - .registerTypeAdapter( - EntityAttributeModifier.class, - new EntityAttributeModifierDeserializer() - ) - .registerTypeAdapter( - Formatting.class, - new FormattingDeserializer() - ).create(); + .registerTypeAdapter(EntityAttributeModifier.class, new EntityAttributeModifierDeserializer()) + .registerTypeAdapter(EquipmentSlot.class, new EquipmentSlotDeserializer()) + .registerTypeHierarchyAdapter(Style.class, new Style.Serializer()) + .registerTypeAdapter(Formatting.class, new FormattingDeserializer()) + .create(); private static final String PARSING_ERROR_MESSAGE = "Parsing error loading recipe {}"; private static final String LOADED_RECIPES_MESSAGE = "Loaded {} recipes"; diff --git a/src/main/java/draylar/tiered/gson/EquipmentSlotDeserializer.java b/src/main/java/draylar/tiered/gson/EquipmentSlotDeserializer.java new file mode 100644 index 00000000..95dc2d5a --- /dev/null +++ b/src/main/java/draylar/tiered/gson/EquipmentSlotDeserializer.java @@ -0,0 +1,17 @@ +package draylar.tiered.gson; + +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonParseException; +import net.minecraft.entity.EquipmentSlot; + +import java.lang.reflect.Type; + +public class EquipmentSlotDeserializer implements JsonDeserializer { + + @Override + public EquipmentSlot deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException { + return EquipmentSlot.byName(json.getAsString().toLowerCase()); + } +}