PlayerSystems class

Пакет: com.hypixel.hytale.server.core.modules.entity.player

Файл: com/hypixel/hytale/server/core/modules/entity/player/PlayerSystems.java

Поля (118)

МодификаторыТипИмя
private static final Message MESSAGE_SERVER_GENERAL_KILLED_BY_UNKNOWN
break
break
break
private final Set<Dependency<EntityStore>> dependencies
private final ComponentType<EntityStore, PlayerRef> playerRefComponentType
private final ComponentType<EntityStore, PlayerRef> playerRefComponentType
private final Query<EntityStore> query
private final Query<EntityStore> query
private final Query<EntityStore> query
private final Query<EntityStore> query
EquipmentUpdate updatex
TransformUpdate updatexx
PlayerWorldData var10
Message var10
ModelUpdate var10
Rotation3f var10
GameplayConfig var11
WorldConfig var11
EntityScaleComponent var11
PlayerRef var11
SpawnConfig var12
Message var12
InventoryComponent.Utility var12
MaterialQuantity[] var13
RemovedPlayerFromWorldEvent var13
CombinedItemContainer var14
PlayerSkinComponent var14
Teleport var15
InventoryComponent.Armor var15
PlayerSettings var15
Ref var16
InventoryComponent.Hotbar var16
TransformComponent var16
Vector3d var17
InventoryComponent.Utility var17
InventoryComponent.Armor var17
InventoryComponent.Tool var18
HeadRotation var18
InventoryComponent.Backpack var19
HytaleServerConfig.Defaults var2
List var2
EntityTrackerSystems.EntityViewer var2
DeathComponent var20
EffectControllerComponent var20
Message var21
var21
EntityStatMap var21
RespawnPage var22
Vector3d var23
SpatialResource var24
List var25
WorldParticle[] var26
var26
PacketHandler var27
InventoryComponent.Storage var28
PersistentGameModeType var29
PlayerInput var3
HardcoreMode var3
NetworkId var3
TransformComponent var30
WorldParticle[] var31
boolean var4
var4
var4
var4
HardcoreState var4
Player var4
InventoryComponent var4
World var4
EntityUpdate var4
TransformComponent var5
Nameplate var5
Nameplate var5
DisplayNameComponent var5
World var5
Player var5
List var5
ItemStack var5
PlayerRef var5
ObjectArrayList var5
HeadRotation var6
Message var6
var6
var6
Message var6
var6
var6
Nameplate var6
String var6
Player var6
InventoryComponent.Storage var6
Player var6
Archetype var6
PlayerInput var6
World var6
List var7
DisplayNameComponent var7
DisplayNameComponent var7
Nameplate var7
PlayerRef var7
InventoryComponent.Hotbar var7
TransformComponent var7
Nameplate var7
List var7
TransformComponent var7
PlayerRef var8
PlayerRef var8
MovementManager var8
List var8
var8
HeadRotation var8
PredictedProjectile var8
Transform var8
Message var9
DisplayNameComponent var9
ModelComponent var9
HeadRotation var9

Методы (75)

