mirror of
https://github.com/space-wizards/RobustToolbox.git
synced 2026-02-14 19:29:36 +01:00
Marked PlayerSession find methods on PlayerManager Obsolete (#2244)
This commit is contained in:
@@ -158,7 +158,7 @@ namespace Robust.Server.Console.Commands
|
||||
|
||||
var sb = new StringBuilder();
|
||||
|
||||
var players = IoCManager.Resolve<IPlayerManager>().GetAllPlayers();
|
||||
var players = IoCManager.Resolve<IPlayerManager>().ServerSessions;
|
||||
sb.AppendLine($"{"Player Name",20} {"Status",12} {"Playing Time",14} {"Ping",9} {"IP EndPoint",20}");
|
||||
sb.AppendLine("-------------------------------------------------------------------------------");
|
||||
|
||||
@@ -188,7 +188,7 @@ namespace Robust.Server.Console.Commands
|
||||
if (args.Length < 1)
|
||||
{
|
||||
var player = shell.Player as IPlayerSession;
|
||||
var toKickPlayer = player ?? players.GetAllPlayers().FirstOrDefault();
|
||||
var toKickPlayer = player ?? players.ServerSessions.FirstOrDefault();
|
||||
if (toKickPlayer == null)
|
||||
{
|
||||
shell.WriteLine("You need to provide a player to kick.");
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using Robust.Server.Player;
|
||||
using Robust.Shared.Enums;
|
||||
using Robust.Shared.GameObjects;
|
||||
@@ -19,7 +20,7 @@ namespace Robust.Server.GameObjects
|
||||
/// <summary>
|
||||
/// Priority queue sorted by how soon the effect will die, we remove messages from the front of the queue during update until caught up
|
||||
/// </summary>
|
||||
private readonly PriorityQueue<EffectSystemMessage> _CurrentEffects = new(new EffectMessageComparer());
|
||||
private readonly PriorityQueue<EffectSystemMessage> _currentEffects = new(new EffectMessageComparer());
|
||||
|
||||
/// <summary>
|
||||
/// Creates a particle effect and sends it to clients.
|
||||
@@ -28,11 +29,11 @@ namespace Robust.Server.GameObjects
|
||||
/// <param name="excludedSession">Session to be excluded for prediction</param>
|
||||
public void CreateParticle(EffectSystemMessage effect, IPlayerSession? excludedSession = null)
|
||||
{
|
||||
_CurrentEffects.Add(effect);
|
||||
_currentEffects.Add(effect);
|
||||
|
||||
//For now we will use this which sends to ALL clients
|
||||
//TODO: Client bubbling
|
||||
foreach (var player in _playerManager.GetAllPlayers())
|
||||
foreach (var player in _playerManager.ServerSessions)
|
||||
{
|
||||
if (player.Status != SessionStatus.InGame || player == excludedSession)
|
||||
continue;
|
||||
@@ -44,9 +45,9 @@ namespace Robust.Server.GameObjects
|
||||
public override void Update(float frameTime)
|
||||
{
|
||||
//Take elements from front of priority queue until they are old
|
||||
while (_CurrentEffects.Count != 0 && _CurrentEffects.Peek().DeathTime < _timing.CurTime)
|
||||
while (_currentEffects.Count != 0 && _currentEffects.Peek().DeathTime < _timing.CurTime)
|
||||
{
|
||||
_CurrentEffects.Take();
|
||||
_currentEffects.Take();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -16,7 +16,6 @@ using Robust.Shared.IoC;
|
||||
using Robust.Shared.Log;
|
||||
using Robust.Shared.Network;
|
||||
using Robust.Shared.Network.Messages;
|
||||
using Robust.Shared.Players;
|
||||
using Robust.Shared.Timing;
|
||||
using Robust.Shared.Utility;
|
||||
|
||||
@@ -124,7 +123,7 @@ namespace Robust.Server.GameStates
|
||||
_entityManager.CullDeletionHistory(GameTick.MaxValue);
|
||||
_pvs.CullDeletionHistory(GameTick.MaxValue);
|
||||
_mapManager.CullDeletionHistory(GameTick.MaxValue);
|
||||
_pvs.Cleanup(_playerManager.GetAllPlayers());
|
||||
_pvs.Cleanup(_playerManager.ServerSessions);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -185,7 +184,7 @@ namespace Robust.Server.GameStates
|
||||
_networkManager.ServerSendMessage(stateUpdateMessage, channel);
|
||||
}
|
||||
|
||||
Parallel.ForEach(_playerManager.GetAllPlayers(), session =>
|
||||
Parallel.ForEach(_playerManager.ServerSessions, session =>
|
||||
{
|
||||
try
|
||||
{
|
||||
@@ -197,7 +196,7 @@ namespace Robust.Server.GameStates
|
||||
}
|
||||
});
|
||||
|
||||
_pvs.Cleanup(_playerManager.GetAllPlayers());
|
||||
_pvs.Cleanup(_playerManager.ServerSessions);
|
||||
var oldestAck = new GameTick(oldestAckValue);
|
||||
|
||||
// keep the deletion history buffers clean
|
||||
|
||||
@@ -17,6 +17,11 @@ namespace Robust.Server.Player
|
||||
{
|
||||
BoundKeyMap KeyMap { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Same as the common sessions, but the server version.
|
||||
/// </summary>
|
||||
IEnumerable<IPlayerSession> ServerSessions { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Raised when the <see cref="SessionStatus" /> of a <see cref="IPlayerSession" /> is changed.
|
||||
/// </summary>
|
||||
@@ -65,10 +70,16 @@ namespace Robust.Server.Player
|
||||
|
||||
IEnumerable<IPlayerData> GetAllPlayerData();
|
||||
|
||||
|
||||
[Obsolete]
|
||||
void DetachAll();
|
||||
[Obsolete("Use player Filter or Inline me!")]
|
||||
List<IPlayerSession> GetPlayersInRange(MapCoordinates worldPos, int range);
|
||||
[Obsolete("Use player Filter or Inline me!")]
|
||||
List<IPlayerSession> GetPlayersInRange(EntityCoordinates worldPos, int range);
|
||||
[Obsolete("Use player Filter or Inline me!")]
|
||||
List<IPlayerSession> GetPlayersBy(Func<IPlayerSession, bool> predicate);
|
||||
[Obsolete("Use player Filter or Inline me!")]
|
||||
List<IPlayerSession> GetAllPlayers();
|
||||
List<PlayerState>? GetPlayerStates(GameTick fromTick);
|
||||
}
|
||||
|
||||
@@ -14,6 +14,7 @@ using Robust.Shared.IoC;
|
||||
using Robust.Shared.Map;
|
||||
using Robust.Shared.Network;
|
||||
using Robust.Shared.Network.Messages;
|
||||
using Robust.Shared.Player;
|
||||
using Robust.Shared.Players;
|
||||
using Robust.Shared.Reflection;
|
||||
using Robust.Shared.Timing;
|
||||
@@ -25,7 +26,7 @@ namespace Robust.Server.Player
|
||||
/// <summary>
|
||||
/// This class will manage connected player sessions.
|
||||
/// </summary>
|
||||
internal class PlayerManager : IPlayerManager
|
||||
public class PlayerManager : IPlayerManager
|
||||
{
|
||||
private static readonly Gauge PlayerCountMetric = Metrics
|
||||
.CreateGauge("robust_player_count", "Number of players on the server.");
|
||||
@@ -74,6 +75,8 @@ namespace Robust.Server.Player
|
||||
}
|
||||
}
|
||||
|
||||
public IEnumerable<IPlayerSession> ServerSessions => Sessions.Cast<IPlayerSession>();
|
||||
|
||||
/// <inheritdoc />
|
||||
[ViewVariables]
|
||||
public int PlayerCount
|
||||
@@ -219,9 +222,9 @@ namespace Robust.Server.Player
|
||||
_sessionsLock.EnterReadLock();
|
||||
try
|
||||
{
|
||||
if (_sessions.TryGetValue(userId, out var _session))
|
||||
if (_sessions.TryGetValue(userId, out var playerSession))
|
||||
{
|
||||
session = _session;
|
||||
session = playerSession;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -236,6 +239,7 @@ namespace Robust.Server.Player
|
||||
/// <summary>
|
||||
/// Causes all sessions to switch from the lobby to the the game.
|
||||
/// </summary>
|
||||
[Obsolete]
|
||||
public void SendJoinGameToAll()
|
||||
{
|
||||
_sessionsLock.EnterReadLock();
|
||||
@@ -265,6 +269,7 @@ namespace Robust.Server.Player
|
||||
/// <summary>
|
||||
/// Causes all sessions to detach from their entity.
|
||||
/// </summary>
|
||||
[Obsolete]
|
||||
public void DetachAll()
|
||||
{
|
||||
_sessionsLock.EnterReadLock();
|
||||
@@ -287,22 +292,14 @@ namespace Robust.Server.Player
|
||||
/// <param name="worldPos">Position of the circle in world-space.</param>
|
||||
/// <param name="range">Radius of the circle in world units.</param>
|
||||
/// <returns></returns>
|
||||
[Obsolete("Use player Filter or Inline me!")]
|
||||
public List<IPlayerSession> GetPlayersInRange(MapCoordinates worldPos, int range)
|
||||
{
|
||||
_sessionsLock.EnterReadLock();
|
||||
//TODO: This needs to be moved to the PVS system.
|
||||
try
|
||||
{
|
||||
return
|
||||
_sessions.Values.Where(x =>
|
||||
x.AttachedEntity != null && worldPos.InRange(x.AttachedEntity.Transform.MapPosition, range))
|
||||
.Cast<IPlayerSession>()
|
||||
.ToList();
|
||||
}
|
||||
finally
|
||||
{
|
||||
_sessionsLock.ExitReadLock();
|
||||
}
|
||||
return Filter.Empty()
|
||||
.AddInRange(worldPos, range)
|
||||
.Recipients
|
||||
.Cast<IPlayerSession>()
|
||||
.ToList();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -311,40 +308,34 @@ namespace Robust.Server.Player
|
||||
/// <param name="worldPos">Position of the circle in world-space.</param>
|
||||
/// <param name="range">Radius of the circle in world units.</param>
|
||||
/// <returns></returns>
|
||||
[Obsolete("Use player Filter or Inline me!")]
|
||||
public List<IPlayerSession> GetPlayersInRange(EntityCoordinates worldPos, int range)
|
||||
{
|
||||
return GetPlayersInRange(worldPos.ToMap(_entityManager), range);
|
||||
return Filter.Empty()
|
||||
.AddInRange(worldPos.ToMap(_entityManager), range)
|
||||
.Recipients
|
||||
.Cast<IPlayerSession>()
|
||||
.ToList();
|
||||
}
|
||||
|
||||
[Obsolete("Use player Filter or Inline me!")]
|
||||
public List<IPlayerSession> GetPlayersBy(Func<IPlayerSession, bool> predicate)
|
||||
{
|
||||
_sessionsLock.EnterReadLock();
|
||||
try
|
||||
{
|
||||
return
|
||||
_sessions.Values.Where(predicate).ToList();
|
||||
}
|
||||
finally
|
||||
{
|
||||
_sessionsLock.ExitReadLock();
|
||||
}
|
||||
return Filter.Empty()
|
||||
.AddWhere((session => predicate((IPlayerSession)session)))
|
||||
.Recipients
|
||||
.Cast<IPlayerSession>()
|
||||
.ToList();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets all players in the server.
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[Obsolete("Use player Filter or Inline me!")]
|
||||
public List<IPlayerSession> GetAllPlayers()
|
||||
{
|
||||
_sessionsLock.EnterReadLock();
|
||||
try
|
||||
{
|
||||
return _sessions.Values.Cast<IPlayerSession>().ToList();
|
||||
}
|
||||
finally
|
||||
{
|
||||
_sessionsLock.ExitReadLock();
|
||||
}
|
||||
return ServerSessions.ToList();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -399,7 +390,7 @@ namespace Robust.Server.Player
|
||||
|
||||
var session = new PlayerSession(this, args.Channel, data);
|
||||
|
||||
session.PlayerStatusChanged += (obj, sessionArgs) => OnPlayerStatusChanged(session, sessionArgs.OldStatus, sessionArgs.NewStatus);
|
||||
session.PlayerStatusChanged += (_, sessionArgs) => OnPlayerStatusChanged(session, sessionArgs.OldStatus, sessionArgs.NewStatus);
|
||||
|
||||
_sessionsLock.EnterWriteLock();
|
||||
try
|
||||
@@ -453,7 +444,7 @@ namespace Robust.Server.Player
|
||||
private void HandlePlayerListReq(MsgPlayerListReq message)
|
||||
{
|
||||
var channel = message.MsgChannel;
|
||||
var players = GetAllPlayers().ToArray();
|
||||
var players = Sessions;
|
||||
var netMsg = channel.CreateNetMessage<MsgPlayerList>();
|
||||
|
||||
// client session is complete, set their status accordingly.
|
||||
@@ -465,9 +456,6 @@ namespace Robust.Server.Player
|
||||
var list = new List<PlayerState>();
|
||||
foreach (var client in players)
|
||||
{
|
||||
if (client == null)
|
||||
continue;
|
||||
|
||||
var info = new PlayerState
|
||||
{
|
||||
UserId = client.UserId,
|
||||
@@ -495,9 +483,9 @@ namespace Robust.Server.Player
|
||||
|
||||
public bool TryGetPlayerData(NetUserId userId, [NotNullWhen(true)] out IPlayerData? data)
|
||||
{
|
||||
if (_playerData.TryGetValue(userId, out var _data))
|
||||
if (_playerData.TryGetValue(userId, out var playerData))
|
||||
{
|
||||
data = _data;
|
||||
data = playerData;
|
||||
return true;
|
||||
}
|
||||
data = default;
|
||||
|
||||
@@ -47,8 +47,6 @@ namespace Robust.Server.Player
|
||||
|
||||
private SessionStatus _status = SessionStatus.Connecting;
|
||||
|
||||
/// <inheritdoc />
|
||||
|
||||
[ViewVariables]
|
||||
internal string Name { get; set; }
|
||||
|
||||
@@ -99,7 +97,6 @@ namespace Robust.Server.Player
|
||||
/// <inheritdoc />
|
||||
public DateTime ConnectedTime { get; private set; }
|
||||
|
||||
/// <inheritdoc />
|
||||
[ViewVariables(VVAccess.ReadWrite)]
|
||||
public int VisibilityMask { get; set; } = 1;
|
||||
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using NUnit.Framework;
|
||||
using Robust.Server.Player;
|
||||
using Robust.Shared.Enums;
|
||||
using Robust.Shared.IoC;
|
||||
using Robust.Shared.Network;
|
||||
using IPlayerManager = Robust.Server.Player.IPlayerManager;
|
||||
|
||||
namespace Robust.UnitTesting.Shared
|
||||
{
|
||||
@@ -56,7 +57,7 @@ namespace Robust.UnitTesting.Shared
|
||||
Assert.That(playerManager.PlayerCount, Is.EqualTo(1));
|
||||
|
||||
// Get the only player...
|
||||
var player = playerManager.GetAllPlayers()[0];
|
||||
var player = playerManager.Sessions.Single();
|
||||
|
||||
Assert.That(player.Status, Is.EqualTo(SessionStatus.Connected));
|
||||
Assert.That(player.ConnectedClient.IsConnected, Is.True);
|
||||
|
||||
@@ -58,7 +58,7 @@ namespace Robust.UnitTesting.Shared.GameObjects
|
||||
|
||||
// Setup PVS
|
||||
entity.AddComponent<Robust.Server.GameObjects.EyeComponent>();
|
||||
var player = playerMan.GetAllPlayers().First();
|
||||
var player = playerMan.ServerSessions.First();
|
||||
player.AttachToEntity(entity);
|
||||
player.JoinGame();
|
||||
});
|
||||
@@ -185,7 +185,7 @@ namespace Robust.UnitTesting.Shared.GameObjects
|
||||
|
||||
// Setup PVS
|
||||
entity.AddComponent<Robust.Server.GameObjects.EyeComponent>();
|
||||
var player = playerMan.GetAllPlayers().First();
|
||||
var player = playerMan.ServerSessions.First();
|
||||
player.AttachToEntity(entity);
|
||||
player.JoinGame();
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user