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