using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using VRage.Game;
using VRage.Game.ModAPI;
namespace Torch.API.Managers
{
///
/// Delegate for received messages.
///
/// Message data.
/// Flag to broadcast message to other players.
public delegate void MessageReceivedDel(IChatMessage message, ref bool sendToOthers);
///
/// API for multiplayer related functions.
///
public interface IMultiplayerManager : IManager
{
///
/// Fired when a player joins.
///
event Action PlayerJoined;
///
/// Fired when a player disconnects.
///
event Action PlayerLeft;
///
/// Fired when a chat message is received.
///
event MessageReceivedDel MessageReceived;
///
/// Send a chat message to all or one specific player.
///
void SendMessage(string message, string author = "Server", long playerId = 0, string font = MyFontEnum.Blue);
///
/// Kicks the player from the game.
///
void KickPlayer(ulong steamId);
///
/// Bans or unbans a player from the game.
///
void BanPlayer(ulong steamId, bool banned = true);
///
/// Gets a player by their Steam64 ID or returns null if the player isn't found.
///
IMyPlayer GetPlayerBySteamId(ulong id);
///
/// Gets a player by their display name or returns null if the player isn't found.
///
IMyPlayer GetPlayerByName(string name);
}
}