private void MainForm_Shown(object sender, EventArgs args) { if ((sender == null) || (args == null)) { Logging.LogNullError(nameof(sender) + " || " + nameof(args)); return; } Tutorial.OnAction(Tutorial.EPhase.Shown); }
private void MainForm_HelpButtonClicked(object sender, CancelEventArgs e) { if ((sender == null) || (e == null)) { return; } e.Cancel = true; Tutorial.OnAction(Tutorial.EPhase.Help); Process.Start("https://github.com/JustArchi/ArchiSteamFarm/wiki/Configuration"); Tutorial.OnAction(Tutorial.EPhase.HelpFinished); }
private void MainForm_HelpButtonClicked(object sender, CancelEventArgs args) { if ((sender == null) || (args == null)) { Logging.LogNullError(nameof(sender) + " || " + nameof(args)); return; } args.Cancel = true; Tutorial.OnAction(Tutorial.EPhase.Help); Process.Start("https://github.com/" + SharedInfo.GithubRepo + "/wiki/Configuration"); Tutorial.OnAction(Tutorial.EPhase.HelpFinished); }
private void MainForm_Load(object sender, EventArgs args) { if ((sender == null) || (args == null)) { Logging.LogNullError(nameof(sender) + " || " + nameof(args)); return; } GlobalConfig globalConfig = GlobalConfig.Load(Path.Combine(SharedInfo.ConfigDirectory, SharedInfo.GlobalConfigFileName)); if (!string.IsNullOrEmpty(globalConfig.CurrentCulture)) { try { // GetCultureInfo() would be better but we can't use it for specifying neutral cultures such as "en" CultureInfo culture = CultureInfo.CreateSpecificCulture(globalConfig.CurrentCulture); CultureInfo.DefaultThreadCurrentCulture = CultureInfo.DefaultThreadCurrentUICulture = culture; } catch (CultureNotFoundException) { Logging.LogGenericErrorWithoutStacktrace(CGStrings.ErrorInvalidCurrentCulture); } } ASFTab = new ConfigPage(globalConfig); MainTab.TabPages.Add(ASFTab); foreach (string configFile in Directory.EnumerateFiles(SharedInfo.ConfigDirectory, "*.json")) { string botName = Path.GetFileNameWithoutExtension(configFile); switch (botName) { case SharedInfo.ASF: case "example": case "minimal": continue; } MainTab.TabPages.Add(new ConfigPage(BotConfig.Load(configFile))); Tutorial.Enabled = false; } MainTab.TabPages.AddRange(new[] { RemoveTab, RenameTab, NewTab }); Tutorial.OnAction(Tutorial.EPhase.Start); }
protected override void OnPropertyValueChanged(PropertyValueChangedEventArgs args) { if (args == null) { Logging.LogNullError(nameof(args)); return; } base.OnPropertyValueChanged(args); ASFConfig.Save(); BotConfig botConfig = ASFConfig as BotConfig; if (botConfig != null) { if (!botConfig.Enabled) { return; } Tutorial.OnAction(Tutorial.EPhase.BotEnabled); if (!string.IsNullOrEmpty(botConfig.SteamLogin) && !string.IsNullOrEmpty(botConfig.SteamPassword)) { Tutorial.OnAction(Tutorial.EPhase.BotReady); } return; } GlobalConfig globalConfig = ASFConfig as GlobalConfig; if (globalConfig == null) { return; } if (globalConfig.SteamOwnerID != 0) { Tutorial.OnAction(Tutorial.EPhase.GlobalConfigReady); } }
private void MainTab_Selected(object sender, TabControlEventArgs args) { if ((sender == null) || (args == null)) { Logging.LogNullError(nameof(sender) + " || " + nameof(args)); return; } if (args.TabPage == RemoveTab) { ConfigPage configPage = OldTab as ConfigPage; if (configPage == null) { MainTab.SelectedIndex = -1; return; } if (configPage == ASFTab) { MainTab.SelectedTab = ASFTab; Logging.LogGenericErrorWithoutStacktrace(CGStrings.ErrorCantRemoveGlobalConfig); return; } MainTab.SelectedTab = configPage; if (DialogBox.YesNoBox(CGStrings.Removal, CGStrings.ConfirmRemoval) != DialogResult.Yes) { return; } MainTab.SelectedIndex = 0; configPage.ASFConfig.Remove(); MainTab.TabPages.Remove(configPage); } else if (args.TabPage == RenameTab) { ConfigPage configPage = OldTab as ConfigPage; if (configPage == null) { MainTab.SelectedIndex = -1; return; } if (configPage == ASFTab) { MainTab.SelectedTab = ASFTab; Logging.LogGenericErrorWithoutStacktrace(CGStrings.ErrorCantRenameGlobalConfig); return; } MainTab.SelectedTab = configPage; string input; if (DialogBox.InputBox(CGStrings.Rename, CGStrings.UserInputBotName, out input) != DialogResult.OK) { return; } if (string.IsNullOrEmpty(input)) { Logging.LogGenericErrorWithoutStacktrace(CGStrings.ErrorBotNameEmpty); return; } // Get rid of any potential whitespaces in bot name input = Regex.Replace(input, @"\s+", ""); configPage.ASFConfig.Rename(input); configPage.RefreshText(); } else if (args.TabPage == NewTab) { ConfigPage configPage = OldTab as ConfigPage; if (configPage == null) { MainTab.SelectedIndex = -1; return; } MainTab.SelectedTab = configPage; Tutorial.OnAction(Tutorial.EPhase.BotNickname); string input; if (DialogBox.InputBox(CGStrings.New, CGStrings.UserInputBotName, out input) != DialogResult.OK) { return; } if (string.IsNullOrEmpty(input)) { Logging.LogGenericErrorWithoutStacktrace(CGStrings.ErrorBotNameEmpty); return; } // Get rid of any potential whitespaces in bot name input = Regex.Replace(input, @"\s+", ""); if (string.IsNullOrEmpty(input)) { Logging.LogGenericErrorWithoutStacktrace(CGStrings.ErrorBotNameEmpty); return; } switch (input) { case SharedInfo.ASF: case "example": case "minimal": Logging.LogGenericErrorWithoutStacktrace(CGStrings.ErrorNameReserved); return; } if (ASFConfig.ASFConfigs.Select(config => Path.GetFileNameWithoutExtension(config.FilePath)).Any(fileNameWithoutExtension => (fileNameWithoutExtension == null) || fileNameWithoutExtension.Equals(input))) { Logging.LogGenericErrorWithoutStacktrace(CGStrings.ErrorNameAlreadyUsed); return; } input = Path.Combine(SharedInfo.ConfigDirectory, input + ".json"); ConfigPage newConfigPage = new ConfigPage(BotConfig.Load(input)); MainTab.TabPages.Insert(MainTab.TabPages.Count - ReservedTabs, newConfigPage); MainTab.SelectedTab = newConfigPage; Tutorial.OnAction(Tutorial.EPhase.BotNicknameFinished); } }
private void MainTab_Selected(object sender, TabControlEventArgs args) { if ((sender == null) || (args == null)) { Logging.LogNullError(nameof(sender) + " || " + nameof(args)); return; } if (args.TabPage == RemoveTab) { ConfigPage configPage = OldTab as ConfigPage; if (configPage == null) { MainTab.SelectedIndex = -1; return; } if (configPage == ASFTab) { MainTab.SelectedTab = ASFTab; Logging.LogGenericErrorWithoutStacktrace("You can't remove global config!"); return; } MainTab.SelectedTab = configPage; if (DialogBox.YesNoBox("Removal", "Do you really want to remove this config?") != DialogResult.Yes) { return; } MainTab.SelectedIndex = 0; configPage.ASFConfig.Remove(); MainTab.TabPages.Remove(configPage); } else if (args.TabPage == RenameTab) { ConfigPage configPage = OldTab as ConfigPage; if (configPage == null) { MainTab.SelectedIndex = -1; return; } if (configPage == ASFTab) { MainTab.SelectedTab = ASFTab; Logging.LogGenericErrorWithoutStacktrace("You can't rename global config!"); return; } MainTab.SelectedTab = configPage; string input; if (DialogBox.InputBox("Rename", "Your new bot name:", out input) != DialogResult.OK) { return; } if (string.IsNullOrEmpty(input)) { Logging.LogGenericErrorWithoutStacktrace("Your bot name is empty!"); return; } // Get rid of any potential whitespaces in bot name input = Regex.Replace(input, @"\s+", ""); configPage.ASFConfig.Rename(input); configPage.RefreshText(); } else if (args.TabPage == NewTab) { ConfigPage configPage = OldTab as ConfigPage; if (configPage == null) { MainTab.SelectedIndex = -1; return; } MainTab.SelectedTab = configPage; Tutorial.OnAction(Tutorial.EPhase.BotNickname); string input; if (DialogBox.InputBox("New", "Your new bot name:", out input) != DialogResult.OK) { return; } if (string.IsNullOrEmpty(input)) { Logging.LogGenericErrorWithoutStacktrace("Your bot name is empty!"); return; } // Get rid of any potential whitespaces in bot name input = Regex.Replace(input, @"\s+", ""); if (string.IsNullOrEmpty(input)) { Logging.LogGenericErrorWithoutStacktrace("Your bot name is empty!"); return; } switch (input) { case SharedInfo.ASF: case "example": case "minimal": Logging.LogGenericErrorWithoutStacktrace("This name is reserved!"); return; } if (ASFConfig.ASFConfigs.Select(config => Path.GetFileNameWithoutExtension(config.FilePath)).Any(fileNameWithoutExtension => (fileNameWithoutExtension == null) || fileNameWithoutExtension.Equals(input))) { Logging.LogGenericErrorWithoutStacktrace("Bot with such name exists already!"); return; } input = Path.Combine(SharedInfo.ConfigDirectory, input + ".json"); ConfigPage newConfigPage = new ConfigPage(BotConfig.Load(input)); MainTab.TabPages.Insert(MainTab.TabPages.Count - ReservedTabs, newConfigPage); MainTab.SelectedTab = newConfigPage; Tutorial.OnAction(Tutorial.EPhase.BotNicknameFinished); } else if (args.TabPage == ASFTab) { Tutorial.OnAction(Tutorial.EPhase.GlobalConfigOpened); } }
private void MainTab_Selected(object sender, TabControlEventArgs e) { if (sender == null || e == null) { return; } if (e.TabPage == RemoveTab) { ConfigPage configPage = OldTab as ConfigPage; if (configPage == null) { MainTab.SelectedIndex = -1; return; } if (configPage == ASFTab) { MainTab.SelectedTab = ASFTab; Logging.LogGenericError("You can't remove global config!"); return; } MainTab.SelectedTab = configPage; if (DialogBox.YesNoBox("Removal", "Do you really want to remove this config?") != DialogResult.Yes) { return; } MainTab.SelectedIndex = 0; configPage.ASFConfig.Remove(); MainTab.TabPages.Remove(configPage); } else if (e.TabPage == RenameTab) { ConfigPage configPage = OldTab as ConfigPage; if (configPage == null) { MainTab.SelectedIndex = -1; return; } if (configPage == ASFTab) { MainTab.SelectedTab = ASFTab; Logging.LogGenericError("You can't rename global config!"); return; } MainTab.SelectedTab = configPage; string input; if (DialogBox.InputBox("Rename", "Your new bot name:", out input) != DialogResult.OK) { return; } if (string.IsNullOrEmpty(input)) { Logging.LogGenericError("Your bot name is empty!"); return; } configPage.ASFConfig.Rename(input); configPage.RefreshText(); } else if (e.TabPage == NewTab) { ConfigPage configPage = OldTab as ConfigPage; if (configPage == null) { MainTab.SelectedIndex = -1; return; } MainTab.SelectedTab = configPage; Tutorial.OnAction(Tutorial.EPhase.BotNickname); string input; if (DialogBox.InputBox("New", "Your new bot name:", out input) != DialogResult.OK) { return; } if (string.IsNullOrEmpty(input)) { Logging.LogGenericError("Your bot name is empty!"); return; } foreach (ASFConfig config in ASFConfig.ASFConfigs) { if (Path.GetFileNameWithoutExtension(config.FilePath).Equals(input)) { Logging.LogGenericError("Bot with such name exists already!"); return; } } input = Path.Combine(Program.ConfigDirectory, input + ".json"); ConfigPage newConfigPage = new ConfigPage(BotConfig.Load(input)); MainTab.TabPages.Insert(MainTab.TabPages.Count - ReservedTabs, newConfigPage); MainTab.SelectedTab = newConfigPage; Tutorial.OnAction(Tutorial.EPhase.BotNicknameFinished); } else if (e.TabPage == ASFTab) { Tutorial.OnAction(Tutorial.EPhase.GlobalConfigOpened); } }