private static void RemovePlayerForLeavingServer(BjGameShared game, int playerNetId) { var playerToRemove = game.Players.FirstOrDefault(p => p.NetId == playerNetId); if (playerToRemove != null) { game.Players.Remove(playerToRemove); Log.Info($"Removed player {playerToRemove.NetId} from game."); } }
/// <summary> /// Handles the create game. /// </summary> /// <param name="source">The source.</param> /// <param name="dealerName">Name of the dealer.</param> /// <param name="vector3Data">The vector3 data.</param> /// <param name="minimumBet">The minimum bet.</param> /// <param name="numberOfDecks">The number of decks.</param> /// <param name="blackjackBonus">The blackjack bonus.</param> private static void HandleCreateGame([FromSource] Player source, string dealerName, string vector3Data, int minimumBet, int numberOfDecks, float blackjackBonus) { try { if (!SessionManager.SessionList.ContainsKey(source.Handle) || string.IsNullOrEmpty(vector3Data) || !int.TryParse(source.Handle, out int netId)) { return; } if (dealerName.Length > 0 && char.IsDigit(dealerName[0])) { source.TriggerEvent("Chat.Message", "[Blackjack]", StandardColours.InfoHEX, "Game name cannot start with a number."); return; } if (string.IsNullOrEmpty(dealerName)) { dealerName = source.Handle; } Log.Verbose($"Creating blackjack game:{dealerName},{netId}"); var location = JsonConvert.DeserializeObject <Vector3>(vector3Data); var dealer = new BjDealerShared(netId, dealerName); var game = new BjGameShared(dealerName, dealer, location, new List <BjPlayerShared>(), Math.Max(0, minimumBet), MathUtil.Clamp(numberOfDecks, 2, 8), blackjackBonus); CreatedGames[netId] = game; source.TriggerEvent("Blackjack.UpdateClientGame", JsonConvert.SerializeObject(game)); } catch (Exception ex) { Log.Error(ex); } }