TickingSystem class
Пакет: com.hypixel.hytale.builtin.adventure.objectives.markers.objectivelocation
Файл: com/hypixel/hytale/builtin/adventure/objectives/markers/objectivelocation/ObjectiveLocationMarkerSystems.java
extends: EntityTickingSystem<EntityStore>
Поля (50)
| Модификаторы | Тип | Имя |
|---|---|---|
|
private final Set<Dependency<EntityStore>> |
dependencies |
|
private final ComponentType<EntityStore, ObjectiveLocationMarker> |
objectiveLocationMarkerComponentType |
|
private final ComponentType<EntityStore, PlayerRef> |
playerRefComponentType |
|
private final ResourceType<EntityStore, SpatialResource<Ref<EntityStore>, EntityStore>> |
playerSpatialComponent |
|
private final Query<EntityStore> |
query |
|
|
return |
|
|
return |
|
private final ComponentType<EntityStore, TransformComponent> |
transformComponentType |
|
private final ComponentType<EntityStore, UUIDComponent> |
uuidComponentType |
|
Objective |
var10 |
|
UUIDComponent |
var11 |
|
PlayerRef |
var11 |
|
UUID |
var12 |
|
ObjectiveLocationMarkerAsset |
var12 |
|
UUID |
var12 |
|
HashSet |
var13 |
|
World |
var13 |
|
PlayerRef[] |
var14 |
|
Objective |
var14 |
|
int |
var15 |
|
PlayerRef |
var18 |
|
UUIDComponent |
var19 |
|
ObjectiveDataStore |
var2 |
|
TransformComponent |
var20 |
|
WeatherTracker |
var21 |
|
SpatialResource |
var22 |
|
List |
var23 |
|
Set |
var24 |
|
Set |
var25 |
|
String |
var26 |
|
World |
var4 |
|
HytaleLogger |
var4 |
|
int |
var4 |
|
Iterator |
var5 |
|
ObjectiveLocationMarker |
var6 |
|
TrackOrUpdateObjective |
var6 |
|
|
var6 |
|
Universe |
var6 |
|
TransformComponent |
var7 |
|
SpatialResource |
var7 |
|
ObjectivePlugin |
var7 |
|
UUID |
var7 |
|
Ref |
var8 |
|
HytaleLogger |
var8 |
|
PlayerRef |
var8 |
|
|
var8 |
|
String |
var8 |
|
Vector3d |
var9 |
|
ObjectiveDataStore |
var9 |
|
private final ComponentType<EntityStore, WeatherTracker> |
weatherTrackerComponentType |
Методы (29)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
|
|
for for(Ref var17 : var23) |
|
|
for for(ObjectiveLocationTriggerCondition var11 : var2.triggerConditions) |
|
|
for for(int var10 = 0; var10 < var1; var10++) |
|
public Set<Dependency<EntityStore>> |
getDependenciespublic Set<Dependency<EntityStore>> getDependencies() |
|
public Query<EntityStore> |
getQuerypublic Query<EntityStore> getQuery() |
|
|
if if(var10 == null) |
|
|
if if(var18 != null) |
|
|
if if(var19 != null) |
|
|
if if(var20 != null) |
|
|
if if(var2.triggerConditions != null && var2.triggerConditions.length > 0) |
|
|
if if(var12 == null) |
|
|
if if(var14 == null) |
|
|
if if(var0.length != 0) |
|
|
if if(var6 == null) |
|
|
if if(var16 instanceof UseEntityObjectiveTask) |
|
|
if if(var8 != null) |
|
|
if if(var0.environmentIndexes == null) |
|
|
if if(var6 instanceof UseEntityObjectiveTask var7) |
|
public boolean |
isParallelpublic boolean isParallel(int var1, int var2) |
|
private static boolean |
isPlayerInSpecificEnvironmentprivate static boolean isPlayerInSpecificEnvironment(@Nonnull ObjectiveLocationMarker var0, @Nonnull WeatherTracker var1, @Nonnull TransformComponent var2, @Nonnull ComponentAccessor<EntityStore> var3) |
|
private void |
setupMarkerprivate void setupMarker(@Nonnull Store<EntityStore> var1,
@Nonnull ObjectiveLocationMarker var2,
@Nonnull Ref<EntityStore> var3,
@Nonnull Vector3d var4,
@Nonnull UUID var5,
@Nonnull CommandBuffer<EntityStore> var6) |
|
public void |
tickpublic void tick(float var1, int var2, @Nonnull Store<EntityStore> var3) |
|
public void |
tickpublic void tick(float var1, int var2, @Nonnull ArchetypeChunk<EntityStore> var3, @Nonnull Store<EntityStore> var4, @Nonnull CommandBuffer<EntityStore> var5) |
|
private static void |
untrackEntityObjectiveForPlayerprivate static void untrackEntityObjectiveForPlayer(@Nonnull ObjectiveLocationMarker var0, @Nonnull UUID var1) |
abstract |
|
untrackEntityObjectiveForPlayer untrackEntityObjectiveForPlayer(var1, var7) |
|
private static void |
updateIncomingPlayersprivate static void updateIncomingPlayers(@Nonnull PlayerRef[] var0, int var1, @Nonnull ObjectiveLocationMarker var2, @Nonnull Set<UUID> var3, @Nonnull Set<UUID> var4, @Nonnull String var5) |
abstract |
|
updateIncomingPlayers updateIncomingPlayers(var14, var15, var6, var24, var25, var26) |
|
private static void |
updateOutgoingPlayersprivate static void updateOutgoingPlayers(@Nonnull Set<UUID> var0, @Nonnull ObjectiveLocationMarker var1, @Nullable Set<UUID> var2, @Nonnull String var3) |
abstract |
|
updateOutgoingPlayers updateOutgoingPlayers(var13, var6, var25, var26) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.adventure.objectives.markers.objectivelocation;
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.ObjectiveLocationMarkerAsset;
class="kw">import com.hypixel.hytale.builtin.adventure.objectives.config.triggercondition.ObjectiveLocationTriggerCondition;
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.weather.components.WeatherTracker;
class="kw">import com.hypixel.hytale.component.AddReason;
class="kw">import com.hypixel.hytale.component.Archetype;
class="kw">import com.hypixel.hytale.component.ArchetypeChunk;
class="kw">import com.hypixel.hytale.component.CommandBuffer;
class="kw">import com.hypixel.hytale.component.ComponentAccessor;
class="kw">import com.hypixel.hytale.component.ComponentType;
class="kw">import com.hypixel.hytale.component.Holder;
class="kw">import com.hypixel.hytale.component.Ref;
class="kw">import com.hypixel.hytale.component.RemoveReason;
class="kw">import com.hypixel.hytale.component.ResourceType;
class="kw">import com.hypixel.hytale.component.Store;
class="kw">import com.hypixel.hytale.component.dependency.Dependency;
class="kw">import com.hypixel.hytale.component.dependency.Order;
class="kw">import com.hypixel.hytale.component.dependency.OrderPriority;
class="kw">import com.hypixel.hytale.component.dependency.SystemDependency;
class="kw">import com.hypixel.hytale.component.query.Query;
class="kw">import com.hypixel.hytale.component.spatial.SpatialResource;
class="kw">import com.hypixel.hytale.component.system.HolderSystem;
class="kw">import com.hypixel.hytale.component.system.RefSystem;
class="kw">import com.hypixel.hytale.component.system.tick.EntityTickingSystem;
class="kw">import com.hypixel.hytale.logger.HytaleLogger;
class="kw">import com.hypixel.hytale.math.vector.Rotation3f;
class="kw">import com.hypixel.hytale.protocol.packets.assets.TrackOrUpdateObjective;
class="kw">import com.hypixel.hytale.protocol.packets.assets.UntrackObjective;
class="kw">import com.hypixel.hytale.server.core.asset.type.model.config.Model;
class="kw">import com.hypixel.hytale.server.core.entity.UUIDComponent;
class="kw">import com.hypixel.hytale.server.core.modules.entity.component.ModelComponent;
class="kw">import com.hypixel.hytale.server.core.modules.entity.component.TransformComponent;
class="kw">import com.hypixel.hytale.server.core.modules.entity.system.PlayerSpatialSystem;
class="kw">import com.hypixel.hytale.server.core.modules.entity.tracker.NetworkId;
class="kw">import com.hypixel.hytale.server.core.prefab.PrefabCopyableComponent;
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.HashSet;
class="kw">import java.util.Iterator;
class="kw">import java.util.List;
class="kw">import java.util.Set;
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">public class ObjectiveLocationMarkerSystems {
class="kw">public ObjectiveLocationMarkerSystems() {
}
class="kw">public class="kw">static class EnsureNetworkSendableSystem class="kw">extends HolderSystem<EntityStore> {
@Nonnull
class="kw">private class="kw">final ComponentType<EntityStore, NetworkId> networkIdComponentType;
@Nonnull
class="kw">private class="kw">final Query<EntityStore> query;
class="kw">public EnsureNetworkSendableSystem(@Nonnull ComponentType<EntityStore, ObjectiveLocationMarker> var1, @Nonnull ComponentType<EntityStore, NetworkId> var2) {
this.networkIdComponentType = var2;
this.query = Query.and(var1, Query.not(var2));
}
@Override
class="kw">public void onEntityAdd(@Nonnull Holder<EntityStore> var1, @Nonnull AddReason var2, @Nonnull Store<EntityStore> var3) {
var1.addComponent(this.networkIdComponentType, new NetworkId(var3.getExternalData().takeNextNetworkId()));
}
@Override
class="kw">public void onEntityRemoved(@Nonnull Holder<EntityStore> var1, @Nonnull RemoveReason var2, @Nonnull Store<EntityStore> var3) {
}
@Nonnull
@Override
class="kw">public Query<EntityStore> getQuery() {
class="kw">return this.query;
}
}
class="kw">public class="kw">static class InitSystem class="kw">extends RefSystem<EntityStore> {
@Nonnull
class="kw">private class="kw">final ComponentType<EntityStore, ObjectiveLocationMarker> objectiveLocationMarkerComponent;
@Nonnull
class="kw">private class="kw">final ComponentType<EntityStore, ModelComponent> modelComponentType;
@Nonnull
class="kw">private class="kw">final ComponentType<EntityStore, TransformComponent> transformComponentType;
@Nonnull
class="kw">private class="kw">final ComponentType<EntityStore, PrefabCopyableComponent> prefabCopyableComponentType;
@Nonnull
class="kw">private class="kw">final Query<EntityStore> query;
class="kw">public InitSystem(
@Nonnull ComponentType<EntityStore, ObjectiveLocationMarker> var1,
@Nonnull ComponentType<EntityStore, ModelComponent> var2,
@Nonnull ComponentType<EntityStore, TransformComponent> var3,
@Nonnull ComponentType<EntityStore, PrefabCopyableComponent> var4
) {
this.objectiveLocationMarkerComponent = var1;
this.modelComponentType = var2;
this.transformComponentType = var3;
this.prefabCopyableComponentType = var4;
this.query = Query.and(var1, var2, var3);
}
@Nonnull
@Override
class="kw">public Query<EntityStore> getQuery() {
class="kw">return this.query;
}
@Override
class="kw">public void onEntityAdded(
@Nonnull Ref<EntityStore> var1, @Nonnull AddReason var2, @Nonnull Store<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4
) {
ObjectiveLocationMarker var5 = var3.getComponent(var1, this.objectiveLocationMarkerComponent);
assert var5 != null;
ObjectiveLocationMarkerAsset var6 = ObjectiveLocationMarkerAsset.getAssetMap().getAsset(var5.objectiveLocationMarkerId);
if (var6 == null) {
ObjectivePlugin.get()
.getLogger()
.at(Level.WARNING)
.log("Failed to find ObjectiveLocationMarker '%s'. Entity removed!", var5.objectiveLocationMarkerId);
var4.removeEntity(var1, RemoveReason.REMOVE);
} else {
if (var5.activeObjectiveUUID != null) {
Objective var7 = ObjectivePlugin.get().getObjectiveDataStore().loadObjective(var5.activeObjectiveUUID, var3);
if (var7 == null) {
ObjectivePlugin.get().getLogger().at(Level.WARNING).log("Failed to load Objective with UUID '%s'. Entity removed!", var5.activeObjectiveUUID);
var4.removeEntity(var1, RemoveReason.REMOVE);
class="kw">return;
}
var5.setActiveObjective(var7);
var5.setUntrackPacket(new UntrackObjective(var5.activeObjectiveUUID));
}
TransformComponent var11 = var3.getComponent(var1, this.transformComponentType);
assert var11 != null;
Rotation3f var8 = var11.getRotation();
var5.updateLocationMarkerValues(var6, var8.yaw(), var3);
ModelComponent var9 = var3.getComponent(var1, this.modelComponentType);
assert var9 != null;
Model var10 = var9.getModel();
var4.putComponent(
var1,
this.modelComponentType,
new ModelComponent(
new Model(
var10.getModelAssetId(),
var10.getScale(),
var10.getRandomAttachmentIds(),
var10.getAttachments(),
var5.getArea().getBoxForEntryArea(),
var10.getModel(),
var10.getTexture(),
var10.getGradientSet(),
var10.getGradientId(),
var10.getEyeHeight(),
var10.getCrouchOffset(),
var10.getSittingOffset(),
var10.getSleepingOffset(),
var10.getAnimationSetMap(),
var10.getCamera(),
var10.getLight(),
var10.getParticles(),
var10.getTrails(),
var10.getPhysicsValues(),
var10.getDetailBoxes(),
var10.getPhobia(),
var10.getPhobiaModelAssetId()
)
)
);
var4.ensureComponent(var1, this.prefabCopyableComponentType);
}
}
@Override
class="kw">public void onEntityRemove(
@Nonnull Ref<EntityStore> var1, @Nonnull RemoveReason var2, @Nonnull Store<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4
) {
ObjectiveLocationMarker var5 = var3.getComponent(var1, this.objectiveLocationMarkerComponent);
assert var5 != null;
Objective var6 = var5.getActiveObjective();
if (var6 != null) {
ObjectiveDataStore var7 = ObjectivePlugin.get().getObjectiveDataStore();
var7.saveToDisk(var5.activeObjectiveUUID.toString(), var6);
var7.unloadObjective(var5.activeObjectiveUUID);
if (var2 == RemoveReason.REMOVE) {
var4.run(var1x -> ObjectivePlugin.get().cancelObjective(var5.activeObjectiveUUID, var1x));
}
}
}
}
class="kw">public class="kw">static class TickingSystem class="kw">extends EntityTickingSystem<EntityStore> {
@Nonnull
class="kw">private class="kw">final ComponentType<EntityStore, ObjectiveLocationMarker> objectiveLocationMarkerComponentType;
@Nonnull
class="kw">private class="kw">final ComponentType<EntityStore, PlayerRef> playerRefComponentType;
@Nonnull
class="kw">private class="kw">final ComponentType<EntityStore, TransformComponent> transformComponentType;
@Nonnull
class="kw">private class="kw">final ComponentType<EntityStore, WeatherTracker> weatherTrackerComponentType;
@Nonnull
class="kw">private class="kw">final ComponentType<EntityStore, UUIDComponent> uuidComponentType;
@Nonnull
class="kw">private class="kw">final ResourceType<EntityStore, SpatialResource<Ref<EntityStore>, EntityStore>> playerSpatialComponent;
@Nonnull
class="kw">private class="kw">final Query<EntityStore> query;
@Nonnull
class="kw">private class="kw">final Set<Dependency<EntityStore>> dependencies;
class="kw">public TickingSystem(
@Nonnull ComponentType<EntityStore, ObjectiveLocationMarker> var1,
@Nonnull ComponentType<EntityStore, PlayerRef> var2,
@Nonnull ResourceType<EntityStore, SpatialResource<Ref<EntityStore>, EntityStore>> var3,
@Nonnull ComponentType<EntityStore, TransformComponent> var4,
@Nonnull ComponentType<EntityStore, WeatherTracker> var5,
@Nonnull ComponentType<EntityStore, UUIDComponent> var6
) {
this.objectiveLocationMarkerComponentType = var1;
this.playerRefComponentType = var2;
this.transformComponentType = var4;
this.weatherTrackerComponentType = var5;
this.uuidComponentType = var6;
this.playerSpatialComponent = var3;
this.query = Archetype.of(var1, var4, var6);
this.dependencies = Set.of(new SystemDependency<>(Order.AFTER, PlayerSpatialSystem.class, OrderPriority.CLOSEST));
}
@Nonnull
@Override
class="kw">public Set<Dependency<EntityStore>> getDependencies() {
class="kw">return this.dependencies;
}
@Nonnull
@Override
class="kw">public Query<EntityStore> getQuery() {
class="kw">return this.query;
}
@Override
class="kw">public boolean isParallel(int var1, int var2) {
class="kw">return false;
}
@Override
class="kw">public void tick(float var1, int var2, @Nonnull Store<EntityStore> var3) {
World var4 = var3.getExternalData().getWorld();
if (var4.getWorldConfig().isObjectiveMarkersEnabled()) {
var3.tick(this, var1, var2);
}
}
@Override
class="kw">public void tick(
float var1, int var2, @Nonnull ArchetypeChunk<EntityStore> var3, @Nonnull Store<EntityStore> var4, @Nonnull CommandBuffer<EntityStore> var5
) {
ObjectiveLocationMarker var6 = var3.getComponent(var2, this.objectiveLocationMarkerComponentType);
assert var6 != null;
TransformComponent var7 = var3.getComponent(var2, this.transformComponentType);
assert var7 != null;
Ref var8 = var3.getReferenceTo(var2);
Vector3d var9 = var7.getPosition();
Objective var10 = var6.getActiveObjective();
if (var10 == null) {
UUIDComponent var11 = var3.getComponent(var2, this.uuidComponentType);
assert var11 != null;
UUID var12 = var11.getUuid();
this.setupMarker(var4, var6, var8, var9, var12, var5);
} else if (!var10.isCompleted()) {
SpatialResource var22 = var4.getResource(this.playerSpatialComponent);
List var23 = SpatialResource.getThreadLocalReferenceList();
var6.area.getPlayersInExitArea(var22, var23, var9);
HashSet var13 = new HashSet<>(var23.size());
PlayerRef[] var14 = new PlayerRef[var23.size()];
int var15 = 0;
for (Ref var17 : var23) {
PlayerRef var18 = var5.getComponent(var17, this.playerRefComponentType);
if (var18 != null) {
UUIDComponent var19 = var5.getComponent(var17, this.uuidComponentType);
if (var19 != null) {
TransformComponent var20 = var5.getComponent(var17, this.transformComponentType);
if (var20 != null) {
WeatherTracker var21 = var5.getComponent(var17, this.weatherTrackerComponentType);
if (var21 != null && isPlayerInSpecificEnvironment(var6, var21, var20, var5)) {
var13.add(var19.getUuid());
if (var6.area.isPlayerInEntryArea(var20.getPosition(), var9)) {
var14[var15++] = var18;
}
}
}
}
}
}
Set var24 = var10.getPlayerUUIDs();
Set var25 = var10.getActivePlayerUUIDs();
String var26 = var10.getObjectiveId();
updateIncomingPlayers(var14, var15, var6, var24, var25, var26);
updateOutgoingPlayers(var13, var6, var25, var26);
} else {
var5.removeEntity(var8, RemoveReason.REMOVE);
}
}
class="kw">private void setupMarker(
@Nonnull Store<EntityStore> var1,
@Nonnull ObjectiveLocationMarker var2,
@Nonnull Ref<EntityStore> var3,
@Nonnull Vector3d var4,
@Nonnull UUID var5,
@Nonnull CommandBuffer<EntityStore> var6
) {
if (var2.triggerConditions != null && var2.triggerConditions.length > 0) {
SpatialResource var7 = var1.getResource(this.playerSpatialComponent);
if (!var2.area.hasPlayerInExitArea(var7, this.playerRefComponentType, var4, var6)) {
class="kw">return;
}
for (ObjectiveLocationTriggerCondition var11 : var2.triggerConditions) {
if (!var11.isConditionMet(var6, var3, var2)) {
class="kw">return;
}
}
}
ObjectiveLocationMarkerAsset var12 = ObjectiveLocationMarkerAsset.getAssetMap().getAsset(var2.objectiveLocationMarkerId);
if (var12 == null) {
ObjectivePlugin.get()
.getLogger()
.at(Level.WARNING)
.log("Could not find ObjectiveLocationMarker '%s'. Entity removed!", var2.objectiveLocationMarkerId);
var6.removeEntity(var3, RemoveReason.REMOVE);
} else {
World var13 = var1.getExternalData().getWorld();
Objective var14 = var12.getObjectiveTypeSetup().setup(new HashSet<>(), var13.getWorldConfig().getUuid(), var5, var1);
if (var14 == null) {
ObjectivePlugin.get()
.getLogger()
.at(Level.WARNING)
.log("Objective failed to setup for ObjectiveLocationMarker '%s'. Entity removed!", var2.objectiveLocationMarkerId);
var6.removeEntity(var3, RemoveReason.REMOVE);
} else {
var2.setActiveObjective(var14);
var2.activeObjectiveUUID = var14.getObjectiveUUID();
var2.setUntrackPacket(new UntrackObjective(var2.activeObjectiveUUID));
}
}
}
class="kw">private class="kw">static void updateIncomingPlayers(
@Nonnull PlayerRef[] var0, int var1, @Nonnull ObjectiveLocationMarker var2, @Nonnull Set<UUID> var3, @Nonnull Set<UUID> var4, @Nonnull String var5
) {
if (var0.length != 0) {
TrackOrUpdateObjective var6 = null;
ObjectivePlugin var7 = ObjectivePlugin.get();
HytaleLogger var8 = var7.getLogger();
ObjectiveDataStore var9 = var7.getObjectiveDataStore();
for (int var10 = 0; var10 < var1; var10++) {
PlayerRef var11 = var0[var10];
UUID var12 = var11.getUuid();
if (var4.add(var12)) {
var3.add(var12);
var8.at(Level.FINE)
.log(
"Player '%s' joined the objective area for marker '%s', current objective '%s' with UUID '%s'",
var11.getUsername(),
var2.objectiveLocationMarkerId,
var5,
var2.activeObjectiveUUID
);
if (var6 == null) {
var6 = new TrackOrUpdateObjective(var2.getActiveObjective().toPacket());
}
var11.getPacketHandler().writeNoCache(var6);
for (ObjectiveTask var16 : var2.getActiveObjective().getCurrentTasks()) {
if (var16 class="kw">instanceof UseEntityObjectiveTask) {
var9.addEntityTaskForPlayer(var12, ((UseEntityObjectiveTask)var16).getAsset().getTaskId(), var2.activeObjectiveUUID);
}
}
}
}
}
}
class="kw">private class="kw">static void updateOutgoingPlayers(@Nonnull Set<UUID> var0, @Nonnull ObjectiveLocationMarker var1, @Nullable Set<UUID> var2, @Nonnull String var3) {
if (var2 != null && !var2.isEmpty()) {
HytaleLogger var4 = ObjectivePlugin.get().getLogger();
Iterator var5 = var2.iterator();
Universe var6 = Universe.get();
while (var5.hasNext()) {
UUID var7 = var5.next();
if (!var0.contains(var7)) {
var5.remove();
untrackEntityObjectiveForPlayer(var1, var7);
PlayerRef var8 = var6.getPlayer(var7);
var4.at(Level.FINE)
.log(
"Player '%s' left the objective area for marker '%s', current objective '%s' with UUID '%s'",
var8 == null ? var7 : var8.getUsername(),
var1.objectiveLocationMarkerId,
var3,
var1.activeObjectiveUUID
);
if (var8 != null) {
var8.getPacketHandler().write(var1.getUntrackPacket());
}
}
}
}
}
class="kw">private class="kw">static boolean isPlayerInSpecificEnvironment(
@Nonnull ObjectiveLocationMarker var0, @Nonnull WeatherTracker var1, @Nonnull TransformComponent var2, @Nonnull ComponentAccessor<EntityStore> var3
) {
if (var0.environmentIndexes == null) {
class="kw">return true;
}
var1.updateEnvironment(var2, var3);
int var4 = var1.getEnvironmentId();
class="kw">return Arrays.binarySearch(var0.environmentIndexes, var4) >= 0;
}
class="kw">private class="kw">static void untrackEntityObjectiveForPlayer(@Nonnull ObjectiveLocationMarker var0, @Nonnull UUID var1) {
ObjectiveDataStore var2 = ObjectivePlugin.get().getObjectiveDataStore();
for (ObjectiveTask var6 : var0.getActiveObjective().getCurrentTasks()) {
if (var6 class="kw">instanceof UseEntityObjectiveTask var7) {
String var8 = var7.getAsset().getTaskId();
var2.removeEntityTaskForPlayer(var0.activeObjectiveUUID, var8, var1);
}
}
}
}
}