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