info_config.sh 26 KB

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