From b59eeecb54a21f4db18e5fa4a90bf3ca54f0362a Mon Sep 17 00:00:00 2001
From: Daniel Gibbs <me@danielgibbs.co.uk>
Date: Sun, 26 Nov 2023 23:44:06 +0000
Subject: [PATCH] feat(ns2): update start parameters to add mod server (#4396)

also removed mod2 as no longer required as per NS2 dedi server docs
---
 lgsm/config-default/config-lgsm/ns2server/_default.cfg | 7 ++++---
 lgsm/modules/info_game.sh                              | 7 ++++---
 lgsm/modules/info_messages.sh                          | 1 +
 3 files changed, 9 insertions(+), 6 deletions(-)

diff --git a/lgsm/config-default/config-lgsm/ns2server/_default.cfg b/lgsm/config-default/config-lgsm/ns2server/_default.cfg
index 8cca4da81..c7c09c47d 100644
--- a/lgsm/config-default/config-lgsm/ns2server/_default.cfg
+++ b/lgsm/config-default/config-lgsm/ns2server/_default.cfg
@@ -13,18 +13,19 @@ ip="0.0.0.0"
 port="27015"
 defaultmap="ns2_summit"
 maxplayers="24"
+maxspectators="0"
 servername="LinuxGSM"
 httpuser="admin"
 httppassword="admin"
 httpport="8080"
-mods=""
+modserverport="27031"
 serverpassword=""
 # Add the following line to the parms if you want a private server. Ensuring
 # that the password variable above is not left empty.
-# -password \"${serverpassword}\"
+# -password '${serverpassword}'
 
 ## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-startparameters="-name \"${servername}\" -port ${port} -webadmin -webdomain ${ip} -webuser ${httpuser} -webpassword \"${httppassword}\" -webport ${httpport} -map ${defaultmap} -limit ${maxplayers} -config_path \"${servercfgdir}\" -logdir \"${gamelogdir}\" -modstorage \"${modstoragedir}\" -mods2 \"${mods}\""
+startparameters="-name '${servername}' -port ${port} -webadmin -webdomain ${ip} -webuser ${httpuser} -webpassword '${httppassword}' -webport ${httpport} -startmodserver -modserverport ${modserverport} -map ${defaultmap} -limit ${maxplayers} -speclimit ${maxspectators} -config_path '${servercfgdir}' -logdir '${gamelogdir}' -modstorage '${modstoragedir}'"
 
 #### LinuxGSM Settings ####
 
diff --git a/lgsm/modules/info_game.sh b/lgsm/modules/info_game.sh
index 0365660a6..9f6bb7370 100644
--- a/lgsm/modules/info_game.sh
+++ b/lgsm/modules/info_game.sh
@@ -2033,14 +2033,15 @@ fn_info_game_source() {
 
 fn_info_game_spark() {
 	defaultmap="${defaultmap:-"NOT SET"}"
+	httppassword="${httppassword:-"NOT SET"}"
+	httpport="${httpport:-"0"}"
+	httpuser="${httpuser:-"NOT SET"}"
 	maxplayers="${maxplayers:-"0"}"
+	modserverport=${modserverport:-"0"}
 	port="${port:-"0"}"
 	queryport="$((port + 1))"
 	servername="${servername:-"NOT SET"}"
 	serverpassword="${serverpassword:-"NOT SET"}"
-	httpuser="${httpuser:-"NOT SET"}"
-	httppassword="${httppassword:-"NOT SET"}"
-	httpport="${httpport:-"0"}"
 }
 
 # Config Type: Custom (key-value pairs)
diff --git a/lgsm/modules/info_messages.sh b/lgsm/modules/info_messages.sh
index 59d876fcc..09dd4c2ad 100644
--- a/lgsm/modules/info_messages.sh
+++ b/lgsm/modules/info_messages.sh
@@ -1468,6 +1468,7 @@ fn_info_messages_spark() {
 		fn_port "header"
 		fn_port "Game" port udp
 		fn_port "Query" queryport udp
+		fn_port "Mod Server" modserverport tcp
 		fn_port "Web Interface" httpport tcp
 	} | column -s $'\t' -t
 	echo -e ""