BountyObjectiveTask class

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

Файл: com/hypixel/hytale/builtin/adventure/npcobjectives/task/BountyObjectiveTask.java

extends: ObjectiveTask

implements: KillTask

Поля (13)

МодификаторыТипИмя
UUIDComponent var10
UUID var11
ObjectiveTaskMarker var12
KillTaskTransaction var13
com.hypixel.hytale.protocol.ObjectiveTask var2
Vector3d var4
Vector3i var5
TransactionRecord[] var6
UUIDComponent var6
String var7
UUID var7
Pair var8
Ref var9

Методы (6)

МодификаторыВозвратСигнатура
if if(this.serializedTransactionRecords != null)
if if(var4 == null)
if if(var5 == null)
if if(var8 == null)
if if(var10 == null)
abstract super super(var1, var2, var3)

Исходный код

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

class="kw">import com.hypixel.hytale.builtin.adventure.npcobjectives.assets.BountyObjectiveTaskAsset;
class="kw">import com.hypixel.hytale.builtin.adventure.npcobjectives.resources.KillTrackerResource;
class="kw">import com.hypixel.hytale.builtin.adventure.npcobjectives.transaction.KillTaskTransaction;
class="kw">import com.hypixel.hytale.builtin.adventure.objectives.Objective;
class="kw">import com.hypixel.hytale.builtin.adventure.objectives.ObjectivePlugin;
class="kw">import com.hypixel.hytale.builtin.adventure.objectives.config.task.ObjectiveTaskAsset;
class="kw">import com.hypixel.hytale.builtin.adventure.objectives.markers.ObjectiveTaskMarker;
class="kw">import com.hypixel.hytale.builtin.adventure.objectives.task.ObjectiveTask;
class="kw">import com.hypixel.hytale.builtin.adventure.objectives.transaction.RegistrationTransactionRecord;
class="kw">import com.hypixel.hytale.builtin.adventure.objectives.transaction.SpawnEntityTransactionRecord;
class="kw">import com.hypixel.hytale.builtin.adventure.objectives.transaction.TransactionRecord;
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.component.Ref;
class="kw">import com.hypixel.hytale.component.Store;
class="kw">import com.hypixel.hytale.logger.HytaleLogger;
class="kw">import com.hypixel.hytale.math.vector.Rotation3f;
class="kw">import com.hypixel.hytale.math.vector.Transform;
class="kw">import com.hypixel.hytale.math.vector.Vector3dUtil;
class="kw">import com.hypixel.hytale.math.vector.Vector3iUtil;
class="kw">import com.hypixel.hytale.server.core.Message;
class="kw">import com.hypixel.hytale.server.core.entity.UUIDComponent;
class="kw">import com.hypixel.hytale.server.core.modules.entity.damage.Damage;
class="kw">import com.hypixel.hytale.server.core.universe.world.World;
class="kw">import com.hypixel.hytale.server.core.universe.world.npc.INonPlayerCharacter;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
class="kw">import com.hypixel.hytale.server.npc.NPCPlugin;
class="kw">import com.hypixel.hytale.server.npc.entities.NPCEntity;
class="kw">import it.unimi.dsi.fastutil.Pair;
class="kw">import java.util.UUID;
class="kw">import java.util.logging.Level;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">import org.joml.Vector3d;
class="kw">import org.joml.Vector3i;

class="kw">public class BountyObjectiveTask class="kw">extends ObjectiveTask class="kw">implements KillTask {
   @Nonnull
   class="kw">private class="kw">static class="kw">final HytaleLogger LOGGER = HytaleLogger.forEnclosingClass();
   @Nonnull
   class="kw">public class="kw">static class="kw">final BuilderCodec<BountyObjectiveTask> CODEC = BuilderCodec.builder(
         BountyObjectiveTask.class, BountyObjectiveTask::new, ObjectiveTask.BASE_CODEC
      )
      .append(new KeyedCodec<>("Completed", Codec.BOOLEAN), (var0, var1) -> var0.completed = var1, var0 -> var0.completed)
      .add()
      .append(new KeyedCodec<>("EntityUUID", Codec.UUID_BINARY), (var0, var1) -> var0.entityUuid = var1, var0 -> var0.entityUuid)
      .add()
      .build();
   boolean completed;
   UUID entityUuid;

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

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

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

