info_config.sh 27 KB

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