using Content.Shared.FeedbackSystem; using Robust.Shared.Player; using Robust.Shared.Prototypes; namespace Content.Server.FeedbackSystem; /// public sealed class ServerFeedbackManager : SharedFeedbackManager { [Dependency] private readonly ISharedPlayerManager _player = null!; public override void Initialize() { base.Initialize(); NetManager.RegisterNetMessage(); NetManager.RegisterNetMessage(); } /// public override bool Send(EntityUid uid, List> popupPrototypes) { if (!_player.TryGetSessionByEntity(uid, out var session)) return false; SendToSession(session, popupPrototypes); return true; } /// public override void SendToSession(ICommonSession session, List> popupPrototypes, bool remove = false) { if (!NetManager.IsServer) return; var msg = new FeedbackPopupMessage { FeedbackPrototypes = popupPrototypes, Remove = remove, }; NetManager.ServerSendMessage(msg, session.Channel); } /// public override void SendToAllSessions(List> popupPrototypes, bool remove = false) { if (!NetManager.IsServer) return; var msg = new FeedbackPopupMessage { FeedbackPrototypes = popupPrototypes, Remove = remove, }; NetManager.ServerSendToAll(msg); } /// public override void OpenForSession(ICommonSession session) { if (!NetManager.IsServer) return; var msg = new OpenFeedbackPopupMessage(); NetManager.ServerSendMessage(msg, session.Channel); } /// public override void OpenForAllSessions() { if (!NetManager.IsServer) return; var msg = new OpenFeedbackPopupMessage(); NetManager.ServerSendToAll(msg); } }