info_config.sh 22 KB

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