info_parms.sh 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177
  1. #!/bin/bash
  2. # LGSM info_parms.sh function
  3. # Author: Daniel Gibbs
  4. # Website: https://gameservermanagers.com
  5. lgsm_version="210516"
  6. # Description: Gets specific details from server parameters.
  7. ## Examples of filtering to get info from config files
  8. # sed 's/foo//g' - remove foo
  9. # tr -cd '[:digit:]' leave only digits
  10. # tr -d '=\"; ' remove selected charectors =\";
  11. # grep -v "foo" filter out lines that contain foo
  12. unavailable="\e[0;31mUNAVAILABLE\e[0m"
  13. zero="\e[0;31m0\e[0m"
  14. fn_info_config_idtech3(){
  15. # Not Set
  16. port=${port:-"NOT SET"}
  17. rconport=${rconport:-"0"}
  18. rconpassword=${rconpassword:-"NOT SET"}
  19. statsport=${statsport:-"0"}
  20. statspassword=${statspassword:-"NOT SET"}
  21. mappool=${mappool:-"NOT SET"}
  22. rconpassword=${rconpassword:-"NOT SET"}
  23. }
  24. fn_info_config_realvirtuality(){
  25. port=$(grep "^serverport=" "${servercfgfullpath}" | tr -cd '[:digit:]')
  26. queryport=$(grep "^steamqueryport=" "${servercfgfullpath}" | tr -cd '[:digit:]')
  27. masterport=$(grep "^steamport=" "${servercfgfullpath}" | tr -cd '[:digit:]')
  28. # Not Set
  29. port=${port:-"2302"}
  30. queryport=${queryport:-"2303"}
  31. masterport=${masterport:-"2304"}
  32. }
  33. fn_info_config_source(){
  34. defaultmap=${defaultmap:-"NOT SET"}
  35. maxplayers=${maxplayers:-"0"}
  36. port=${port:-"0"}
  37. clientport=${clientport:-"0"}
  38. }
  39. fn_info_config_teamspeak3(){
  40. if [ ! -f "${servercfgfullpath}" ]; then
  41. dbplugin="${unavailable}"
  42. port="9987"
  43. queryport="10011"
  44. fileport="30033"
  45. else
  46. # check if the ip exists in the config file. Failing this will fall back to the default.
  47. ipconfigcheck=$(grep "voice_ip=" "${servercfgfullpath}" | sed 's/\voice_ip=//g')
  48. if [ -n "${ipconfigcheck}" ]; then
  49. ip="${ipconfigcheck}"
  50. fi
  51. dbplugin=$(grep "dbplugin=" "${servercfgfullpath}" | sed 's/\dbplugin=//g')
  52. port=$(grep "default_voice_port=" "${servercfgfullpath}" | tr -cd '[:digit:]')
  53. queryport=$(grep "query_port=" "${servercfgfullpath}" | tr -cd '[:digit:]')
  54. fileport=$(grep "filetransfer_port=" "${servercfgfullpath}" | tr -cd '[:digit:]')
  55. # Not Set
  56. port=${port:-"9987"}
  57. queryport=${queryport:-"10011"}
  58. fileport=${fileport:-"30033"}
  59. fi
  60. }
  61. fn_info_config_teeworlds(){
  62. if [ ! -f "${servercfgfullpath}" ]; then
  63. servername="unnamed server"
  64. serverpassword="${unavailable}"
  65. rconpassword="${unavailable}"
  66. port="8303"
  67. slots="12"
  68. else
  69. servername=$(grep "sv_name" "${servercfgfullpath}" | sed 's/sv_name //g' | sed 's/"//g')
  70. serverpassword=$(grep "password " "${servercfgfullpath}" | awk '!/sv_rcon_password/'| sed 's/password //g' | tr -d '=\"; ')
  71. rconpassword=$(grep "sv_rcon_password" "${servercfgfullpath}" | sed 's/sv_rcon_password //g' | tr -d '=\"; ')
  72. port=$(grep "sv_port" "${servercfgfullpath}" | tr -cd '[:digit:]')
  73. slots=$(grep "sv_max_clients" "${servercfgfullpath}" | tr -cd '[:digit:]')
  74. # Not Set
  75. servername=${servername:-"NOT SET"}
  76. serverpassword=${serverpassword:-"NOT SET"}
  77. rconpassword=${rconpassword:-"NOT SET"}
  78. port=${port:-"8303"}
  79. slots=${slots:-"12"}
  80. fi
  81. }
  82. fn_info_config_terraria(){
  83. if [ ! -f "${servercfgfullpath}" ]; then
  84. port="0"
  85. else
  86. port=$(grep "port=" "${servercfgfullpath}" | tr -cd '[:digit:]')
  87. # Not Set
  88. port=${port:-"0"}
  89. fi
  90. }
  91. fn_info_config_unreal(){
  92. if [ ! -f "${servercfgfullpath}" ]; then
  93. servername="${unavailable}"
  94. serverpassword="${unavailable}"
  95. adminpassword="${unavailable}"
  96. port="${zero}"
  97. gsqueryport="${zero}"
  98. webadminenabled="${unavailable}"
  99. webadminport="${zero}"
  100. webadminuser="${unavailable}"
  101. webadminpass="${unavailable}"
  102. else
  103. servername=$(grep "ServerName=" "${servercfgfullpath}" | sed 's/ServerName=//g')
  104. serverpassword=$(grep "GamePassword=" "${servercfgfullpath}" | sed 's/GamePassword=//g')
  105. adminpassword=$(grep "AdminPassword=" "${servercfgfullpath}" | sed 's/AdminPassword=//g')
  106. port=$(grep "Port=" "${servercfgfullpath}" | grep -v "Master" | grep -v "LAN" | grep -v "Proxy" | grep -v "Listen" | tr -d '\r' | tr -cd '[:digit:]')
  107. gsqueryport=$(grep "OldQueryPortNumber=" "${servercfgfullpath}" | tr -d '\r' | tr -cd '[:digit:]')
  108. webadminenabled=$(grep "bEnabled=" "${servercfgfullpath}" | sed 's/bEnabled=//g' | tr -d '\r')
  109. webadminport=$(grep "ListenPort=" "${servercfgfullpath}" | tr -d '\r' | tr -cd '[:digit:]')
  110. if [ "${engine}" == "unreal" ]; then
  111. webadminuser=$(grep "AdminUsername=" "${servercfgfullpath}" | sed 's/\AdminUsername=//g')
  112. webadminpass=$(grep "UTServerAdmin.UTServerAdmin" "${servercfgfullpath}" -A 2 | grep "AdminPassword=" | sed 's/\AdminPassword=//g')
  113. else
  114. webadminuser=$(grep "AdminName=" "${servercfgfullpath}" | sed 's/\AdminName=//g')
  115. webadminpass=$(grep "AdminPassword=" "${servercfgfullpath}" | sed 's/\AdminPassword=//g')
  116. fi
  117. # Not Set
  118. servername=${servername:-"NOT SET"}
  119. serverpassword=${serverpassword:-"NOT SET"}
  120. adminpassword=${adminpassword:-"NOT SET"}
  121. port=${port:-"0"}
  122. gsqueryport=${gsqueryport:-"NOT SET"}
  123. webadminenabled=${webadminenabled:-"NOT SET"}
  124. webadminport=${webadminport:-"NOT SET"}
  125. webadminuser=${webadminuser:-"NOT SET"}
  126. webadminpass=${webadminpass:-"NOT SET"}
  127. fi
  128. }
  129. ## Just Cause 2
  130. if [ "${engine}" == "avalanche" ]; then
  131. fn_info_config_avalanche
  132. ## Dont Starve Together
  133. elif [ "${engine}" == "dontstarve" ]; then
  134. fn_info_config_dontstarve
  135. ## Project Zomboid
  136. elif [ "${engine}" == "projectzomboid" ]; then
  137. fn_info_config_projectzomboid
  138. # Quake Live
  139. elif [ "${engine}" == "idtech3" ]; then
  140. fn_info_config_idtech3
  141. # ARMA 3
  142. elif [ "${engine}" == "realvirtuality" ]; then
  143. fn_info_config_realvirtuality
  144. # Serious Sam
  145. elif [ "${engine}" == "seriousengine35" ]; then
  146. fn_info_config_seriousengine35
  147. # Source Engine Games
  148. elif [ "${engine}" == "source" ]||[ "${engine}" == "goldsource" ]; then
  149. fn_info_config_source
  150. elif [ "${gamename}" == "Teamspeak 3" ]; then
  151. fn_info_config_teamspeak3
  152. # Teeworlds
  153. elif [ "${engine}" == "teeworlds" ]; then
  154. fn_info_config_teeworlds
  155. elif [ "${engine}" == "terraria" ]; then
  156. fn_info_config_terraria
  157. # Unreal/Unreal 2 engine
  158. elif [ "${engine}" == "unreal" ]||[ "${engine}" == "unreal2" ]; then
  159. fn_info_config_unreal
  160. fi