Просмотр исходного кода

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 лет назад
Родитель
Сommit
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 Password']="${httppassword}"
 	['HTTP Port']="${httpport}"
 	['HTTP Port']="${httpport}"
 	['HTTP User']="${httpuser}"
 	['HTTP User']="${httpuser}"
-	['ip']="${ip}"
+	['Internet IP']="${extip}"
 	['LAN Port']="${lanport}"
 	['LAN Port']="${lanport}"
 	['Master Port']="${masterport}"
 	['Master Port']="${masterport}"
 	['Master']="${master}"
 	['Master']="${master}"
@@ -56,12 +56,16 @@ declare -A server_details=(
 	['RCON Password']="${rconpassword}"
 	['RCON Password']="${rconpassword}"
 	['RCON Port']="${rconport}"
 	['RCON Port']="${rconport}"
 	['Reserved Slots']="${reservedslots}"
 	['Reserved Slots']="${reservedslots}"
+	['Server IP']="${ip}"
 	['Server Password']="${serverpassword}"
 	['Server Password']="${serverpassword}"
 	['Servername']="${servername}"
 	['Servername']="${servername}"
 	['Shard']="${shard}"
 	['Shard']="${shard}"
 	['Sharding']="${sharding}"
 	['Sharding']="${sharding}"
 	['Steam Auth Port']="${steamauthport}"
 	['Steam Auth Port']="${steamauthport}"
+	['Telnet Enabled']="${telnetenabled}"
 	['Telnet IP']="${telnetip}"
 	['Telnet IP']="${telnetip}"
+	['Telnet Password']="${telnetpassword}"
+	['Telnet Port']="${telnetport}"
 	['Tickrate']="${tickrate}"
 	['Tickrate']="${tickrate}"
 	['World Name']="${worldname}"
 	['World Name']="${worldname}"
 	['World Type']="${worldtype}"
 	['World Type']="${worldtype}"

+ 24 - 23
lgsm/modules/info_game.sh

@@ -1883,38 +1883,39 @@ fn_info_game_scpsl() {
 # Filetype: xml
 # Filetype: xml
 fn_info_game_sdtd() {
 fn_info_game_sdtd() {
 	if [ -f "${servercfgfullpath}" ]; then
 	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
 	fi
-	servername="${servername:-"NOT SET"}"
-	serverpassword="${serverpassword:-"NOT SET"}"
-	port="${port:-"0"}"
-	queryport="${queryport:-"0"}"
+	gamemode="${gamemode:-"NOT SET"}"
 	httpenabled="${httpenabled:-"NOT SET"}"
 	httpenabled="${httpenabled:-"NOT SET"}"
-	httpport="${httpport:-"0"}"
 	httppassword="${httppassword:-"NOT SET"}"
 	httppassword="${httppassword:-"NOT SET"}"
-	telnetenabled="${telnetenabled:-"NOT SET"}"
-	telnetport="${telnetport:-"0"}"
-	telnetpass="${telnetpass:-"NOT SET"}"
+	httpport="${httpport:-"0"}"
 	maxplayers="${maxplayers:-"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
 	# Telnet IP will be localhost if no password is set
 	# check_ip will set the IP first. This will overwrite it.
 	# check_ip will set the IP first. This will overwrite it.
 	if [ -z "${telnetpass}" ]; then
 	if [ -z "${telnetpass}" ]; then
 		telnetip="127.0.0.1"
 		telnetip="127.0.0.1"
 	fi
 	fi
+	telnetpass="${telnetpass:-"NOT SET"}"
+	telnetport="${telnetport:-"0"}"
+	worldname="${worldname:-"NOT SET"}"
+
 }
 }
 
 
 # Config Type: Parameters (with an ini)
 # 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 enabled:\t${default}${httpenabled}"
 		echo -e "${lightblue}Web Interface url:\t${default}http://${httpip}:${httpport}/index.html"
 		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}"
 		echo -e "${lightblue}Web Interface password:\t${default}${httppassword}"
 	} | column -s $'\t' -t
 	} | column -s $'\t' -t
 	echo -e ""
 	echo -e ""