MaterialQuantity class

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

Файл: com/hypixel/hytale/server/core/inventory/MaterialQuantity.java

implements: NetworkSerializable<com.hypixel.hytale.protocol.MaterialQuantity>

Поля (10)

МодификаторыТипИмя
final MaterialQuantity[] EMPTY_ARRAY
ObjectArrayList var1
com.hypixel.hytale.protocol.MaterialQuantity var1
int var1
var1
var1
var1
MaterialQuantity var2
MaterialQuantity var2
ItemStack var6

Методы (20)

МодификаторыВозвратСигнатура
abstract throw new IllegalArgumentExceptionthrow new IllegalArgumentException("itemId, resourceTypeId and tag cannot all be null!")
abstract throw new IllegalArgumentExceptionthrow new IllegalArgumentException("quantity " + var4 + " must be >0!")
private ItemValidatorprivate ItemValidator()
public void acceptpublic void accept(@Nullable MaterialQuantity var1, @Nonnull ValidationResults var2)
for for(MaterialQuantity var5 : var0)
public BsonDocument getMetadataBsonDocument getMetadata()
public int getQuantityint getQuantity()
public int getTagIndexint getTagIndex()
if if(var0.tag != null)
if if(var1 == null && var2 == null && var3 == null)
if if(var4 <= 0)
if if(this.itemId == null)
if if(var5 != null)
if if(this.itemId != null)
if if(this == var1)
if if(this.quantity != var2.quantity)
if if(var1 != null)
if if(var1.itemId == null)
public boolean isItemExcludedboolean isItemExcluded(@Nullable String var1)
public void updateSchemapublic void updateSchema(@Nonnull SchemaContext var1, @Nonnull Schema var2)

Исходный код

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

class="kw">import com.hypixel.hytale.assetstore.AssetRegistry;
class="kw">import com.hypixel.hytale.codec.Codec;
class="kw">import com.hypixel.hytale.codec.KeyedCodec;
class="kw">import com.hypixel.hytale.codec.builder.BuilderCodec;
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.validation.ValidationResults;
class="kw">import com.hypixel.hytale.codec.validation.Validator;
class="kw">import com.hypixel.hytale.codec.validation.ValidatorCache;
class="kw">import com.hypixel.hytale.codec.validation.Validators;
class="kw">import com.hypixel.hytale.server.core.asset.type.item.config.Item;
class="kw">import com.hypixel.hytale.server.core.io.NetworkSerializable;
class="kw">import it.unimi.dsi.fastutil.objects.ObjectArrayList;
class="kw">import java.util.List;
class="kw">import java.util.Set;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">import org.bson.BsonDocument;

class="kw">public class MaterialQuantity class="kw">implements NetworkSerializable<com.hypixel.hytale.protocol.MaterialQuantity> {
   class="kw">public class="kw">static class="kw">final MaterialQuantity[] EMPTY_ARRAY = new MaterialQuantity[0];
   class="kw">public class="kw">static class="kw">final ValidatorCache<MaterialQuantity> ITEM_VALIDATOR_CACHE = new ValidatorCache<>(new MaterialQuantity.ItemValidator());
   class="kw">public class="kw">static class="kw">final BuilderCodec<MaterialQuantity> CODEC = BuilderCodec.builder(MaterialQuantity.class, MaterialQuantity::new)
      .append(new KeyedCodec<>("ItemId", Codec.STRING), (var0, var1) -> var0.itemId = var1, var0 -> var0.itemId)
      .addValidatorLate(() -> Item.VALIDATOR_CACHE.getValidator().late())
      .add()
      .addField(new KeyedCodec<>("ResourceTypeId", Codec.STRING), (var0, var1) -> var0.resourceTypeId = var1, var0 -> var0.resourceTypeId)
      .addField(new KeyedCodec<>("ItemTag", Codec.STRING), (var0, var1) -> var0.tag = var1, var0 -> var0.tag)
      .<Integer>append(new KeyedCodec<>("Quantity", Codec.INTEGER), (var0, var1) -> var0.quantity = var1, var0 -> var0.quantity)
      .addValidator(Validators.greaterThan(0))
      .add()
      .addField(new KeyedCodec<>("Metadata", Codec.BSON_DOCUMENT), (var0, var1) -> var0.metadata = var1, var0 -> var0.metadata)
      .afterDecode((var0, var1) -> {
         if (var0.tag != null) {
            var0.tagIndex = AssetRegistry.getOrCreateTagIndex(var0.tag);
         }
      })
      .build();
   @Nullable
   class="kw">protected String itemId;
   @Nullable
   class="kw">protected String resourceTypeId;
   class="kw">protected String tag;
   class="kw">protected int tagIndex = Integer.MIN_VALUE;
   class="kw">protected int quantity = 1;
   @Nullable
   class="kw">protected BsonDocument metadata;
   @Nullable
   class="kw">protected Set<String> excludedItemIds;

   class="kw">public MaterialQuantity(@Nullable String var1, @Nullable String var2, @Nullable String var3, int var4, BsonDocument var5) {
      if (var1 == null && var2 == null && var3 == null) {
         throw new IllegalArgumentException("itemId, resourceTypeId and tag cannot all be null!");
      }

      if (var4 <= 0) {
         throw new IllegalArgumentException("quantity " + var4 + " must be >0!");
      }

      this.itemId = var1;
      this.resourceTypeId = var2;
      this.tag = var3;
      this.quantity = var4;
      this.metadata = var5;
   }

