From 08b6f0748a2517d691b709e1fe57fd8d9c4ef7c4 Mon Sep 17 00:00:00 2001 From: Pieter-Jan Briers Date: Fri, 15 Sep 2023 08:49:32 +0200 Subject: [PATCH] Clear cached preferences when disconnecting on client (#19921) --- .../Preferences/ClientPreferencesManager.cs | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/Content.Client/Preferences/ClientPreferencesManager.cs b/Content.Client/Preferences/ClientPreferencesManager.cs index bafcfc08a0..34b2c33140 100644 --- a/Content.Client/Preferences/ClientPreferencesManager.cs +++ b/Content.Client/Preferences/ClientPreferencesManager.cs @@ -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(); _netManager.RegisterNetMessage(); _netManager.RegisterNetMessage(); + + _baseClient.RunLevelChanged += BaseClientOnRunLevelChanged; + } + + private void BaseClientOnRunLevelChanged(object? sender, RunLevelChangedEventArgs e) + { + if (e.NewLevel == ClientRunLevel.Initialize) + { + Settings = default!; + Preferences = default!; + } } public void SelectCharacter(ICharacterProfile profile) -- 2.51.2