MinecraftMaterialWrapperSerializer.java 1.1 KB

1234567891011121314151617181920212223242526
  1. package com.gmail.nossr50.config.hocon;
  2. import com.gmail.nossr50.config.hocon.skills.exampleconfigs.MinecraftMaterialWrapper;
  3. import com.google.common.reflect.TypeToken;
  4. import ninja.leaping.configurate.ConfigurationNode;
  5. import ninja.leaping.configurate.objectmapping.ObjectMappingException;
  6. import ninja.leaping.configurate.objectmapping.serialize.TypeSerializer;
  7. import org.bukkit.Material;
  8. public class MinecraftMaterialWrapperSerializer implements TypeSerializer<MinecraftMaterialWrapper> {
  9. @Override
  10. public MinecraftMaterialWrapper deserialize(TypeToken<?> type, ConfigurationNode value) throws ObjectMappingException {
  11. Material material = Material.matchMaterial(value.getValue(new TypeToken<String>() {}));
  12. return new MinecraftMaterialWrapper(material);
  13. }
  14. @Override
  15. public void serialize(TypeToken<?> type, MinecraftMaterialWrapper obj, ConfigurationNode value) {
  16. value.setValue(obj.getName()); //Name
  17. value.getNode("Fully-Qualified-Name").setValue(obj.getFullyQualifiedName());
  18. value.getNode("Bukkit-Material-Name").setValue(obj.getBukkitMaterialName());
  19. }
  20. }