using Robust.Server.Player; using Robust.Shared.Console; using Robust.Shared.GameObjects; using Robust.Shared.Players; namespace Content.Server.Chat.Managers { public interface IChatManager { void Initialize(); /// /// Dispatch a server announcement to every connected player. /// /// /// Override the color of the message being sent. void DispatchServerAnnouncement(string message, Color? colorOverride = null); /// /// Station announcement to every player /// /// /// /// If the default 'PA' sound should be played. /// Override the color of the message being sent. void DispatchStationAnnouncement(string message, string sender = "CentComm", bool playDefaultSound = true, Color? colorOverride = null); void DispatchServerMessage(IPlayerSession player, string message); /// /// Tries to use entity say or entity whisper to speak a message. /// void TrySpeak(EntityUid source, string message, bool whisper = false, IConsoleShell? shell = null, IPlayerSession? player = null); void TryEmote(EntityUid source, string message, IConsoleShell? shell = null, IPlayerSession? player = null); /// If true, message will not be logged to chat boxes but will still produce a speech bubble. void EntitySay(EntityUid source, string message, bool hideChat=false); void EntityWhisper(EntityUid source, string message, bool hideChat = false); void EntityMe(EntityUid source, string action); void SendLOOC(IPlayerSession player, string message); void SendOOC(IPlayerSession player, string message); void SendAdminChat(IPlayerSession player, string message); void SendDeadChat(IPlayerSession player, string message); void SendAdminDeadChat(IPlayerSession player, string message); void SendHookOOC(string sender, string message); delegate string TransformChat(EntityUid speaker, string message); void RegisterChatTransform(TransformChat handler); void SendAdminAnnouncement(string message); } }