Dedicated server loads the name, password and other initial settings from the serversettings file. + Fixed not being able to change the server name if the current name is null or empty

This commit is contained in:
Joonas Rikkonen
2017-07-03 18:28:23 +03:00
parent 8e880b2ded
commit 0d7851367b
5 changed files with 59 additions and 10 deletions
@@ -113,11 +113,16 @@ namespace Barotrauma.Networking
{ {
serverIP = address[0]; serverIP = address[0];
if (!int.TryParse(address[1], out Port)) int port = 0;
if (!int.TryParse(address[1], out port))
{ {
DebugConsole.ThrowError("Invalid port: "+address[1]+"!"); DebugConsole.ThrowError("Invalid port: "+address[1]+"!");
Port = NetConfig.DefaultPort; Port = NetConfig.DefaultPort;
} }
else
{
Port = port;
}
} }
myCharacter = Character.Controlled; myCharacter = Character.Controlled;
+16 -1
View File
@@ -7,6 +7,7 @@ using Barotrauma.Networking;
using System.Collections.Generic; using System.Collections.Generic;
using Microsoft.Xna.Framework; using Microsoft.Xna.Framework;
using System.Threading; using System.Threading;
using System.Xml.Linq;
namespace Barotrauma namespace Barotrauma
{ {
@@ -100,7 +101,21 @@ namespace Barotrauma
public void StartServer() public void StartServer()
{ {
Server = new GameServer("Dedicated Server Test", 14242, false, "asd", false, 10); XDocument doc = ToolBox.TryLoadXml(GameServer.SettingsFile);
if (doc == null)
{
DebugConsole.ThrowError("File \""+GameServer.SettingsFile+"\" not found. Starting the server with default settings.");
Server = new GameServer("Server", 14242, false, "", false, 10);
return;
}
Server = new GameServer(
ToolBox.GetAttributeString(doc.Root, "name", "Server"),
ToolBox.GetAttributeInt(doc.Root, "port", 14242),
ToolBox.GetAttributeBool(doc.Root, "public", false),
ToolBox.GetAttributeString(doc.Root, "password", ""),
ToolBox.GetAttributeBool(doc.Root, "attemptupnp", false),
ToolBox.GetAttributeInt(doc.Root, "maxplayers", 10));
} }
public void CloseServer() public void CloseServer()
@@ -24,8 +24,6 @@ namespace Barotrauma.Networking
private NetServer server; private NetServer server;
private NetPeerConfiguration config; private NetPeerConfiguration config;
private int MaxPlayers;
private DateTime refreshMasterTimer; private DateTime refreshMasterTimer;
@@ -69,7 +67,7 @@ namespace Barotrauma.Networking
{ {
get { return updateInterval; } get { return updateInterval; }
} }
public GameServer(string name, int port, bool isPublic = false, string password = "", bool attemptUPnP = false, int maxPlayers = 10) public GameServer(string name, int port, bool isPublic = false, string password = "", bool attemptUPnP = false, int maxPlayers = 10)
{ {
name = name.Replace(":", ""); name = name.Replace(":", "");
@@ -78,6 +76,7 @@ namespace Barotrauma.Networking
AdminAuthPass = ""; AdminAuthPass = "";
this.name = name; this.name = name;
this.Public = isPublic;
this.password = ""; this.password = "";
if (password.Length>0) if (password.Length>0)
{ {
@@ -171,6 +171,27 @@ namespace Barotrauma.Networking
} }
} }
[HasDefaultValue(8, true)]
private int MaxPlayers
{
get;
set;
}
[HasDefaultValue(false, true)]
private bool Public
{
get;
set;
}
[HasDefaultValue(false, true)]
private bool AttemptUPNP
{
get { return config.EnableUPnP; }
set { config.EnableUPnP = value; }
}
public YesNoMaybe TraitorsEnabled public YesNoMaybe TraitorsEnabled
{ {
get; get;
@@ -231,6 +252,10 @@ namespace Barotrauma.Networking
doc.Root.SetAttributeValue("TraitorsEnabled", TraitorsEnabled.ToString()); doc.Root.SetAttributeValue("TraitorsEnabled", TraitorsEnabled.ToString());
#if SERVER
doc.Root.SetAttributeValue("password", password);
#endif
if (GameMain.NetLobbyScreen != null if (GameMain.NetLobbyScreen != null
#if CLIENT #if CLIENT
&& GameMain.NetLobbyScreen.ServerMessage != null && GameMain.NetLobbyScreen.ServerMessage != null
@@ -83,9 +83,6 @@ namespace Barotrauma.Networking
protected DateTime updateTimer; protected DateTime updateTimer;
public int EndVoteCount, EndVoteMax; public int EndVoteCount, EndVoteMax;
//private GUITextBlock endVoteText;
public int Port;
protected bool gameStarted; protected bool gameStarted;
@@ -94,13 +91,21 @@ namespace Barotrauma.Networking
protected RespawnManager respawnManager; protected RespawnManager respawnManager;
public Voting Voting; public Voting Voting;
[HasDefaultValue(14242, true)]
public int Port
{
get;
set;
}
[HasDefaultValue("", true)]
public string Name public string Name
{ {
get { return name; } get { return name; }
set set
{ {
if (string.IsNullOrEmpty(name)) return; if (string.IsNullOrEmpty(value)) return;
name = value; name = value;
} }
} }