diff --git a/functions/fn_details_config b/functions/fn_details_config index 7df02b2d3..036835e00 100644 --- a/functions/fn_details_config +++ b/functions/fn_details_config @@ -2,7 +2,7 @@ # LGSM fn_details_config function # Author: Daniel Gibbs # Website: http://gameservermanagers.com -# Version: 210715 +# Version: 220715 # Description: Gets specific details from config files. @@ -327,34 +327,191 @@ elif [ "${engine}" == "source" ]||[ "${engine}" == "goldsource" ]; then fi elif [ "${engine}" == "spark" ]; then - queryport=$((${port} + 1)) + # query port + if [ -f "${servercfgfullpath}" ]; then + queryport=$((${port} + 1)) + fi + if [ ! -n "${queryport}" ]; then + queryport="0" + fi elif [ "${gamename}" == "Teamspeak 3" ]; then - if [ -s "${servercfgfullpath}" ]; then + # port + if [ -f "${servercfgfullpath}" ]; then port=$(grep "default_voice_port=" "${servercfgfullpath}"|tr -cd [:digit:]) - queryport=$(grep "query_port=" "${servercfgfullpath}"|tr -cd [:digit:]) - fileport=$(grep "filetransfer_port=" "${servercfgfullpath}"|tr -cd [:digit:]) - ip=$(grep "voice_ip=" "${servercfgfullpath}"|sed 's/\voice_ip=//g') - dbplugin=$(grep "dbplugin=" "${servercfgfullpath}"|sed 's/\dbplugin=//g') + fi + if [ ! -n "${port}" ]; then + port="9987" + fi + + # query port + if [ -f "${servercfgfullpath}" ]; then + queryport=$(grep "query_port=" "${servercfgfullpath}"|tr -cd [:digit:]) + fi + if [ ! -n "${queryport}" ]; then + queryport="10011" + fi + + # fileport port + if [ -f "${servercfgfullpath}" ]; then + fileport=$(grep "filetransfer_port=" "${servercfgfullpath}"|tr -cd [:digit:]) + fi + if [ ! -n "${fileport}" ]; then + fileport="30033" + fi + + # ip + if [ -f "${servercfgfullpath}" ]; then + # check if the ip exists in the config file. Failing this will fall back to the default. + configipcheck=$(grep "voice_ip=" "${servercfgfullpath}"|sed 's/\voice_ip=//g') + fi + if [ -n "${configipcheck}" ]; then + ip=$(grep "voice_ip=" "${servercfgfullpath}"|sed 's/\voice_ip=//g') + fi + + # dbplugin + if [ -f "${servercfgfullpath}" ]; then + dbplugin=$(grep "dbplugin=" "${servercfgfullpath}"|sed 's/\dbplugin=//g') + if [ ! -n "${serverpassword}" ]; then + dbplugin="NOT SET" + fi + else + dbplugin="\e[0;31mUNAVAILABLE\e[0m" + fi + +elif [ "${engine}" == "unity3d" ]; then + # server name + if [ -f "${servercfgfullpath}" ]; then + servername=$(grep "ServerName" "${servercfgfullpath}"|sed 's/^.*value="//'|cut -f1 -d"\"") + if [ ! -n "${servername}" ]; then + servername="NOT SET" + fi else - port="9987" - queryport="10011" - fileport="30033" + servername="\e[0;31mUNAVAILABLE\e[0m" fi -elif [ "${engine}" == "unity3d" ]; then - servername=$(grep "ServerName" "${servercfgfullpath}"|sed 's/^.*value="//'|cut -f1 -d"\"") - port=$(grep "ServerPort" "${servercfgfullpath}"|tr -cd [:digit:]) - queryport=$((${port} + 1)) - webadminenabled=$(grep "ControlPanelEnabled" "${servercfgfullpath}"|sed 's/^.*value="//'|cut -f1 -d"\"") - webadminport=$(grep "ControlPanelPort" "${servercfgfullpath}"|tr -cd [:digit:]) - webadminpass=$(grep "ControlPanelPassword" "${servercfgfullpath}"|sed 's/^.*value="//'|cut -f1 -d"\"") - telnetenabled=$(grep "TelnetEnabled" "${servercfgfullpath}"|sed 's/^.*value="//'|cut -f1 -d"\"") - telnetport=$(grep "TelnetPort" "${servercfgfullpath}"|tr -cd [:digit:]) - telnetpass=$(grep "TelnetPassword" "${servercfgfullpath}"|sed 's/^.*value="//'|cut -f1 -d"\"") - if [ -z "${telnetpass}" ]; then - telnetpass="\e[0;31mno password set\e[0m" + # server password + if [ -f "${servercfgfullpath}" ]; then + serverpassword=$(grep "ServerPassword" "${servercfgfullpath}"|sed 's/^.*value="//'|cut -f1 -d"\"") + if [ ! -n "${serverpassword}" ]; then + serverpassword="NOT SET" + fi + else + serverpassword="\e[0;31mUNAVAILABLE\e[0m" + fi + + # port + if [ -f "${servercfgfullpath}" ]; then + port=$(grep "ServerPort" "${servercfgfullpath}"|tr -cd [:digit:]) fi + if [ ! -n "${port}" ]; then + port="0" + fi + + # query port + if [ -f "${servercfgfullpath}" ]; then + queryport=$((${port} + 1)) + fi + if [ ! -n "${queryport}" ]; then + queryport="0" + fi + + # webadmin enabled + if [ -f "${servercfgfullpath}" ]; then + webadminenabled=$(grep "ControlPanelEnabled" "${servercfgfullpath}"|sed 's/^.*value="//'|cut -f1 -d"\"") + if [ ! -n "${webadminenabled}" ]; then + webadminenabled="NOT SET" + fi + else + webadminenabled="\e[0;31mUNAVAILABLE\e[0m" + fi + + # webadmin port + if [ -f "${servercfgfullpath}" ]; then + webadminport=$(grep "ControlPanelPort" "${servercfgfullpath}"|tr -cd [:digit:]) + fi + if [ ! -n "${webadminport}" ]; then + webadminport="0" + fi + + # webadmin enabled + if [ -f "${servercfgfullpath}" ]; then + webadminenabled=$(grep "ControlPanelEnabled" "${servercfgfullpath}"|sed 's/^.*value="//'|cut -f1 -d"\"") + if [ ! -n "${webadminenabled}" ]; then + webadminenabled="NOT SET" + fi + else + webadminenabled="\e[0;31mUNAVAILABLE\e[0m" + fi + + # webadmin password + if [ -f "${servercfgfullpath}" ]; then + webadminpass=$(grep "ControlPanelPassword" "${servercfgfullpath}"|sed 's/^.*value="//'|cut -f1 -d"\"") + if [ ! -n "${webadminpass}" ]; then + webadminpass="NOT SET" + fi + else + webadminpass="\e[0;31mUNAVAILABLE\e[0m" + fi + + # telnet enabled + if [ -f "${servercfgfullpath}" ]; then + telnetenabled=$(grep "TelnetEnabled" "${servercfgfullpath}"|sed 's/^.*value="//'|cut -f1 -d"\"") + if [ ! -n "${telnetenabled}" ]; then + telnetenabled="NOT SET" + fi + else + telnetenabled="\e[0;31mUNAVAILABLE\e[0m" + fi + + # telnet port + if [ -f "${servercfgfullpath}" ]; then + telnetport=$(grep "ControlPanelPort" "${servercfgfullpath}"|tr -cd [:digit:]) + fi + if [ ! -n "${telnetport}" ]; then + telnetport="0" + fi + + # telnet password + if [ -f "${servercfgfullpath}" ]; then + telnetpass=$(grep "TelnetEnabled" "${servercfgfullpath}"|sed 's/^.*value="//'|cut -f1 -d"\"") + if [ ! -n "${telnetenabled}" ]; then + telnetpass="NOT SET" + fi + else + telnetpass="\e[0;31mUNAVAILABLE\e[0m" + fi + + # slots + if [ -f "${servercfgfullpath}" ]; then + slots=$(grep "ServerMaxPlayerCount" "${servercfgfullpath}"|tr -cd [:digit:]) + if [ ! -n "${slots}" ]; then + slots="NOT SET" + fi + else + slots="\e[0;31mUNAVAILABLE\e[0m" + fi + + # game mode + if [ -f "${servercfgfullpath}" ]; then + gamemode=$(grep "GameMode" "${servercfgfullpath}"|sed 's/^.*value="//'|cut -f1 -d"\"") + if [ ! -n "${gamemode}" ]; then + gamemode="NOT SET" + fi + else + gamemode="\e[0;31mUNAVAILABLE\e[0m" + fi + + # game world + if [ -f "${servercfgfullpath}" ]; then + gameworld=$(grep "GameWorld" "${servercfgfullpath}"|sed 's/^.*value="//'|cut -f1 -d"\"") + if [ ! -n "${gameworld}" ]; then + gameworld="NOT SET" + fi + else + gameworld="\e[0;31mUNAVAILABLE\e[0m" + fi + elif [ "${engine}" == "unreal" ]||[ "${engine}" == "unreal2" ]; then servername=$(grep -s ServerName= ${servercfgfullpath}|sed 's/ServerName=//g') port=$(grep Port= "${servercfgfullpath}"|grep -v Master|grep -v LAN|grep -v Proxy|grep -v Listen|tr -d '\r'|tr -cd [:digit:]) @@ -365,7 +522,7 @@ elif [ "${engine}" == "unreal" ]||[ "${engine}" == "unreal2" ]; then webadminport=$(grep ListenPort= "${servercfgfullpath}"|tr -d '\r'|tr -cd [:digit:]) if [ "${engine}" == "unreal" ]; then webadminuser=$(grep AdminUsername= "${servercfgfullpath}"|sed 's/\AdminUsername=//g') - webadminpass=$(grep UTServerAdmin.UTServerAdmin "${servercfgfullpath}" -A 2| grep AdminPassword=|sed 's/\AdminPassword=//g') + webadminpass=$(grep UTServerAdmin.UTServerAdmin "${servercfgfullpath}" -A 2| grep AdminPassword=|sed 's/\AdminPassword=//g') else webadminuser=$(grep AdminName= "${servercfgfullpath}"|sed 's/\AdminName=//g') webadminpass=$(grep AdminPassword= "${servercfgfullpath}"|sed 's/\AdminPassword=//g')