/// <summary> /// Creates and sends an entity with the given information for the server. Never call this on DS instance! /// </summary> public static void SendMessageToServer(MessageBase message) { message.Side = MessageSide.ServerSide; message.SenderSteamId = MyAPIGateway.Session.Player.SteamUserId; var xml = MyAPIGateway.Utilities.SerializeToXML<MessageContainer>(new MessageContainer() { Content = message }); byte[] byteData = System.Text.Encoding.Unicode.GetBytes(xml); if (byteData.Length <= MAX_MESSAGE_SIZE) MyAPIGateway.Multiplayer.SendMessageToServer(ConnectionId, byteData); else SendMessageParts(byteData, MessageSide.ServerSide); }
public static void SendMessageToAllPlayers(MessageBase messageContainer) { //MyAPIGateway.Multiplayer.SendMessageToOthers(StandardClientId, System.Text.Encoding.Unicode.GetBytes(ConvertData(content))); <- does not work as expected ... so it doesn't work at all? List<IMyPlayer> players = new List<IMyPlayer>(); MyAPIGateway.Players.GetPlayers(players, p => p != null); foreach (IMyPlayer player in players) SendMessageToPlayer(player.SteamUserId, messageContainer); }
public static void SendMessageToPlayer(ulong steamId, MessageBase message) { Logger.Debug("SendMessageToPlayer {0} {1} {2}.", steamId, message.Side, message.GetType().Name); message.Side = MessageSide.ClientSide; var xml = MyAPIGateway.Utilities.SerializeToXML(new MessageContainer() { Content = message }); byte[] byteData = System.Text.Encoding.Unicode.GetBytes(xml); if (byteData.Length <= MAX_MESSAGE_SIZE) MyAPIGateway.Multiplayer.SendMessageTo(ConnectionId, byteData, steamId); else SendMessageParts(byteData, MessageSide.ClientSide, steamId); }
/// <summary> /// Creates and sends an entity with the given information for the server and all players. /// </summary> /// <param name="content"></param> public static void SendMessageToAll(MessageBase message) { message.SenderSteamId = MyAPIGateway.Session.Player.SteamUserId; if (!MyAPIGateway.Multiplayer.IsServer) SendMessageToServer(message); SendMessageToAllPlayers(message); }