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