info_config.sh 25 KB

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