info_config.sh 25 KB

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