예제 #1
0
        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();
        }
예제 #2
0
        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}"); }
        }