info_config.sh 24 KB

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