info_parms.sh 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  1. #!/bin/bash
  2. # LGSM info_parms.sh function
  3. # Author: Daniel Gibbs
  4. # Website: https://gameservermanagers.com
  5. # Description: Gets specific details from server parameters.
  6. local function_selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
  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="${red}UNAVAILABLE${default}"
  13. zero="${red}0${default}"
  14. fn_info_config_quakelive(){
  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_source(){
  25. defaultmap=${defaultmap:-"NOT SET"}
  26. maxplayers=${maxplayers:-"0"}
  27. port=${port:-"0"}
  28. clientport=${clientport:-"0"}
  29. }
  30. fn_info_config_spark(){
  31. # Not Set
  32. port=${port:-"0"}
  33. queryport=$((port + 1))
  34. maxplayers=${maxplayers:-"0"}
  35. webadminuser=${webadminuser:-"NOT SET"}
  36. webadminpass=${webadminpass:-"NOT SET"}
  37. webadminport=${webadminport:-"0"}
  38. }
  39. fn_info_config_teeworlds(){
  40. if [ ! -f "${servercfgfullpath}" ]; then
  41. servername="unnamed server"
  42. serverpassword="${unavailable}"
  43. rconpassword="${unavailable}"
  44. port="8303"
  45. maxplayers="12"
  46. else
  47. servername=$(grep "sv_name" "${servercfgfullpath}" | sed 's/sv_name //g' | sed 's/"//g')
  48. serverpassword=$(grep "password " "${servercfgfullpath}" | awk '!/sv_rcon_password/'| sed 's/password //g' | tr -d '=\"; ')
  49. rconpassword=$(grep "sv_rcon_password" "${servercfgfullpath}" | sed 's/sv_rcon_password //g' | tr -d '=\"; ')
  50. port=$(grep "sv_port" "${servercfgfullpath}" | tr -cd '[:digit:]')
  51. maxplayers=$(grep "sv_max_clients" "${servercfgfullpath}" | tr -cd '[:digit:]')
  52. # Not Set
  53. servername=${servername:-"NOT SET"}
  54. serverpassword=${serverpassword:-"NOT SET"}
  55. rconpassword=${rconpassword:-"NOT SET"}
  56. port=${port:-"8303"}
  57. maxplayers=${maxplayers:-"12"}
  58. fi
  59. }
  60. fn_info_config_terraria(){
  61. if [ ! -f "${servercfgfullpath}" ]; then
  62. port="0"
  63. else
  64. port=$(grep "port=" "${servercfgfullpath}" | tr -cd '[:digit:]')
  65. # Not Set
  66. port=${port:-"0"}
  67. fi
  68. }
  69. fn_info_config_unreal(){
  70. if [ ! -f "${servercfgfullpath}" ]; then
  71. servername="${unavailable}"
  72. serverpassword="${unavailable}"
  73. adminpassword="${unavailable}"
  74. port="${zero}"
  75. gsqueryport="${zero}"
  76. webadminenabled="${unavailable}"
  77. webadminport="${zero}"
  78. webadminuser="${unavailable}"
  79. webadminpass="${unavailable}"
  80. else
  81. servername=$(grep "ServerName=" "${servercfgfullpath}" | sed 's/ServerName=//g')
  82. serverpassword=$(grep "GamePassword=" "${servercfgfullpath}" | sed 's/GamePassword=//g')
  83. adminpassword=$(grep "AdminPassword=" "${servercfgfullpath}" | sed 's/AdminPassword=//g')
  84. port=$(grep "Port=" "${servercfgfullpath}" | grep -v "Master" | grep -v "LAN" | grep -v "Proxy" | grep -v "Listen" | tr -d '\r' | tr -cd '[:digit:]')
  85. gsqueryport=$(grep "OldQueryPortNumber=" "${servercfgfullpath}" | tr -d '\r' | tr -cd '[:digit:]')
  86. webadminenabled=$(grep "bEnabled=" "${servercfgfullpath}" | sed 's/bEnabled=//g' | tr -d '\r')
  87. webadminport=$(grep "ListenPort=" "${servercfgfullpath}" | tr -d '\r' | tr -cd '[:digit:]')
  88. if [ "${engine}" == "unreal" ]; then
  89. webadminuser=$(grep "AdminUsername=" "${servercfgfullpath}" | sed 's/\AdminUsername=//g')
  90. webadminpass=$(grep "UTServerAdmin.UTServerAdmin" "${servercfgfullpath}" -A 2 | grep "AdminPassword=" | sed 's/\AdminPassword=//g')
  91. else
  92. webadminuser=$(grep "AdminName=" "${servercfgfullpath}" | sed 's/\AdminName=//g')
  93. webadminpass=$(grep "AdminPassword=" "${servercfgfullpath}" | sed 's/\AdminPassword=//g')
  94. fi
  95. # Not Set
  96. servername=${servername:-"NOT SET"}
  97. serverpassword=${serverpassword:-"NOT SET"}
  98. adminpassword=${adminpassword:-"NOT SET"}
  99. port=${port:-"0"}
  100. gsqueryport=${gsqueryport:-"NOT SET"}
  101. webadminenabled=${webadminenabled:-"NOT SET"}
  102. webadminport=${webadminport:-"NOT SET"}
  103. webadminuser=${webadminuser:-"NOT SET"}
  104. webadminpass=${webadminpass:-"NOT SET"}
  105. fi
  106. }
  107. ## Just Cause 2
  108. if [ "${engine}" == "avalanche" ]; then
  109. fn_info_config_avalanche
  110. ## Dont Starve Together
  111. elif [ "${engine}" == "dontstarve" ]; then
  112. fn_info_config_dontstarve
  113. ## Project Zomboid
  114. elif [ "${engine}" == "projectzomboid" ]; then
  115. fn_info_config_projectzomboid
  116. # Quake Live
  117. elif [ "${gamename}" == "Quake Live" ]; then
  118. fn_info_config_quakelive
  119. # ARMA 3
  120. elif [ "${engine}" == "realvirtuality" ]; then
  121. fn_info_config_realvirtuality
  122. # Serious Sam
  123. elif [ "${engine}" == "seriousengine35" ]; then
  124. fn_info_config_seriousengine35
  125. # Source Engine Games
  126. elif [ "${engine}" == "source" ]||[ "${engine}" == "goldsource" ]; then
  127. fn_info_config_source
  128. # Spark
  129. elif [ "${engine}" == "spark" ]; then
  130. fn_info_config_spark
  131. # Teeworlds
  132. elif [ "${engine}" == "teeworlds" ]; then
  133. fn_info_config_teeworlds
  134. # Terraria
  135. elif [ "${engine}" == "terraria" ]; then
  136. fn_info_config_terraria
  137. # Unreal/Unreal 2 engine
  138. elif [ "${engine}" == "unreal" ]||[ "${engine}" == "unreal2" ]; then
  139. fn_info_config_unreal
  140. fi