private void WatchForReadyCheckChanges(Dictionary <long, HashSet <string> > readyPlayersBefore) { foreach (var player in readyPlayersBefore.Keys) { if (player == Game1.player.UniqueMultiplayerID) { continue; /* Don't care about current player */ } ReadyPlayers.GetOrCreateDefault(player); var checksBefore = readyPlayersBefore[player]; var checksNow = ReadyPlayers[player]; var newCheck = checksNow.FirstOrDefault(c => !checksBefore.Contains(c)); var removedCheck = checksBefore.FirstOrDefault(c => !checksNow.Contains(c)); var playerName = PlayerHelpers.GetPlayerWithUniqueId(player).Name; var options = ConfigHelper.GetOptions(); if (newCheck != null && newCheck != "wakeup") { if (options.ShowReadyInfoInChatBox) { _helper.SelfInfoMessage($"{playerName} is now ready {GetFriendlyReadyCheckName(newCheck)}."); } if (options.ShowLastPlayerReadyInfoInChatBox) { WarnIfIAmLastPlayerReady(newCheck); } } if (removedCheck != null && removedCheck != "wakeup" && options.ShowReadyInfoInChatBox) { _helper.SelfInfoMessage($"{playerName} is no longer ready {GetFriendlyReadyCheckName(removedCheck)}."); } } }
public bool IsPlayerWaiting(long playerId) { return(ReadyPlayers.GetOrCreateDefault(playerId).Any(r => r != "wakeup")); }