InteractionPriorityCodec.java
package com.hypixel.hytale.server.core.modules.interaction.interaction.config;
import com.hypixel.hytale.codec.Codec;
import com.hypixel.hytale.codec.ExtraInfo;
import com.hypixel.hytale.codec.codecs.map.EnumMapCodec;
import com.hypixel.hytale.codec.exception.CodecException;
import com.hypixel.hytale.codec.schema.SchemaContext;
import com.hypixel.hytale.codec.schema.config.Schema;
import com.hypixel.hytale.codec.util.RawJsonReader;
import com.hypixel.hytale.protocol.PrioritySlot;
import java.io.IOException;
import java.util.EnumMap;
import java.util.Map;
import javax.annotation.Nonnull;
import org.bson.BsonInt32;
import org.bson.BsonValue;
public class InteractionPriorityCodec implements Codec<InteractionPriority> {
private static final EnumMapCodec<PrioritySlot, Integer> MAP_CODEC;
public InteractionPriorityCodec() {
}
@Nonnull
public InteractionPriority decode(@Nonnull BsonValue bsonValue, ExtraInfo extraInfo) {
if (bsonValue.isInt32()) {
return new (bsonValue.asInt32().getValue());
} (bsonValue.isDocument()) {
(MAP_CODEC.decode(bsonValue, extraInfo));
} {
( + String.valueOf(bsonValue.getBsonType()));
}
}
BsonValue {
Map<PrioritySlot, Integer> values = priority.values();
(values != && !values.isEmpty()) {
(BsonValue)(values.size() == && values.containsKey(PrioritySlot.Default) ? ((Integer)values.get(PrioritySlot.Default)) : MAP_CODEC.encode(values, extraInfo));
} {
();
}
}
InteractionPriority IOException {
reader.consumeWhiteSpace();
reader.peek();
(peek == ) {
(MAP_CODEC.decodeJson(reader, extraInfo));
} (peek != && !Character.isDigit(peek)) {
( + ()peek, reader, extraInfo, (Throwable));
} {
(reader.readIntValue());
}
}
Schema {
MAP_CODEC.toSchema(context);
schema.setTitle();
schema.setDescription();
schema;
}
{
MAP_CODEC = <PrioritySlot, Integer>(PrioritySlot.class, Codec.INTEGER, () -> (PrioritySlot.class), );
}
}