private static byte[] GenerateMessage(string senderName, string dataDescription, byte[] data) { NetworkerMessage message = new NetworkerMessage { ModID = ModID, SenderID = MyAPIGateway.Multiplayer.MyId, DataTag = senderName, DataDescription = dataDescription, Data = data }; return(MyAPIGateway.Utilities.SerializeToBinary(message)); }
protected void Handler(NetworkerMessage message) { if (MyAPIGateway.Multiplayer.IsServer) { if (message.DataDescription == "UpdateRequest") { Data = Deserialize(message.Data); } else if (message.DataDescription == "Get") { Networker.SendTo(message.SenderID, SenderName, "Update", Serialize(Data)); } } else { if (message.DataDescription == "Update" && message.SenderID == MyAPIGateway.Multiplayer.ServerId) { Data = Deserialize(message.Data); } } }
static void Handler(byte[] rawmessage) { NetworkerMessage message = MyAPIGateway.Utilities.SerializeFromBinary <NetworkerMessage>(rawmessage); if (message == null || message.ModID != ModID) { return; } // TODO: <Cheetah Comment> Add logging if (MessageHandlers.ContainsKey(message.DataTag)) { foreach (Action <NetworkerMessage> handler in MessageHandlers[message.DataTag]) { try { if (handler != null) { handler(message); } } catch { } } } }