   @Nullable
   @Override
   class="kw">protected TransactionRecord[] setup0(@Nonnull Objective var1, @Nonnull World var2, @Nonnull Store<EntityStore> var3) {
      if (this.serializedTransactionRecords != null) {
         class="kw">return RegistrationTransactionRecord.append(this.serializedTransactionRecords, this.eventRegistry);
      }

      Vector3d var4 = var1.getPosition(var3);
      if (var4 == null) {
         class="kw">return null;
      }

      Vector3i var5 = this.getAsset().getWorldLocationProvider().runCondition(var2, Vector3dUtil.toVector3i(new Vector3d(var4).floor()));
      if (var5 == null) {
         class="kw">return null;
      }

      TransactionRecord[] var6 = new TransactionRecord[2];
      String var7 = this.getAsset().getNpcId();
      Pair var8 = NPCPlugin.get().spawnNPC(var3, var7, null, Vector3iUtil.toVector3d(var5), Rotation3f.IDENTITY);
      if (var8 == null) {
         class="kw">return null;
      }

      Ref var9 = (Ref<EntityStore>)var8.first();
      UUIDComponent var10 = var3.getComponent(var9, UUIDComponent.getComponentType());
      if (var10 == null) {
         class="kw">return null;
      }

      UUID var11 = var10.getUuid();
      ObjectivePlugin.get().getLogger().at(Level.INFO).log("Spawned Entity '%s' at position: %s", var7, var5);
      var6[0] = new SpawnEntityTransactionRecord(var2.getWorldConfig().getUuid(), var11);
      this.entityUuid = var11;
      ObjectiveTaskMarker var12 = new ObjectiveTaskMarker(
         getBountyMarkerIDFromUUID(var11), new Transform(var5), "Home.png", Message.translation("server.objectives.bounty.marker")
      );
      this.addMarker(var12);
      KillTaskTransaction var13 = new KillTaskTransaction(this, var1, var3);
      var3.getResource(KillTrackerResource.getResourceType()).watch(var13);
      var6[1] = var13;
      class="kw">return var6;
   }

   @Override
   class="kw">public boolean checkCompletion() {
      class="kw">return this.completed;
   }

   @Nonnull
   class="kw">public class="kw">static String getBountyMarkerIDFromUUID(@Nonnull UUID var0) {
      class="kw">return "Bounty_" + var0;
   }

   @Override
   class="kw">public void checkKilledEntity(
      @Nonnull Store<EntityStore> var1, @Nonnull Ref<EntityStore> var2, @Nonnull Objective var3, @Nonnull NPCEntity var4, @Nonnull Damage var5
   ) {
      UUIDComponent var6 = var1.getComponent(var2, UUIDComponent.getComponentType());
      assert var6 != null;
      UUID var7 = var6.getUuid();
      if (this.entityUuid.equals(var7)) {
         this.completed = true;
         this.consumeTaskConditions(var1, var2, var3.getPlayerUUIDs());
         this.complete(var3, var1);
         var3.checkTaskSetCompletion(var1);
         this.removeMarker(getBountyMarkerIDFromUUID(var7));
      }
   }

   @Nonnull
   class="kw">public com.hypixel.hytale.protocol.ObjectiveTask toPacket(@Nonnull Objective var1) {
      com.hypixel.hytale.protocol.ObjectiveTask var2 = new com.hypixel.hytale.protocol.ObjectiveTask();
      var2.taskDescriptionKey = Message.translation(this.asset.getDescriptionKey(var1.getObjectiveId(), this.taskSetIndex, this.taskIndex))
         .getFormattedMessage();
      var2.currentCompletion = this.completed ? 1 : 0;
      var2.completionNeeded = 1;
      class="kw">return var2;
   }

   @Nonnull
   @Override
   class="kw">public String toString() {
      class="kw">return "BountyObjectiveTask{completed=" + this.completed + ", entityUuid=" + this.entityUuid + "} " + super.toString();
   }
}