МодификаторыВозвратСигнатура
public BlockPausedMovementSystempublic BlockPausedMovementSystem()
abstract throw new IllegalArgumentExceptionthrow new IllegalArgumentException("Viewer is missing EntityViewer component")
abstract throw new IllegalArgumentExceptionthrow new IllegalArgumentException("Viewer is missing NetworkId component")
public KillFeedDecedentEventSystempublic KillFeedDecedentEventSystem()
public KillFeedKillerEventSystempublic KillFeedKillerEventSystem()
public NameplateRefChangeSystempublic NameplateRefChangeSystem()
public NameplateRefSystempublic NameplateRefSystem()
public PlayerAddedSystempublic PlayerAddedSystem(@Nonnull ComponentType<EntityStore, MovementManager> var1)
public PlayerInitSystempublic PlayerInitSystem()
public PlayerRemovedSystempublic PlayerRemovedSystem()
public PlayerSpawnedSystempublic PlayerSpawnedSystem()
public ProcessPlayerInputpublic ProcessPlayerInput()
public UpdatePlayerRefpublic UpdatePlayerRef()
private static List<ItemStack> addReturningLeftoversprivate static List<ItemStack> addReturningLeftovers(@Nonnull InventoryComponent var0, @Nonnull List<ItemStack> var1)
public ComponentType<EntityStore, DisplayNameComponent> componentTypepublic ComponentType<EntityStore, DisplayNameComponent> componentType()
private static int deathScreenLivesRemainingprivate static int deathScreenLivesRemaining(@Nonnull Ref<EntityStore> var0, @Nonnull CommandBuffer<EntityStore> var1)
private static <T extends InventoryComponent> T ensureInventoryprivate static <T extends InventoryComponent> T ensureInventory(@Nonnull Holder<EntityStore> var0, @Nonnull ComponentType<EntityStore, T> var1, short var2, @Nonnull List<ItemStack> var3)
for for(PlayerInput.InputUpdate var9 : var7)
for for(PlayerInput.InputUpdate var9 : var7)
abstract for for(int var2 = 0; var2 < var0.size()
public Set<Dependency<EntityStore>> getDependenciespublic Set<Dependency<EntityStore>> getDependencies()
public Query<EntityStore> getQuerypublic Query<EntityStore> getQuery()
public Query<EntityStore> getQuerypublic Query<EntityStore> getQuery()
public Query<EntityStore> getQuerypublic Query<EntityStore> getQuery()
public Query<EntityStore> getQuerypublic Query<EntityStore> getQuery()
public Query<EntityStore> getQuerypublic Query<EntityStore> getQuery()
public Query<EntityStore> getQuerypublic Query<EntityStore> getQuery()
public Query<EntityStore> getQuerypublic Query<EntityStore> getQuery()
public Query<EntityStore> getQuerypublic Query<EntityStore> getQuery()
public Query<EntityStore> getQuerypublic Query<EntityStore> getQuery()
public Query<EntityStore> getQuerypublic Query<EntityStore> getQuery()
public Query<EntityStore> getQuerypublic Query<EntityStore> getQuery()
public void handlepublic void handle(int var1, @Nonnull ArchetypeChunk<EntityStore> var2, @Nonnull Store<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4, @Nonnull KillFeedEvent.DecedentMessage var5)
public void handlepublic void handle(int var1, @Nonnull ArchetypeChunk<EntityStore> var2, @Nonnull Store<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4, @Nonnull KillFeedEvent.KillerMessage var5)
if if(var4)
if if(var7 != null)
if if(var7 != null)
if if(var20 != null)
if if(var21 == null)
if if(var29 != null)
if if(var30 != null)
if if(var26 == null)
if if(var26 != null)
if if(var31 != null)
if if(var3 == HardcoreMode.Global)
if if(var2 == null)
if if(var3 == null)
if if(var7 != null)
if if(var8 != null)
if if(var11 != null)
if if(var16 != null && var18 != null)
if if(var20 != null)
if if(var21 != null)
public void onComponentAddedpublic void onComponentAdded(@Nonnull Ref<EntityStore> var1, @Nonnull DisplayNameComponent var2, @Nonnull Store<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4)
public void onComponentRemovedpublic void onComponentRemoved(@Nonnull Ref<EntityStore> var1, @Nonnull DisplayNameComponent var2, @Nonnull Store<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4)
public void onComponentSetpublic void onComponentSet(@Nonnull Ref<EntityStore> var1, DisplayNameComponent var2, @Nonnull DisplayNameComponent var3, @Nonnull Store<EntityStore> var4, @Nonnull CommandBuffer<EntityStore> var5)
public void onEntityAddpublic void onEntityAdd(@Nonnull Holder<EntityStore> var1, @Nonnull AddReason var2, @Nonnull Store<EntityStore> var3)
public void onEntityAddpublic void onEntityAdd(@Nonnull Holder<EntityStore> var1, @Nonnull AddReason var2, @Nonnull Store<EntityStore> var3)
public void onEntityAddedpublic void onEntityAdded(@Nonnull Ref<EntityStore> var1, @Nonnull AddReason var2, @Nonnull Store<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4)
public void onEntityAddedpublic void onEntityAdded(@Nonnull Ref<EntityStore> var1, @Nonnull AddReason var2, @Nonnull Store<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4)
public void onEntityAddedpublic void onEntityAdded(@Nonnull Ref<EntityStore> var1, @Nonnull AddReason var2, @Nonnull Store<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4)
public void onEntityRemovepublic void onEntityRemove(@Nonnull Ref<EntityStore> var1, @Nonnull RemoveReason var2, @Nonnull Store<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4)
public void onEntityRemovepublic void onEntityRemove(@Nonnull Ref<EntityStore> var1, @Nonnull RemoveReason var2, @Nonnull Store<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4)
public void onEntityRemovepublic void onEntityRemove(@Nonnull Ref<EntityStore> var1, @Nonnull RemoveReason var2, @Nonnull Store<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4)
public void onEntityRemovedpublic void onEntityRemoved(@Nonnull Holder<EntityStore> var1, @Nonnull RemoveReason var2, @Nonnull Store<EntityStore> var3)
public void onEntityRemovedpublic void onEntityRemoved(@Nonnull Holder<EntityStore> var1, @Nonnull RemoveReason var2, @Nonnull Store<EntityStore> var3)
private static void onTickprivate static void onTick(@Nonnull ArchetypeChunk<EntityStore> var0, @Nonnull CommandBuffer<EntityStore> var1)
public static void sendPlayerSelfpublic static void sendPlayerSelf(@Nonnull Ref<EntityStore> var0, @Nonnull Store<EntityStore> var1)
abstract sendPlayerSelf sendPlayerSelf(var1, var3)
abstract super super(KillFeedEvent.DecedentMessage.class)
abstract super super(KillFeedEvent.KillerMessage.class)
switch switch(var9)
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)
public void tickpublic void tick(float var1, int var2, @Nonnull ArchetypeChunk<EntityStore> var3, @Nonnull Store<EntityStore> var4, @Nonnull CommandBuffer<EntityStore> var5)

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.server.core.modules.entity.player;

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.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.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.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.EntityEventSystem;
class="kw">import com.hypixel.hytale.component.system.HolderSystem;
class="kw">import com.hypixel.hytale.component.system.QuerySystem;
class="kw">import com.hypixel.hytale.component.system.RefChangeSystem;
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.component.system.tick.RunWhenPausedSystem;
class="kw">import com.hypixel.hytale.logger.HytaleLogger;
class="kw">import com.hypixel.hytale.math.vector.Rotation3f;
class="kw">import com.hypixel.hytale.math.vector.Transform;
class="kw">import com.hypixel.hytale.protocol.ComponentUpdate;
class="kw">import com.hypixel.hytale.protocol.EntityEffectsUpdate;
class="kw">import com.hypixel.hytale.protocol.EntityStatsUpdate;
class="kw">import com.hypixel.hytale.protocol.EntityUpdate;
class="kw">import com.hypixel.hytale.protocol.EquipmentUpdate;
class="kw">import com.hypixel.hytale.protocol.IntangibleUpdate;
class="kw">import com.hypixel.hytale.protocol.InteractableUpdate;
class="kw">import com.hypixel.hytale.protocol.InvulnerableUpdate;
class="kw">import com.hypixel.hytale.protocol.ModelTransform;
class="kw">import com.hypixel.hytale.protocol.ModelUpdate;
class="kw">import com.hypixel.hytale.protocol.NameplateUpdate;
class="kw">import com.hypixel.hytale.protocol.PlayerSkinUpdate;
class="kw">import com.hypixel.hytale.protocol.PredictionUpdate;
class="kw">import com.hypixel.hytale.protocol.PreventEmotesUpdate;
class="kw">import com.hypixel.hytale.protocol.PreventInventoryAccessUpdate;
class="kw">import com.hypixel.hytale.protocol.RespondToHitUpdate;
class="kw">import com.hypixel.hytale.protocol.TransformUpdate;
class="kw">import com.hypixel.hytale.protocol.packets.buildertools.BuilderToolsSetSoundSet;
class="kw">import com.hypixel.hytale.protocol.packets.entities.EntityUpdates;
class="kw">import com.hypixel.hytale.protocol.packets.inventory.SetActiveSlot;
class="kw">import com.hypixel.hytale.protocol.packets.inventory.UpdatePlayerInventory;
class="kw">import com.hypixel.hytale.protocol.packets.player.SetBlockPlacementOverride;
class="kw">import com.hypixel.hytale.server.core.HytaleServer;
class="kw">import com.hypixel.hytale.server.core.HytaleServerConfig;
class="kw">import com.hypixel.hytale.server.core.Message;
class="kw">import com.hypixel.hytale.server.core.asset.type.gamemode.GameModeType;
class="kw">import com.hypixel.hytale.server.core.asset.type.gameplay.GameplayConfig;
class="kw">import com.hypixel.hytale.server.core.asset.type.gameplay.SpawnConfig;
class="kw">import com.hypixel.hytale.server.core.asset.type.particle.config.WorldParticle;
class="kw">import com.hypixel.hytale.server.core.entity.Entity;
class="kw">import com.hypixel.hytale.server.core.entity.effect.EffectControllerComponent;
class="kw">import com.hypixel.hytale.server.core.entity.entities.Player;
class="kw">import com.hypixel.hytale.server.core.entity.entities.player.data.PlayerWorldData;
class="kw">import com.hypixel.hytale.server.core.entity.entities.player.data.UniqueItemUsagesComponent;
class="kw">import com.hypixel.hytale.server.core.entity.entities.player.movement.MovementManager;
class="kw">import com.hypixel.hytale.server.core.entity.entities.player.pages.RespawnPage;
class="kw">import com.hypixel.hytale.server.core.entity.nameplate.Nameplate;
class="kw">import com.hypixel.hytale.server.core.event.events.player.RemovedPlayerFromWorldEvent;
class="kw">import com.hypixel.hytale.server.core.inventory.InventoryComponent;
class="kw">import com.hypixel.hytale.server.core.inventory.InventoryUtils;
class="kw">import com.hypixel.hytale.server.core.inventory.ItemStack;
class="kw">import com.hypixel.hytale.server.core.inventory.MaterialQuantity;
class="kw">import com.hypixel.hytale.server.core.inventory.container.CombinedItemContainer;
class="kw">import com.hypixel.hytale.server.core.inventory.container.SimpleItemContainer;
class="kw">import com.hypixel.hytale.server.core.inventory.transaction.ItemStackTransaction;
class="kw">import com.hypixel.hytale.server.core.io.PacketHandler;
class="kw">import com.hypixel.hytale.server.core.modules.entity.EntityModule;
class="kw">import com.hypixel.hytale.server.core.modules.entity.component.BreathingComponent;
class="kw">import com.hypixel.hytale.server.core.modules.entity.component.DisplayNameComponent;
class="kw">import com.hypixel.hytale.server.core.modules.entity.component.EntityScaleComponent;
class="kw">import com.hypixel.hytale.server.core.modules.entity.component.HeadRotation;
class="kw">import com.hypixel.hytale.server.core.modules.entity.component.Intangible;
class="kw">import com.hypixel.hytale.server.core.modules.entity.component.Interactable;
class="kw">import com.hypixel.hytale.server.core.modules.entity.component.Invulnerable;
class="kw">import com.hypixel.hytale.server.core.modules.entity.component.ModelComponent;
class="kw">import com.hypixel.hytale.server.core.modules.entity.component.PersistentDisplayName;
class="kw">import com.hypixel.hytale.server.core.modules.entity.component.PersistentGameModeType;
class="kw">import com.hypixel.hytale.server.core.modules.entity.component.PlayerLives;
class="kw">import com.hypixel.hytale.server.core.modules.entity.component.PreventEmotes;
class="kw">import com.hypixel.hytale.server.core.modules.entity.component.PreventInventoryAccess;
class="kw">import com.hypixel.hytale.server.core.modules.entity.component.RespondToHit;
class="kw">import com.hypixel.hytale.server.core.modules.entity.component.TransformComponent;
class="kw">import com.hypixel.hytale.server.core.modules.entity.damage.DeathComponent;
class="kw">import com.hypixel.hytale.server.core.modules.entity.damage.event.KillFeedEvent;
class="kw">import com.hypixel.hytale.server.core.modules.entity.gamemode.GameModeTypeState;
class="kw">import com.hypixel.hytale.server.core.modules.entity.item.DropItemsComponent;
class="kw">import com.hypixel.hytale.server.core.modules.entity.teleport.Teleport;
class="kw">import com.hypixel.hytale.server.core.modules.entity.tracker.EntityTrackerSystems;
class="kw">import com.hypixel.hytale.server.core.modules.entity.tracker.NetworkId;
class="kw">import com.hypixel.hytale.server.core.modules.entitystats.EntityStatMap;
class="kw">import com.hypixel.hytale.server.core.modules.projectile.component.PredictedProjectile;
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.hardcore.HardcoreMode;
class="kw">import com.hypixel.hytale.server.core.universe.hardcore.HardcoreState;
class="kw">import com.hypixel.hytale.server.core.universe.world.ParticleUtil;
class="kw">import com.hypixel.hytale.server.core.universe.world.PlayerUtil;
class="kw">import com.hypixel.hytale.server.core.universe.world.World;
class="kw">import com.hypixel.hytale.server.core.universe.world.WorldConfig;
class="kw">import com.hypixel.hytale.server.core.universe.world.meta.state.BlockMapMarker;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
class="kw">import com.hypixel.hytale.server.core.util.PositionUtil;
class="kw">import it.unimi.dsi.fastutil.objects.ObjectArrayList;
class="kw">import java.util.List;
class="kw">import java.util.Objects;
class="kw">import java.util.Set;
class="kw">import java.util.logging.Level;
class="kw">import javax.annotation.Nonnull;
class="kw">import org.joml.Vector3d;

