NoSoliciting/NoSoliciting.Lite/Plugin.cs

43 lines
1.5 KiB
C#
Executable File

using System.Globalization;
using Dalamud.Plugin;
using NoSoliciting.Lite.Resources;
namespace NoSoliciting.Lite {
// ReSharper disable once ClassNeverInstantiated.Global
public class Plugin : IDalamudPlugin {
public string Name => "NoSoliciting Lite";
internal DalamudPluginInterface Interface { get; private set; } = null!;
internal Configuration Config { get; private set; } = null!;
internal PluginUi Ui { get; private set; } = null!;
private Commands Commands { get; set; } = null!;
private Filter Filter { get; set; } = null!;
public void Initialize(DalamudPluginInterface pluginInterface) {
this.Interface = pluginInterface;
this.ConfigureLanguage();
this.Interface.OnLanguageChanged += this.ConfigureLanguage;
this.Config = this.Interface.GetPluginConfig() as Configuration ?? new Configuration();
this.Config.Initialise(this.Interface);
this.Filter = new Filter(this);
this.Ui = new PluginUi(this);
this.Commands = new Commands(this);
}
public void Dispose() {
this.Commands.Dispose();
this.Ui.Dispose();
this.Filter.Dispose();
this.Interface.OnLanguageChanged -= this.ConfigureLanguage;
}
private void ConfigureLanguage(string? langCode = null) {
langCode ??= this.Interface.UiLanguage;
Language.Culture = new CultureInfo(langCode ?? "en");
}
}
}