/// <summary>The event called after a save slot is loaded.</summary> /// <param name="sender">The event sender.</param> /// <param name="e">The event arguments.</param> private void OnSaveLoaded(object sender, SaveLoadedEventArgs e) { // load legacy data Migrator.AfterLoad(this.Helper, this.Monitor, this.ModManifest.Version, this.GetBlueprint); // check if mod should be enabled for the current player this.IsEnabled = Context.IsMainPlayer; if (!this.IsEnabled) { ISemanticVersion hostVersion = this.Helper.Multiplayer.GetConnectedPlayer(Game1.MasterPlayer.UniqueMultiplayerID)?.GetMod(this.ModManifest.UniqueID)?.Version; if (hostVersion == null) { this.IsEnabled = false; this.Monitor.Log("This mod is disabled because the host player doesn't have it installed.", LogLevel.Warn); } else if (hostVersion.IsOlderThan(this.MinHostVersion)) { this.IsEnabled = false; this.Monitor.Log($"This mod is disabled because the host player has {this.ModManifest.Name} {hostVersion}, but the minimum compatible version is {this.MinHostVersion}.", LogLevel.Warn); } else { this.IsEnabled = true; } } }