diff --git a/OpenRA.Mods.RA/Widgets/Delegates/ServerBrowserDelegate.cs b/OpenRA.Mods.RA/Widgets/Delegates/ServerBrowserDelegate.cs index 77ba5b9073..c8d88e6e63 100644 --- a/OpenRA.Mods.RA/Widgets/Delegates/ServerBrowserDelegate.cs +++ b/OpenRA.Mods.RA/Widgets/Delegates/ServerBrowserDelegate.cs @@ -187,22 +187,26 @@ namespace OpenRA.Mods.RA.Widgets.Delegates { var dc = widget.GetWidget("DIRECTCONNECT_BG"); - dc.GetWidget("SERVER_ADDRESS").Text = Game.Settings.Player.LastServer; - - dc.GetWidget("JOIN_BUTTON").OnMouseUp = mi => - { - var address = dc.GetWidget("SERVER_ADDRESS").Text; - var cpts = address.Split(':').ToArray(); - if (cpts.Length != 2) - return true; - - Game.Settings.Player.LastServer = address; - Game.Settings.Save(); - - Widget.CloseWindow(); - Game.JoinServer(cpts[0], int.Parse(cpts[1])); - return true; - }; + dc.GetWidget("SERVER_ADDRESS").Text = Game.Settings.Player.LastServer; + + dc.GetWidget("JOIN_BUTTON").OnMouseUp = mi => + { + var address = dc.GetWidget("SERVER_ADDRESS").Text; + var cpts = address.Split(':').ToArray(); + if (cpts.Length < 1 || cpts.Length > 2) + return true; + + int port; + if (cpts.Length != 2 || !int.TryParse(cpts[1], out port)) + port = 1234; + + Game.Settings.Player.LastServer = address; + Game.Settings.Save(); + + Widget.CloseWindow(); + Game.JoinServer(cpts[0], port); + return true; + }; dc.GetWidget("CANCEL_BUTTON").OnMouseUp = mi => {