From 68a90ec8954b98914f42450edf0a8f7e08ab676c Mon Sep 17 00:00:00 2001 From: myl86898244 Date: Wed, 9 Jan 2019 19:55:54 +0800 Subject: [PATCH 01/10] Fix BUG that RconIP cannot save --- .gitignore | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..f14b74d --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +################################################################################ +# æ­¤ .gitignore 文件已由 Microsoft(R) Visual Studio 自动创建。 +################################################################################ + +/.vs From 351ecfa789db78af0d24dadd75e0eeda51a05b9d Mon Sep 17 00:00:00 2001 From: myl86898244 Date: Wed, 9 Jan 2019 21:04:50 +0800 Subject: [PATCH 02/10] Fix BUG that RCON IP cannot save --- .gitignore | 2 ++ AtlasServerManager/AddServer.cs | 2 ++ AtlasServerManager/AtlasServerManager.csproj | 2 +- AtlasServerManager/Includes/Registry.cs | 5 ++++- 4 files changed, 9 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index f14b74d..d2c20c7 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,5 @@ ################################################################################ /.vs +/AtlasServerManager/bin/Debug +/AtlasServerManager/obj/x86 diff --git a/AtlasServerManager/AddServer.cs b/AtlasServerManager/AddServer.cs index c9d410f..008c445 100644 --- a/AtlasServerManager/AddServer.cs +++ b/AtlasServerManager/AddServer.cs @@ -61,6 +61,7 @@ private void UpdateComponents(AtlasServerData ServerData) ServerIPTextBox.Text = ServerData.ServerIp; ProcessPriotityCombo.SelectedIndex = ServerData.ProcessPriority; UPNPCheck.Checked = ServerData.Upnp; + textBox1.Text= ServerData.RCONIP; /*Process Affinity*/ if (ServerData.ProcessAffinity == null || ServerData.ProcessAffinity.Length == 0) @@ -107,6 +108,7 @@ private void CopyServerData() /*Process Affinity*/ ProcessAffinity = PA.ProcessAffinity, /*Rcon*/ + RCONIP=textBox1.Text, Rcon = checkBox3.Checked, RconPort = (int)RconNumericUpDown.Value, AutoStart = true, diff --git a/AtlasServerManager/AtlasServerManager.csproj b/AtlasServerManager/AtlasServerManager.csproj index 3367fcb..9bb0a04 100644 --- a/AtlasServerManager/AtlasServerManager.csproj +++ b/AtlasServerManager/AtlasServerManager.csproj @@ -13,6 +13,7 @@ v4.5 512 + false publish\ true Disk @@ -25,7 +26,6 @@ true 0 1.0.0.%2a - false false true diff --git a/AtlasServerManager/Includes/Registry.cs b/AtlasServerManager/Includes/Registry.cs index 320a94d..89edb9a 100644 --- a/AtlasServerManager/Includes/Registry.cs +++ b/AtlasServerManager/Includes/Registry.cs @@ -119,6 +119,7 @@ public static AtlasServerData LoadRegServer(string Srv) if (key != null) { /* BOOL */ + Asd.Rcon = (int)key.GetValue("Rcon", Asd.Rcon ? 1 : 0) == 1 ? true : false; Asd.WildWipe = (int)key.GetValue("WildWipe", Asd.WildWipe ? 1 : 0) == 1 ? true : false; Asd.PVP = (int)key.GetValue("PVP", Asd.PVP ? 1 : 0) == 1 ? true : false; @@ -155,6 +156,7 @@ public static AtlasServerData LoadRegServer(string Srv) Asd.AltSaveDirectory = (string)key.GetValue("AltSaveDirectory", Asd.AltSaveDirectory); Asd.FinalServerPath = string.Empty; Asd.ServerIp = (string)key.GetValue("ServerIp", Asd.ServerIp); + Asd.RCONIP = (string)key.GetValue("RCONIP", Asd.RCONIP); Asd.Loaded = true; } else Asd.Loaded = false; return Asd; @@ -203,7 +205,7 @@ public static bool SaveRegServer(AtlasServerData Asd, int ActIndex, bool Default { key.SetValue("ProcessAffinity" + i, Asd.ProcessAffinity[i] ? 1 : 0, Microsoft.Win32.RegistryValueKind.DWord); } - + /* INT */ key.SetValue("ServerPort", Asd.ServerPort, Microsoft.Win32.RegistryValueKind.DWord); key.SetValue("QueryPort", Asd.QueryPort, Microsoft.Win32.RegistryValueKind.DWord); @@ -216,6 +218,7 @@ public static bool SaveRegServer(AtlasServerData Asd, int ActIndex, bool Default key.SetValue("ProcessPriority", Asd.ProcessPriority, Microsoft.Win32.RegistryValueKind.DWord); /* STRING */ + key.SetValue("RCONIP", Asd.RCONIP, Microsoft.Win32.RegistryValueKind.String); key.SetValue("Pass", Asd.Pass, Microsoft.Win32.RegistryValueKind.String); key.SetValue("CustomArgs", Asd.CustomArgs, Microsoft.Win32.RegistryValueKind.String); key.SetValue("ServerPath", Asd.ServerPath, Microsoft.Win32.RegistryValueKind.String); From 728f981826adf790e32c91d3c66a7c459c336bc2 Mon Sep 17 00:00:00 2001 From: myl86898244 Date: Thu, 10 Jan 2019 11:35:11 +0800 Subject: [PATCH 03/10] 3.2 --- AtlasServerManager/AddServer.Designer.cs | 16 ++++++++-------- AtlasServerManager/AddServer.cs | 7 +++---- .../AtlasServerManager.Designer.cs | 2 +- AtlasServerManager/AtlasServerManager.cs | 2 +- AtlasServerManager/Includes/Registry.cs | 2 +- .../bin/Release/AtlasServerManager.exe | Bin 2125312 -> 2125312 bytes .../bin/Release/AtlasServerManager.pdb | Bin 140800 -> 140800 bytes 7 files changed, 14 insertions(+), 15 deletions(-) diff --git a/AtlasServerManager/AddServer.Designer.cs b/AtlasServerManager/AddServer.Designer.cs index 04669fc..4ce5e94 100644 --- a/AtlasServerManager/AddServer.Designer.cs +++ b/AtlasServerManager/AddServer.Designer.cs @@ -65,7 +65,7 @@ private void InitializeComponent() this.label3 = new System.Windows.Forms.Label(); this.groupBox2 = new System.Windows.Forms.GroupBox(); this.label13 = new System.Windows.Forms.Label(); - this.textBox1 = new System.Windows.Forms.TextBox(); + this.RconIP = new System.Windows.Forms.TextBox(); this.label12 = new System.Windows.Forms.Label(); this.checkBox3 = new System.Windows.Forms.CheckBox(); this.RconNumericUpDown = new System.Windows.Forms.NumericUpDown(); @@ -508,7 +508,7 @@ private void InitializeComponent() // groupBox2 // this.groupBox2.Controls.Add(this.label13); - this.groupBox2.Controls.Add(this.textBox1); + this.groupBox2.Controls.Add(this.RconIP); this.groupBox2.Controls.Add(this.label12); this.groupBox2.Controls.Add(this.checkBox3); this.groupBox2.Controls.Add(this.RconNumericUpDown); @@ -531,12 +531,12 @@ private void InitializeComponent() this.label13.TabIndex = 40; this.label13.Text = "Only needs setting if you have a 2nd NIC"; // - // textBox1 + // RconIP // - this.textBox1.Location = new System.Drawing.Point(516, 41); - this.textBox1.Name = "textBox1"; - this.textBox1.Size = new System.Drawing.Size(170, 24); - this.textBox1.TabIndex = 39; + this.RconIP.Location = new System.Drawing.Point(516, 41); + this.RconIP.Name = "RconIP"; + this.RconIP.Size = new System.Drawing.Size(170, 24); + this.RconIP.TabIndex = 39; // // label12 // @@ -739,7 +739,7 @@ private void InitializeComponent() private System.Windows.Forms.ComboBox ProcessPriotityCombo; private System.Windows.Forms.Label label11; private System.Windows.Forms.Label label13; - private System.Windows.Forms.TextBox textBox1; + private System.Windows.Forms.TextBox RconIP; private System.Windows.Forms.Label label12; private System.Windows.Forms.CheckBox UPNPCheck; } diff --git a/AtlasServerManager/AddServer.cs b/AtlasServerManager/AddServer.cs index 008c445..83237e1 100644 --- a/AtlasServerManager/AddServer.cs +++ b/AtlasServerManager/AddServer.cs @@ -61,16 +61,15 @@ private void UpdateComponents(AtlasServerData ServerData) ServerIPTextBox.Text = ServerData.ServerIp; ProcessPriotityCombo.SelectedIndex = ServerData.ProcessPriority; UPNPCheck.Checked = ServerData.Upnp; - textBox1.Text= ServerData.RCONIP; /*Process Affinity*/ if (ServerData.ProcessAffinity == null || ServerData.ProcessAffinity.Length == 0) ServerData.ProcessAffinity = new bool[Environment.ProcessorCount]; PA.UpdateCheckBoxs(ServerData.ProcessAffinity); - /*Rcon*/ - + /*Rcon*/ checkBox3.Checked = ServerData.Rcon; + RconIP.Text = ServerData.RCONIP; RconNumericUpDown.Value = ServerData.RconPort; if (!Create) { @@ -108,8 +107,8 @@ private void CopyServerData() /*Process Affinity*/ ProcessAffinity = PA.ProcessAffinity, /*Rcon*/ - RCONIP=textBox1.Text, Rcon = checkBox3.Checked, + RCONIP = RconIP.Text, RconPort = (int)RconNumericUpDown.Value, AutoStart = true, ServerX = (int)ServerXNumericUpDown.Value, diff --git a/AtlasServerManager/AtlasServerManager.Designer.cs b/AtlasServerManager/AtlasServerManager.Designer.cs index 231074d..019c770 100644 --- a/AtlasServerManager/AtlasServerManager.Designer.cs +++ b/AtlasServerManager/AtlasServerManager.Designer.cs @@ -835,7 +835,7 @@ private void InitializeComponent() this.MainMenuStrip = this.menuStrip1; this.Margin = new System.Windows.Forms.Padding(4); this.Name = "AtlasServerManager"; - this.Text = "Atlas Server Manager 3.1"; + this.Text = "Atlas Server Manager 3.2"; this.Load += new System.EventHandler(this.Form1_Load); this.tabPage2.ResumeLayout(false); this.groupBox3.ResumeLayout(false); diff --git a/AtlasServerManager/AtlasServerManager.cs b/AtlasServerManager/AtlasServerManager.cs index 83173c0..1e6862b 100644 --- a/AtlasServerManager/AtlasServerManager.cs +++ b/AtlasServerManager/AtlasServerManager.cs @@ -181,8 +181,8 @@ private void RconCustomCommand(bool AllServers) { if (AllServers) SourceRconTools.SendCommandToAll(inputDialog.InputText.Text); else SourceRconTools.SendCommand(inputDialog.InputText.Text, ASLVI); + Log("Custom Command Executed: " + inputDialog.InputText.Text); } - Log("Custom Command Executed: " + inputDialog.InputText.Text); } } diff --git a/AtlasServerManager/Includes/Registry.cs b/AtlasServerManager/Includes/Registry.cs index 89edb9a..44bb088 100644 --- a/AtlasServerManager/Includes/Registry.cs +++ b/AtlasServerManager/Includes/Registry.cs @@ -154,7 +154,6 @@ public static AtlasServerData LoadRegServer(string Srv) Asd.CustomArgs = (string)key.GetValue("CustomArgs", Asd.CustomArgs); Asd.ServerPath = (string)key.GetValue("ServerPath", Asd.ServerPath); Asd.AltSaveDirectory = (string)key.GetValue("AltSaveDirectory", Asd.AltSaveDirectory); - Asd.FinalServerPath = string.Empty; Asd.ServerIp = (string)key.GetValue("ServerIp", Asd.ServerIp); Asd.RCONIP = (string)key.GetValue("RCONIP", Asd.RCONIP); Asd.Loaded = true; @@ -224,6 +223,7 @@ public static bool SaveRegServer(AtlasServerData Asd, int ActIndex, bool Default key.SetValue("ServerPath", Asd.ServerPath, Microsoft.Win32.RegistryValueKind.String); key.SetValue("AltSaveDirectory", Asd.AltSaveDirectory, Microsoft.Win32.RegistryValueKind.String); key.SetValue("ServerIp", Asd.ServerIp, Microsoft.Win32.RegistryValueKind.String); + key.SetValue("RconIP", Asd.RCONIP, Microsoft.Win32.RegistryValueKind.String); return true; } return false; diff --git a/AtlasServerManager/bin/Release/AtlasServerManager.exe b/AtlasServerManager/bin/Release/AtlasServerManager.exe index e778968843871eda269e14c1ad9e523bc46f5732..31c7c27a3288d2745c1a6a5a5739e16b3c8b6f3a 100644 GIT binary patch delta 18243 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 delta 17886 zcmb_^33yaR*7m8}-8bn@(&Fk|7VG+WbunB~HM-d1DNm>Mw0G$wlfS`oJ zun7_j2%-qYA#AcJqRb$RFbawTjHuv(B8!U1{O8ndngo6R=l{R?nCHH!_ncEzr%s() zw{G1Yt1eWtD!i7~N>eu0Eed0c>b4AKxty^$4a^9KkQHnlOX5RWoV0xipUdXNO`aJJ z^sfLf2{d3h4N$ueK!yBq0D0wN1{1#xrF!wauXKe?Zpu>KWIRt(rSY|?A-(Ca=6S|P zy1mup;qDX6e&%7(Hc9f}eWSZEAHE_wgIV}LqQ|icZi|`6*7032HueVpCMKS}%Z;%a z?BBd=>_GM_UxQ@>KN*|FLb%3~!8-9gOBox-w^}-|nfyD8#dE1Al$P`d&`Fii++gwN z8F4=Bb>1y*4BO3Li|dR{eHZsJ+sY4EQ`lktgEf#HZj$3WGxks3BjE@6J1;1;|H#`X z#<83Hsl<%IOb?~jrP!c#IYLsPBvs}BsO>KK>|CUYy`17?G!L-8gr*+;o{2U$_tjon zdmai)vQd^CthLtTUwd!u-1CJ(Fj% zIDRZSoh9;n$$MD`-kkCz>&JsrN3*ARWojS)a&IVAC40#wQ*k0H-ymN!_Lum@RCDNB zRF%YFgHq*VC@<-N#ej@{s-!6U4sUME@a31%G(6enF1e_h_pxc&2YkCNNxJOK|78o& zU&dBs8j);~?6*n7y!jWlP`$UIg(8%@rxp5lMbTe7!=B~UX(pD=SEOZ1FB+V^8(0Rv zk>)RjGoF?fZc!(@+26w^a0I9EkNxw%Zmv&yNV}G1H_=Q?(Vqu9PL-5qR~ey{nl|BI zY&w=3GW_^E>0XAvR9sK@GNn0d`Nb<#uaY zko&$``rXL;wC~Ei`11DIER_GFeLBnM_uF@3BYFN~>1+z0_SgZofM;~bXKVPg9a7n+ zd}D`w(l0*ziH>P3oGF5QNOm|UsU30(~+IVRGo2+Q^)(*51VBR;`Zq2wQe_a%MDhkD}S z!<@>&q#VLeb_rpV`1gpjxVCEuTf{A02eH+BcGtn|0RLxKi_djx0GAxh<6czfo{4*P ziw&{(yTrXooI?DhFzd}5iv0bBbkswuK4dkSS9G(m&Ag#o4m-lnce5C8J+$aX77{mf zk2cx@T&;H}X*=Gfdo-KKCw3q1X(yf1(@1`)tH1w9vRL=9#wg-@`S0B=A>t-foF7fn zpB~m7&GUQs`wOWh(AC=*rMKb&i*eRN=~$9(;Oh%4K9?R!pCIY|Kz^=U=RpmptAb9~aG!r?W%++sE^y zpF?wD%(BzGkud;Zc{_wY{rK0bNy18jl1`sfvr{bPe*L( z-;vGdxB5pLTO?j7Ro%_4MHrcf`BFyGD||FcTjZIYr2f3Vi1O^6q8uFE?V{+GdG-uh z%;)g~TIJa^lJ4Ro2T-0>4;ap_@GsD!MP5Bi7Gc~t(9&|&W{`9cFF}b`1HMVVoO>*>vJwrw3&MFYV{g zZw>2%DbacOsLpe+f_*)Le|Sf08#J&aNR{{?SKE(LQ%g~zYzs_(5?`T=v)_v1SB6K( zQPJ4WvL@Y#6vp=Qypieb6rVh@E&Ggb9ytW}HEa}Sc{I-&RZBaQQBl&pXnx%qK!1K8 zHJSM}O&q<0u`nJqHiM<`K4VKGx8gpf1d~!X4M)wan26Y0yBOE_+VP8HdwS7*F#8Ym zSH@>bQ_d6qQtT+SDY=8@ZY8%7!%g--9+7z3wcI`~F1U9rlsBd5xe~eB ze!S`Jamf-p%l|z-m&Nel30=Lik>F8%_@%X*xX2zMdbMl;E-bp$Y$O zQYY!EmA8L-oY!OVxQmMoaN7_YXt(oiPj@TcfD+M`f7MzH-kkLm!LLb(iKI*RQv}x^ z2=clx0IMg(?aqUmf+~4ekl@U_0IN5KsilUGoZOL(;_D_q&-U|#DfP_C4^Qz&JU1oW z12>jRzG7sgsUuheA3e1V+s9W=ox?o1xg^5pp+!zIPLBP4GVfWk7w1bZU6xRg;`BGk zQ>vm71c<>%_Aw6>d0yx@a{g{qWFgx2c!M=fMucLlLY><6!lh3sAOuC=KE1pdZCus?WR+j+5HW{u-0098TIbA7X zJyZFP`9aK+Uwk%;b>XJzZP*~*clsz?9^RUsh>xhZrbqI7({++Qgm0f7;aN-bxRK`Z z<6sno@%}S>*#`^AT>t5I5#gaK};D&jjUtl0VI72U(8+wgUzq#IVNqVb5j zNkK{z*G;@*rN8C?n#lZOg^8C|MzQIfSH?@II#4;)v<2fIj8S}ME~cwaiKWEzXPJGb zqefPm>6J$7#vXoZRs>%>%foGu;QItWFsnU|`rfQGX6Grh)9~3pX7-bAi-g5tVe##3 z54UxKzbkmi91pi`g6|c)&m0f7iw~RA6E^^x=H#(U{L-8l=}sD#9nrXVO>o5EtK#E` z>3kYuf4&Ow34Q?4&c8&g;Obw$a+}_#N(wPN)5hUiHJhl6 z4+YT8-YSYB34Ru)Z?-mllYdbaV8Ucm!wtL#LR`r<-6oQ4I*+b?#w2zav<@WY8Z~xe zv|4Vh4x$i$P@Nz6PkhJraMhJ?yezN>#x}&kG7zEetlJLCf2rkuRNR8njpFUVlVKNg#D&j`I)g|XX;9*egO$;dqD=Sg2|Kvy_ITx z`1bk1xWzp_--f7^%?tAJ-W$F^+h0O#lN@d-6k44E5G+bX@qRptYFV1p4 z6OznEcl*o8+;Bs^V$ndK16VeClng-MmF7b$+sak%$_Nv;aX)PH^heP>`(A*&j&bWDGD#C(v@(i)!R2K za&M`Uas@>O`&mU~lqwIQ2;bCyMFGC4t8=Kwa38x~DflXP)}IXg>>U*Y+$g@|Y@x7K z6aMyziUkgMKUyR`+DD+hN-@B(?`h$L317mNEDjvLSJ4Jbl?PgAT`q>$FDM2W9=g5% z&rChCz@hk_=4eKkZS4P zE@G!i;gZBte)g7!MY^e+Qd%^fMOsRoMY@xy*u?5W+;GDYwz2__BM+@y?3tT~St1g{ zzKjo9FV<9E;kYUw)Of;q`0# zB7U=Wx`Wbe&X?GivTw(wTTYPdLVBgObeOXLDs6+OS;AQC-x5yPt58yP8IA4lQt97R zx=tl(*6!C9OVpG-n@V3{DZwsT8OBjE&E^-@MYEYZUuk5xsoA(bA$TVm*^d%jMR;Zz znt9mo5LfeW*Y8fXw4><=bSqhonqslcZiqG8bA>p_M`iDUCF@IKmV)gA_~`~e_C(Xy z4R1+oDX(uFfNvMyH4e8q+T&_v#hj1>>>7BOq_o5&nS|V}qe|y zvWYfAO@`yV-ALHvP8sB6CDOMme$-o3v+O zQRJqWuf*|EC2mU9_7)baT3dAavxTNZt2UzkY!TVYqG|B95h~{0^!ARcEZIE|Ai8Lp zy?E*be8mTdnF7$*0c8V=;6u!K1InVi4=n70f6wt_O-mf1X61)MV zY)yuK=%@|`L{V!KMY$nsUGgum0&D3V;7IC>?*nUnsB(0`8}WMR>Yo`W!w8%L8Hz35 z2{ODNvo%r=>rF+WdRXF5xZQ6)PQjJfZeB7}#dY)2!x;m|_2$GCek;L(qEjU$%d$Fo4J!EH)x-I&yhtz12_s%4@J~ykfWN3rc z^sq9H+zJYH!wyau5192ZDVJ((4WPOI%|y6d%>9=_vM$I!0w)yXgzbnZ_7vTF%OoG` z5VNv4jRNkULa2*em%N7QEV#nM&p}jeOfHS`BnDOwW#*z#A84ELNstdrHh+T2wb74i zoiP(W>ANoZY1k&FBQB0Q*kf9k>;t`p{ZL=3ba;1@}XyEsoi z(3C=^N3A3YMy(Ehun}&=nbW}tbWw%_!Q|GVSpSG$V6y1)o)1YpqiH(S>6DToBGJCL zP_2S6sx=DpNe3UI(|Q;YSL8sWV&ThEiDdK&HthrPY1DC|$klYLri1%<3t`Z zfpZo^{$7otd0iq>X?XS(RDbJEX>wEG-!S+&tPPGbhxvq2w%6oRav6<(X!OvOOx@SV zQ|mlVKsTfY*pW+Y85BYlGr*6b<(4v7K_3}WH`%1HzJmEDBqo-@N*Ij& z7@#OAF)@;@h7m$%kMl;|8o;x4tXCUP>{Xa3dRUj`op>7>;b~$HxD)Q3n8g}licr?% zlIcdU3+AaOwh3m5W^U#X`v=qrU05=)i?CcUbELvn13vBH(@gKgcih<*>aV?{bEmDmly{V1~6EyQj?v*=>57qQ!bPjc+y0}OB({0i?w z13pyJg9hRneb>p(M=I=?&~5Ni*hhlB>SQNCg{|D@$My!Z?fk2~Ijoq6?(6E^4%->Y z{MnD7!>DfMW&7g2Eg1k)SUkH864sf*x9kfx^!FoKCi@jU&<^+fXZK|~+UZ|)m!Xg8 zH9U#i9Xt~KG{<)YMWh-I3ch~9356EwRJyT|NB{Lt+HVup@zhLEh+QhBr}hl=vi z>~~ReKl>j)m#7>Cgd3y(j#we^ zZvxNg$hm8xoB2ZGmqT5S6&;)vlK%vqK#59p+$>y45arb>2l;h9n#MFxrg9Jv?h?&y zkNFtOMG{FmiV@dpsOjArl1vHNg^^p0F_WQDAjJ>Y2w%dFf?h*ycqpMBqicly#!s+T zr{K>J2WL{eF~$!3(?$Ll;%pV+8>%l6Lo`@klt~Xn~8|X{<_km4Lq>w75&j4RBe$rv1CSKTHr4 z+94uXYlN5lA`ss&#%lfHw)r*GexDMLlH*pI^hv>l6M`Hg!3d9K5uQv;M)kQQo3jD~ zx(AKWkTXv$!}+Kj?D8%)fva~4WzvWwLM6AFM22qm!AVklNX5|_awZUOGqP=Avuzgw9%6=%#Uz{7h!iHc~6uRj3gP3W5SfT5awqP zCSsgqSSiXQVku_lQwdK7622Zmcqpf>*1=%9sV#=l!>=P^Z+#)+B~u^7M%xgKM|-oM zwqI4M*GR-Xfs#N^fl~!m2wW&|xxmeyWZ#U)V2sxo#0dhY*+}wJmLK9C^EfSYfZ9O5 zlw)xG;dAei;14xHgnb3Z`BC{f8!dqAy@p^^$Wn$o!Gxu;gtu@mG2r?!S`}Q?`ytL( zjl>_+^p*)Xr%gaffnl<9T8-f6ISvQ*OK6!k4IGc9Ohe+4N*S;{wF1kg*g4t^7Unq@ z@oNw2z$at@;_qTc*T&GicGr_bM@%#ha|YcPXRu>jqa)~E@I++bu33bVwc>u6;Qk`E z(9!w{YFA_MWf-hkMG^;!vSE$KI`nR(^s389F`bo4-47Mx+v7`RMV@EfjO8my^oXD- zqvqZ~+!;C&acc_UW`Uzpsrv1~pjYOo| z9-R9J6-xcaVR@tP+lW^UWIuu?Lf(hTJE+R+H34y8c?m^&_nsHb*NgS1;qwt**u@Y*)w`tp+Aq@#`mBOj7(`4NuNeji zRt+@XAoz3!>8jxq_(~fDSDfrU>5Mi6?mAhd{DU?O)c75pEa$nM(MG^IVh*Gl?HO$p z5TN3Y@L9L1%2x*U4Vd zoYAH`b&hI?LvJ!&%H{57wAnDkX_}7C>9E@ z(9g-HVfTGuxRc#M*5Bo5F*-BA<>-^>%pjMe4hMQO#O3J~bY_^#)5++}hzFj+X>?|k z%h3|-evHde2|Ikk<>(S*<6Mq) zm?+t%zy*4L5cfSX^=!dl6~2#6fz3{~F!i=}3j8XVa>GuAK6A)YX|oj1E{RbB<4a>1 z>=Ua%9qf&`A(g>d!Rq0gwBNO5@ZnrCtq1%CnC=;9tRYqhFC}Yr&%)b+)k9fUfNnZ; zd`_`koE5H{3CjgjhExGB3sx66C;o<1;nda8n&5y6XcS8B-pdlFtAJBZHrp>5*{4pn z&@ThoMJL;6XrrryyMoobcS`GkjLoC&l@2RGE11$@C4>uB4{<(S(6YeE-cB4MJLbTc z=c!^HjPvZJb3pB4g{_b8ud4#X3ksW)GE_Ggx;WVduhUWuY=2SFc_xk4J=bcy^PtmG zp%des2c?45!;I7+^1N1-^Br)uh3R~_AlQ6J%^atj4_)xv$%8S?hh7SU1pPY<=2x-79dx$-W9|)~$!6?TY2m)C0N(sB*HdLGSA}z)w!r zBjmc~Rj}<)EX#e4>l$I4leIzJMtHf&`TQ%koz`uFK>RpG-6x~+btn*w^7(>pE8G(7 zYxakq4BOzIU`JrFnV1znU*R-~WZMRrg4IJzOHOvga8tJvmhK|UdN^XZt9u(d zHjC#U=4I$L*ae%Bl5&lKc{I10r$^bZ!g4<3;!#mEblFYy=7Y_q!Fs2h?B50h?19WZ zq^pKLHZPC8P%GGc_dDK^un(3Jqvs!ucOM*gnl8ge_e0;kN<|9Pe)!PIzVY()cn8kz zQ*>wjygUv-;(lT^a3#|K2ceT-N-PeM0(Za^!*1*WJId;P4DhZ~=Qzshe9Rv2Iq6Zh zz~{OKzeM1_2NgeX>FRwikTF#EX{#>I!3CjIx;O{lE6m+J^#VHw zHW9fx?Ba%W4oU^9huv}gJkCK!5ypBr8aKq_bC~R8mve4NU$pAs3%Dh8*aMF|5$yOZ zV>x_5-eJt;z~9{E2h4EPt3!0nL#7!M-vj>TvNXvuo|=hzhNBvP^C*vpEW~@9$K?k) zuRDl+xjQ7o%zYv6b^bf#(rY*MOTe&EqGieV-UL%HU^c z6znql7Vp!W03wqvv%8s*$O=RzRYM(~w%&v?Co{X@Gx#RFAn0W+PoL#+6Y3Slj^NGk zP0)nss8~y9WOhX8YQTXV%B^({wq4wSH8AAQO1AW*;>>BGi#esR z4D4QJ#|5Lgf7_#Vqweg2)AAnHb7$9_tQ*#IXLp<|4-?p(Ia+$^&QzzBE+QmS(h2Qu z{9zQG#?b#`=3$vZ9DZ4mfSXDC|64v7z#vy;3G!TS z;l~4vha}up;b%;0;eFB0{~h0rB}=M{AFdQ~HjNsp@}wAi>_rYK%_-UeUZnNGajU=| zLyfm0HX#AYRYI=Db6JvKHIO_WhJn2AW+go{53$=et6k{>g~xRv>nME71I9(~1hxFn)ArA_*3_+18zkYHQrpC$O|1&(JhM}!&im@z79C`8x$Y48M+ zKEzhwJh|cVC4f5~Ujk@h6gHv5<4gMC=2|>u^ThK>053eBq~@q02}-f7!jnmo_=^r| zdF7|k4%(0yfzI8`h&qTzG(eibJc0QF3kCKQI8@+RL=zN?a+$z#Mb4Jxh zhq2MI1~xI$fLP&cfK^UOra1s5UuNN|QU_yWO<1j)8Bw*}YJx3j6o%^0BP{GR#QG+) zcvT~Y?liPb&SZO3r9N#~IZjGP)&MCHQ{XV#cSHN@A-&it_?xMS?EoG-jGadLXp|Rb zOhkE4?_TV%h|n>3JlX)4QCq^UIaJ4!pJmrnzZhq+YIp+us)m=cO&FXU-x?Mv{gAo{ zB{w2oWaJh@Ik{C0vxLoLft5IbYPcFzkDb-x>23piNyH-n<8h6pSWIA4@61|@+6~rM z*)^7%L^j=HUq^|0v&nOSf>JB;7!Hbyf4XR?}9_hTg2!Afupz7&+ z5WDY%TC;jq;97QAO{r83S+Pf@YVgIdo7EBCr2WK1I3i*#8>&8OI*pUEBo-%B%sNfq zMX7ON_=5x_;KzqTb%2yYG7r)H8=uVpsLkW zju(qnypXRF;a$bjQ_QLxm_6Z$+OTjH(^x&?RIAukbFxaSp`qm=>ZGYzMXLpVyp;Z#^A1Wfb5E;=sxK#=Q=NyI z4ot3oSgkMO=s*+Ve!PSGY2L{q9GGjsrT4R#i)i{Xp6{K9Ety}d(lmPwHCWEZ`#Vzg zlKFe={w4Db#En6}s4~SO-A*jhL$Tv->^uxN1gg)&Szj62iDkQ=7{E}?RbR~iu^MAq zqMDjWM>MA8sEal3rpMG}h@DY#FttFPDPj{Mu%DWu6#^mNPpPkoDJaI~@RxfMJz$EZ z{>g-tZpBj9GP3hiwOH~n#R}*Sk@UYYpPkDDFeHSuwBV2M4FT`0Sf58|gH%Rva34b+cv4Yr8Xtd@m`8TP3 zW;=NYcG(%ViMF0{r2L$Dh`bQPI|(H=TfKZ*IK;5C1M)S^mY5^*F(El7g?N90<%v0; z%S^K-=!$$9<-ZU*F!L`<2LtcR`G(XB;}NO)HTN1cXli^f zum;Wa+$=c_Ee((-7kOIU^5r^Xnp>f~7lZs8D^07x9nNn3G&rWNN{)nnXo(S(k44zs zhRRX7HINC-$ur$DF&?2$smDskylOC4X}41>(Nc3BU8%v;^KN?WGE=uNw$P93*7_Ym z++z4U;>5I*h=&p z9c}Ib3bFi?AH6&PL|}PhxJr~i#`2|jwJ5J|iu>l8hD~d7|KWsN(-*h4CpJGH!7l3z z#%b^r%!Fys2}Y);ibpR8!rQ1M!bCR^2N&!FB4w=cm?1U zh?g0!AiRR{3c)M1dB~Wskl&J~Y|I`(VUX|&!4Zehe`956IP@>-Qk1@6vf=2gm0fFx z+h44CXJ&Kr`k~?O%s2*T_I`aSk diff --git a/AtlasServerManager/bin/Release/AtlasServerManager.pdb b/AtlasServerManager/bin/Release/AtlasServerManager.pdb index 71b04bcf58e52b233a17731256dd5780d376b6df..d80eb6c8ea519f2c271d8eb1efdaea4804eff41f 100644 GIT binary patch delta 8671 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 delta 8639 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 From 99ca418611b7c7ae715db7006655307161a3154a Mon Sep 17 00:00:00 2001 From: myl86898244 Date: Thu, 10 Jan 2019 11:47:07 +0800 Subject: [PATCH 04/10] 3.2 --- AtlasServerManager/Includes/Registry.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AtlasServerManager/Includes/Registry.cs b/AtlasServerManager/Includes/Registry.cs index 44bb088..37d2ee3 100644 --- a/AtlasServerManager/Includes/Registry.cs +++ b/AtlasServerManager/Includes/Registry.cs @@ -155,7 +155,7 @@ public static AtlasServerData LoadRegServer(string Srv) Asd.ServerPath = (string)key.GetValue("ServerPath", Asd.ServerPath); Asd.AltSaveDirectory = (string)key.GetValue("AltSaveDirectory", Asd.AltSaveDirectory); Asd.ServerIp = (string)key.GetValue("ServerIp", Asd.ServerIp); - Asd.RCONIP = (string)key.GetValue("RCONIP", Asd.RCONIP); + Asd.RCONIP = (string)key.GetValue("RconIP", Asd.RCONIP); Asd.Loaded = true; } else Asd.Loaded = false; return Asd; From ff0f415f883e2d358e0d9a0da7802d37ec07ca78 Mon Sep 17 00:00:00 2001 From: myl86898244 Date: Mon, 14 Jan 2019 13:54:23 +0800 Subject: [PATCH 05/10] Fixed a problem with the custom command button displaying incompletely. --- .../AtlasServerManager.Designer.cs | 92 +++++++++---------- AtlasServerManager/InputDialog.Designer.cs | 16 ++-- 2 files changed, 54 insertions(+), 54 deletions(-) diff --git a/AtlasServerManager/AtlasServerManager.Designer.cs b/AtlasServerManager/AtlasServerManager.Designer.cs index 7c76b97..6a07c61 100644 --- a/AtlasServerManager/AtlasServerManager.Designer.cs +++ b/AtlasServerManager/AtlasServerManager.Designer.cs @@ -230,7 +230,7 @@ private void InitializeComponent() this.ServerUpdatingMessage.Location = new System.Drawing.Point(0, 2); this.ServerUpdatingMessage.Multiline = true; this.ServerUpdatingMessage.Name = "ServerUpdatingMessage"; - this.ServerUpdatingMessage.Size = new System.Drawing.Size(461, 106); + this.ServerUpdatingMessage.Size = new System.Drawing.Size(461, 109); this.ServerUpdatingMessage.TabIndex = 6; this.ServerUpdatingMessage.Text = "Atlas is now updating please restart your games to get the update!"; // @@ -363,7 +363,7 @@ private void InitializeComponent() this.rCONToolStripMenuItem, this.rCONAllToolStripMenuItem}); this.contextMenuStrip1.Name = "contextMenuStrip1"; - this.contextMenuStrip1.Size = new System.Drawing.Size(155, 92); + this.contextMenuStrip1.Size = new System.Drawing.Size(166, 92); // // serverToolStripMenuItem // @@ -372,25 +372,25 @@ private void InitializeComponent() this.removeToolStripMenuItem, this.editSettingsToolStripMenuItem}); this.serverToolStripMenuItem.Name = "serverToolStripMenuItem"; - this.serverToolStripMenuItem.Size = new System.Drawing.Size(154, 22); + this.serverToolStripMenuItem.Size = new System.Drawing.Size(165, 22); this.serverToolStripMenuItem.Text = "Server"; // // addToolStripMenuItem // this.addToolStripMenuItem.Name = "addToolStripMenuItem"; - this.addToolStripMenuItem.Size = new System.Drawing.Size(139, 22); + this.addToolStripMenuItem.Size = new System.Drawing.Size(148, 22); this.addToolStripMenuItem.Text = "Add"; // // removeToolStripMenuItem // this.removeToolStripMenuItem.Name = "removeToolStripMenuItem"; - this.removeToolStripMenuItem.Size = new System.Drawing.Size(139, 22); + this.removeToolStripMenuItem.Size = new System.Drawing.Size(148, 22); this.removeToolStripMenuItem.Text = "Remove"; // // editSettingsToolStripMenuItem // this.editSettingsToolStripMenuItem.Name = "editSettingsToolStripMenuItem"; - this.editSettingsToolStripMenuItem.Size = new System.Drawing.Size(139, 22); + this.editSettingsToolStripMenuItem.Size = new System.Drawing.Size(148, 22); this.editSettingsToolStripMenuItem.Text = "Edit Settings"; // // manageToolStripMenuItem @@ -399,19 +399,19 @@ private void InitializeComponent() this.startToolStripMenuItem, this.stopToolStripMenuItem}); this.manageToolStripMenuItem.Name = "manageToolStripMenuItem"; - this.manageToolStripMenuItem.Size = new System.Drawing.Size(154, 22); + this.manageToolStripMenuItem.Size = new System.Drawing.Size(165, 22); this.manageToolStripMenuItem.Text = "Manage"; // // startToolStripMenuItem // this.startToolStripMenuItem.Name = "startToolStripMenuItem"; - this.startToolStripMenuItem.Size = new System.Drawing.Size(98, 22); + this.startToolStripMenuItem.Size = new System.Drawing.Size(103, 22); this.startToolStripMenuItem.Text = "Start"; // // stopToolStripMenuItem // this.stopToolStripMenuItem.Name = "stopToolStripMenuItem"; - this.stopToolStripMenuItem.Size = new System.Drawing.Size(98, 22); + this.stopToolStripMenuItem.Size = new System.Drawing.Size(103, 22); this.stopToolStripMenuItem.Text = "Stop"; // // rCONToolStripMenuItem @@ -424,43 +424,43 @@ private void InitializeComponent() this.loadPluginToolStripMenuItem, this.unloadPluginToolStripMenuItem}); this.rCONToolStripMenuItem.Name = "rCONToolStripMenuItem"; - this.rCONToolStripMenuItem.Size = new System.Drawing.Size(154, 22); + this.rCONToolStripMenuItem.Size = new System.Drawing.Size(165, 22); this.rCONToolStripMenuItem.Text = "RCON Selected"; // // broadcastToolStripMenuItem // this.broadcastToolStripMenuItem.Name = "broadcastToolStripMenuItem"; - this.broadcastToolStripMenuItem.Size = new System.Drawing.Size(176, 22); + this.broadcastToolStripMenuItem.Size = new System.Drawing.Size(192, 22); this.broadcastToolStripMenuItem.Text = "Broadcast"; // // saveWorldToolStripMenuItem // this.saveWorldToolStripMenuItem.Name = "saveWorldToolStripMenuItem"; - this.saveWorldToolStripMenuItem.Size = new System.Drawing.Size(176, 22); + this.saveWorldToolStripMenuItem.Size = new System.Drawing.Size(192, 22); this.saveWorldToolStripMenuItem.Text = "Save World"; // // closeSaveWorldToolStripMenuItem // this.closeSaveWorldToolStripMenuItem.Name = "closeSaveWorldToolStripMenuItem"; - this.closeSaveWorldToolStripMenuItem.Size = new System.Drawing.Size(176, 22); + this.closeSaveWorldToolStripMenuItem.Size = new System.Drawing.Size(192, 22); this.closeSaveWorldToolStripMenuItem.Text = "Close + Save World"; // // customCommandToolStripMenuItem // this.customCommandToolStripMenuItem.Name = "customCommandToolStripMenuItem"; - this.customCommandToolStripMenuItem.Size = new System.Drawing.Size(176, 22); + this.customCommandToolStripMenuItem.Size = new System.Drawing.Size(192, 22); this.customCommandToolStripMenuItem.Text = "Custom Command"; // // loadPluginToolStripMenuItem // this.loadPluginToolStripMenuItem.Name = "loadPluginToolStripMenuItem"; - this.loadPluginToolStripMenuItem.Size = new System.Drawing.Size(176, 22); + this.loadPluginToolStripMenuItem.Size = new System.Drawing.Size(192, 22); this.loadPluginToolStripMenuItem.Text = "Load Plugin"; // // unloadPluginToolStripMenuItem // this.unloadPluginToolStripMenuItem.Name = "unloadPluginToolStripMenuItem"; - this.unloadPluginToolStripMenuItem.Size = new System.Drawing.Size(176, 22); + this.unloadPluginToolStripMenuItem.Size = new System.Drawing.Size(192, 22); this.unloadPluginToolStripMenuItem.Text = "Unload Plugin"; // // rCONAllToolStripMenuItem @@ -473,43 +473,43 @@ private void InitializeComponent() this.loadPluginToolStripMenuItem1, this.unloadPluginToolStripMenuItem1}); this.rCONAllToolStripMenuItem.Name = "rCONAllToolStripMenuItem"; - this.rCONAllToolStripMenuItem.Size = new System.Drawing.Size(154, 22); + this.rCONAllToolStripMenuItem.Size = new System.Drawing.Size(165, 22); this.rCONAllToolStripMenuItem.Text = "RCON All"; // // broadcastToolStripMenuItem1 // this.broadcastToolStripMenuItem1.Name = "broadcastToolStripMenuItem1"; - this.broadcastToolStripMenuItem1.Size = new System.Drawing.Size(176, 22); + this.broadcastToolStripMenuItem1.Size = new System.Drawing.Size(192, 22); this.broadcastToolStripMenuItem1.Text = "Broadcast"; // // saveWorldToolStripMenuItem1 // this.saveWorldToolStripMenuItem1.Name = "saveWorldToolStripMenuItem1"; - this.saveWorldToolStripMenuItem1.Size = new System.Drawing.Size(176, 22); + this.saveWorldToolStripMenuItem1.Size = new System.Drawing.Size(192, 22); this.saveWorldToolStripMenuItem1.Text = "Save World"; // // closeSaveWorldToolStripMenuItem1 // this.closeSaveWorldToolStripMenuItem1.Name = "closeSaveWorldToolStripMenuItem1"; - this.closeSaveWorldToolStripMenuItem1.Size = new System.Drawing.Size(176, 22); + this.closeSaveWorldToolStripMenuItem1.Size = new System.Drawing.Size(192, 22); this.closeSaveWorldToolStripMenuItem1.Text = "Close + Save World"; // // customCommandToolStripMenuItem1 // this.customCommandToolStripMenuItem1.Name = "customCommandToolStripMenuItem1"; - this.customCommandToolStripMenuItem1.Size = new System.Drawing.Size(176, 22); + this.customCommandToolStripMenuItem1.Size = new System.Drawing.Size(192, 22); this.customCommandToolStripMenuItem1.Text = "Custom Command"; // // loadPluginToolStripMenuItem1 // this.loadPluginToolStripMenuItem1.Name = "loadPluginToolStripMenuItem1"; - this.loadPluginToolStripMenuItem1.Size = new System.Drawing.Size(176, 22); + this.loadPluginToolStripMenuItem1.Size = new System.Drawing.Size(192, 22); this.loadPluginToolStripMenuItem1.Text = "Load Plugin"; // // unloadPluginToolStripMenuItem1 // this.unloadPluginToolStripMenuItem1.Name = "unloadPluginToolStripMenuItem1"; - this.unloadPluginToolStripMenuItem1.Size = new System.Drawing.Size(176, 22); + this.unloadPluginToolStripMenuItem1.Size = new System.Drawing.Size(192, 22); this.unloadPluginToolStripMenuItem1.Text = "Unload Plugin"; // // tabControl1 @@ -685,7 +685,7 @@ private void InitializeComponent() this.rCONAllToolStripMenuItem1}); this.menuStrip1.Location = new System.Drawing.Point(0, 0); this.menuStrip1.Name = "menuStrip1"; - this.menuStrip1.Size = new System.Drawing.Size(684, 24); + this.menuStrip1.Size = new System.Drawing.Size(684, 25); this.menuStrip1.TabIndex = 1; this.menuStrip1.Text = "menuStrip1"; // @@ -696,25 +696,25 @@ private void InitializeComponent() this.removeToolStripMenuItem1, this.editSettingsToolStripMenuItem1}); this.serverToolStripMenuItem1.Name = "serverToolStripMenuItem1"; - this.serverToolStripMenuItem1.Size = new System.Drawing.Size(51, 20); + this.serverToolStripMenuItem1.Size = new System.Drawing.Size(57, 21); this.serverToolStripMenuItem1.Text = "Server"; // // addToolStripMenuItem1 // this.addToolStripMenuItem1.Name = "addToolStripMenuItem1"; - this.addToolStripMenuItem1.Size = new System.Drawing.Size(139, 22); + this.addToolStripMenuItem1.Size = new System.Drawing.Size(148, 22); this.addToolStripMenuItem1.Text = "Add"; // // removeToolStripMenuItem1 // this.removeToolStripMenuItem1.Name = "removeToolStripMenuItem1"; - this.removeToolStripMenuItem1.Size = new System.Drawing.Size(139, 22); + this.removeToolStripMenuItem1.Size = new System.Drawing.Size(148, 22); this.removeToolStripMenuItem1.Text = "Remove"; // // editSettingsToolStripMenuItem1 // this.editSettingsToolStripMenuItem1.Name = "editSettingsToolStripMenuItem1"; - this.editSettingsToolStripMenuItem1.Size = new System.Drawing.Size(139, 22); + this.editSettingsToolStripMenuItem1.Size = new System.Drawing.Size(148, 22); this.editSettingsToolStripMenuItem1.Text = "Edit Settings"; // // managerToolStripMenuItem @@ -723,19 +723,19 @@ private void InitializeComponent() this.startToolStripMenuItem1, this.stopToolStripMenuItem1}); this.managerToolStripMenuItem.Name = "managerToolStripMenuItem"; - this.managerToolStripMenuItem.Size = new System.Drawing.Size(62, 20); + this.managerToolStripMenuItem.Size = new System.Drawing.Size(68, 21); this.managerToolStripMenuItem.Text = "Manage"; // // startToolStripMenuItem1 // this.startToolStripMenuItem1.Name = "startToolStripMenuItem1"; - this.startToolStripMenuItem1.Size = new System.Drawing.Size(98, 22); + this.startToolStripMenuItem1.Size = new System.Drawing.Size(103, 22); this.startToolStripMenuItem1.Text = "Start"; // // stopToolStripMenuItem1 // this.stopToolStripMenuItem1.Name = "stopToolStripMenuItem1"; - this.stopToolStripMenuItem1.Size = new System.Drawing.Size(98, 22); + this.stopToolStripMenuItem1.Size = new System.Drawing.Size(103, 22); this.stopToolStripMenuItem1.Text = "Stop"; // // rCONSelecteToolStripMenuItem @@ -748,43 +748,43 @@ private void InitializeComponent() this.loadPluginToolStripMenuItem2, this.unloadPluginToolStripMenuItem2}); this.rCONSelecteToolStripMenuItem.Name = "rCONSelecteToolStripMenuItem"; - this.rCONSelecteToolStripMenuItem.Size = new System.Drawing.Size(99, 20); + this.rCONSelecteToolStripMenuItem.Size = new System.Drawing.Size(109, 21); this.rCONSelecteToolStripMenuItem.Text = "RCON Selected"; // // broadcastToolStripMenuItem2 // this.broadcastToolStripMenuItem2.Name = "broadcastToolStripMenuItem2"; - this.broadcastToolStripMenuItem2.Size = new System.Drawing.Size(176, 22); + this.broadcastToolStripMenuItem2.Size = new System.Drawing.Size(192, 22); this.broadcastToolStripMenuItem2.Text = "Broadcast"; // // saveWorldToolStripMenuItem2 // this.saveWorldToolStripMenuItem2.Name = "saveWorldToolStripMenuItem2"; - this.saveWorldToolStripMenuItem2.Size = new System.Drawing.Size(176, 22); + this.saveWorldToolStripMenuItem2.Size = new System.Drawing.Size(192, 22); this.saveWorldToolStripMenuItem2.Text = "Save World"; // // closeSaveWorldToolStripMenuItem2 // this.closeSaveWorldToolStripMenuItem2.Name = "closeSaveWorldToolStripMenuItem2"; - this.closeSaveWorldToolStripMenuItem2.Size = new System.Drawing.Size(176, 22); + this.closeSaveWorldToolStripMenuItem2.Size = new System.Drawing.Size(192, 22); this.closeSaveWorldToolStripMenuItem2.Text = "Close + Save World"; // // customCommandToolStripMenuItem2 // this.customCommandToolStripMenuItem2.Name = "customCommandToolStripMenuItem2"; - this.customCommandToolStripMenuItem2.Size = new System.Drawing.Size(176, 22); + this.customCommandToolStripMenuItem2.Size = new System.Drawing.Size(192, 22); this.customCommandToolStripMenuItem2.Text = "Custom Command"; // // loadPluginToolStripMenuItem2 // this.loadPluginToolStripMenuItem2.Name = "loadPluginToolStripMenuItem2"; - this.loadPluginToolStripMenuItem2.Size = new System.Drawing.Size(176, 22); + this.loadPluginToolStripMenuItem2.Size = new System.Drawing.Size(192, 22); this.loadPluginToolStripMenuItem2.Text = "Load Plugin"; // // unloadPluginToolStripMenuItem2 // this.unloadPluginToolStripMenuItem2.Name = "unloadPluginToolStripMenuItem2"; - this.unloadPluginToolStripMenuItem2.Size = new System.Drawing.Size(176, 22); + this.unloadPluginToolStripMenuItem2.Size = new System.Drawing.Size(192, 22); this.unloadPluginToolStripMenuItem2.Text = "Unload Plugin"; // // rCONAllToolStripMenuItem1 @@ -797,43 +797,43 @@ private void InitializeComponent() this.loadPluginToolStripMenuItem3, this.unloadPluginToolStripMenuItem3}); this.rCONAllToolStripMenuItem1.Name = "rCONAllToolStripMenuItem1"; - this.rCONAllToolStripMenuItem1.Size = new System.Drawing.Size(69, 20); + this.rCONAllToolStripMenuItem1.Size = new System.Drawing.Size(74, 21); this.rCONAllToolStripMenuItem1.Text = "RCON All"; // // broadcastToolStripMenuItem3 // this.broadcastToolStripMenuItem3.Name = "broadcastToolStripMenuItem3"; - this.broadcastToolStripMenuItem3.Size = new System.Drawing.Size(176, 22); + this.broadcastToolStripMenuItem3.Size = new System.Drawing.Size(192, 22); this.broadcastToolStripMenuItem3.Text = "Broadcast"; // // saveWorldToolStripMenuItem3 // this.saveWorldToolStripMenuItem3.Name = "saveWorldToolStripMenuItem3"; - this.saveWorldToolStripMenuItem3.Size = new System.Drawing.Size(176, 22); + this.saveWorldToolStripMenuItem3.Size = new System.Drawing.Size(192, 22); this.saveWorldToolStripMenuItem3.Text = "Save World"; // // closeSaveWorldToolStripMenuItem3 // this.closeSaveWorldToolStripMenuItem3.Name = "closeSaveWorldToolStripMenuItem3"; - this.closeSaveWorldToolStripMenuItem3.Size = new System.Drawing.Size(176, 22); + this.closeSaveWorldToolStripMenuItem3.Size = new System.Drawing.Size(192, 22); this.closeSaveWorldToolStripMenuItem3.Text = "Close + Save World"; // // customCommandToolStripMenuItem3 // this.customCommandToolStripMenuItem3.Name = "customCommandToolStripMenuItem3"; - this.customCommandToolStripMenuItem3.Size = new System.Drawing.Size(176, 22); + this.customCommandToolStripMenuItem3.Size = new System.Drawing.Size(192, 22); this.customCommandToolStripMenuItem3.Text = "Custom Command"; // // loadPluginToolStripMenuItem3 // this.loadPluginToolStripMenuItem3.Name = "loadPluginToolStripMenuItem3"; - this.loadPluginToolStripMenuItem3.Size = new System.Drawing.Size(176, 22); + this.loadPluginToolStripMenuItem3.Size = new System.Drawing.Size(192, 22); this.loadPluginToolStripMenuItem3.Text = "Load Plugin"; // // unloadPluginToolStripMenuItem3 // this.unloadPluginToolStripMenuItem3.Name = "unloadPluginToolStripMenuItem3"; - this.unloadPluginToolStripMenuItem3.Size = new System.Drawing.Size(176, 22); + this.unloadPluginToolStripMenuItem3.Size = new System.Drawing.Size(192, 22); this.unloadPluginToolStripMenuItem3.Text = "Unload Plugin"; // // AtlasServerManager @@ -847,7 +847,7 @@ private void InitializeComponent() this.MainMenuStrip = this.menuStrip1; this.Margin = new System.Windows.Forms.Padding(4); this.Name = "AtlasServerManager"; - this.Text = "Atlas Server Manager 3.8"; + this.Text = "Atlas Server Manager 3.8C"; this.Load += new System.EventHandler(this.Form1_Load); this.tabPage2.ResumeLayout(false); this.groupBox3.ResumeLayout(false); diff --git a/AtlasServerManager/InputDialog.Designer.cs b/AtlasServerManager/InputDialog.Designer.cs index 17bcc6a..9f21e0d 100644 --- a/AtlasServerManager/InputDialog.Designer.cs +++ b/AtlasServerManager/InputDialog.Designer.cs @@ -37,36 +37,36 @@ private void InitializeComponent() // SendButton // this.SendButton.DialogResult = System.Windows.Forms.DialogResult.OK; - this.SendButton.Location = new System.Drawing.Point(302, 156); + this.SendButton.Location = new System.Drawing.Point(302, 144); this.SendButton.Name = "SendButton"; - this.SendButton.Size = new System.Drawing.Size(135, 39); + this.SendButton.Size = new System.Drawing.Size(135, 36); this.SendButton.TabIndex = 0; this.SendButton.Text = "Send"; this.SendButton.UseVisualStyleBackColor = true; // // InputText // - this.InputText.Location = new System.Drawing.Point(12, 12); + this.InputText.Location = new System.Drawing.Point(12, 11); this.InputText.Multiline = true; this.InputText.Name = "InputText"; - this.InputText.Size = new System.Drawing.Size(425, 138); + this.InputText.Size = new System.Drawing.Size(425, 128); this.InputText.TabIndex = 1; // // CloseButton // this.CloseButton.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.CloseButton.Location = new System.Drawing.Point(12, 156); + this.CloseButton.Location = new System.Drawing.Point(12, 144); this.CloseButton.Name = "CloseButton"; - this.CloseButton.Size = new System.Drawing.Size(135, 39); + this.CloseButton.Size = new System.Drawing.Size(135, 36); this.CloseButton.TabIndex = 2; this.CloseButton.Text = "Cancel"; this.CloseButton.UseVisualStyleBackColor = true; // // InputDialog // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(449, 207); + this.ClientSize = new System.Drawing.Size(449, 191); this.ControlBox = false; this.Controls.Add(this.CloseButton); this.Controls.Add(this.InputText); From 97af7f63c11b8ce71bb6ef506eb50fd26080ad07 Mon Sep 17 00:00:00 2001 From: myl86898244 Date: Fri, 18 Jan 2019 11:45:25 +0800 Subject: [PATCH 06/10] OK --- .../AtlasServerManager.Designer.cs | 2 +- AtlasServerManager/AtlasServerManager.cs | 22 +++++++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/AtlasServerManager/AtlasServerManager.Designer.cs b/AtlasServerManager/AtlasServerManager.Designer.cs index 6a07c61..d0f477f 100644 --- a/AtlasServerManager/AtlasServerManager.Designer.cs +++ b/AtlasServerManager/AtlasServerManager.Designer.cs @@ -773,7 +773,7 @@ private void InitializeComponent() // this.customCommandToolStripMenuItem2.Name = "customCommandToolStripMenuItem2"; this.customCommandToolStripMenuItem2.Size = new System.Drawing.Size(192, 22); - this.customCommandToolStripMenuItem2.Text = "Custom Command"; + this.customCommandToolStripMenuItem2.Text = "Custom Command"; // // loadPluginToolStripMenuItem2 // diff --git a/AtlasServerManager/AtlasServerManager.cs b/AtlasServerManager/AtlasServerManager.cs index d827cb8..ea806ab 100644 --- a/AtlasServerManager/AtlasServerManager.cs +++ b/AtlasServerManager/AtlasServerManager.cs @@ -140,6 +140,10 @@ private void RconBroadcast(bool AllServers) Log("Broadcasted!"); } } + else + { + MessageBox.Show("Please select a server!!!"); + } } private void RconSaveWorld(bool AllServers) @@ -154,6 +158,10 @@ private void RconSaveWorld(bool AllServers) } Log("Saved World!"); } + else + { + MessageBox.Show("Please select a server!!!"); + } } private void RconCloseSaveWorld(bool AllServers) @@ -168,6 +176,10 @@ private void RconCloseSaveWorld(bool AllServers) } Log("Closed Saved World!"); } + else + { + MessageBox.Show("Please select a server!!!"); + } } private void RconCustomCommand(bool AllServers) @@ -184,6 +196,10 @@ private void RconCustomCommand(bool AllServers) Log("Custom Command Executed: " + inputDialog.InputText.Text); } } + else + { + MessageBox.Show("Please select a server!!!"); + } } private void RconPlugin(bool AllServers, bool Load) @@ -200,8 +216,14 @@ private void RconPlugin(bool AllServers, bool Load) Log("Plugin " + (Load ? "Loaded" : "Unloaded") + ": " + inputDialog.InputText.Text); } } + else + { + MessageBox.Show("Please select a server!!!"); + } } + + private void SetupCallbacks() { FormClosing += (e, a) => From 99203a2d4d9e9ac0b50b22991f4832b9ea9d2f42 Mon Sep 17 00:00:00 2001 From: myl86898244 Date: Fri, 18 Jan 2019 12:01:35 +0800 Subject: [PATCH 07/10] OK --- .gitignore | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index d2c20c7..22b974f 100644 --- a/.gitignore +++ b/.gitignore @@ -3,5 +3,6 @@ ################################################################################ /.vs -/AtlasServerManager/bin/Debug +/AtlasServerManager/bin/ /AtlasServerManager/obj/x86 +/AtlasServerManager/bin/Release/Interop.NATUPNPLib.dll From d62fa102e3d76819a38588876804a7eee5d1d817 Mon Sep 17 00:00:00 2001 From: myl86898244 Date: Tue, 22 Jan 2019 12:37:07 +0800 Subject: [PATCH 08/10] Repair Update BUG --- .../AtlasServerManager.Designer.cs | 92 +++++++++---------- AtlasServerManager/Includes/Worker.cs | 10 +- .../Includes/Workers/ServerMonitor.cs | 3 +- .../Includes/Workers/ServerUpdater.cs | 6 +- 4 files changed, 59 insertions(+), 52 deletions(-) diff --git a/AtlasServerManager/AtlasServerManager.Designer.cs b/AtlasServerManager/AtlasServerManager.Designer.cs index 22b5e88..c29c6cb 100644 --- a/AtlasServerManager/AtlasServerManager.Designer.cs +++ b/AtlasServerManager/AtlasServerManager.Designer.cs @@ -252,7 +252,7 @@ private void InitializeComponent() this.ServerUpdatingMessage.Location = new System.Drawing.Point(0, 2); this.ServerUpdatingMessage.Multiline = true; this.ServerUpdatingMessage.Name = "ServerUpdatingMessage"; - this.ServerUpdatingMessage.Size = new System.Drawing.Size(461, 122); + this.ServerUpdatingMessage.Size = new System.Drawing.Size(461, 125); this.ServerUpdatingMessage.TabIndex = 6; this.ServerUpdatingMessage.Text = "Atlas is now updating please restart your games to get the update!"; // @@ -385,7 +385,7 @@ private void InitializeComponent() this.rCONToolStripMenuItem, this.rCONAllToolStripMenuItem}); this.contextMenuStrip1.Name = "contextMenuStrip1"; - this.contextMenuStrip1.Size = new System.Drawing.Size(155, 92); + this.contextMenuStrip1.Size = new System.Drawing.Size(166, 92); // // serverToolStripMenuItem // @@ -394,25 +394,25 @@ private void InitializeComponent() this.removeToolStripMenuItem, this.editSettingsToolStripMenuItem}); this.serverToolStripMenuItem.Name = "serverToolStripMenuItem"; - this.serverToolStripMenuItem.Size = new System.Drawing.Size(154, 22); + this.serverToolStripMenuItem.Size = new System.Drawing.Size(165, 22); this.serverToolStripMenuItem.Text = "Server"; // // addToolStripMenuItem // this.addToolStripMenuItem.Name = "addToolStripMenuItem"; - this.addToolStripMenuItem.Size = new System.Drawing.Size(139, 22); + this.addToolStripMenuItem.Size = new System.Drawing.Size(148, 22); this.addToolStripMenuItem.Text = "Add"; // // removeToolStripMenuItem // this.removeToolStripMenuItem.Name = "removeToolStripMenuItem"; - this.removeToolStripMenuItem.Size = new System.Drawing.Size(139, 22); + this.removeToolStripMenuItem.Size = new System.Drawing.Size(148, 22); this.removeToolStripMenuItem.Text = "Remove"; // // editSettingsToolStripMenuItem // this.editSettingsToolStripMenuItem.Name = "editSettingsToolStripMenuItem"; - this.editSettingsToolStripMenuItem.Size = new System.Drawing.Size(139, 22); + this.editSettingsToolStripMenuItem.Size = new System.Drawing.Size(148, 22); this.editSettingsToolStripMenuItem.Text = "Edit Settings"; // // manageToolStripMenuItem @@ -421,19 +421,19 @@ private void InitializeComponent() this.startToolStripMenuItem, this.stopToolStripMenuItem}); this.manageToolStripMenuItem.Name = "manageToolStripMenuItem"; - this.manageToolStripMenuItem.Size = new System.Drawing.Size(154, 22); + this.manageToolStripMenuItem.Size = new System.Drawing.Size(165, 22); this.manageToolStripMenuItem.Text = "Manage"; // // startToolStripMenuItem // this.startToolStripMenuItem.Name = "startToolStripMenuItem"; - this.startToolStripMenuItem.Size = new System.Drawing.Size(98, 22); + this.startToolStripMenuItem.Size = new System.Drawing.Size(103, 22); this.startToolStripMenuItem.Text = "Start"; // // stopToolStripMenuItem // this.stopToolStripMenuItem.Name = "stopToolStripMenuItem"; - this.stopToolStripMenuItem.Size = new System.Drawing.Size(98, 22); + this.stopToolStripMenuItem.Size = new System.Drawing.Size(103, 22); this.stopToolStripMenuItem.Text = "Stop"; // // rCONToolStripMenuItem @@ -446,43 +446,43 @@ private void InitializeComponent() this.loadPluginToolStripMenuItem, this.unloadPluginToolStripMenuItem}); this.rCONToolStripMenuItem.Name = "rCONToolStripMenuItem"; - this.rCONToolStripMenuItem.Size = new System.Drawing.Size(154, 22); + this.rCONToolStripMenuItem.Size = new System.Drawing.Size(165, 22); this.rCONToolStripMenuItem.Text = "RCON Selected"; // // broadcastToolStripMenuItem // this.broadcastToolStripMenuItem.Name = "broadcastToolStripMenuItem"; - this.broadcastToolStripMenuItem.Size = new System.Drawing.Size(176, 22); + this.broadcastToolStripMenuItem.Size = new System.Drawing.Size(192, 22); this.broadcastToolStripMenuItem.Text = "Broadcast"; // // saveWorldToolStripMenuItem // this.saveWorldToolStripMenuItem.Name = "saveWorldToolStripMenuItem"; - this.saveWorldToolStripMenuItem.Size = new System.Drawing.Size(176, 22); + this.saveWorldToolStripMenuItem.Size = new System.Drawing.Size(192, 22); this.saveWorldToolStripMenuItem.Text = "Save World"; // // closeSaveWorldToolStripMenuItem // this.closeSaveWorldToolStripMenuItem.Name = "closeSaveWorldToolStripMenuItem"; - this.closeSaveWorldToolStripMenuItem.Size = new System.Drawing.Size(176, 22); + this.closeSaveWorldToolStripMenuItem.Size = new System.Drawing.Size(192, 22); this.closeSaveWorldToolStripMenuItem.Text = "Close + Save World"; // // customCommandToolStripMenuItem // this.customCommandToolStripMenuItem.Name = "customCommandToolStripMenuItem"; - this.customCommandToolStripMenuItem.Size = new System.Drawing.Size(176, 22); + this.customCommandToolStripMenuItem.Size = new System.Drawing.Size(192, 22); this.customCommandToolStripMenuItem.Text = "Custom Command"; // // loadPluginToolStripMenuItem // this.loadPluginToolStripMenuItem.Name = "loadPluginToolStripMenuItem"; - this.loadPluginToolStripMenuItem.Size = new System.Drawing.Size(176, 22); + this.loadPluginToolStripMenuItem.Size = new System.Drawing.Size(192, 22); this.loadPluginToolStripMenuItem.Text = "Load Plugin"; // // unloadPluginToolStripMenuItem // this.unloadPluginToolStripMenuItem.Name = "unloadPluginToolStripMenuItem"; - this.unloadPluginToolStripMenuItem.Size = new System.Drawing.Size(176, 22); + this.unloadPluginToolStripMenuItem.Size = new System.Drawing.Size(192, 22); this.unloadPluginToolStripMenuItem.Text = "Unload Plugin"; // // rCONAllToolStripMenuItem @@ -495,43 +495,43 @@ private void InitializeComponent() this.loadPluginToolStripMenuItem1, this.unloadPluginToolStripMenuItem1}); this.rCONAllToolStripMenuItem.Name = "rCONAllToolStripMenuItem"; - this.rCONAllToolStripMenuItem.Size = new System.Drawing.Size(154, 22); + this.rCONAllToolStripMenuItem.Size = new System.Drawing.Size(165, 22); this.rCONAllToolStripMenuItem.Text = "RCON All"; // // broadcastToolStripMenuItem1 // this.broadcastToolStripMenuItem1.Name = "broadcastToolStripMenuItem1"; - this.broadcastToolStripMenuItem1.Size = new System.Drawing.Size(176, 22); + this.broadcastToolStripMenuItem1.Size = new System.Drawing.Size(192, 22); this.broadcastToolStripMenuItem1.Text = "Broadcast"; // // saveWorldToolStripMenuItem1 // this.saveWorldToolStripMenuItem1.Name = "saveWorldToolStripMenuItem1"; - this.saveWorldToolStripMenuItem1.Size = new System.Drawing.Size(176, 22); + this.saveWorldToolStripMenuItem1.Size = new System.Drawing.Size(192, 22); this.saveWorldToolStripMenuItem1.Text = "Save World"; // // closeSaveWorldToolStripMenuItem1 // this.closeSaveWorldToolStripMenuItem1.Name = "closeSaveWorldToolStripMenuItem1"; - this.closeSaveWorldToolStripMenuItem1.Size = new System.Drawing.Size(176, 22); + this.closeSaveWorldToolStripMenuItem1.Size = new System.Drawing.Size(192, 22); this.closeSaveWorldToolStripMenuItem1.Text = "Close + Save World"; // // customCommandToolStripMenuItem1 // this.customCommandToolStripMenuItem1.Name = "customCommandToolStripMenuItem1"; - this.customCommandToolStripMenuItem1.Size = new System.Drawing.Size(176, 22); + this.customCommandToolStripMenuItem1.Size = new System.Drawing.Size(192, 22); this.customCommandToolStripMenuItem1.Text = "Custom Command"; // // loadPluginToolStripMenuItem1 // this.loadPluginToolStripMenuItem1.Name = "loadPluginToolStripMenuItem1"; - this.loadPluginToolStripMenuItem1.Size = new System.Drawing.Size(176, 22); + this.loadPluginToolStripMenuItem1.Size = new System.Drawing.Size(192, 22); this.loadPluginToolStripMenuItem1.Text = "Load Plugin"; // // unloadPluginToolStripMenuItem1 // this.unloadPluginToolStripMenuItem1.Name = "unloadPluginToolStripMenuItem1"; - this.unloadPluginToolStripMenuItem1.Size = new System.Drawing.Size(176, 22); + this.unloadPluginToolStripMenuItem1.Size = new System.Drawing.Size(192, 22); this.unloadPluginToolStripMenuItem1.Text = "Unload Plugin"; // // tabControl1 @@ -791,7 +791,7 @@ private void InitializeComponent() this.rCONAllToolStripMenuItem1}); this.menuStrip1.Location = new System.Drawing.Point(0, 0); this.menuStrip1.Name = "menuStrip1"; - this.menuStrip1.Size = new System.Drawing.Size(684, 24); + this.menuStrip1.Size = new System.Drawing.Size(684, 25); this.menuStrip1.TabIndex = 1; this.menuStrip1.Text = "menuStrip1"; // @@ -802,25 +802,25 @@ private void InitializeComponent() this.removeToolStripMenuItem1, this.editSettingsToolStripMenuItem1}); this.serverToolStripMenuItem1.Name = "serverToolStripMenuItem1"; - this.serverToolStripMenuItem1.Size = new System.Drawing.Size(51, 20); + this.serverToolStripMenuItem1.Size = new System.Drawing.Size(57, 21); this.serverToolStripMenuItem1.Text = "Server"; // // addToolStripMenuItem1 // this.addToolStripMenuItem1.Name = "addToolStripMenuItem1"; - this.addToolStripMenuItem1.Size = new System.Drawing.Size(139, 22); + this.addToolStripMenuItem1.Size = new System.Drawing.Size(148, 22); this.addToolStripMenuItem1.Text = "Add"; // // removeToolStripMenuItem1 // this.removeToolStripMenuItem1.Name = "removeToolStripMenuItem1"; - this.removeToolStripMenuItem1.Size = new System.Drawing.Size(139, 22); + this.removeToolStripMenuItem1.Size = new System.Drawing.Size(148, 22); this.removeToolStripMenuItem1.Text = "Remove"; // // editSettingsToolStripMenuItem1 // this.editSettingsToolStripMenuItem1.Name = "editSettingsToolStripMenuItem1"; - this.editSettingsToolStripMenuItem1.Size = new System.Drawing.Size(139, 22); + this.editSettingsToolStripMenuItem1.Size = new System.Drawing.Size(148, 22); this.editSettingsToolStripMenuItem1.Text = "Edit Settings"; // // managerToolStripMenuItem @@ -829,19 +829,19 @@ private void InitializeComponent() this.startToolStripMenuItem1, this.stopToolStripMenuItem1}); this.managerToolStripMenuItem.Name = "managerToolStripMenuItem"; - this.managerToolStripMenuItem.Size = new System.Drawing.Size(62, 20); + this.managerToolStripMenuItem.Size = new System.Drawing.Size(68, 21); this.managerToolStripMenuItem.Text = "Manage"; // // startToolStripMenuItem1 // this.startToolStripMenuItem1.Name = "startToolStripMenuItem1"; - this.startToolStripMenuItem1.Size = new System.Drawing.Size(98, 22); + this.startToolStripMenuItem1.Size = new System.Drawing.Size(103, 22); this.startToolStripMenuItem1.Text = "Start"; // // stopToolStripMenuItem1 // this.stopToolStripMenuItem1.Name = "stopToolStripMenuItem1"; - this.stopToolStripMenuItem1.Size = new System.Drawing.Size(98, 22); + this.stopToolStripMenuItem1.Size = new System.Drawing.Size(103, 22); this.stopToolStripMenuItem1.Text = "Stop"; // // rCONSelecteToolStripMenuItem @@ -854,43 +854,43 @@ private void InitializeComponent() this.loadPluginToolStripMenuItem2, this.unloadPluginToolStripMenuItem2}); this.rCONSelecteToolStripMenuItem.Name = "rCONSelecteToolStripMenuItem"; - this.rCONSelecteToolStripMenuItem.Size = new System.Drawing.Size(99, 20); + this.rCONSelecteToolStripMenuItem.Size = new System.Drawing.Size(109, 21); this.rCONSelecteToolStripMenuItem.Text = "RCON Selected"; // // broadcastToolStripMenuItem2 // this.broadcastToolStripMenuItem2.Name = "broadcastToolStripMenuItem2"; - this.broadcastToolStripMenuItem2.Size = new System.Drawing.Size(176, 22); + this.broadcastToolStripMenuItem2.Size = new System.Drawing.Size(192, 22); this.broadcastToolStripMenuItem2.Text = "Broadcast"; // // saveWorldToolStripMenuItem2 // this.saveWorldToolStripMenuItem2.Name = "saveWorldToolStripMenuItem2"; - this.saveWorldToolStripMenuItem2.Size = new System.Drawing.Size(176, 22); + this.saveWorldToolStripMenuItem2.Size = new System.Drawing.Size(192, 22); this.saveWorldToolStripMenuItem2.Text = "Save World"; // // closeSaveWorldToolStripMenuItem2 // this.closeSaveWorldToolStripMenuItem2.Name = "closeSaveWorldToolStripMenuItem2"; - this.closeSaveWorldToolStripMenuItem2.Size = new System.Drawing.Size(176, 22); + this.closeSaveWorldToolStripMenuItem2.Size = new System.Drawing.Size(192, 22); this.closeSaveWorldToolStripMenuItem2.Text = "Close + Save World"; // // customCommandToolStripMenuItem2 // this.customCommandToolStripMenuItem2.Name = "customCommandToolStripMenuItem2"; - this.customCommandToolStripMenuItem2.Size = new System.Drawing.Size(176, 22); + this.customCommandToolStripMenuItem2.Size = new System.Drawing.Size(192, 22); this.customCommandToolStripMenuItem2.Text = "Custom Command"; // // loadPluginToolStripMenuItem2 // this.loadPluginToolStripMenuItem2.Name = "loadPluginToolStripMenuItem2"; - this.loadPluginToolStripMenuItem2.Size = new System.Drawing.Size(176, 22); + this.loadPluginToolStripMenuItem2.Size = new System.Drawing.Size(192, 22); this.loadPluginToolStripMenuItem2.Text = "Load Plugin"; // // unloadPluginToolStripMenuItem2 // this.unloadPluginToolStripMenuItem2.Name = "unloadPluginToolStripMenuItem2"; - this.unloadPluginToolStripMenuItem2.Size = new System.Drawing.Size(176, 22); + this.unloadPluginToolStripMenuItem2.Size = new System.Drawing.Size(192, 22); this.unloadPluginToolStripMenuItem2.Text = "Unload Plugin"; // // rCONAllToolStripMenuItem1 @@ -903,43 +903,43 @@ private void InitializeComponent() this.loadPluginToolStripMenuItem3, this.unloadPluginToolStripMenuItem3}); this.rCONAllToolStripMenuItem1.Name = "rCONAllToolStripMenuItem1"; - this.rCONAllToolStripMenuItem1.Size = new System.Drawing.Size(69, 20); + this.rCONAllToolStripMenuItem1.Size = new System.Drawing.Size(74, 21); this.rCONAllToolStripMenuItem1.Text = "RCON All"; // // broadcastToolStripMenuItem3 // this.broadcastToolStripMenuItem3.Name = "broadcastToolStripMenuItem3"; - this.broadcastToolStripMenuItem3.Size = new System.Drawing.Size(176, 22); + this.broadcastToolStripMenuItem3.Size = new System.Drawing.Size(192, 22); this.broadcastToolStripMenuItem3.Text = "Broadcast"; // // saveWorldToolStripMenuItem3 // this.saveWorldToolStripMenuItem3.Name = "saveWorldToolStripMenuItem3"; - this.saveWorldToolStripMenuItem3.Size = new System.Drawing.Size(176, 22); + this.saveWorldToolStripMenuItem3.Size = new System.Drawing.Size(192, 22); this.saveWorldToolStripMenuItem3.Text = "Save World"; // // closeSaveWorldToolStripMenuItem3 // this.closeSaveWorldToolStripMenuItem3.Name = "closeSaveWorldToolStripMenuItem3"; - this.closeSaveWorldToolStripMenuItem3.Size = new System.Drawing.Size(176, 22); + this.closeSaveWorldToolStripMenuItem3.Size = new System.Drawing.Size(192, 22); this.closeSaveWorldToolStripMenuItem3.Text = "Close + Save World"; // // customCommandToolStripMenuItem3 // this.customCommandToolStripMenuItem3.Name = "customCommandToolStripMenuItem3"; - this.customCommandToolStripMenuItem3.Size = new System.Drawing.Size(176, 22); + this.customCommandToolStripMenuItem3.Size = new System.Drawing.Size(192, 22); this.customCommandToolStripMenuItem3.Text = "Custom Command"; // // loadPluginToolStripMenuItem3 // this.loadPluginToolStripMenuItem3.Name = "loadPluginToolStripMenuItem3"; - this.loadPluginToolStripMenuItem3.Size = new System.Drawing.Size(176, 22); + this.loadPluginToolStripMenuItem3.Size = new System.Drawing.Size(192, 22); this.loadPluginToolStripMenuItem3.Text = "Load Plugin"; // // unloadPluginToolStripMenuItem3 // this.unloadPluginToolStripMenuItem3.Name = "unloadPluginToolStripMenuItem3"; - this.unloadPluginToolStripMenuItem3.Size = new System.Drawing.Size(176, 22); + this.unloadPluginToolStripMenuItem3.Size = new System.Drawing.Size(192, 22); this.unloadPluginToolStripMenuItem3.Text = "Unload Plugin"; // // AtlasServerManager @@ -953,7 +953,7 @@ private void InitializeComponent() this.MainMenuStrip = this.menuStrip1; this.Margin = new System.Windows.Forms.Padding(4); this.Name = "AtlasServerManager"; - this.Text = "Atlas Server Manager 4.1"; + this.Text = "Atlas Server Manager 4.1A"; this.Load += new System.EventHandler(this.Form1_Load); this.tabPage2.ResumeLayout(false); this.groupBox3.ResumeLayout(false); diff --git a/AtlasServerManager/Includes/Worker.cs b/AtlasServerManager/Includes/Worker.cs index fd32456..2a049c6 100644 --- a/AtlasServerManager/Includes/Worker.cs +++ b/AtlasServerManager/Includes/Worker.cs @@ -47,9 +47,15 @@ public static void AddWorker(WorkerType Index, AtlasServerManager AtlasMgr) public static void Init(AtlasServerManager AtlasMgr, bool StartUpdateCheck) { AddWorker(WorkerType.StatusUpdate, AtlasMgr); - AddWorker(WorkerType.ServerMonitor, AtlasMgr); - if (StartUpdateCheck) + if (StartUpdateCheck) { + ServerUpdater.Updating = true; + ServerUpdater.ForcedUpdate = true; AddWorker(WorkerType.ServerUpdate, AtlasMgr); + } + + AddWorker(WorkerType.ServerMonitor, AtlasMgr); + + } public static void StopUpdating() diff --git a/AtlasServerManager/Includes/Workers/ServerMonitor.cs b/AtlasServerManager/Includes/Workers/ServerMonitor.cs index a6d3187..28faebb 100644 --- a/AtlasServerManager/Includes/Workers/ServerMonitor.cs +++ b/AtlasServerManager/Includes/Workers/ServerMonitor.cs @@ -10,9 +10,10 @@ public static void CheckServerStatus(AtlasServerManager AtlasMgr, CancellationTo bool SavedAfterLaunch = false; while (true) { + AtlasMgr.Log("123"); if (token.IsCancellationRequested) break; AtlasMgr.Invoke((System.Windows.Forms.MethodInvoker)delegate () - { + { if (!ServerUpdater.Updating && AtlasMgr.BootWhenOffCheck.Checked) { foreach (ArkServerListViewItem ASLVI in AtlasMgr.ServerList.Items) diff --git a/AtlasServerManager/Includes/Workers/ServerUpdater.cs b/AtlasServerManager/Includes/Workers/ServerUpdater.cs index e317f8e..8f3b0bb 100644 --- a/AtlasServerManager/Includes/Workers/ServerUpdater.cs +++ b/AtlasServerManager/Includes/Workers/ServerUpdater.cs @@ -149,7 +149,7 @@ private static int GetCurrentBuildID(AtlasServerManager AtlasMgr) string UpdatePath = ASLVI.GetServerData().ServerPath; if (UpdatePath.StartsWith("./") || UpdatePath.StartsWith(@".\")) UpdatePath = UpdatePath.Replace("./", System.AppDomain.CurrentDomain.BaseDirectory).Replace(@".\", System.AppDomain.CurrentDomain.BaseDirectory).Replace("//", "/").Replace(@"\\", @"\"); - if (!Directory.Exists(Path.GetDirectoryName(UpdatePath))) Directory.CreateDirectory(Path.GetDirectoryName(UpdatePath)); + if (!Directory.Exists(UpdatePath)) Directory.CreateDirectory(UpdatePath); if (UpdatePath.Contains(@"ShooterGame\Binaries\Win64")) UpdatePath = Regex.Split(UpdatePath, "\\ShooterGame")[0]; @@ -178,7 +178,7 @@ private static int GetCurrentBuildID(AtlasServerManager AtlasMgr) } } } - UpdatePaths.Clear(); + //UpdatePaths.Clear(); return Version; } @@ -246,7 +246,7 @@ private static void UpdateAtlas(AtlasServerManager AtlasMgr, string UpdateVersio if (!AtlasMgr.SteamWindowCheck.Checked) UpdateProcess.BeginOutputReadLine(); UpdateProcess.WaitForExit(); } - UpdatePaths.Clear(); + // UpdatePaths.Clear(); } private static void StartServers(AtlasServerManager AtlasMgr) From d0cf1a286374d29b6250677e1e6b501324de8312 Mon Sep 17 00:00:00 2001 From: myl86898244 Date: Tue, 22 Jan 2019 13:07:02 +0800 Subject: [PATCH 09/10] Cancel asm launch Force UPDAT --- AtlasServerManager/Includes/Worker.cs | 1 - 1 file changed, 1 deletion(-) diff --git a/AtlasServerManager/Includes/Worker.cs b/AtlasServerManager/Includes/Worker.cs index 2a049c6..6575c24 100644 --- a/AtlasServerManager/Includes/Worker.cs +++ b/AtlasServerManager/Includes/Worker.cs @@ -49,7 +49,6 @@ public static void Init(AtlasServerManager AtlasMgr, bool StartUpdateCheck) AddWorker(WorkerType.StatusUpdate, AtlasMgr); if (StartUpdateCheck) { ServerUpdater.Updating = true; - ServerUpdater.ForcedUpdate = true; AddWorker(WorkerType.ServerUpdate, AtlasMgr); } From 5fcda1f25f32e6ba373ea5d9e724a938c551a766 Mon Sep 17 00:00:00 2001 From: myl86898244 Date: Thu, 24 Jan 2019 11:22:26 +0800 Subject: [PATCH 10/10] Add manual translation --- .../AtlasServerManager.Designer.cs | 52 ++++- AtlasServerManager/AtlasServerManager.cs | 215 ++++++++++++++++-- AtlasServerManager/AtlasServerManager.csproj | 7 + AtlasServerManager/Includes/Registry.cs | 17 +- AtlasServerManager/Language/zh_cn.json | 99 ++++++++ AtlasServerManager/Program.cs | 22 +- AtlasServerManager/Translate.cs | 4 + AtlasServerManager/packages.config | 4 + 8 files changed, 389 insertions(+), 31 deletions(-) create mode 100644 AtlasServerManager/Language/zh_cn.json create mode 100644 AtlasServerManager/packages.config diff --git a/AtlasServerManager/AtlasServerManager.Designer.cs b/AtlasServerManager/AtlasServerManager.Designer.cs index c29c6cb..40a707c 100644 --- a/AtlasServerManager/AtlasServerManager.Designer.cs +++ b/AtlasServerManager/AtlasServerManager.Designer.cs @@ -114,6 +114,9 @@ private void InitializeComponent() this.customCommandToolStripMenuItem3 = new System.Windows.Forms.ToolStripMenuItem(); this.loadPluginToolStripMenuItem3 = new System.Windows.Forms.ToolStripMenuItem(); this.unloadPluginToolStripMenuItem3 = new System.Windows.Forms.ToolStripMenuItem(); + this.languageToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.en = new System.Windows.Forms.ToolStripMenuItem(); + this.zh_cn = new System.Windows.Forms.ToolStripMenuItem(); this.fontDialog1 = new System.Windows.Forms.FontDialog(); this.tabPage2.SuspendLayout(); this.groupBox3.SuspendLayout(); @@ -143,18 +146,18 @@ private void InitializeComponent() this.tabPage2.Controls.Add(this.ClearConfigButton); this.tabPage2.Controls.Add(this.button1); this.tabPage2.Controls.Add(this.groupBox3); - this.tabPage2.Location = new System.Drawing.Point(4, 22); + this.tabPage2.Location = new System.Drawing.Point(4, 25); this.tabPage2.Margin = new System.Windows.Forms.Padding(4); this.tabPage2.Name = "tabPage2"; this.tabPage2.Padding = new System.Windows.Forms.Padding(4); - this.tabPage2.Size = new System.Drawing.Size(676, 298); + this.tabPage2.Size = new System.Drawing.Size(676, 295); this.tabPage2.TabIndex = 1; this.tabPage2.Text = "Options"; // // ClearConfigButton // this.ClearConfigButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.ClearConfigButton.Location = new System.Drawing.Point(482, 247); + this.ClearConfigButton.Location = new System.Drawing.Point(482, 244); this.ClearConfigButton.Name = "ClearConfigButton"; this.ClearConfigButton.Size = new System.Drawing.Size(191, 44); this.ClearConfigButton.TabIndex = 8; @@ -164,7 +167,7 @@ private void InitializeComponent() // button1 // this.button1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.button1.Location = new System.Drawing.Point(482, 198); + this.button1.Location = new System.Drawing.Point(482, 195); this.button1.Name = "button1"; this.button1.Size = new System.Drawing.Size(191, 44); this.button1.TabIndex = 7; @@ -186,7 +189,7 @@ private void InitializeComponent() this.groupBox3.Controls.Add(this.label5); this.groupBox3.Location = new System.Drawing.Point(3, 7); this.groupBox3.Name = "groupBox3"; - this.groupBox3.Size = new System.Drawing.Size(473, 283); + this.groupBox3.Size = new System.Drawing.Size(473, 280); this.groupBox3.TabIndex = 5; this.groupBox3.TabStop = false; this.groupBox3.Text = "Atlas Server Automatic Update"; @@ -227,8 +230,8 @@ private void InitializeComponent() // splitContainer2.Panel2 // this.splitContainer2.Panel2.Controls.Add(this.ServerUpdatingMessage); - this.splitContainer2.Size = new System.Drawing.Size(461, 146); - this.splitContainer2.SplitterDistance = 69; + this.splitContainer2.Size = new System.Drawing.Size(461, 143); + this.splitContainer2.SplitterDistance = 67; this.splitContainer2.SplitterWidth = 1; this.splitContainer2.TabIndex = 7; // @@ -240,7 +243,7 @@ private void InitializeComponent() this.ServerUpdateMessage.Location = new System.Drawing.Point(0, 0); this.ServerUpdateMessage.Multiline = true; this.ServerUpdateMessage.Name = "ServerUpdateMessage"; - this.ServerUpdateMessage.Size = new System.Drawing.Size(461, 66); + this.ServerUpdateMessage.Size = new System.Drawing.Size(461, 64); this.ServerUpdateMessage.TabIndex = 5; this.ServerUpdateMessage.Text = "Atlas Updating in {time}!"; // @@ -252,7 +255,7 @@ private void InitializeComponent() this.ServerUpdatingMessage.Location = new System.Drawing.Point(0, 2); this.ServerUpdatingMessage.Multiline = true; this.ServerUpdatingMessage.Name = "ServerUpdatingMessage"; - this.ServerUpdatingMessage.Size = new System.Drawing.Size(461, 125); + this.ServerUpdatingMessage.Size = new System.Drawing.Size(461, 133); this.ServerUpdatingMessage.TabIndex = 6; this.ServerUpdatingMessage.Text = "Atlas is now updating please restart your games to get the update!"; // @@ -788,7 +791,8 @@ private void InitializeComponent() this.serverToolStripMenuItem1, this.managerToolStripMenuItem, this.rCONSelecteToolStripMenuItem, - this.rCONAllToolStripMenuItem1}); + this.rCONAllToolStripMenuItem1, + this.languageToolStripMenuItem}); this.menuStrip1.Location = new System.Drawing.Point(0, 0); this.menuStrip1.Name = "menuStrip1"; this.menuStrip1.Size = new System.Drawing.Size(684, 25); @@ -942,6 +946,29 @@ private void InitializeComponent() this.unloadPluginToolStripMenuItem3.Size = new System.Drawing.Size(192, 22); this.unloadPluginToolStripMenuItem3.Text = "Unload Plugin"; // + // languageToolStripMenuItem + // + this.languageToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.en, + this.zh_cn}); + this.languageToolStripMenuItem.Name = "languageToolStripMenuItem"; + this.languageToolStripMenuItem.Size = new System.Drawing.Size(77, 21); + this.languageToolStripMenuItem.Text = "Language"; + // + // en + // + this.en.Name = "en"; + this.en.Size = new System.Drawing.Size(117, 22); + this.en.Text = "English"; + this.en.Click += new System.EventHandler(this.Language_Click); + // + // zh_cn + // + this.zh_cn.Name = "zh_cn"; + this.zh_cn.Size = new System.Drawing.Size(117, 22); + this.zh_cn.Text = "中文"; + this.zh_cn.Click += new System.EventHandler(this.Language_Click); + // // AtlasServerManager // this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F); @@ -953,7 +980,7 @@ private void InitializeComponent() this.MainMenuStrip = this.menuStrip1; this.Margin = new System.Windows.Forms.Padding(4); this.Name = "AtlasServerManager"; - this.Text = "Atlas Server Manager 4.1A"; + this.Text = "Atlas Server Manager 4.1B"; this.Load += new System.EventHandler(this.Form1_Load); this.tabPage2.ResumeLayout(false); this.groupBox3.ResumeLayout(false); @@ -1075,5 +1102,8 @@ private void InitializeComponent() public System.Windows.Forms.NumericUpDown StartupDelayNum; private System.Windows.Forms.Label label3; public System.Windows.Forms.CheckBox DebugCheck; + private System.Windows.Forms.ToolStripMenuItem languageToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem en; + private System.Windows.Forms.ToolStripMenuItem zh_cn; } } \ No newline at end of file diff --git a/AtlasServerManager/AtlasServerManager.cs b/AtlasServerManager/AtlasServerManager.cs index 1d6c40d..02faf51 100644 --- a/AtlasServerManager/AtlasServerManager.cs +++ b/AtlasServerManager/AtlasServerManager.cs @@ -14,21 +14,176 @@ public partial class AtlasServerManager : Form private static AtlasServerManager instance; private delegate void RichTextBoxUpdateEventHandler(string txt); private InputDialog inputDialog; + #region Translation + public void SetLanguage(string language) + { + ((ToolStripMenuItem)languageToolStripMenuItem.DropDown.Items.Find(language, false)[0]).Checked = true; + } + + public string GetLanguage() + { + foreach (ToolStripMenuItem dropDownItem in languageToolStripMenuItem.DropDown.Items) + { + if (dropDownItem.Checked) + { + return dropDownItem.Name; + } + } + return "en"; + } + void TranslationHelp(string t, Control.ControlCollection control) + { + if (Program.LanguageJObject == null) + { + return; + } + foreach (Control con in control) + { + TranslationHelp(t + con.Name, con); + } + } + void TranslationHelp(string t, object control) + { + if (Program.LanguageJObject == null) + { + return; + } + if (control.GetType() == typeof(MenuStrip)) + { + t += "-" + ((MenuStrip)control).Name; + //tojson(t, ((MenuStrip)control).Text); + ((MenuStrip)control).Text = TranslationGet(t, ((MenuStrip)control).Text); + if (((MenuStrip)control).Items.Count > 0) + { + foreach (ToolStripMenuItem item in ((MenuStrip)control).Items) + { + TranslationHelp(t, item); + } + } + } + else if (control.GetType() == typeof(ToolStripMenuItem)) + { + t += "-" + ((ToolStripMenuItem)control).Name; + //tojson(t, ((ToolStripMenuItem)control).Text); + ((ToolStripMenuItem)control).Text = TranslationGet(t, ((ToolStripMenuItem)control).Text); + if (((ToolStripMenuItem)control).DropDownItems.Count > 0) + { + foreach (ToolStripDropDownItem dropDownItem in ((ToolStripMenuItem)control).DropDownItems) + { + TranslationHelp(t, dropDownItem); + } + } + } + else if (control.GetType() == typeof(ToolStripDropDownItem)) + { + t += "-" + ((ToolStripDropDownItem)control).Name; + //tojson(t, ((ToolStripDropDownItem)control).Text); + ((ToolStripDropDownItem)control).Text = TranslationGet(t, ((ToolStripDropDownItem)control).Text); + + } + else if (control.GetType() == typeof(TabControl)) + { + t += "-" + ((TabControl)control).Name; + //tojson(t, ((TabControl)control).Text); + ((TabControl)control).Text = TranslationGet(t, ((TabControl)control).Text); + if (((TabControl)control).TabPages.Count > 0) + { + foreach (TabPage tabControl in ((TabControl)control).TabPages) + { + TranslationHelp(t, tabControl); + } + } + } + else if (control.GetType() == typeof(TabPage) || control.GetType() == typeof(GroupBox) || control.GetType() == typeof(SplitContainer) || control.GetType() == typeof(SplitterPanel)) + { + t += "-" + ((Control)control).Name; + //tojson(t, ((TabPage)control).Text); + ((Control)control).Text = TranslationGet(t, ((Control)control).Text); + if (((Control)control).Controls.Count > 0) + { + foreach (Control control1 in ((Control)control).Controls) + { + TranslationHelp(t, control1); + } + } + } + else if (control.GetType() == typeof(Button) || control.GetType() == typeof(Label) || control.GetType() == typeof(CheckBox) || control.GetType() == typeof(NumericUpDown)) + { + t += "-" + ((Control)control).Name; + //tojson(t, ((Control)control).Text); + ((Control)control).Text = TranslationGet(t, ((Control)control).Text); + + } + else if (control.GetType() == typeof(ArkListView)) + { + if (((ArkListView)control).Columns.Count > 0) + { + foreach (ColumnHeader column in ((ArkListView)control).Columns) + { + t += "-" + column.Name; + //tojson(t, ((Control)control).Text); + column.Text = TranslationGet(t, column.Text); + } + } + } +// else +// { +// Log(control.GetType().ToString()); +// } + } + string TranslationGet(string key, string defaultText) + { + if (Program.LanguageJObject != null && Program.LanguageJObject.ContainsKey(key)) + { + return Program.LanguageJObject[key].ToString(); + } +// else +// { +// tojson(key, defaultText); +// +// } + + return defaultText; + } + /// + /// Capture untranslated control use + /// + /// + /// + void tojson(string t, string text) + { + richTextBox1.AppendText("\n\"" + t + "\":\"" + text + "\","); + } + #endregion - public AtlasServerManager() + public AtlasServerManager(string arkManagerPath, string language) { + this.ArkManagerPath = arkManagerPath; InitializeComponent(); + SetLanguage(language); + + instance = this; // // ServerList // ServerList = new ArkListView { - AllowColumnReorder = true, BackColor = System.Drawing.SystemColors.Window, - CheckBoxes = true, ContextMenuStrip = contextMenuStrip1, Dock = DockStyle.Fill, - FullRowSelect = true, GridLines = true, Location = new System.Drawing.Point(4, 4), - Margin = new Padding(4), MultiSelect = false, Name = "ServerList", RightToLeft = System.Windows.Forms.RightToLeft.No, - Size = new System.Drawing.Size(668, 256), TabIndex = 0, UseCompatibleStateImageBehavior = false, + AllowColumnReorder = true, + BackColor = System.Drawing.SystemColors.Window, + CheckBoxes = true, + ContextMenuStrip = contextMenuStrip1, + Dock = DockStyle.Fill, + FullRowSelect = true, + GridLines = true, + Location = new System.Drawing.Point(4, 4), + Margin = new Padding(4), + MultiSelect = false, + Name = "ServerList", + RightToLeft = System.Windows.Forms.RightToLeft.No, + Size = new System.Drawing.Size(668, 256), + TabIndex = 0, + UseCompatibleStateImageBehavior = false, View = View.Details }; ServerList.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { @@ -39,12 +194,14 @@ public AtlasServerManager() private void Form1_Load(object sender, EventArgs e) { + TranslationHelp("Main", this.Controls); + //return; //Translate.TranslateMenu(menuStrip1.Items, "zh-TW"); //Translate.TranslateComponents(Controls, "zh-TW"); //Translate.TranslateListView(ServerList.Columns, "zh-TW"); //Translate.FirstTranslate = true; ASMTitle = Text; - ArkManagerPath = Path.GetDirectoryName(Application.ExecutablePath).TrimEnd(Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar).Replace("/", @"\") + Path.DirectorySeparatorChar; + //ArkManagerPath = Path.GetDirectoryName(Application.ExecutablePath).TrimEnd(Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar).Replace("/", @"\") + Path.DirectorySeparatorChar; SteamPath = Path.Combine(ArkManagerPath, @"Steam\"); Registry.LoadRegConfig(this); Worker.Init(this, ServerList.Items.Count > 0); @@ -68,6 +225,7 @@ private void Form1_Load(object sender, EventArgs e) private void AddServer() { AddServer AddSrv = new AddServer(ServerPath); + TranslationHelp(AddSrv.Name, AddSrv.Controls); if (AddSrv.ShowDialog() == DialogResult.OK) { ServerList.Items.Add(new ArkServerListViewItem(AddSrv.ServerData)); @@ -80,10 +238,13 @@ private void AddServer() private void RemoveServer() { - if (ServerList.FocusedItem != null && MessageBox.Show("Are you sure you want to delete ServerX:" + ((ArkServerListViewItem)ServerList.FocusedItem).GetServerData().ServerX + ", ServerY: " + ((ArkServerListViewItem)ServerList.FocusedItem).GetServerData().ServerY + ", Port: " + ((ArkServerListViewItem)ServerList.FocusedItem).GetServerData().ServerPort + "?\n Press 'Yes' To Delete!", "Delete ServerX:" + ((ArkServerListViewItem)ServerList.FocusedItem).GetServerData().ServerX + ", ServerY: " + ((ArkServerListViewItem)ServerList.FocusedItem).GetServerData().ServerY + ", Port: " + ((ArkServerListViewItem)ServerList.FocusedItem).GetServerData().ServerPort + "?", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) + + if (ServerList.FocusedItem != null && MessageBox.Show(string.Format(TranslationGet("RemoveServer-text", "Are you sure you want to delete ServerX: {0}, ServerY: {1}, Port: {2} ?\n Press 'Yes' To Delete!"), + ((ArkServerListViewItem)ServerList.FocusedItem).GetServerData().ServerX, ((ArkServerListViewItem)ServerList.FocusedItem).GetServerData().ServerY, ((ArkServerListViewItem)ServerList.FocusedItem).GetServerData().ServerPort) + , string.Format(TranslationGet("RemoveServer-caption","Delete ServerX:{0}, ServerY: {1}, Port: {2}?"), ((ArkServerListViewItem)ServerList.FocusedItem).GetServerData().ServerX, ((ArkServerListViewItem)ServerList.FocusedItem).GetServerData().ServerY, ((ArkServerListViewItem)ServerList.FocusedItem).GetServerData().ServerPort), MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { ArkServerListViewItem ASLVI = ((ArkServerListViewItem)ServerList.FocusedItem); - Log(ASLVI.GetServerData().AltSaveDirectory + " Removed!"); + Log(ASLVI.GetServerData().AltSaveDirectory + TranslationGet("Removed", " Removed!")); Registry.DeleteServer(ServerList.FocusedItem.Index); ServerList.Items.RemoveAt(ServerList.FocusedItem.Index); if (ServerList.Items.Count == 0) Worker.StopUpdating(); @@ -96,8 +257,9 @@ private void EditServer() { ArkServerListViewItem ASLVI = ((ArkServerListViewItem)ServerList.FocusedItem); AddServer AddSrv = new AddServer(ASLVI.GetServerData(), ServerPath); + TranslationHelp(AddSrv.Name, AddSrv.Controls); if (AddSrv.ShowDialog() == DialogResult.OK) ASLVI.SetServerData(AddSrv.ServerData); - Log(ASLVI.GetServerData().AltSaveDirectory + " Edited!"); + Log(ASLVI.GetServerData().AltSaveDirectory + TranslationGet("Edited", " Edited!")); AddSrv.Dispose(); } } @@ -110,7 +272,7 @@ private void StartServer() ASLVI.GetServerData().StartServer(); ASLVI.UpdateStatus(); Registry.SaveRegConfig(this); - Log(ASLVI.GetServerData().AltSaveDirectory + " Started!"); + Log(ASLVI.GetServerData().AltSaveDirectory + TranslationGet("Started", " Started!")); } } @@ -122,7 +284,7 @@ private void StopServer() ASLVI.GetServerData().StopServer(); ASLVI.UpdateStatus(); Registry.SaveRegConfig(this); - Log(ASLVI.GetServerData().AltSaveDirectory + " Stopped!"); + Log(ASLVI.GetServerData().AltSaveDirectory + TranslationGet("Stopped", " Stopped!")); } } @@ -142,7 +304,7 @@ private void RconBroadcast(bool AllServers) } else { - MessageBox.Show("Please select a server!!!"); + MessageBox.Show(TranslationGet("Please_select_a_server", "Please select a server!!!")); } } @@ -156,11 +318,11 @@ private void RconSaveWorld(bool AllServers) ArkServerListViewItem ASLVI = (ArkServerListViewItem)ServerList.FocusedItem; SourceRconTools.SendCommand("saveworld", ASLVI); } - Log("Saved World!"); + Log(TranslationGet("SavedWorld", "Saved World!")); } else { - MessageBox.Show("Please select a server!!!"); + MessageBox.Show(TranslationGet("Please_select_a_server", "Please select a server!!!")); } } @@ -222,7 +384,24 @@ private void RconPlugin(bool AllServers, bool Load) } } - + private void Language_Click(object sender, EventArgs e) + { + //languageToolStripMenuItem + foreach (ToolStripMenuItem dropDownItem in languageToolStripMenuItem.DropDown.Items) + { + if (dropDownItem.Name == ((ToolStripMenuItem)sender).Name && !((ToolStripMenuItem)sender).Checked) + { + dropDownItem.Checked = true; + Includes.Registry.SaveRegkey("Language", ((ToolStripMenuItem)sender).Name); + Application.Exit(); + Application.Restart(); + } + else + { + dropDownItem.Checked = false; + } + } + } private void SetupCallbacks() { @@ -307,7 +486,7 @@ private void SetupCallbacks() ClearConfigButton.Click += (e, a) => { - if(MessageBox.Show("Are you sure you want to erase all your configurations?", "Configuration Reset", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) + if (MessageBox.Show("Are you sure you want to erase all your configurations?", "Configuration Reset", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { Registry.ClearAll(); ServerList.Clear(); @@ -357,7 +536,7 @@ public void Log(string txt) if (txt == null || txt == string.Empty || txt.Length < 8) return; if (txt.Contains("downloading") || txt.Contains("validat") || txt.Contains("committing") || txt.Contains("preallocating")) { - if(!FirstDl) + if (!FirstDl) { FirstDl = true; richTextBox1.AppendText(string.Format("\n[{0}] {1}", DateTime.Now.ToString("hh:mm"), txt)); diff --git a/AtlasServerManager/AtlasServerManager.csproj b/AtlasServerManager/AtlasServerManager.csproj index 6f02701..74a1763 100644 --- a/AtlasServerManager/AtlasServerManager.csproj +++ b/AtlasServerManager/AtlasServerManager.csproj @@ -57,6 +57,9 @@ AtlasServerManager.Program + + ..\packages\Newtonsoft.Json.12.0.1\lib\net45\Newtonsoft.Json.dll + @@ -128,6 +131,10 @@ True + + Always + + SettingsSingleFileGenerator Settings.Designer.cs diff --git a/AtlasServerManager/Includes/Registry.cs b/AtlasServerManager/Includes/Registry.cs index 193917b..3ff7da5 100644 --- a/AtlasServerManager/Includes/Registry.cs +++ b/AtlasServerManager/Includes/Registry.cs @@ -44,6 +44,7 @@ public static void LoadRegConfig(AtlasServerManager AtlasMgr) AtlasMgr.ServerPath = (string)key.GetValue("ServerDataPath", string.Empty); AtlasMgr.ServerUpdateMessage.Text = (string)key.GetValue("ServerUpdateMessage", AtlasMgr.ServerUpdateMessage.Text); AtlasMgr.ServerUpdatingMessage.Text = (string)key.GetValue("ServerUpdatingMessage", AtlasMgr.ServerUpdatingMessage.Text); + //AtlasMgr.SetLanguage((string)key.GetValue("Language", "en")); LoadRegServers(AtlasMgr); } @@ -51,6 +52,20 @@ public static void LoadRegConfig(AtlasServerManager AtlasMgr) catch (Exception e) { System.Windows.Forms.MessageBox.Show("Failed To Load Setting: " + e.StackTrace); } } + public static void SaveRegkey(string keystring, string value) + { + key = Microsoft.Win32.Registry.CurrentUser.OpenSubKey("SOFTWARE\\AtlasServerManager", true); + if (key != null) + { + key.SetValue(keystring, value, Microsoft.Win32.RegistryValueKind.String); + } + } + public static object LoadRegkey(string keystring) + { + key = Microsoft.Win32.Registry.CurrentUser.OpenSubKey("SOFTWARE\\AtlasServerManager", true); + if (key == null) return null; + return key.GetValue(keystring); + } public static void SaveRegConfig(AtlasServerManager AtlasMgr) { try @@ -81,7 +96,7 @@ public static void SaveRegConfig(AtlasServerManager AtlasMgr) key.SetValue("ServerDataPath", AtlasMgr.ServerPath, Microsoft.Win32.RegistryValueKind.String); key.SetValue("ServerUpdateMessage", AtlasMgr.ServerUpdateMessage.Text, Microsoft.Win32.RegistryValueKind.String); key.SetValue("ServerUpdatingMessage", AtlasMgr.ServerUpdatingMessage.Text, Microsoft.Win32.RegistryValueKind.String); - + key.SetValue("Language", AtlasMgr.GetLanguage(), Microsoft.Win32.RegistryValueKind.String); SaveRegServers(AtlasMgr); key.Close(); } diff --git a/AtlasServerManager/Language/zh_cn.json b/AtlasServerManager/Language/zh_cn.json new file mode 100644 index 0000000..51905c7 --- /dev/null +++ b/AtlasServerManager/Language/zh_cn.json @@ -0,0 +1,99 @@ +{ +"MainsplitContainer1-splitContainer1--menuStrip1-serverToolStripMenuItem1":"·þÎñÆ÷", +"MainsplitContainer1-splitContainer1--menuStrip1-serverToolStripMenuItem1-addToolStripMenuItem1":"Ôö¼Ó", +"MainsplitContainer1-splitContainer1--menuStrip1-serverToolStripMenuItem1-removeToolStripMenuItem1":"ÒÆ³ý", +"MainsplitContainer1-splitContainer1--menuStrip1-serverToolStripMenuItem1-editSettingsToolStripMenuItem1":"±à¼­", +"MainsplitContainer1-splitContainer1--menuStrip1-managerToolStripMenuItem":"¹ÜÀí", +"MainsplitContainer1-splitContainer1--menuStrip1-managerToolStripMenuItem-startToolStripMenuItem1":"Æô¶¯", +"MainsplitContainer1-splitContainer1--menuStrip1-managerToolStripMenuItem-stopToolStripMenuItem1":"¹Ø±Õ", +"MainsplitContainer1-splitContainer1--menuStrip1-rCONSelecteToolStripMenuItem":"RCONÑ¡Ïî", +"MainsplitContainer1-splitContainer1--menuStrip1-rCONSelecteToolStripMenuItem-broadcastToolStripMenuItem2":"֪ͨ", +"MainsplitContainer1-splitContainer1--menuStrip1-rCONSelecteToolStripMenuItem-saveWorldToolStripMenuItem2":"±£´æÊÀ½ç", +"MainsplitContainer1-splitContainer1--menuStrip1-rCONSelecteToolStripMenuItem-closeSaveWorldToolStripMenuItem2":"¹Ø±Õ²¢±£´æÊÀ½ç", +"MainsplitContainer1-splitContainer1--menuStrip1-rCONSelecteToolStripMenuItem-customCommandToolStripMenuItem2":"×Ô¶¨ÒåÃüÁî", +"MainsplitContainer1-splitContainer1--menuStrip1-rCONSelecteToolStripMenuItem-loadPluginToolStripMenuItem2":"¼ÓÔØ²å¼þ", +"MainsplitContainer1-splitContainer1--menuStrip1-rCONSelecteToolStripMenuItem-unloadPluginToolStripMenuItem2":"Ð¶ÔØ²å¼þ", +"MainsplitContainer1-splitContainer1--menuStrip1-rCONAllToolStripMenuItem1":"RCONÈ«²¿", +"MainsplitContainer1-splitContainer1--menuStrip1-rCONAllToolStripMenuItem1-broadcastToolStripMenuItem3":"֪ͨ", +"MainsplitContainer1-splitContainer1--menuStrip1-rCONAllToolStripMenuItem1-saveWorldToolStripMenuItem3":"±£´æÊÀ½ç", +"MainsplitContainer1-splitContainer1--menuStrip1-rCONAllToolStripMenuItem1-closeSaveWorldToolStripMenuItem3":"¹Ø±Õ²¢±£´æÊÀ½ç", +"MainsplitContainer1-splitContainer1--menuStrip1-rCONAllToolStripMenuItem1-customCommandToolStripMenuItem3":"×Ô¶¨ÒåÃüÁî", +"MainsplitContainer1-splitContainer1--menuStrip1-rCONAllToolStripMenuItem1-loadPluginToolStripMenuItem3":"¼ÓÔØ²å¼þ", +"MainsplitContainer1-splitContainer1--menuStrip1-rCONAllToolStripMenuItem1-unloadPluginToolStripMenuItem3":"Ð¶ÔØ²å¼þ", +"MainsplitContainer1-splitContainer1--menuStrip1-languageToolStripMenuItem":"ÓïÑÔ", +"MainsplitContainer1-splitContainer1--tabControl1-tabControl1":"", +"MainsplitContainer1-splitContainer1--tabControl1-tabPage1":"·þÎñÆ÷", +"MainsplitContainer1-splitContainer1--tabControl1-tabPage2":"Ñ¡Ïî", +"MainsplitContainer1-splitContainer1--tabControl1-tabPage2-ClearConfigButton":"Çå¿Õ·þÎñÆ÷", +"MainsplitContainer1-splitContainer1--tabControl1-tabPage2-button1":"Ç¿ÖÆ¸üÐÂ", +"MainsplitContainer1-splitContainer1--tabControl1-tabPage2-groupBox3":"·þÎñÆ÷×Ô¶¯¸üÐÂ", +"MainsplitContainer1-splitContainer1--tabControl1-tabPage3":"¼à²â", +"MainsplitContainer1-splitContainer1--tabControl1-tabPage3-groupBox1":"×Ô¶¯°¢ÌØÀ­Ë¹·þÎñÆ÷ÏÔʾÆ÷", +"MainsplitContainer1-splitContainer1--tabControl1-tabPage4":"ÅäÖÃÌæ»»Æ÷", +"MainsplitContainer1-splitContainer1--tabControl1-tabPage4-groupBox2":"ÔÚ·þÎñÆ÷Æô¶¯Ê±×Ô¶¯Ìæ»»ÅäÖÃ", +"MainsplitContainer1-splitContainer1--menuStrip1-menuStrip1":"menuStrip1", +"MainsplitContainer1-splitContainer1--menuStrip1-languageToolStripMenuItem-en":"English", +"MainsplitContainer1-splitContainer1--menuStrip1-languageToolStripMenuItem-zh_cn":"ÖÐÎÄ", +"MainsplitContainer1-splitContainer1--tabControl1-tabPage1-":"·þÎñÆ÷Ŀ¼", +"MainsplitContainer1-splitContainer1--tabControl1-tabPage1--":"ÓÎÏ·äö¿Ú", +"MainsplitContainer1-splitContainer1--tabControl1-tabPage1---":"·þÎñÆ÷ºá×ø±ê", +"MainsplitContainer1-splitContainer1--tabControl1-tabPage1----":"·þÎñÆ÷Êú×ø±ê", +"MainsplitContainer1-splitContainer1--tabControl1-tabPage1-----":"״̬", +"MainsplitContainer1-splitContainer1--tabControl1-tabPage1------":"ÔÚÏßÍæ¼Ò", +"MainsplitContainer1-splitContainer1--tabControl1-tabPage2-groupBox3-label4":"ÿ¸ô(·ÖÖÓ)¼ì²éÒ»´Î", +"MainsplitContainer1-splitContainer1--tabControl1-tabPage2-groupBox3-label5":"¸üо¯¸æ(·ÖÖÓ)", +"MainsplitContainer1-splitContainer1--tabControl1-tabPage3-groupBox1-label3":"ÿ̨·þÎñÆ÷Ö®¼äµÄÆô¶¯ÑÓ³Ù(Ãë)", +"MainsplitContainer1-splitContainer1--tabControl1-tabPage3-groupBox1-label1":"ÿ¸ô(Ãë)¼ì²éÒ»´Î ", +"MainsplitContainer1-splitContainer1--tabControl1-tabPage4-groupBox2-label2":"È·±£ÄúÖÁÉÙ°´ÁËÒ»´ÎBackup INIºÍDB Config¡£", +"MainsplitContainer1-splitContainer1--tabControl1-tabPage4-groupBox2-BackupButton":"±¸·ÝINIºÍDB Config", +"MainsplitContainer1-splitContainer1--tabControl1-tabPage2-groupBox3-DebugCheck":"µ÷ÊÔ", +"MainsplitContainer1-splitContainer1--tabControl1-tabPage2-groupBox3-SteamWindowCheck":"ÏÔʾ SteamCMD(¿ÉÒÔÐÞ¸´Windows 7ÉϵĸüдíÎó)", +"MainsplitContainer1-splitContainer1--tabControl1-tabPage2-groupBox3-checkAutoServerUpdate":"×Ô¶¯¸üзþÎñÆ÷", +"MainsplitContainer1-splitContainer1--tabControl1-tabPage3-groupBox1-GamePortCheck":"¼ì²éÓÎÏ·¶Ë¿Ú", +"MainsplitContainer1-splitContainer1--tabControl1-tabPage3-groupBox1-QueryPortCheck":"¼ì²é½»²æ¶Ë¿Ú", +"MainsplitContainer1-splitContainer1--tabControl1-tabPage3-groupBox1-BootWhenOffCheck":"´¬·þÎñÆ÷ÏÂÏß", +"MainsplitContainer1-splitContainer1--tabControl1-tabPage4-groupBox2-ConfigReplaceCheck":"ÔÚ·þÎñÆ÷Æô¶¯Ê±Ìæ»»ÅäÖÃ", +"AddServergroupBox7-groupBox7":"·þÎñÆ÷·¾¶", +"AddServergroupBox7-groupBox7-BrowseButton":"ËæÒâ¹Û¿´", +"AddServerResetDefaultButton-ResetDefaultButton":"ÖØÖÃĬÈÏ", +"AddServerCloseButton-CloseButton":"¹Ø±Õ", +"AddServerAddServerButton-AddServerButton":"±£´æÅäÖÃ", +"AddServergroupBox2-groupBox2":"RconÉèÖÃ", +"AddServergroupBox2-groupBox2-label13":"½öµ±ÄúÓеڶþ¸öNICʱ²ÅÐèÒªÉèÖÃ", +"AddServergroupBox2-groupBox2-label12":"RconIP:", +"AddServergroupBox2-groupBox2-checkBox3":"ÒÑÆôÓÃ(¸üÐÂ֪ͨÐèÒª)", +"AddServergroupBox2-groupBox2-label7":"Rcon¶Ë¿Ú:", +"AddServergroupBox1-groupBox1":"·þÎñÆ÷ÉèÖÃ", +"AddServergroupBox1-groupBox1-label14":"Æô¶¯²ÎÊýºóµÄÆäËû·þÎñÆ÷(ÒÔ-¿ªÍ·µÄ²ÎÊý)", +"AddServergroupBox1-groupBox1-BattleEyeCheck":"BattleEye", +"AddServergroupBox1-groupBox1-UPNPCheck":"UPnP-×Ô¶¯¶Ë¿Úת·¢(½öÏÞ·ÓÉÆ÷Ñ¡Ï²¢È·±£ÔÚ·ÓÉÆ÷ÉÏÆôÓÃÁËUPnP)", +"AddServergroupBox1-groupBox1-label11":"´¦ÀíÆ÷ÓÅÏȼ¶:", +"AddServergroupBox1-groupBox1-label10":"·þÎñÆ÷IP»òDNS:", +"AddServergroupBox1-groupBox1-label9":"·þÎñÆ÷Êú×ø±ê:", +"AddServergroupBox1-groupBox1-label1":"±£ÁôÇòÔ±:", +"AddServergroupBox1-groupBox1-label2":"·þÎñÆ÷ºá×ø±ê:", +"AddServergroupBox1-groupBox1-ProcessAffinityButton":"¹ý³ÌÇ׺ÍÐÔ", +"AddServergroupBox1-groupBox1-label17":"ÁíÒ»ÖÖÑ¡ÔñSave Directory", +"AddServergroupBox1-groupBox1-checkBox17":"¸¡¶¯Îı¾Ëð»µ", +"AddServergroupBox1-groupBox1-checkBox16":"ÈκÎÈ˵ÄÓ¡¼Ç", +"AddServergroupBox1-groupBox1-checkBox15":"ÃüÖбê¼Ç", +"AddServergroupBox1-groupBox1-checkBox14":"¿ËÂÞ˹¹þ¶û", +"AddServergroupBox1-groupBox1-checkBox13":"3RDÈË", +"AddServergroupBox1-groupBox1-checkBox12":"ÔÊÐíGamma", +"AddServergroupBox1-groupBox1-checkBox11":"MAPµØÖ·", +"AddServergroupBox1-groupBox1-checkBox10":"PVP", +"AddServergroupBox1-groupBox1-label8":"ÆäËû·þÎñÆ÷Æô¶¯²ÎÊý(ÀýÈ磺£¿globalVoiceChat=true£¿compityChat=true)", +"AddServergroupBox1-groupBox1-label6":"¹ÜÀíÔ±ÃÜÂë:", +"AddServergroupBox1-groupBox1-label5":"²éѯ¶Ë¿Ú:", +"AddServergroupBox1-groupBox1-label4":"ÓÎÏ·¶Ë¿Ú:", +"AddServergroupBox1-groupBox1-checkBox1":"³õ´´ÆóÒµµÄÒ°µÏŵ¡¤ÍþÆÕ", +"AddServergroupBox1-groupBox1-label3":"×î´óÍæ¼Ò:", +"RemoveServer-caption":"Delete ServerX:{0}, ServerY: {1}, Port: {2}?", +"RemoveServer-text":"Are you sure you want to delete ServerX: {0}, ServerY: {1}, Port: {2} ?\n Press 'Yes' To Delete!", +"Removed":"Removed!", +"Edited":"Edited!", +"Started":"Started!", +"Stopped":"Stopped!", +"Please_select_a_server":"Please select a server!!!", +"SavedWorld":"Saved World!" +} diff --git a/AtlasServerManager/Program.cs b/AtlasServerManager/Program.cs index a56a0f5..813673d 100644 --- a/AtlasServerManager/Program.cs +++ b/AtlasServerManager/Program.cs @@ -1,11 +1,16 @@ using System; using System.Collections.Generic; +using System.IO; using System.Windows.Forms; +using Newtonsoft.Json; +using Newtonsoft.Json.Linq; namespace AtlasServerManager { static class Program { + public static JObject LanguageJObject; + /// /// The main entry point for the application. /// @@ -14,7 +19,22 @@ static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); - Application.Run(new AtlasServerManager()); + string language = Includes.Registry.LoadRegkey("Language") != null ? Includes.Registry.LoadRegkey("Language").ToString() : "en"; + string arkManagerPath = Path.GetDirectoryName(Application.ExecutablePath).TrimEnd(Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar).Replace("/", @"\") + Path.DirectorySeparatorChar; + if (File.Exists(Path.GetFullPath(arkManagerPath + "/Language/" + language + ".json"))) + { + //System.IO.StreamReader file1=new StreamReader(Path.GetFullPath(arkManagerPath + "/Language/" + language + ".json"),System.Text.Encoding.Default) + //using (System.IO.StreamReader file = System.IO.File.OpenText(Path.GetFullPath(arkManagerPath + "/Language/" + language + ".json"),e)) + using (System.IO.StreamReader file = new StreamReader(Path.GetFullPath(arkManagerPath + "/Language/" + language + ".json"), System.Text.Encoding.Default)) + { + using (JsonTextReader reader = new JsonTextReader(file)) + { + LanguageJObject = (JObject)JToken.ReadFrom(reader); + } + } + } + + Application.Run(new AtlasServerManager(arkManagerPath, language)); } } } \ No newline at end of file diff --git a/AtlasServerManager/Translate.cs b/AtlasServerManager/Translate.cs index ea14a59..d68fad8 100644 --- a/AtlasServerManager/Translate.cs +++ b/AtlasServerManager/Translate.cs @@ -3,6 +3,7 @@ using System.Net; using System.Text; using System.Windows.Forms; +using AtlasServerManager.Includes; namespace AtlasServerManager { @@ -129,5 +130,8 @@ public static void TranslateListView(ListView.ColumnHeaderCollection controlColl TranslateComponent(toolStripItem, Language); } } + + + } } \ No newline at end of file diff --git a/AtlasServerManager/packages.config b/AtlasServerManager/packages.config new file mode 100644 index 0000000..7f83af3 --- /dev/null +++ b/AtlasServerManager/packages.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file