UICommandBuilder class
Пакет: com.hypixel.hytale.server.core.ui.builder
Файл: com/hypixel/hytale/server/core/ui/builder/UICommandBuilder.java
Поля (8)
| Модификаторы | Тип | Имя |
|---|---|---|
final |
Map<Class, Codec> |
CODEC_MAP |
|
BsonDocument |
var3 |
|
Codec |
var3 |
|
Codec |
var3 |
|
Codec |
var3 |
|
|
var3 |
|
BsonArray |
var4 |
|
BsonArray |
var4 |
Методы (7)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
abstract |
throw new |
IllegalArgumentExceptionthrow new IllegalArgumentException("Method only accepts references without a direct value") |
|
|
for for(Object var8 : var2) |
|
|
for for(Object var6 : var2) |
|
|
if if(var3 == null) |
|
|
if if(var3 == null) |
|
|
if if(var3 == null) |
|
|
if if(var3 == null) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.server.core.ui.builder;
class="kw">import com.hypixel.hytale.codec.Codec;
class="kw">import com.hypixel.hytale.codec.EmptyExtraInfo;
class="kw">import com.hypixel.hytale.protocol.packets.interface_.CustomUICommand;
class="kw">import com.hypixel.hytale.protocol.packets.interface_.CustomUICommandType;
class="kw">import com.hypixel.hytale.server.core.Message;
class="kw">import com.hypixel.hytale.server.core.inventory.ItemStack;
class="kw">import com.hypixel.hytale.server.core.ui.Anchor;
class="kw">import com.hypixel.hytale.server.core.ui.Area;
class="kw">import com.hypixel.hytale.server.core.ui.DropdownEntryInfo;
class="kw">import com.hypixel.hytale.server.core.ui.ItemGridSlot;
class="kw">import com.hypixel.hytale.server.core.ui.LocalizableString;
class="kw">import com.hypixel.hytale.server.core.ui.PatchStyle;
class="kw">import com.hypixel.hytale.server.core.ui.Value;
class="kw">import com.hypixel.hytale.server.core.ui.ValueCodec;
class="kw">import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap;
class="kw">import it.unimi.dsi.fastutil.objects.ObjectArrayList;
class="kw">import java.util.List;
class="kw">import java.util.Map;
class="kw">import javax.annotation.Nonnull;
class="kw">import org.bson.BsonArray;
class="kw">import org.bson.BsonBoolean;
class="kw">import org.bson.BsonDocument;
class="kw">import org.bson.BsonDouble;
class="kw">import org.bson.BsonInt32;
class="kw">import org.bson.BsonNull;
class="kw">import org.bson.BsonString;
class="kw">import org.bson.BsonValue;
class="kw">public class UICommandBuilder {
class="kw">private class="kw">static class="kw">final Map<Class, Codec> CODEC_MAP = new Object2ObjectOpenHashMap();
class="kw">public class="kw">static class="kw">final CustomUICommand[] EMPTY_COMMAND_ARRAY = new CustomUICommand[0];
@Nonnull
class="kw">private class="kw">final List<CustomUICommand> commands = new ObjectArrayList();
class="kw">public UICommandBuilder() {
}
@Nonnull
class="kw">public UICommandBuilder clear(String var1) {
this.commands.add(new CustomUICommand(CustomUICommandType.Clear, var1, null, null));
class="kw">return this;
}
@Nonnull
class="kw">public UICommandBuilder remove(String var1) {
this.commands.add(new CustomUICommand(CustomUICommandType.Remove, var1, null, null));
class="kw">return this;
}
@Nonnull
class="kw">public UICommandBuilder append(String var1) {
this.commands.add(new CustomUICommand(CustomUICommandType.Append, null, null, var1));
class="kw">return this;
}
@Nonnull
class="kw">public UICommandBuilder append(String var1, String var2) {
this.commands.add(new CustomUICommand(CustomUICommandType.Append, var1, null, var2));
class="kw">return this;
}
@Nonnull
class="kw">public UICommandBuilder appendInline(String var1, String var2) {
this.commands.add(new CustomUICommand(CustomUICommandType.AppendInline, var1, null, var2));
class="kw">return this;
}
@Nonnull
class="kw">public UICommandBuilder insertBefore(String var1, String var2) {
this.commands.add(new CustomUICommand(CustomUICommandType.InsertBefore, var1, null, var2));
class="kw">return this;
}
@Nonnull
class="kw">public UICommandBuilder insertBeforeInline(String var1, String var2) {
this.commands.add(new CustomUICommand(CustomUICommandType.InsertBeforeInline, var1, null, var2));
class="kw">return this;
}
@Nonnull
@Deprecated
class="kw">private UICommandBuilder setBsonValue(String var1, BsonValue var2) {
BsonDocument var3 = new BsonDocument();
var3.put("0", var2);
this.commands.add(new CustomUICommand(CustomUICommandType.Set, var1, var3.toJson(), null));
class="kw">return this;
}
@Nonnull
class="kw">public <T> UICommandBuilder set(String var1, @Nonnull Value<T> var2) {
if (var2.getValue() != null) {
throw new IllegalArgumentException("Method only accepts references without a direct value");
} else {
class="kw">return this.setBsonValue(var1, ValueCodec.REFERENCE_ONLY.encode(var2));
}
}
@Nonnull
class="kw">public UICommandBuilder setNull(String var1) {
class="kw">return this.setBsonValue(var1, BsonNull.VALUE);
}
@Nonnull
class="kw">public UICommandBuilder set(String var1, @Nonnull String var2) {
class="kw">return this.setBsonValue(var1, new BsonString(var2));
}
@Nonnull
class="kw">public UICommandBuilder set(String var1, @Nonnull Message var2) {
class="kw">return this.setBsonValue(var1, Message.CODEC.encode(var2, EmptyExtraInfo.EMPTY));
}
@Nonnull
class="kw">public UICommandBuilder set(String var1, boolean var2) {
class="kw">return this.setBsonValue(var1, new BsonBoolean(var2));
}
@Nonnull
class="kw">public UICommandBuilder set(String var1, float var2) {
class="kw">return this.setBsonValue(var1, new BsonDouble(var2));
}
@Nonnull
class="kw">public UICommandBuilder set(String var1, int var2) {
class="kw">return this.setBsonValue(var1, new BsonInt32(var2));
}
@Nonnull
class="kw">public UICommandBuilder set(String var1, double var2) {
class="kw">return this.setBsonValue(var1, new BsonDouble(var2));
}
@Nonnull
class="kw">public UICommandBuilder setObject(String var1, @Nonnull Object var2) {
Codec var3 = CODEC_MAP.get(var2.getClass());
if (var3 == null) {
throw new IllegalArgumentException(var2.getClass().getName() + " is not a compatible class");
} else {
class="kw">return this.setBsonValue(var1, var3.encode(var2));
}
}
@Nonnull
class="kw">public <T> UICommandBuilder set(String var1, @Nonnull T[] var2) {
Codec var3 = CODEC_MAP.get(var2.getClass().getComponentType());
if (var3 == null) {
throw new IllegalArgumentException(var2.getClass().getName() + " is not a compatible class");
}
BsonArray var4 = new BsonArray();
for (Object var8 : var2) {
var4.add(var3.encode(var8));
}
class="kw">return this.setBsonValue(var1, var4);
}
@Nonnull
class="kw">public <T> UICommandBuilder set(String var1, @Nonnull List<T> var2) {
Codec var3 = null;
BsonArray var4 = new BsonArray();
for (Object var6 : var2) {
if (var3 == null) {
var3 = CODEC_MAP.get(var6.getClass());
if (var3 == null) {
throw new IllegalArgumentException(var2.getClass().getName() + " is not a compatible class");
}
}
var4.add(var3.encode(var6));
}
class="kw">return this.setBsonValue(var1, var4);
}
@Nonnull
class="kw">public CustomUICommand[] getCommands() {
class="kw">return this.commands.toArray(CustomUICommand[]::new);
}
class="kw">static {
CODEC_MAP.put(Area.class, Area.CODEC);
CODEC_MAP.put(ItemGridSlot.class, ItemGridSlot.CODEC);
CODEC_MAP.put(ItemStack.class, ItemStack.CODEC);
CODEC_MAP.put(LocalizableString.class, LocalizableString.CODEC);
CODEC_MAP.put(PatchStyle.class, PatchStyle.CODEC);
CODEC_MAP.put(DropdownEntryInfo.class, DropdownEntryInfo.CODEC);
CODEC_MAP.put(Anchor.class, Anchor.CODEC);
}
}