info_config.sh 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868
  1. #!/bin/bash
  2. # LGSM info_config.sh function
  3. # Author: Daniel Gibbs
  4. # Website: http://gameservermanagers.com
  5. lgsm_version="190216"
  6. # Description: Gets specific details from config files.
  7. ## Examples of filtering to get info from config files
  8. # sed 's/foo//g' - remove foo
  9. # tr -cd '[:digit:]' leave only digits
  10. # tr -d '=\"; ' remove selected charectors =\";
  11. # grep -v "foo" filter out lines that contain foo
  12. ## Just Cause 2
  13. if [ "${engine}" == "avalanche" ]; then
  14. # server name
  15. if [ -f "${servercfgfullpath}" ]; then
  16. servername=$(grep "Name" "${servercfgfullpath}" | sed 's/Name//g' | tr -d '=", \n')
  17. if [ ! -n "${servername}" ]; then
  18. servername="NOT SET"
  19. fi
  20. else
  21. servername="\e[0;31mUNAVAILABLE\e[0m"
  22. fi
  23. # ip
  24. if [ -f "${servercfgfullpath}" ]; then
  25. # check if the ip exists in the config file. Failing this will fall back to the default.
  26. configipcheck=$(grep "BindIP" "${servercfgfullpath}" | sed 's/BindIP//g' | tr -d '=", \n')
  27. fi
  28. if [ -n "${configipcheck}" ]; then
  29. ip=$(grep "BindIP" "${servercfgfullpath}" | sed 's/BindIP//g' | tr -d '=", \n')
  30. fi
  31. # server password
  32. if [ -f "${servercfgfullpath}" ]; then
  33. serverpassword=$(grep "Password" "${servercfgfullpath}" | sed 's/Password//g' | tr -d '=", \n')
  34. if [ ! -n "${serverpassword}" ]; then
  35. serverpassword="NOT SET"
  36. fi
  37. else
  38. serverpassword="\e[0;31mUNAVAILABLE\e[0m"
  39. fi
  40. # slots
  41. if [ -f "${servercfgfullpath}" ]; then
  42. slots=$(grep "MaxPlayers" "${servercfgfullpath}" | tr -cd '[:digit:]')
  43. if [ ! -n "${slots}" ]; then
  44. slots="NOT SET"
  45. fi
  46. else
  47. slots="\e[0;31mUNAVAILABLE\e[0m"
  48. fi
  49. # port
  50. if [ -f "${servercfgfullpath}" ]; then
  51. port=$(grep "BindPort" "${servercfgfullpath}" | tr -cd '[:digit:]')
  52. fi
  53. if [ ! -n "${port}" ]; then
  54. port="0"
  55. fi
  56. ## Dont Starve Together
  57. elif [ "${engine}" == "dontstarve" ]; then
  58. # server name
  59. if [ -f "${servercfgfullpath}" ]; then
  60. servername=$(grep "default_server_name = " "${servercfgfullpath}" | sed 's/default_server_name = //g')
  61. if [ ! -n "${servername}" ]; then
  62. servername="NOT SET"
  63. fi
  64. else
  65. servername="\e[0;31mUNAVAILABLE\e[0m"
  66. fi
  67. # server password
  68. if [ -f "${servercfgfullpath}" ]; then
  69. serverpassword=$(grep "server_password = " "${servercfgfullpath}" | grep -v "#" | sed 's/server_password = //g')
  70. if [ ! -n "${serverpassword}" ]; then
  71. serverpassword="NOT SET"
  72. fi
  73. else
  74. serverpassword="\e[0;31mUNAVAILABLE\e[0m"
  75. fi
  76. # slots
  77. if [ -f "${servercfgfullpath}" ]; then
  78. slots=$(grep "max_players" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
  79. if [ ! -n "${slots}" ]; then
  80. slots="NOT SET"
  81. fi
  82. else
  83. slots="\e[0;31mUNAVAILABLE\e[0m"
  84. fi
  85. # game mode
  86. if [ -f "${servercfgfullpath}" ]; then
  87. gamemode=$(grep "game_mode = " "${servercfgfullpath}" | grep -v "#" | sed 's/game_mode = //g')
  88. if [ ! -n "${gamemode}" ]; then
  89. gamemode="NOT SET"
  90. fi
  91. else
  92. gamemode="\e[0;31mUNAVAILABLE\e[0m"
  93. fi
  94. # tickrate
  95. if [ -f "${servercfgfullpath}" ]; then
  96. tickrate=$(grep "tick_rate" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
  97. if [ ! -n "${tickrate}" ]; then
  98. tickrate="NOT SET"
  99. fi
  100. else
  101. tickrate="\e[0;31mUNAVAILABLE\e[0m"
  102. fi
  103. # port
  104. if [ -f "${servercfgfullpath}" ]; then
  105. port=$(grep "server_port" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
  106. fi
  107. if [ ! -n "${port}" ]; then
  108. port="0"
  109. fi
  110. ## Project Zomboid
  111. elif [ "${engine}" == "projectzomboid" ]; then
  112. # server name
  113. if [ -f "${servercfgfullpath}" ]; then
  114. servername=$(grep "PublicName=" "${servercfgfullpath}" | sed 's/PublicName=//g' | tr -d '=", \n')
  115. if [ ! -n "${servername}" ]; then
  116. servername="NOT SET"
  117. fi
  118. else
  119. servername="\e[0;31mUNAVAILABLE\e[0m"
  120. fi
  121. # slots
  122. if [ -f "${servercfgfullpath}" ]; then
  123. slots=$(grep "MaxPlayers=" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
  124. if [ ! -n "${slots}" ]; then
  125. slots="NOT SET"
  126. fi
  127. else
  128. slots="\e[0;31mUNAVAILABLE\e[0m"
  129. fi
  130. # port
  131. if [ -f "${servercfgfullpath}" ]; then
  132. port=$(grep "DefaultPort=" "${servercfgfullpath}" | tr -cd '[:digit:]')
  133. fi
  134. if [ ! -n "${port}" ]; then
  135. port="0"
  136. fi
  137. # Quake Live
  138. elif [ "${engine}" == "idtech3" ]; then
  139. # server name
  140. if [ -f "${servercfgfullpath}" ]; then
  141. servername=$(grep "set sv_hostname " "${servercfgfullpath}" | sed 's/set sv_hostname //g' | tr -d '=\"; ')
  142. if [ ! -n "${servername}" ]; then
  143. servername="NOT SET"
  144. fi
  145. else
  146. servername="\e[0;31mUNAVAILABLE\e[0m"
  147. fi
  148. # server password
  149. if [ -f "${servercfgfullpath}" ]; then
  150. serverpassword=$(grep "set g_password" "${servercfgfullpath}" | sed -e 's/set g_password//g' | tr -d '=\"; '| cut -f1 -d "/")
  151. if [ ! -n "${serverpassword}" ]; then
  152. serverpassword="NOT SET"
  153. fi
  154. else
  155. serverpassword="\e[0;31mUNAVAILABLE\e[0m"
  156. fi
  157. # rcon password
  158. rconpassword="${rconpassword}"
  159. if [ -f "${servercfgfullpath}" ]; then
  160. if [ ! -n "${rconpassword}" ]; then
  161. rconpassword="NOT SET"
  162. fi
  163. else
  164. rconpassword="\e[0;31mUNAVAILABLE\e[0m"
  165. fi
  166. # slots
  167. if [ -f "${servercfgfullpath}" ]; then
  168. slots=$(grep "set sv_maxClients" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
  169. if [ ! -n "${slots}" ]; then
  170. slots="NOT SET"
  171. fi
  172. else
  173. slots="\e[0;31mUNAVAILABLE\e[0m"
  174. fi
  175. # port
  176. port="${gameport}"
  177. if [ ! -n "${port}" ]; then
  178. port="0"
  179. fi
  180. # rcon port
  181. if [ ! -n "${rconport}" ]; then
  182. rconport="0"
  183. fi
  184. # Stats port
  185. if [ ! -n "${statsport}" ]; then
  186. statsport="0"
  187. fi
  188. # ARMA 3
  189. elif [ "${engine}" == "realvirtuality" ]; then
  190. # server name
  191. if [ -f "${servercfgfullpath}" ]; then
  192. servername=$(grep "hostname" "${servercfgfullpath}" | grep -v "//" | sed -e 's/\<hostname\>//g' | tr -d '=\"; ')
  193. if [ ! -n "${servername}" ]; then
  194. servername="NOT SET"
  195. fi
  196. else
  197. servername="\e[0;31mUNAVAILABLE\e[0m"
  198. fi
  199. # admin password
  200. if [ -f "${servercfgfullpath}" ]; then
  201. adminpassword=$(grep "passwordAdmin" "${servercfgfullpath}" | grep -v "//" | sed -e 's/\passwordAdmin//g' | tr -d '=\"; ')
  202. if [ ! -n "${adminpassword}" ]; then
  203. adminpassword="NOT SET"
  204. fi
  205. else
  206. adminpassword="\e[0;31mUNAVAILABLE\e[0m"
  207. fi
  208. # server password
  209. if [ -f "${servercfgfullpath}" ]; then
  210. serverpassword=$(grep "password =" "${servercfgfullpath}" | grep -v "//" | sed -e 's/\password//g' | tr -d '=\"; ')
  211. if [ ! -n "${serverpassword}" ]; then
  212. serverpassword="NOT SET"
  213. fi
  214. else
  215. serverpassword="\e[0;31mUNAVAILABLE\e[0m"
  216. fi
  217. # slots
  218. if [ -f "${servercfgfullpath}" ]; then
  219. slots=$(grep "maxPlayers" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
  220. if [ ! -n "${slots}" ]; then
  221. slots="NOT SET"
  222. fi
  223. else
  224. slots="\e[0;31mUNAVAILABLE\e[0m"
  225. fi
  226. # port
  227. if [ "${port}" != "" ]; then
  228. port=${port}
  229. fi
  230. if [ ! -n "${port}" ]; then
  231. port="0"
  232. fi
  233. # query port
  234. if [ "${port}" != "" ]; then
  235. queryport=$((port+1))
  236. fi
  237. if [ ! -n "${queryport}" ]; then
  238. queryport="0"
  239. fi
  240. # master port
  241. if [ "${port}" != "" ]; then
  242. masterport=$((port+2))
  243. fi
  244. if [ ! -n "${masterport}" ]; then
  245. masterport="0"
  246. fi
  247. # Serious Sam
  248. elif [ "${engine}" == "seriousengine35" ]; then
  249. # server name
  250. if [ -f "${servercfgfullpath}" ]; then
  251. servername=$(grep "prj_strMultiplayerSessionName" "${servercfgfullpath}" | sed 's/prj_strMultiplayerSessionName = //g' | tr -d '=\"; ')
  252. if [ ! -n "${servername}" ]; then
  253. servername="NOT SET"
  254. fi
  255. else
  256. servername="\e[0;31mUNAVAILABLE\e[0m"
  257. fi
  258. # rcon password
  259. if [ -f "${servercfgfullpath}" ]; then
  260. rconpassword=$(grep "rcts_strAdminPassword" "${servercfgfullpath}" | sed 's/rcts_strAdminPassword = //g' | tr -d '=\"; ')
  261. if [ ! -n "${rconpassword}" ]; then
  262. rconpassword="NOT SET"
  263. fi
  264. else
  265. rconpassword="\e[0;31mUNAVAILABLE\e[0m"
  266. fi
  267. # slots
  268. if [ -f "${servercfgfullpath}" ]; then
  269. slots=$(grep "gam_ctMaxPlayers" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
  270. if [ ! -n "${slots}" ]; then
  271. slots="NOT SET"
  272. fi
  273. else
  274. slots="\e[0;31mUNAVAILABLE\e[0m"
  275. fi
  276. # game mode
  277. if [ -f "${servercfgfullpath}" ]; then
  278. gamemode=$(grep "gam_idGameMode" "${servercfgfullpath}" | grep -v "#" | sed 's/gam_idGameMode//g' | tr -d '=\"; ')
  279. if [ ! -n "${gamemode}" ]; then
  280. gamemode="NOT SET"
  281. fi
  282. else
  283. gamemode="\e[0;31mUNAVAILABLE\e[0m"
  284. fi
  285. # port
  286. if [ -f "${servercfgfullpath}" ]; then
  287. port=$(grep "prj_uwPort" "${servercfgfullpath}" | tr -d '\r' | tr -cd '[:digit:]')
  288. fi
  289. if [ ! -n "${port}" ]; then
  290. port="0"
  291. fi
  292. # query port
  293. if [ -f "${servercfgfullpath}" ]; then
  294. queryport=$((${port} + 1))
  295. fi
  296. if [ ! -n "${queryport}" ]; then
  297. queryport="0"
  298. fi
  299. # Source Engine Games
  300. elif [ "${engine}" == "source" ]||[ "${engine}" == "goldsource" ]; then
  301. # server name
  302. if [ -f "${servercfgfullpath}" ]; then
  303. servername=$(grep "hostname" "${servercfgfullpath}" | sed 's/hostname //g' | sed 's/"//g')
  304. if [ ! -n "${servername}" ]; then
  305. servername="NOT SET"
  306. fi
  307. else
  308. servername="\e[0;31mUNAVAILABLE\e[0m"
  309. fi
  310. # server password
  311. if [ -f "${servercfgfullpath}" ]; then
  312. serverpassword=$(grep "sv_password" "${servercfgfullpath}" | sed 's/sv_password //g' | sed 's/"//g')
  313. if [ ! -n "${serverpassword}" ]; then
  314. serverpassword="NOT SET"
  315. fi
  316. else
  317. serverpassword="\e[0;31mUNAVAILABLE\e[0m"
  318. fi
  319. # rcon password
  320. if [ -f "${servercfgfullpath}" ]; then
  321. rconpassword=$(grep "rcon_password" "${servercfgfullpath}" | sed 's/rcon_password //g' | sed 's/"//g')
  322. if [ ! -n "${rconpassword}" ]; then
  323. rconpassword="NOT SET"
  324. fi
  325. else
  326. rconpassword="\e[0;31mUNAVAILABLE\e[0m"
  327. fi
  328. # Spark (NS2: Combat)
  329. elif [ "${engine}" == "spark" ]; then
  330. # query port
  331. if [ -f "${servercfgfullpath}" ]; then
  332. queryport=$((port + 1))
  333. fi
  334. if [ ! -n "${queryport}" ]; then
  335. queryport="0"
  336. fi
  337. # Teamspeak 3
  338. elif [ "${gamename}" == "Teamspeak 3" ]; then
  339. # ip
  340. if [ -f "${servercfgfullpath}" ]; then
  341. # check if the ip exists in the config file. Failing this will fall back to the default.
  342. configipcheck=$(grep "voice_ip=" "${servercfgfullpath}" | sed 's/\voice_ip=//g')
  343. fi
  344. if [ -n "${configipcheck}" ]; then
  345. ip=$(grep "voice_ip=" "${servercfgfullpath}" | sed 's/\voice_ip=//g')
  346. fi
  347. # dbplugin
  348. if [ -f "${servercfgfullpath}" ]; then
  349. dbplugin=$(grep "dbplugin=" "${servercfgfullpath}" | sed 's/\dbplugin=//g')
  350. if [ ! -n "${dbplugin}" ]; then
  351. dbplugin="NOT SET"
  352. fi
  353. else
  354. dbplugin="\e[0;31mUNAVAILABLE\e[0m"
  355. fi
  356. # port
  357. if [ -f "${servercfgfullpath}" ]; then
  358. port=$(grep "default_voice_port=" "${servercfgfullpath}" | tr -cd '[:digit:]')
  359. fi
  360. if [ ! -n "${port}" ]; then
  361. port="9987"
  362. fi
  363. # query port
  364. if [ -f "${servercfgfullpath}" ]; then
  365. queryport=$(grep "query_port=" "${servercfgfullpath}" | tr -cd '[:digit:]')
  366. fi
  367. if [ ! -n "${queryport}" ]; then
  368. queryport="10011"
  369. fi
  370. # file port
  371. if [ -f "${servercfgfullpath}" ]; then
  372. fileport=$(grep "filetransfer_port=" "${servercfgfullpath}" | tr -cd '[:digit:]')
  373. fi
  374. if [ ! -n "${fileport}" ]; then
  375. fileport="30033"
  376. fi
  377. # Teeworlds
  378. elif [ "${engine}" == "teeworlds" ]; then
  379. # server name
  380. if [ -f "${servercfgfullpath}" ]; then
  381. servername=$(grep "sv_name" "${servercfgfullpath}" | sed 's/sv_name //g' | sed 's/"//g')
  382. if [ ! -n "${servername}" ]; then
  383. servername="unnamed server"
  384. fi
  385. else
  386. servername="unnamed server"
  387. fi
  388. # server password
  389. if [ -f "${servercfgfullpath}" ]; then
  390. serverpassword=$(grep "password " "${servercfgfullpath}" | awk '!/sv_rcon_password/'| sed 's/password //g' | tr -d '=\"; ')
  391. if [ ! -n "${serverpassword}" ]; then
  392. serverpassword="NOT SET"
  393. fi
  394. else
  395. serverpassword="\e[0;31mUNAVAILABLE\e[0m"
  396. fi
  397. # rcon password
  398. if [ -f "${servercfgfullpath}" ]; then
  399. rconpassword=$(grep "sv_rcon_password" "${servercfgfullpath}" | sed 's/sv_rcon_password //g' | tr -d '=\"; ')
  400. if [ ! -n "${rconpassword}" ]; then
  401. rconpassword="NOT SET"
  402. fi
  403. else
  404. rconpassword="\e[0;31mUNAVAILABLE\e[0m"
  405. fi
  406. # port
  407. if [ -f "${servercfgfullpath}" ]; then
  408. port=$(grep "sv_port" "${servercfgfullpath}" | tr -cd '[:digit:]')
  409. fi
  410. if [ ! -n "${port}" ]; then
  411. port="8303"
  412. fi
  413. # slots
  414. if [ -f "${servercfgfullpath}" ]; then
  415. slots=$(grep "sv_max_clients" "${servercfgfullpath}" | tr -cd '[:digit:]')
  416. if [ ! -n "${slots}" ]; then
  417. slots="12"
  418. fi
  419. else
  420. slots="12"
  421. fi
  422. # Terraria
  423. elif [ "${engine}" == "terraria" ]; then
  424. # port
  425. if [ -f "${servercfgfullpath}" ]; then
  426. port=$(grep "port=" "${servercfgfullpath}" | tr -cd '[:digit:]')
  427. fi
  428. if [ ! -n "${port}" ]; then
  429. port="0"
  430. fi
  431. # 7 Day To Die (unity3d)
  432. elif [ "${gamename}" == "7 Days To Die" ]; then
  433. # server name
  434. if [ -f "${servercfgfullpath}" ]; then
  435. servername=$(grep "ServerName" "${servercfgfullpath}" | sed 's/^.*value="//' | cut -f1 -d"\"")
  436. if [ ! -n "${servername}" ]; then
  437. servername="NOT SET"
  438. fi
  439. else
  440. servername="\e[0;31mUNAVAILABLE\e[0m"
  441. fi
  442. # server password
  443. if [ -f "${servercfgfullpath}" ]; then
  444. serverpassword=$(grep "ServerPassword" "${servercfgfullpath}" | sed 's/^.*value="//' | cut -f1 -d"\"")
  445. if [ ! -n "${serverpassword}" ]; then
  446. serverpassword="NOT SET"
  447. fi
  448. else
  449. serverpassword="\e[0;31mUNAVAILABLE\e[0m"
  450. fi
  451. # webadmin enabled
  452. if [ -f "${servercfgfullpath}" ]; then
  453. webadminenabled=$(grep "ControlPanelEnabled" "${servercfgfullpath}" | sed 's/^.*value="//' | cut -f1 -d"\"")
  454. if [ ! -n "${webadminenabled}" ]; then
  455. webadminenabled="NOT SET"
  456. fi
  457. else
  458. webadminenabled="\e[0;31mUNAVAILABLE\e[0m"
  459. fi
  460. # webadmin port
  461. if [ -f "${servercfgfullpath}" ]; then
  462. webadminport=$(grep "ControlPanelPort" "${servercfgfullpath}" | tr -cd '[:digit:]')
  463. fi
  464. if [ ! -n "${webadminport}" ]; then
  465. webadminport="0"
  466. fi
  467. # webadmin enabled
  468. if [ -f "${servercfgfullpath}" ]; then
  469. webadminenabled=$(grep "ControlPanelEnabled" "${servercfgfullpath}" | sed 's/^.*value="//' | cut -f1 -d"\"")
  470. if [ ! -n "${webadminenabled}" ]; then
  471. webadminenabled="NOT SET"
  472. fi
  473. else
  474. webadminenabled="\e[0;31mUNAVAILABLE\e[0m"
  475. fi
  476. # webadmin password
  477. if [ -f "${servercfgfullpath}" ]; then
  478. webadminpass=$(grep "ControlPanelPassword" "${servercfgfullpath}" | sed 's/^.*value="//' | cut -f1 -d"\"")
  479. if [ ! -n "${webadminpass}" ]; then
  480. webadminpass="NOT SET"
  481. fi
  482. else
  483. webadminpass="\e[0;31mUNAVAILABLE\e[0m"
  484. fi
  485. # telnet enabled
  486. if [ -f "${servercfgfullpath}" ]; then
  487. telnetenabled=$(grep "TelnetEnabled" "${servercfgfullpath}" | sed 's/^.*value="//' | cut -f1 -d"\"")
  488. if [ ! -n "${telnetenabled}" ]; then
  489. telnetenabled="NOT SET"
  490. fi
  491. else
  492. telnetenabled="\e[0;31mUNAVAILABLE\e[0m"
  493. fi
  494. # telnet port
  495. if [ -f "${servercfgfullpath}" ]; then
  496. telnetport=$(grep "TelnetPort" "${servercfgfullpath}" | tr -cd '[:digit:]')
  497. fi
  498. if [ ! -n "${telnetport}" ]; then
  499. telnetport="0"
  500. fi
  501. # telnet password
  502. if [ -f "${servercfgfullpath}" ]; then
  503. telnetpass=$(grep "TelnetEnabled" "${servercfgfullpath}" | sed 's/^.*value="//' | cut -f1 -d"\"")
  504. if [ ! -n "${telnetpass}" ]; then
  505. telnetpass="NOT SET"
  506. fi
  507. else
  508. telnetpass="\e[0;31mUNAVAILABLE\e[0m"
  509. fi
  510. # slots
  511. if [ -f "${servercfgfullpath}" ]; then
  512. slots=$(grep "ServerMaxPlayerCount" "${servercfgfullpath}" | tr -cd '[:digit:]')
  513. if [ ! -n "${slots}" ]; then
  514. slots="NOT SET"
  515. fi
  516. else
  517. slots="\e[0;31mUNAVAILABLE\e[0m"
  518. fi
  519. # game mode
  520. if [ -f "${servercfgfullpath}" ]; then
  521. gamemode=$(grep "GameMode" "${servercfgfullpath}" | sed 's/^.*value="//' | cut -f1 -d"\"")
  522. if [ ! -n "${gamemode}" ]; then
  523. gamemode="NOT SET"
  524. fi
  525. else
  526. gamemode="\e[0;31mUNAVAILABLE\e[0m"
  527. fi
  528. # game world
  529. if [ -f "${servercfgfullpath}" ]; then
  530. gameworld=$(grep "GameWorld" "${servercfgfullpath}" | sed 's/^.*value="//' | cut -f1 -d"\"")
  531. if [ ! -n "${gameworld}" ]; then
  532. gameworld="NOT SET"
  533. fi
  534. else
  535. gameworld="\e[0;31mUNAVAILABLE\e[0m"
  536. fi
  537. # port
  538. if [ -f "${servercfgfullpath}" ]; then
  539. port=$(grep "sv_port" "${servercfgfullpath}" | tr -cd '[:digit:]')
  540. fi
  541. if [ ! -n "${port}" ]; then
  542. port="0"
  543. fi
  544. # query port
  545. if [ -f "${servercfgfullpath}" ]; then
  546. queryport=$((port + 1))
  547. fi
  548. if [ ! -n "${queryport}" ]; then
  549. queryport="0"
  550. fi
  551. # Hurtworld (unity3d)
  552. elif [ "${gamename}" == "Hurtworld" ]; then
  553. # server name
  554. if [ -n "${servername}" ]; then
  555. servername="${servername}"
  556. else
  557. servername="\e[0;31mUNAVAILABLE\e[0m"
  558. fi
  559. # server password
  560. # not available yet
  561. # slots
  562. if [ -n "${maxplayers}" ]; then
  563. slots="${maxplayers}"
  564. else
  565. slots="NOT SET"
  566. fi
  567. # game world
  568. if [ -n "${map}" ]; then
  569. gameworld="${map}"
  570. else
  571. gameworld="NO MAP SET"
  572. fi
  573. # port
  574. if [ -n "${port}" ]; then
  575. port="${port}"
  576. else
  577. port="0"
  578. fi
  579. # query port
  580. if [ -n "${queryport}" ]; then
  581. queryport="${queryport}"
  582. else
  583. queryport="0"
  584. fi
  585. # Unreal Tournament
  586. elif [ "${engine}" == "unreal" ]||[ "${engine}" == "unreal2" ]; then
  587. # server name
  588. if [ -f "${servercfgfullpath}" ]; then
  589. servername=$(grep "ServerName=" "${servercfgfullpath}" | sed 's/ServerName=//g')
  590. if [ ! -n "${servername}" ]; then
  591. servername="NOT SET"
  592. fi
  593. else
  594. servername="\e[0;31mUNAVAILABLE\e[0m"
  595. fi
  596. # server password
  597. if [ -f "${servercfgfullpath}" ]; then
  598. serverpassword=$(grep "GamePassword=" "${servercfgfullpath}" | sed 's/GamePassword=//g')
  599. if [ ! -n "${serverpassword}" ]; then
  600. serverpassword="NOT SET"
  601. fi
  602. else
  603. serverpassword="\e[0;31mUNAVAILABLE\e[0m"
  604. fi
  605. # admin password
  606. if [ -f "${servercfgfullpath}" ]; then
  607. adminpassword=$(grep "AdminPassword=" "${servercfgfullpath}" | sed 's/AdminPassword=//g')
  608. if [ ! -n "${adminpassword}" ]; then
  609. adminpassword="NOT SET"
  610. fi
  611. else
  612. adminpassword="\e[0;31mUNAVAILABLE\e[0m"
  613. fi
  614. # port
  615. if [ -f "${servercfgfullpath}" ]; then
  616. port=$(grep "Port=" "${servercfgfullpath}" | grep -v "Master" | grep -v "LAN" | grep -v "Proxy" | grep -v "Listen" | tr -d '\r' | tr -cd '[:digit:]')
  617. fi
  618. if [ ! -n "${port}" ]; then
  619. port="0"
  620. fi
  621. # query port
  622. if [ -f "${servercfgfullpath}" ]; then
  623. queryport=$((port + 1))
  624. fi
  625. if [ ! -n "${queryport}" ]; then
  626. queryport="0"
  627. fi
  628. # gamespy query port
  629. if [ -f "${servercfgfullpath}" ]; then
  630. gsqueryport=$(grep "OldQueryPortNumber=" "${servercfgfullpath}" | tr -d '\r' | tr -cd '[:digit:]')
  631. fi
  632. if [ ! -n "${gsqueryport}" ]; then
  633. gsqueryport="0"
  634. fi
  635. # query port
  636. if [ -f "${servercfgfullpath}" ]; then
  637. udplinkport=$((port + 2))
  638. fi
  639. if [ ! -n "${udplinkport}" ]; then
  640. udplinkport="0"
  641. fi
  642. # webadmin enabled
  643. if [ -f "${servercfgfullpath}" ]; then
  644. webadminenabled=$(grep "bEnabled=" "${servercfgfullpath}" | sed 's/bEnabled=//g' | tr -d '\r')
  645. if [ ! -n "${webadminenabled}" ]; then
  646. webadminenabled="NOT SET"
  647. fi
  648. else
  649. webadminenabled="\e[0;31mUNAVAILABLE\e[0m"
  650. fi
  651. # webadmin port
  652. if [ -f "${servercfgfullpath}" ]; then
  653. webadminport=$(grep "ListenPort=" "${servercfgfullpath}" | tr -d '\r' | tr -cd '[:digit:]')
  654. fi
  655. if [ ! -n "${webadminport}" ]; then
  656. webadminport="0"
  657. fi
  658. if [ "${engine}" == "unreal" ]; then
  659. # webadmin user
  660. if [ -f "${servercfgfullpath}" ]; then
  661. webadminuser=$(grep "AdminUsername=" "${servercfgfullpath}" | sed 's/\AdminUsername=//g')
  662. if [ ! -n "${webadminuser}" ]; then
  663. webadminuser="NOT SET"
  664. fi
  665. else
  666. webadminuser="\e[0;31mUNAVAILABLE\e[0m"
  667. fi
  668. # webadmin password
  669. if [ -f "${servercfgfullpath}" ]; then
  670. webadminpass=$(grep "UTServerAdmin.UTServerAdmin" "${servercfgfullpath}" -A 2 | grep "AdminPassword=" | sed 's/\AdminPassword=//g')
  671. if [ ! -n "${webadminpass}" ]; then
  672. webadminpass="NOT SET"
  673. fi
  674. else
  675. webadminpass="\e[0;31mUNAVAILABLE\e[0m"
  676. fi
  677. else
  678. # webadmin user
  679. if [ -f "${servercfgfullpath}" ]; then
  680. webadminuser=$(grep "AdminName=" "${servercfgfullpath}" | sed 's/\AdminName=//g')
  681. if [ ! -n "${webadminuser}" ]; then
  682. webadminuser="NOT SET"
  683. fi
  684. else
  685. webadminuser="\e[0;31mUNAVAILABLE\e[0m"
  686. fi
  687. # webadmin password
  688. if [ -f "${servercfgfullpath}" ]; then
  689. webadminpass=$(grep "AdminPassword=" "${servercfgfullpath}" | sed 's/\AdminPassword=//g')
  690. if [ ! -n "${webadminpass}" ]; then
  691. webadminpass="NOT SET"
  692. fi
  693. else
  694. webadminpass="\e[0;31mUNAVAILABLE\e[0m"
  695. fi
  696. fi
  697. # ARK: Survivaial Evolved
  698. elif [ "${gamename}" == "ARK: Survivial Evolved" ]; then
  699. # server name
  700. if [ -f "${servercfgfullpath}" ]; then
  701. servername=$(grep "SessionName=" "${servercfgfullpath}" | sed 's/SessionName=//g')
  702. if [ ! -n "${servername}" ]; then
  703. servername="NOT SET"
  704. fi
  705. else
  706. servername="\e[0;31mUNAVAILABLE\e[0m"
  707. fi
  708. # server password
  709. if [ -f "${servercfgfullpath}" ]; then
  710. serverpassword=$(grep "ServerPassword=" "${servercfgfullpath}" | sed 's/ServerPassword=//g')
  711. if [ ! -n "${serverpassword}" ]; then
  712. serverpassword="NOT SET"
  713. fi
  714. else
  715. serverpassword="\e[0;31mUNAVAILABLE\e[0m"
  716. fi
  717. # admin password
  718. if [ -f "${servercfgfullpath}" ]; then
  719. adminpassword=$(grep "ServerAdminPassword=" "${servercfgfullpath}" | sed 's/ServerAdminPassword=//g')
  720. if [ ! -n "${adminpassword}" ]; then
  721. adminpassword="NOT SET"
  722. fi
  723. else
  724. adminpassword="\e[0;31mUNAVAILABLE\e[0m"
  725. fi
  726. # slots
  727. if [ -f "${servercfgfullpath}" ]; then
  728. slots=$(grep "MaxPlayers=" "${servercfgfullpath}" | tr -cd '[:digit:]')
  729. if [ ! -n "${slots}" ]; then
  730. slots="NOT SET"
  731. fi
  732. else
  733. slots="\e[0;31mUNAVAILABLE\e[0m"
  734. fi
  735. # port
  736. if [ -f "${servercfgfullpath}" ]; then
  737. port=$(grep "Port=" "${servercfgfullpath}" | grep -v "RCONPort=" | grep -v "QueryPort=" | tr -cd '[:digit:]')
  738. fi
  739. if [ ! -n "${port}" ]; then
  740. port="0"
  741. fi
  742. # rcon port
  743. if [ -f "${servercfgfullpath}" ]; then
  744. rconport=$(grep "RCONPort=" "${servercfgfullpath}" | tr -cd '[:digit:]')
  745. fi
  746. if [ ! -n "${rconport}" ]; then
  747. rconport="0"
  748. fi
  749. # query port
  750. if [ -f "${servercfgfullpath}" ]; then
  751. queryport=$(grep "QueryPort=" "${servercfgfullpath}" | tr -cd '[:digit:]')
  752. fi
  753. if [ ! -n "${queryport}" ]; then
  754. queryport="0"
  755. fi
  756. fi