public static ParseTribe ( string fileName ) : ArkData.Tribe | ||
fileName | string | |
return | ArkData.Tribe |
public static Tribe ParseTribe(string fileName)
{
FileInfo fileInfo = new FileInfo(fileName);
if (!fileInfo.Exists)
return null;
byte[] data = File.ReadAllBytes(fileName);
return new Tribe()
{
Id = Helpers.GetInt(data, "TribeID"),
Name = Helpers.GetString(data, "TribeName"),
OwnerId = (int?)GetOwnerId(data),
FileCreated = fileInfo.CreationTime,
FileUpdated = fileInfo.LastWriteTime
};
}
/// <summary> /// Instantiates the ArkDataContainer and parses all the user data files /// </summary> /// <param name="directory">The directory containing the profile and tribe files.</param> public static ArkDataContainer Create(string directory) { if (!Directory.Exists(directory)) { throw new DirectoryNotFoundException("The ARK data directory couldn't be found."); } var playerFiles = Directory.GetFiles(directory).Where(p => Path.GetExtension(p).Equals(".arkprofile")).ToArray(); var tribeFiles = Directory.GetFiles(directory).Where(p => Path.GetExtension(p).Equals(".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(Parser.ParsePlayer(playerFiles[i])); } for (var i = 0; i < tribeFiles.Length; i++) { container.Tribes.Add(Parser.ParseTribe(tribeFiles[i])); } container.LinkPlayerTribe(); return(container); }