fix dead alert (#4558)

This commit is contained in:
Leon Friedrich
2021-09-03 14:11:12 +10:00
committed by GitHub
parent e3cf87a106
commit c7cfc8a90c
2 changed files with 13 additions and 9 deletions

View File

@@ -61,17 +61,17 @@ namespace Content.Server.Alert
break; break;
} }
if (!IsShowingAlert(msg.AlertType)) if (!IsShowingAlert(msg.Type))
{ {
Logger.DebugS("alert", "user {0} attempted to" + Logger.DebugS("alert", "user {0} attempted to" +
" click alert {1} which is not currently showing for them", " click alert {1} which is not currently showing for them",
player.Name, msg.AlertType); player.Name, msg.Type);
break; break;
} }
if (!AlertManager.TryGet(msg.AlertType, out var alert)) if (!AlertManager.TryGet(msg.Type, out var alert))
{ {
Logger.WarningS("alert", "unrecognized encoded alert {0}", msg.AlertType); Logger.WarningS("alert", "unrecognized encoded alert {0}", msg.Type);
break; break;
} }

View File

@@ -87,9 +87,12 @@ namespace Content.Shared.Alert
{ {
if (AlertManager.TryGet(alertType, out var alert)) if (AlertManager.TryGet(alertType, out var alert))
{ {
// Check whether the alert category we want to show is already being displayed, with the same type,
// severity, and cooldown.
if (_alerts.TryGetValue(alert.AlertKey, out var alertStateCallback) && if (_alerts.TryGetValue(alert.AlertKey, out var alertStateCallback) &&
alert.AlertType == alertType && alertStateCallback.Type == alertType &&
alertStateCallback.Severity == severity && alertStateCallback.Cooldown == cooldown) alertStateCallback.Severity == severity &&
alertStateCallback.Cooldown == cooldown)
{ {
return; return;
} }
@@ -98,7 +101,7 @@ namespace Content.Shared.Alert
_alerts.Remove(alert.AlertKey); _alerts.Remove(alert.AlertKey);
_alerts[alert.AlertKey] = new AlertState _alerts[alert.AlertKey] = new AlertState
{Cooldown = cooldown, Severity = severity}; {Cooldown = cooldown, Severity = severity, Type=alertType};
AfterShowAlert(); AfterShowAlert();
@@ -180,12 +183,12 @@ namespace Content.Shared.Alert
[Serializable, NetSerializable] [Serializable, NetSerializable]
public class ClickAlertMessage : ComponentMessage public class ClickAlertMessage : ComponentMessage
{ {
public readonly AlertType AlertType; public readonly AlertType Type;
public ClickAlertMessage(AlertType alertType) public ClickAlertMessage(AlertType alertType)
{ {
Directed = true; Directed = true;
AlertType = alertType; Type = alertType;
} }
} }
@@ -194,5 +197,6 @@ namespace Content.Shared.Alert
{ {
public short? Severity; public short? Severity;
public ValueTuple<TimeSpan, TimeSpan>? Cooldown; public ValueTuple<TimeSpan, TimeSpan>? Cooldown;
public AlertType Type;
} }
} }