2025-01-04 22:15:12 +03:00
|
|
|
using Content.Shared._White.Administration;
|
|
|
|
|
using Robust.Server.Player;
|
|
|
|
|
using Content.Server.Players.PlayTimeTracking;
|
|
|
|
|
|
|
|
|
|
namespace Content.Server._White.Administration;
|
|
|
|
|
|
2025-01-04 23:04:38 +03:00
|
|
|
public sealed class HoursPanelSystem : EntitySystem
|
2025-01-04 22:15:12 +03:00
|
|
|
{
|
|
|
|
|
[Dependency] private readonly IPlayerManager _playerManager = default!;
|
|
|
|
|
[Dependency] private readonly IPlayTimeTrackingManager _playTimeTracking = default!;
|
2025-02-09 19:55:39 +03:00
|
|
|
|
2025-01-04 23:04:38 +03:00
|
|
|
public override void Initialize()
|
2025-01-04 22:15:12 +03:00
|
|
|
{
|
2025-01-04 23:04:38 +03:00
|
|
|
base.Initialize();
|
2025-01-04 22:15:12 +03:00
|
|
|
|
2025-01-04 23:04:38 +03:00
|
|
|
SubscribeNetworkEvent<HoursPanelMessageToServer>(OnHoursPanelMessage);
|
|
|
|
|
}
|
2025-02-09 19:55:39 +03:00
|
|
|
|
2025-01-04 23:04:38 +03:00
|
|
|
private void OnHoursPanelMessage(HoursPanelMessageToServer message, EntitySessionEventArgs eventArgs)
|
|
|
|
|
{
|
2025-01-07 18:27:35 +03:00
|
|
|
if (!_playerManager.TryGetSessionByUsername(message.PlayerCKey, out var player))
|
2025-01-04 22:15:12 +03:00
|
|
|
return;
|
|
|
|
|
|
2025-01-04 23:04:38 +03:00
|
|
|
if (player == null)
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
|
|
TimeSpan timer;
|
|
|
|
|
|
2025-01-04 22:15:12 +03:00
|
|
|
if (message.Job == "Overall")
|
|
|
|
|
{
|
2025-01-04 23:04:38 +03:00
|
|
|
timer = _playTimeTracking.GetOverallPlaytime(player!);
|
2025-01-04 22:15:12 +03:00
|
|
|
}
|
2025-01-04 23:04:38 +03:00
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
timer = _playTimeTracking.GetPlayTimeForTracker(player!, message.Job);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
RaiseNetworkEvent(new HoursPanelMessageToClient(timer));
|
2025-01-04 22:15:12 +03:00
|
|
|
}
|
|
|
|
|
}
|