class="kw">public class PlayerSystems {
   @Nonnull
   class="kw">public class="kw">static class="kw">final HytaleLogger LOGGER = HytaleLogger.forEnclosingClass();

   class="kw">public PlayerSystems() {
   }

   class="kw">public class="kw">static class BlockPausedMovementSystem class="kw">implements RunWhenPausedSystem<EntityStore>, QuerySystem<EntityStore> {
      @Nonnull
      class="kw">private class="kw">final Query<EntityStore> query = Query.and(
         Player.getComponentType(), PlayerInput.getComponentType(), TransformComponent.getComponentType(), HeadRotation.getComponentType()
      );

      class="kw">public BlockPausedMovementSystem() {
      }

      @Override
      class="kw">public void tick(float var1, int var2, @Nonnull Store<EntityStore> var3) {
         var3.forEachChunk(var2, PlayerSystems.BlockPausedMovementSystem::onTick);
      }

      class="kw">private class="kw">static void onTick(@Nonnull ArchetypeChunk<EntityStore> var0, @Nonnull CommandBuffer<EntityStore> var1) {
         for (int var2 = 0; var2 < var0.size(); var2++) {
            PlayerInput var3 = var0.getComponent(var2, PlayerInput.getComponentType());
            assert var3 != null;
            boolean var4 = false;
            TransformComponent var5 = var0.getComponent(var2, TransformComponent.getComponentType());
            assert var5 != null;
            HeadRotation var6 = var0.getComponent(var2, HeadRotation.getComponentType());
            assert var6 != null;
            List var7 = var3.getMovementUpdateQueue();

            for (PlayerInput.InputUpdate var9 : var7) {
               class="kw">switch (var9) {
                  case PlayerInput.AbsoluteMovement var12:
                     var4 = var5.getPosition().distanceSquared(var12.getX(), var12.getY(), var12.getZ()) > 0.01F;
                     break;
                  case PlayerInput.RelativeMovement var13:
                     Vector3d var17 = var5.getPosition();
                     var4 = var5.getPosition().distanceSquared(var17.x + var13.getX(), var17.y + var13.getY(), var17.z + var13.getZ()) > 0.01F;
                     break;
                  case PlayerInput.SetHead var14:
                     var4 = var6.getRotation().distanceSquaredTo(var14.direction().pitch, var14.direction().yaw, var14.direction().roll) > 0.01F;
                     break;
                  class="kw">default:
               }
            }

            var7.clear();
            if (var4) {
               Teleport var15 = Teleport.createExact(var5.getPosition(), var5.getRotation(), var6.getRotation()).withoutVelocityReset();
               Ref var16 = var0.getReferenceTo(var2);
               var1.addComponent(var16, Teleport.getComponentType(), var15);
            }
         }
      }

