]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
Make popups nullable (#24802)
authormetalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Fri, 2 Feb 2024 04:25:58 +0000 (15:25 +1100)
committerGitHub <noreply@github.com>
Fri, 2 Feb 2024 04:25:58 +0000 (23:25 -0500)
This standardises it with audio and whatever. Me when I sprinkle nullchecks everywhere.

Was 50/50 on making new non-nullable methods but figured it would bloat too hard and you can't access strings by .Value anyway.

Content.Client/Popups/PopupSystem.cs
Content.Server/Popups/PopupSystem.cs
Content.Shared/Popups/SharedPopupSystem.cs

index d68272a107e4f5541b79edc767237a8e677f637e..d9e66c79fa9f2e9831c0507734aecc5af809b178 100644 (file)
@@ -55,8 +55,11 @@ namespace Content.Client.Popups
                 .RemoveOverlay<PopupOverlay>();
         }
 
-        private void PopupMessage(string message, PopupType type, EntityCoordinates coordinates, EntityUid? entity, bool recordReplay)
+        private void PopupMessage(string? message, PopupType type, EntityCoordinates coordinates, EntityUid? entity, bool recordReplay)
         {
+            if (message == null)
+                return;
+
             if (recordReplay && _replayRecording.IsRecording)
             {
                 if (entity != null)
@@ -75,25 +78,28 @@ namespace Content.Client.Popups
         }
 
         #region Abstract Method Implementations
-        public override void PopupCoordinates(string message, EntityCoordinates coordinates, PopupType type = PopupType.Small)
+        public override void PopupCoordinates(string? message, EntityCoordinates coordinates, PopupType type = PopupType.Small)
         {
             PopupMessage(message, type, coordinates, null, true);
         }
 
-        public override void PopupCoordinates(string message, EntityCoordinates coordinates, ICommonSession recipient, PopupType type = PopupType.Small)
+        public override void PopupCoordinates(string? message, EntityCoordinates coordinates, ICommonSession recipient, PopupType type = PopupType.Small)
         {
-            if (_playerManager.LocalPlayer?.Session == recipient)
+            if (_playerManager.LocalSession == recipient)
                 PopupMessage(message, type, coordinates, null, true);
         }
 
-        public override void PopupCoordinates(string message, EntityCoordinates coordinates, EntityUid recipient, PopupType type = PopupType.Small)
+        public override void PopupCoordinates(string? message, EntityCoordinates coordinates, EntityUid recipient, PopupType type = PopupType.Small)
         {
-            if (_playerManager.LocalPlayer?.ControlledEntity == recipient)
+            if (_playerManager.LocalEntity == recipient)
                 PopupMessage(message, type, coordinates, null, true);
         }
 
-        private void PopupCursorInternal(string message, PopupType type, bool recordReplay)
+        private void PopupCursorInternal(string? message, PopupType type, bool recordReplay)
         {
+            if (message == null)
+                return;
+
             if (recordReplay && _replayRecording.IsRecording)
                 _replayRecording.RecordClientMessage(new PopupCursorEvent(message, type));
 
@@ -106,53 +112,53 @@ namespace Content.Client.Popups
             _aliveCursorLabels.Add(label);
         }
 
-        public override void PopupCursor(string message, PopupType type = PopupType.Small)
+        public override void PopupCursor(string? message, PopupType type = PopupType.Small)
             => PopupCursorInternal(message, type, true);
 
-        public override void PopupCursor(string message, ICommonSession recipient, PopupType type = PopupType.Small)
+        public override void PopupCursor(string? message, ICommonSession recipient, PopupType type = PopupType.Small)
         {
-            if (_playerManager.LocalPlayer?.Session == recipient)
+            if (_playerManager.LocalSession == recipient)
                 PopupCursor(message, type);
         }
 
-        public override void PopupCursor(string message, EntityUid recipient, PopupType type = PopupType.Small)
+        public override void PopupCursor(string? message, EntityUid recipient, PopupType type = PopupType.Small)
         {
-            if (_playerManager.LocalPlayer?.ControlledEntity == recipient)
+            if (_playerManager.LocalEntity == recipient)
                 PopupCursor(message, type);
         }
 
-        public override void PopupCoordinates(string message, EntityCoordinates coordinates, Filter filter, bool replayRecord, PopupType type = PopupType.Small)
+        public override void PopupCoordinates(string? message, EntityCoordinates coordinates, Filter filter, bool replayRecord, PopupType type = PopupType.Small)
         {
             PopupCoordinates(message, coordinates, type);
         }
 
-        public override void PopupEntity(string message, EntityUid uid, EntityUid recipient, PopupType type = PopupType.Small)
+        public override void PopupEntity(string? message, EntityUid uid, EntityUid recipient, PopupType type = PopupType.Small)
         {
-            if (_playerManager.LocalPlayer?.ControlledEntity == recipient)
+            if (_playerManager.LocalEntity == recipient)
                 PopupEntity(message, uid, type);
         }
 
-        public override void PopupEntity(string message, EntityUid uid, ICommonSession recipient, PopupType type = PopupType.Small)
+        public override void PopupEntity(string? message, EntityUid uid, ICommonSession recipient, PopupType type = PopupType.Small)
         {
-            if (_playerManager.LocalPlayer?.Session == recipient)
+            if (_playerManager.LocalSession == recipient)
                 PopupEntity(message, uid, type);
         }
 
-        public override void PopupEntity(string message, EntityUid uid, Filter filter, bool recordReplay, PopupType type=PopupType.Small)
+        public override void PopupEntity(string? message, EntityUid uid, Filter filter, bool recordReplay, PopupType type=PopupType.Small)
         {
-            if (!filter.Recipients.Contains(_playerManager.LocalPlayer?.Session))
+            if (!filter.Recipients.Contains(_playerManager.LocalSession))
                 return;
 
             PopupEntity(message, uid, type);
         }
 
-        public override void PopupClient(string message, EntityUid uid, EntityUid recipient, PopupType type = PopupType.Small)
+        public override void PopupClient(string? message, EntityUid uid, EntityUid recipient, PopupType type = PopupType.Small)
         {
             if (_timing.IsFirstTimePredicted)
                 PopupEntity(message, uid, recipient, type);
         }
 
-        public override void PopupEntity(string message, EntityUid uid, PopupType type = PopupType.Small)
+        public override void PopupEntity(string? message, EntityUid uid, PopupType type = PopupType.Small)
         {
             if (TryComp(uid, out TransformComponent? transform))
                 PopupMessage(message, type, transform.Coordinates, uid, true);
index 61ccaf4423afe28029284425e0c593907ea5faba..4d9a9f3bf5b1fbb5c906ca4f52a6d4fbae4e4b1d 100644 (file)
@@ -13,70 +13,99 @@ namespace Content.Server.Popups
         [Dependency] private readonly IConfigurationManager _cfg = default!;
         [Dependency] private readonly TransformSystem _xform = default!;
 
-        public override void PopupCursor(string message, PopupType type = PopupType.Small)
+        public override void PopupCursor(string? message, PopupType type = PopupType.Small)
         {
             // No local user.
         }
 
-        public override void PopupCursor(string message, ICommonSession recipient, PopupType type=PopupType.Small)
+        public override void PopupCursor(string? message, ICommonSession recipient, PopupType type=PopupType.Small)
         {
+            if (message == null)
+                return;
+
             RaiseNetworkEvent(new PopupCursorEvent(message, type), recipient);
         }
 
-        public override void PopupCursor(string message, EntityUid recipient, PopupType type = PopupType.Small)
+        public override void PopupCursor(string? message, EntityUid recipient, PopupType type = PopupType.Small)
         {
+            if (message == null)
+                return;
+
             if (TryComp(recipient, out ActorComponent? actor))
                 RaiseNetworkEvent(new PopupCursorEvent(message, type), actor.PlayerSession);
         }
 
-        public override void PopupCoordinates(string message, EntityCoordinates coordinates, Filter filter, bool replayRecord, PopupType type = PopupType.Small)
+        public override void PopupCoordinates(string? message, EntityCoordinates coordinates, Filter filter, bool replayRecord, PopupType type = PopupType.Small)
         {
+            if (message == null)
+                return;
+
             RaiseNetworkEvent(new PopupCoordinatesEvent(message, type, GetNetCoordinates(coordinates)), filter, replayRecord);
         }
 
-        public override void PopupCoordinates(string message, EntityCoordinates coordinates, PopupType type = PopupType.Small)
+        public override void PopupCoordinates(string? message, EntityCoordinates coordinates, PopupType type = PopupType.Small)
         {
+            if (message == null)
+                return;
+
             var mapPos = coordinates.ToMap(EntityManager, _xform);
             var filter = Filter.Empty().AddPlayersByPvs(mapPos, entManager: EntityManager, playerMan: _player, cfgMan: _cfg);
             RaiseNetworkEvent(new PopupCoordinatesEvent(message, type, GetNetCoordinates(coordinates)), filter);
         }
 
-        public override void PopupCoordinates(string message, EntityCoordinates coordinates, ICommonSession recipient, PopupType type = PopupType.Small)
+        public override void PopupCoordinates(string? message, EntityCoordinates coordinates, ICommonSession recipient, PopupType type = PopupType.Small)
         {
+            if (message == null)
+                return;
+
             RaiseNetworkEvent(new PopupCoordinatesEvent(message, type, GetNetCoordinates(coordinates)), recipient);
         }
 
-        public override void PopupCoordinates(string message, EntityCoordinates coordinates, EntityUid recipient, PopupType type = PopupType.Small)
+        public override void PopupCoordinates(string? message, EntityCoordinates coordinates, EntityUid recipient, PopupType type = PopupType.Small)
         {
+            if (message == null)
+                return;
+
             if (TryComp(recipient, out ActorComponent? actor))
                 RaiseNetworkEvent(new PopupCoordinatesEvent(message, type, GetNetCoordinates(coordinates)), actor.PlayerSession);
         }
 
-        public override void PopupEntity(string message, EntityUid uid, PopupType type = PopupType.Small)
+        public override void PopupEntity(string? message, EntityUid uid, PopupType type = PopupType.Small)
         {
+            if (message == null)
+                return;
+
             var filter = Filter.Empty().AddPlayersByPvs(uid, entityManager:EntityManager, playerMan: _player, cfgMan: _cfg);
             RaiseNetworkEvent(new PopupEntityEvent(message, type, GetNetEntity(uid)), filter);
         }
 
-        public override void PopupEntity(string message, EntityUid uid, EntityUid recipient, PopupType type=PopupType.Small)
+        public override void PopupEntity(string? message, EntityUid uid, EntityUid recipient, PopupType type=PopupType.Small)
         {
+            if (message == null)
+                return;
+
             if (TryComp(recipient, out ActorComponent? actor))
                 RaiseNetworkEvent(new PopupEntityEvent(message, type, GetNetEntity(uid)), actor.PlayerSession);
         }
 
-        public override void PopupClient(string message, EntityUid uid, EntityUid recipient, PopupType type = PopupType.Small)
+        public override void PopupClient(string? message, EntityUid uid, EntityUid recipient, PopupType type = PopupType.Small)
         {
             // do nothing duh its for client only
         }
 
-
-        public override void PopupEntity(string message, EntityUid uid, ICommonSession recipient, PopupType type = PopupType.Small)
+        public override void PopupEntity(string? message, EntityUid uid, ICommonSession recipient, PopupType type = PopupType.Small)
         {
+            if (message == null)
+                return;
+
             RaiseNetworkEvent(new PopupEntityEvent(message, type, GetNetEntity(uid)), recipient);
         }
 
-        public override void PopupEntity(string message, EntityUid uid, Filter filter, bool recordReplay, PopupType type = PopupType.Small)
+        public override void PopupEntity(string? message, EntityUid uid, Filter filter, bool recordReplay, PopupType type = PopupType.Small)
         {
+            if (message == null)
+                return;
+
             RaiseNetworkEvent(new PopupEntityEvent(message, type, GetNetEntity(uid)), filter, recordReplay);
         }
     }
index e4565b90e8bc9a061aa590db61c59e33b6f784a7..f8e07e5df5e147ef39ac248d135a29856089cd7c 100644 (file)
@@ -14,7 +14,7 @@ namespace Content.Shared.Popups
         /// </summary>
         /// <param name="message">The message to display.</param>
         /// <param name="type">Used to customize how this popup should appear visually.</param>
-        public abstract void PopupCursor(string message, PopupType type = PopupType.Small);
+        public abstract void PopupCursor(string? message, PopupType type = PopupType.Small);
 
         /// <summary>
         ///     Shows a popup at a users' cursor.
@@ -22,7 +22,7 @@ namespace Content.Shared.Popups
         /// <param name="message">The message to display.</param>
         /// <param name="recipient">Client that will see this popup.</param>
         /// <param name="type">Used to customize how this popup should appear visually.</param>
-        public abstract void PopupCursor(string message, ICommonSession recipient, PopupType type = PopupType.Small);
+        public abstract void PopupCursor(string? message, ICommonSession recipient, PopupType type = PopupType.Small);
 
         /// <summary>
         ///     Shows a popup at a users' cursor.
@@ -30,7 +30,7 @@ namespace Content.Shared.Popups
         /// <param name="message">The message to display.</param>
         /// <param name="recipient">Client that will see this popup.</param>
         /// <param name="type">Used to customize how this popup should appear visually.</param>
-        public abstract void PopupCursor(string message, EntityUid recipient, PopupType type = PopupType.Small);
+        public abstract void PopupCursor(string? message, EntityUid recipient, PopupType type = PopupType.Small);
 
         /// <summary>
         ///     Shows a popup at a world location to every entity in PVS range.
@@ -38,7 +38,7 @@ namespace Content.Shared.Popups
         /// <param name="message">The message to display.</param>
         /// <param name="coordinates">The coordinates where to display the message.</param>
         /// <param name="type">Used to customize how this popup should appear visually.</param>
-        public abstract void PopupCoordinates(string message, EntityCoordinates coordinates, PopupType type = PopupType.Small);
+        public abstract void PopupCoordinates(string? message, EntityCoordinates coordinates, PopupType type = PopupType.Small);
 
         /// <summary>
         ///     Filtered variant of <see cref="PopupCoordinates(string, EntityCoordinates, PopupType)"/>, which should only be used
@@ -46,17 +46,17 @@ namespace Content.Shared.Popups
         /// </summary>
         /// <param name="filter">Filter for the players that will see the popup.</param>
         /// <param name="recordReplay">If true, this pop-up will be considered as a globally visible pop-up that gets shown during replays.</param>
-        public abstract void PopupCoordinates(string message, EntityCoordinates coordinates, Filter filter, bool recordReplay, PopupType type = PopupType.Small);
+        public abstract void PopupCoordinates(string? message, EntityCoordinates coordinates, Filter filter, bool recordReplay, PopupType type = PopupType.Small);
 
         /// <summary>
         ///     Variant of <see cref="PopupCoordinates(string, EntityCoordinates, PopupType)"/> that sends a pop-up to the player attached to some entity.
         /// </summary>
-        public abstract void PopupCoordinates(string message, EntityCoordinates coordinates, EntityUid recipient, PopupType type = PopupType.Small);
+        public abstract void PopupCoordinates(string? message, EntityCoordinates coordinates, EntityUid recipient, PopupType type = PopupType.Small);
 
         /// <summary>
         ///     Variant of <see cref="PopupCoordinates(string, EntityCoordinates, PopupType)"/> that sends a pop-up to a specific player.
         /// </summary>
-        public abstract void PopupCoordinates(string message, EntityCoordinates coordinates, ICommonSession recipient, PopupType type = PopupType.Small);
+        public abstract void PopupCoordinates(string? message, EntityCoordinates coordinates, ICommonSession recipient, PopupType type = PopupType.Small);
 
         /// <summary>
         ///     Shows a popup above an entity for every player in pvs range.
@@ -64,29 +64,29 @@ namespace Content.Shared.Popups
         /// <param name="message">The message to display.</param>
         /// <param name="uid">The UID of the entity.</param>
         /// <param name="type">Used to customize how this popup should appear visually.</param>
-        public abstract void PopupEntity(string message, EntityUid uid, PopupType type=PopupType.Small);
+        public abstract void PopupEntity(string? message, EntityUid uid, PopupType type=PopupType.Small);
 
         /// <summary>
         ///     Variant of <see cref="PopupEntity(string, EntityUid, PopupType)"/> that shows the popup only to some specific client.
         /// </summary>
-        public abstract void PopupEntity(string message, EntityUid uid, EntityUid recipient, PopupType type = PopupType.Small);
+        public abstract void PopupEntity(string? message, EntityUid uid, EntityUid recipient, PopupType type = PopupType.Small);
 
         /// <summary>
         ///     Variant of <see cref="PopupEntity(string, EntityUid, PopupType)"/> that shows the popup only to some specific client.
         /// </summary>
-        public abstract void PopupEntity(string message, EntityUid uid, ICommonSession recipient, PopupType type = PopupType.Small);
+        public abstract void PopupEntity(string? message, EntityUid uid, ICommonSession recipient, PopupType type = PopupType.Small);
 
         /// <summary>
         ///     Filtered variant of <see cref="PopupEntity(string, EntityUid, PopupType)"/>, which should only be used
         ///     if the filtering has to be more specific than simply PVS range based.
         /// </summary>
-        public abstract void PopupEntity(string message, EntityUid uid, Filter filter, bool recordReplay, PopupType type = PopupType.Small);
+        public abstract void PopupEntity(string? message, EntityUid uid, Filter filter, bool recordReplay, PopupType type = PopupType.Small);
 
         /// <summary>
         /// Variant of <see cref="PopupEnity(string, EntityUid, EntityUid, PopupType)"/> that only runs on the client, outside of prediction.
         /// Useful for shared code that is always ran by both sides to avoid duplicate popups.
         /// </summary>
-        public abstract void PopupClient(string message, EntityUid uid, EntityUid recipient, PopupType type = PopupType.Small);
+        public abstract void PopupClient(string? message, EntityUid uid, EntityUid recipient, PopupType type = PopupType.Small);
     }
 
     /// <summary>