added -ip so you are able to specify which ip to bind the server

This commit is contained in:
Evil Factory
2021-11-08 19:57:13 -03:00
parent 50427390f2
commit 89942fb8f5
5 changed files with 20 additions and 5 deletions
@@ -12,6 +12,7 @@ using System.Reflection;
using System.Threading;
using System.Xml.Linq;
using MoonSharp.Interpreter;
using System.Net;
namespace Barotrauma
{
@@ -221,6 +222,7 @@ namespace Barotrauma
int maxPlayers = 10;
int? ownerKey = null;
UInt64 steamId = 0;
IPAddress listenIp = IPAddress.Any;
XDocument doc = XMLExtensions.TryLoadXml(ServerSettings.SettingsFile);
if (doc?.Root == null)
@@ -254,6 +256,12 @@ namespace Barotrauma
name = CommandLineArgs[i + 1];
i++;
break;
case "-ip":
if (IPAddress.TryParse(CommandLineArgs[i + 1], out IPAddress address))
listenIp = address;
else
DebugConsole.ThrowError($"Invalid Ip Address '{CommandLineArgs[i + 1]}'.");
break;
case "-port":
int.TryParse(CommandLineArgs[i + 1], out port);
i++;
@@ -302,6 +310,7 @@ namespace Barotrauma
Server = new GameServer(
name,
listenIp,
port,
queryPort,
publiclyVisible,
@@ -12,6 +12,7 @@ using System.Linq;
using System.Threading;
using System.Xml.Linq;
using MoonSharp.Interpreter;
using System.Net;
namespace Barotrauma.Networking
{
@@ -114,7 +115,7 @@ namespace Barotrauma.Networking
private readonly int? ownerKey;
private readonly UInt64? ownerSteamId;
public GameServer(string name, int port, int queryPort = 0, bool isPublic = false, string password = "", bool attemptUPnP = false, int maxPlayers = 10, int? ownKey = null, UInt64? steamId = null)
public GameServer(string name, IPAddress listenIp, int port, int queryPort = 0, bool isPublic = false, string password = "", bool attemptUPnP = false, int maxPlayers = 10, int? ownKey = null, UInt64? steamId = null)
{
name = name.Replace(":", "");
name = name.Replace(";", "");
@@ -127,7 +128,7 @@ namespace Barotrauma.Networking
LastClientListUpdateID = 0;
serverSettings = new ServerSettings(this, name, port, queryPort, maxPlayers, isPublic, attemptUPnP);
serverSettings = new ServerSettings(this, name, port, queryPort, maxPlayers, isPublic, attemptUPnP, listenIp);
KarmaManager.SelectPreset(serverSettings.KarmaPreset);
serverSettings.SetPassword(password);
@@ -37,7 +37,8 @@ namespace Barotrauma.Networking
AutoExpandMTU = false,
MaximumConnections = NetConfig.MaxPlayers * 2,
EnableUPnP = serverSettings.EnableUPnP,
Port = serverSettings.Port
Port = serverSettings.Port,
LocalAddress = serverSettings.ListenIPAddress
};
netPeerConfiguration.DisableMessageType(NetIncomingMessageType.DebugMessage |
@@ -16,7 +16,8 @@ namespace Barotrauma.Steam
{
GamePort = (ushort)server.Port,
QueryPort = isPublic ? (ushort)server.QueryPort : (ushort)0,
Mode = isPublic ? Steamworks.InitServerMode.Authentication : Steamworks.InitServerMode.NoAuthentication
Mode = isPublic ? Steamworks.InitServerMode.Authentication : Steamworks.InitServerMode.NoAuthentication,
IpAddress = server.ServerSettings.ListenIPAddress
};
//options.QueryShareGamePort();