using Lumina; using Lumina.Data; using Lumina.Excel; namespace Dalamud.Plugin.Services; /// /// This class provides data for Dalamud-internal features, but can also be used by plugins if needed. /// public interface IDataManager { /// /// Gets the current game client language. /// public ClientLanguage Language { get; } /// /// Gets a object which gives access to any excel/game data. /// public GameData GameData { get; } /// /// Gets an object which gives access to any of the game's sheet data. /// public ExcelModule Excel { get; } /// /// Gets a value indicating whether the game data files have been modified by another third-party tool. /// public bool HasModifiedGameDataFiles { get; } /// /// Get an with the given Excel sheet row type. /// /// The excel sheet type to get. /// The , giving access to game rows. public ExcelSheet? GetExcelSheet() where T : ExcelRow; /// /// Get an with the given Excel sheet row type with a specified language. /// /// Language of the sheet to get. /// The excel sheet type to get. /// The , giving access to game rows. public ExcelSheet? GetExcelSheet(ClientLanguage language) where T : ExcelRow; /// /// Get a with the given path. /// /// The path inside of the game files. /// The of the file. public FileResource? GetFile(string path); /// /// Get a with the given path, of the given type. /// /// The type of resource. /// The path inside of the game files. /// The of the file. public T? GetFile(string path) where T : FileResource; /// /// Check if the file with the given path exists within the game's index files. /// /// The path inside of the game files. /// True if the file exists. public bool FileExists(string path); }