ClientSerializers.java 1014 B

123456789101112131415161718192021222324252627
  1. package me.lortseam.completeconfig.io;
  2. import lombok.experimental.UtilityClass;
  3. import net.fabricmc.api.EnvType;
  4. import net.fabricmc.api.Environment;
  5. import net.minecraft.text.TextColor;
  6. import org.spongepowered.configurate.serialize.CoercionFailedException;
  7. import org.spongepowered.configurate.serialize.ScalarSerializer;
  8. import org.spongepowered.configurate.serialize.TypeSerializer;
  9. import org.spongepowered.configurate.serialize.TypeSerializerCollection;
  10. @UtilityClass
  11. final class ClientSerializers {
  12. private static final ScalarSerializer<TextColor> TEXT_COLOR = TypeSerializer.of(TextColor.class, (v, pass) -> v.getRgb(), v -> {
  13. if (v instanceof Integer) {
  14. return TextColor.fromRgb((Integer) v);
  15. }
  16. throw new CoercionFailedException(v, TextColor.class.getSimpleName());
  17. });
  18. @Environment(EnvType.CLIENT)
  19. final static TypeSerializerCollection COLLECTION = TypeSerializerCollection.builder()
  20. .registerExact(TEXT_COLOR)
  21. .build();
  22. }