/// <summary> /// Instantiates the ArkDataContainer and parses all the user-data files /// </summary> /// <param name="directory">The directory containing the profile and tribe files.</param> /// <returns>The async task context containing the resulting container.</returns> public static async Task <ArkDataContainer> CreateAsync(string directory) { if (!Directory.Exists(directory)) { throw new DirectoryNotFoundException("The ARK data directory couldn't be found."); } var playerFiles = Directory.GetFiles(directory).Where(p => p.ToLower().Contains(".arkprofile")).ToArray(); var tribeFiles = Directory.GetFiles(directory).Where(p => p.ToLower().Contains(".arktribe")).ToArray(); if (playerFiles.Length == 0 && tribeFiles.Length == 0) { throw new FileLoadException("The directory did not contain any of the parseable files."); } var container = new ArkDataContainer(); for (var i = 0; i < playerFiles.Length; i++) { container.Players.Add(await Parser.ParsePlayerAsync(playerFiles[i])); } for (var i = 0; i < tribeFiles.Length; i++) { container.Tribes.Add(await Parser.ParseTribeAsync(tribeFiles[i])); } container.LinkPlayerTribe(); return(container); }
/// <summary> /// Instantiates the ArkDataContainer and parses all the user-data files /// </summary> /// <param name="directory">The directory containing the profile and tribe files.</param> /// <returns>The async task context containing the resulting container.</returns> public static async Task<ArkDataContainer> CreateAsync(string directory) { if (!Directory.Exists(directory)) throw new DirectoryNotFoundException("The ARK data directory couldn't be found."); var playerFiles = Directory.GetFiles(directory).Where(p => p.ToLower().Contains(".arkprofile")).ToArray(); var tribeFiles = Directory.GetFiles(directory).Where(p => p.ToLower().Contains(".arktribe")).ToArray(); if (playerFiles.Length == 0 && tribeFiles.Length == 0) throw new FileLoadException("The directory did not contain any of the parseable files."); var container = new ArkDataContainer(); for (var i = 0; i < playerFiles.Length; i++) container.Players.Add(await Parser.ParsePlayerAsync(playerFiles[i])); for (var i = 0; i < tribeFiles.Length; i++) container.Tribes.Add(await Parser.ParseTribeAsync(tribeFiles[i])); container.LinkPlayerTribe(); return container; }
public ArkDataContainer GetDataIncludingOnline() { _container = ArkDataContainer.Create(_settings.ArkDataDirectory); LoadOnlinePlayers(); return _container; }