public override async Task SynchronizeConnection(IConnection connection) { using (var alock = await Data.Synchronizer.SetStateAsync(ModuleState.Synchronizing)) { await Messenger.SendMessage(connection, Messages.Players(Data.Players)); var mainPlayer = Data.CreatePlayer(true, connection); Data.ConnectionDic.Add(connection.Id, new ConnectionPlayerInfo(mainPlayer)); await BroadcastMessage(Messages.PlayerAdded(mainPlayer)); } }
public async Task <Player> AddPlayer(IConnection connection, string playerName) { using (var alock = await Data.Synchronizer.SetStateAsync(ModuleState.Writing)) { var newPlayer = Data.CreatePlayer(false, connection, playerName); Data.ConnectionDic[connection.Id].PlayerDic.Add(newPlayer.Id, newPlayer); await BroadcastMessage(Messages.PlayerAdded(newPlayer)); log.Info("player added " + newPlayer); return(newPlayer); } }