using Dalamud.Game.ClientState.Objects.SubKinds; using Lumina.Excel; using Lumina.Excel.Sheets; namespace HellionChat; public static class Sheets { public static readonly ExcelSheet ItemSheet; public static readonly ExcelSheet WorldSheet; public static readonly ExcelSheet StatusSheet; public static readonly ExcelSheet LogKindSheet; public static readonly ExcelSheet LogFilterSheet; public static readonly ExcelSheet EventItemSheet; public static readonly ExcelSheet CompletionSheet; public static readonly ExcelSheet TerritorySheet; public static readonly ExcelSheet TextCommandSheet; public static readonly ExcelSheet EventItemHelpSheet; static Sheets() { ItemSheet = Plugin.DataManager.GetExcelSheet(); WorldSheet = Plugin.DataManager.GetExcelSheet(); StatusSheet = Plugin.DataManager.GetExcelSheet(); LogKindSheet = Plugin.DataManager.GetExcelSheet(); LogFilterSheet = Plugin.DataManager.GetExcelSheet(); EventItemSheet = Plugin.DataManager.GetExcelSheet(); CompletionSheet = Plugin.DataManager.GetExcelSheet(); TerritorySheet = Plugin.DataManager.GetExcelSheet(); TextCommandSheet = Plugin.DataManager.GetExcelSheet(); EventItemHelpSheet = Plugin.DataManager.GetExcelSheet(); } public static bool IsInForay() => TerritorySheet.TryGetRow(Plugin.ClientState.TerritoryType, out var row) && row.TerritoryIntendedUse.RowId is 41 or 61; public static IEnumerable WorldsOnDatacenter(IPlayerCharacter character) { var dcRow = character.HomeWorld.Value.DataCenter.Value.Region.RowId; return WorldSheet.Where(world => world.IsPublic && world.DataCenter.Value.Region.RowId == dcRow); } }