public void AddPlayer(Player player) { var session = sessions.Get(player); var connections = connectionProvider.GetConnectedActivePlayerConnections(session); foreach (var connection in connections) { connection.Send(PlayerAdd.Create(gameData, player), SendOption.Reliable); } }
public Task AddAsync(PlayerAdd player) { if (player == null) { throw new ArgumentNullException(nameof(player), "Player add must be provided."); } Logger.LogDebug($"Adding player '{player}' to '{MetadataResolver.TableName<PlayerSql>()}' table."); PlayerSql sqlEntry = PlayerSql.FromCoreAddEntity(player); return(DbConnection.Insert(sqlEntry).ExecuteAsync()); }
public async Task AddAsync(PlayerAdd player) { if (player == null) { throw new ArgumentNullException(nameof(player), "Player add model must be provided."); } var collectionName = CollectionResolver.GetName <PlayerDocument>(); PlayerDocument document = PlayerDocument.FromCoreAddEntity(player); await GetMongoDbContext().InsertOneAsync(document); Logger.LogDebug($"Added player '{player.NflId}' as '{document.Id}' to '{collectionName}' collection."); }
public static PlayerSql FromCoreAddEntity(PlayerAdd add) { return(new PlayerSql { Id = Guid.NewGuid(), NflId = add.NflId, EsbId = add.EsbId, GsisId = add.GsisId, FirstName = add.FirstName, LastName = add.LastName, Position = add.Position, Status = add.Status, Number = add.Number, Height = add.Height, Weight = add.Weight, DateOfBirth = add.DateOfBirth, College = add.College }); }
internal string AddPlayer(PlayerAdd addItem) { bool success; List <string> carsState = new List <string>(); lock (this.PlayerLock) { addItem.Key = addItem.Key.Trim(); if (this._Players.ContainsKey(addItem.Key)) { success = false; return("ng"); } else { success = true; bool hasTheSameName = false; do { hasTheSameName = false; foreach (var item in this._Players) { if (item.Value.PlayerName == addItem.PlayerName) { hasTheSameName = true; break; } } if (hasTheSameName) { addItem.PlayerName += "A"; } } while (hasTheSameName); // BaseInfomation.rm.AddPlayer this._Players.Add(addItem.Key, new Player() { Key = addItem.Key, FromUrl = addItem.FromUrl, WebSocketID = addItem.WebSocketID, PlayerName = addItem.PlayerName, CreateTime = DateTime.Now, ActiveTime = DateTime.Now, StartFPIndex = -1, //others = new Dictionary<string, OtherPlayers>(), PromoteState = new Dictionary <string, int>() { { "mile", -1 }, { "business", -1 }, { "volume", -1 }, { "speed", -1 } }, Collect = -1, //Debts = new Dictionary<string, long>(), //Money = 500 * 100, // Bust = false, //TaxInPosition = new Dictionary<int, long>(), returningRecord = new Dictionary <string, List <Model.MapGo.nyrqPosition> >() { { "carA", new List <Model.MapGo.nyrqPosition>() }, { "carB", new List <Model.MapGo.nyrqPosition>() }, { "carC", new List <Model.MapGo.nyrqPosition>() }, { "carD", new List <Model.MapGo.nyrqPosition>() }, { "carE", new List <Model.MapGo.nyrqPosition>() } }, OpenMore = 0, PromoteDiamondCount = new Dictionary <string, int>() { { "mile", 0 }, { "business", 0 }, { "volume", 0 }, { "speed", 0 } } }); this._Players[addItem.Key].initializeCars(addItem.CarsNames, this); this._Players[addItem.Key].initializeOthers(); // this._Players[addItem.Key].SysRemovePlayerByKeyF = BaseInfomation.rm.SysRemovePlayerByKey; //System.Random rm = new System.Random(DateTime.Now.GetHashCode()); int fpIndex = this.GetRandomPosition(false); // this.rm.Next(0, Program.dt.GetFpCount()); // this._FpOwner.Add(fpIndex, addItem.Key); this._Players[addItem.Key].StartFPIndex = fpIndex; this._Players[addItem.Key].TaxChanged = RoomMain.TaxAdded; this._Players[addItem.Key].TaxInPositionInit();// = RoomMain.TaxAdded; this._Players[addItem.Key].InitializeDebt(); //SetMoneyCanSave 在InitializeDebt 之后,MoneySet之前 this._Players[addItem.Key].SetMoneyCanSave = RoomMain.SetMoneyCanSave; this._Players[addItem.Key].MoneyChanged = RoomMain.MoneyChanged; var notifyMsgs = new List <string>(); this._Players[addItem.Key].MoneySet(500 * 100, ref notifyMsgs); // this._Players[addItem.Key].SupportChangedF = RoomMain.SupportChanged; this._Players[addItem.Key].TheLargestHolderKeyChanged = this.TheLargestHolderKeyChanged; this._Players[addItem.Key].InitializeTheLargestHolder(); // this._Players[addItem.Key].Money this._Players[addItem.Key].BustChangedF = this.BustChangedF; this._Players[addItem.Key].SetBust(false, ref notifyMsgs); this._Players[addItem.Key].DrawSingleRoadF = this.DrawSingleRoadF; this._Players[addItem.Key].addUsedRoad(Program.dt.GetFpByIndex(fpIndex).RoadCode, ref notifyMsgs); this._Players[addItem.Key].brokenParameterT1RecordChanged = this.brokenParameterT1RecordChanged; // this._Players[addItem.Key].DrawSingleRoadF = this.DrawSingleRoadF; } } if (success) { return("ok"); } else { return("ng"); } // throw new NotImplementedException(); }
public void LinkToGameSession(string sessionKey, PlayerConnection myConnection) { try { var session = sessions.GetOrCreate(sessionKey); session.AddPlayer(myConnection); if (!session.IsOpenWorldSession && session.Bot == null) { var bot = botManager.GetMostAvailable(); if (bot != null) { session.AssignBot(bot); } } var allPlayers = session.Players.GetAll(); var connections = connectionProvider.GetConnectedActivePlayerConnections(session); var objects = session.Objects.GetAll(); var npcs = session.Npcs.GetAll(); var myInventory = playerInventoryProvider.GetInventory(myConnection.Player.Id); foreach (var connection in connections) { var isMe = connection.InstanceID == myConnection.InstanceID; if (isMe) { connection.Send(MyPlayerAdd.Create(gameData, myConnection.Player, myInventory.Items), SendOption.Reliable); //connection.Send(PlayerInventory.Create(myConnection.Player, inventory.Items), SendOption.Reliable); } else { connection.Send(PlayerAdd.Create(gameData, myConnection.Player), SendOption.Reliable); } } foreach (var player in allPlayers) { if (player.Id == myConnection.Player.Id) { continue; } myConnection.Send(PlayerAdd.Create(gameData, player), SendOption.Reliable); } foreach (var obj in objects) { var gobj = gameData.GetGameObject(obj.ObjectId); var transform = gameData.GetTransform(gobj.TransformId); if (gobj.Static) { if (obj.Type != gobj.Type) { myConnection.Send(ObjectUpdate.Create(obj, transform, gobj.Static), SendOption.Reliable); } } else { myConnection.Send(ObjectAdd.Create(obj, transform), SendOption.Reliable); } } foreach (var npc in npcs) { var transform = gameData.GetTransform(npc.TransformId); myConnection.Send(NpcAdd.Create(gameData, npc, transform), SendOption.Reliable); } } catch (Exception exc) { logger.LogInformation(exc.ToString()); } }