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