From f3442845a6277f319681490e71db44b98231bca2 Mon Sep 17 00:00:00 2001 From: Pieter-Jan Briers Date: Sun, 28 Feb 2021 22:51:06 +0100 Subject: [PATCH] Clear votes on client disconnect. They would stay stuck open otherwise. --- Content.Client/Voting/VoteManager.cs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/Content.Client/Voting/VoteManager.cs b/Content.Client/Voting/VoteManager.cs index 642edb8bb0..9343839b75 100644 --- a/Content.Client/Voting/VoteManager.cs +++ b/Content.Client/Voting/VoteManager.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.Linq; using Content.Shared.Network.NetMessages; +using Robust.Client; using Robust.Client.Console; using Robust.Client.UserInterface; using Robust.Shared.IoC; @@ -27,6 +28,7 @@ namespace Content.Client.Voting [Dependency] private readonly IClientNetManager _netManager = default!; [Dependency] private readonly IGameTiming _gameTiming = default!; [Dependency] private readonly IClientConsoleHost _console = default!; + [Dependency] private readonly IBaseClient _client = default!; private readonly Dictionary _votes = new(); private readonly Dictionary _votePopups = new(); @@ -39,6 +41,18 @@ namespace Content.Client.Voting { _netManager.RegisterNetMessage(MsgVoteData.NAME, ReceiveVoteData); _netManager.RegisterNetMessage(MsgVoteCanCall.NAME, ReceiveVoteCanCall); + + _client.RunLevelChanged += ClientOnRunLevelChanged; + } + + private void ClientOnRunLevelChanged(object? sender, RunLevelChangedEventArgs e) + { + // Clear votes on disconnect. + if (e.NewLevel == ClientRunLevel.Initialize) + { + ClearPopupContainer(); + _votes.Clear(); + } } public void ClearPopupContainer()