private void UpdateTranslations() { _logger.Write("Updating UI...", LogLevel.Debug); _mainControl.LanguageLabel.Text = _localizationRepository.GetText("ui-language-display-text"); _mainControl.ClearLogButton.Text = _localizationRepository.GetText("ui-log-clear-display-text"); _mainControl.EnableTestEnvironment.Text = _localizationRepository.GetText("ui-enable-test-environment"); _mainControl.FlashTaskbar.Text = _localizationRepository.GetText("ui-flash-taskbar"); _mainControl.TtsCheckBox.Text = _localizationRepository.GetText("ui-enable-tts"); _mainControl.PersistToasts.Text = _localizationRepository.GetText("ui-persist-toasts"); _mainControl.EnableActToast.Text = _localizationRepository.GetText("ui-enable-act-toasts"); _mainControl.DisableToasts.Text = _localizationRepository.GetText("ui-disable-toasts"); _mainControl.AppTitle.Text = $"{nameof(DFAssist)} v{Assembly.GetExecutingAssembly().GetName().Version} | "; _mainControl.GeneralSettings.Text = _localizationRepository.GetText("ui-general-settings-group"); _mainControl.ToastSettings.Text = _localizationRepository.GetText("ui-toast-settings-group"); _mainControl.TtsSettings.Text = _localizationRepository.GetText("ui-tts-settings-group"); _mainControl.TtsVoiceSelectionLabel.Text = _localizationRepository.GetText("ui-tts-voice-selection-label"); _mainControl.TelegramSettings.Text = _localizationRepository.GetText("ui-telegram-settings-group"); _mainControl.TelegramCheckBox.Text = _localizationRepository.GetText("ui-telegram-display-text"); _mainControl.TelegramChatIdLabel.Text = _localizationRepository.GetText("ui-telegram-chatid-display-text"); _mainControl.TelegramTokenLabel.Text = _localizationRepository.GetText("ui-telegram-token-display-text"); _mainControl.PushBulletSettings.Text = _localizationRepository.GetText("ui-pushbullet-settings-group"); _mainControl.PushBulletCheckbox.Text = _localizationRepository.GetText("ui-pushbullet-display-text"); _mainControl.PushBulletDeviceIdlabel.Text = _localizationRepository.GetText("ui-pushbullet-deviceid-display-text"); _mainControl.PushBulletTokenLabel.Text = _localizationRepository.GetText("ui-pushbullet-token-display-text"); _mainControl.DiscordSettings.Text = _localizationRepository.GetText("ui-discord-settings-group"); _mainControl.DiscordCheckBox.Text = _localizationRepository.GetText("ui-discord-display-text"); _mainControl.DiscordUsernameLabel.Text = _localizationRepository.GetText("ui-discord-username-display-text"); _mainControl.DiscordWebhookLabel.Text = _localizationRepository.GetText("ui-discord-webhook-display-text"); _mainControl.TestSettings.Text = _localizationRepository.GetText("ui-test-settings-group"); _mainControl.LogLevelSelectionLabel.Text = _localizationRepository.GetText("ui-test-log-level-selction-label"); _logger.Write("UI Updated!", LogLevel.Debug); }
public void LoadSettings() { _logger.Write("Settings Loading...", LogLevel.Debug); // All the settings to deserialize _xmlSettingsSerializer.AddControlSetting(_mainControl.DisableToasts.Name, _mainControl.DisableToasts); _xmlSettingsSerializer.AddControlSetting(_mainControl.LanguageValue.Name, _mainControl.LanguageValue); _xmlSettingsSerializer.AddControlSetting(_mainControl.FlashTaskbar.Name, _mainControl.FlashTaskbar); _xmlSettingsSerializer.AddControlSetting(_mainControl.TtsCheckBox.Name, _mainControl.TtsCheckBox); _xmlSettingsSerializer.AddControlSetting(_mainControl.TtsVoicesComboBox.Name, _mainControl.TtsVoicesComboBox); _xmlSettingsSerializer.AddControlSetting(_mainControl.PersistToasts.Name, _mainControl.PersistToasts); _xmlSettingsSerializer.AddControlSetting(_mainControl.EnableTestEnvironment.Name, _mainControl.EnableTestEnvironment); _xmlSettingsSerializer.AddControlSetting(_mainControl.LogLevelComboBox.Name, _mainControl.LogLevelComboBox); _xmlSettingsSerializer.AddControlSetting(_mainControl.EnableActToast.Name, _mainControl.EnableActToast); _xmlSettingsSerializer.AddControlSetting(_mainControl.TelegramCheckBox.Name, _mainControl.TelegramCheckBox); _xmlSettingsSerializer.AddControlSetting(_mainControl.TelegramTokenTextBox.Name, _mainControl.TelegramTokenTextBox); _xmlSettingsSerializer.AddControlSetting(_mainControl.TelegramChatIdTextBox.Name, _mainControl.TelegramChatIdTextBox); _xmlSettingsSerializer.AddControlSetting(_mainControl.PushBulletCheckbox.Name, _mainControl.PushBulletCheckbox); _xmlSettingsSerializer.AddControlSetting(_mainControl.PushBulletTokenTextBox.Name, _mainControl.PushBulletTokenTextBox); _xmlSettingsSerializer.AddControlSetting(_mainControl.PushBulletDeviceIdTextBox.Name, _mainControl.PushBulletDeviceIdTextBox); _xmlSettingsSerializer.AddControlSetting(_mainControl.DiscordCheckBox.Name, _mainControl.DiscordCheckBox); _xmlSettingsSerializer.AddControlSetting(_mainControl.DiscordWebhookTextBox.Name, _mainControl.DiscordWebhookTextBox); _xmlSettingsSerializer.AddControlSetting(_mainControl.DiscordUsernameTextBox.Name, _mainControl.DiscordUsernameTextBox); if (File.Exists(_settingsFile)) { using (var fileStream = new FileStream(_settingsFile, FileMode.Open, FileAccess.Read, FileShare.ReadWrite)) using (var xmlTextReader = new XmlTextReader(fileStream)) { try { while (xmlTextReader.Read()) { if (xmlTextReader.NodeType != XmlNodeType.Element) { continue; } if (xmlTextReader.LocalName != "SettingsSerializer") { continue; } if (_xmlSettingsSerializer.ImportFromXml(xmlTextReader) == 0) { break; } InternalCreateDefaultConfiguration(); break; } } catch (Exception) { _pluginData.lblPluginStatus.Text = "Error loading settings"; } xmlTextReader.Close(); } } else { InternalCreateDefaultConfiguration(); } foreach (var language in _mainControl.LanguageComboBox.Items.OfType <Language>()) { if (!language.Name.Equals(_mainControl.LanguageValue.Text)) { continue; } _mainControl.LanguageComboBox.SelectedItem = language; break; } _logger.Write($"Language: {_mainControl.LanguageValue.Text}", LogLevel.Debug); _logger.Write($"Disable Toasts: {_mainControl.DisableToasts.Checked}", LogLevel.Debug); _logger.Write($"Make Toasts Persistent: {_mainControl.PersistToasts.Checked}", LogLevel.Debug); _logger.Write($"Enable Legacy Toasts: {_mainControl.EnableActToast.Checked}", LogLevel.Debug); _logger.Write($"Enable Text To Speech: {_mainControl.TtsCheckBox.Checked}", LogLevel.Debug); if (_mainControl.TtsCheckBox.Checked) { _logger.Write($"Selected TTS Voice: {_mainControl.TtsVoicesComboBox.SelectedValue}", LogLevel.Debug); } _logger.Write($"Enable Discord Notifications: {_mainControl.DiscordCheckBox.Checked}", LogLevel.Debug); if (_mainControl.DiscordCheckBox.Checked) { _logger.Write($"Discord Webhook URL: {_mainControl.DiscordWebhookTextBox.Text}", LogLevel.Debug); _logger.Write($"Discord Username: {_mainControl.DiscordUsernameTextBox.Text}", LogLevel.Debug); } _logger.Write($"Enable Telegram Notifications: {_mainControl.TelegramCheckBox.Checked}", LogLevel.Debug); if (_mainControl.TelegramCheckBox.Checked) { _logger.Write($"Telegram Token: {_mainControl.TelegramTokenTextBox.Text}", LogLevel.Debug); _logger.Write($"Telegram ChatId: {_mainControl.TelegramChatIdTextBox.Text}", LogLevel.Debug); } _logger.Write($"Enable Pushbullet Notifications: {_mainControl.PushBulletCheckbox.Checked}", LogLevel.Debug); if (_mainControl.TelegramCheckBox.Checked) { _logger.Write($"Pushbullet Token: {_mainControl.PushBulletTokenTextBox.Text}", LogLevel.Debug); _logger.Write($"Pushbullet ChatId: {_mainControl.PushBulletDeviceIdTextBox.Text}", LogLevel.Debug); } _logger.Write($"Enable Test Environment: {_mainControl.EnableTestEnvironment.Checked}", LogLevel.Debug); _logger.Write($"Log Level Selected: {_mainControl.LogLevelComboBox.SelectedValue}", LogLevel.Debug); _logger.Write("Settings Loaded!", LogLevel.Debug); }
private void FlashTaskbarOnCheckedChanged(object sender, EventArgs e) { _logger.Write($"UI: [FlashTaskbar] Desired Value: {_mainControl.FlashTaskbar.Checked}", LogLevel.Debug); TaskbarFlashHelper.Instance.SendNotification(); }
public void InitPlugin(MainControl mainControl) { if (_pluginInitializing) { return; } InitializePluginVariables(mainControl); if (!EnsureActMainFormIsLoaded()) { return; } if (!FFXIVPluginHelper.Instance.Check(_pluginData, ffPluginIsEnabled => { if (ffPluginIsEnabled) { return; } _pluginData.cbEnabled.Checked = false; })) { return; } _pluginInitializing = true; ActGlobals.oFormActMain.Shown -= ActMainFormOnShown; _localizationRepository = Locator.Current.GetService <ILocalizationRepository>(); _dataRepository = Locator.Current.GetService <IDataRepository>(); _logger.SetTextBox(_mainControl.LoggingRichTextBox); _logger.Write("Plugin Init", LogLevel.Debug); _logger.Write($"Plugin Version: {Assembly.GetExecutingAssembly().GetName().Version}", LogLevel.Debug); _mainControl.LanguageComboBox.DataSource = new[] { new Language { Name = "English", Code = "en-us" }, new Language { Name = "한국어", Code = "ko-kr" }, new Language { Name = "日本語", Code = "ja-jp" }, new Language { Name = "Français", Code = "fr-fr" }, new Language { Name = "Deutsch", Code = "de-de" }, }; _mainControl.LanguageComboBox.DisplayMember = "Name"; _mainControl.LanguageComboBox.ValueMember = "Code"; _mainControl.TtsVoicesComboBox.DataSource = TTSHelper.Instance.AvailableVoices.Select(x => x.VoiceInfo.Name).ToArray(); _mainControl.LogLevelComboBox.DataSource = new [] { "Debug", "Info", "Warn", "Error", "Fatal", }; _pluginData.tpPluginSpace.Controls.Add(_mainControl); ACTPluginSettingsHelper.Instance.LoadSettings(); var updateTask = DFAssistRepositoriesHelper.Instance.UpdateData(); updateTask.ContinueWith(_ => { DFAssistRepositoriesHelper.Instance.LoadData(); DFAssistUIInteractionHelper.Instance.Subscribe(); _pluginData.lblPluginStatus.Text = "Starting..."; _pluginData.lblPluginStatus.Text = "Plugin Started!"; _pluginData.tpPluginSpace.Text = nameof(DFAssist); _logger.Write("Plugin Started!", LogLevel.Debug); FFXIVNetworkProcessHelper.Instance.Subscribe(); IsPluginEnabled = true; _logger.Write("Plugin Enabled", LogLevel.Debug); ACTPluginUpdateHelper.Instance.Subscribe(); _pluginInitializing = false; }); updateTask.Start(); }
private void LogLevelComboBoxOnSelectedValueChanged(object sender, EventArgs e) { var selectedValue = _mainControl.LogLevelComboBox.SelectedValue as string; if (string.IsNullOrWhiteSpace(selectedValue) || !Enum.TryParse(selectedValue, out LogLevel logLevel)) { _logger.Write($"UI: [LogLevel] Unable to change log level", LogLevel.Error); return; } _logger.SetLoggingLevel(logLevel); _logger.Write($"UI: [LogLevel] Desired Value: {_mainControl.LogLevelComboBox.SelectedValue}", LogLevel.Debug); }
private void UpdateProcesses() { var process = Process.GetProcessesByName("ffxiv_dx11").FirstOrDefault(); if (process == null) { return; } ActiveProcess = process; try { if (!_networks.ContainsKey(process.Id)) { var pn = new ProcessNetwork(process, new Network()); _packetHandler.OnEventReceived += Network_onReceiveEvent; _networks.TryAdd(process.Id, pn); _logger.Write($"P: FFXIV Process Selected: {process.Id}", LogLevel.Info); } } catch (Exception e) { _logger.Write(e, "P: Failed to set FFXIV Process", LogLevel.Error); } var toDelete = new List <int>(); foreach (var entry in _networks) { if (entry.Value.Process.HasExited) { entry.Value.Network.StopCapture(); toDelete.Add(entry.Key); } else { if (entry.Value.Network.IsRunning) { entry.Value.Network.UpdateGameConnections(entry.Value.Process); } else { if (!entry.Value.Network.StartCapture(entry.Value.Process)) { toDelete.Add(entry.Key); } } } } foreach (var t in toDelete) { try { _networks.TryRemove(t, out _); _packetHandler.OnEventReceived -= Network_onReceiveEvent; } catch (Exception e) { _logger.Write(e, "P: Failed to remove FFXIV Process", LogLevel.Error); } } }