      @Nonnull
      @Override
      class="kw">public Query<EntityStore> getQuery() {
         class="kw">return this.query;
      }
   }

   class="kw">public class="kw">static class KillFeedDecedentEventSystem class="kw">extends EntityEventSystem<EntityStore, KillFeedEvent.DecedentMessage> {
      @Nonnull
      class="kw">private class="kw">final ComponentType<EntityStore, PlayerRef> playerRefComponentType = PlayerRef.getComponentType();

      class="kw">public KillFeedDecedentEventSystem() {
         super(KillFeedEvent.DecedentMessage.class);
      }

      class="kw">public void handle(
         int var1,
         @Nonnull ArchetypeChunk<EntityStore> var2,
         @Nonnull Store<EntityStore> var3,
         @Nonnull CommandBuffer<EntityStore> var4,
         @Nonnull KillFeedEvent.DecedentMessage var5
      ) {
         DisplayNameComponent var7 = var2.getComponent(var1, DisplayNameComponent.getComponentType());
         Message var6;
         if (var7 != null) {
            var6 = var7.getDisplayName();
         } else {
            PlayerRef var8 = var2.getComponent(var1, this.playerRefComponentType);
            assert var8 != null;
            var6 = Message.raw(var8.getUsername());
         }

         var5.setMessage(var6);
      }

      @Nonnull
      @Override
      class="kw">public Query<EntityStore> getQuery() {
         class="kw">return this.playerRefComponentType;
      }
   }

   class="kw">public class="kw">static class KillFeedKillerEventSystem class="kw">extends EntityEventSystem<EntityStore, KillFeedEvent.KillerMessage> {
      @Nonnull
      class="kw">private class="kw">final ComponentType<EntityStore, PlayerRef> playerRefComponentType = PlayerRef.getComponentType();

      class="kw">public KillFeedKillerEventSystem() {
         super(KillFeedEvent.KillerMessage.class);
      }

      class="kw">public void handle(
         int var1,
         @Nonnull ArchetypeChunk<EntityStore> var2,
         @Nonnull Store<EntityStore> var3,
         @Nonnull CommandBuffer<EntityStore> var4,
         @Nonnull KillFeedEvent.KillerMessage var5
      ) {
         DisplayNameComponent var7 = var2.getComponent(var1, DisplayNameComponent.getComponentType());
         Message var6;
         if (var7 != null) {
            var6 = var7.getDisplayName();
         } else {
            PlayerRef var8 = var2.getComponent(var1, this.playerRefComponentType);
            assert var8 != null;
            var6 = Message.raw(var8.getUsername());
         }

         var5.setMessage(var6);
      }

      @Nonnull
      @Override
      class="kw">public Query<EntityStore> getQuery() {
         class="kw">return this.playerRefComponentType;
      }
   }

   class="kw">public class="kw">static class NameplateRefChangeSystem class="kw">extends RefChangeSystem<EntityStore, DisplayNameComponent> {
      class="kw">public NameplateRefChangeSystem() {
      }

      @Nonnull
      @Override
      class="kw">public Query<EntityStore> getQuery() {
         class="kw">return Player.getComponentType();
      }

      @Nonnull
      @Override
      class="kw">public ComponentType<EntityStore, DisplayNameComponent> componentType() {
         class="kw">return DisplayNameComponent.getComponentType();
      }

