protected virtual void Dispose(bool disposing) { if (!disposing) { return; } IPC.Dispose(); Config.Save(); new CameraConfigPreset().Apply(); DalamudApi.Framework.Update -= Update; DalamudApi.ClientState.Login -= Login; DalamudApi.ClientState.Logout -= Logout; DalamudApi.PluginInterface.UiBuilder.OpenConfigUi -= ToggleConfig; DalamudApi.PluginInterface.UiBuilder.Draw -= Draw; DalamudApi.Dispose(); if (FreeCam.Enabled) { FreeCam.Toggle(); } Game.Dispose(); Memory.Dispose(); }
public Cammy(DalamudPluginInterface pluginInterface) { try { Plugin = this; DalamudApi.Initialize(this, pluginInterface); Config = (Configuration)DalamudApi.PluginInterface.GetPluginConfig() ?? new(); Config.Initialize(); DalamudApi.Framework.Update += Update; DalamudApi.ClientState.Login += Login; DalamudApi.ClientState.Logout += Logout; DalamudApi.PluginInterface.UiBuilder.OpenConfigUi += ToggleConfig; DalamudApi.PluginInterface.UiBuilder.Draw += Draw; DalamudApi.ClientState.TerritoryChanged += TerritoryChanged; Game.Initialize(); IPC.Initialize(); pluginReady = true; } catch (Exception e) { PluginLog.LogError($"Failed loading plugin\n{e}"); } }