diff --git a/src/main/java/org/comroid/api/model/minecraft/model/DefaultPermissionValue.java b/src/main/java/org/comroid/api/model/minecraft/model/DefaultPermissionValue.java new file mode 100644 index 0000000..48c660d --- /dev/null +++ b/src/main/java/org/comroid/api/model/minecraft/model/DefaultPermissionValue.java @@ -0,0 +1,52 @@ +package org.comroid.api.model.minecraft.model; + +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import lombok.AccessLevel; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.RequiredArgsConstructor; +import lombok.Value; +import lombok.experimental.FieldDefaults; +import org.comroid.api.attr.Named; + +import java.io.IOException; +import java.util.Arrays; + +@Getter +@RequiredArgsConstructor +@FieldDefaults(level = AccessLevel.PRIVATE, makeFinal = true) +public +enum DefaultPermissionValue implements Named { + FALSE("false"), + NOT_OP("not op"), + OP("op"), + TRUE("true"); + + String ident; + + @NoArgsConstructor + public static class Serializer extends JsonSerializer { + @Override + public void serialize(DefaultPermissionValue value, JsonGenerator gen, SerializerProvider serializers) throws IOException { + gen.writeString(value.ident); + } + } + + @Value + @NoArgsConstructor + public static class Deserializer extends JsonDeserializer { + @Override + public DefaultPermissionValue deserialize(JsonParser p, DeserializationContext ctxt) throws IOException { + var id = p.getValueAsString(); + return Arrays.stream(values()) + .filter(item -> item.ident.equals(id)) + .findAny() + .orElse(DefaultPermissionValue.OP); + } + } +} diff --git a/src/main/java/org/comroid/api/model/minecraft/model/PluginLoadTime.java b/src/main/java/org/comroid/api/model/minecraft/model/PluginLoadTime.java new file mode 100644 index 0000000..ee57629 --- /dev/null +++ b/src/main/java/org/comroid/api/model/minecraft/model/PluginLoadTime.java @@ -0,0 +1,34 @@ +package org.comroid.api.model.minecraft.model; + +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import lombok.NoArgsConstructor; +import lombok.Value; +import org.comroid.api.attr.Named; + +import java.io.IOException; + +public enum PluginLoadTime implements Named { + STARTUP, POSTWORLD; + + @NoArgsConstructor + public static class Serializer extends JsonSerializer { + @Override + public void serialize(PluginLoadTime value, JsonGenerator gen, SerializerProvider serializers) throws IOException { + gen.writeString(value.name()); + } + } + + @Value + @NoArgsConstructor + public static class Deserializer extends JsonDeserializer { + @Override + public PluginLoadTime deserialize(JsonParser p, DeserializationContext ctxt) throws IOException { + return PluginLoadTime.valueOf(p.getValueAsString()); + } + } +}