Browse Source

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.
pull/4218/head
Daniel Gibbs 2 years ago
parent
commit
1c78d4b06f
  1. 6
      lgsm/modules/command_dev_details.sh
  2. 47
      lgsm/modules/info_game.sh
  3. 1
      lgsm/modules/info_messages.sh

6
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}"

47
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 "gamemode" "/ServerSettings/property[@name='GameMode']/@value"
fn_info_game_xml "maxplayers" "ServerSettings/@MaxPlayers" fn_info_game_xml "httpenabled" "/ServerSettings/property[@name='ControlPanelEnabled']/@value"
fn_info_game_xml "servername" "ServerSettings/@ServerName" fn_info_game_xml "httppassword" "/ServerSettings/property[@name='ControlPanelPassword']/@value"
fn_info_game_xml "serverpassword" "ServerSettings/@ServerPassword" fn_info_game_xml "httpport" "/ServerSettings/property[@name='ControlPanelPort']/@value"
fn_info_game_xml "serverport" "ServerSettings/@ServerPort" fn_info_game_xml "maxplayers" "/ServerSettings/property[@name='ServerMaxPlayerCount']/@value"
fn_info_game_xml "telnetenabled" "ServerSettings/@TelnetEnabled" fn_info_game_xml "servername" "/ServerSettings/property[@name='ServerName']/@value"
fn_info_game_xml "telnetpass" "ServerSettings/@TelnetPassword" fn_info_game_xml "serverpassword" "/ServerSettings/property[@name='ServerPassword']/@value"
fn_info_game_xml "telnetport" "ServerSettings/@TelnetPort" fn_info_game_xml "port" "/ServerSettings/property[@name='ServerPort']/@value"
fn_info_game_xml "httpenabled" "ServerSettings/@ControlPanelEnabled" fn_info_game_xml "telnetenabled" "/ServerSettings/property[@name='TelnetEnabled']/@value"
fn_info_game_xml "httppassword" "ServerSettings/@ControlPanelPassword" fn_info_game_xml "telnetpass" "/ServerSettings/property[@name='TelnetPassword']/@value"
fn_info_game_xml "httpport" "ServerSettings/@ControlPanelPort" fn_info_game_xml "telnetport" "/ServerSettings/property[@name='TelnetPort']/@value"
fn_info_game_xml "worldname" "ServerSettings/@GameWorld" fn_info_game_xml "worldname" "/ServerSettings/property[@name='GameWorld']/@value"
fi fi
servername="${servername:-"NOT SET"}" gamemode="${gamemode:-"NOT SET"}"
serverpassword="${serverpassword:-"NOT SET"}"
port="${port:-"0"}"
queryport="${queryport:-"0"}"
httpenabled="${httpenabled:-"NOT SET"}" httpenabled="${httpenabled:-"NOT SET"}"
httpport="${httpport:-"0"}"
httppassword="${httppassword:-"NOT SET"}" httppassword="${httppassword:-"NOT SET"}"
telnetenabled="${telnetenabled:-"NOT SET"}" httpport="${httpport:-"0"}"
telnetport="${telnetport:-"0"}"
telnetpass="${telnetpass:-"NOT SET"}"
maxplayers="${maxplayers:-"0"}" maxplayers="${maxplayers:-"0"}"
gamemode="${gamemode:-"NOT SET"}" port="${port:-"0"}"
worldname="${worldname:-"NOT SET"}" 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)

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 ""

Loading…
Cancel
Save