public override void ReceivedSettings(ReceivedSettingsPayload payload)
        {
            Program.UnregisterButton(this.Button);

            Tools.AutoPopulateSettings(settings, payload.Settings);
            SaveSettings();

            this.Button = new ControllerFunctionButton(this);

            Program.RegisterButton(this.Button);
        }
        public ControllerFunction(SDConnection connection, InitialPayload payload) : base(connection, payload)
        {
            if (payload.Settings == null || payload.Settings.Count == 0)
            {
                settings = PluginSettings.CreateDefaultSettings();
                SaveSettings();
            }
            else
            {
                settings = payload.Settings.ToObject <PluginSettings>();
            }

            this.Button = new ControllerFunctionButton(this);

            Program.RegisterButton(this.Button);

            Connection.OnApplicationDidLaunch += OnApplicationDidLaunch;

            Connection.OnApplicationDidTerminate += OnApplicationDidTerminate;
        }