using Content.Server.Administration; using Content.Shared.Administration; using Content.Shared.FeedbackSystem; using Robust.Shared.Player; using Robust.Shared.Prototypes; using Robust.Shared.Toolshed; namespace Content.Server.FeedbackSystem; /// /// Adds, removes, and displays feedback for specified sessions. /// [ToolshedCommand] [AdminCommand(AdminFlags.Debug)] public sealed class FeedbackCommand : ToolshedCommand { [Dependency] private readonly ISharedFeedbackManager _feedback = null!; [CommandImplementation("show")] public void ExecuteShow([CommandArgument] ICommonSession session) { _feedback.OpenForSession(session); } [CommandImplementation("show")] public void ExecuteShow([PipedArgument] IEnumerable sessions) { foreach (var session in sessions) { _feedback.OpenForSession(session); } } [CommandImplementation("add")] public void ExecuteAdd([CommandArgument] ICommonSession session, ProtoId protoId) { _feedback.SendToSession(session, [protoId]); } [CommandImplementation("add")] public void ExecuteAdd([PipedArgument] IEnumerable sessions, ProtoId protoId) { foreach (var session in sessions) { _feedback.SendToSession(session, [protoId]); } } [CommandImplementation("remove")] public void ExecuteRemove([CommandArgument] ICommonSession session, ProtoId protoId) { _feedback.SendToSession(session, [protoId], true); } [CommandImplementation("remove")] public void ExecuteRemove([PipedArgument] IEnumerable sessions, ProtoId protoId) { foreach (var session in sessions) { _feedback.SendToSession(session, [protoId], true); } } }