Nit: use ServerSettings to pass info to the server
This commit is contained in:
@@ -44,7 +44,7 @@ namespace OpenRA.Mods.RA.Server
|
||||
Queue<string> masterServerMessages = new Queue<string>();
|
||||
public void PingMasterServer(S server)
|
||||
{
|
||||
if (isBusy || !server.AdvertiseOnline) return;
|
||||
if (isBusy || !server.Settings.AdvertiseOnline) return;
|
||||
|
||||
lastPing = Environment.TickCount;
|
||||
isBusy = true;
|
||||
@@ -60,8 +60,8 @@ namespace OpenRA.Mods.RA.Server
|
||||
{
|
||||
wc.Proxy = null;
|
||||
wc.DownloadData(
|
||||
Game.Settings.Server.MasterServer + url.F(
|
||||
server.ExternalPort, Uri.EscapeUriString(server.Name),
|
||||
server.Settings.MasterServer + url.F(
|
||||
server.Settings.ExternalPort, Uri.EscapeUriString(server.Settings.Name),
|
||||
server.GameStarted ? 2 : 1, // todo: post-game states, etc.
|
||||
server.lobbyInfo.Clients.Count,
|
||||
string.Join(",", Game.CurrentMods.Select(f => "{0}@{1}".F(f.Key, f.Value.Version)).ToArray()),
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using OpenRA.Widgets;
|
||||
using OpenRA.GameRules;
|
||||
|
||||
namespace OpenRA.Mods.RA.Widgets.Delegates
|
||||
{
|
||||
@@ -27,14 +28,14 @@ namespace OpenRA.Mods.RA.Widgets.Delegates
|
||||
};
|
||||
|
||||
cs.GetWidget("BUTTON_START").OnMouseUp = mi => {
|
||||
var map = Game.modData.AvailableMaps.FirstOrDefault(m => m.Value.Selectable).Key;
|
||||
|
||||
settings.Server.Name = cs.GetWidget<TextFieldWidget>("GAME_TITLE").Text;
|
||||
settings.Server.ListenPort = int.Parse(cs.GetWidget<TextFieldWidget>("LISTEN_PORT").Text);
|
||||
settings.Server.ExternalPort = int.Parse(cs.GetWidget<TextFieldWidget>("EXTERNAL_PORT").Text);
|
||||
settings.Server.Map = Game.modData.AvailableMaps.FirstOrDefault(m => m.Value.Selectable).Key;
|
||||
settings.Save();
|
||||
|
||||
Game.CreateServer(settings.Server.Name, map,settings.Server.ListenPort, settings.Server.AdvertiseOnline, settings.Server.ExternalPort);
|
||||
// Take a copy so that subsequent settings changes don't affect the server
|
||||
Game.CreateServer(new ServerSettings(Game.Settings.Server));
|
||||
Game.JoinServer(IPAddress.Loopback.ToString(), settings.Server.ListenPort);
|
||||
return true;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user