فهرست منبع

Initial commit

Very broken
Daniel Gibbs 10 سال پیش
والد
کامیت
65f180533c
1فایلهای تغییر یافته به همراه175 افزوده شده و 0 حذف شده
  1. 175 0
      lgsm/functions/info_parms.sh

+ 175 - 0
lgsm/functions/info_parms.sh

@@ -0,0 +1,175 @@
+#!/bin/bash
+# LGSM info_parms.sh function
+# Author: Daniel Gibbs
+# Website: http://gameservermanagers.com
+lgsm_version="010316"
+
+# Description: Gets specific details server parameters.
+
+## Examples of filtering to get info from config files
+# sed 's/foo//g' - remove foo
+# tr -cd '[:digit:]' leave only digits
+# tr -d '=\"; ' remove selected charectors =\";
+# grep -v "foo" filter out lines that contain foo
+
+unavailable="\e[0;31mUNAVAILABLE\e[0m"
+zero="\e[0;31m0\e[0m"
+
+
+fn_info_config_idtech3(){
+	# Not Set
+	gameport=${gameport:-"NOT SET"}
+	rconport=${rconport:-"0"}
+	rconpassword=${rconpassword:-"NOT SET"}
+	statsport=${statsport:-"0"}
+	statspassword=${statspassword:-"NOT SET"}
+	mappool=${mappool:-"NOT SET"}
+	rconpassword=${rconpassword:-"NOT SET"}
+}
+
+fn_info_config_realvirtuality(){
+	# Not Set
+	port=${rconport:-"0"}
+}
+
+fn_info_config_seriousengine35(){
+
+}
+
+fn_info_config_source(){
+	defaultmap=${defaultmap:-"NOT SET"}
+	maxplayers=${maxplayers:-"0"}
+	port=${port:-"0"}
+	clientport=${clientport:-"0"}
+}
+
+fn_info_config_teamspeak3(){
+	if [ ! -f "${servercfgfullpath}" ]; then
+		dbplugin="${unavailable}"
+		port="9987"
+		queryport="10011"
+		fileport="30033"
+	else
+		# check if the ip exists in the config file. Failing this will fall back to the default.
+		ipconfigcheck=$(grep "voice_ip=" "${servercfgfullpath}" | sed 's/\voice_ip=//g')
+		if [ -n "${ipconfigcheck}" ]; then
+			ip="${ipconfigcheck}"
+		fi
+		dbplugin=$(grep "dbplugin=" "${servercfgfullpath}" | sed 's/\dbplugin=//g')
+		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:]')
+
+		# Not Set
+		port=${port:-"9987"}
+		queryport=${queryport:-"10011"}
+		fileport=${fileport:-"30033"}
+	fi
+}
+
+fn_info_config_teeworlds(){
+	if [ ! -f "${servercfgfullpath}" ]; then
+		servername="unnamed server"
+		serverpassword="${unavailable}"
+		rconpassword="${unavailable}"
+		port="8303"
+		slots="12"
+	else	
+		servername=$(grep "sv_name" "${servercfgfullpath}" | sed 's/sv_name //g' | sed 's/"//g')
+		serverpassword=$(grep "password " "${servercfgfullpath}" | awk '!/sv_rcon_password/'| sed 's/password //g' | tr -d '=\"; ')
+		rconpassword=$(grep "sv_rcon_password" "${servercfgfullpath}" | sed 's/sv_rcon_password //g' | tr -d '=\"; ')
+		port=$(grep "sv_port" "${servercfgfullpath}" | tr -cd '[:digit:]')
+		slots=$(grep "sv_max_clients" "${servercfgfullpath}" | tr -cd '[:digit:]')
+		
+		# Not Set
+		servername=${servername:-"NOT SET"}
+		serverpassword=${serverpassword:-"NOT SET"}
+		rconpassword=${rconpassword:-"NOT SET"}
+		port=${port:-"8303"}
+		slots=${slots:-"12"}
+	fi	
+}
+
+fn_info_config_terraria(){
+	if [ ! -f "${servercfgfullpath}" ]; then
+		port="0"
+	else	
+		port=$(grep "port=" "${servercfgfullpath}" | tr -cd '[:digit:]')
+
+		# Not Set		
+		port=${port:-"0"}
+	fi
+}
+
+fn_info_config_unreal(){
+	if [ ! -f "${servercfgfullpath}" ]; then
+		servername="${unavailable}"
+		serverpassword="${unavailable}"
+		adminpassword="${unavailable}"
+		port="${zero}"
+		gsqueryport="${zero}"
+		webadminenabled="${unavailable}"
+		webadminport="${zero}"
+		webadminuser="${unavailable}"
+		webadminpass="${unavailable}"
+	else
+		servername=$(grep "ServerName=" "${servercfgfullpath}" | sed 's/ServerName=//g')
+		serverpassword=$(grep "GamePassword=" "${servercfgfullpath}" | sed 's/GamePassword=//g')
+		adminpassword=$(grep "AdminPassword=" "${servercfgfullpath}" | sed 's/AdminPassword=//g')
+		port=$(grep "Port=" "${servercfgfullpath}" | grep -v "Master" | grep -v "LAN" | grep -v "Proxy" | grep -v "Listen" | tr -d '\r' | tr -cd '[:digit:]')
+		gsqueryport=$(grep "OldQueryPortNumber=" "${servercfgfullpath}" | tr -d '\r' | tr -cd '[:digit:]')
+		webadminenabled=$(grep "bEnabled=" "${servercfgfullpath}" | sed 's/bEnabled=//g' | tr -d '\r')
+		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')
+		else
+			webadminuser=$(grep "AdminName=" "${servercfgfullpath}" | sed 's/\AdminName=//g')
+			webadminpass=$(grep "AdminPassword=" "${servercfgfullpath}" | sed 's/\AdminPassword=//g')
+		fi
+
+		# Not Set
+		servername=${servername:-"NOT SET"}
+		serverpassword=${serverpassword:-"NOT SET"}
+		adminpassword=${adminpassword:-"NOT SET"}
+		port=${port:-"0"}
+		gsqueryport=${gsqueryport:-"NOT SET"}
+		webadminenabled=${webadminenabled:-"NOT SET"}
+		webadminport=${webadminport:-"NOT SET"}
+		webadminuser=${webadminuser:-"NOT SET"}
+		webadminpass=${webadminpass:-"NOT SET"}
+	fi	
+}
+
+## Just Cause 2
+if [ "${engine}" == "avalanche" ]; then
+	fn_info_config_avalanche
+## Dont Starve Together
+elif [ "${engine}" == "dontstarve" ]; then
+	fn_info_config_dontstarve
+## Project Zomboid
+elif [ "${engine}" == "projectzomboid" ]; then
+	fn_info_config_projectzomboid
+# Quake Love
+elif [ "${engine}" == "idtech3" ]; then
+	fn_info_config_idtech3
+# ARMA 3	
+elif [ "${engine}" == "realvirtuality" ]; then
+	fn_info_config_realvirtuality
+# Serious Sam	
+elif [ "${engine}" == "seriousengine35" ]; then
+	fn_info_config_seriousengine35
+# Source Engine Games	
+elif [ "${engine}" == "source" ]||[ "${engine}" == "goldsource" ]; then
+	fn_info_config_source
+elif [ "${gamename}" == "Teamspeak 3" ]; then
+	fn_info_config_teamspeak3
+# Teeworlds
+elif [ "${engine}" == "teeworlds" ]; then
+	fn_info_config_teeworlds
+elif [ "${engine}" == "terraria" ]; then
+	fn_info_config_terraria
+# Unreal/Unreal 2 engine 
+elif [ "${engine}" == "unreal" ]||[ "${engine}" == "unreal2" ]; then
+	fn_info_config_unreal
+fi