UseEntityObjectiveTask class

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

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

extends: CountObjectiveTask

Поля (5)

МодификаторыТипИмя
UUID var4
ObjectiveDataStore var5
String var6
UseEntityObjectiveTaskAsset.DialogOptions var7
Player var8

Методы (3)

МодификаторыВозвратСигнатура
if if(var7 != null)
public boolean increaseTaskCompletionboolean increaseTaskCompletion(@Nonnull Store<EntityStore> var1, @Nonnull Ref<EntityStore> var2, int var3, @Nonnull Objective var4, @Nonnull PlayerRef var5, UUID var6)
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.DialogPage;
class="kw">import com.hypixel.hytale.builtin.adventure.objectives.Objective;
class="kw">import com.hypixel.hytale.builtin.adventure.objectives.ObjectiveDataStore;
class="kw">import com.hypixel.hytale.builtin.adventure.objectives.ObjectivePlugin;
class="kw">import com.hypixel.hytale.builtin.adventure.objectives.config.task.UseEntityObjectiveTaskAsset;
class="kw">import com.hypixel.hytale.builtin.adventure.objectives.transaction.TransactionRecord;
class="kw">import com.hypixel.hytale.builtin.adventure.objectives.transaction.UseEntityTransactionRecord;
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.codecs.array.ArrayCodec;
class="kw">import com.hypixel.hytale.component.Ref;
class="kw">import com.hypixel.hytale.component.Store;
class="kw">import com.hypixel.hytale.server.core.Message;
class="kw">import com.hypixel.hytale.server.core.entity.entities.Player;
class="kw">import com.hypixel.hytale.server.core.universe.PlayerRef;
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.Collections;
class="kw">import java.util.HashSet;
class="kw">import java.util.Set;
class="kw">import java.util.UUID;
class="kw">import javax.annotation.Nonnull;

class="kw">public class UseEntityObjectiveTask class="kw">extends CountObjectiveTask {
   @Nonnull
   class="kw">public class="kw">static class="kw">final BuilderCodec<UseEntityObjectiveTask> CODEC = BuilderCodec.builder(
         UseEntityObjectiveTask.class, UseEntityObjectiveTask::new, CountObjectiveTask.CODEC
      )
      .append(new KeyedCodec<>("NpcUUIDs", new ArrayCodec<>(Codec.UUID_BINARY, UUID[]::new)), (var0, var1) -> {
         var0.npcUUIDs.clear();
         Collections.addAll(var0.npcUUIDs, var1);
      }, var0 -> var0.npcUUIDs.toArray(UUID[]::new))
      .add()
      .build();
   @Nonnull
   class="kw">private class="kw">static class="kw">final Message MESSAGE_SERVER_MODULES_OBJECTIVE_TASK_ALREADY_INTERACTED_WITH_NPC = Message.translation(
      "server.modules.objective.task.alreadyInteractedWithNPC"
   );
   @Nonnull
   class="kw">protected Set<UUID> npcUUIDs = new HashSet<>();

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

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

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

   @Nonnull
   @Override
   class="kw">protected TransactionRecord[] setup0(@Nonnull Objective var1, @Nonnull World var2, @Nonnull Store<EntityStore> var3) {
      UUID var4 = var1.getObjectiveUUID();
      ObjectiveDataStore var5 = ObjectivePlugin.get().getObjectiveDataStore();
      String var6 = this.getAsset().getTaskId();

      for (UUID var8 : var1.getActivePlayerUUIDs()) {
         var5.addEntityTaskForPlayer(var8, var6, var4);
      }

      class="kw">return TransactionRecord.appendTransaction(null, new UseEntityTransactionRecord(var4, var6));
   }

   class="kw">public boolean increaseTaskCompletion(
      @Nonnull Store<EntityStore> var1, @Nonnull Ref<EntityStore> var2, int var3, @Nonnull Objective var4, @Nonnull PlayerRef var5, UUID var6
   ) {
      if (!this.npcUUIDs.add(var6)) {
         var5.sendMessage(MESSAGE_SERVER_MODULES_OBJECTIVE_TASK_ALREADY_INTERACTED_WITH_NPC);
         class="kw">return false;
      }

      super.increaseTaskCompletion(var1, var2, var3, var4);
      if (this.isComplete()) {
         UseEntityObjectiveTaskAsset.DialogOptions var7 = this.getAsset().getDialogOptions();
         if (var7 != null) {
            Player var8 = var1.getComponent(var2, Player.getComponentType());
            assert var8 != null;
            var5.sendMessage(Message.join(Message.translation(var7.getEntityNameKey()), Message.raw(": "), Message.translation(var7.getDialogKey())));
            var8.getPageManager().openCustomPage(var2, var1, new DialogPage(var5, var7));
         }
      }

      class="kw">return true;
   }

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