SoloInventoryCondition class

Пакет: com.hypixel.hytale.builtin.adventure.objectives.config.taskcondition

Файл: com/hypixel/hytale/builtin/adventure/objectives/config/taskcondition/SoloInventoryCondition.java

extends: TaskConditionAsset

Поля (7)

МодификаторыТипИмя
int var1
var1
var1
SoloInventoryCondition var2
CombinedItemContainer var4
CombinedItemContainer var4
ItemStack var5

Методы (9)

МодификаторыВозвратСигнатура
public BlockTagOrItemIdField getBlockTypeOrTagTaskBlockTagOrItemIdField getBlockTypeOrTagTask()
public int getQuantityint getQuantity()
if if(this.holdInHand)
if if(var5 == null)
if if(this.consumeOnCompletion)
if if(this == var1)
if if(this.quantity != var2.quantity)
public boolean isConsumeOnCompletionboolean isConsumeOnCompletion()
public boolean isHoldInHandboolean isHoldInHand()

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.adventure.objectives.config.taskcondition;

class="kw">import com.hypixel.hytale.builtin.adventure.objectives.config.task.BlockTagOrItemIdField;
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.validation.Validators;
class="kw">import com.hypixel.hytale.component.ComponentAccessor;
class="kw">import com.hypixel.hytale.component.Ref;
class="kw">import com.hypixel.hytale.server.core.inventory.InventoryComponent;
class="kw">import com.hypixel.hytale.server.core.inventory.ItemStack;
class="kw">import com.hypixel.hytale.server.core.inventory.container.CombinedItemContainer;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
class="kw">import java.util.Set;
class="kw">import java.util.UUID;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;

class="kw">public class SoloInventoryCondition class="kw">extends TaskConditionAsset {
   @Nonnull
   class="kw">public class="kw">static class="kw">final BuilderCodec<SoloInventoryCondition> CODEC = BuilderCodec.builder(SoloInventoryCondition.class, SoloInventoryCondition::new)
      .append(
         new KeyedCodec<>("BlockTagOrItemId", BlockTagOrItemIdField.CODEC), (var0, var1) -> var0.blockTypeOrTagTask = var1, var0 -> var0.blockTypeOrTagTask
      )
      .addValidator(Validators.nonNull())
      .add()
      .<Integer>append(new KeyedCodec<>("Quantity", Codec.INTEGER), (var0, var1) -> var0.quantity = var1, var0 -> var0.quantity)
      .addValidator(Validators.greaterThan(0))
      .add()
      .append(new KeyedCodec<>("ConsumeOnCompletion", Codec.BOOLEAN), (var0, var1) -> var0.consumeOnCompletion = var1, var0 -> var0.consumeOnCompletion)
      .add()
      .append(new KeyedCodec<>("HoldInHand", Codec.BOOLEAN), (var0, var1) -> var0.holdInHand = var1, var0 -> var0.holdInHand)
      .add()
      .build();
   class="kw">protected BlockTagOrItemIdField blockTypeOrTagTask;
   class="kw">protected int quantity = 1;
   class="kw">protected boolean consumeOnCompletion;
   class="kw">protected boolean holdInHand;

   class="kw">public SoloInventoryCondition() {
   }

   class="kw">public BlockTagOrItemIdField getBlockTypeOrTagTask() {
      class="kw">return this.blockTypeOrTagTask;
   }

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

   class="kw">public boolean isConsumeOnCompletion() {
      class="kw">return this.consumeOnCompletion;
   }

   class="kw">public boolean isHoldInHand() {
      class="kw">return this.holdInHand;
   }

   @Override
   class="kw">public boolean isConditionFulfilled(@Nonnull ComponentAccessor<EntityStore> var1, @Nonnull Ref<EntityStore> var2, Set<UUID> var3) {
      if (this.holdInHand) {
         ItemStack var5 = InventoryComponent.getItemInHand(var1, var2);
         if (var5 == null) {
            class="kw">return false;
         } else {
            class="kw">return !this.blockTypeOrTagTask.isBlockTypeIncluded(var5.getItemId()) ? false : var5.getQuantity() >= this.quantity;
         }
      } else {
         CombinedItemContainer var4 = InventoryComponent.getCombined(var1, var2, InventoryComponent.HOTBAR_FIRST);
         class="kw">return var4.countItemStacks(var1x -> this.blockTypeOrTagTask.isBlockTypeIncluded(var1x.getItemId())) >= this.quantity;
      }
   }

   @Override
   class="kw">public void consumeCondition(@Nonnull ComponentAccessor<EntityStore> var1, @Nonnull Ref<EntityStore> var2, Set<UUID> var3) {
      if (this.consumeOnCompletion) {
         CombinedItemContainer var4 = InventoryComponent.getCombined(var1, var2, InventoryComponent.HOTBAR_FIRST);
         this.blockTypeOrTagTask.consumeItemStacks(var4, this.quantity);
      }
   }

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

      if (var1 != null && this.getClass() == var1.getClass()) {
         SoloInventoryCondition var2 = (SoloInventoryCondition)var1;
         if (this.quantity != var2.quantity) {
            class="kw">return false;
         } else if (this.consumeOnCompletion != var2.consumeOnCompletion) {
            class="kw">return false;
         } else if (this.holdInHand != var2.holdInHand) {
            class="kw">return false;
         } else {
            class="kw">return this.blockTypeOrTagTask != null ? this.blockTypeOrTagTask.equals(var2.blockTypeOrTagTask) : var2.blockTypeOrTagTask == null;
         }
      } else {
         class="kw">return false;
      }
   }

   @Override
   class="kw">public int hashCode() {
      int var1 = this.blockTypeOrTagTask != null ? this.blockTypeOrTagTask.hashCode() : 0;
      var1 = 31 * var1 + this.quantity;
      var1 = 31 * var1 + (this.consumeOnCompletion ? 1 : 0);
      class="kw">return 31 * var1 + (this.holdInHand ? 1 : 0);
   }

   @Nonnull
   @Override
   class="kw">public String toString() {
      class="kw">return "SoloInventoryCondition{blockTypeOrTagTask="
         + this.blockTypeOrTagTask
         + ", quantity="
         + this.quantity
         + ", consumeOnCompletion="
         + this.consumeOnCompletion
         + ", holdInHand="
         + this.holdInHand
         + "} "
         + super.toString();
   }
}