using Content.Shared.Interfaces; using Robust.Server.Interfaces.Player; using Robust.Shared.Interfaces.GameObjects; using Robust.Shared.IoC; namespace Content.Server.Utility { public static class NotifyExtensions { /// /// Pops up a message for every player around to see, /// except for itself. /// /// The entity on which to popup the message. /// The message to show. /// /// The range in which to search for players, defaulting to one screen. /// public static void PopupMessageOtherClients(this IEntity source, string message, int range = 15) { var playerManager = IoCManager.Resolve(); var viewers = playerManager.GetPlayersInRange(source.Transform.GridPosition, range); foreach (var viewer in viewers) { var viewerEntity = viewer.AttachedEntity; if (viewerEntity == null || source == viewerEntity) { continue; } source.PopupMessage(viewer.AttachedEntity, message); } } } }