Objective class
Пакет: com.hypixel.hytale.builtin.adventure.objectives
Файл: com/hypixel/hytale/builtin/adventure/objectives/Objective.java
implements: NetworkSerializable<com.hypixel.hytale.protocol.Objective>
Поля (47)
| Модификаторы | Тип | Имя |
|---|---|---|
|
|
break |
|
|
break |
|
ObjectiveAsset |
var1 |
|
boolean |
var1 |
|
ObjectiveAsset |
var1 |
|
TaskSet |
var2 |
|
ObjectiveAsset |
var2 |
|
ObjectiveAsset |
var2 |
|
ObjectiveAsset |
var2 |
|
ObjectiveTaskAsset[] |
var2 |
|
ObjectiveLineAsset |
var2 |
|
UUID |
var2 |
|
|
var2 |
|
|
var2 |
|
com.hypixel.hytale.protocol.Objective |
var2 |
|
ObjectivePlugin |
var3 |
|
TaskSet[] |
var3 |
|
PlayerRef |
var3 |
|
PlayerRef |
var3 |
|
ObjectivePlugin |
var3 |
|
World |
var3 |
|
Store |
var3 |
|
PlayerRef |
var3 |
|
ObjectiveAsset |
var3 |
|
ObjectiveTask[] |
var3 |
|
World |
var3 |
|
TaskSet[] |
var4 |
|
TrackOrUpdateObjective |
var4 |
|
ObjectiveCompletionAsset[] |
var4 |
|
ObjectiveTask[] |
var4 |
|
TaskSet[] |
var4 |
|
PlayerRef |
var4 |
|
Ref |
var4 |
|
ObjectiveTaskAsset[] |
var5 |
|
ObjectiveTaskAsset |
var5 |
|
PlayerRef |
var5 |
|
TransformComponent |
var5 |
|
ObjectiveTask[] |
var6 |
|
TransactionRecord[] |
var6 |
|
ObjectiveTask |
var6 |
|
boolean |
var6 |
|
|
var6 |
|
PlayerRef |
var6 |
|
ObjectiveTask |
var7 |
|
Ref |
var7 |
|
TransactionRecord[] |
var8 |
|
TrackOrUpdateObjective |
var9 |
Методы (71)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
public |
void |
addActivePlayerUUIDvoid addActivePlayerUUID(UUID var1) |
public |
void |
cancelvoid cancel() |
private |
void |
cancelReloadvoid cancelReload(@Nonnull ObjectiveTask[] var1) |
public |
boolean |
checkTaskSetCompletionboolean checkTaskSetCompletion(@Nonnull Store<EntityStore> var1) |
public |
void |
completevoid complete(@Nonnull Store<EntityStore> var1) |
public |
boolean |
consumeDirtyboolean consumeDirty() |
|
|
for for(int var7 = 0; var7 < var5.length; var7++) |
|
|
for for(ObjectiveTask var5 : this.currentTasks) |
|
|
for for(ObjectiveTask var10 : this.currentTasks) |
|
|
for for(ObjectiveTask var5 : this.currentTasks) |
|
|
for for(ObjectiveCompletionAsset var8 : var4) |
|
|
for for(ObjectiveTask var4 : this.currentTasks) |
|
|
for for(ObjectiveTask var4 : this.currentTasks) |
|
|
for for(ObjectiveTask var8 : this.currentTasks) |
|
|
for for(int var4 = 0; var4 < var1.length; var4++) |
|
|
for for(ObjectiveTask var5 : this.currentTasks) |
|
|
for for(ObjectiveTask var5 : var1) |
|
|
for for(ObjectiveTask var5 : this.currentTasks) |
|
|
for for(ObjectiveTask var10 : var1) |
|
|
for for(UUID var3 : this.playerUUIDs) |
|
|
for for(UUID var4 : this.playerUUIDs) |
|
|
for for(UUID var5 : this.playerUUIDs) |
|
|
for for(int var3 = 0; var3 < this.currentTasks.length; var3++) |
public |
void |
forEachParticipantvoid forEachParticipant(@Nonnull Consumer<Ref<EntityStore>> var1) |
public |
<T> void |
forEachParticipant<T> void forEachParticipant(@Nonnull BiConsumer<Ref<EntityStore>, T> var1, T var2) |
public |
<T, U> void |
forEachParticipant<T, U> void forEachParticipant(@Nonnull TriConsumer<Ref<EntityStore>, T, U> var1, @Nonnull T var2, @Nonnull U var3) |
public |
String |
getCurrentDescriptionString getCurrentDescription() |
public |
int |
getCurrentTaskSetIndexint getCurrentTaskSetIndex() |
public |
ItemStack |
getObjectiveItemStarterItemStack getObjectiveItemStarter() |
public |
Set<UUID> |
getPlayerUUIDsSet<UUID> getPlayerUUIDs() |
public |
UUID |
getWorldUUIDUUID getWorldUUID() |
|
|
if if(this.currentTaskSetIndex >= var4.length) |
|
|
if if(this.currentTasks == null) |
|
|
if if(var10 == var5) |
|
|
if if(this.currentTasks == null) |
|
|
if if(this.currentTaskSetIndex < var3.length) |
|
|
if if(var3 != null) |
|
|
if if(var3 != null) |
|
|
if if(var4 != null) |
|
|
if if(this.currentTasks != null) |
|
|
if if(this.currentTasks != null) |
|
|
if if(var2 != null) |
|
|
if if(var3 != null) |
|
|
if if(var4 != null) |
|
|
if if(var3 != null) |
|
|
if if(this.objectiveLineHistoryData != null && var2 == null) |
|
|
if if(var3 == null) |
|
|
if if(this.currentTaskSetIndex >= var4.length) |
|
|
if if(var6 != null) |
|
|
if if(this.currentTasks == null) |
|
|
if if(var5 != null) |
|
|
if if(this.currentTasks != null) |
|
|
if if(!var6) |
|
|
if if(var4 != null) |
|
|
if if(var5 != null) |
|
|
if if(var6 != null) |
|
|
if if(this.markerUUID != null) |
|
|
if if(var2 == null) |
|
|
if if(this.objectiveLineHistoryData != null) |
public |
boolean |
isCompletedboolean isCompleted() |
public |
boolean |
isDirtyboolean isDirty() |
public |
void |
markDirtyvoid markDirty() |
public |
void |
reloadObjectiveAssetvoid reloadObjectiveAsset(@Nonnull Map<String, ObjectiveAsset> var1) |
public |
void |
removeActivePlayerUUIDvoid removeActivePlayerUUID(UUID var1) |
private |
void |
revertRemovedTasksvoid revertRemovedTasks(@Nonnull ObjectiveTask[] var1) |
public |
void |
setObjectiveItemStartervoid setObjectiveItemStarter(@Nonnull ItemStack var1) |
public |
void |
setObjectiveLineHistoryDatavoid setObjectiveLineHistoryData(@Nullable ObjectiveLineHistoryData var1) |
public |
boolean |
setupboolean setup(@Nonnull Store<EntityStore> var1) |
public |
boolean |
setupCurrentTasksboolean setupCurrentTasks(@Nonnull Store<EntityStore> var1) |
protected |
void |
taskSetCompletevoid taskSetComplete(@Nonnull Store<EntityStore> var1) |
public |
void |
unloadvoid unload() |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.adventure.objectives;
class="kw">import com.hypixel.hytale.builtin.adventure.objectives.config.ObjectiveAsset;
class="kw">import com.hypixel.hytale.builtin.adventure.objectives.config.ObjectiveLineAsset;
class="kw">import com.hypixel.hytale.builtin.adventure.objectives.config.completion.ObjectiveCompletionAsset;
class="kw">import com.hypixel.hytale.builtin.adventure.objectives.config.task.ObjectiveTaskAsset;
class="kw">import com.hypixel.hytale.builtin.adventure.objectives.config.task.TaskSet;
class="kw">import com.hypixel.hytale.builtin.adventure.objectives.historydata.ObjectiveHistoryData;
class="kw">import com.hypixel.hytale.builtin.adventure.objectives.historydata.ObjectiveLineHistoryData;
class="kw">import com.hypixel.hytale.builtin.adventure.objectives.task.ObjectiveTask;
class="kw">import com.hypixel.hytale.builtin.adventure.objectives.transaction.TransactionRecord;
class="kw">import com.hypixel.hytale.builtin.adventure.objectives.transaction.TransactionUtil;
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.ComponentAccessor;
class="kw">import com.hypixel.hytale.component.Ref;
class="kw">import com.hypixel.hytale.component.Store;
class="kw">import com.hypixel.hytale.function.consumer.TriConsumer;
class="kw">import com.hypixel.hytale.protocol.packets.assets.TrackOrUpdateObjective;
class="kw">import com.hypixel.hytale.server.core.Message;
class="kw">import com.hypixel.hytale.server.core.inventory.ItemStack;
class="kw">import com.hypixel.hytale.server.core.io.NetworkSerializable;
class="kw">import com.hypixel.hytale.server.core.modules.entity.component.TransformComponent;
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.Arrays;
class="kw">import java.util.Collections;
class="kw">import java.util.HashSet;
class="kw">import java.util.Map;
class="kw">import java.util.Objects;
class="kw">import java.util.Set;
class="kw">import java.util.UUID;
class="kw">import java.util.concurrent.ConcurrentHashMap;
class="kw">import java.util.function.BiConsumer;
class="kw">import java.util.function.Consumer;
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">public class Objective class="kw">implements NetworkSerializable<com.hypixel.hytale.protocol.Objective> {
@Nonnull
class="kw">public class="kw">static class="kw">final BuilderCodec<Objective> CODEC = BuilderCodec.builder(Objective.class, Objective::new)
.append(new KeyedCodec<>("ObjectiveUUID", Codec.UUID_BINARY), (var0, var1) -> var0.objectiveUUID = var1, var0 -> var0.objectiveUUID)
.add()
.append(new KeyedCodec<>("ObjectiveId", Codec.STRING), (var0, var1) -> var0.objectiveId = var1, var0 -> var0.objectiveId)
.add()
.append(
new KeyedCodec<>("ObjectiveLineData", ObjectiveLineHistoryData.CODEC),
(var0, var1) -> var0.objectiveLineHistoryData = var1,
var0 -> var0.objectiveLineHistoryData
)
.add()
.append(
new KeyedCodec<>("ObjectiveData", ObjectiveHistoryData.CODEC), (var0, var1) -> var0.objectiveHistoryData = var1, var0 -> var0.objectiveHistoryData
)
.add()
.append(new KeyedCodec<>("Players", new ArrayCodec<>(Codec.UUID_STRING, UUID[]::new)), (var0, var1) -> {
var0.playerUUIDs = new HashSet<>();
Collections.addAll(var0.playerUUIDs, var1);
}, var0 -> var0.playerUUIDs.toArray(UUID[]::new))
.add()
.append(
new KeyedCodec<>("CurrentTasks", new ArrayCodec<>(ObjectiveTask.CODEC, ObjectiveTask[]::new)),
(var0, var1) -> var0.currentTasks = var1,
var0 -> var0.currentTasks
)
.add()
.append(new KeyedCodec<>("CurrentTaskSetIndex", Codec.INTEGER), (var0, var1) -> var0.currentTaskSetIndex = var1, var0 -> var0.currentTaskSetIndex)
.add()
.append(new KeyedCodec<>("WorldUUID", Codec.UUID_BINARY), (var0, var1) -> var0.worldUUID = var1, var0 -> var0.worldUUID)
.add()
.append(new KeyedCodec<>("ObjectiveItemStarter", ItemStack.CODEC), (var0, var1) -> var0.objectiveItemStarter = var1, var0 -> var0.objectiveItemStarter)
.add()
.build();
class="kw">protected UUID objectiveUUID;
class="kw">protected String objectiveId;
@Nullable
class="kw">protected ObjectiveLineHistoryData objectiveLineHistoryData;
class="kw">protected ObjectiveHistoryData objectiveHistoryData;
class="kw">protected Set<UUID> playerUUIDs;
@Nonnull
class="kw">protected Set<UUID> activePlayerUUIDs = ConcurrentHashMap.newKeySet();
@Nullable
class="kw">protected ObjectiveTask[] currentTasks;
class="kw">protected int currentTaskSetIndex;
class="kw">protected boolean completed;
class="kw">protected UUID worldUUID;
@Nullable
class="kw">protected UUID markerUUID;
class="kw">protected boolean dirty;
class="kw">protected ItemStack objectiveItemStarter;
class="kw">public Objective(@Nonnull ObjectiveAsset var1, @Nullable UUID var2, @Nonnull Set<UUID> var3, @Nonnull UUID var4, @Nullable UUID var5) {
this.objectiveId = var1.getId();
this.currentTaskSetIndex = 0;
this.playerUUIDs = var3;
this.worldUUID = var4;
this.objectiveUUID = var2 == null ? UUID.randomUUID() : var2;
this.markerUUID = var5;
this.objectiveHistoryData = new ObjectiveHistoryData(var1.getId(), var1.getCategory());
}
class="kw">protected Objective() {
}
@Nonnull
class="kw">public UUID getObjectiveUUID() {
class="kw">return this.objectiveUUID;
}
@Nonnull
class="kw">public String getObjectiveId() {
class="kw">return this.objectiveId;
}
@Nullable
class="kw">public ObjectiveAsset getObjectiveAsset() {
class="kw">return ObjectiveAsset.getAssetMap().getAsset(this.objectiveId);
}
@Nullable
class="kw">public ObjectiveLineHistoryData getObjectiveLineHistoryData() {
class="kw">return this.objectiveLineHistoryData;
}
class="kw">public void setObjectiveLineHistoryData(@Nullable ObjectiveLineHistoryData var1) {
this.objectiveLineHistoryData = var1;
}
@Nonnull
class="kw">public ObjectiveHistoryData getObjectiveHistoryData() {
class="kw">return this.objectiveHistoryData;
}
@Nullable
class="kw">public ObjectiveLineAsset getObjectiveLineAsset() {
class="kw">return this.objectiveLineHistoryData == null ? null : ObjectiveLineAsset.getAssetMap().getAsset(this.objectiveLineHistoryData.getId());
}
class="kw">public Set<UUID> getPlayerUUIDs() {
class="kw">return this.playerUUIDs;
}
@Nonnull
class="kw">public Set<UUID> getActivePlayerUUIDs() {
class="kw">return this.activePlayerUUIDs;
}
@Nullable
class="kw">public ObjectiveTask[] getCurrentTasks() {
class="kw">return this.currentTasks;
}
class="kw">public int getCurrentTaskSetIndex() {
class="kw">return this.currentTaskSetIndex;
}
class="kw">public String getCurrentDescription() {
ObjectiveAsset var1 = Objects.requireNonNull(this.getObjectiveAsset());
TaskSet var2 = var1.getTaskSets()[this.currentTaskSetIndex];
class="kw">return var2.getDescriptionId() != null ? var2.getDescriptionKey(this.objectiveId, this.currentTaskSetIndex) : var1.getDescriptionKey();
}
class="kw">public boolean isCompleted() {
class="kw">return this.completed;
}
class="kw">public UUID getWorldUUID() {
class="kw">return this.worldUUID;
}
@Nullable
class="kw">public UUID getMarkerUUID() {
class="kw">return this.markerUUID;
}
class="kw">public boolean isDirty() {
class="kw">return this.dirty;
}
class="kw">public ItemStack getObjectiveItemStarter() {
class="kw">return this.objectiveItemStarter;
}
class="kw">public void setObjectiveItemStarter(@Nonnull ItemStack var1) {
this.objectiveItemStarter = var1;
}
class="kw">public boolean setup(@Nonnull Store<EntityStore> var1) {
ObjectiveAsset var2 = Objects.requireNonNull(this.getObjectiveAsset());
ObjectivePlugin var3 = ObjectivePlugin.get();
TaskSet[] var4 = var2.getTaskSets();
if (this.currentTaskSetIndex >= var4.length) {
var3.getLogger().at(Level.WARNING).log("Current taskSet index is higher than total number of taskSets for objective %s", this.objectiveId);
class="kw">return false;
}
ObjectiveTaskAsset[] var5 = var4[this.currentTaskSetIndex].getTasks();
ObjectiveTask[] var6 = new ObjectiveTask[var5.length];
for (int var7 = 0; var7 < var5.length; var7++) {
var6[var7] = var3.createTask(var5[var7], this.currentTaskSetIndex, var7);
}
this.currentTasks = var6;
class="kw">return this.setupCurrentTasks(var1);
}
class="kw">public boolean setupCurrentTasks(@Nonnull Store<EntityStore> var1) {
if (this.currentTasks == null) {
class="kw">return false;
}
for (ObjectiveTask var5 : this.currentTasks) {
if (!var5.isComplete()) {
TransactionRecord[] var6 = var5.setup(this, var1);
if (var6 != null && TransactionUtil.anyFailed(var6)) {
ObjectivePlugin.get().getLogger().at(Level.WARNING).log("Failed to setup objective tasks, transaction records:%s", Arrays.toString(var6));
for (ObjectiveTask var10 : this.currentTasks) {
var10.revertTransactionRecords();
if (var10 == var5) {
break;
}
}
class="kw">return false;
}
}
}
class="kw">return true;
}
class="kw">public boolean checkTaskSetCompletion(@Nonnull Store<EntityStore> var1) {
if (this.currentTasks == null) {
class="kw">return false;
}
for (ObjectiveTask var5 : this.currentTasks) {
if (!var5.isComplete()) {
class="kw">return false;
}
}
this.taskSetComplete(var1);
class="kw">return true;
}
class="kw">protected void taskSetComplete(@Nonnull Store<EntityStore> var1) {
ObjectiveAsset var2 = Objects.requireNonNull(this.getObjectiveAsset());
this.currentTaskSetIndex++;
TaskSet[] var3 = var2.getTaskSets();
if (this.currentTaskSetIndex < var3.length) {
if (!this.setup(var1)) {
this.taskSetComplete(var1);
} else {
TrackOrUpdateObjective var4 = new TrackOrUpdateObjective(this.toPacket());
this.forEachParticipant((var1x, var2x) -> {
PlayerRef var3 = var1.getComponent(var1x, PlayerRef.getComponentType());
if (var3 != null) {
var3.getPacketHandler().writeNoCache(var2x);
}
}, var4);
this.checkTaskSetCompletion(var1);
}
} else {
this.complete(var1);
}
}
class="kw">public void complete(@Nonnull Store<EntityStore> var1) {
ObjectiveAsset var2 = Objects.requireNonNull(this.getObjectiveAsset());
this.forEachParticipant((var1x, var2x) -> {
PlayerRef var3 = var1.getComponent(var1x, PlayerRef.getComponentType());
if (var3 != null) {
var3.sendMessage(var2x);
}
}, Message.translation("server.modules.objective.completed").param("title", Message.translation(var2.getTitleKey())));
ObjectivePlugin var3 = ObjectivePlugin.get();
ObjectiveCompletionAsset[] var4 = var2.getCompletionHandlers();
if (var4 != null) {
for (ObjectiveCompletionAsset var8 : var4) {
var3.createCompletion(var8).handle(this, var1);
}
}
this.completed = true;
var3.objectiveCompleted(this, var1);
}
class="kw">public void cancel() {
if (this.currentTasks != null) {
for (ObjectiveTask var4 : this.currentTasks) {
var4.revertTransactionRecords();
}
}
}
class="kw">public void unload() {
if (this.currentTasks != null) {
for (ObjectiveTask var4 : this.currentTasks) {
var4.unloadTransactionRecords();
}
}
}
class="kw">public void reloadObjectiveAsset(@Nonnull Map<String, ObjectiveAsset> var1) {
ObjectiveTaskAsset[] var2 = this.checkPossibleAssetReload(var1);
if (var2 != null) {
World var3 = Universe.get().getWorld(this.worldUUID);
if (var3 != null) {
var3.execute(() -> {
Store var3 = var3.getEntityStore().getStore();
ObjectiveTask[] var4 = this.setupAndUpdateTasks(var2, var3);
if (var4 != null) {
this.revertRemovedTasks(var4);
this.currentTasks = var4;
for (ObjectiveTask var8 : this.currentTasks) {
var8.assetChanged(this);
}
if (!this.checkTaskSetCompletion(var3)) {
TrackOrUpdateObjective var9 = new TrackOrUpdateObjective(this.toPacket());
this.forEachParticipant((var1x, var2x) -> {
PlayerRef var3 = var3.getComponent(var1x, PlayerRef.getComponentType());
if (var3 != null) {
var3.getPacketHandler().writeNoCache(var2x);
}
}, var9);
}
}
});
}
}
}
@Nullable
class="kw">private ObjectiveTaskAsset[] checkPossibleAssetReload(@Nonnull Map<String, ObjectiveAsset> var1) {
ObjectiveLineAsset var2 = this.getObjectiveLineAsset();
if (this.objectiveLineHistoryData != null && var2 == null) {
this.cancel();
class="kw">return null;
} else {
ObjectiveAsset var3 = var1.get(this.objectiveId);
if (var3 == null) {
class="kw">return null;
} else {
TaskSet[] var4 = var3.getTaskSets();
if (this.currentTaskSetIndex >= var4.length) {
this.cancel();
class="kw">return null;
} else {
class="kw">return var4[this.currentTaskSetIndex].getTasks();
}
}
}
}
@Nullable
class="kw">private ObjectiveTask[] setupAndUpdateTasks(@Nonnull ObjectiveTaskAsset[] var1, @Nonnull Store<EntityStore> var2) {
ObjectiveTask[] var3 = new ObjectiveTask[var1.length];
for (int var4 = 0; var4 < var1.length; var4++) {
ObjectiveTaskAsset var5 = var1[var4];
ObjectiveTask var6 = this.findMatchingObjectiveTask(var5);
if (var6 != null) {
var6.setAsset(var5);
var3[var4] = var6;
} else {
ObjectiveTask var7 = var3[var4] = ObjectivePlugin.get().createTask(var5, this.currentTaskSetIndex, var4);
TransactionRecord[] var8 = var7.setup(this, var2);
if (TransactionUtil.anyFailed(var8)) {
this.cancelReload(var3);
class="kw">return null;
}
}
}
class="kw">return var3;
}
@Nullable
class="kw">private ObjectiveTask findMatchingObjectiveTask(@Nonnull ObjectiveTaskAsset var1) {
if (this.currentTasks == null) {
class="kw">return null;
}
for (ObjectiveTask var5 : this.currentTasks) {
if (var5.getAsset().matchesAsset(var1)) {
class="kw">return var5;
}
}
class="kw">return null;
}
class="kw">private void cancelReload(@Nonnull ObjectiveTask[] var1) {
for (ObjectiveTask var5 : var1) {
if (var5 != null) {
var5.revertTransactionRecords();
}
}
this.cancel();
this.currentTasks = null;
}
class="kw">private void revertRemovedTasks(@Nonnull ObjectiveTask[] var1) {
if (this.currentTasks != null) {
for (ObjectiveTask var5 : this.currentTasks) {
boolean var6 = false;
for (ObjectiveTask var10 : var1) {
if (var10.equals(var5)) {
var6 = true;
break;
}
}
if (!var6) {
var5.revertTransactionRecords();
}
}
}
}
class="kw">public void forEachParticipant(@Nonnull Consumer<Ref<EntityStore>> var1) {
for (UUID var3 : this.playerUUIDs) {
PlayerRef var4 = Universe.get().getPlayer(var3);
if (var4 != null) {
var1.accept(var4.getReference());
}
}
}
class="kw">public <T> void forEachParticipant(@Nonnull BiConsumer<Ref<EntityStore>, T> var1, T var2) {
for (UUID var4 : this.playerUUIDs) {
PlayerRef var5 = Universe.get().getPlayer(var4);
if (var5 != null) {
var1.accept(var5.getReference(), var2);
}
}
}
class="kw">public <T, U> void forEachParticipant(@Nonnull TriConsumer<Ref<EntityStore>, T, U> var1, @Nonnull T var2, @Nonnull U var3) {
for (UUID var5 : this.playerUUIDs) {
PlayerRef var6 = Universe.get().getPlayer(var5);
if (var6 != null) {
Ref var7 = var6.getReference();
if (var7 != null && var7.isValid()) {
var1.accept(var6.getReference(), var2, var3);
}
}
}
}
@Nullable
class="kw">public Vector3d getPosition(@Nonnull ComponentAccessor<EntityStore> var1) {
UUID var2 = null;
if (this.markerUUID != null) {
var2 = this.markerUUID;
} else if (!this.playerUUIDs.isEmpty()) {
var2 = this.playerUUIDs.iterator().next();
}
if (var2 == null) {
class="kw">return null;
} else {
World var3 = var1.getExternalData().getWorld();
Ref var4 = var3.getEntityRef(var2);
if (var4 != null && var4.isValid()) {
TransformComponent var5 = var1.getComponent(var4, TransformComponent.getComponentType());
class="kw">return var5 != null ? var5.getPosition() : null;
} else {
class="kw">return null;
}
}
}
class="kw">public void addActivePlayerUUID(UUID var1) {
this.activePlayerUUIDs.add(var1);
}
class="kw">public void removeActivePlayerUUID(UUID var1) {
this.activePlayerUUIDs.remove(var1);
}
class="kw">public void markDirty() {
this.dirty = true;
}
class="kw">public boolean consumeDirty() {
boolean var1 = this.dirty;
this.dirty = false;
class="kw">return var1;
}
@Nonnull
class="kw">public com.hypixel.hytale.protocol.Objective toPacket() {
ObjectiveAsset var1 = Objects.requireNonNull(this.getObjectiveAsset());
com.hypixel.hytale.protocol.Objective var2 = new com.hypixel.hytale.protocol.Objective();
var2.objectiveUuid = this.objectiveUUID;
var2.objectiveTitleKey = Message.translation(var1.getTitleKey()).getFormattedMessage();
var2.objectiveDescriptionKey = Message.translation(this.getCurrentDescription()).getFormattedMessage();
if (this.objectiveLineHistoryData != null) {
var2.objectiveLineId = this.objectiveLineHistoryData.getId();
}
var2.tasks = new com.hypixel.hytale.protocol.ObjectiveTask[this.currentTasks.length];
for (int var3 = 0; var3 < this.currentTasks.length; var3++) {
var2.tasks[var3] = this.currentTasks[var3].toPacket(this);
}
class="kw">return var2;
}
@Nonnull
@Override
class="kw">public String toString() {
class="kw">return "Objective{objectiveUUID="
+ this.objectiveUUID
+ ", objectiveId='"
+ this.objectiveId
+ "', objectiveLineHistoryData="
+ this.objectiveLineHistoryData
+ ", objectiveHistoryData="
+ this.objectiveHistoryData
+ ", playerUUIDs="
+ this.playerUUIDs
+ ", activePlayerUUIDs="
+ this.activePlayerUUIDs
+ ", currentTasks="
+ Arrays.toString(this.currentTasks)
+ ", currentTaskSetIndex="
+ this.currentTaskSetIndex
+ ", completed="
+ this.completed
+ ", worldUUID="
+ this.worldUUID
+ ", markerUUID="
+ this.markerUUID
+ ", dirty="
+ this.dirty
+ "}";
}
}