/// <summary> /// Displays an error message if a user does not have EqualMoneySplit installed properly /// </summary> /// <param name="newPlayerData"></param> /// <param name="newPlayerName"></param> private void CheckForValidModInstall(IMultiplayerPeer newPlayerData, string newPlayerName) { var currentPlayerMod = EqualMoneyMod.SMAPI.ModRegistry.Get(Models.Constants.ModId); var newPlayerModData = newPlayerData.GetMod(Models.Constants.ModId); string errorMessage = ""; if (!newPlayerData.HasSmapi) { errorMessage = $"Player {newPlayerName} does not have SMAPI installed! EqualMoneySplit will not function properly!"; } else if (newPlayerData.Mods.Count() == 0) { errorMessage = $"Player {newPlayerName} does not have any mods installed! EqualMoneySplit will not function properly!"; } else if (newPlayerModData == null) { errorMessage = $"Player {newPlayerName} does not have EqualMoneySplit installed! EqualMoneySplit will not function properly!"; } else if (newPlayerModData.Version.IsOlderThan(currentPlayerMod.Manifest.Version)) { errorMessage = $"Player {newPlayerName} has an older version ({newPlayerModData.Version.ToString()}) EqualMoneySplit than yours ({currentPlayerMod.Manifest.Version.ToString()})! EqualMoneySplit will not function properly!"; } else if (newPlayerModData.Version.IsNewerThan(currentPlayerMod.Manifest.Version)) { errorMessage = $"Player {newPlayerName} has a newer version ({newPlayerModData.Version.ToString()}) of EqualMoneySplit than yours ({currentPlayerMod.Manifest.Version.ToString()})! EqualMoneySplit will not function properly!"; } if (!string.IsNullOrEmpty(errorMessage)) { Game1.chatBox.addErrorMessage(errorMessage); } }
private void MultiplayerEmotesAvailable(string command, string[] args) { if (!Context.IsMultiplayer) { this.Monitor.Log("You are not currently in a online session.", LogLevel.Info); return; } // Number of players excluding the host int numPlayers = Game1.getOnlineFarmers().Count - 1; if (numPlayers <= 0) { this.Monitor.Log("No players connected in the current session.", LogLevel.Info); return; } int playersWithMod = 0; StringBuilder sb = new StringBuilder(); foreach (Farmer farmer in Game1.getOnlineFarmers()) { // Check that is not the current player if (Game1.player.UniqueMultiplayerID != farmer.UniqueMultiplayerID) { IMultiplayerPeer peer = this.Helper.Multiplayer.GetConnectedPlayer(farmer.UniqueMultiplayerID); if (peer.HasSmapi && peer.GetMod(this.ModManifest.UniqueID) != null) { playersWithMod++; sb.Append($"{playersWithMod}: \"{Game1.getFarmer(peer.PlayerID).Name}\""); } } } if (playersWithMod > 0) { this.Monitor.Log($"From {numPlayers} player(s), {playersWithMod} have this mod:\n{sb}", LogLevel.Info); } else { this.Monitor.Log($"From {numPlayers} player(s), none has this mod.", LogLevel.Info); } }