diff --git a/v2rayN/v2rayN/Forms/AddServer2Form.Designer.cs b/v2rayN/v2rayN/Forms/AddServer2Form.Designer.cs index 312658e5..88808170 100644 --- a/v2rayN/v2rayN/Forms/AddServer2Form.Designer.cs +++ b/v2rayN/v2rayN/Forms/AddServer2Form.Designer.cs @@ -40,6 +40,8 @@ this.panel2 = new System.Windows.Forms.Panel(); this.btnOK = new System.Windows.Forms.Button(); this.panel1 = new System.Windows.Forms.Panel(); + this.cmbCoreType = new System.Windows.Forms.ComboBox(); + this.labCoreType = new System.Windows.Forms.Label(); this.groupBox1.SuspendLayout(); this.panel2.SuspendLayout(); this.SuspendLayout(); @@ -54,6 +56,8 @@ // // groupBox1 // + this.groupBox1.Controls.Add(this.cmbCoreType); + this.groupBox1.Controls.Add(this.labCoreType); this.groupBox1.Controls.Add(this.btnBrowse); this.groupBox1.Controls.Add(this.txtAddress); this.groupBox1.Controls.Add(this.label13); @@ -115,6 +119,18 @@ resources.ApplyResources(this.panel1, "panel1"); this.panel1.Name = "panel1"; // + // cmbCoreType + // + this.cmbCoreType.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cmbCoreType.FormattingEnabled = true; + resources.ApplyResources(this.cmbCoreType, "cmbCoreType"); + this.cmbCoreType.Name = "cmbCoreType"; + // + // labCoreType + // + resources.ApplyResources(this.labCoreType, "labCoreType"); + this.labCoreType.Name = "labCoreType"; + // // AddServer2Form // resources.ApplyResources(this, "$this"); @@ -146,5 +162,7 @@ private System.Windows.Forms.Label label13; private System.Windows.Forms.TextBox txtAddress; private System.Windows.Forms.Button btnBrowse; + private System.Windows.Forms.ComboBox cmbCoreType; + private System.Windows.Forms.Label labCoreType; } } \ No newline at end of file diff --git a/v2rayN/v2rayN/Forms/AddServer2Form.cs b/v2rayN/v2rayN/Forms/AddServer2Form.cs index 38145096..7e7a28fb 100644 --- a/v2rayN/v2rayN/Forms/AddServer2Form.cs +++ b/v2rayN/v2rayN/Forms/AddServer2Form.cs @@ -15,6 +15,9 @@ namespace v2rayN.Forms private void AddServer2Form_Load(object sender, EventArgs e) { + cmbCoreType.Items.AddRange(Global.coreTypes.ToArray()); + cmbCoreType.Items.Add(string.Empty); + txtAddress.ReadOnly = true; if (vmessItem != null) { @@ -35,6 +38,15 @@ namespace v2rayN.Forms { txtRemarks.Text = vmessItem.remarks; txtAddress.Text = vmessItem.address; + + if (vmessItem.coreType == null) + { + cmbCoreType.Text = string.Empty; + } + else + { + cmbCoreType.Text = vmessItem.coreType.ToString(); + } } @@ -55,6 +67,14 @@ namespace v2rayN.Forms return; } vmessItem.remarks = remarks; + if (Utils.IsNullOrEmpty(cmbCoreType.Text)) + { + vmessItem.coreType = null; + } + else + { + vmessItem.coreType = (ECoreType)Enum.Parse(typeof(ECoreType), cmbCoreType.Text); + } if (ConfigHandler.EditCustomServer(ref config, vmessItem) == 0) { diff --git a/v2rayN/v2rayN/Forms/AddServer2Form.resx b/v2rayN/v2rayN/Forms/AddServer2Form.resx index c6c7ec13..726f0cae 100644 --- a/v2rayN/v2rayN/Forms/AddServer2Form.resx +++ b/v2rayN/v2rayN/Forms/AddServer2Form.resx @@ -143,12 +143,63 @@ 0 + + 127, 157 + + + 89, 20 + + + 41 + + + cmbCoreType + + + System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBox1 + + + 0 + + + True + + + NoControl + + + 12, 161 + + + 59, 12 + + + 42 + + + Core Type + + + labCoreType + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBox1 + + + 1 + NoControl - 127, 121 + 127, 110 75, 23 @@ -169,7 +220,7 @@ groupBox1 - 0 + 2 127, 62 @@ -193,7 +244,7 @@ groupBox1 - 1 + 3 True @@ -220,7 +271,7 @@ groupBox1 - 2 + 4 127, 23 @@ -241,7 +292,7 @@ groupBox1 - 3 + 5 True @@ -268,7 +319,7 @@ groupBox1 - 4 + 6 True @@ -295,7 +346,7 @@ groupBox1 - 5 + 7 Fill @@ -406,7 +457,7 @@ 611, 259 - Edit custom configuration server + Custom configuration server AddServer2Form diff --git a/v2rayN/v2rayN/Forms/AddServer2Form.zh-Hans.resx b/v2rayN/v2rayN/Forms/AddServer2Form.zh-Hans.resx index 482593c4..232e5b76 100644 --- a/v2rayN/v2rayN/Forms/AddServer2Form.zh-Hans.resx +++ b/v2rayN/v2rayN/Forms/AddServer2Form.zh-Hans.resx @@ -118,7 +118,10 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - 编辑自定义配置服务器 + 自定义配置 + + + 浏览(&B) 取消(&C) @@ -129,6 +132,9 @@ 服务器 + + Core类型 + 地址(address) diff --git a/v2rayN/v2rayN/Forms/AddServerForm.Designer.cs b/v2rayN/v2rayN/Forms/AddServerForm.Designer.cs index c48ec522..33aa7ade 100644 --- a/v2rayN/v2rayN/Forms/AddServerForm.Designer.cs +++ b/v2rayN/v2rayN/Forms/AddServerForm.Designer.cs @@ -31,36 +31,62 @@ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(AddServerForm)); this.btnClose = new System.Windows.Forms.Button(); this.groupBox1 = new System.Windows.Forms.GroupBox(); - this.btnGUID = new System.Windows.Forms.Button(); - this.label13 = new System.Windows.Forms.Label(); - this.label8 = new System.Windows.Forms.Label(); - this.cmbSecurity = new System.Windows.Forms.ComboBox(); - this.txtRemarks = new System.Windows.Forms.TextBox(); - this.label6 = new System.Windows.Forms.Label(); - this.label5 = new System.Windows.Forms.Label(); - this.txtAlterId = new System.Windows.Forms.TextBox(); - this.label4 = new System.Windows.Forms.Label(); - this.txtId = new System.Windows.Forms.TextBox(); + this.panSocks = new System.Windows.Forms.Panel(); + this.label17 = new System.Windows.Forms.Label(); + this.txtSecurity4 = new System.Windows.Forms.TextBox(); + this.label18 = new System.Windows.Forms.Label(); + this.txtId4 = new System.Windows.Forms.TextBox(); + this.panSs = new System.Windows.Forms.Panel(); + this.txtId3 = new System.Windows.Forms.TextBox(); + this.label15 = new System.Windows.Forms.Label(); + this.cmbSecurity3 = new System.Windows.Forms.ComboBox(); + this.label16 = new System.Windows.Forms.Label(); + this.panTrojan = new System.Windows.Forms.Panel(); + this.label12 = new System.Windows.Forms.Label(); + this.cmbFlow6 = new System.Windows.Forms.ComboBox(); + this.txtId6 = new System.Windows.Forms.TextBox(); + this.label14 = new System.Windows.Forms.Label(); + this.panVless = new System.Windows.Forms.Panel(); + this.label7 = new System.Windows.Forms.Label(); + this.cmbFlow5 = new System.Windows.Forms.ComboBox(); + this.txtId5 = new System.Windows.Forms.TextBox(); + this.label9 = new System.Windows.Forms.Label(); + this.label10 = new System.Windows.Forms.Label(); + this.btnGUID5 = new System.Windows.Forms.Button(); + this.cmbSecurity5 = new System.Windows.Forms.ComboBox(); + this.label11 = new System.Windows.Forms.Label(); + this.panVmess = new System.Windows.Forms.Panel(); this.label3 = new System.Windows.Forms.Label(); - this.txtPort = new System.Windows.Forms.TextBox(); - this.label2 = new System.Windows.Forms.Label(); - this.txtAddress = new System.Windows.Forms.TextBox(); + this.txtId = new System.Windows.Forms.TextBox(); + this.btnGUID = new System.Windows.Forms.Button(); + this.label4 = new System.Windows.Forms.Label(); + this.label8 = new System.Windows.Forms.Label(); + this.txtAlterId = new System.Windows.Forms.TextBox(); + this.cmbSecurity = new System.Windows.Forms.ComboBox(); + this.label5 = new System.Windows.Forms.Label(); + this.panAddr = new System.Windows.Forms.Panel(); + this.label6 = new System.Windows.Forms.Label(); this.label1 = new System.Windows.Forms.Label(); - this.panel2 = new System.Windows.Forms.Panel(); + this.txtAddress = new System.Windows.Forms.TextBox(); + this.label2 = new System.Windows.Forms.Label(); + this.txtPort = new System.Windows.Forms.TextBox(); + this.txtRemarks = new System.Windows.Forms.TextBox(); + this.panBottom = new System.Windows.Forms.Panel(); this.btnOK = new System.Windows.Forms.Button(); - this.panel1 = new System.Windows.Forms.Panel(); - this.menuServer = new System.Windows.Forms.MenuStrip(); - this.MenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); - this.MenuItemImportClient = new System.Windows.Forms.ToolStripMenuItem(); - this.MenuItemImportServer = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator(); - this.MenuItemImportClipboard = new System.Windows.Forms.ToolStripMenuItem(); - this.panel3 = new System.Windows.Forms.Panel(); + this.panTop = new System.Windows.Forms.Panel(); + this.panTran = new System.Windows.Forms.Panel(); this.transportControl = new v2rayN.Forms.ServerTransportControl(); + this.cmbCoreType = new System.Windows.Forms.ComboBox(); + this.labCoreType = new System.Windows.Forms.Label(); this.groupBox1.SuspendLayout(); - this.panel2.SuspendLayout(); - this.menuServer.SuspendLayout(); - this.panel3.SuspendLayout(); + this.panSocks.SuspendLayout(); + this.panSs.SuspendLayout(); + this.panTrojan.SuspendLayout(); + this.panVless.SuspendLayout(); + this.panVmess.SuspendLayout(); + this.panAddr.SuspendLayout(); + this.panBottom.SuspendLayout(); + this.panTran.SuspendLayout(); this.SuspendLayout(); // // btnClose @@ -73,25 +99,189 @@ // // groupBox1 // - this.groupBox1.Controls.Add(this.btnGUID); - this.groupBox1.Controls.Add(this.label13); - this.groupBox1.Controls.Add(this.label8); - this.groupBox1.Controls.Add(this.cmbSecurity); - this.groupBox1.Controls.Add(this.txtRemarks); - this.groupBox1.Controls.Add(this.label6); - this.groupBox1.Controls.Add(this.label5); - this.groupBox1.Controls.Add(this.txtAlterId); - this.groupBox1.Controls.Add(this.label4); - this.groupBox1.Controls.Add(this.txtId); - this.groupBox1.Controls.Add(this.label3); - this.groupBox1.Controls.Add(this.txtPort); - this.groupBox1.Controls.Add(this.label2); - this.groupBox1.Controls.Add(this.txtAddress); - this.groupBox1.Controls.Add(this.label1); + this.groupBox1.Controls.Add(this.panSocks); + this.groupBox1.Controls.Add(this.panSs); + this.groupBox1.Controls.Add(this.panTrojan); + this.groupBox1.Controls.Add(this.panVless); + this.groupBox1.Controls.Add(this.panVmess); + this.groupBox1.Controls.Add(this.panAddr); resources.ApplyResources(this.groupBox1, "groupBox1"); this.groupBox1.Name = "groupBox1"; this.groupBox1.TabStop = false; // + // panSocks + // + this.panSocks.Controls.Add(this.label17); + this.panSocks.Controls.Add(this.txtSecurity4); + this.panSocks.Controls.Add(this.label18); + this.panSocks.Controls.Add(this.txtId4); + resources.ApplyResources(this.panSocks, "panSocks"); + this.panSocks.Name = "panSocks"; + // + // label17 + // + resources.ApplyResources(this.label17, "label17"); + this.label17.Name = "label17"; + // + // txtSecurity4 + // + resources.ApplyResources(this.txtSecurity4, "txtSecurity4"); + this.txtSecurity4.Name = "txtSecurity4"; + // + // label18 + // + resources.ApplyResources(this.label18, "label18"); + this.label18.Name = "label18"; + // + // txtId4 + // + resources.ApplyResources(this.txtId4, "txtId4"); + this.txtId4.Name = "txtId4"; + // + // panSs + // + this.panSs.Controls.Add(this.txtId3); + this.panSs.Controls.Add(this.label15); + this.panSs.Controls.Add(this.cmbSecurity3); + this.panSs.Controls.Add(this.label16); + resources.ApplyResources(this.panSs, "panSs"); + this.panSs.Name = "panSs"; + // + // txtId3 + // + resources.ApplyResources(this.txtId3, "txtId3"); + this.txtId3.Name = "txtId3"; + // + // label15 + // + resources.ApplyResources(this.label15, "label15"); + this.label15.Name = "label15"; + // + // cmbSecurity3 + // + this.cmbSecurity3.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cmbSecurity3.FormattingEnabled = true; + resources.ApplyResources(this.cmbSecurity3, "cmbSecurity3"); + this.cmbSecurity3.Name = "cmbSecurity3"; + // + // label16 + // + resources.ApplyResources(this.label16, "label16"); + this.label16.Name = "label16"; + // + // panTrojan + // + this.panTrojan.Controls.Add(this.label12); + this.panTrojan.Controls.Add(this.cmbFlow6); + this.panTrojan.Controls.Add(this.txtId6); + this.panTrojan.Controls.Add(this.label14); + resources.ApplyResources(this.panTrojan, "panTrojan"); + this.panTrojan.Name = "panTrojan"; + // + // label12 + // + resources.ApplyResources(this.label12, "label12"); + this.label12.Name = "label12"; + // + // cmbFlow6 + // + this.cmbFlow6.FormattingEnabled = true; + resources.ApplyResources(this.cmbFlow6, "cmbFlow6"); + this.cmbFlow6.Name = "cmbFlow6"; + // + // txtId6 + // + resources.ApplyResources(this.txtId6, "txtId6"); + this.txtId6.Name = "txtId6"; + // + // label14 + // + resources.ApplyResources(this.label14, "label14"); + this.label14.Name = "label14"; + // + // panVless + // + this.panVless.Controls.Add(this.label7); + this.panVless.Controls.Add(this.cmbFlow5); + this.panVless.Controls.Add(this.txtId5); + this.panVless.Controls.Add(this.label9); + this.panVless.Controls.Add(this.label10); + this.panVless.Controls.Add(this.btnGUID5); + this.panVless.Controls.Add(this.cmbSecurity5); + this.panVless.Controls.Add(this.label11); + resources.ApplyResources(this.panVless, "panVless"); + this.panVless.Name = "panVless"; + // + // label7 + // + resources.ApplyResources(this.label7, "label7"); + this.label7.Name = "label7"; + // + // cmbFlow5 + // + this.cmbFlow5.FormattingEnabled = true; + resources.ApplyResources(this.cmbFlow5, "cmbFlow5"); + this.cmbFlow5.Name = "cmbFlow5"; + // + // txtId5 + // + resources.ApplyResources(this.txtId5, "txtId5"); + this.txtId5.Name = "txtId5"; + // + // label9 + // + resources.ApplyResources(this.label9, "label9"); + this.label9.Name = "label9"; + // + // label10 + // + resources.ApplyResources(this.label10, "label10"); + this.label10.Name = "label10"; + // + // btnGUID5 + // + resources.ApplyResources(this.btnGUID5, "btnGUID5"); + this.btnGUID5.Name = "btnGUID5"; + this.btnGUID5.UseVisualStyleBackColor = true; + this.btnGUID5.Click += new System.EventHandler(this.btnGUID_Click); + // + // cmbSecurity5 + // + this.cmbSecurity5.DropDownStyle = System.Windows.Forms.ComboBoxStyle.Simple; + this.cmbSecurity5.FormattingEnabled = true; + this.cmbSecurity5.Items.AddRange(new object[] { + resources.GetString("cmbSecurity5.Items")}); + resources.ApplyResources(this.cmbSecurity5, "cmbSecurity5"); + this.cmbSecurity5.Name = "cmbSecurity5"; + // + // label11 + // + resources.ApplyResources(this.label11, "label11"); + this.label11.Name = "label11"; + // + // panVmess + // + this.panVmess.Controls.Add(this.label3); + this.panVmess.Controls.Add(this.txtId); + this.panVmess.Controls.Add(this.btnGUID); + this.panVmess.Controls.Add(this.label4); + this.panVmess.Controls.Add(this.label8); + this.panVmess.Controls.Add(this.txtAlterId); + this.panVmess.Controls.Add(this.cmbSecurity); + this.panVmess.Controls.Add(this.label5); + resources.ApplyResources(this.panVmess, "panVmess"); + this.panVmess.Name = "panVmess"; + // + // label3 + // + resources.ApplyResources(this.label3, "label3"); + this.label3.Name = "label3"; + // + // txtId + // + resources.ApplyResources(this.txtId, "txtId"); + this.txtId.Name = "txtId"; + // // btnGUID // resources.ApplyResources(this.btnGUID, "btnGUID"); @@ -99,16 +289,21 @@ this.btnGUID.UseVisualStyleBackColor = true; this.btnGUID.Click += new System.EventHandler(this.btnGUID_Click); // - // label13 + // label4 // - resources.ApplyResources(this.label13, "label13"); - this.label13.Name = "label13"; + resources.ApplyResources(this.label4, "label4"); + this.label4.Name = "label4"; // // label8 // resources.ApplyResources(this.label8, "label8"); this.label8.Name = "label8"; // + // txtAlterId + // + resources.ApplyResources(this.txtAlterId, "txtAlterId"); + this.txtAlterId.Name = "txtAlterId"; + // // cmbSecurity // this.cmbSecurity.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; @@ -116,67 +311,60 @@ resources.ApplyResources(this.cmbSecurity, "cmbSecurity"); this.cmbSecurity.Name = "cmbSecurity"; // - // txtRemarks + // label5 // - resources.ApplyResources(this.txtRemarks, "txtRemarks"); - this.txtRemarks.Name = "txtRemarks"; + resources.ApplyResources(this.label5, "label5"); + this.label5.Name = "label5"; + // + // panAddr + // + this.panAddr.Controls.Add(this.cmbCoreType); + this.panAddr.Controls.Add(this.labCoreType); + this.panAddr.Controls.Add(this.label6); + this.panAddr.Controls.Add(this.label1); + this.panAddr.Controls.Add(this.txtAddress); + this.panAddr.Controls.Add(this.label2); + this.panAddr.Controls.Add(this.txtPort); + this.panAddr.Controls.Add(this.txtRemarks); + resources.ApplyResources(this.panAddr, "panAddr"); + this.panAddr.Name = "panAddr"; // // label6 // resources.ApplyResources(this.label6, "label6"); this.label6.Name = "label6"; // - // label5 + // label1 // - resources.ApplyResources(this.label5, "label5"); - this.label5.Name = "label5"; - // - // txtAlterId - // - resources.ApplyResources(this.txtAlterId, "txtAlterId"); - this.txtAlterId.Name = "txtAlterId"; - // - // label4 - // - resources.ApplyResources(this.label4, "label4"); - this.label4.Name = "label4"; - // - // txtId - // - resources.ApplyResources(this.txtId, "txtId"); - this.txtId.Name = "txtId"; - // - // label3 - // - resources.ApplyResources(this.label3, "label3"); - this.label3.Name = "label3"; - // - // txtPort - // - resources.ApplyResources(this.txtPort, "txtPort"); - this.txtPort.Name = "txtPort"; - // - // label2 - // - resources.ApplyResources(this.label2, "label2"); - this.label2.Name = "label2"; + resources.ApplyResources(this.label1, "label1"); + this.label1.Name = "label1"; // // txtAddress // resources.ApplyResources(this.txtAddress, "txtAddress"); this.txtAddress.Name = "txtAddress"; // - // label1 + // label2 // - resources.ApplyResources(this.label1, "label1"); - this.label1.Name = "label1"; + resources.ApplyResources(this.label2, "label2"); + this.label2.Name = "label2"; // - // panel2 + // txtPort // - this.panel2.Controls.Add(this.btnClose); - this.panel2.Controls.Add(this.btnOK); - resources.ApplyResources(this.panel2, "panel2"); - this.panel2.Name = "panel2"; + resources.ApplyResources(this.txtPort, "txtPort"); + this.txtPort.Name = "txtPort"; + // + // txtRemarks + // + resources.ApplyResources(this.txtRemarks, "txtRemarks"); + this.txtRemarks.Name = "txtRemarks"; + // + // panBottom + // + this.panBottom.Controls.Add(this.btnClose); + this.panBottom.Controls.Add(this.btnOK); + resources.ApplyResources(this.panBottom, "panBottom"); + this.panBottom.Name = "panBottom"; // // btnOK // @@ -185,56 +373,16 @@ this.btnOK.UseVisualStyleBackColor = true; this.btnOK.Click += new System.EventHandler(this.btnOK_Click); // - // panel1 + // panTop // - resources.ApplyResources(this.panel1, "panel1"); - this.panel1.Name = "panel1"; + resources.ApplyResources(this.panTop, "panTop"); + this.panTop.Name = "panTop"; // - // menuServer + // panTran // - this.menuServer.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.MenuItem1}); - resources.ApplyResources(this.menuServer, "menuServer"); - this.menuServer.Name = "menuServer"; - // - // MenuItem1 - // - this.MenuItem1.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.MenuItemImportClient, - this.MenuItemImportServer, - this.toolStripSeparator1, - this.MenuItemImportClipboard}); - this.MenuItem1.Name = "MenuItem1"; - resources.ApplyResources(this.MenuItem1, "MenuItem1"); - // - // MenuItemImportClient - // - this.MenuItemImportClient.Name = "MenuItemImportClient"; - resources.ApplyResources(this.MenuItemImportClient, "MenuItemImportClient"); - this.MenuItemImportClient.Click += new System.EventHandler(this.MenuItemImportClient_Click); - // - // MenuItemImportServer - // - this.MenuItemImportServer.Name = "MenuItemImportServer"; - resources.ApplyResources(this.MenuItemImportServer, "MenuItemImportServer"); - this.MenuItemImportServer.Click += new System.EventHandler(this.MenuItemImportServer_Click); - // - // toolStripSeparator1 - // - this.toolStripSeparator1.Name = "toolStripSeparator1"; - resources.ApplyResources(this.toolStripSeparator1, "toolStripSeparator1"); - // - // MenuItemImportClipboard - // - this.MenuItemImportClipboard.Name = "MenuItemImportClipboard"; - resources.ApplyResources(this.MenuItemImportClipboard, "MenuItemImportClipboard"); - this.MenuItemImportClipboard.Click += new System.EventHandler(this.MenuItemImportClipboard_Click); - // - // panel3 - // - this.panel3.Controls.Add(this.transportControl); - resources.ApplyResources(this.panel3, "panel3"); - this.panel3.Name = "panel3"; + this.panTran.Controls.Add(this.transportControl); + resources.ApplyResources(this.panTran, "panTran"); + this.panTran.Name = "panTran"; // // transportControl // @@ -242,27 +390,46 @@ resources.ApplyResources(this.transportControl, "transportControl"); this.transportControl.Name = "transportControl"; // + // cmbCoreType + // + this.cmbCoreType.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cmbCoreType.FormattingEnabled = true; + resources.ApplyResources(this.cmbCoreType, "cmbCoreType"); + this.cmbCoreType.Name = "cmbCoreType"; + // + // labCoreType + // + resources.ApplyResources(this.labCoreType, "labCoreType"); + this.labCoreType.Name = "labCoreType"; + // // AddServerForm // resources.ApplyResources(this, "$this"); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.CancelButton = this.btnClose; this.Controls.Add(this.groupBox1); - this.Controls.Add(this.panel3); - this.Controls.Add(this.panel2); - this.Controls.Add(this.panel1); - this.Controls.Add(this.menuServer); + this.Controls.Add(this.panTran); + this.Controls.Add(this.panBottom); + this.Controls.Add(this.panTop); this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; this.Name = "AddServerForm"; this.Load += new System.EventHandler(this.AddServerForm_Load); this.groupBox1.ResumeLayout(false); - this.groupBox1.PerformLayout(); - this.panel2.ResumeLayout(false); - this.menuServer.ResumeLayout(false); - this.menuServer.PerformLayout(); - this.panel3.ResumeLayout(false); + this.panSocks.ResumeLayout(false); + this.panSocks.PerformLayout(); + this.panSs.ResumeLayout(false); + this.panSs.PerformLayout(); + this.panTrojan.ResumeLayout(false); + this.panTrojan.PerformLayout(); + this.panVless.ResumeLayout(false); + this.panVless.PerformLayout(); + this.panVmess.ResumeLayout(false); + this.panVmess.PerformLayout(); + this.panAddr.ResumeLayout(false); + this.panAddr.PerformLayout(); + this.panBottom.ResumeLayout(false); + this.panTran.ResumeLayout(false); this.ResumeLayout(false); - this.PerformLayout(); } @@ -284,17 +451,38 @@ private System.Windows.Forms.Label label1; private System.Windows.Forms.ComboBox cmbSecurity; private System.Windows.Forms.Label label8; - private System.Windows.Forms.Panel panel1; - private System.Windows.Forms.Panel panel2; - private System.Windows.Forms.Label label13; - private System.Windows.Forms.MenuStrip menuServer; - private System.Windows.Forms.ToolStripMenuItem MenuItem1; - private System.Windows.Forms.ToolStripMenuItem MenuItemImportClient; - private System.Windows.Forms.ToolStripMenuItem MenuItemImportServer; - private System.Windows.Forms.ToolStripSeparator toolStripSeparator1; - private System.Windows.Forms.ToolStripMenuItem MenuItemImportClipboard; + private System.Windows.Forms.Panel panTop; + private System.Windows.Forms.Panel panBottom; private System.Windows.Forms.Button btnGUID; - private System.Windows.Forms.Panel panel3; + private System.Windows.Forms.Panel panTran; private ServerTransportControl transportControl; + private System.Windows.Forms.Panel panAddr; + private System.Windows.Forms.Panel panVmess; + private System.Windows.Forms.Panel panVless; + private System.Windows.Forms.Label label7; + private System.Windows.Forms.ComboBox cmbFlow5; + private System.Windows.Forms.TextBox txtId5; + private System.Windows.Forms.Label label9; + private System.Windows.Forms.Label label10; + private System.Windows.Forms.Button btnGUID5; + private System.Windows.Forms.ComboBox cmbSecurity5; + private System.Windows.Forms.Label label11; + private System.Windows.Forms.Panel panTrojan; + private System.Windows.Forms.Label label12; + private System.Windows.Forms.ComboBox cmbFlow6; + private System.Windows.Forms.TextBox txtId6; + private System.Windows.Forms.Label label14; + private System.Windows.Forms.Panel panSs; + private System.Windows.Forms.TextBox txtId3; + private System.Windows.Forms.Label label15; + private System.Windows.Forms.ComboBox cmbSecurity3; + private System.Windows.Forms.Label label16; + private System.Windows.Forms.Panel panSocks; + private System.Windows.Forms.Label label17; + private System.Windows.Forms.TextBox txtSecurity4; + private System.Windows.Forms.Label label18; + private System.Windows.Forms.TextBox txtId4; + private System.Windows.Forms.ComboBox cmbCoreType; + private System.Windows.Forms.Label labCoreType; } } \ No newline at end of file diff --git a/v2rayN/v2rayN/Forms/AddServerForm.cs b/v2rayN/v2rayN/Forms/AddServerForm.cs index 44e58ee0..1f0c2722 100644 --- a/v2rayN/v2rayN/Forms/AddServerForm.cs +++ b/v2rayN/v2rayN/Forms/AddServerForm.cs @@ -1,4 +1,5 @@ using System; +using System.Collections.Generic; using System.Windows.Forms; using v2rayN.Handler; using v2rayN.Mode; @@ -7,7 +8,6 @@ namespace v2rayN.Forms { public partial class AddServerForm : BaseServerForm { - public AddServerForm() { InitializeComponent(); @@ -15,8 +15,46 @@ namespace v2rayN.Forms private void AddServerForm_Load(object sender, EventArgs e) { + this.Text = ((EConfigType)eConfigType).ToString(); + cmbSecurity.Items.AddRange(Global.vmessSecuritys.ToArray()); - //FillCoreType(cmbCoreType); + cmbSecurity3.Items.AddRange(config.GetShadowsocksSecuritys().ToArray()); + + cmbFlow5.Items.AddRange(Global.xtlsFlows.ToArray()); + cmbFlow6.Items.AddRange(Global.xtlsFlows.ToArray()); + + cmbCoreType.Items.AddRange(Global.coreTypes.ToArray()); + cmbCoreType.Items.Add(string.Empty); + + switch (eConfigType) + { + case EConfigType.Vmess: + panVmess.Dock = DockStyle.Fill; + panVmess.Visible = true; + break; + case EConfigType.Shadowsocks: + panSs.Dock = DockStyle.Fill; + panSs.Visible = true; + panTran.Visible = false; + this.Height = this.Height - panTran.Height; + break; + case EConfigType.Socks: + panSocks.Dock = DockStyle.Fill; + panSocks.Visible = true; + panTran.Visible = false; + this.Height = this.Height - panTran.Height; + break; + case EConfigType.VLESS: + panVless.Dock = DockStyle.Fill; + panVless.Visible = true; + transportControl.AllowXtls = true; + break; + case EConfigType.Trojan: + panTrojan.Dock = DockStyle.Fill; + panTrojan.Visible = true; + transportControl.AllowXtls = true; + break; + } if (vmessItem != null) { @@ -35,41 +73,122 @@ namespace v2rayN.Forms /// private void BindingServer() { + txtRemarks.Text = vmessItem.remarks; txtAddress.Text = vmessItem.address; txtPort.Text = vmessItem.port.ToString(); - txtId.Text = vmessItem.id; - txtAlterId.Text = vmessItem.alterId.ToString(); - cmbSecurity.Text = vmessItem.security; - txtRemarks.Text = vmessItem.remarks; - // BindingCoreType(cmbCoreType, vmessItem); + + switch (eConfigType) + { + case EConfigType.Vmess: + txtId.Text = vmessItem.id; + txtAlterId.Text = vmessItem.alterId.ToString(); + cmbSecurity.Text = vmessItem.security; + break; + case EConfigType.Shadowsocks: + txtId3.Text = vmessItem.id; + cmbSecurity3.Text = vmessItem.security; + break; + case EConfigType.Socks: + txtId4.Text = vmessItem.id; + txtSecurity4.Text = vmessItem.security; + break; + case EConfigType.VLESS: + txtId5.Text = vmessItem.id; + cmbFlow5.Text = vmessItem.flow; + cmbSecurity5.Text = vmessItem.security; + break; + case EConfigType.Trojan: + txtId6.Text = vmessItem.id; + cmbFlow6.Text = vmessItem.flow; + break; + } + + if (vmessItem.coreType == null) + { + cmbCoreType.Text = string.Empty; + } + else + { + cmbCoreType.Text = vmessItem.coreType.ToString(); + } transportControl.BindingServer(vmessItem); } - /// /// 清除设置 /// private void ClearServer() { + txtRemarks.Text = ""; txtAddress.Text = ""; txtPort.Text = ""; - txtId.Text = ""; - txtAlterId.Text = "0"; - cmbSecurity.Text = Global.DefaultSecurity; - txtRemarks.Text = ""; + + switch (eConfigType) + { + case EConfigType.Vmess: + txtId.Text = ""; + txtAlterId.Text = "0"; + cmbSecurity.Text = Global.DefaultSecurity; + break; + case EConfigType.Shadowsocks: + txtId3.Text = ""; + cmbSecurity3.Text = Global.DefaultSecurity; + break; + case EConfigType.Socks: + txtId4.Text = ""; + txtSecurity4.Text = ""; + break; + case EConfigType.VLESS: + txtId5.Text = ""; + cmbFlow5.Text = ""; + cmbSecurity5.Text = Global.None; + break; + case EConfigType.Trojan: + txtId6.Text = ""; + cmbFlow6.Text = ""; + break; + } transportControl.ClearServer(vmessItem); } private void btnOK_Click(object sender, EventArgs e) { + string remarks = txtRemarks.Text; string address = txtAddress.Text; string port = txtPort.Text; - string id = txtId.Text; - string alterId = txtAlterId.Text; - string security = cmbSecurity.Text; - string remarks = txtRemarks.Text; + + string id = string.Empty; + string alterId = string.Empty; + string security = string.Empty; + string flow = string.Empty; + + switch (eConfigType) + { + case EConfigType.Vmess: + id = txtId.Text; + alterId = txtAlterId.Text; + security = cmbSecurity.Text; + break; + case EConfigType.Shadowsocks: + id = txtId3.Text; + security = cmbSecurity3.Text; + break; + case EConfigType.Socks: + id = txtId4.Text; + security = txtSecurity4.Text; + break; + case EConfigType.VLESS: + id = txtId5.Text; + flow = cmbFlow5.Text; + security = cmbSecurity5.Text; + break; + case EConfigType.Trojan: + id = txtId6.Text; + flow = cmbFlow6.Text; + break; + } if (Utils.IsNullOrEmpty(address)) { @@ -81,23 +200,69 @@ namespace v2rayN.Forms UI.Show(UIRes.I18N("FillCorrectServerPort")); return; } - if (Utils.IsNullOrEmpty(id)) + if (eConfigType == EConfigType.Shadowsocks) { - UI.Show(UIRes.I18N("FillUUID")); - return; + if (Utils.IsNullOrEmpty(id)) + { + UI.Show(UIRes.I18N("FillPassword")); + return; + } + if (Utils.IsNullOrEmpty(security)) + { + UI.Show(UIRes.I18N("PleaseSelectEncryption")); + return; + } + } + if (eConfigType != EConfigType.Socks) + { + if (Utils.IsNullOrEmpty(id)) + { + UI.Show(UIRes.I18N("FillUUID")); + return; + } } transportControl.EndBindingServer(); + vmessItem.remarks = remarks; vmessItem.address = address; vmessItem.port = Utils.ToInt(port); vmessItem.id = id; vmessItem.alterId = Utils.ToInt(alterId); vmessItem.security = security; - vmessItem.remarks = remarks; - //vmessItem.coreType = GetCoreType(cmbCoreType); - if (ConfigHandler.AddServer(ref config, vmessItem) == 0) + if (Utils.IsNullOrEmpty(cmbCoreType.Text)) + { + vmessItem.coreType = null; + } + else + { + vmessItem.coreType = (ECoreType)Enum.Parse(typeof(ECoreType), cmbCoreType.Text); + } + + int ret = -1; + switch (eConfigType) + { + case EConfigType.Vmess: + ret = ConfigHandler.AddServer(ref config, vmessItem); + break; + case EConfigType.Shadowsocks: + ret = ConfigHandler.AddShadowsocksServer(ref config, vmessItem); + break; + case EConfigType.Socks: + ret = ConfigHandler.AddSocksServer(ref config, vmessItem); + break; + case EConfigType.VLESS: + vmessItem.flow = flow; + ret = ConfigHandler.AddVlessServer(ref config, vmessItem); + break; + case EConfigType.Trojan: + vmessItem.flow = flow; + ret = ConfigHandler.AddTrojanServer(ref config, vmessItem); + break; + } + + if (ret == 0) { this.DialogResult = DialogResult.OK; } @@ -105,110 +270,18 @@ namespace v2rayN.Forms { UI.ShowWarning(UIRes.I18N("OperationFailed")); } + } private void btnGUID_Click(object sender, EventArgs e) { - txtId.Text = Utils.GetGUID(); + txtId.Text = + txtId5.Text = Utils.GetGUID(); } private void btnClose_Click(object sender, EventArgs e) { this.DialogResult = DialogResult.Cancel; } - - #region 导入客户端/服务端配置 - - /// - /// 导入客户端 - /// - /// - /// - private void MenuItemImportClient_Click(object sender, EventArgs e) - { - MenuItemImport(1); - } - - /// - /// 导入服务端 - /// - /// - /// - private void MenuItemImportServer_Click(object sender, EventArgs e) - { - MenuItemImport(2); - } - - private void MenuItemImport(int type) - { - ClearServer(); - - OpenFileDialog fileDialog = new OpenFileDialog - { - Multiselect = false, - Filter = "Config|*.json|All|*.*" - }; - if (fileDialog.ShowDialog() != DialogResult.OK) - { - return; - } - string fileName = fileDialog.FileName; - if (Utils.IsNullOrEmpty(fileName)) - { - return; - } - string msg; - VmessItem vmessItemTemp; - if (type.Equals(1)) - { - vmessItemTemp = V2rayConfigHandler.ImportFromClientConfig(fileName, out msg); - } - else - { - vmessItemTemp = V2rayConfigHandler.ImportFromServerConfig(fileName, out msg); - } - if (vmessItemTemp == null) - { - UI.ShowWarning(msg); - return; - } - vmessItem = vmessItemTemp; - - txtAddress.Text = vmessItem.address; - txtPort.Text = vmessItem.port.ToString(); - txtId.Text = vmessItem.id; - txtAlterId.Text = vmessItem.alterId.ToString(); - txtRemarks.Text = vmessItem.remarks; - - transportControl.BindingServer(vmessItem); - } - - /// - /// 从剪贴板导入URL - /// - /// - /// - private void MenuItemImportClipboard_Click(object sender, EventArgs e) - { - ClearServer(); - - VmessItem vmessItemTemp = ShareHandler.ImportFromClipboardConfig(Utils.GetClipboardData(), out string msg); - if (vmessItemTemp == null) - { - UI.ShowWarning(msg); - return; - } - vmessItem = vmessItemTemp; - - txtAddress.Text = vmessItem.address; - txtPort.Text = vmessItem.port.ToString(); - txtId.Text = vmessItem.id; - txtAlterId.Text = vmessItem.alterId.ToString(); - txtRemarks.Text = vmessItem.remarks; - - transportControl.BindingServer(vmessItem); - } - #endregion - } } diff --git a/v2rayN/v2rayN/Forms/AddServerForm.resx b/v2rayN/v2rayN/Forms/AddServerForm.resx index 1e251a8f..31a88ee9 100644 --- a/v2rayN/v2rayN/Forms/AddServerForm.resx +++ b/v2rayN/v2rayN/Forms/AddServerForm.resx @@ -138,259 +138,632 @@ System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - panel2 + panBottom 0 - - 411, 83 + + True - - 75, 23 + + + NoControl - - 23 + + 11, 11 - - &Generate + + 89, 12 - - btnGUID + + 25 - - System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + User(Optional) - - groupBox1 + + label17 - + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + panSocks + + 0 - - True + + 126, 7 - - 411, 175 + + 278, 21 - - 113, 12 + + 2 - - 22 + + txtSecurity4 - - * Fill in manually + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - label13 + + panSocks - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBox1 - - + 1 - + True - - 411, 147 + + NoControl - - 119, 12 + + 11, 42 - - 14 + + 113, 12 - - *Recommended (auto) + + 23 - - label8 + + Password(Optional) - + + label18 + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - groupBox1 + + panSocks - + 2 - - 195, 143 + + 126, 38 - - 210, 20 + + 278, 21 - + + 3 + + + txtId4 + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + panSocks + + + 3 + + + 303, 163 + + + 82, 39 + + + 31 + + + False + + + panSocks + + + System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBox1 + + + 0 + + + 126, 7 + + + 278, 21 + + + 2 + + + txtId3 + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + panSs + + + 0 + + + True + + + NoControl + + + 11, 9 + + + 53, 12 + + 4 - - cmbSecurity + + Password - + + label15 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + panSs + + + 1 + + + 126, 39 + + + 278, 20 + + + 3 + + + cmbSecurity3 + + System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - groupBox1 + + panSs - - 3 - - - 127, 171 - - - 278, 21 - - - 5 - - - txtRemarks - - - System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBox1 - - - 4 - - - True - - - 12, 175 - - - 95, 12 - - - 10 - - - Alias (remarks) - - - label6 - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBox1 - - - 5 - - - True - - - 12, 147 - - - 173, 12 - - - 8 - - - Encryption method (security) - - - label5 - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBox1 - - - 6 - - - 127, 114 - - - 143, 21 - - - 3 - - - txtAlterId - - - System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBox1 - - - 7 - - - True - - - 12, 118 - - - 47, 12 - - - 6 - - - AlterId - - - label4 - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBox1 - - - 8 - - - 127, 85 - - - 278, 21 - - + 2 - - txtId + + True - - System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + NoControl - + + 11, 40 + + + 65, 12 + + + 8 + + + Encryption + + + label16 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + panSs + + + 3 + + + 142, 163 + + + 82, 39 + + + 30 + + + False + + + panSs + + + System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + groupBox1 - - 9 + + 1 + + + True + + + NoControl + + + 12, 9 + + + 53, 12 + + + 4 + + + Password + + + label12 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + panTrojan + + + 0 + + + 127, 39 + + + 211, 20 + + + 3 + + + cmbFlow6 + + + System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + panTrojan + + + 1 + + + 127, 7 + + + 265, 21 + + + 2 + + + txtId6 + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + panTrojan + + + 2 + + + True + + + NoControl + + + 12, 43 + + + 29, 12 + + + 27 + + + Flow + + + label14 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + panTrojan + + + 3 + + + 534, 163 + + + 82, 39 + + + 29 + + + False + + + panTrojan + + + System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBox1 + + + 2 + + + True + + + NoControl + + + 11, 11 + + + 53, 12 + + + 4 + + + UUID(id) + + + label7 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + panVless + + + 0 + + + 126, 39 + + + 211, 20 + + + 3 + + + cmbFlow5 + + + System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + panVless + + + 1 + + + 126, 7 + + + 278, 21 + + + 2 + + + txtId5 + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + panVless + + + 2 + + + True + + + NoControl + + + 11, 43 + + + 29, 12 + + + 25 + + + Flow + + + label9 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + panVless + + + 3 + + + True + + + NoControl + + + 11, 74 + + + 65, 12 + + + 8 + + + Encryption + + + label10 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + panVless + + + 4 + + + NoControl + + + 410, 7 + + + 75, 23 + + + 23 + + + Generate + + + btnGUID5 + + + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + panVless + + + 5 + + + none + + + 126, 70 + + + 211, 20 + + + 4 + + + cmbSecurity5 + + + System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + panVless + + + 6 + + + True + + + NoControl + + + 352, 73 + + + 119, 12 + + + 14 + + + *Recommended (none) + + + label11 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + panVless + + + 7 + + + 396, 166 + + + 92, 36 + + + 27 + + + False + + + panVless + + + System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBox1 + + + 3 True - 12, 89 + 11, 11 53, 12 @@ -408,85 +781,286 @@ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - groupBox1 + panVmess - 10 - - - 127, 56 - - - 143, 21 - - - 1 - - - txtPort - - - System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBox1 - - - 11 - - - True - - - 12, 60 - - - 29, 12 - - - 2 - - - Port - - - label2 - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBox1 - - - 12 - - - 127, 27 - - - 359, 21 - - 0 - - txtAddress + + 126, 7 - + + 278, 21 + + + 2 + + + txtId + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + + panVmess + + + 1 + + + 410, 5 + + + 75, 23 + + + 23 + + + &Generate + + + btnGUID + + + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + panVmess + + + 2 + + + True + + + 11, 40 + + + 47, 12 + + + 6 + + + AlterId + + + label4 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + panVmess + + + 3 + + + True + + + 410, 69 + + + 119, 12 + + + 14 + + + *Recommended (auto) + + + label8 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + panVmess + + + 4 + + + 126, 36 + + + 143, 21 + + + 3 + + + txtAlterId + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + panVmess + + + 5 + + + 194, 65 + + + 210, 20 + + + 4 + + + cmbSecurity + + + System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + panVmess + + + 6 + + + True + + + 11, 69 + + + 173, 12 + + + 8 + + + Encryption method (security) + + + label5 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + panVmess + + + 7 + + + 16, 163 + + + 82, 39 + + + 25 + + + False + + + panVmess + + + System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + groupBox1 - - 13 + + 4 + + + 625, 8 + + + 89, 20 + + + 38 + + + cmbCoreType + + + System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + panAddr + + + 0 + + + True + + + NoControl + + + 553, 12 + + + 59, 12 + + + 39 + + + Core Type + + + labCoreType + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + panAddr + + + 1 + + + True + + + 11, 12 + + + 95, 12 + + + 10 + + + Alias (remarks) + + + label6 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + panAddr + + + 2 True - 12, 31 + 11, 43 47, 12 @@ -504,20 +1078,133 @@ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - groupBox1 + panAddr - 14 + 3 + + + 126, 39 + + + 359, 21 + + + 1 + + + txtAddress + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + panAddr + + + 4 + + + True + + + 11, 72 + + + 29, 12 + + + 2 + + + Port + + + label2 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + panAddr + + + 5 + + + 126, 68 + + + 143, 21 + + + 2 + + + txtPort + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + panAddr + + + 6 + + + 126, 8 + + + 278, 21 + + + 0 + + + txtRemarks + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + panAddr + + + 7 + + + Top + + + 3, 17 + + + 723, 100 + + + 24 + + + panAddr + + + System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBox1 + + + 5 - Fill - 0, 35 + 0, 10 - 729, 216 + 729, 221 3 @@ -556,109 +1243,58 @@ System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - panel2 + panBottom 1 - + Bottom - - 0, 481 + + 0, 461 - + 729, 60 - + 7 - - panel2 + + panBottom - + System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + $this - + 2 - + Top - - 0, 25 - - - 729, 10 - - - 6 - - - panel1 - - - System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - $this - - - 3 - - - 17, 17 - - - 237, 22 - - - Import client configuration - - - 237, 22 - - - Import server configuration - - - 234, 6 - - - 237, 22 - - - Import URL from clipboard - - - 162, 21 - - - Import configuration file - - + 0, 0 - - 729, 25 + + 729, 10 - - 8 + + 6 - - menuServer + + panTop - - System.Windows.Forms.MenuStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + $this - - 4 + + 3 Fill @@ -679,33 +1315,33 @@ v2rayN.Forms.ServerTransportControl, v2rayN, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - panel3 + panTran 0 - + Bottom - - 0, 251 + + 0, 231 - + 729, 230 - + 9 - - panel3 + + panTran - + System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + $this - + 1 @@ -718,41 +1354,11 @@ 6, 12 - 729, 541 + 729, 521 Edit or add a [VMess] server - - MenuItem1 - - - System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - MenuItemImportClient - - - System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - MenuItemImportServer - - - System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - toolStripSeparator1 - - - System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - MenuItemImportClipboard - - - System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - AddServerForm diff --git a/v2rayN/v2rayN/Forms/AddServerForm.zh-Hans.resx b/v2rayN/v2rayN/Forms/AddServerForm.zh-Hans.resx index 47b4d4cd..b9c81218 100644 --- a/v2rayN/v2rayN/Forms/AddServerForm.zh-Hans.resx +++ b/v2rayN/v2rayN/Forms/AddServerForm.zh-Hans.resx @@ -120,93 +120,109 @@ 取消(&C) + + 服务器 + + + + None + + + + 270, 156 + + + 115, 61 + + + 77, 12 + + + 用户名(可选) + + + 65, 12 + + + 密码(可选) + + + None + + + 142, 147 + + + 137, 78 + + + 89, 12 + + + 密码(password) + + + 125, 12 + + + 加密方式(encryption) + + + 89, 12 + + + 密码(password) + + + 65, 12 + + + 流控(flow) + + + 110, 52 + + + 65, 12 + + + 用户ID(id) + + + 65, 12 + + + 流控(flow) + + + 101, 12 + + + 加密(encryption) + + + 生成 + + + 71, 12 + + + *非空(none) + + + 65, 12 + + + 用户ID(id) + 生成(&G) - - *手填,方便识别管理 - - - - 149, 12 - - + 95, 12 - - 167, 12 - - - 180, 7 - - - 350, 36 - - - 143, 12 - - - 149, 12 - - - 127, 168 - - - 127, 32 - - - 211, 20 - - - 9, 36 - - - 107, 12 - - - 9, 168 - - - 65, 12 - - - 161, 12 - - - 9, 237 - - - 107, 12 - - - 127, 237 - - - 282, 71 - - - 197, 12 - - - 127, 102 - - - 334, 51 - - - 9, 71 - - - 89, 12 - - - 9, 102 - - - 89, 12 - - - 127, 67 + + 额外ID(alterId) 113, 12 @@ -215,40 +231,22 @@ *随便选,建议(auto) - 127, 143 + 126, 65 211, 20 - - 83, 12 - - - 别名(remarks) - 113, 12 加密方式(security) - - 95, 12 + + 83, 12 - - 额外ID(alterId) - - - 65, 12 - - - 用户ID(id) - - - 65, 12 - - - 端口(port) + + 别名(remarks) 83, 12 @@ -256,40 +254,22 @@ 地址(address) - - 服务器 + + 65, 12 + + + 端口(port) 确定(&O) - - 171, 22 - - - 导入客户端配置 - - - 171, 22 - - - 导入服务端配置 - - - 168, 6 - - - 171, 22 - - - 从剪贴板导入URL - - - 92, 21 - - - 导入配置文件 - 编辑或添加[VMess]服务器 + + 生成 + + + Core类型 + \ No newline at end of file diff --git a/v2rayN/v2rayN/Forms/BaseServerForm.cs b/v2rayN/v2rayN/Forms/BaseServerForm.cs index e68198fe..9618c480 100644 --- a/v2rayN/v2rayN/Forms/BaseServerForm.cs +++ b/v2rayN/v2rayN/Forms/BaseServerForm.cs @@ -8,11 +8,12 @@ namespace v2rayN.Forms { public VmessItem vmessItem = null; public string groupId; + public EConfigType eConfigType; public BaseServerForm() { InitializeComponent(); - } - + } + } } diff --git a/v2rayN/v2rayN/Forms/MainForm.cs b/v2rayN/v2rayN/Forms/MainForm.cs index a362787a..07ff609d 100644 --- a/v2rayN/v2rayN/Forms/MainForm.cs +++ b/v2rayN/v2rayN/Forms/MainForm.cs @@ -496,7 +496,7 @@ namespace v2rayN.Forms groupId = string.Empty; //groupId = tabGroup.TabPages[tabGroup.SelectedIndex].Name; groupId = tabGroup.SelectedTab.Name; - + RefreshServers(); lvServers.Focus(); @@ -579,29 +579,17 @@ namespace v2rayN.Forms private void ShowServerForm(int configType, int index) { BaseServerForm fm; - switch (configType) + if (configType == (int)EConfigType.Custom) { - case (int)EConfigType.Vmess: - fm = new AddServerForm(); - break; - case (int)EConfigType.Shadowsocks: - fm = new AddServer3Form(); - break; - case (int)EConfigType.Socks: - fm = new AddServer4Form(); - break; - case (int)EConfigType.VLESS: - fm = new AddServer5Form(); - break; - case (int)EConfigType.Trojan: - fm = new AddServer6Form(); - break; - default: - fm = new AddServer2Form(); - break; + fm = new AddServer2Form(); } + else + { + fm = new AddServerForm(); + } fm.vmessItem = index >= 0 ? lstVmess[index] : null; fm.groupId = groupId; + fm.eConfigType = (EConfigType)configType; if (fm.ShowDialog() == DialogResult.OK) { RefreshServers(); @@ -714,7 +702,7 @@ namespace v2rayN.Forms { return; } - if (ConfigHandler.CopyServer(ref config, lstVmess[index]) == 0) + if (ConfigHandler.CopyServer(ref config, lstSelecteds) == 0) { RefreshServers(); } diff --git a/v2rayN/v2rayN/Forms/OptionSettingForm.Designer.cs b/v2rayN/v2rayN/Forms/OptionSettingForm.Designer.cs index 00c105a5..cba25aca 100644 --- a/v2rayN/v2rayN/Forms/OptionSettingForm.Designer.cs +++ b/v2rayN/v2rayN/Forms/OptionSettingForm.Designer.cs @@ -75,14 +75,25 @@ this.txtautoUpdateInterval = new System.Windows.Forms.TextBox(); this.label15 = new System.Windows.Forms.Label(); this.chkIgnoreGeoUpdateCore = new System.Windows.Forms.CheckBox(); - this.cmbCoreType = new System.Windows.Forms.ComboBox(); - this.label4 = new System.Windows.Forms.Label(); this.chkKeepOlderDedupl = new System.Windows.Forms.CheckBox(); this.cbFreshrate = new System.Windows.Forms.ComboBox(); this.lbFreshrate = new System.Windows.Forms.Label(); this.chkEnableStatistics = new System.Windows.Forms.CheckBox(); this.chkAllowLANConn = new System.Windows.Forms.CheckBox(); this.chkAutoRun = new System.Windows.Forms.CheckBox(); + this.tabPageCoreType = new System.Windows.Forms.TabPage(); + this.cmbCoreType6 = new System.Windows.Forms.ComboBox(); + this.labCoreType6 = new System.Windows.Forms.Label(); + this.cmbCoreType5 = new System.Windows.Forms.ComboBox(); + this.labCoreType5 = new System.Windows.Forms.Label(); + this.cmbCoreType4 = new System.Windows.Forms.ComboBox(); + this.labCoreType4 = new System.Windows.Forms.Label(); + this.cmbCoreType3 = new System.Windows.Forms.ComboBox(); + this.labCoreType3 = new System.Windows.Forms.Label(); + this.cmbCoreType2 = new System.Windows.Forms.ComboBox(); + this.labCoreType2 = new System.Windows.Forms.Label(); + this.cmbCoreType1 = new System.Windows.Forms.ComboBox(); + this.labCoreType1 = new System.Windows.Forms.Label(); this.tabPage3 = new System.Windows.Forms.TabPage(); this.groupBox2 = new System.Windows.Forms.GroupBox(); this.label13 = new System.Windows.Forms.Label(); @@ -97,6 +108,7 @@ this.tabPage2.SuspendLayout(); this.tabPage6.SuspendLayout(); this.tabPage7.SuspendLayout(); + this.tabPageCoreType.SuspendLayout(); this.tabPage3.SuspendLayout(); this.groupBox2.SuspendLayout(); this.panel2.SuspendLayout(); @@ -116,6 +128,7 @@ this.tabControl1.Controls.Add(this.tabPage2); this.tabControl1.Controls.Add(this.tabPage6); this.tabControl1.Controls.Add(this.tabPage7); + this.tabControl1.Controls.Add(this.tabPageCoreType); this.tabControl1.Controls.Add(this.tabPage3); resources.ApplyResources(this.tabControl1, "tabControl1"); this.tabControl1.Name = "tabControl1"; @@ -382,8 +395,6 @@ this.tabPage7.Controls.Add(this.txtautoUpdateInterval); this.tabPage7.Controls.Add(this.label15); this.tabPage7.Controls.Add(this.chkIgnoreGeoUpdateCore); - this.tabPage7.Controls.Add(this.cmbCoreType); - this.tabPage7.Controls.Add(this.label4); this.tabPage7.Controls.Add(this.chkKeepOlderDedupl); this.tabPage7.Controls.Add(this.cbFreshrate); this.tabPage7.Controls.Add(this.lbFreshrate); @@ -429,18 +440,6 @@ this.chkIgnoreGeoUpdateCore.Name = "chkIgnoreGeoUpdateCore"; this.chkIgnoreGeoUpdateCore.UseVisualStyleBackColor = true; // - // cmbCoreType - // - this.cmbCoreType.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; - this.cmbCoreType.FormattingEnabled = true; - resources.ApplyResources(this.cmbCoreType, "cmbCoreType"); - this.cmbCoreType.Name = "cmbCoreType"; - // - // label4 - // - resources.ApplyResources(this.label4, "label4"); - this.label4.Name = "label4"; - // // chkKeepOlderDedupl // resources.ApplyResources(this.chkKeepOlderDedupl, "chkKeepOlderDedupl"); @@ -477,6 +476,96 @@ this.chkAutoRun.Name = "chkAutoRun"; this.chkAutoRun.UseVisualStyleBackColor = true; // + // tabPageCoreType + // + this.tabPageCoreType.Controls.Add(this.cmbCoreType6); + this.tabPageCoreType.Controls.Add(this.labCoreType6); + this.tabPageCoreType.Controls.Add(this.cmbCoreType5); + this.tabPageCoreType.Controls.Add(this.labCoreType5); + this.tabPageCoreType.Controls.Add(this.cmbCoreType4); + this.tabPageCoreType.Controls.Add(this.labCoreType4); + this.tabPageCoreType.Controls.Add(this.cmbCoreType3); + this.tabPageCoreType.Controls.Add(this.labCoreType3); + this.tabPageCoreType.Controls.Add(this.cmbCoreType2); + this.tabPageCoreType.Controls.Add(this.labCoreType2); + this.tabPageCoreType.Controls.Add(this.cmbCoreType1); + this.tabPageCoreType.Controls.Add(this.labCoreType1); + resources.ApplyResources(this.tabPageCoreType, "tabPageCoreType"); + this.tabPageCoreType.Name = "tabPageCoreType"; + this.tabPageCoreType.UseVisualStyleBackColor = true; + // + // cmbCoreType6 + // + this.cmbCoreType6.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cmbCoreType6.FormattingEnabled = true; + resources.ApplyResources(this.cmbCoreType6, "cmbCoreType6"); + this.cmbCoreType6.Name = "cmbCoreType6"; + // + // labCoreType6 + // + resources.ApplyResources(this.labCoreType6, "labCoreType6"); + this.labCoreType6.Name = "labCoreType6"; + // + // cmbCoreType5 + // + this.cmbCoreType5.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cmbCoreType5.FormattingEnabled = true; + resources.ApplyResources(this.cmbCoreType5, "cmbCoreType5"); + this.cmbCoreType5.Name = "cmbCoreType5"; + // + // labCoreType5 + // + resources.ApplyResources(this.labCoreType5, "labCoreType5"); + this.labCoreType5.Name = "labCoreType5"; + // + // cmbCoreType4 + // + this.cmbCoreType4.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cmbCoreType4.FormattingEnabled = true; + resources.ApplyResources(this.cmbCoreType4, "cmbCoreType4"); + this.cmbCoreType4.Name = "cmbCoreType4"; + // + // labCoreType4 + // + resources.ApplyResources(this.labCoreType4, "labCoreType4"); + this.labCoreType4.Name = "labCoreType4"; + // + // cmbCoreType3 + // + this.cmbCoreType3.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cmbCoreType3.FormattingEnabled = true; + resources.ApplyResources(this.cmbCoreType3, "cmbCoreType3"); + this.cmbCoreType3.Name = "cmbCoreType3"; + // + // labCoreType3 + // + resources.ApplyResources(this.labCoreType3, "labCoreType3"); + this.labCoreType3.Name = "labCoreType3"; + // + // cmbCoreType2 + // + this.cmbCoreType2.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cmbCoreType2.FormattingEnabled = true; + resources.ApplyResources(this.cmbCoreType2, "cmbCoreType2"); + this.cmbCoreType2.Name = "cmbCoreType2"; + // + // labCoreType2 + // + resources.ApplyResources(this.labCoreType2, "labCoreType2"); + this.labCoreType2.Name = "labCoreType2"; + // + // cmbCoreType1 + // + this.cmbCoreType1.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cmbCoreType1.FormattingEnabled = true; + resources.ApplyResources(this.cmbCoreType1, "cmbCoreType1"); + this.cmbCoreType1.Name = "cmbCoreType1"; + // + // labCoreType1 + // + resources.ApplyResources(this.labCoreType1, "labCoreType1"); + this.labCoreType1.Name = "labCoreType1"; + // // tabPage3 // this.tabPage3.Controls.Add(this.groupBox2); @@ -548,6 +637,8 @@ this.tabPage6.PerformLayout(); this.tabPage7.ResumeLayout(false); this.tabPage7.PerformLayout(); + this.tabPageCoreType.ResumeLayout(false); + this.tabPageCoreType.PerformLayout(); this.tabPage3.ResumeLayout(false); this.groupBox2.ResumeLayout(false); this.groupBox2.PerformLayout(); @@ -607,8 +698,6 @@ private System.Windows.Forms.LinkLabel linkDnsObjectDoc; private System.Windows.Forms.TextBox txtremoteDNS; private System.Windows.Forms.Label label14; - private System.Windows.Forms.ComboBox cmbCoreType; - private System.Windows.Forms.Label label4; private System.Windows.Forms.CheckBox chkIgnoreGeoUpdateCore; private System.Windows.Forms.TabPage tabPage3; private System.Windows.Forms.TextBox txtsystemProxyExceptions; @@ -620,5 +709,18 @@ private System.Windows.Forms.Button btnSetLoopback; private System.Windows.Forms.CheckBox chkEnableAutoAdjustMainLvColWidth; private System.Windows.Forms.CheckBox chkEnableSecurityProtocolTls13; + private System.Windows.Forms.TabPage tabPageCoreType; + private System.Windows.Forms.ComboBox cmbCoreType1; + private System.Windows.Forms.Label labCoreType1; + private System.Windows.Forms.ComboBox cmbCoreType6; + private System.Windows.Forms.Label labCoreType6; + private System.Windows.Forms.ComboBox cmbCoreType5; + private System.Windows.Forms.Label labCoreType5; + private System.Windows.Forms.ComboBox cmbCoreType4; + private System.Windows.Forms.Label labCoreType4; + private System.Windows.Forms.ComboBox cmbCoreType3; + private System.Windows.Forms.Label labCoreType3; + private System.Windows.Forms.ComboBox cmbCoreType2; + private System.Windows.Forms.Label labCoreType2; } } \ No newline at end of file diff --git a/v2rayN/v2rayN/Forms/OptionSettingForm.cs b/v2rayN/v2rayN/Forms/OptionSettingForm.cs index e3673fde..33a5c1b8 100644 --- a/v2rayN/v2rayN/Forms/OptionSettingForm.cs +++ b/v2rayN/v2rayN/Forms/OptionSettingForm.cs @@ -1,4 +1,5 @@ using System; +using System.Collections.Generic; using System.Diagnostics; using System.Windows.Forms; using v2rayN.Base; @@ -16,13 +17,13 @@ namespace v2rayN.Forms private void OptionSettingForm_Load(object sender, EventArgs e) { - cmbCoreType.Items.AddRange(Global.coreTypes.ToArray()); - InitBase(); InitKCP(); InitGUI(); + + InitCoreType(); } /// @@ -123,11 +124,40 @@ namespace v2rayN.Forms } chkIgnoreGeoUpdateCore.Checked = config.ignoreGeoUpdateCore; - cmbCoreType.SelectedIndex = (int)config.coreType; txtautoUpdateInterval.Text = config.autoUpdateInterval.ToString(); chkEnableAutoAdjustMainLvColWidth.Checked = config.uiItem.enableAutoAdjustMainLvColWidth; chkEnableSecurityProtocolTls13.Checked = config.enableSecurityProtocolTls13; } + + private void InitCoreType() + { + if (config.coreTypeItem == null) + { + config.coreTypeItem = new List(); + } + + foreach (EConfigType it in Enum.GetValues(typeof(EConfigType))) + { + if (config.coreTypeItem.FindIndex(t => t.configType == it) >= 0) + { + continue; + } + + config.coreTypeItem.Add(new CoreTypeItem() + { + configType = it, + coreType = ECoreType.v2fly + }); + } + for (int k = 1; k <= config.coreTypeItem.Count; k++) + { + var item = config.coreTypeItem[k - 1]; + ((ComboBox)tabPageCoreType.Controls[$"cmbCoreType{k}"]).Items.AddRange(Global.coreTypes.ToArray()); + tabPageCoreType.Controls[$"labCoreType{k}"].Text = item.configType.ToString(); + tabPageCoreType.Controls[$"cmbCoreType{k}"].Text = item.coreType.ToString(); + } + } + private void btnOK_Click(object sender, EventArgs e) { if (SaveBase() != 0) @@ -146,6 +176,11 @@ namespace v2rayN.Forms return; } + if (SaveCoreType() != 0) + { + return; + } + if (ConfigHandler.SaveConfig(ref config) == 0) { this.DialogResult = DialogResult.OK; @@ -308,7 +343,6 @@ namespace v2rayN.Forms config.keepOlderDedupl = chkKeepOlderDedupl.Checked; config.ignoreGeoUpdateCore = chkIgnoreGeoUpdateCore.Checked; - config.coreType = (ECoreType)cmbCoreType.SelectedIndex; config.autoUpdateInterval = Utils.ToInt(txtautoUpdateInterval.Text); config.uiItem.enableAutoAdjustMainLvColWidth = chkEnableAutoAdjustMainLvColWidth.Checked; config.enableSecurityProtocolTls13 = chkEnableSecurityProtocolTls13.Checked; @@ -316,6 +350,17 @@ namespace v2rayN.Forms return 0; } + private int SaveCoreType() + { + for (int k = 1; k <= config.coreTypeItem.Count; k++) + { + var item = config.coreTypeItem[k - 1]; + item.coreType = (ECoreType)Enum.Parse(typeof(ECoreType), tabPageCoreType.Controls[$"cmbCoreType{k}"].Text); + } + + return 0; + } + private void btnClose_Click(object sender, EventArgs e) { this.DialogResult = DialogResult.Cancel; diff --git a/v2rayN/v2rayN/Forms/OptionSettingForm.resx b/v2rayN/v2rayN/Forms/OptionSettingForm.resx index 26bac3d1..ae888117 100644 --- a/v2rayN/v2rayN/Forms/OptionSettingForm.resx +++ b/v2rayN/v2rayN/Forms/OptionSettingForm.resx @@ -637,7 +637,7 @@ 3, 3 - 648, 421 + 722, 421 6 @@ -661,7 +661,7 @@ 3, 3, 3, 3 - 654, 427 + 728, 427 0 @@ -775,7 +775,7 @@ 4, 22 - 654, 427 + 728, 427 4 @@ -1117,7 +1117,7 @@ 3, 3, 3, 3 - 654, 427 + 728, 427 2 @@ -1299,57 +1299,6 @@ 5 - - 325, 130 - - - 97, 20 - - - 34 - - - cmbCoreType - - - System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tabPage7 - - - 6 - - - True - - - NoControl - - - 253, 134 - - - 59, 12 - - - 35 - - - Core Type - - - label4 - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tabPage7 - - - 7 - True @@ -1378,7 +1327,7 @@ tabPage7 - 8 + 6 161, 84 @@ -1399,7 +1348,7 @@ tabPage7 - 9 + 7 True @@ -1429,7 +1378,7 @@ tabPage7 - 10 + 8 True @@ -1459,7 +1408,7 @@ tabPage7 - 11 + 9 True @@ -1486,7 +1435,7 @@ tabPage7 - 12 + 10 True @@ -1513,7 +1462,7 @@ tabPage7 - 13 + 11 4, 22 @@ -1522,7 +1471,7 @@ 3, 3, 3, 3 - 654, 427 + 728, 427 3 @@ -1542,6 +1491,339 @@ 3 + + 117, 172 + + + 143, 20 + + + 46 + + + cmbCoreType6 + + + System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabPageCoreType + + + 0 + + + True + + + NoControl + + + 45, 176 + + + 59, 12 + + + 47 + + + Core Type + + + labCoreType6 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabPageCoreType + + + 1 + + + 117, 146 + + + 143, 20 + + + 44 + + + cmbCoreType5 + + + System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabPageCoreType + + + 2 + + + True + + + NoControl + + + 45, 150 + + + 59, 12 + + + 45 + + + Core Type + + + labCoreType5 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabPageCoreType + + + 3 + + + 117, 120 + + + 143, 20 + + + 42 + + + cmbCoreType4 + + + System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabPageCoreType + + + 4 + + + True + + + NoControl + + + 45, 124 + + + 59, 12 + + + 43 + + + Core Type + + + labCoreType4 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabPageCoreType + + + 5 + + + 117, 94 + + + 143, 20 + + + 40 + + + cmbCoreType3 + + + System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabPageCoreType + + + 6 + + + True + + + NoControl + + + 45, 98 + + + 59, 12 + + + 41 + + + Core Type + + + labCoreType3 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabPageCoreType + + + 7 + + + 117, 68 + + + 143, 20 + + + 38 + + + cmbCoreType2 + + + System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabPageCoreType + + + 8 + + + True + + + NoControl + + + 45, 72 + + + 59, 12 + + + 39 + + + Core Type + + + labCoreType2 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabPageCoreType + + + 9 + + + 117, 42 + + + 143, 20 + + + 36 + + + cmbCoreType1 + + + System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabPageCoreType + + + 10 + + + True + + + NoControl + + + 45, 46 + + + 59, 12 + + + 37 + + + Core Type + + + labCoreType1 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabPageCoreType + + + 11 + + + 4, 22 + + + 3, 3, 3, 3 + + + 728, 427 + + + 6 + + + CoreType settings + + + tabPageCoreType + + + System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabControl1 + + + 4 + True @@ -1636,7 +1918,7 @@ 0, 0 - 654, 427 + 728, 427 42 @@ -1660,7 +1942,7 @@ 4, 22 - 654, 427 + 728, 427 5 @@ -1678,7 +1960,7 @@ tabControl1 - 4 + 5 Fill @@ -1687,7 +1969,7 @@ 0, 10 - 662, 453 + 736, 453 10 @@ -1735,7 +2017,7 @@ 0, 463 - 662, 60 + 736, 60 11 @@ -1759,7 +2041,7 @@ 0, 0 - 662, 10 + 736, 10 9 @@ -1783,7 +2065,7 @@ 6, 12 - 662, 523 + 736, 523 4, 4, 4, 4 diff --git a/v2rayN/v2rayN/Forms/OptionSettingForm.zh-Hans.resx b/v2rayN/v2rayN/Forms/OptionSettingForm.zh-Hans.resx index 133efd06..2d09cab8 100644 --- a/v2rayN/v2rayN/Forms/OptionSettingForm.zh-Hans.resx +++ b/v2rayN/v2rayN/Forms/OptionSettingForm.zh-Hans.resx @@ -334,4 +334,7 @@ 参数设置 + + Core类型设置 + \ No newline at end of file diff --git a/v2rayN/v2rayN/Global.cs b/v2rayN/v2rayN/Global.cs index 16b07df9..d4dccdaf 100644 --- a/v2rayN/v2rayN/Global.cs +++ b/v2rayN/v2rayN/Global.cs @@ -199,8 +199,7 @@ namespace v2rayN public static readonly List xtlsFlows = new List { "", "xtls-rprx-origin", "xtls-rprx-origin-udp443", "xtls-rprx-direct", "xtls-rprx-direct-udp443" }; public static readonly List networks = new List { "tcp", "kcp", "ws", "h2", "quic", "grpc" }; public static readonly List kcpHeaderTypes = new List { "srtp", "utp", "wechat-video", "dtls", "wireguard" }; - public static readonly List coreTypes = new List { "v2fly_core", "Xray_core" }; - + public static readonly List coreTypes = new List { "v2fly", "Xray" }; public const string GrpcgunMode = "gun"; public const string GrpcmultiMode = "multi"; diff --git a/v2rayN/v2rayN/Handler/ConfigHandler.cs b/v2rayN/v2rayN/Handler/ConfigHandler.cs index a8eac639..9c7f0b1c 100644 --- a/v2rayN/v2rayN/Handler/ConfigHandler.cs +++ b/v2rayN/v2rayN/Handler/ConfigHandler.cs @@ -250,35 +250,17 @@ namespace v2rayN.Handler /// /// /// - public static int CopyServer(ref Config config, VmessItem item) + public static int CopyServer(ref Config config, List indexs) { - if (item == null) + foreach (var item in indexs) { - return -1; + VmessItem vmessItem = Utils.DeepCopy(item); + vmessItem.indexId = string.Empty; + vmessItem.remarks = string.Format("{0}-clone", item.remarks); + + AddServerCommon(ref config, vmessItem); } - VmessItem vmessItem = new VmessItem - { - configVersion = item.configVersion, - address = item.address, - port = item.port, - id = item.id, - alterId = item.alterId, - security = item.security, - network = item.network, - remarks = string.Format("{0}-clone", item.remarks), - headerType = item.headerType, - requestHost = item.requestHost, - path = item.path, - streamSecurity = item.streamSecurity, - allowInsecure = item.allowInsecure, - configType = item.configType, - flow = item.flow, - sni = item.sni - }; - - AddServerCommon(ref config, vmessItem); - ToJsonFile(config); return 0; diff --git a/v2rayN/v2rayN/Handler/V2rayHandler.cs b/v2rayN/v2rayN/Handler/V2rayHandler.cs index b3d2df98..4b6c234a 100644 --- a/v2rayN/v2rayN/Handler/V2rayHandler.cs +++ b/v2rayN/v2rayN/Handler/V2rayHandler.cs @@ -36,27 +36,10 @@ namespace v2rayN.Handler /// public void LoadV2ray(Config config) { - if (config.coreType == ECoreType.v2fly_core) - { - lstV2ray = new List - { - "wv2ray", - "v2ray" - }; - coreUrl = Global.v2flyCoreUrl; - } - else - { - lstV2ray = new List - { - "xray" - }; - coreUrl = Global.xrayCoreUrl; - } - if (Global.reloadV2ray) { var item = ConfigHandler.GetDefaultServer(ref config); + SetCore(config, item); string fileName = Utils.GetPath(v2rayConfigRes); if (V2rayConfigHandler.GenerateClientConfig(item, fileName, false, out string msg) != 0) { @@ -334,5 +317,32 @@ namespace v2rayN.Handler Utils.SaveLog(ex.Message, ex); } } + + private void SetCore(Config config, VmessItem item) + { + var coreType = config.GetCoreType((EConfigType)item.configType); + if (item.coreType != null) + { + coreType = (ECoreType)item.coreType; + } + + if (coreType == ECoreType.v2fly) + { + lstV2ray = new List + { + "wv2ray", + "v2ray" + }; + coreUrl = Global.v2flyCoreUrl; + } + else + { + lstV2ray = new List + { + "xray" + }; + coreUrl = Global.xrayCoreUrl; + } + } } } diff --git a/v2rayN/v2rayN/Mode/Config.cs b/v2rayN/v2rayN/Mode/Config.cs index 53846f65..ee4e9447 100644 --- a/v2rayN/v2rayN/Mode/Config.cs +++ b/v2rayN/v2rayN/Mode/Config.cs @@ -120,10 +120,6 @@ namespace v2rayN.Mode get; set; } - public ECoreType coreType - { - get; set; - } public bool ignoreGeoUpdateCore { get; set; @@ -208,6 +204,12 @@ namespace v2rayN.Mode { get; set; } + + public List coreTypeItem + { + get; set; + } + #endregion #region function @@ -256,7 +258,7 @@ namespace v2rayN.Mode public List GetShadowsocksSecuritys() { - if (coreType == ECoreType.v2fly_core) + if (GetCoreType(EConfigType.Shadowsocks) == ECoreType.v2fly) { return Global.ssSecuritys; } @@ -283,6 +285,19 @@ namespace v2rayN.Mode return groupItem.Where(it => it.id == groupId).FirstOrDefault()?.remarks; } + public ECoreType GetCoreType(EConfigType eConfigType) + { + if (coreTypeItem == null) + { + return ECoreType.v2fly; + } + var item = coreTypeItem.FirstOrDefault(it => it.configType == eConfigType); + if (item == null) + { + return ECoreType.v2fly; + } + return item.coreType; + } #endregion } @@ -570,6 +585,10 @@ namespace v2rayN.Mode { get; set; } = string.Empty; + public ECoreType? coreType + { + get; set; + } } [Serializable] @@ -782,4 +801,19 @@ namespace v2rayN.Mode get; set; } } + + + [Serializable] + public class CoreTypeItem + { + public EConfigType configType + { + get; set; + } + + public ECoreType coreType + { + get; set; + } + } } diff --git a/v2rayN/v2rayN/Mode/ECoreType.cs b/v2rayN/v2rayN/Mode/ECoreType.cs index 3076b8b7..e6d9af55 100644 --- a/v2rayN/v2rayN/Mode/ECoreType.cs +++ b/v2rayN/v2rayN/Mode/ECoreType.cs @@ -3,7 +3,7 @@ namespace v2rayN.Mode { public enum ECoreType { - v2fly_core = 0, - Xray_core = 1 + v2fly = 1, + Xray = 2 } }