mirror of
https://github.com/JustArchiNET/ArchiSteamFarm.git
synced 2025-12-18 15:30:30 +00:00
First nice version
This commit is contained in:
@@ -13,8 +13,9 @@ namespace ConfigGenerator {
|
|||||||
ASFConfigs.Add(this);
|
ASFConfigs.Add(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected ASFConfig(string filePath) : base() {
|
protected ASFConfig(string filePath) {
|
||||||
FilePath = filePath;
|
FilePath = filePath;
|
||||||
|
ASFConfigs.Add(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
internal virtual void Save() {
|
internal virtual void Save() {
|
||||||
@@ -26,5 +27,37 @@ namespace ConfigGenerator {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
internal virtual void Remove() {
|
||||||
|
string queryPath = Path.GetFileNameWithoutExtension(FilePath);
|
||||||
|
lock (FilePath) {
|
||||||
|
foreach (var configFile in Directory.EnumerateFiles(Program.ConfigDirectory, queryPath + ".*")) {
|
||||||
|
try {
|
||||||
|
File.Delete(configFile);
|
||||||
|
} catch (Exception e) {
|
||||||
|
Logging.LogGenericException(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ASFConfigs.Remove(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
internal virtual void Rename(string botName) {
|
||||||
|
if (string.IsNullOrEmpty(botName)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
string queryPath = Path.GetFileNameWithoutExtension(FilePath);
|
||||||
|
lock (FilePath) {
|
||||||
|
foreach (var file in Directory.EnumerateFiles(Program.ConfigDirectory, queryPath + ".*")) {
|
||||||
|
try {
|
||||||
|
File.Move(file, Path.Combine(Program.ConfigDirectory, botName + Path.GetExtension(file)));
|
||||||
|
} catch (Exception e) {
|
||||||
|
Logging.LogGenericException(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
FilePath = Path.Combine(Program.ConfigDirectory, botName + ".json");
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -124,6 +124,7 @@ namespace ConfigGenerator {
|
|||||||
private BotConfig(string filePath) : base(filePath) {
|
private BotConfig(string filePath) : base(filePath) {
|
||||||
FilePath = filePath;
|
FilePath = filePath;
|
||||||
GamesPlayedWhileIdle.Add(0);
|
GamesPlayedWhileIdle.Add(0);
|
||||||
|
Save();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -54,6 +54,7 @@
|
|||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Compile Include="ASFConfig.cs" />
|
<Compile Include="ASFConfig.cs" />
|
||||||
<Compile Include="BotConfig.cs" />
|
<Compile Include="BotConfig.cs" />
|
||||||
|
<Compile Include="DialogBox.cs" />
|
||||||
<Compile Include="EnhancedPropertyGrid.cs">
|
<Compile Include="EnhancedPropertyGrid.cs">
|
||||||
<SubType>Component</SubType>
|
<SubType>Component</SubType>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
|||||||
@@ -7,58 +7,25 @@ using System.Windows.Forms;
|
|||||||
namespace ConfigGenerator {
|
namespace ConfigGenerator {
|
||||||
internal class ConfigPage : TabPage {
|
internal class ConfigPage : TabPage {
|
||||||
|
|
||||||
|
internal readonly ASFConfig ASFConfig;
|
||||||
|
|
||||||
private EnhancedPropertyGrid EnhancedPropertyGrid;
|
private EnhancedPropertyGrid EnhancedPropertyGrid;
|
||||||
private Button LoadButton, SaveButton;
|
|
||||||
|
|
||||||
internal ConfigPage(ASFConfig config) : base() {
|
internal ConfigPage(ASFConfig config) : base() {
|
||||||
if (config == null) {
|
if (config == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
Text = Path.GetFileNameWithoutExtension(config.FilePath);
|
ASFConfig = config;
|
||||||
|
|
||||||
|
RefreshText();
|
||||||
|
|
||||||
EnhancedPropertyGrid = new EnhancedPropertyGrid(config);
|
EnhancedPropertyGrid = new EnhancedPropertyGrid(config);
|
||||||
Controls.Add(EnhancedPropertyGrid);
|
Controls.Add(EnhancedPropertyGrid);
|
||||||
|
|
||||||
Panel panel = new Panel() {
|
|
||||||
Height = 20,
|
|
||||||
Dock = DockStyle.Bottom,
|
|
||||||
};
|
|
||||||
|
|
||||||
LoadButton = new Button() {
|
|
||||||
Dock = DockStyle.Left,
|
|
||||||
Text = "Load"
|
|
||||||
};
|
|
||||||
|
|
||||||
panel.Controls.Add(LoadButton);
|
|
||||||
|
|
||||||
SaveButton = new Button() {
|
|
||||||
Dock = DockStyle.Right,
|
|
||||||
Text = "Save"
|
|
||||||
};
|
|
||||||
|
|
||||||
SaveButton.Click += SaveButton_Click;
|
|
||||||
|
|
||||||
panel.Controls.Add(SaveButton);
|
|
||||||
|
|
||||||
Controls.Add(panel);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private async void SaveButton_Click(object sender, EventArgs e) {
|
internal void RefreshText() {
|
||||||
if (sender == null || e == null) {
|
Text = Path.GetFileNameWithoutExtension(ASFConfig.FilePath);
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
SaveButton.Enabled = false;
|
|
||||||
|
|
||||||
List<Task> tasks = new List<Task>(ASFConfig.ASFConfigs.Count);
|
|
||||||
foreach (ASFConfig config in ASFConfig.ASFConfigs) {
|
|
||||||
tasks.Add(Task.Run(() => config.Save()));
|
|
||||||
config.Save();
|
|
||||||
}
|
|
||||||
await Task.WhenAll(tasks);
|
|
||||||
|
|
||||||
SaveButton.Enabled = true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void InitializeComponent() {
|
private void InitializeComponent() {
|
||||||
|
|||||||
50
ConfigGenerator/DialogBox.cs
Normal file
50
ConfigGenerator/DialogBox.cs
Normal file
@@ -0,0 +1,50 @@
|
|||||||
|
using System;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
|
||||||
|
namespace ConfigGenerator {
|
||||||
|
class DialogBox {
|
||||||
|
public static DialogResult InputBox(string title, string promptText, ref string value) {
|
||||||
|
Form form = new Form();
|
||||||
|
Label label = new Label();
|
||||||
|
TextBox textBox = new TextBox();
|
||||||
|
|
||||||
|
textBox.Width = 1000;
|
||||||
|
Button buttonOk = new Button();
|
||||||
|
Button buttonCancel = new Button();
|
||||||
|
|
||||||
|
form.Text = title;
|
||||||
|
label.Text = promptText;
|
||||||
|
textBox.Text = value;
|
||||||
|
|
||||||
|
buttonOk.Text = "OK";
|
||||||
|
buttonCancel.Text = "Cancel";
|
||||||
|
buttonOk.DialogResult = DialogResult.OK;
|
||||||
|
buttonCancel.DialogResult = DialogResult.Cancel;
|
||||||
|
|
||||||
|
label.SetBounds(9, 20, 372, 13);
|
||||||
|
textBox.SetBounds(12, 36, 372, 20);
|
||||||
|
buttonOk.SetBounds(228, 72, 75, 23);
|
||||||
|
buttonCancel.SetBounds(309, 72, 75, 23);
|
||||||
|
|
||||||
|
label.AutoSize = true;
|
||||||
|
textBox.Anchor = textBox.Anchor | AnchorStyles.Right;
|
||||||
|
buttonOk.Anchor = AnchorStyles.Bottom | AnchorStyles.Right;
|
||||||
|
buttonCancel.Anchor = AnchorStyles.Bottom | AnchorStyles.Right;
|
||||||
|
|
||||||
|
form.ClientSize = new Size(396, 107);
|
||||||
|
form.Controls.AddRange(new Control[] { label, textBox, buttonOk, buttonCancel });
|
||||||
|
form.ClientSize = new Size(Math.Max(300, label.Right + 10), form.ClientSize.Height);
|
||||||
|
form.FormBorderStyle = FormBorderStyle.FixedDialog;
|
||||||
|
form.StartPosition = FormStartPosition.CenterScreen;
|
||||||
|
form.MinimizeBox = false;
|
||||||
|
form.MaximizeBox = false;
|
||||||
|
form.AcceptButton = buttonOk;
|
||||||
|
form.CancelButton = buttonCancel;
|
||||||
|
|
||||||
|
DialogResult dialogResult = form.ShowDialog();
|
||||||
|
value = textBox.Text;
|
||||||
|
return dialogResult;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -2,16 +2,24 @@
|
|||||||
|
|
||||||
namespace ConfigGenerator {
|
namespace ConfigGenerator {
|
||||||
internal sealed class EnhancedPropertyGrid : PropertyGrid {
|
internal sealed class EnhancedPropertyGrid : PropertyGrid {
|
||||||
|
private ASFConfig ASFConfig;
|
||||||
internal EnhancedPropertyGrid(ASFConfig config) : base() {
|
internal EnhancedPropertyGrid(ASFConfig config) : base() {
|
||||||
if (config == null) {
|
if (config == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ASFConfig = config;
|
||||||
|
|
||||||
SelectedObject = config;
|
SelectedObject = config;
|
||||||
Anchor = AnchorStyles.Left | AnchorStyles.Right | AnchorStyles.Top;
|
Anchor = AnchorStyles.Left | AnchorStyles.Right | AnchorStyles.Top;
|
||||||
Dock = DockStyle.Fill;
|
Dock = DockStyle.Fill;
|
||||||
HelpVisible = false;
|
HelpVisible = false;
|
||||||
ToolbarVisible = false;
|
ToolbarVisible = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected override void OnPropertyValueChanged(PropertyValueChangedEventArgs e) {
|
||||||
|
base.OnPropertyValueChanged(e);
|
||||||
|
ASFConfig.Save();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -137,6 +137,7 @@ namespace ConfigGenerator {
|
|||||||
private GlobalConfig(string filePath) : base(filePath) {
|
private GlobalConfig(string filePath) : base(filePath) {
|
||||||
FilePath = filePath;
|
FilePath = filePath;
|
||||||
Blacklist.AddRange(GlobalBlacklist);
|
Blacklist.AddRange(GlobalBlacklist);
|
||||||
|
Save();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
61
ConfigGenerator/MainForm.Designer.cs
generated
61
ConfigGenerator/MainForm.Designer.cs
generated
@@ -28,9 +28,6 @@
|
|||||||
this.FileMenu = new System.Windows.Forms.ToolStripMenuItem();
|
this.FileMenu = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.FileMenuHelp = new System.Windows.Forms.ToolStripMenuItem();
|
this.FileMenuHelp = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.FileMenuExit = new System.Windows.Forms.ToolStripMenuItem();
|
this.FileMenuExit = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.BotMenu = new System.Windows.Forms.ToolStripMenuItem();
|
|
||||||
this.BotMenuNew = new System.Windows.Forms.ToolStripMenuItem();
|
|
||||||
this.BotMenuDelete = new System.Windows.Forms.ToolStripMenuItem();
|
|
||||||
this.MainTab = new System.Windows.Forms.TabControl();
|
this.MainTab = new System.Windows.Forms.TabControl();
|
||||||
this.MenuPanel.SuspendLayout();
|
this.MenuPanel.SuspendLayout();
|
||||||
this.SuspendLayout();
|
this.SuspendLayout();
|
||||||
@@ -38,11 +35,11 @@
|
|||||||
// MenuPanel
|
// MenuPanel
|
||||||
//
|
//
|
||||||
this.MenuPanel.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
this.MenuPanel.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||||
this.FileMenu,
|
this.FileMenu});
|
||||||
this.BotMenu});
|
|
||||||
this.MenuPanel.Location = new System.Drawing.Point(0, 0);
|
this.MenuPanel.Location = new System.Drawing.Point(0, 0);
|
||||||
this.MenuPanel.Name = "MenuPanel";
|
this.MenuPanel.Name = "MenuPanel";
|
||||||
this.MenuPanel.Size = new System.Drawing.Size(784, 24);
|
this.MenuPanel.Padding = new System.Windows.Forms.Padding(8, 3, 0, 3);
|
||||||
|
this.MenuPanel.Size = new System.Drawing.Size(780, 25);
|
||||||
this.MenuPanel.TabIndex = 0;
|
this.MenuPanel.TabIndex = 0;
|
||||||
this.MenuPanel.Text = "menuStrip1";
|
this.MenuPanel.Text = "menuStrip1";
|
||||||
//
|
//
|
||||||
@@ -52,67 +49,56 @@
|
|||||||
this.FileMenuHelp,
|
this.FileMenuHelp,
|
||||||
this.FileMenuExit});
|
this.FileMenuExit});
|
||||||
this.FileMenu.Name = "FileMenu";
|
this.FileMenu.Name = "FileMenu";
|
||||||
this.FileMenu.Size = new System.Drawing.Size(37, 20);
|
this.FileMenu.Size = new System.Drawing.Size(37, 19);
|
||||||
this.FileMenu.Text = "File";
|
this.FileMenu.Text = "File";
|
||||||
//
|
//
|
||||||
// FileMenuHelp
|
// FileMenuHelp
|
||||||
//
|
//
|
||||||
this.FileMenuHelp.Name = "FileMenuHelp";
|
this.FileMenuHelp.Name = "FileMenuHelp";
|
||||||
this.FileMenuHelp.Size = new System.Drawing.Size(99, 22);
|
this.FileMenuHelp.Size = new System.Drawing.Size(152, 22);
|
||||||
this.FileMenuHelp.Text = "Help";
|
this.FileMenuHelp.Text = "Help";
|
||||||
this.FileMenuHelp.Click += new System.EventHandler(this.FileMenuHelp_Click);
|
this.FileMenuHelp.Click += new System.EventHandler(this.FileMenuHelp_Click);
|
||||||
//
|
//
|
||||||
// FileMenuExit
|
// FileMenuExit
|
||||||
//
|
//
|
||||||
this.FileMenuExit.Name = "FileMenuExit";
|
this.FileMenuExit.Name = "FileMenuExit";
|
||||||
this.FileMenuExit.Size = new System.Drawing.Size(99, 22);
|
this.FileMenuExit.Size = new System.Drawing.Size(152, 22);
|
||||||
this.FileMenuExit.Text = "Exit";
|
this.FileMenuExit.Text = "Exit";
|
||||||
this.FileMenuExit.Click += new System.EventHandler(this.FileMenuExit_Click);
|
this.FileMenuExit.Click += new System.EventHandler(this.FileMenuExit_Click);
|
||||||
//
|
//
|
||||||
// BotMenu
|
|
||||||
//
|
|
||||||
this.BotMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
|
||||||
this.BotMenuNew,
|
|
||||||
this.BotMenuDelete});
|
|
||||||
this.BotMenu.Name = "BotMenu";
|
|
||||||
this.BotMenu.Size = new System.Drawing.Size(37, 20);
|
|
||||||
this.BotMenu.Text = "Bot";
|
|
||||||
//
|
|
||||||
// BotMenuNew
|
|
||||||
//
|
|
||||||
this.BotMenuNew.Name = "BotMenuNew";
|
|
||||||
this.BotMenuNew.Size = new System.Drawing.Size(107, 22);
|
|
||||||
this.BotMenuNew.Text = "New";
|
|
||||||
this.BotMenuNew.Click += new System.EventHandler(this.BotMenuNew_Click);
|
|
||||||
//
|
|
||||||
// BotMenuDelete
|
|
||||||
//
|
|
||||||
this.BotMenuDelete.Name = "BotMenuDelete";
|
|
||||||
this.BotMenuDelete.Size = new System.Drawing.Size(107, 22);
|
|
||||||
this.BotMenuDelete.Text = "Delete";
|
|
||||||
this.BotMenuDelete.Click += new System.EventHandler(this.BotMenuDelete_Click);
|
|
||||||
//
|
|
||||||
// MainTab
|
// MainTab
|
||||||
//
|
//
|
||||||
this.MainTab.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
this.MainTab.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||||
| System.Windows.Forms.AnchorStyles.Left)
|
| System.Windows.Forms.AnchorStyles.Left)
|
||||||
| System.Windows.Forms.AnchorStyles.Right)));
|
| System.Windows.Forms.AnchorStyles.Right)));
|
||||||
this.MainTab.Location = new System.Drawing.Point(12, 27);
|
this.MainTab.HotTrack = true;
|
||||||
|
this.MainTab.Location = new System.Drawing.Point(16, 33);
|
||||||
|
this.MainTab.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
|
||||||
|
this.MainTab.Multiline = true;
|
||||||
this.MainTab.Name = "MainTab";
|
this.MainTab.Name = "MainTab";
|
||||||
this.MainTab.SelectedIndex = 0;
|
this.MainTab.SelectedIndex = 0;
|
||||||
this.MainTab.Size = new System.Drawing.Size(760, 522);
|
this.MainTab.Size = new System.Drawing.Size(748, 509);
|
||||||
this.MainTab.TabIndex = 1;
|
this.MainTab.TabIndex = 1;
|
||||||
|
this.MainTab.Selected += new System.Windows.Forms.TabControlEventHandler(this.MainTab_Selected);
|
||||||
|
this.MainTab.Deselecting += new System.Windows.Forms.TabControlCancelEventHandler(this.MainTab_Deselecting);
|
||||||
//
|
//
|
||||||
// MainForm
|
// MainForm
|
||||||
//
|
//
|
||||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F);
|
||||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
this.ClientSize = new System.Drawing.Size(784, 561);
|
this.AutoScroll = true;
|
||||||
|
this.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
|
||||||
|
this.ClientSize = new System.Drawing.Size(780, 557);
|
||||||
this.Controls.Add(this.MainTab);
|
this.Controls.Add(this.MainTab);
|
||||||
this.Controls.Add(this.MenuPanel);
|
this.Controls.Add(this.MenuPanel);
|
||||||
|
this.DoubleBuffered = true;
|
||||||
|
this.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
|
||||||
|
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.Fixed3D;
|
||||||
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
|
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
|
||||||
this.MainMenuStrip = this.MenuPanel;
|
this.MainMenuStrip = this.MenuPanel;
|
||||||
|
this.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
|
||||||
this.Name = "MainForm";
|
this.Name = "MainForm";
|
||||||
|
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
|
||||||
this.Text = "ASF Config Generator";
|
this.Text = "ASF Config Generator";
|
||||||
this.Load += new System.EventHandler(this.MainForm_Load);
|
this.Load += new System.EventHandler(this.MainForm_Load);
|
||||||
this.MenuPanel.ResumeLayout(false);
|
this.MenuPanel.ResumeLayout(false);
|
||||||
@@ -125,9 +111,6 @@
|
|||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
private System.Windows.Forms.MenuStrip MenuPanel;
|
private System.Windows.Forms.MenuStrip MenuPanel;
|
||||||
private System.Windows.Forms.ToolStripMenuItem BotMenu;
|
|
||||||
private System.Windows.Forms.ToolStripMenuItem BotMenuNew;
|
|
||||||
private System.Windows.Forms.ToolStripMenuItem BotMenuDelete;
|
|
||||||
private System.Windows.Forms.TabControl MainTab;
|
private System.Windows.Forms.TabControl MainTab;
|
||||||
private System.Windows.Forms.ToolStripMenuItem FileMenu;
|
private System.Windows.Forms.ToolStripMenuItem FileMenu;
|
||||||
private System.Windows.Forms.ToolStripMenuItem FileMenuHelp;
|
private System.Windows.Forms.ToolStripMenuItem FileMenuHelp;
|
||||||
|
|||||||
@@ -5,6 +5,24 @@ using System.Windows.Forms;
|
|||||||
|
|
||||||
namespace ConfigGenerator {
|
namespace ConfigGenerator {
|
||||||
public partial class MainForm : Form {
|
public partial class MainForm : Form {
|
||||||
|
private const byte ReservedTabs = 3;
|
||||||
|
|
||||||
|
private ConfigPage ASFTab;
|
||||||
|
|
||||||
|
private TabPage RemoveTab = new TabPage() {
|
||||||
|
Text = "-",
|
||||||
|
};
|
||||||
|
|
||||||
|
private TabPage RenameTab = new TabPage() {
|
||||||
|
Text = "~",
|
||||||
|
};
|
||||||
|
|
||||||
|
private TabPage NewTab = new TabPage() {
|
||||||
|
Text = "+",
|
||||||
|
};
|
||||||
|
|
||||||
|
private TabPage OldTab;
|
||||||
|
|
||||||
public MainForm() {
|
public MainForm() {
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
}
|
}
|
||||||
@@ -46,16 +64,113 @@ namespace ConfigGenerator {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
MainTab.TabPages.Add(new ConfigPage(GlobalConfig.Load(Path.Combine(Program.ConfigDirectory, Program.GlobalConfigFile))));
|
ASFTab = new ConfigPage(GlobalConfig.Load(Path.Combine(Program.ConfigDirectory, Program.GlobalConfigFile)));
|
||||||
|
|
||||||
|
MainTab.TabPages.Add(ASFTab);
|
||||||
|
|
||||||
foreach (var configFile in Directory.EnumerateFiles(Program.ConfigDirectory, "*.json")) {
|
foreach (var configFile in Directory.EnumerateFiles(Program.ConfigDirectory, "*.json")) {
|
||||||
string botName = Path.GetFileNameWithoutExtension(configFile);
|
string botName = Path.GetFileNameWithoutExtension(configFile);
|
||||||
if (botName.Equals(Program.ASF)) {
|
switch (botName) {
|
||||||
|
case Program.ASF:
|
||||||
|
case "example":
|
||||||
|
case "minimal":
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
MainTab.TabPages.Add(new ConfigPage(BotConfig.Load(configFile)));
|
MainTab.TabPages.Add(new ConfigPage(BotConfig.Load(configFile)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
MainTab.TabPages.AddRange(new TabPage[] { RemoveTab, RenameTab, NewTab });
|
||||||
|
}
|
||||||
|
|
||||||
|
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.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 = null;
|
||||||
|
if (DialogBox.InputBox("Rename", "Your new bot name:", ref 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;
|
||||||
|
|
||||||
|
string input = null;
|
||||||
|
if (DialogBox.InputBox("Rename", "Your new bot name:", ref 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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void MainTab_Deselecting(object sender, TabControlCancelEventArgs e) {
|
||||||
|
if (sender == null || e == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
OldTab = e.TabPage;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user