using System; using System.Collections.Generic; using Robust.Server.GameObjects; using Robust.Shared.GameObjects; using Robust.Shared.Network; using Robust.Shared.Players; namespace Robust.Server.Player { public interface IPlayerSession : ICommonSession { DateTime ConnectedTime { get; } event EventHandler PlayerStatusChanged; void JoinGame(); LoginType AuthType { get; } /// /// Attaches this player to an entity. /// NOTE: The content pack almost certainly has an alternative for this. /// Do not call this directly for most content code. /// /// The entity to attach to. void AttachToEntity(EntityUid? entity); /// /// Attaches this player to an entity. /// NOTE: The content pack almost certainly has an alternative for this. /// Do not call this directly for most content code. /// /// The entity to attach to. void AttachToEntity(EntityUid uid); /// /// Detaches this player from an entity. /// NOTE: The content pack almost certainly has an alternative for this. /// Do not call this directly for most content code. /// void DetachFromEntity(); void OnConnect(); void OnDisconnect(); IReadOnlySet ViewSubscriptions { get; } int ViewSubscriptionCount { get; } /// /// Persistent data for this player. /// IPlayerData Data { get; } /// /// Internal method to set and update the player's status. /// Do NOT use this unless you know what you're doing, you probably want /// and instead. /// internal void SetAttachedEntity(EntityUid? entity); /// /// Internal method to add an entity Uid to . /// Do NOT use this outside of . /// internal void AddViewSubscription(EntityUid eye); /// /// Internal method to remove an entity Uid from . /// Do NOT use this outside of . /// internal void RemoveViewSubscription(EntityUid eye); } }