using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using VRage.Network;
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);
///
/// 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
/// Font to use
/// Player to send the message to, or everyone by default
void SendMessageAsOther(string author, string message, string font, ulong targetSteamId = 0);
}
}