GatherObjectiveTask class

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

Файл: com/hypixel/hytale/builtin/adventure/objectives/task/GatherObjectiveTask.java

extends: CountObjectiveTask

implements: InventoryChangeAware

Поля (10)

МодификаторыТипИмя
int var3
Set var4
BlockTagOrItemIdField var4
int var5
UUIDComponent var5
Set var6
int var7
PlayerRef var7
Ref var8
CombinedItemContainer var9

Методы (5)

МодификаторыВозвратСигнатура
private int countObjectiveItemInInventoriesint countObjectiveItemInInventories(@Nonnull Set<UUID> var1, @Nonnull ComponentAccessor<EntityStore> var2)
for for(UUID var6 : var1)
if if(var5 != null)
if if(var7 != null)
abstract super super(var1, var2, var3)

Исходный код

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

class="kw">import com.hypixel.hytale.builtin.adventure.objectives.Objective;
class="kw">import com.hypixel.hytale.builtin.adventure.objectives.config.task.BlockTagOrItemIdField;
class="kw">import com.hypixel.hytale.builtin.adventure.objectives.config.task.GatherObjectiveTaskAsset;
class="kw">import com.hypixel.hytale.builtin.adventure.objectives.transaction.TransactionRecord;
class="kw">import com.hypixel.hytale.codec.builder.BuilderCodec;
class="kw">import com.hypixel.hytale.component.ComponentAccessor;
class="kw">import com.hypixel.hytale.component.Ref;
class="kw">import com.hypixel.hytale.component.Store;
class="kw">import com.hypixel.hytale.math.util.MathUtil;
class="kw">import com.hypixel.hytale.server.core.entity.UUIDComponent;
class="kw">import com.hypixel.hytale.server.core.event.events.ecs.InventoryChangeEvent;
class="kw">import com.hypixel.hytale.server.core.inventory.InventoryComponent;
class="kw">import com.hypixel.hytale.server.core.inventory.container.CombinedItemContainer;
class="kw">import com.hypixel.hytale.server.core.universe.PlayerRef;
class="kw">import com.hypixel.hytale.server.core.universe.Universe;
class="kw">import com.hypixel.hytale.server.core.universe.world.World;
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 GatherObjectiveTask class="kw">extends CountObjectiveTask class="kw">implements InventoryChangeAware {
   @Nonnull
   class="kw">public class="kw">static class="kw">final BuilderCodec<GatherObjectiveTask> CODEC = BuilderCodec.builder(
         GatherObjectiveTask.class, GatherObjectiveTask::new, CountObjectiveTask.CODEC
      )
      .build();

   class="kw">public GatherObjectiveTask(@Nonnull GatherObjectiveTaskAsset var1, int var2, int var3) {
      super(var1, var2, var3);
   }

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

   @Nonnull
   class="kw">public GatherObjectiveTaskAsset getAsset() {
      class="kw">return (GatherObjectiveTaskAsset)super.getAsset();
   }

   @Nullable
   @Override
   class="kw">protected TransactionRecord[] setup0(@Nonnull Objective var1, @Nonnull World var2, @Nonnull Store<EntityStore> var3) {
      Set var4 = var1.getPlayerUUIDs();
      int var5 = this.countObjectiveItemInInventories(var4, var3);
      if (this.areTaskConditionsFulfilled(null, null, var4)) {
         this.count = MathUtil.clamp(var5, 0, this.getAsset().getCount());
         if (this.checkCompletion()) {
            this.consumeTaskConditions(null, null, var4);
            this.complete = true;
            class="kw">return null;
         }
      }

      class="kw">return null;
   }

   @Override
   class="kw">public void onInventoryChange(@Nonnull Objective var1, @Nonnull Ref<EntityStore> var2, @Nonnull Store<EntityStore> var3, @Nonnull InventoryChangeEvent var4) {
      UUIDComponent var5 = var3.getComponent(var2, UUIDComponent.getComponentType());
      if (var5 != null) {
         Set var6 = var1.getActivePlayerUUIDs();
         if (var6.contains(var5.getUuid())) {
            int var7 = this.countObjectiveItemInInventories(var6, var3);
            this.setTaskCompletion(var3, var2, var7, var1);
         }
      }
   }

   class="kw">private int countObjectiveItemInInventories(@Nonnull Set<UUID> var1, @Nonnull ComponentAccessor<EntityStore> var2) {
      int var3 = 0;
      BlockTagOrItemIdField var4 = this.getAsset().getBlockTagOrItemIdField();

      for (UUID var6 : var1) {
         PlayerRef var7 = Universe.get().getPlayer(var6);
         if (var7 != null) {
            Ref var8 = var7.getReference();
            if (var8 != null && var8.isValid()) {
               CombinedItemContainer var9 = InventoryComponent.getCombined(var2, var8, InventoryComponent.HOTBAR_FIRST);
               var3 += var9.countItemStacks(var1x -> var4.isBlockTypeIncluded(var1x.getItemId()));
            }
         }
      }

      class="kw">return var3;
   }

   @Nonnull
   @Override
   class="kw">public String toString() {
      class="kw">return "GatherObjectiveTask{} " + super.toString();
   }
}