info_config.sh 26 KB

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