diff --git a/App.config b/App.config
new file mode 100644
index 0000000..4bfa005
--- /dev/null
+++ b/App.config
@@ -0,0 +1,6 @@
+
+
+     
+        
+    
+
diff --git a/FormMain.Designer.cs b/FormMain.Designer.cs
new file mode 100644
index 0000000..85adc3d
--- /dev/null
+++ b/FormMain.Designer.cs
@@ -0,0 +1,248 @@
+
+namespace MineServerManager
+{
+    partial class FormMain
+    {
+        /// 
+        /// 必需的设计器变量。
+        /// 
+        private System.ComponentModel.IContainer components = null;
+
+        /// 
+        /// 清理所有正在使用的资源。
+        /// 
+        /// 如果应释放托管资源,为 true;否则为 false。
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region Windows 窗体设计器生成的代码
+
+        /// 
+        /// 设计器支持所需的方法 - 不要修改
+        /// 使用代码编辑器修改此方法的内容。
+        /// 
+        private void InitializeComponent()
+        {
+            this.components = new System.ComponentModel.Container();
+            DevExpress.XtraEditors.Repository.RepositoryItemColorEdit repositoryItemColorEdit2 = new DevExpress.XtraEditors.Repository.RepositoryItemColorEdit();
+            this.documentManager1 = new DevExpress.XtraBars.Docking2010.DocumentManager(this.components);
+            this.chartControl1 = new DevExpress.XtraCharts.ChartControl();
+            this.noDocumentsView1 = new DevExpress.XtraBars.Docking2010.Views.NoDocuments.NoDocumentsView(this.components);
+            this.tabbedView1 = new DevExpress.XtraBars.Docking2010.Views.Tabbed.TabbedView(this.components);
+            this.dockManager1 = new DevExpress.XtraBars.Docking.DockManager(this.components);
+            this.dockPanel1 = new DevExpress.XtraBars.Docking.DockPanel();
+            this.dockPanel1_Container = new DevExpress.XtraBars.Docking.ControlContainer();
+            this.treeList1 = new DevExpress.XtraTreeList.TreeList();
+            this.toolboxControl1 = new DevExpress.XtraToolbox.ToolboxControl();
+            this.tabFormControl1 = new DevExpress.XtraBars.TabFormControl();
+            this.tabFormContentContainer1 = new DevExpress.XtraBars.TabFormContentContainer();
+            this.tabFormPage1 = new DevExpress.XtraBars.TabFormPage();
+            this.barButtonItem1 = new DevExpress.XtraBars.BarButtonItem();
+            this.barEditItem1 = new DevExpress.XtraBars.BarEditItem();
+            this.barButtonItem2 = new DevExpress.XtraBars.BarButtonItem();
+            ((System.ComponentModel.ISupportInitialize)(this.documentManager1)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.chartControl1)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.noDocumentsView1)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.tabbedView1)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.dockManager1)).BeginInit();
+            this.dockPanel1.SuspendLayout();
+            this.dockPanel1_Container.SuspendLayout();
+            ((System.ComponentModel.ISupportInitialize)(this.treeList1)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.tabFormControl1)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(repositoryItemColorEdit2)).BeginInit();
+            this.SuspendLayout();
+            // 
+            // documentManager1
+            // 
+            this.documentManager1.ClientControl = this.chartControl1;
+            this.documentManager1.View = this.noDocumentsView1;
+            this.documentManager1.ViewCollection.AddRange(new DevExpress.XtraBars.Docking2010.Views.BaseView[] {
+            this.noDocumentsView1,
+            this.tabbedView1});
+            // 
+            // chartControl1
+            // 
+            this.chartControl1.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.chartControl1.Legend.Name = "Default Legend";
+            this.chartControl1.Location = new System.Drawing.Point(200, 72);
+            this.chartControl1.Name = "chartControl1";
+            this.chartControl1.SeriesSerializable = new DevExpress.XtraCharts.Series[0];
+            this.chartControl1.Size = new System.Drawing.Size(635, 497);
+            this.chartControl1.TabIndex = 2;
+            // 
+            // dockManager1
+            // 
+            this.dockManager1.Form = this;
+            this.dockManager1.RootPanels.AddRange(new DevExpress.XtraBars.Docking.DockPanel[] {
+            this.dockPanel1});
+            this.dockManager1.TopZIndexControls.AddRange(new string[] {
+            "DevExpress.XtraBars.BarDockControl",
+            "DevExpress.XtraBars.StandaloneBarDockControl",
+            "System.Windows.Forms.MenuStrip",
+            "System.Windows.Forms.StatusStrip",
+            "System.Windows.Forms.StatusBar",
+            "DevExpress.XtraBars.Ribbon.RibbonStatusBar",
+            "DevExpress.XtraBars.Ribbon.RibbonControl",
+            "DevExpress.XtraBars.Navigation.OfficeNavigationBar",
+            "DevExpress.XtraBars.Navigation.TileNavPane",
+            "DevExpress.XtraBars.TabFormControl",
+            "DevExpress.XtraBars.FluentDesignSystem.FluentDesignFormControl",
+            "DevExpress.XtraBars.ToolbarForm.ToolbarFormControl"});
+            // 
+            // dockPanel1
+            // 
+            this.dockPanel1.Controls.Add(this.dockPanel1_Container);
+            this.dockPanel1.Dock = DevExpress.XtraBars.Docking.DockingStyle.Left;
+            this.dockPanel1.ID = new System.Guid("1b996ddd-58a1-4f16-a04b-40fdeb9a2441");
+            this.dockPanel1.Location = new System.Drawing.Point(0, 72);
+            this.dockPanel1.Name = "dockPanel1";
+            this.dockPanel1.OriginalSize = new System.Drawing.Size(200, 200);
+            this.dockPanel1.Size = new System.Drawing.Size(200, 497);
+            this.dockPanel1.Text = "dockPanel1";
+            // 
+            // dockPanel1_Container
+            // 
+            this.dockPanel1_Container.Controls.Add(this.treeList1);
+            this.dockPanel1_Container.Location = new System.Drawing.Point(3, 26);
+            this.dockPanel1_Container.Name = "dockPanel1_Container";
+            this.dockPanel1_Container.Size = new System.Drawing.Size(193, 468);
+            this.dockPanel1_Container.TabIndex = 0;
+            // 
+            // treeList1
+            // 
+            this.treeList1.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.treeList1.Location = new System.Drawing.Point(0, 0);
+            this.treeList1.Name = "treeList1";
+            this.treeList1.Size = new System.Drawing.Size(193, 468);
+            this.treeList1.TabIndex = 0;
+            // 
+            // toolboxControl1
+            // 
+            this.toolboxControl1.Caption = "";
+            this.toolboxControl1.Dock = System.Windows.Forms.DockStyle.Right;
+            this.toolboxControl1.Location = new System.Drawing.Point(835, 72);
+            this.toolboxControl1.Name = "toolboxControl1";
+            this.toolboxControl1.Size = new System.Drawing.Size(200, 497);
+            this.toolboxControl1.TabIndex = 1;
+            // 
+            // tabFormControl1
+            // 
+            this.tabFormControl1.Items.AddRange(new DevExpress.XtraBars.BarItem[] {
+            this.barButtonItem1,
+            this.barEditItem1,
+            this.barButtonItem2});
+            this.tabFormControl1.Location = new System.Drawing.Point(0, 0);
+            this.tabFormControl1.Name = "tabFormControl1";
+            this.tabFormControl1.Pages.Add(this.tabFormPage1);
+            this.tabFormControl1.SelectedPage = this.tabFormPage1;
+            this.tabFormControl1.Size = new System.Drawing.Size(1035, 72);
+            this.tabFormControl1.TabForm = this;
+            this.tabFormControl1.TabIndex = 4;
+            this.tabFormControl1.TabLeftItemLinks.Add(this.barButtonItem1);
+            this.tabFormControl1.TabStop = false;
+            this.tabFormControl1.TitleItemLinks.Add(this.barEditItem1);
+            this.tabFormControl1.TitleItemLinks.Add(this.barButtonItem2);
+            // 
+            // tabFormContentContainer1
+            // 
+            this.tabFormContentContainer1.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.tabFormContentContainer1.Location = new System.Drawing.Point(200, 72);
+            this.tabFormContentContainer1.Name = "tabFormContentContainer1";
+            this.tabFormContentContainer1.Size = new System.Drawing.Size(835, 497);
+            this.tabFormContentContainer1.TabIndex = 5;
+            // 
+            // tabFormPage1
+            // 
+            this.tabFormPage1.ContentContainer = this.tabFormContentContainer1;
+            this.tabFormPage1.Name = "tabFormPage1";
+            this.tabFormPage1.Text = "Page 0";
+            // 
+            // barButtonItem1
+            // 
+            this.barButtonItem1.Caption = "barButtonItem1";
+            this.barButtonItem1.Id = 0;
+            this.barButtonItem1.Name = "barButtonItem1";
+            this.barButtonItem1.PaintStyle = DevExpress.XtraBars.BarItemPaintStyle.Caption;
+            // 
+            // barEditItem1
+            // 
+            this.barEditItem1.Caption = "barEditItem1";
+            repositoryItemColorEdit2.AutoHeight = false;
+            repositoryItemColorEdit2.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] {
+            new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)});
+            this.barEditItem1.Edit = repositoryItemColorEdit2;
+            this.barEditItem1.Id = 1;
+            this.barEditItem1.Name = "barEditItem1";
+            // 
+            // barButtonItem2
+            // 
+            this.barButtonItem2.Caption = "barButtonItem2";
+            this.barButtonItem2.Id = 2;
+            this.barButtonItem2.Name = "barButtonItem2";
+            this.barButtonItem2.ItemClick += new DevExpress.XtraBars.ItemClickEventHandler(this.barButtonItem2_ItemClick);
+            // 
+            // FormMain
+            // 
+            this.ClientSize = new System.Drawing.Size(1035, 569);
+            this.Controls.Add(this.chartControl1);
+            this.Controls.Add(this.toolboxControl1);
+            this.Controls.Add(this.tabFormContentContainer1);
+            this.Controls.Add(this.dockPanel1);
+            this.Controls.Add(this.tabFormControl1);
+            this.Name = "FormMain";
+            this.TabFormControl = this.tabFormControl1;
+            ((System.ComponentModel.ISupportInitialize)(this.documentManager1)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.chartControl1)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.noDocumentsView1)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.tabbedView1)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.dockManager1)).EndInit();
+            this.dockPanel1.ResumeLayout(false);
+            this.dockPanel1_Container.ResumeLayout(false);
+            ((System.ComponentModel.ISupportInitialize)(this.treeList1)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.tabFormControl1)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(repositoryItemColorEdit2)).EndInit();
+            this.ResumeLayout(false);
+
+        }
+
+        #endregion
+
+        private System.Windows.Forms.MenuStrip menuStrip1;
+        private System.Windows.Forms.ToolStripMenuItem tsmFile;
+        private System.Windows.Forms.ToolStripMenuItem tsmVPN;
+        private System.Windows.Forms.ToolStripMenuItem tsmServerControl;
+        private System.Windows.Forms.ToolStripMenuItem tsmVPNConnect;
+        private System.Windows.Forms.ToolStripMenuItem tsmVPNDisConnect;
+        private System.Windows.Forms.ToolStripMenuItem tsmVPNStauts;
+        private System.Windows.Forms.ToolStripMenuItem tsmVPNSet;
+        private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem1;
+        private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem2;
+        private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem3;
+        private System.Windows.Forms.ToolStripMenuItem tsmMonitor;
+        private System.Windows.Forms.ToolStripMenuItem tsmSet;
+        private System.Windows.Forms.ToolStripMenuItem tsmAbout;
+        private System.Windows.Forms.DataGridView dataGridView1;
+        private DevExpress.XtraBars.Docking2010.DocumentManager documentManager1;
+        private DevExpress.XtraCharts.ChartControl chartControl1;
+        private DevExpress.XtraBars.Docking2010.Views.NoDocuments.NoDocumentsView noDocumentsView1;
+        private DevExpress.XtraBars.Docking2010.Views.Tabbed.TabbedView tabbedView1;
+        private DevExpress.XtraBars.Docking.DockManager dockManager1;
+        private DevExpress.XtraToolbox.ToolboxControl toolboxControl1;
+        private DevExpress.XtraBars.Docking.DockPanel dockPanel1;
+        private DevExpress.XtraBars.Docking.ControlContainer dockPanel1_Container;
+        private DevExpress.XtraTreeList.TreeList treeList1;
+        private DevExpress.XtraBars.TabFormContentContainer tabFormContentContainer1;
+        private DevExpress.XtraBars.TabFormControl tabFormControl1;
+        private DevExpress.XtraBars.BarButtonItem barButtonItem1;
+        private DevExpress.XtraBars.BarEditItem barEditItem1;
+        private DevExpress.XtraBars.TabFormPage tabFormPage1;
+        private DevExpress.XtraBars.BarButtonItem barButtonItem2;
+    }
+}
+
diff --git a/FormMain.cs b/FormMain.cs
new file mode 100644
index 0000000..98e6b7c
--- /dev/null
+++ b/FormMain.cs
@@ -0,0 +1,31 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace MineServerManager
+{
+    public partial class FormMain : DevExpress.XtraBars.TabForm
+    {
+        public FormMain()
+        {
+            InitializeComponent();
+        }
+
+        private void toolStripMenuItem1_Click(object sender, EventArgs e)
+        {
+
+        }
+
+        private void barButtonItem2_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
+        {
+            FormVPNSet formVPNSet = new FormVPNSet();
+            formVPNSet.ShowDialog();
+        }
+    }
+}
diff --git a/FormMain.resx b/FormMain.resx
new file mode 100644
index 0000000..703e686
--- /dev/null
+++ b/FormMain.resx
@@ -0,0 +1,126 @@
+
+
+  
+  
+    
+    
+      
+        
+          
+            
+              
+                
+              
+              
+              
+              
+              
+            
+          
+          
+            
+              
+              
+            
+          
+          
+            
+              
+                
+                
+              
+              
+              
+              
+              
+            
+          
+          
+            
+              
+                
+              
+              
+            
+          
+        
+      
+    
+  
+  
+    text/microsoft-resx
+  
+  
+    2.0
+  
+  
+    System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+  
+  
+    System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+  
+  
+    17, 17
+  
+  
+    189, 17
+  
+
\ No newline at end of file
diff --git a/FormVPNSet.Designer.cs b/FormVPNSet.Designer.cs
new file mode 100644
index 0000000..753bf4c
--- /dev/null
+++ b/FormVPNSet.Designer.cs
@@ -0,0 +1,63 @@
+
+namespace MineServerManager
+{
+    partial class FormVPNSet
+    {
+        /// 
+        /// Required designer variable.
+        /// 
+        private System.ComponentModel.IContainer components = null;
+
+        /// 
+        /// Clean up any resources being used.
+        /// 
+        /// true if managed resources should be disposed; otherwise, false.
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region Windows Form Designer generated code
+
+        /// 
+        /// Required method for Designer support - do not modify
+        /// the contents of this method with the code editor.
+        /// 
+        private void InitializeComponent()
+        {
+            this.windowsUIButtonPanel1 = new DevExpress.XtraBars.Docking2010.WindowsUIButtonPanel();
+            this.SuspendLayout();
+            // 
+            // windowsUIButtonPanel1
+            // 
+            this.windowsUIButtonPanel1.Buttons.AddRange(new DevExpress.XtraEditors.ButtonPanel.IBaseButton[] {
+            new DevExpress.XtraBars.Docking2010.WindowsUIButton(),
+            new DevExpress.XtraBars.Docking2010.WindowsUIButton()});
+            this.windowsUIButtonPanel1.Dock = System.Windows.Forms.DockStyle.Top;
+            this.windowsUIButtonPanel1.Location = new System.Drawing.Point(0, 0);
+            this.windowsUIButtonPanel1.Name = "windowsUIButtonPanel1";
+            this.windowsUIButtonPanel1.Size = new System.Drawing.Size(800, 112);
+            this.windowsUIButtonPanel1.TabIndex = 0;
+            this.windowsUIButtonPanel1.Click += new System.EventHandler(this.windowsUIButtonPanel1_Click);
+            // 
+            // FormVPNSet
+            // 
+            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.ClientSize = new System.Drawing.Size(800, 450);
+            this.Controls.Add(this.windowsUIButtonPanel1);
+            this.Name = "FormVPNSet";
+            this.Text = "FormVPNSet";
+            this.ResumeLayout(false);
+
+        }
+
+        #endregion
+
+        private DevExpress.XtraBars.Docking2010.WindowsUIButtonPanel windowsUIButtonPanel1;
+    }
+}
\ No newline at end of file
diff --git a/FormVPNSet.cs b/FormVPNSet.cs
new file mode 100644
index 0000000..d27b3ae
--- /dev/null
+++ b/FormVPNSet.cs
@@ -0,0 +1,25 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace MineServerManager
+{
+    public partial class FormVPNSet : Form
+    {
+        public FormVPNSet()
+        {
+            InitializeComponent();
+        }
+
+        private void windowsUIButtonPanel1_Click(object sender, EventArgs e)
+        {
+
+        }
+    }
+}
diff --git a/FormVPNSet.resx b/FormVPNSet.resx
new file mode 100644
index 0000000..1af7de1
--- /dev/null
+++ b/FormVPNSet.resx
@@ -0,0 +1,120 @@
+
+
+  
+  
+    
+    
+      
+        
+          
+            
+              
+                
+              
+              
+              
+              
+              
+            
+          
+          
+            
+              
+              
+            
+          
+          
+            
+              
+                
+                
+              
+              
+              
+              
+              
+            
+          
+          
+            
+              
+                
+              
+              
+            
+          
+        
+      
+    
+  
+  
+    text/microsoft-resx
+  
+  
+    2.0
+  
+  
+    System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+  
+  
+    System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+  
+
\ No newline at end of file
diff --git a/MineServerManager.csproj b/MineServerManager.csproj
new file mode 100644
index 0000000..659754a
--- /dev/null
+++ b/MineServerManager.csproj
@@ -0,0 +1,118 @@
+
+
+  
+  
+    Debug
+    AnyCPU
+    {8222BF93-E53E-4E7E-9DE3-2B1FA02E8F59}
+    WinExe
+    MineServerManager
+    MineServerManager
+    v4.8
+    512
+    true
+    true
+    
+  
+  
+    AnyCPU
+    true
+    full
+    false
+    bin\Debug\
+    DEBUG;TRACE
+    prompt
+    4
+  
+  
+    AnyCPU
+    pdbonly
+    true
+    bin\Release\
+    TRACE
+    prompt
+    4
+  
+  
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+  
+  
+    
+      Form
+    
+    
+      FormMain.cs
+    
+    
+      Form
+    
+    
+      FormVPNSet.cs
+    
+    
+    
+    
+      FormMain.cs
+    
+    
+      FormVPNSet.cs
+    
+    
+    
+      ResXFileCodeGenerator
+      Resources.Designer.cs
+      Designer
+    
+    
+      True
+      Resources.resx
+      True
+    
+    
+      SettingsSingleFileGenerator
+      Settings.Designer.cs
+    
+    
+      True
+      Settings.settings
+      True
+    
+  
+  
+    
+  
+  
+
\ No newline at end of file
diff --git a/MineServerManager.sln b/MineServerManager.sln
new file mode 100644
index 0000000..e439d4c
--- /dev/null
+++ b/MineServerManager.sln
@@ -0,0 +1,25 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 16
+VisualStudioVersion = 16.0.31424.327
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MineServerManager", "MineServerManager.csproj", "{8222BF93-E53E-4E7E-9DE3-2B1FA02E8F59}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Any CPU = Debug|Any CPU
+		Release|Any CPU = Release|Any CPU
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{8222BF93-E53E-4E7E-9DE3-2B1FA02E8F59}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{8222BF93-E53E-4E7E-9DE3-2B1FA02E8F59}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{8222BF93-E53E-4E7E-9DE3-2B1FA02E8F59}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{8222BF93-E53E-4E7E-9DE3-2B1FA02E8F59}.Release|Any CPU.Build.0 = Release|Any CPU
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+	GlobalSection(ExtensibilityGlobals) = postSolution
+		SolutionGuid = {CF2717AC-429C-48B2-8F2D-6CC5992A6601}
+	EndGlobalSection
+EndGlobal
diff --git a/Program.cs b/Program.cs
new file mode 100644
index 0000000..7d1c333
--- /dev/null
+++ b/Program.cs
@@ -0,0 +1,22 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace MineServerManager
+{
+    static class Program
+    {
+        /// 
+        /// 应用程序的主入口点。
+        /// 
+        [STAThread]
+        static void Main()
+        {
+            Application.EnableVisualStyles();
+            Application.SetCompatibleTextRenderingDefault(false);
+            Application.Run(new FormMain());
+        }
+    }
+}
diff --git a/Properties/AssemblyInfo.cs b/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..e50147d
--- /dev/null
+++ b/Properties/AssemblyInfo.cs
@@ -0,0 +1,36 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// 有关程序集的一般信息由以下
+// 控制。更改这些特性值可修改
+// 与程序集关联的信息。
+[assembly: AssemblyTitle("MineServerManager")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("MineServerManager")]
+[assembly: AssemblyCopyright("Copyright ©  2021")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// 将 ComVisible 设置为 false 会使此程序集中的类型
+//对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型
+//请将此类型的 ComVisible 特性设置为 true。
+[assembly: ComVisible(false)]
+
+// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
+[assembly: Guid("8222bf93-e53e-4e7e-9de3-2b1fa02e8f59")]
+
+// 程序集的版本信息由下列四个值组成: 
+//
+//      主版本
+//      次版本
+//      生成号
+//      修订号
+//
+//可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值
+//通过使用 "*",如下所示:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/Properties/Resources.Designer.cs b/Properties/Resources.Designer.cs
new file mode 100644
index 0000000..e0eaa57
--- /dev/null
+++ b/Properties/Resources.Designer.cs
@@ -0,0 +1,63 @@
+//------------------------------------------------------------------------------
+// 
+//     此代码由工具生成。
+//     运行时版本:4.0.30319.42000
+//
+//     对此文件的更改可能会导致不正确的行为,并且如果
+//     重新生成代码,这些更改将会丢失。
+// 
+//------------------------------------------------------------------------------
+
+namespace MineServerManager.Properties {
+    using System;
+    
+    
+    /// 
+    ///   一个强类型的资源类,用于查找本地化的字符串等。
+    /// 
+    // 此类是由 StronglyTypedResourceBuilder
+    // 类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。
+    // 若要添加或移除成员,请编辑 .ResX 文件,然后重新运行 ResGen
+    // (以 /str 作为命令选项),或重新生成 VS 项目。
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")]
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+    internal class Resources {
+        
+        private static global::System.Resources.ResourceManager resourceMan;
+        
+        private static global::System.Globalization.CultureInfo resourceCulture;
+        
+        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+        internal Resources() {
+        }
+        
+        /// 
+        ///   返回此类使用的缓存的 ResourceManager 实例。
+        /// 
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        internal static global::System.Resources.ResourceManager ResourceManager {
+            get {
+                if (object.ReferenceEquals(resourceMan, null)) {
+                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("MineServerManager.Properties.Resources", typeof(Resources).Assembly);
+                    resourceMan = temp;
+                }
+                return resourceMan;
+            }
+        }
+        
+        /// 
+        ///   重写当前线程的 CurrentUICulture 属性,对
+        ///   使用此强类型资源类的所有资源查找执行重写。
+        /// 
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        internal static global::System.Globalization.CultureInfo Culture {
+            get {
+                return resourceCulture;
+            }
+            set {
+                resourceCulture = value;
+            }
+        }
+    }
+}
diff --git a/Properties/Resources.resx b/Properties/Resources.resx
new file mode 100644
index 0000000..af7dbeb
--- /dev/null
+++ b/Properties/Resources.resx
@@ -0,0 +1,117 @@
+
+
+  
+  
+    
+      
+        
+          
+            
+              
+                
+              
+              
+              
+              
+            
+          
+          
+            
+              
+              
+            
+          
+          
+            
+              
+                
+                
+              
+              
+              
+              
+            
+          
+          
+            
+              
+                
+              
+              
+            
+          
+        
+      
+    
+  
+  
+    text/microsoft-resx
+  
+  
+    2.0
+  
+  
+    System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+  
+  
+    System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+  
+
\ No newline at end of file
diff --git a/Properties/Settings.Designer.cs b/Properties/Settings.Designer.cs
new file mode 100644
index 0000000..a208152
--- /dev/null
+++ b/Properties/Settings.Designer.cs
@@ -0,0 +1,26 @@
+//------------------------------------------------------------------------------
+// 
+//     此代码由工具生成。
+//     运行时版本:4.0.30319.42000
+//
+//     对此文件的更改可能会导致不正确的行为,并且如果
+//     重新生成代码,这些更改将会丢失。
+// 
+//------------------------------------------------------------------------------
+
+namespace MineServerManager.Properties {
+    
+    
+    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.5.0.0")]
+    internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
+        
+        private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
+        
+        public static Settings Default {
+            get {
+                return defaultInstance;
+            }
+        }
+    }
+}
diff --git a/Properties/Settings.settings b/Properties/Settings.settings
new file mode 100644
index 0000000..3964565
--- /dev/null
+++ b/Properties/Settings.settings
@@ -0,0 +1,7 @@
+
+
+  
+    
+  
+  
+
diff --git a/Properties/licenses.licx b/Properties/licenses.licx
new file mode 100644
index 0000000..9ad68b4
--- /dev/null
+++ b/Properties/licenses.licx
@@ -0,0 +1,4 @@
+DevExpress.XtraCharts.ChartControl, DevExpress.XtraCharts.v20.1.UI, Version=20.1.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
+DevExpress.XtraBars.Docking.DockManager, DevExpress.XtraBars.v20.1, Version=20.1.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
+DevExpress.XtraTreeList.TreeList, DevExpress.XtraTreeList.v20.1, Version=20.1.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
+DevExpress.XtraBars.Docking2010.DocumentManager, DevExpress.XtraBars.v20.1, Version=20.1.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a