]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
Clear cached preferences when disconnecting on client (#19921)
authorPieter-Jan Briers <pieterjan.briers+git@gmail.com>
Fri, 15 Sep 2023 06:49:32 +0000 (08:49 +0200)
committerGitHub <noreply@github.com>
Fri, 15 Sep 2023 06:49:32 +0000 (22:49 -0800)
Content.Client/Preferences/ClientPreferencesManager.cs

index bafcfc08a058f4df5af108eaaf05fda6c4aa2229..34b2c33140df473ce3de241493f892571426213b 100644 (file)
@@ -2,6 +2,7 @@ using System;
 using System.Collections.Generic;
 using System.Linq;
 using Content.Shared.Preferences;
+using Robust.Client;
 using Robust.Shared.IoC;
 using Robust.Shared.Network;
 using Robust.Shared.Utility;
@@ -16,6 +17,7 @@ namespace Content.Client.Preferences
     public sealed class ClientPreferencesManager : IClientPreferencesManager
     {
         [Dependency] private readonly IClientNetManager _netManager = default!;
+        [Dependency] private readonly IBaseClient _baseClient = default!;
 
         public event Action? OnServerDataLoaded;
 
@@ -28,6 +30,17 @@ namespace Content.Client.Preferences
             _netManager.RegisterNetMessage<MsgUpdateCharacter>();
             _netManager.RegisterNetMessage<MsgSelectCharacter>();
             _netManager.RegisterNetMessage<MsgDeleteCharacter>();
+
+            _baseClient.RunLevelChanged += BaseClientOnRunLevelChanged;
+        }
+
+        private void BaseClientOnRunLevelChanged(object? sender, RunLevelChangedEventArgs e)
+        {
+            if (e.NewLevel == ClientRunLevel.Initialize)
+            {
+                Settings = default!;
+                Preferences = default!;
+            }
         }
 
         public void SelectCharacter(ICharacterProfile profile)