      class="kw">public void onComponentAdded(
         @Nonnull Ref<EntityStore> var1, @Nonnull DisplayNameComponent var2, @Nonnull Store<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4
      ) {
         Nameplate var5 = var4.ensureAndGetComponent(var1, Nameplate.getComponentType());
         var5.setText(var2.getDisplayName() != null ? var2.getDisplayName().getAnsiMessage() : "");
      }

      class="kw">public void onComponentSet(
         @Nonnull Ref<EntityStore> var1,
         DisplayNameComponent var2,
         @Nonnull DisplayNameComponent var3,
         @Nonnull Store<EntityStore> var4,
         @Nonnull CommandBuffer<EntityStore> var5
      ) {
         Nameplate var6 = var5.ensureAndGetComponent(var1, Nameplate.getComponentType());
         var6.setText(var3.getDisplayName() != null ? var3.getDisplayName().getAnsiMessage() : "");
      }

      class="kw">public void onComponentRemoved(
         @Nonnull Ref<EntityStore> var1, @Nonnull DisplayNameComponent var2, @Nonnull Store<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4
      ) {
         Nameplate var5 = var4.ensureAndGetComponent(var1, Nameplate.getComponentType());
         var5.setText("");
      }
   }

   class="kw">public class="kw">static class NameplateRefSystem class="kw">extends RefSystem<EntityStore> {
      class="kw">public NameplateRefSystem() {
      }

      @Nonnull
      @Override
      class="kw">public Query<EntityStore> getQuery() {
         class="kw">return Archetype.of(Player.getComponentType(), DisplayNameComponent.getComponentType());
      }

      @Override
      class="kw">public void onEntityAdded(
         @Nonnull Ref<EntityStore> var1, @Nonnull AddReason var2, @Nonnull Store<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4
      ) {
         DisplayNameComponent var5 = var4.getComponent(var1, DisplayNameComponent.getComponentType());
         assert var5 != null;
         if (var4.getComponent(var1, Nameplate.getComponentType()) == null) {
            String var6 = var5.getDisplayName() != null ? var5.getDisplayName().getAnsiMessage() : "";
            Nameplate var7 = new Nameplate(var6);
            var4.putComponent(var1, Nameplate.getComponentType(), var7);
         }
      }

      @Override
      class="kw">public void onEntityRemove(
         @Nonnull Ref<EntityStore> var1, @Nonnull RemoveReason var2, @Nonnull Store<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4
      ) {
      }
   }

   class="kw">public class="kw">static class PlayerAddedSystem class="kw">extends RefSystem<EntityStore> {
      @Nonnull
      class="kw">private class="kw">static class="kw">final Message MESSAGE_SERVER_GENERAL_KILLED_BY_UNKNOWN = Message.translation("server.general.killedByUnknown");
      @Nonnull
      class="kw">private class="kw">final Set<Dependency<EntityStore>> dependencies = Set.of(new SystemDependency<>(Order.AFTER, PlayerSystems.PlayerSpawnedSystem.class));
      @Nonnull
      class="kw">private class="kw">final Query<EntityStore> query;

      class="kw">public PlayerAddedSystem(@Nonnull ComponentType<EntityStore, MovementManager> var1) {
         this.query = Query.and(Player.getComponentType(), PlayerRef.getComponentType(), var1);
      }

      @Nonnull
      @Override
      class="kw">public Query<EntityStore> getQuery() {
         class="kw">return this.query;
      }

      @Nonnull
      @Override
      class="kw">public Set<Dependency<EntityStore>> getDependencies() {
         class="kw">return this.dependencies;
      }