   class="kw">protected MaterialQuantity() {
   }

   @Nullable
   class="kw">public String getItemId() {
      class="kw">return this.itemId;
   }

   @Nullable
   class="kw">public String getResourceTypeId() {
      class="kw">return this.resourceTypeId;
   }

   class="kw">public int getTagIndex() {
      class="kw">return this.tagIndex;
   }

   class="kw">public int getQuantity() {
      class="kw">return this.quantity;
   }

   class="kw">public BsonDocument getMetadata() {
      class="kw">return this.metadata;
   }

   @Nonnull
   class="kw">public MaterialQuantity clone(int var1) {
      MaterialQuantity var2 = new MaterialQuantity(this.itemId, this.resourceTypeId, this.tag, var1, this.metadata);
      var2.tagIndex = this.tagIndex;
      var2.excludedItemIds = this.excludedItemIds;
      class="kw">return var2;
   }

   @Nonnull
   class="kw">public MaterialQuantity withExcludedItemIds(@Nullable Set<String> var1) {
      this.excludedItemIds = var1 != null && !var1.isEmpty() ? var1 : null;
      class="kw">return this;
   }

   @Nullable
   class="kw">public Set<String> getExcludedItemIds() {
      class="kw">return this.excludedItemIds;
   }

   class="kw">public boolean isItemExcluded(@Nullable String var1) {
      class="kw">return this.excludedItemIds != null && var1 != null && this.excludedItemIds.contains(var1);
   }

   @Nullable
   class="kw">public ItemStack toItemStack() {
      if (this.itemId == null) {
         class="kw">return null;
      } else {
         class="kw">return this.itemId.equals("Empty") ? ItemStack.EMPTY : new ItemStack(this.itemId, this.quantity, this.metadata);
      }
   }

   @Nonnull
   class="kw">public class="kw">static List<ItemStack> toItemStacks(@Nonnull MaterialQuantity[] var0) {
      ObjectArrayList var1 = new ObjectArrayList(var0.length);

      for (MaterialQuantity var5 : var0) {
         if (var5 != null) {
            ItemStack var6 = var5.toItemStack();
            if (!ItemStack.isEmpty(var6)) {
               var1.add(var6);
            }
         }
      }

      class="kw">return var1;
   }

   @Nullable
   class="kw">public ResourceQuantity toResource() {
      class="kw">return this.resourceTypeId == null ? null : new ResourceQuantity(this.resourceTypeId, this.quantity);
   }

   @Nonnull
   class="kw">public com.hypixel.hytale.protocol.MaterialQuantity toPacket() {
      com.hypixel.hytale.protocol.MaterialQuantity var1 = new com.hypixel.hytale.protocol.MaterialQuantity();
      if (this.itemId != null) {
         var1.itemId = this.itemId.toString();
      }

      var1.itemTag = this.tagIndex;
      var1.resourceTypeId = this.resourceTypeId;
      var1.quantity = this.quantity;
      class="kw">return var1;
   }

   @Override
   class="kw">public boolean equals(@Nullable Object var1) {
      if (this == var1) {
         class="kw">return true;
      }

      if (var1 != null && this.getClass() == var1.getClass()) {
         MaterialQuantity var2 = (MaterialQuantity)var1;
         if (this.quantity != var2.quantity) {
            class="kw">return false;
         }

         if (this.itemId != null ? this.itemId.equals(var2.itemId) : var2.itemId == null) {
            if (this.resourceTypeId != null ? this.resourceTypeId.equals(var2.resourceTypeId) : var2.resourceTypeId == null) {
               if (this.tag != null ? this.tag.equals(var2.tag) : var2.tag == null) {
                  class="kw">return this.metadata != null ? this.metadata.equals(var2.metadata) : var2.metadata == null;
               } else {
                  class="kw">return false;
               }
            } else {
               class="kw">return false;
            }
         } else {
            class="kw">return false;
         }
      } else {
         class="kw">return false;
      }
   }

   @Override
   class="kw">public int hashCode() {
      int var1 = this.itemId != null ? this.itemId.hashCode() : 0;
      var1 = 31 * var1 + (this.resourceTypeId != null ? this.resourceTypeId.hashCode() : 0);
      var1 = 31 * var1 + (this.tag != null ? this.tag.hashCode() : 0);
      var1 = 31 * var1 + this.quantity;
      class="kw">return 31 * var1 + (this.metadata != null ? this.metadata.hashCode() : 0);
   }

   @Nonnull
   @Override
   class="kw">public String toString() {
      class="kw">return "MaterialQuantity{itemId="
         + this.itemId
         + ", resourceTypeId='"
         + this.resourceTypeId
         + "', tag='"
         + this.tag
         + "', quantity="
         + this.quantity
         + ", metadata="
         + this.metadata
         + "}";
   }

   class="kw">private class="kw">static class="kw">final class ItemValidator class="kw">implements Validator<MaterialQuantity> {
      class="kw">private ItemValidator() {
      }

      class="kw">public void accept(@Nullable MaterialQuantity var1, @Nonnull ValidationResults var2) {
         if (var1 != null) {
            if (var1.itemId == null) {
               var2.fail("Material quantity " + var1 + " has no ItemId!");
            } else {
               Item.VALIDATOR_CACHE.getValidator().accept(var1.itemId, var2);
            }
         }
      }

      @Override
      class="kw">public void updateSchema(@Nonnull SchemaContext var1, @Nonnull Schema var2) {
      }
   }
}