/// <summary> /// A way to send mod info across the net. /// </summary> /// <param name="uniqueID"></param> /// <param name="classType"></param> /// <param name="data"></param> /// <param name="sendingInfo"></param> /// <param name="recipient"></param> public void sendMessage(string uniqueID, string classType, object data, Enums.MessageTypes.messageTypes sendingInfo, Farmer recipient = null) { Farmer f = Game1.player; if ((sendingInfo == Enums.MessageTypes.messageTypes.SendOneWay || sendingInfo == Enums.MessageTypes.messageTypes.SendToAll)) { OutgoingMessage message = ModCore.multiplayer.sendOutGoingMessageReturnVoid(uniqueID, classType, data, f, sendingInfo); ModCore.multiplayer.sendMessage(message); return; } if (sendingInfo == Enums.MessageTypes.messageTypes.SendToSpecific && recipient != null) { OutgoingMessage message = ModCore.multiplayer.sendOutGoingMessageReturnVoid(uniqueID, classType, data, f, sendingInfo, recipient); ModCore.multiplayer.sendMessage(message); return; } if (sendingInfo == Enums.MessageTypes.messageTypes.SendToSpecific && recipient == null) { ModCore.monitor.Log("ERROR: Attempted to send a target specific message to a NULL recipient"); return; } }
public OutgoingMessage sendOutGoingMessageReturnVoid(string functionName, Type objectParametersType, object data, Farmer source, Enums.MessageTypes.messageTypes sendingInfo, Farmer recipient) { byte bite = new byte(); if (sendingInfo == Enums.MessageTypes.messageTypes.SendOneWay) { bite = Enums.MessageTypes.SendOneWay; } if (sendingInfo == Enums.MessageTypes.messageTypes.SendToAll) { bite = Enums.MessageTypes.SendToAll; } if (sendingInfo == Enums.MessageTypes.messageTypes.SendToSpecific) { bite = Enums.MessageTypes.SendToSpecific; } OutgoingMessage message = new OutgoingMessage(bite, source, makeDataArray(functionName, objectParametersType.ToString(), data, recipient)); return(message); }