Преглед изворни кода

fix(sdtd): resolve sdtd details not collecting

note xmllint is now required to gather details for sdtd

This commit updates the server details to include new fields such as Internet IP, Server IP, Telnet Enabled, Telnet Password and Telnet Port. It also updates the game info for 7 Days to Die to use different XML tags for retrieving values.
Daniel Gibbs пре 3 година
родитељ
комит
1c78d4b06f
3 измењених фајлова са 29 додато и 25 уклоњено
  1. 5 1
      lgsm/modules/command_dev_details.sh
  2. 24 23
      lgsm/modules/info_game.sh
  3. 0 1
      lgsm/modules/info_messages.sh

+ 5 - 1
lgsm/modules/command_dev_details.sh

@@ -44,7 +44,7 @@ declare -A server_details=(
 	['HTTP Password']="${httppassword}"
 	['HTTP Port']="${httpport}"
 	['HTTP User']="${httpuser}"
-	['ip']="${ip}"
+	['Internet IP']="${extip}"
 	['LAN Port']="${lanport}"
 	['Master Port']="${masterport}"
 	['Master']="${master}"
@@ -56,12 +56,16 @@ declare -A server_details=(
 	['RCON Password']="${rconpassword}"
 	['RCON Port']="${rconport}"
 	['Reserved Slots']="${reservedslots}"
+	['Server IP']="${ip}"
 	['Server Password']="${serverpassword}"
 	['Servername']="${servername}"
 	['Shard']="${shard}"
 	['Sharding']="${sharding}"
 	['Steam Auth Port']="${steamauthport}"
+	['Telnet Enabled']="${telnetenabled}"
 	['Telnet IP']="${telnetip}"
+	['Telnet Password']="${telnetpassword}"
+	['Telnet Port']="${telnetport}"
 	['Tickrate']="${tickrate}"
 	['World Name']="${worldname}"
 	['World Type']="${worldtype}"

+ 24 - 23
lgsm/modules/info_game.sh

@@ -1883,38 +1883,39 @@ fn_info_game_scpsl() {
 # Filetype: xml
 fn_info_game_sdtd() {
 	if [ -f "${servercfgfullpath}" ]; then
-		fn_info_game_xml "gamemode" "ServerSettings/@GameMode"
-		fn_info_game_xml "maxplayers" "ServerSettings/@MaxPlayers"
-		fn_info_game_xml "servername" "ServerSettings/@ServerName"
-		fn_info_game_xml "serverpassword" "ServerSettings/@ServerPassword"
-		fn_info_game_xml "serverport" "ServerSettings/@ServerPort"
-		fn_info_game_xml "telnetenabled" "ServerSettings/@TelnetEnabled"
-		fn_info_game_xml "telnetpass" "ServerSettings/@TelnetPassword"
-		fn_info_game_xml "telnetport" "ServerSettings/@TelnetPort"
-		fn_info_game_xml "httpenabled" "ServerSettings/@ControlPanelEnabled"
-		fn_info_game_xml "httppassword" "ServerSettings/@ControlPanelPassword"
-		fn_info_game_xml "httpport" "ServerSettings/@ControlPanelPort"
-		fn_info_game_xml "worldname" "ServerSettings/@GameWorld"
-
+		fn_info_game_xml "gamemode" "/ServerSettings/property[@name='GameMode']/@value"
+		fn_info_game_xml "httpenabled" "/ServerSettings/property[@name='ControlPanelEnabled']/@value"
+		fn_info_game_xml "httppassword" "/ServerSettings/property[@name='ControlPanelPassword']/@value"
+		fn_info_game_xml "httpport" "/ServerSettings/property[@name='ControlPanelPort']/@value"
+		fn_info_game_xml "maxplayers" "/ServerSettings/property[@name='ServerMaxPlayerCount']/@value"
+		fn_info_game_xml "servername" "/ServerSettings/property[@name='ServerName']/@value"
+		fn_info_game_xml "serverpassword" "/ServerSettings/property[@name='ServerPassword']/@value"
+		fn_info_game_xml "port" "/ServerSettings/property[@name='ServerPort']/@value"
+		fn_info_game_xml "telnetenabled" "/ServerSettings/property[@name='TelnetEnabled']/@value"
+		fn_info_game_xml "telnetpass" "/ServerSettings/property[@name='TelnetPassword']/@value"
+		fn_info_game_xml "telnetport" "/ServerSettings/property[@name='TelnetPort']/@value"
+		fn_info_game_xml "worldname" "/ServerSettings/property[@name='GameWorld']/@value"
 	fi
-	servername="${servername:-"NOT SET"}"
-	serverpassword="${serverpassword:-"NOT SET"}"
-	port="${port:-"0"}"
-	queryport="${queryport:-"0"}"
+	gamemode="${gamemode:-"NOT SET"}"
 	httpenabled="${httpenabled:-"NOT SET"}"
-	httpport="${httpport:-"0"}"
 	httppassword="${httppassword:-"NOT SET"}"
-	telnetenabled="${telnetenabled:-"NOT SET"}"
-	telnetport="${telnetport:-"0"}"
-	telnetpass="${telnetpass:-"NOT SET"}"
+	httpport="${httpport:-"0"}"
 	maxplayers="${maxplayers:-"0"}"
-	gamemode="${gamemode:-"NOT SET"}"
-	worldname="${worldname:-"NOT SET"}"
+	port="${port:-"0"}"
+	port3="$((port + 2))"
+	queryport="${port:-"0"}"
+	servername="${servername:-"NOT SET"}"
+	serverpassword="${serverpassword:-"NOT SET"}"
+	telnetenabled="${telnetenabled:-"NOT SET"}"
 	# Telnet IP will be localhost if no password is set
 	# check_ip will set the IP first. This will overwrite it.
 	if [ -z "${telnetpass}" ]; then
 		telnetip="127.0.0.1"
 	fi
+	telnetpass="${telnetpass:-"NOT SET"}"
+	telnetport="${telnetport:-"0"}"
+	worldname="${worldname:-"NOT SET"}"
+
 }
 
 # Config Type: Parameters (with an ini)

+ 0 - 1
lgsm/modules/info_messages.sh

@@ -1411,7 +1411,6 @@ fn_info_message_sdtd() {
 	{
 		echo -e "${lightblue}Web Interface enabled:\t${default}${httpenabled}"
 		echo -e "${lightblue}Web Interface url:\t${default}http://${httpip}:${httpport}/index.html"
-		echo -e "${lightblue}Web Interface username:\t${default}${httpuser}"
 		echo -e "${lightblue}Web Interface password:\t${default}${httppassword}"
 	} | column -s $'\t' -t
 	echo -e ""