From 8791f98f0bed4f44ee55651cbaae7e81d6014341 Mon Sep 17 00:00:00 2001 From: ShadowCommander <10494922+ShadowCommander@users.noreply.github.com> Date: Wed, 12 Jun 2024 23:38:43 -0700 Subject: [PATCH] Fix playtime on player tab getting set to Unknown (#28876) Update play time on admin panel player tab after db loads --- Content.Server/Administration/Systems/AdminSystem.cs | 8 +++++++- .../Players/PlayTimeTracking/PlayTimeTrackingManager.cs | 3 +++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/Content.Server/Administration/Systems/AdminSystem.cs b/Content.Server/Administration/Systems/AdminSystem.cs index e5b6e9c3ea..16c079e4ba 100644 --- a/Content.Server/Administration/Systems/AdminSystem.cs +++ b/Content.Server/Administration/Systems/AdminSystem.cs @@ -4,7 +4,6 @@ using Content.Server.Chat.Managers; using Content.Server.Forensics; using Content.Server.GameTicking; using Content.Server.Hands.Systems; -using Content.Server.IdentityManagement; using Content.Server.Mind; using Content.Server.Players.PlayTimeTracking; using Content.Server.Popups; @@ -70,6 +69,7 @@ namespace Content.Server.Administration.Systems _playerManager.PlayerStatusChanged += OnPlayerStatusChanged; _adminManager.OnPermsChanged += OnAdminPermsChanged; + _playTime.SessionPlayTimeUpdated += OnSessionPlayTimeUpdated; // Panic Bunker Settings Subs.CVar(_config, CCVars.PanicBunkerEnabled, OnPanicBunkerChanged, true); @@ -200,6 +200,7 @@ namespace Content.Server.Administration.Systems base.Shutdown(); _playerManager.PlayerStatusChanged -= OnPlayerStatusChanged; _adminManager.OnPermsChanged -= OnAdminPermsChanged; + _playTime.SessionPlayTimeUpdated -= OnSessionPlayTimeUpdated; } private void OnPlayerStatusChanged(object? sender, SessionStatusEventArgs e) @@ -446,5 +447,10 @@ namespace Content.Server.Administration.Systems _gameTicker.SpawnObserver(player); } + + private void OnSessionPlayTimeUpdated(ICommonSession session) + { + UpdatePlayerList(session); + } } } diff --git a/Content.Server/Players/PlayTimeTracking/PlayTimeTrackingManager.cs b/Content.Server/Players/PlayTimeTracking/PlayTimeTrackingManager.cs index bc2f891c72..381be45f95 100644 --- a/Content.Server/Players/PlayTimeTracking/PlayTimeTrackingManager.cs +++ b/Content.Server/Players/PlayTimeTracking/PlayTimeTrackingManager.cs @@ -81,6 +81,8 @@ public sealed class PlayTimeTrackingManager : ISharedPlaytimeManager, IPostInjec public event CalcPlayTimeTrackersCallback? CalcTrackers; + public event Action? SessionPlayTimeUpdated; + public void Initialize() { _sawmill = Logger.GetSawmill("play_time"); @@ -217,6 +219,7 @@ public sealed class PlayTimeTrackingManager : ISharedPlaytimeManager, IPostInjec }; _net.ServerSendMessage(msg, pSession.Channel); + SessionPlayTimeUpdated?.Invoke(pSession); } /// -- 2.51.2