      @Override
      class="kw">public void onEntityAdded(
         @Nonnull Ref<EntityStore> var1, @Nonnull AddReason var2, @Nonnull Store<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4
      ) {
         World var5 = var4.getExternalData().getWorld();
         Player var6 = var4.getComponent(var1, Player.getComponentType());
         assert var6 != null;
         PlayerRef var7 = var4.getComponent(var1, PlayerRef.getComponentType());
         assert var7 != null;
         MovementManager var8 = var4.getComponent(var1, MovementManager.getComponentType());
         assert var8 != null;
         if (var4.getComponent(var1, PersistentDisplayName.getComponentType()) == null) {
            Message var9 = Message.raw(var7.getUsername());
            var4.putComponent(var1, DisplayNameComponent.getComponentType(), new DisplayNameComponent(var9));
         }

         var6.setLastSpawnTimeNanos(System.nanoTime());
         PacketHandler var27 = var7.getPacketHandler();
         Objects.requireNonNull(var5, "world");
         Objects.requireNonNull(var6.getPlayerConfigData(), "data");
         PlayerWorldData var10 = var6.getPlayerConfigData().getPerWorldData(var5.getName());
         Player.initGameMode(var1, var4);
         GameplayConfig var11 = var5.getGameplayConfig();
         SpawnConfig var12 = var11.getSpawnConfig();
         var27.writeNoCache(new BuilderToolsSetSoundSet(var11.getCreativePlaySoundSetIndex()));
         MaterialQuantity[] var13 = var12.getFirstSpawnItems();
         if (var6.isFirstSpawn() && var13 != null) {
            CombinedItemContainer var14 = InventoryComponent.getCombined(var4, var1, InventoryComponent.HOTBAR_FIRST);
            SimpleItemContainer.addOrDropItemStacks(var4, var1, var14, MaterialQuantity.toItemStacks(var13));
         }

         InventoryComponent.Storage var28 = var4.getComponent(var1, InventoryComponent.Storage.getComponentType());
         InventoryComponent.Armor var15 = var4.getComponent(var1, InventoryComponent.Armor.getComponentType());
         InventoryComponent.Hotbar var16 = var4.getComponent(var1, InventoryComponent.Hotbar.getComponentType());
         InventoryComponent.Utility var17 = var4.getComponent(var1, InventoryComponent.Utility.getComponentType());
         InventoryComponent.Tool var18 = var4.getComponent(var1, InventoryComponent.Tool.getComponentType());
         InventoryComponent.Backpack var19 = var4.getComponent(var1, InventoryComponent.Backpack.getComponentType());
         var27.writeNoCache(
            new UpdatePlayerInventory(
               var28 != null ? var28.getInventory().toPacket() : null,
               var15 != null ? var15.getInventory().toPacket() : null,
               var16 != null ? var16.getInventory().toPacket() : null,
               var17 != null ? var17.getInventory().toPacket() : null,
               var18 != null ? var18.getInventory().toPacket() : null,
               var19 != null ? var19.getInventory().toPacket() : null
            )
         );
         var27.writeNoCache(new SetActiveSlot(-1, var16 != null ? var16.getActiveSlot() : -1));
         var27.writeNoCache(new SetActiveSlot(-5, var17 != null ? var17.getActiveSlot() : -1));
         var27.writeNoCache(new SetActiveSlot(-8, var18 != null ? var18.getActiveSlot() : -1));
         if (InventoryUtils.containsBrokenItem(var1, var4)) {
            var7.sendMessage(Message.translation("server.general.repair.itemBrokenOnRespawn").color("#ff5555"));
         }

         var27.writeNoCache(new SetBlockPlacementOverride(var6.isOverrideBlockPlacementRestrictions()));
         DeathComponent var20 = var4.getComponent(var1, DeathComponent.getComponentType());
         if (var20 != null) {
            Message var21 = var20.getDeathMessage();
            if (var21 == null) {
               ((HytaleLogger.Api)Entity.LOGGER.at(Level.SEVERE).withCause(new Throwable()))
                  .log("Player wasn't alive but didn't have a pending death message?");
               var21 = MESSAGE_SERVER_GENERAL_KILLED_BY_UNKNOWN;
            }

            RespawnPage var22 = RespawnPage.forRespawn(
               var7, var21, var20.displayDataOnDeathScreen(), var20.getDeathItemLoss(), deathScreenLivesRemaining(var1, var4)
            );
            var6.getPageManager().openCustomPage(var1, var3, var22);
         }

         PersistentGameModeType var29 = var4.getComponent(var1, PersistentGameModeType.getComponentType());
         if (var29 != null) {
            GameModeTypeState.apply(var1, GameModeType.getAssetMap().getAsset(var29.getGameModeTypeId()), var4);
         }

         TransformComponent var30 = var4.getComponent(var1, TransformComponent.getComponentType());
         if (var30 != null) {
            Vector3d var23 = var30.getPosition();
            SpatialResource var24 = var4.getResource(EntityModule.get().getPlayerSpatialResourceType());
            List var25 = SpatialResource.getThreadLocalReferenceList();
            var24.getSpatialStructure().collect(var23, 75.0, var25);
            var25.add(var1);
            if (var6.isFirstSpawn()) {
               WorldParticle[] var26 = var12.getFirstSpawnParticles();
               if (var26 == null) {
                  var26 = var12.getSpawnParticles();
               }

               if (var26 != null) {
                  ParticleUtil.spawnParticleEffects(var26, var23, null, var25, var4);
               }
            } else {
               WorldParticle[] var31 = var12.getSpawnParticles();
               if (var31 != null) {
                  ParticleUtil.spawnParticleEffects(var31, var23, null, var25, var4);
               }
            }
         }

         var27.tryFlush();
         BlockMapMarker.retainRevealedMarkers(var5, var10);
         var10.setFirstSpawn(false);
      }

      @Override
      class="kw">public void onEntityRemove(
         @Nonnull Ref<EntityStore> var1, @Nonnull RemoveReason var2, @Nonnull Store<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4
      ) {
         Player var5 = var4.getComponent(var1, Player.getComponentType());
         assert var5 != null;
         var5.getWindowManager().closeAllWindows(var1, var4);
      }

      class="kw">private class="kw">static int deathScreenLivesRemaining(@Nonnull Ref<EntityStore> var0, @Nonnull CommandBuffer<EntityStore> var1) {
         HytaleServerConfig.Defaults var2 = HytaleServer.get().getConfig().getDefaults();
         HardcoreMode var3 = var2.getHardcoreMode();
         if (var3 == HardcoreMode.Global) {
            HardcoreState var4 = Universe.get().getResource(HardcoreState.getResourceType());
            class="kw">return var4.isGameOver() ? 0 : Math.max(var4.getPoolRemaining(var2.getHardcoreLives()), 0);
         } else {
            class="kw">return !var3.showsPersonalLives(var2.getHardcoreLives()) ? 0 : Math.max(PlayerLives.getRemainingOrDefault(var0, var1, var2.getHardcoreLives()), 0);
         }
      }
   }

   class="kw">public class="kw">static class PlayerInitSystem class="kw">extends HolderSystem<EntityStore> {
      class="kw">public PlayerInitSystem() {
      }

      @Override
      class="kw">public Query<EntityStore> getQuery() {
         class="kw">return PlayerRef.getComponentType();
      }

      @Override
      class="kw">public void onEntityAdd(@Nonnull Holder<EntityStore> var1, @Nonnull AddReason var2, @Nonnull Store<EntityStore> var3) {
         var1.ensureComponent(PlayerInput.getComponentType());
         var1.ensureComponent(EffectControllerComponent.getComponentType());
         var1.ensureComponent(UniqueItemUsagesComponent.getComponentType());
         var1.ensureComponent(BreathingComponent.getComponentType());
         Player var4 = var1.getComponent(Player.getComponentType());
         assert var4 != null;
         var4.getInventory().migrateToComponents(var1);
         List var5 = new ObjectArrayList();
         InventoryComponent.Storage var6 = ensureInventory(var1, InventoryComponent.Storage.getComponentType(), (short)36, var5);
         ensureInventory(var1, InventoryComponent.Armor.getComponentType(), InventoryComponent.DEFAULT_ARMOR_CAPACITY, var5);
         InventoryComponent.Hotbar var7 = ensureInventory(var1, InventoryComponent.Hotbar.getComponentType(), (short)9, var5);
         ensureInventory(var1, InventoryComponent.Utility.getComponentType(), (short)4, var5);
         ensureInventory(var1, InventoryComponent.Tool.getComponentType(), (short)23, var5);
         var1.ensureComponent(InventoryComponent.Backpack.getComponentType());
         if (!var5.isEmpty()) {
            List var8 = addReturningLeftovers(var7, var5);
            if (!var8.isEmpty()) {
               var8 = addReturningLeftovers(var6, var8);
            }

            if (!var8.isEmpty()) {
               DropItemsComponent.queue(var1, var8);
            }
         }

