ColorCodec class

Пакет: com.hypixel.hytale.server.core.codec.protocol

Файл: com/hypixel/hytale/server/core/codec/protocol/ColorCodec.java

implements: Codec<Color>

Поля (5)

МодификаторыТипИмя
StringSchema var2
Color var3
Color var3
StringSchema var3
Schema var4

Методы (2)

МодификаторыВозвратСигнатура
if if(var3 != null)
if if(var3 != null)

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.server.core.codec.protocol;

class="kw">import com.hypixel.hytale.codec.Codec;
class="kw">import com.hypixel.hytale.codec.ExtraInfo;
class="kw">import com.hypixel.hytale.codec.exception.CodecException;
class="kw">import com.hypixel.hytale.codec.schema.SchemaContext;
class="kw">import com.hypixel.hytale.codec.schema.config.Schema;
class="kw">import com.hypixel.hytale.codec.schema.config.StringSchema;
class="kw">import com.hypixel.hytale.codec.util.RawJsonReader;
class="kw">import com.hypixel.hytale.protocol.Color;
class="kw">import com.hypixel.hytale.server.core.asset.util.ColorParseUtil;
class="kw">import java.io.IOException;
class="kw">import javax.annotation.Nonnull;
class="kw">import org.bson.BsonString;
class="kw">import org.bson.BsonValue;

class="kw">public class ColorCodec class="kw">implements Codec<Color> {
   class="kw">public ColorCodec() {
   }

   @Nonnull
   class="kw">public BsonValue encode(Color var1, ExtraInfo var2) {
      class="kw">return new BsonString(ColorParseUtil.colorToHexString(var1));
   }

   @Nonnull
   class="kw">public Color decode(@Nonnull BsonValue var1, ExtraInfo var2) {
      Color var3 = ColorParseUtil.parseColor(var1.asString().getValue());
      if (var3 != null) {
         class="kw">return var3;
      } else {
         throw new CodecException("Invalid color format, expected: #RGB, #RRGGBB or rgb(R,G,B)");
      }
   }

   @Nonnull
   class="kw">public Color decodeJson(@Nonnull RawJsonReader var1, ExtraInfo var2) class="kw">throws IOException {
      var1.expect('"');
      Color var3 = ColorParseUtil.readColor(var1);
      var1.expect('"');
      if (var3 != null) {
         class="kw">return var3;
      } else {
         throw new CodecException("Invalid color format, expected: #RGB, #RRGGBB or rgb(R,G,B)");
      }
   }

   @Nonnull
   @Override
   class="kw">public Schema toSchema(@Nonnull SchemaContext var1) {
      StringSchema var2 = new StringSchema();
      var2.setPattern(ColorParseUtil.HEX_COLOR_PATTERN);
      StringSchema var3 = new StringSchema();
      var3.setPattern(ColorParseUtil.RGB_COLOR_PATTERN);
      Schema var4 = Schema.anyOf(var2, var3);
      var4.setTitle("Color RGB");
      var4.getHytale().setType("Color");
      class="kw">return var4;
   }
}