using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using VRage.Collections; using VRage.Game; using VRage.Network; using VRageMath; namespace Torch.API.Managers { /// /// Callback used to indicate the server has recieved a message to process and forward on to others. /// /// Steam ID of the user sending a message /// Message the user is attempting to send /// If true, this event has been consumed and should be ignored public delegate void MessageProcessingDel(TorchChatMessage msg, ref bool consumed); public interface IChatManagerServer : IChatManagerClient { /// /// Event triggered when the server has recieved a message and should process it. /// event MessageProcessingDel MessageProcessing; /// /// Sends a message with the given author and message to the given player, or all players by default. /// /// Author's steam ID /// The message to send /// Player to send the message to, or everyone by default void SendMessageAsOther(ulong authorId, string message, ulong targetSteamId = 0); [Obsolete("Use the other overload with a Color parameter.")] void SendMessageAsOther(string author, string message, string font, ulong targetSteamId = 0); /// /// Sends a scripted message with the given author and message to the given player, or all players by default. /// /// Author name /// The message to send /// Name color /// Font to use /// Player to send the message to, or everyone by default void SendMessageAsOther(string author, string message, Color color = default, ulong targetSteamId = 0, string font = MyFontEnum.White); /// /// Mute user from global chat. /// /// /// bool MuteUser(ulong steamId); /// /// Unmute user from global chat. /// /// /// bool UnmuteUser(ulong steamId); /// /// Users which are not allowed to chat. /// HashSetReader MutedUsers { get; } } }