diff --git a/Robust.Client/Player/PlayerManager.cs b/Robust.Client/Player/PlayerManager.cs index 682b433ce06..21174850848 100644 --- a/Robust.Client/Player/PlayerManager.cs +++ b/Robust.Client/Player/PlayerManager.cs @@ -162,11 +162,14 @@ public override bool SetAttachedEntity(ICommonSession? session, EntityUid? uid, return true; } - if (!EntManager.EnsureComponent(uid.Value, out EyeComponent eye)) + if (!EntManager.HasComponent(uid.Value)) { if (_client.RunLevel != ClientRunLevel.SinglePlayerGame) Sawmill.Warning($"Attaching local player to an entity {EntManager.ToPrettyString(uid)} without an eye. This eye will not be netsynced and may cause issues."); + var eye = (EyeComponent) Factory.GetComponent(typeof(EyeComponent)); + eye.Owner = uid.Value; eye.NetSyncEnabled = false; + EntManager.AddComponent(uid.Value, eye); } Sawmill.Info($"Attaching local player to {EntManager.ToPrettyString(uid)}."); diff --git a/Robust.Shared/GameObjects/EntityManager.Components.cs b/Robust.Shared/GameObjects/EntityManager.Components.cs index d9c569e945e..0d6357557aa 100644 --- a/Robust.Shared/GameObjects/EntityManager.Components.cs +++ b/Robust.Shared/GameObjects/EntityManager.Components.cs @@ -318,10 +318,8 @@ private void AddComponentInternal(EntityUid uid, T component, ComponentRegist metadata ??= MetaQuery.GetComponentInternal(uid); metadata.NetComponents.Add(netId, component); } - else - { - component.Networked = false; - } + + component.Networked = reg.NetID != null; var eventArgs = new AddedComponentEventArgs(new ComponentEventArgs(component, uid), reg); ComponentAdded?.Invoke(eventArgs); diff --git a/Robust.Shared/Player/SharedPlayerManager.cs b/Robust.Shared/Player/SharedPlayerManager.cs index 92f14fd4cdc..54ab6686fd9 100644 --- a/Robust.Shared/Player/SharedPlayerManager.cs +++ b/Robust.Shared/Player/SharedPlayerManager.cs @@ -12,6 +12,7 @@ namespace Robust.Shared.Player; internal abstract partial class SharedPlayerManager : ISharedPlayerManager { [Dependency] protected readonly IEntityManager EntManager = default!; + [Dependency] protected readonly IComponentFactory Factory = default!; [Dependency] protected readonly ILogManager LogMan = default!; [Dependency] protected readonly IGameTiming Timing = default!; [Dependency] private readonly INetManager _netMan = default!;