فهرست منبع

Made more changes to details

Still more changes to come. Not quite finished uddating all yet.
Daniel Gibbs 11 سال پیش
والد
کامیت
b110bf15bf
1فایلهای تغییر یافته به همراه180 افزوده شده و 23 حذف شده
  1. 180 23
      functions/fn_details_config

+ 180 - 23
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')