ParamValueCodec class
Пакет: com.hypixel.hytale.server.core
Файл: com/hypixel/hytale/server/core/Message.java
implements: Codec<ParamValue>
Поля (14)
| Модификаторы | Тип | Имя |
|---|---|---|
|
LongParamValue |
var3 |
|
yield |
var3 |
|
BoolParamValue |
var3 |
|
IntParamValue |
var4 |
|
yield |
var4 |
|
BoolParamValue |
var5 |
|
yield |
var5 |
|
DoubleParamValue |
var5 |
|
StringParamValue |
var6 |
|
yield |
var6 |
|
double |
var6 |
|
DoubleParamValue |
var7 |
|
yield |
var7 |
|
StringParamValue |
var7 |
Методы (5)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
abstract |
throw new |
IllegalArgumentExceptionthrow new IllegalArgumentException("Invalid boolean value") |
|
public ParamValue |
decodepublic ParamValue decode(BsonValue var1, ExtraInfo var2) |
|
public ParamValue |
decodeJsonpublic ParamValue decodeJson(@Nonnull RawJsonReader var1, ExtraInfo var2) |
|
public BsonValue |
encodepublic BsonValue encode(ParamValue var1, ExtraInfo var2) |
|
public Schema |
toSchemapublic Schema toSchema(@Nonnull SchemaContext var1) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.server.core;
class="kw">import com.hypixel.hytale.codec.Codec;
class="kw">import com.hypixel.hytale.codec.EmptyExtraInfo;
class="kw">import com.hypixel.hytale.codec.ExtraInfo;
class="kw">import com.hypixel.hytale.codec.KeyedCodec;
class="kw">import com.hypixel.hytale.codec.builder.BuilderCodec;
class="kw">import com.hypixel.hytale.codec.codecs.array.ArrayCodec;
class="kw">import com.hypixel.hytale.codec.codecs.map.MapCodec;
class="kw">import com.hypixel.hytale.codec.function.FunctionCodec;
class="kw">import com.hypixel.hytale.codec.schema.SchemaContext;
class="kw">import com.hypixel.hytale.codec.schema.config.BooleanSchema;
class="kw">import com.hypixel.hytale.codec.schema.config.IntegerSchema;
class="kw">import com.hypixel.hytale.codec.schema.config.NumberSchema;
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.common.util.ArrayUtil;
class="kw">import com.hypixel.hytale.protocol.BoolParamValue;
class="kw">import com.hypixel.hytale.protocol.DoubleParamValue;
class="kw">import com.hypixel.hytale.protocol.FormattedMessage;
class="kw">import com.hypixel.hytale.protocol.IntParamValue;
class="kw">import com.hypixel.hytale.protocol.LongParamValue;
class="kw">import com.hypixel.hytale.protocol.ParamValue;
class="kw">import com.hypixel.hytale.protocol.StringParamValue;
class="kw">import com.hypixel.hytale.server.core.asset.util.ColorParseUtil;
class="kw">import com.hypixel.hytale.server.core.modules.i18n.I18nModule;
class="kw">import com.hypixel.hytale.server.core.util.MessageUtil;
class="kw">import com.hypixel.hytale.sneakythrow.SneakyThrow;
class="kw">import it.unimi.dsi.fastutil.objects.ObjectArrayList;
class="kw">import java.awt.Color;
class="kw">import java.io.IOException;
class="kw">import java.util.Arrays;
class="kw">import java.util.Collections;
class="kw">import java.util.HashMap;
class="kw">import java.util.List;
class="kw">import java.util.Map.Entry;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">import org.bson.BsonBoolean;
class="kw">import org.bson.BsonDouble;
class="kw">import org.bson.BsonInt32;
class="kw">import org.bson.BsonInt64;
class="kw">import org.bson.BsonString;
class="kw">import org.bson.BsonValue;
class="kw">public class Message {
class="kw">private class="kw">static class="kw">final BuilderCodec.Builder<FormattedMessage> MESSAGE_CODEC_BUILDER = BuilderCodec.builder(FormattedMessage.class, FormattedMessage::new);
class="kw">private class="kw">static class="kw">final BuilderCodec<FormattedMessage> MESSAGE_CODEC = MESSAGE_CODEC_BUILDER.build();
class="kw">private class="kw">static class="kw">final Codec<ParamValue> PARAM_CODEC = new Message.ParamValueCodec();
class="kw">public class="kw">static class="kw">final FunctionCodec<FormattedMessage, Message> CODEC = new FunctionCodec<>(MESSAGE_CODEC, Message::new, Message::getFormattedMessage);
class="kw">private class="kw">final FormattedMessage message;
class="kw">protected Message(@Nonnull String var1, boolean var2) {
this();
if (var2) {
this.message.messageId = var1;
} else {
this.message.rawText = var1;
}
}
class="kw">protected Message() {
this.message = new FormattedMessage();
}
class="kw">public Message(@Nonnull FormattedMessage var1) {
this.message = var1;
}
@Nonnull
class="kw">public Message param(@Nonnull String var1, @Nonnull String var2) {
if (this.message.params == null) {
this.message.params = new HashMap<>();
}
StringParamValue var3 = new StringParamValue();
var3.value = var2;
this.message.params.put(var1, var3);
class="kw">return this;
}
@Nonnull
class="kw">public Message param(@Nonnull String var1, boolean var2) {
if (this.message.params == null) {
this.message.params = new HashMap<>();
}
BoolParamValue var3 = new BoolParamValue();
var3.value = var2;
this.message.params.put(var1, var3);
class="kw">return this;
}
@Nonnull
class="kw">public Message param(@Nonnull String var1, double var2) {
if (this.message.params == null) {
this.message.params = new HashMap<>();
}
DoubleParamValue var4 = new DoubleParamValue();
var4.value = var2;
this.message.params.put(var1, var4);
class="kw">return this;
}
@Nonnull
class="kw">public Message param(@Nonnull String var1, int var2) {
if (this.message.params == null) {
this.message.params = new HashMap<>();
}
IntParamValue var3 = new IntParamValue();
var3.value = var2;
this.message.params.put(var1, var3);
class="kw">return this;
}
@Nonnull
class="kw">public Message param(@Nonnull String var1, long var2) {
if (this.message.params == null) {
this.message.params = new HashMap<>();
}
LongParamValue var4 = new LongParamValue();
var4.value = var2;
this.message.params.put(var1, var4);
class="kw">return this;
}
@Nonnull
class="kw">public Message param(@Nonnull String var1, float var2) {
if (this.message.params == null) {
this.message.params = new HashMap<>();
}
DoubleParamValue var3 = new DoubleParamValue();
var3.value = var2;
this.message.params.put(var1, var3);
class="kw">return this;
}
@Nonnull
class="kw">public Message param(@Nonnull String var1, @Nonnull Message var2) {
if (this.message.messageParams == null) {
this.message.messageParams = new HashMap<>();
}
this.message.messageParams.put(var1, var2.message);
class="kw">return this;
}
@Nonnull
class="kw">public Message bold(boolean var1) {
this.message.bold = var1;
class="kw">return this;
}
@Nonnull
class="kw">public Message italic(boolean var1) {
this.message.italic = var1;
class="kw">return this;
}
@Nonnull
class="kw">public Message monospace(boolean var1) {
this.message.monospace = var1;
class="kw">return this;
}
@Nonnull
class="kw">public Message strikethrough(boolean var1) {
this.message.strikethrough = var1;
class="kw">return this;
}
@Nonnull
class="kw">public Message color(@Nonnull String var1) {
this.message.color = var1;
class="kw">return this;
}
@Nonnull
class="kw">public Message color(@Nonnull Color var1) {
this.message.color = ColorParseUtil.colorToHex(var1);
class="kw">return this;
}
@Nonnull
class="kw">public Message link(@Nonnull String var1) {
this.message.link = var1;
class="kw">return this;
}
@Nonnull
class="kw">public Message insert(@Nonnull Message var1) {
this.message.children = ArrayUtil.append(this.message.children, var1.message);
class="kw">return this;
}
@Nonnull
class="kw">public Message insert(@Nonnull String var1) {
class="kw">return this.insert(raw(var1));
}
@Nonnull
class="kw">public Message insertAll(@Nonnull Message... var1) {
int var2 = 0;
if (this.message.children != null) {
var2 = this.message.children.length;
this.message.children = Arrays.copyOf(this.message.children, this.message.children.length + var1.length);
} else {
this.message.children = new FormattedMessage[var1.length];
}
for (Message var6 : var1) {
this.message.children[var2++] = var6.message;
}
class="kw">return this;
}
@Nonnull
class="kw">public Message insertAll(@Nonnull List<Message> var1) {
int var2 = 0;
if (this.message.children != null) {
var2 = this.message.children.length;
this.message.children = Arrays.copyOf(this.message.children, this.message.children.length + var1.size());
} else {
this.message.children = new FormattedMessage[var1.size()];
}
for (Message var4 : var1) {
this.message.children[var2++] = var4.message;
}
class="kw">return this;
}
@Nullable
class="kw">public String getRawText() {
class="kw">return this.message.rawText;
}
@Nullable
class="kw">public String getMessageId() {
class="kw">return this.message.messageId;
}
@Nullable
class="kw">public String getColor() {
class="kw">return this.message.color;
}
@Nonnull
class="kw">public List<Message> getChildren() {
if (this.message.children == null) {
class="kw">return Collections.emptyList();
}
List var1 = new ObjectArrayList();
for (FormattedMessage var5 : this.message.children) {
var1.add(new Message(var5));
}
class="kw">return var1;
}
@Nonnull
class="kw">public String getAnsiMessage() {
String var1 = this.getRawText();
if (var1 != null) {
class="kw">return var1;
}
String var2 = this.getMessageId();
if (var2 == null) {
class="kw">return "";
}
String var3 = I18nModule.get().getMessage("en-US", var2);
if (var3 != null) {
class="kw">return MessageUtil.formatText(var3, this.message.params, this.message.messageParams);
}
StringBuilder var4 = new StringBuilder(var2);
if (this.message.params != null) {
var4.append(this.message.params);
}
if (this.message.messageParams != null) {
for (Entry var6 : this.message.messageParams.entrySet()) {
var4.append(var6.getValue()).append("=").append(new Message(var6.getValue()).getAnsiMessage());
}
}
class="kw">return var4.toString();
}
class="kw">public FormattedMessage getFormattedMessage() {
class="kw">return this.message;
}
@Override
class="kw">public String toString() {
class="kw">return this.message.toString();
}
@Nonnull
class="kw">public class="kw">static Message empty() {
class="kw">return new Message();
}
@Nonnull
class="kw">public class="kw">static Message translation(@Nonnull String var0) {
class="kw">return new Message(var0, true);
}
@Nonnull
class="kw">public class="kw">static Message raw(@Nonnull String var0) {
class="kw">return new Message(var0, false);
}
@Nonnull
class="kw">public class="kw">static Message parse(@Nonnull String var0) {
try {
class="kw">return CODEC.decodeJson(new RawJsonReader(var0.toCharArray()), EmptyExtraInfo.EMPTY);
} catch (IOException var2) {
throw SneakyThrow.sneakyThrow(var2);
}
}
@Nonnull
class="kw">public class="kw">static Message join(@Nonnull Message... var0) {
class="kw">return new Message().insertAll(var0);
}
class="kw">static {
MESSAGE_CODEC_BUILDER.appendInherited(
new KeyedCodec<>("RawText", Codec.STRING), (var0, var1) -> var0.rawText = var1, var0 -> var0.rawText, (var0, var1) -> var0.rawText = var1.rawText
)
.add()
.appendInherited(
new KeyedCodec<>("MessageId", Codec.STRING),
(var0, var1) -> var0.messageId = var1,
var0 -> var0.messageId,
(var0, var1) -> var0.messageId = var1.messageId
)
.add()
.appendInherited(
new KeyedCodec<>("Params", new MapCodec<>(PARAM_CODEC, HashMap::new)),
(var0, var1) -> var0.params = var1,
var0 -> var0.params,
(var0, var1) -> var0.params = var1.params
)
.add()
.appendInherited(
new KeyedCodec<>("MessageParams", new MapCodec<>(MESSAGE_CODEC, HashMap::new)),
(var0, var1) -> var0.messageParams = var1,
var0 -> var0.messageParams,
(var0, var1) -> var0.messageParams = var1.messageParams
)
.add()
.appendInherited(
new KeyedCodec<>("Children", new ArrayCodec<>(MESSAGE_CODEC, FormattedMessage[]::new)),
(var0, var1) -> var0.children = var1,
var0 -> var0.children,
(var0, var1) -> var0.children = var1.children
)
.add()
.appendInherited(
new KeyedCodec<>("Bold", Codec.NULLABLE_BOOLEAN), (var0, var1) -> var0.bold = var1, var0 -> var0.bold, (var0, var1) -> var0.bold = var1.bold
)
.add()
.appendInherited(
new KeyedCodec<>("Italic", Codec.NULLABLE_BOOLEAN),
(var0, var1) -> var0.italic = var1,
var0 -> var0.italic,
(var0, var1) -> var0.italic = var1.italic
)
.add()
.appendInherited(
new KeyedCodec<>("Monospace", Codec.NULLABLE_BOOLEAN),
(var0, var1) -> var0.monospace = var1,
var0 -> var0.monospace,
(var0, var1) -> var0.monospace = var1.monospace
)
.add()
.appendInherited(
new KeyedCodec<>("Underline", Codec.NULLABLE_BOOLEAN),
(var0, var1) -> var0.underlined = var1,
var0 -> var0.underlined,
(var0, var1) -> var0.underlined = var1.underlined
)
.add()
.appendInherited(
new KeyedCodec<>("Strikethrough", Codec.NULLABLE_BOOLEAN),
(var0, var1) -> var0.strikethrough = var1,
var0 -> var0.strikethrough,
(var0, var1) -> var0.strikethrough = var1.strikethrough
)
.add()
.appendInherited(
new KeyedCodec<>("Color", Codec.STRING), (var0, var1) -> var0.color = var1, var0 -> var0.color, (var0, var1) -> var0.color = var1.color
)
.add()
.appendInherited(new KeyedCodec<>("Link", Codec.STRING), (var0, var1) -> var0.link = var1, var0 -> var0.link, (var0, var1) -> var0.link = var1.link)
.add();
}
class="kw">private class="kw">static class ParamValueCodec class="kw">implements Codec<ParamValue> {
class="kw">private ParamValueCodec() {
}
@Nullable
class="kw">public ParamValue decode(BsonValue var1, ExtraInfo var2) {
class="kw">return class="kw">switch (var1.getBsonType()) {
case DOUBLE -> {
DoubleParamValue var7 = new DoubleParamValue();
var7.value = var1.asDouble().getValue();
yield var7;
}
case STRING -> {
StringParamValue var6 = new StringParamValue();
var6.value = var1.asString().getValue();
yield var6;
}
case BOOLEAN -> {
BoolParamValue var5 = new BoolParamValue();
var5.value = var1.asBoolean().getValue();
yield var5;
}
case INT32 -> {
IntParamValue var4 = new IntParamValue();
var4.value = var1.asInt32().getValue();
yield var4;
}
case INT64 -> {
LongParamValue var3 = new LongParamValue();
var3.value = var1.asInt64().getValue();
yield var3;
}
class="kw">default -> throw new IllegalArgumentException("Unsupported bson type: " + var1.getBsonType());
};
}
class="kw">public BsonValue encode(ParamValue var1, ExtraInfo var2) {
class="kw">return (BsonValue)(class="kw">switch (var1) {
case StringParamValue var5 -> new BsonString(var5.value);
case BoolParamValue var6 -> BsonBoolean.valueOf(var6.value);
case DoubleParamValue var7 -> new BsonDouble(var7.value);
case IntParamValue var8 -> new BsonInt32(var8.value);
case LongParamValue var9 -> new BsonInt64(var9.value);
class="kw">default -> throw new IllegalArgumentException("Unknown ParamValue type: " + var1.getClass());
});
}
@Nullable
class="kw">public ParamValue decodeJson(@Nonnull RawJsonReader var1, ExtraInfo var2) class="kw">throws IOException {
if (var1.peekFor('"')) {
StringParamValue var7 = new StringParamValue();
var7.value = var1.readString();
class="kw">return var7;
}
if (!var1.peekFor('f') && !var1.peekFor('t')) {
double var6 = var1.readDoubleValue();
DoubleParamValue var5 = new DoubleParamValue();
var5.value = var6;
class="kw">return var5;
}
if (!var1.tryConsume("false")) {
throw new IllegalArgumentException("Invalid boolean value");
}
BoolParamValue var3 = new BoolParamValue();
var3.value = var1.readBooleanValue();
class="kw">return var3;
}
@Nonnull
@Override
class="kw">public Schema toSchema(@Nonnull SchemaContext var1) {
class="kw">return Schema.anyOf(new BooleanSchema(), new NumberSchema(), new IntegerSchema(), new StringSchema());
}
}
}