/// <summary> /// Workaround to get water data on clients. Server will sync water data when <see cref="WaterModAPI.RecievedData" /> /// event is triggered on server. /// </summary> private void OnWaterModAPIReceivedData() { if (Network != null && Network.IsServer) { var message = new WaterModDataSyncMessage { Waters = WaterModAPI.Waters }; Network.Sync(message); } }
/// <summary> /// Request water mod data message handler. /// </summary> /// <param name="sender">The sender who requested the water data.</param> /// <param name="message">The message from the requester.</param> private void OnWaterModDataRequestMessageReceived(ulong sender, WaterModDataRequestMessage message) { if (Mod.Static.WaterModAPI.Waters == null) { return; } try { var response = new WaterModDataSyncMessage { Waters = Mod.Static.WaterModAPI.Waters }; Network.Send(response, sender); } catch (Exception exception) { using (Log.BeginMethod(nameof(OnWaterModDataRequestMessageReceived))) { Log.Error(exception); } } }
/// <summary> /// Water mod data received message handler. /// </summary> /// <param name="sender">The sender of the message.</param> /// <param name="message">The message.</param> private void OnWaterModDataReceived(ulong sender, WaterModDataSyncMessage message) { Mod.Static.WaterModAPI.Waters = message.Waters; }