info_config.sh 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679
  1. #!/bin/bash
  2. # LGSM info_config.sh function
  3. # Author: Daniel Gibbs
  4. # Contributor: UltimateByte
  5. # Website: https://gameservermanagers.com
  6. # Description: Gets specific details from config files.
  7. local function_selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
  8. ## Examples of filtering to get info from config files
  9. # sed 's/foo//g' - remove foo
  10. # tr -cd '[:digit:]' leave only digits
  11. # tr -d '=\"; ' remove selected characters =\";
  12. # grep -v "foo" filter out lines that contain foo
  13. # cut -f1 -d "/" remove everything after /
  14. fn_info_config_avalanche(){
  15. if [ ! -f "${servercfgfullpath}" ]; then
  16. servername="${unavailable}"
  17. serverpassword="${unavailable}"
  18. maxplayers="${zero}"
  19. port="${zero}"
  20. else
  21. servername=$(grep "Name" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^--/d' -e 's/Name//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
  22. serverpassword=$(grep "Password" "${servercfgfullpath}" | sed -e 's/^ *//g' -e '/^--/d' -e 's/Password//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
  23. maxplayers=$(grep "MaxPlayers" "${servercfgfullpath}" | grep -v "\--" | tr -cd '[:digit:]')
  24. port=$(grep "BindPort" "${servercfgfullpath}" | grep -v "\--" | tr -cd '[:digit:]')
  25. ip=$(grep "BindIP" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^--/d' -e 's/BindIP//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
  26. ipsetinconfig=1
  27. ipinconfigvar="BindIP"
  28. # Not Set
  29. servername=${servername:-"NOT SET"}
  30. serverpassword=${serverpassword:-"NOT SET"}
  31. maxplayers=${maxplayers:-"0"}
  32. port=${port:-"0"}
  33. fi
  34. }
  35. fn_info_config_ark(){
  36. if [ ! -f "${servercfgfullpath}" ]; then
  37. servername="${unavailable}"
  38. else
  39. servername=$(grep "SessionName" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^--/d' -e 's/SessionName//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
  40. # Not Set
  41. servername=${servername:-"NOT SET"}
  42. fi
  43. }
  44. fn_info_config_bf1942(){
  45. if [ ! -f "${servercfgfullpath}" ]; then
  46. servername="${unavailable}"
  47. serverpassword="${unavailable}"
  48. maxplayers="${zero}"
  49. port="${zero}"
  50. queryport="${zero}"
  51. else
  52. servername=$(grep "game.serverName " "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^--/d' -e 's/game.serverName //g' | tr -d '=\";,:' | xargs)
  53. serverpassword=$(grep "game.serverPassword" "${servercfgfullpath}" | sed -e 's/^ *//g' -e '/^--/d' -e 's/game.serverPassword//g' | tr -d '=\";,:' | xargs)
  54. maxplayers=$(grep "game.serverMaxPlayers" "${servercfgfullpath}" | grep -v "\--" | tr -cd '[:digit:]')
  55. port=$(grep "game.serverPort" "${servercfgfullpath}" | grep -v "\--" | tr -cd '[:digit:]')
  56. queryport="22000"
  57. ip=$(grep "game.serverIP" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^--/d' -e 's/game.serverIP//g' | tr -d '=\";,:' | xargs)
  58. ipsetinconfig=1
  59. ipinconfigvar="game.serverIP"
  60. # Not Set
  61. servername=${servername:-"NOT SET"}
  62. serverpassword=${serverpassword:-"NOT SET"}
  63. maxplayers=${maxplayers:-"0"}
  64. port=${port:-"0"}
  65. fi
  66. }
  67. fn_info_config_cod(){
  68. if [ ! -f "${servercfgfullpath}" ]; then
  69. servername="${unavailable}"
  70. rconpassword="${unavailable}"
  71. else
  72. servername=$(grep "sv_hostname " "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/set sv_hostname //g' | tr -d '=\";,:' | xargs)
  73. rconpassword=$(grep "rconpassword" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/set rconpassword //g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
  74. # Not Set
  75. servername=${servername:-"NOT SET"}
  76. rconpassword=${rconpassword=:-"NOT SET"}
  77. fi
  78. }
  79. fn_info_config_cod2(){
  80. if [ ! -f "${servercfgfullpath}" ]; then
  81. servername="${unavailable}"
  82. rconpassword="${unavailable}"
  83. else
  84. servername=$(grep "sv_hostname " "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/set sv_hostname //g' | tr -d '=\";,:' | xargs)
  85. rconpassword=$(grep "rconpassword" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/set rconpassword //g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
  86. # Not Set
  87. servername=${servername:-"NOT SET"}
  88. rconpassword=${rconpassword=:-"NOT SET"}
  89. fi
  90. }
  91. fn_info_config_cod4(){
  92. if [ ! -f "${servercfgfullpath}" ]; then
  93. servername="${unavailable}"
  94. rconpassword="${unavailable}"
  95. else
  96. servername=$(grep "sv_hostname " "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/set sv_hostname //g' | tr -d '=\";,:' | xargs)
  97. rconpassword=$(grep "rconpassword" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/set rconpassword //g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
  98. # Not Set
  99. servername=${servername:-"NOT SET"}
  100. rconpassword=${rconpassword=:-"NOT SET"}
  101. fi
  102. }
  103. fn_info_config_codwaw(){
  104. if [ ! -f "${servercfgfullpath}" ]; then
  105. servername="${unavailable}"
  106. rconpassword="${unavailable}"
  107. else
  108. servername=$(grep "sv_hostname " "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/set sv_hostname //g' | tr -d '=\";,:' | xargs)
  109. rconpassword=$(grep "rconpassword" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/set rconpassword //g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
  110. # Not Set
  111. servername=${servername:-"NOT SET"}
  112. rconpassword=${rconpassword=:-"NOT SET"}
  113. fi
  114. }
  115. fn_info_config_dontstarve(){
  116. if [ ! -f "${clustercfgfullpath}" ]; then
  117. servername="${unavailable}"
  118. serverpassword="${unavailable}"
  119. maxplayers="${zero}"
  120. gamemode="${unavailable}"
  121. tickrate="${zero}"
  122. masterport="${zero}"
  123. else
  124. servername=$(grep "cluster_name" "${clustercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/cluster_name//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
  125. serverpassword=$(grep "cluster_password" "${clustercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/cluster_password//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
  126. maxplayers=$(grep "max_players" "${clustercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
  127. gamemode=$(grep "game_mode" "${clustercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/game_mode//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
  128. tickrate=$(grep "tick_rate" "${clustercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
  129. masterport=$(grep "master_port" "${clustercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
  130. ip=$(grep "bind_ip" "${clustercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/bind_ip//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
  131. ipsetinconfig=1
  132. ipinconfigvar="bind_ip"
  133. # Not Set
  134. servername=${servername:-"NOT SET"}
  135. serverpassword=${serverpassword:-"NOT SET"}
  136. maxplayers=${maxplayers:-"0"}
  137. gamemode=${gamemode:-"NOT SET"}
  138. tickrate=${tickrate:-"0"}
  139. masterport=${masterport:-"0"}
  140. fi
  141. if [ ! -f "${servercfgfullpath}" ]; then
  142. port="${zero}"
  143. steamauthenticationport="${zero}"
  144. steammasterserverport="${zero}"
  145. else
  146. port=$(grep "server_port" "${servercfgfullpath}" | grep "^server_port" | grep -v "#" | tr -cd '[:digit:]')
  147. steamauthenticationport=$(grep "authentication_port" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
  148. steammasterserverport=$(grep "master_server_port" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
  149. # Not Set
  150. port=${port:-"0"}
  151. steamauthenticationport=${steamauthenticationport:-"0"}
  152. steammasterserverport=${steammasterserverport:-"0"}
  153. fi
  154. }
  155. fn_info_config_factorio(){
  156. if [ ! -f "${servercfgfullpath}" ]; then
  157. servername="Factorio Server"
  158. serverpassword="${unavailable}"
  159. maxplayers="${zero}"
  160. else
  161. servername="Factorio Server"
  162. serverpassword=$(grep "game_password" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/game_password//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
  163. maxplayers=$(grep "\"max_players\"" "${servercfgfullpath}" | tr -cd '[:digit:]')
  164. # Not Set
  165. servername=${servername:-"NOT SET"}
  166. maxplayers=${maxplayers=:-"0"}
  167. rconpassword=${rconpassword=:-"NOT SET"}
  168. fi
  169. }
  170. fn_info_config_minecraft(){
  171. if [ ! -f "${servercfgfullpath}" ]; then
  172. servername="${unavailable}"
  173. rconpassword="${unavailable}"
  174. rconport="${zero}"
  175. maxplayers="${zero}"
  176. port="${zero}"
  177. gamemode="${unavailable}"
  178. gameworld="${unavailable}"
  179. else
  180. servername=$(grep "motd" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/motd//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
  181. rconpassword=$(grep "rcon.password" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/rcon.password//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
  182. rconport=$(grep "rcon.port" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
  183. maxplayers=$(grep "max-players" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
  184. port=$(grep "server-port" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
  185. gamemode=$(grep "gamemode" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
  186. gameworld=$(grep "level-name" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/level-name//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
  187. ip=$(grep "server-ip" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^--/d' -e 's/server-ip//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
  188. ipsetinconfig=1
  189. ipinconfigvar="server-ip"
  190. # Not Set
  191. servername=${servername:-"NOT SET"}
  192. rconpassword=${rconpassword:-"NOT SET"}
  193. rconport=${rconport:-"NOT SET"}
  194. maxplayers=${maxplayers:-"NOT SET"}
  195. port=${port:-"NOT SET"}
  196. gamemode=${gamemode:-"NOT SET"}
  197. gameworld=${gameworld:-"NOT SET"}
  198. fi
  199. }
  200. fn_info_config_projectzomboid(){
  201. if [ ! -f "${servercfgfullpath}" ]; then
  202. servername="${unavailable}"
  203. serverpassword="${unavailable}"
  204. rconpassword="${unavailable}"
  205. maxplayers="${zero}"
  206. port="${zero}"
  207. gameworld="${unavailable}"
  208. else
  209. servername=$(grep "PublicName" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/PublicName//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
  210. serverpassword=$(grep "Password" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' | grep "^Password" | sed -e '/^#/d' -e 's/Password//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
  211. rconpassword=$(grep "RCONPassword" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/RCONPassword//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
  212. maxplayers=$(grep "MaxPlayers" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
  213. port=$(grep "DefaultPort" "${servercfgfullpath}" | tr -cd '[:digit:]')
  214. gameworld=$(grep "Map" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' | grep "^Map" | sed -e '/^#/d' -e 's/Map//g' | tr -d '=\";' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
  215. # Not Set
  216. servername=${servername:-"NOT SET"}
  217. serverpassword=${serverpassword:-"NOT SET"}
  218. rconpassword=${rconpassword:-"NOT SET"}
  219. maxplayers=${maxplayers:-"NOT SET"}
  220. port=${port:-"NOT SET"}
  221. gameworld=${gameworld:-"NOT SET"}
  222. fi
  223. }
  224. fn_info_config_quake2(){
  225. if [ ! -f "${servercfgfullpath}" ]; then
  226. rconpassword="${unavailable}"
  227. servername="${unavailable}"
  228. serverpassword="${unavailable}"
  229. maxplayers="${zero}"
  230. else
  231. rconpassword=$(grep "rcon_password" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/set rcon_password//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
  232. servername=$(grep "hostname" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/set hostname//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
  233. maxplayers=$(grep "maxclients" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
  234. # Not Set
  235. rconpassword=${rconpassword:-"NOT SET"}
  236. servername=${servername:-"NOT SET"}
  237. maxplayers=${maxplayers:-"0"}
  238. fi
  239. }
  240. fn_info_config_quake3(){
  241. if [ ! -f "${servercfgfullpath}" ]; then
  242. rconpassword="${unavailable}"
  243. servername="${unavailable}"
  244. serverpassword="${unavailable}"
  245. maxplayers="${zero}"
  246. else
  247. rconpassword=$(grep "zmq_rcon_password" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/set zmq_rcon_password//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
  248. servername=$(grep "sv_hostname" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/set sv_hostname//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
  249. serverpassword=$(grep "rconpassword" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/set rconpassword//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
  250. maxplayers=$(grep "sv_maxclients" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
  251. # Not Set
  252. rconpassword=${rconpassword:-"NOT SET"}
  253. servername=${servername:-"NOT SET"}
  254. serverpassword=${serverpassword:-"NOT SET"}
  255. maxplayers=${maxplayers:-"0"}
  256. fi
  257. }
  258. fn_info_config_quakelive(){
  259. if [ ! -f "${servercfgfullpath}" ]; then
  260. rconpassword="${unavailable}"
  261. servername="${unavailable}"
  262. serverpassword="${unavailable}"
  263. maxplayers="${zero}"
  264. else
  265. rconpassword=$(grep "zmq_rcon_password" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/set zmq_rcon_password//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
  266. servername=$(grep "sv_hostname" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/set sv_hostname//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
  267. serverpassword=$(grep "g_password" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/set g_password//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
  268. maxplayers=$(grep "sv_maxClients" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
  269. ip=$(grep "set net_ip" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/set net_ip//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
  270. ipsetinconfig=1
  271. ipinconfigvar="set net_ip"
  272. # Not Set
  273. rconpassword=${rconpassword:-"NOT SET"}
  274. servername=${servername:-"NOT SET"}
  275. serverpassword=${serverpassword:-"NOT SET"}
  276. maxplayers=${maxplayers:-"0"}
  277. fi
  278. }
  279. fn_info_config_wolfensteinenemyterritory(){
  280. if [ ! -f "${servercfgfullpath}" ]; then
  281. rconpassword="${unavailable}"
  282. servername="${unavailable}"
  283. serverpassword="${unavailable}"
  284. maxplayers="${zero}"
  285. port="${zero}"
  286. else
  287. port=$(grep "set net_port" "${servercfgfullpath}" | grep -v "//" | tr -cd '[:digit:]')
  288. rconpassword=$(grep "set zmq_rcon_password" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/set zmq_rcon_password //g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//g' -e '/^\//d' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
  289. servername=$(grep "set sv_hostname" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/set sv_hostname //g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
  290. serverpassword=$(grep "set g_password" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/set g_password //g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
  291. maxplayers=$(grep "set sv_maxclients" "${servercfgfullpath}" | grep -v "//" | tr -cd '[:digit:]')
  292. ip=$(grep "set net_ip" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/set net_ip//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
  293. ipsetinconfig=1
  294. ipinconfigvar="set net_ip"
  295. # Not Set
  296. rconpassword=${rconpassword:-"NOT SET"}
  297. servername=${servername:-"NOT SET"}
  298. serverpassword=${serverpassword:-"NOT SET"}
  299. maxplayers=${maxplayers:-"0"}
  300. port=${port:-"27960"}
  301. fi
  302. }
  303. fn_info_config_realvirtuality(){
  304. if [ ! -f "${servercfgfullpath}" ]; then
  305. servername="${unavailable}"
  306. adminpassword="${unavailable}"
  307. serverpassword="${unavailable}"
  308. maxplayers="${zero}"
  309. else
  310. servername=$(grep "hostname" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/hostname//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
  311. adminpassword=$(grep "passwordAdmin" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/passwordAdmin//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
  312. serverpassword=$(grep "password" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/password//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
  313. maxplayers=$(grep "maxPlayers" "${servercfgfullpath}" | grep -v "//" | tr -cd '[:digit:]')
  314. # Not Set
  315. servername=${servername:-"NOT SET"}
  316. adminpassword=${adminpassword:-"NOT SET"}
  317. serverpassword=${serverpassword:-"NOT SET"}
  318. maxplayers=${maxplayers:-"0"}
  319. fi
  320. }
  321. fn_info_config_seriousengine35(){
  322. if [ ! -f "${servercfgfullpath}" ]; then
  323. servername="${unavailable}"
  324. rconpassword="${unavailable}"
  325. gamemode="${unavailable}"
  326. maxplayers="${zero}"
  327. port="${zero}"
  328. else
  329. servername=$(grep "prj_strMultiplayerSessionName" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/prj_strMultiplayerSessionName//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
  330. rconpassword=$(grep "rcts_strAdminPassword" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/rcts_strAdminPassword//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
  331. gamemode=$(grep "gam_idGameMode" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/gam_idGameMode//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
  332. maxplayers=$(grep "gam_ctMaxPlayers" "${servercfgfullpath}" | grep -v "//" | tr -cd '[:digit:]')
  333. port=$(grep "prj_uwPort" "${servercfgfullpath}" | grep -v "//" | tr -cd '[:digit:]')
  334. # Not Set
  335. servername=${servername:-"NOT SET"}
  336. rconpassword=${rconpassword:-"NOT SET"}
  337. gamemode=${gamemode:-"NOT SET"}
  338. maxplayers=${maxplayers:-"0"}
  339. port=${port:-"0"}
  340. fi
  341. }
  342. fn_info_config_source(){
  343. if [ ! -f "${servercfgfullpath}" ]; then
  344. servername="${unavailable}"
  345. serverpassword="${unavailable}"
  346. rconpassword="${unavailable}"
  347. else
  348. servername=$(grep "hostname" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/hostname//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
  349. serverpassword=$(grep "sv_password" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/sv_password//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
  350. rconpassword=$(grep "rcon_password" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/rcon_password//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
  351. # Not Set
  352. servername=${servername:-"NOT SET"}
  353. serverpassword=${serverpassword:-"NOT SET"}
  354. rconpassword=${rconpassword:-"NOT SET"}
  355. fi
  356. }
  357. fn_info_config_starbound(){
  358. if [ ! -f "${servercfgfullpath}" ]; then
  359. servername="${unavailable}"
  360. rconpassword="${unavailable}"
  361. port="21025"
  362. queryport="21025"
  363. rconport="21026"
  364. maxplayers="8"
  365. else
  366. servername=$(grep "serverName" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e 's/serverName//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
  367. rconpassword=$(grep "rconServerPassword" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e 's/rconServerPassword//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
  368. port=$(grep "gameServerPort" "${servercfgfullpath}" | tr -cd '[:digit:]')
  369. queryport=$(grep "queryServerPort" "${servercfgfullpath}" | tr -cd '[:digit:]')
  370. rconport=$(grep "rconServerPort" "${servercfgfullpath}" | tr -cd '[:digit:]')
  371. maxplayers=$(grep "maxPlayers" "${servercfgfullpath}" | tr -cd '[:digit:]')
  372. # Not Set
  373. servername=${servername:-"NOT SET"}
  374. rconpassword=${rconpassword:-"NOT SET"}
  375. port=${port:-"21025"}
  376. queryport=${queryport:-"21025"}
  377. rconport=${rconport:-"21026"}
  378. maxplayers=${maxplayers:-"8"}
  379. fi
  380. }
  381. fn_info_config_teamspeak3(){
  382. if [ ! -f "${servercfgfullpath}" ]; then
  383. dbplugin="${unavailable}"
  384. port="9987"
  385. queryport="10011"
  386. fileport="30033"
  387. else
  388. dbplugin=$(grep "dbplugin=" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/dbplugin=//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
  389. port=$(grep "default_voice_port" "${servercfgfullpath}" | tr -cd '[:digit:]')
  390. queryport=$(grep "query_port" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
  391. fileport=$(grep "filetransfer_port" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
  392. ip=$(grep "voice_ip" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/voice_ip//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
  393. ipsetinconfig=1
  394. ipinconfigvar="voice_ip"
  395. # Not Set
  396. port=${port:-"9987"}
  397. queryport=${queryport:-"10011"}
  398. fileport=${fileport:-"30033"}
  399. fi
  400. }
  401. fn_info_config_mumble(){
  402. if [ ! -f "${servercfgfullpath}" ]; then
  403. port="64738"
  404. queryport="${port}"
  405. servername="Mumble"
  406. else
  407. port=$(grep "port" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^;/d' -e 's/port//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
  408. queryport="${port}"
  409. ip=$(grep "host=" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^;/d' -e 's/host=//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
  410. ipsetinconfig=1
  411. ipinconfigvar="voice_ip"
  412. # Not Set
  413. port=${port:-"64738"}
  414. queryport=${queryport:-"64738"}
  415. servername="Mumble Port ${port}"
  416. fi
  417. }
  418. fn_info_config_teeworlds(){
  419. if [ ! -f "${servercfgfullpath}" ]; then
  420. servername="unnamed server"
  421. serverpassword="${unavailable}"
  422. rconpassword="${unavailable}"
  423. port="8303"
  424. maxplayers="12"
  425. else
  426. servername=$(grep "sv_name" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/^sv_name//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
  427. serverpassword=$(grep "password" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' | grep "^password" | sed -e '/^#/d' -e 's/^password//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
  428. rconpassword=$(grep "sv_rcon_password" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/^sv_rcon_password//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
  429. port=$(grep "sv_port" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
  430. maxplayers=$(grep "sv_max_clients" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
  431. # Not Set
  432. servername=${servername:-"NOT SET"}
  433. serverpassword=${serverpassword:-"NOT SET"}
  434. rconpassword=${rconpassword:-"NOT SET"}
  435. port=${port:-"8303"}
  436. maxplayers=${maxplayers:-"12"}
  437. fi
  438. }
  439. fn_info_config_terraria(){
  440. if [ ! -f "${servercfgfullpath}" ]; then
  441. servername="${unavailable}"
  442. port="${zero}"
  443. gameworld="${unavailable}"
  444. maxplayers="${zero}"
  445. else
  446. servername=$(grep "worldname" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/worldname//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
  447. port=$(grep "port" "${servercfgfullpath}" | tr -cd '[:digit:]')
  448. gameworld=$(grep "world=" "${servercfgfullpath}" | grep -v "//" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/world=//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
  449. maxplayers=$(grep "maxplayers" "${servercfgfullpath}" | grep -v "//" | tr -cd '[:digit:]')
  450. # Not Set
  451. servername=${servername:-"NOT SET"}
  452. port=${port:-"0"}
  453. gameworld=${gameworld:-"NOT SET"}
  454. maxplayers=${maxplayers:-"0"}
  455. fi
  456. }
  457. fn_info_config_unreal(){
  458. if [ ! -f "${servercfgfullpath}" ]; then
  459. servername="${unavailable}"
  460. serverpassword="${unavailable}"
  461. adminpassword="${unavailable}"
  462. port="${zero}"
  463. gsqueryport="${zero}"
  464. webadminenabled="${unavailable}"
  465. webadminport="${zero}"
  466. webadminuser="${unavailable}"
  467. webadminpass="${unavailable}"
  468. else
  469. servername=$(grep "ServerName" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/ServerName//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
  470. serverpassword=$(grep "GamePassword" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/GamePassword//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
  471. adminpassword=$(grep "AdminPassword" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/AdminPassword//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
  472. port=$(grep "Port" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' | grep "^Port" | grep -v "#" | tr -cd '[:digit:]')
  473. gsqueryport=$(grep "OldQueryPortNumber" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
  474. webadminenabled=$(grep "bEnabled" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/bEnabled//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
  475. webadminport=$(grep "ListenPort" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
  476. if [ "${engine}" == "unreal" ]; then
  477. webadminuser=$(grep "AdminUsername" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/AdminUsername//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
  478. webadminpass=$(grep "UTServerAdmin.UTServerAdmin" "${servercfgfullpath}" -A 4 | grep "AdminPassword" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/AdminPassword//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
  479. else
  480. webadminuser=$(grep "AdminName" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/AdminName//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
  481. webadminpass="${adminpassword}"
  482. fi
  483. # Not Set
  484. servername=${servername:-"NOT SET"}
  485. serverpassword=${serverpassword:-"NOT SET"}
  486. adminpassword=${adminpassword:-"NOT SET"}
  487. port=${port:-"0"}
  488. gsqueryport=${gsqueryport:-"0"}
  489. webadminenabled=${webadminenabled:-"NOT SET"}
  490. webadminport=${webadminport:-"0"}
  491. webadminuser=${webadminuser:-"NOT SET"}
  492. webadminpass=${webadminpass:-"NOT SET"}
  493. fi
  494. }
  495. fn_info_config_sdtd(){
  496. if [ ! -f "${servercfgfullpath}" ]; then
  497. servername="${unavailable}"
  498. serverpassword="${unavailable}"
  499. port="${zero}"
  500. queryport="${zero}"
  501. webadminenabled="${unavailable}"
  502. webadminport="${zero}"
  503. webadminpass="${unavailable}"
  504. telnetenabled="${unavailable}"
  505. telnetport="${zero}"
  506. telnetpass="${unavailable}"
  507. maxplayers="${unavailable}"
  508. gamemode="${unavailable}"
  509. gameworld="${unavailable}"
  510. else
  511. servername=$(grep "ServerName" "${servercfgfullpath}" | sed 's/^.*value="//' | cut -f1 -d"\"")
  512. serverpassword=$(grep "ServerPassword" "${servercfgfullpath}" | sed 's/^.*value="//' | cut -f1 -d"\"")
  513. port=$(grep "ServerPort" "${servercfgfullpath}" | tr -cd '[:digit:]')
  514. queryport=$((port + 1))
  515. webadminenabled=$(grep "ControlPanelEnabled" "${servercfgfullpath}" | sed 's/^.*value="//' | cut -f1 -d"\"")
  516. webadminport=$(grep "ControlPanelPort" "${servercfgfullpath}" | tr -cd '[:digit:]')
  517. webadminpass=$(grep "ControlPanelPassword" "${servercfgfullpath}" | sed 's/^.*value="//' | cut -f1 -d"\"")
  518. telnetenabled=$(grep "TelnetEnabled" "${servercfgfullpath}" | sed 's/^.*value="//' | cut -f1 -d"\"")
  519. telnetport=$(grep "TelnetPort" "${servercfgfullpath}" | tr -cd '[:digit:]')
  520. telnetpass=$(grep "TelnetPassword" "${servercfgfullpath}" | sed 's/^.*value="//' | cut -f1 -d"\"")
  521. maxplayers=$(grep "ServerMaxPlayerCount" "${servercfgfullpath}" | tr -cd '[:digit:]')
  522. gamemode=$(grep "GameMode" "${servercfgfullpath}" | sed 's/^.*value="//' | cut -f1 -d"\"")
  523. gameworld=$(grep "GameWorld" "${servercfgfullpath}" | sed 's/^.*value="//' | cut -f1 -d"\"")
  524. # Not Set
  525. servername=${servername:-"NOT SET"}
  526. serverpassword=${serverpassword:-"NOT SET"}
  527. port=${port:-"0"}
  528. queryport=${queryport:-"0"}
  529. webadminenabled=${webadminenabled:-"NOT SET"}
  530. webadminport=${webadminport:-"0"}
  531. webadminpass=${webadminpass:-"NOT SET"}
  532. telnetenabled=${telnetenabled:-"NOT SET"}
  533. telnetport=${telnetport:-"0"}
  534. telnetpass=${telnetpass:-"NOT SET"}
  535. maxplayers=${maxplayers:-"NOT SET"}
  536. gamemode=${gamemode:-"NOT SET"}
  537. gameworld=${gameworld:-"NOT SET"}
  538. fi
  539. }
  540. # Just Cause 2
  541. if [ "${engine}" == "avalanche" ]; then
  542. fn_info_config_avalanche
  543. # ARK: Survival Evolved
  544. elif [ "${gamename}" == "ARK: Survivial Evolved" ]; then
  545. fn_info_config_ark
  546. # Battlefield: 1942
  547. elif [ "${gamename}" == "Battlefield: 1942" ]; then
  548. fn_info_config_bf1942
  549. # Call of Duty
  550. elif [ "${gamename}" == "Call of Duty" ]||[ "${gamename}" == "Call of Duty: United Offensive" ]; then
  551. fn_info_config_cod
  552. # Call of Duty 2
  553. elif [ "${gamename}" == "Call of Duty 2" ]; then
  554. fn_info_config_cod2
  555. # Call of Duty 4
  556. elif [ "${gamename}" == "Call of Duty 4" ]; then
  557. fn_info_config_cod4
  558. # Call of Duty: World at War
  559. elif [ "${gamename}" == "Call of Duty: World at War" ]; then
  560. fn_info_config_codwaw
  561. # Dont Starve Together
  562. elif [ "${engine}" == "dontstarve" ]; then
  563. fn_info_config_dontstarve
  564. # Factorio
  565. elif [ "${gamename}" == "Factorio" ]; then
  566. fn_info_config_factorio
  567. # Quake 2
  568. elif [ "${gamename}" == "Quake 2" ]; then
  569. fn_info_config_quake2
  570. # Quake 3
  571. elif [ "${gamename}" == "Quake 3: Arena" ]; then
  572. fn_info_config_quake3
  573. # Quake Live
  574. elif [ "${gamename}" == "Quake Live" ]; then
  575. fn_info_config_quakelive
  576. # Minecraft
  577. elif [ "${engine}" == "lwjgl2" ]; then
  578. fn_info_config_minecraft
  579. # Project Zomboid
  580. elif [ "${engine}" == "projectzomboid" ]; then
  581. fn_info_config_projectzomboid
  582. # ARMA 3
  583. elif [ "${engine}" == "realvirtuality" ]; then
  584. fn_info_config_realvirtuality
  585. # Serious Sam
  586. elif [ "${engine}" == "seriousengine35" ]; then
  587. fn_info_config_seriousengine35
  588. # Source Engine Games
  589. elif [ "${engine}" == "source" ]||[ "${engine}" == "goldsource" ]; then
  590. fn_info_config_source
  591. # Starbound
  592. elif [ "${engine}" == "starbound" ]; then
  593. fn_info_config_starbound
  594. # TeamSpeak 3
  595. elif [ "${gamename}" == "TeamSpeak 3" ]; then
  596. fn_info_config_teamspeak3
  597. elif [ "${gamename}" == "Mumble" ]; then
  598. fn_info_config_mumble
  599. # Teeworlds
  600. elif [ "${engine}" == "teeworlds" ]; then
  601. fn_info_config_teeworlds
  602. # Terraria
  603. elif [ "${engine}" == "terraria" ]; then
  604. fn_info_config_terraria
  605. # Unreal/Unreal 2 engine
  606. elif [ "${engine}" == "unreal" ]||[ "${engine}" == "unreal2" ]; then
  607. fn_info_config_unreal
  608. # 7 Day To Die (unity3d)
  609. elif [ "${gamename}" == "7 Days To Die" ]; then
  610. fn_info_config_sdtd
  611. elif [ "${gamename}" == "Wolfenstein: Enemy Territory" ]; then
  612. fn_info_config_wolfensteinenemyterritory
  613. fi