         var4.getInventory().backwardsCompatHook(var1);
      }

      class="kw">private class="kw">static <T class="kw">extends InventoryComponent> T ensureInventory(
         @Nonnull Holder<EntityStore> var0, @Nonnull ComponentType<EntityStore, T> var1, short var2, @Nonnull List<ItemStack> var3
      ) {
         var0.ensureComponent(var1);
         InventoryComponent var4 = (T)var0.getComponent(var1);
         assert var4 != null;
         var4.ensureCapacity(var2, var3);
         class="kw">return var4;
      }

      @Nonnull
      class="kw">private class="kw">static List<ItemStack> addReturningLeftovers(@Nonnull InventoryComponent var0, @Nonnull List<ItemStack> var1) {
         List var2 = new ObjectArrayList();

         for (ItemStackTransaction var4 : var0.getInventory().addItemStacks(var1).getList()) {
            ItemStack var5 = var4.getRemainder();
            if (!ItemStack.isEmpty(var5)) {
               var2.add(var5);
            }
         }

         class="kw">return var2;
      }

      @Override
      class="kw">public void onEntityRemoved(@Nonnull Holder<EntityStore> var1, @Nonnull RemoveReason var2, @Nonnull Store<EntityStore> var3) {
         var1.removeComponent(PlayerInput.getComponentType());
      }
   }

   class="kw">public class="kw">static class PlayerRemovedSystem class="kw">extends HolderSystem<EntityStore> {
      class="kw">public PlayerRemovedSystem() {
      }

      @Override
      class="kw">public Query<EntityStore> getQuery() {
         class="kw">return Query.and(
            PlayerRef.getComponentType(),
            Player.getComponentType(),
            TransformComponent.getComponentType(),
            HeadRotation.getComponentType(),
            DisplayNameComponent.getComponentType()
         );
      }

      @Override
      class="kw">public void onEntityAdd(@Nonnull Holder<EntityStore> var1, @Nonnull AddReason var2, @Nonnull Store<EntityStore> var3) {
      }

      @Override
      class="kw">public void onEntityRemoved(@Nonnull Holder<EntityStore> var1, @Nonnull RemoveReason var2, @Nonnull Store<EntityStore> var3) {
         World var4 = var3.getExternalData().getWorld();
         PlayerRef var5 = var1.getComponent(PlayerRef.getComponentType());
         assert var5 != null;
         Player var6 = var1.getComponent(Player.getComponentType());
         assert var6 != null;
         TransformComponent var7 = var1.getComponent(TransformComponent.getComponentType());
         assert var7 != null;
         HeadRotation var8 = var1.getComponent(HeadRotation.getComponentType());
         assert var8 != null;
         DisplayNameComponent var9 = var1.getComponent(DisplayNameComponent.getComponentType());
         assert var9 != null;
         Message var10 = var9.getDisplayName();
         PlayerSystems.LOGGER
            .at(Level.INFO)
            .log(
               "Removing player '%s%s' from world '%s' (%s)",
               var5.getUsername(),
               var10 != null ? " (" + var10.getAnsiMessage() + ")" : "",
               var4.getName(),
               var5.getUuid()
            );
         var6.getPlayerConfigData()
            .getPerWorldData(var4.getName())
            .setLastPosition(new Transform(new Vector3d(var7.getPosition()), new Rotation3f(var8.getRotation())));
         var5.getPacketHandler().setQueuePackets(false);
         var5.getPacketHandler().tryFlush();
         WorldConfig var11 = var4.getWorldConfig();
         Message var12 = Message.translation("server.general.playerLeftWorld")
            .param("username", var5.getUsername())
            .param("world", var11.getDisplayName() != null ? var11.getDisplayName() : WorldConfig.formatDisplayName(var4.getName()));
         RemovedPlayerFromWorldEvent var13 = HytaleServer.get()
            .getEventBus()
            .dispatchFor(RemovedPlayerFromWorldEvent.class, var4.getName())
            .dispatch(new RemovedPlayerFromWorldEvent(var1, var4, var12));
         if (var13.shouldBroadcastLeaveMessage()) {
            PlayerUtil.broadcastMessageToPlayers(var5.getUuid(), var13.getLeaveMessage(), var3);
         }
      }
   }

   class="kw">public class="kw">static class PlayerSpawnedSystem class="kw">extends RefSystem<EntityStore> {
      class="kw">public PlayerSpawnedSystem() {
      }

      @Nonnull
      @Override
      class="kw">public Query<EntityStore> getQuery() {
         class="kw">return Player.getComponentType();
      }

      @Override
      class="kw">public void onEntityAdded(
         @Nonnull Ref<EntityStore> var1, @Nonnull AddReason var2, @Nonnull Store<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4
      ) {
         sendPlayerSelf(var1, var3);
      }

      @Override
      class="kw">public void onEntityRemove(
         @Nonnull Ref<EntityStore> var1, @Nonnull RemoveReason var2, @Nonnull Store<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4
      ) {
      }

      @Deprecated
      class="kw">public class="kw">static void sendPlayerSelf(@Nonnull Ref<EntityStore> var0, @Nonnull Store<EntityStore> var1) {
         EntityTrackerSystems.EntityViewer var2 = var1.getComponent(var0, EntityTrackerSystems.EntityViewer.getComponentType());
         if (var2 == null) {
            throw new IllegalArgumentException("Viewer is missing EntityViewer component");
         }

         NetworkId var3 = var1.getComponent(var0, NetworkId.getComponentType());
         if (var3 == null) {
            throw new IllegalArgumentException("Viewer is missing NetworkId component");
         }

