NPCObjectivesPlugin class
Пакет: com.hypixel.hytale.builtin.adventure.npcobjectives
Файл: com/hypixel/hytale/builtin/adventure/npcobjectives/NPCObjectivesPlugin.java
extends: JavaPlugin
Поля (16)
| Модификаторы | Тип | Имя |
|---|---|---|
static |
NPCObjectivesPlugin |
instance |
|
|
instance |
|
ObjectivePlugin |
var1 |
|
Objective |
var11 |
|
ObjectiveTask[] |
var12 |
|
UseEntityObjectiveTaskAsset |
var18 |
|
ComponentRegistryProxy |
var2 |
|
ComponentType |
var3 |
|
Map |
var3 |
|
UUIDComponent |
var3 |
|
ComponentType |
var4 |
|
World |
var4 |
|
UUIDComponent |
var5 |
|
ObjectiveDataStore |
var6 |
|
Map |
var7 |
|
Set |
var8 |
Методы (14)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
|
|
for for(UUID var10 : var8) |
|
|
for for(ObjectiveTask var16 : var12) |
static |
NPCObjectivesPlugin |
getNPCObjectivesPlugin get() |
public |
ResourceType<EntityStore, KillTrackerResource> |
getKillTrackerResourceTypeResourceType<EntityStore, KillTrackerResource> getKillTrackerResourceType() |
static |
boolean |
hasTaskboolean hasTask(@Nonnull UUID var0, @Nonnull UUID var1, @Nonnull String var2) |
|
|
if if(var5 == null) |
|
|
if if(var7 == null) |
|
|
if if(var8 == null) |
|
|
if if(var11 != null) |
|
|
if if(var12 != null) |
|
|
if if(var16 instanceof UseEntityObjectiveTask var17) |
|
|
if if(var3 != null) |
static |
void |
startObjectivevoid startObjective(@Nonnull Ref<EntityStore> var0, @Nonnull String var1, @Nonnull Store<EntityStore> var2) |
abstract |
|
super super(var1) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.adventure.npcobjectives;
class="kw">import com.hypixel.hytale.assetstore.AssetRegistry;
class="kw">import com.hypixel.hytale.builtin.adventure.npcobjectives.assets.BountyObjectiveTaskAsset;
class="kw">import com.hypixel.hytale.builtin.adventure.npcobjectives.assets.KillObjectiveTaskAsset;
class="kw">import com.hypixel.hytale.builtin.adventure.npcobjectives.assets.KillSpawnBeaconObjectiveTaskAsset;
class="kw">import com.hypixel.hytale.builtin.adventure.npcobjectives.assets.KillSpawnMarkerObjectiveTaskAsset;
class="kw">import com.hypixel.hytale.builtin.adventure.npcobjectives.npc.builders.BuilderActionCompleteTask;
class="kw">import com.hypixel.hytale.builtin.adventure.npcobjectives.npc.builders.BuilderActionStartObjective;
class="kw">import com.hypixel.hytale.builtin.adventure.npcobjectives.npc.builders.BuilderSensorHasTask;
class="kw">import com.hypixel.hytale.builtin.adventure.npcobjectives.resources.KillTrackerResource;
class="kw">import com.hypixel.hytale.builtin.adventure.npcobjectives.systems.KillTrackerSystem;
class="kw">import com.hypixel.hytale.builtin.adventure.npcobjectives.systems.SpawnBeaconCheckRemovalSystem;
class="kw">import com.hypixel.hytale.builtin.adventure.npcobjectives.task.BountyObjectiveTask;
class="kw">import com.hypixel.hytale.builtin.adventure.npcobjectives.task.KillNPCObjectiveTask;
class="kw">import com.hypixel.hytale.builtin.adventure.npcobjectives.task.KillSpawnBeaconObjectiveTask;
class="kw">import com.hypixel.hytale.builtin.adventure.npcobjectives.task.KillSpawnMarkerObjectiveTask;
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.ObjectiveAsset;
class="kw">import com.hypixel.hytale.builtin.adventure.objectives.config.task.UseEntityObjectiveTaskAsset;
class="kw">import com.hypixel.hytale.builtin.adventure.objectives.task.ObjectiveTask;
class="kw">import com.hypixel.hytale.builtin.adventure.objectives.task.UseEntityObjectiveTask;
class="kw">import com.hypixel.hytale.builtin.tagset.config.NPCGroup;
class="kw">import com.hypixel.hytale.component.ComponentRegistryProxy;
class="kw">import com.hypixel.hytale.component.ComponentType;
class="kw">import com.hypixel.hytale.component.Ref;
class="kw">import com.hypixel.hytale.component.ResourceType;
class="kw">import com.hypixel.hytale.component.Store;
class="kw">import com.hypixel.hytale.server.core.entity.UUIDComponent;
class="kw">import com.hypixel.hytale.server.core.plugin.JavaPlugin;
class="kw">import com.hypixel.hytale.server.core.plugin.JavaPluginInit;
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 com.hypixel.hytale.server.npc.NPCPlugin;
class="kw">import com.hypixel.hytale.server.npc.entities.NPCEntity;
class="kw">import com.hypixel.hytale.server.spawning.assets.spawnmarker.config.SpawnMarker;
class="kw">import com.hypixel.hytale.server.spawning.assets.spawns.config.BeaconNPCSpawn;
class="kw">import com.hypixel.hytale.server.spawning.beacons.LegacySpawnBeaconEntity;
class="kw">import java.util.Map;
class="kw">import java.util.Set;
class="kw">import java.util.UUID;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">public class NPCObjectivesPlugin class="kw">extends JavaPlugin {
class="kw">protected class="kw">static NPCObjectivesPlugin instance;
class="kw">private ResourceType<EntityStore, KillTrackerResource> killTrackerResourceType;
class="kw">public class="kw">static NPCObjectivesPlugin get() {
class="kw">return instance;
}
class="kw">public NPCObjectivesPlugin(@Nonnull JavaPluginInit var1) {
super(var1);
}
@Override
class="kw">protected void setup() {
instance = this;
ObjectivePlugin var1 = ObjectivePlugin.get();
ComponentRegistryProxy var2 = this.getEntityStoreRegistry();
var1.registerTask(
"KillSpawnBeacon",
KillSpawnBeaconObjectiveTaskAsset.class,
KillSpawnBeaconObjectiveTaskAsset.CODEC,
KillSpawnBeaconObjectiveTask.class,
KillSpawnBeaconObjectiveTask.CODEC,
KillSpawnBeaconObjectiveTask::new
);
var1.registerTask(
"KillSpawnMarker",
KillSpawnMarkerObjectiveTaskAsset.class,
KillSpawnMarkerObjectiveTaskAsset.CODEC,
KillSpawnMarkerObjectiveTask.class,
KillSpawnMarkerObjectiveTask.CODEC,
KillSpawnMarkerObjectiveTask::new
);
var1.registerTask(
"Bounty",
BountyObjectiveTaskAsset.class,
BountyObjectiveTaskAsset.CODEC,
BountyObjectiveTask.class,
BountyObjectiveTask.CODEC,
BountyObjectiveTask::new
);
var1.registerTask(
"KillNPC",
KillObjectiveTaskAsset.class,
KillObjectiveTaskAsset.CODEC,
KillNPCObjectiveTask.class,
KillNPCObjectiveTask.CODEC,
KillNPCObjectiveTask::new
);
this.killTrackerResourceType = var2.registerResource(KillTrackerResource.class, KillTrackerResource::new);
ComponentType var3 = LegacySpawnBeaconEntity.getComponentType();
ComponentType var4 = NPCEntity.getComponentType();
var2.registerSystem(new SpawnBeaconCheckRemovalSystem(var3));
var2.registerSystem(new KillTrackerSystem(var4, this.killTrackerResourceType));
NPCPlugin.get()
.registerCoreComponentType("CompleteTask", BuilderActionCompleteTask::new)
.registerCoreComponentType("StartObjective", BuilderActionStartObjective::new)
.registerCoreComponentType("HasTask", BuilderSensorHasTask::new);
AssetRegistry.getAssetStore(ObjectiveAsset.class).injectLoadsAfter(SpawnMarker.class);
AssetRegistry.getAssetStore(ObjectiveAsset.class).injectLoadsAfter(BeaconNPCSpawn.class);
AssetRegistry.getAssetStore(ObjectiveAsset.class).injectLoadsAfter(NPCGroup.class);
}
class="kw">public class="kw">static boolean hasTask(@Nonnull UUID var0, @Nonnull UUID var1, @Nonnull String var2) {
Map var3 = ObjectivePlugin.get().getObjectiveDataStore().getEntityTasksForPlayer(var0);
class="kw">return var3 == null ? false : var3.get(var2) != null;
}
@Nullable
class="kw">public class="kw">static String updateTaskCompletion(
@Nonnull Store<EntityStore> var0, @Nonnull Ref<EntityStore> var1, @Nonnull PlayerRef var2, @Nonnull UUID var3, @Nonnull String var4
) {
UUIDComponent var5 = var0.getComponent(var1, UUIDComponent.getComponentType());
if (var5 == null) {
class="kw">return null;
}
ObjectiveDataStore var6 = ObjectivePlugin.get().getObjectiveDataStore();
Map var7 = var6.getEntityTasksForPlayer(var5.getUuid());
if (var7 == null) {
class="kw">return null;
}
Set var8 = var7.get(var4);
if (var8 == null) {
class="kw">return null;
}
for (UUID var10 : var8) {
Objective var11 = var6.getObjective(var10);
if (var11 != null) {
ObjectiveTask[] var12 = var11.getCurrentTasks();
if (var12 != null) {
for (ObjectiveTask var16 : var12) {
if (var16 class="kw">instanceof UseEntityObjectiveTask var17) {
UseEntityObjectiveTaskAsset var18 = var17.getAsset();
if (var18.getTaskId().equals(var4)) {
if (!var17.increaseTaskCompletion(var0, var1, 1, var11, var2, var3)) {
class="kw">return null;
}
class="kw">return var18.getAnimationIdToPlay();
}
}
}
}
}
}
class="kw">return null;
}
class="kw">public class="kw">static void startObjective(@Nonnull Ref<EntityStore> var0, @Nonnull String var1, @Nonnull Store<EntityStore> var2) {
UUIDComponent var3 = var2.getComponent(var0, UUIDComponent.getComponentType());
if (var3 != null) {
World var4 = var2.getExternalData().getWorld();
ObjectivePlugin.get().startObjective(var1, Set.of(var3.getUuid()), var4.getWorldConfig().getUuid(), null, var2);
}
}
class="kw">public ResourceType<EntityStore, KillTrackerResource> getKillTrackerResourceType() {
class="kw">return this.killTrackerResourceType;
}
}