using Dalamud.Configuration; using Dalamud.Plugin; using System; using CurrencyAlert.DataModels; using CurrencyAlert.Windows; using KamiLib.Configuration; namespace CurrencyAlert; [Serializable] public class Configuration : IPluginConfiguration { public int Version { get; set; } = 6; public OverlaySettings OverlaySettings = new(); public DisplaySettings DisplaySettings = new(); public Setting ChatNotification = new(false); public TrackedCurrency[] TrackedCurrencies = { // Grand Company Seals new(CurrencyName.StormSeal, new Setting(75_000), new Setting(true)), new(CurrencyName.SerpentSeals, new Setting(75_000), new Setting(true)), new(CurrencyName.FlameSeals, new Setting(75_000), new Setting(true)), // PvP Currencies new(CurrencyName.WolfMarks, new Setting(18_000), new Setting(true)), new(CurrencyName.TrophyCrystals, new Setting(18_000), new Setting(true)), // Hunts new(CurrencyName.AlliedSeals, new Setting(3_500), new Setting(true)), new(CurrencyName.CenturioSeals, new Setting(3_500), new Setting(true)), new(CurrencyName.SackOfNuts, new Setting(3_500), new Setting(true)), // FATEs new(CurrencyName.BicolorGemstones, new Setting(800), new Setting(true)), // Tomestones new(CurrencyName.Poetics, new Setting(1_400), new Setting(true)), new(CurrencyName.NonLimitedTomestone, new Setting(1_700), new Setting(true)), new(CurrencyName.LimitedTomestone, new Setting(1_700), new Setting(true)), // Crafting & Gathering new(CurrencyName.WhiteCrafterScripts, new Setting(3_500), new Setting(true)), new(CurrencyName.WhiteGatherersScripts, new Setting(3_500), new Setting(true)), new(CurrencyName.PurpleCrafterScripts, new Setting(3_500), new Setting(true)), new(CurrencyName.PurpleGatherersScripts, new Setting(3_500), new Setting(true)), // Ishguard Restoration new(CurrencyName.SkybuildersScripts, new Setting(7_500), new Setting(true)), }; [NonSerialized] private IDalamudPluginInterface? pluginInterface; public void Initialize(IDalamudPluginInterface inputPluginInterface) => pluginInterface = inputPluginInterface; public void Save() => pluginInterface!.SavePluginConfig(this); }