         EntityUpdate var4 = new EntityUpdate();
         var4.networkId = var3.getId();
         ObjectArrayList var5 = new ObjectArrayList();
         Archetype var6 = var1.getArchetype(var0);
         if (var6.contains(Interactable.getComponentType())) {
            var5.add(new InteractableUpdate());
         }

         if (var6.contains(Intangible.getComponentType())) {
            var5.add(new IntangibleUpdate());
         }

         if (var6.contains(Invulnerable.getComponentType())) {
            var5.add(new InvulnerableUpdate());
         }

         if (var6.contains(RespondToHit.getComponentType())) {
            var5.add(new RespondToHitUpdate());
         }

         if (var6.contains(PreventInventoryAccess.getComponentType())) {
            var5.add(new PreventInventoryAccessUpdate());
         }

         if (var6.contains(PreventEmotes.getComponentType())) {
            var5.add(new PreventEmotesUpdate());
         }

         Nameplate var7 = var1.getComponent(var0, Nameplate.getComponentType());
         if (var7 != null) {
            var5.add(new NameplateUpdate(var7.getText()));
         }

         PredictedProjectile var8 = var1.getComponent(var0, PredictedProjectile.getComponentType());
         if (var8 != null) {
            var5.add(new PredictionUpdate(var8.getUuid()));
         }

         ModelComponent var9 = var1.getComponent(var0, ModelComponent.getComponentType());
         ModelUpdate var10 = new ModelUpdate();
         var10.model = var9 != null ? var9.getModel().toPacket() : null;
         EntityScaleComponent var11 = var1.getComponent(var0, EntityScaleComponent.getComponentType());
         if (var11 != null) {
            var10.entityScale = var11.getScale();
         }

         var5.add(var10);
         PlayerSkinComponent var14 = var1.getComponent(var0, PlayerSkinComponent.getComponentType());
         var5.add(new PlayerSkinUpdate(var14 != null ? var14.getPlayerSkin() : null));
         PlayerSettings var15 = var1.getComponent(var0, PlayerSettings.getComponentType());
         InventoryComponent.Armor var17 = var1.getComponent(var0, InventoryComponent.Armor.getComponentType());
         InventoryComponent.Utility var12 = var1.getComponent(var0, InventoryComponent.Utility.getComponentType());
         EquipmentUpdate updatex = InventoryUtils.createEquipmentUpdate(var0, var1, var15, var17, var12);
         var5.add(updatex);
         TransformComponent var16 = var1.getComponent(var0, TransformComponent.getComponentType());
         HeadRotation var18 = var1.getComponent(var0, HeadRotation.getComponentType());
         if (var16 != null && var18 != null) {
            TransformUpdate updatexx = new TransformUpdate();
            updatexx.transform = new ModelTransform();
            updatexx.transform.position = PositionUtil.toPositionPacket(var16.getPosition());
            updatexx.transform.bodyOrientation = PositionUtil.toDirectionPacket(var16.getRotation());
            updatexx.transform.lookOrientation = PositionUtil.toDirectionPacket(var18.getRotation());
            var5.add(updatexx);
         }

         EffectControllerComponent var20 = var1.getComponent(var0, EffectControllerComponent.getComponentType());
         if (var20 != null) {
            var5.add(new EntityEffectsUpdate(var20.createInitUpdates()));
         }

         EntityStatMap var21 = var1.getComponent(var0, EntityStatMap.getComponentType());
         if (var21 != null) {
            var5.add(new EntityStatsUpdate(var21.createInitUpdate(true)));
         }

         var4.updates = (ComponentUpdate[])var5.toArray(ComponentUpdate[]::new);
         var2.packetReceiver.writeNoCache(new EntityUpdates(null, new EntityUpdate[]{var4}));
      }
   }

   class="kw">public class="kw">static class ProcessPlayerInput class="kw">extends EntityTickingSystem<EntityStore> {
      @Nonnull
      class="kw">private class="kw">final Query<EntityStore> query = Query.and(Player.getComponentType(), PlayerInput.getComponentType(), TransformComponent.getComponentType());

      class="kw">public ProcessPlayerInput() {
      }

      @Nonnull
      @Override
      class="kw">public Query<EntityStore> getQuery() {
         class="kw">return this.query;
      }

      @Override
      class="kw">public void tick(
         float var1, int var2, @Nonnull ArchetypeChunk<EntityStore> var3, @Nonnull Store<EntityStore> var4, @Nonnull CommandBuffer<EntityStore> var5
      ) {
         PlayerInput var6 = var3.getComponent(var2, PlayerInput.getComponentType());
         assert var6 != null;
         List var7 = var6.getMovementUpdateQueue();

         for (PlayerInput.InputUpdate var9 : var7) {
            var9.apply(var5, var3, var2);
         }

         var7.clear();
      }
   }

   class="kw">public class="kw">static class UpdatePlayerRef class="kw">extends EntityTickingSystem<EntityStore> {
      @Nonnull
      class="kw">private class="kw">final Query<EntityStore> query = Query.and(PlayerRef.getComponentType(), TransformComponent.getComponentType(), HeadRotation.getComponentType());

      class="kw">public UpdatePlayerRef() {
      }

      @Nonnull
      @Override
      class="kw">public Query<EntityStore> getQuery() {
         class="kw">return this.query;
      }

      @Override
      class="kw">public void tick(
         float var1, int var2, @Nonnull ArchetypeChunk<EntityStore> var3, @Nonnull Store<EntityStore> var4, @Nonnull CommandBuffer<EntityStore> var5
      ) {
         World var6 = var5.getExternalData().getWorld();
         TransformComponent var7 = var3.getComponent(var2, TransformComponent.getComponentType());
         assert var7 != null;
         Transform var8 = var7.getTransform();
         HeadRotation var9 = var3.getComponent(var2, HeadRotation.getComponentType());
         assert var9 != null;
         Rotation3f var10 = var9.getRotation();
         PlayerRef var11 = var3.getComponent(var2, PlayerRef.getComponentType());
         assert var11 != null;
         var11.updatePosition(var6, var8, var10);
      }
   }
}