info_config.sh 29 KB

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