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

47
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)

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

Loading…
Cancel
Save