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);
   }
}