info_config.sh 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807
  1. #!/bin/bash
  2. # LGSM info_config.sh function
  3. # Author: Daniel Gibbs
  4. # Website: http://gameservermanagers.com
  5. lgsm_version="060116"
  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. # ARMA 3
  138. elif [ "${engine}" == "realvirtuality" ]; then
  139. # server name
  140. if [ -f "${servercfgfullpath}" ]; then
  141. servername=$(grep "hostname" "${servercfgfullpath}" | grep -v "//" | sed -e 's/\<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. # admin password
  149. if [ -f "${servercfgfullpath}" ]; then
  150. adminpassword=$(grep "passwordAdmin" "${servercfgfullpath}" | grep -v "//" | sed -e 's/\passwordAdmin//g' | tr -d '=\"; ')
  151. if [ ! -n "${adminpassword}" ]; then
  152. adminpassword="NOT SET"
  153. fi
  154. else
  155. adminpassword="\e[0;31mUNAVAILABLE\e[0m"
  156. fi
  157. # server password
  158. if [ -f "${servercfgfullpath}" ]; then
  159. serverpassword=$(grep "password =" "${servercfgfullpath}" | grep -v "//" | sed -e 's/\password//g' | tr -d '=\"; ')
  160. if [ ! -n "${serverpassword}" ]; then
  161. serverpassword="NOT SET"
  162. fi
  163. else
  164. serverpassword="\e[0;31mUNAVAILABLE\e[0m"
  165. fi
  166. # slots
  167. if [ -f "${servercfgfullpath}" ]; then
  168. slots=$(grep "maxPlayers" "${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. if [ "${port}" != "" ]; then
  177. port=${port}
  178. fi
  179. if [ ! -n "${port}" ]; then
  180. port="0"
  181. fi
  182. # query port
  183. if [ "${port}" != "" ]; then
  184. queryport=$((port+1))
  185. fi
  186. if [ ! -n "${queryport}" ]; then
  187. queryport="0"
  188. fi
  189. # master port
  190. if [ "${port}" != "" ]; then
  191. masterport=$((port+2))
  192. fi
  193. if [ ! -n "${masterport}" ]; then
  194. masterport="0"
  195. fi
  196. # Serious Sam
  197. elif [ "${engine}" == "seriousengine35" ]; then
  198. # server name
  199. if [ -f "${servercfgfullpath}" ]; then
  200. servername=$(grep "prj_strMultiplayerSessionName" "${servercfgfullpath}" | sed 's/prj_strMultiplayerSessionName = //g' | tr -d '=\"; ')
  201. if [ ! -n "${servername}" ]; then
  202. servername="NOT SET"
  203. fi
  204. else
  205. servername="\e[0;31mUNAVAILABLE\e[0m"
  206. fi
  207. # rcon password
  208. if [ -f "${servercfgfullpath}" ]; then
  209. rconpassword=$(grep "rcts_strAdminPassword" "${servercfgfullpath}" | sed 's/rcts_strAdminPassword = //g' | tr -d '=\"; ')
  210. if [ ! -n "${rconpassword}" ]; then
  211. rconpassword="NOT SET"
  212. fi
  213. else
  214. rconpassword="\e[0;31mUNAVAILABLE\e[0m"
  215. fi
  216. # slots
  217. if [ -f "${servercfgfullpath}" ]; then
  218. slots=$(grep "gam_ctMaxPlayers" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
  219. if [ ! -n "${slots}" ]; then
  220. slots="NOT SET"
  221. fi
  222. else
  223. slots="\e[0;31mUNAVAILABLE\e[0m"
  224. fi
  225. # game mode
  226. if [ -f "${servercfgfullpath}" ]; then
  227. gamemode=$(grep "gam_idGameMode" "${servercfgfullpath}" | grep -v "#" | sed 's/gam_idGameMode//g' | tr -d '=\"; ')
  228. if [ ! -n "${gamemode}" ]; then
  229. gamemode="NOT SET"
  230. fi
  231. else
  232. gamemode="\e[0;31mUNAVAILABLE\e[0m"
  233. fi
  234. # port
  235. if [ -f "${servercfgfullpath}" ]; then
  236. port=$(grep "prj_uwPort" "${servercfgfullpath}" | tr -d '\r' | tr -cd '[:digit:]')
  237. fi
  238. if [ ! -n "${port}" ]; then
  239. port="0"
  240. fi
  241. # query port
  242. if [ -f "${servercfgfullpath}" ]; then
  243. queryport=$((${port} + 1))
  244. fi
  245. if [ ! -n "${queryport}" ]; then
  246. queryport="0"
  247. fi
  248. # Source Engine Games
  249. elif [ "${engine}" == "source" ]||[ "${engine}" == "goldsource" ]; then
  250. # server name
  251. if [ -f "${servercfgfullpath}" ]; then
  252. servername=$(grep "hostname" "${servercfgfullpath}" | sed 's/hostname //g' | sed 's/"//g')
  253. if [ ! -n "${servername}" ]; then
  254. servername="NOT SET"
  255. fi
  256. else
  257. servername="\e[0;31mUNAVAILABLE\e[0m"
  258. fi
  259. # server password
  260. if [ -f "${servercfgfullpath}" ]; then
  261. serverpassword=$(grep "sv_password" "${servercfgfullpath}" | sed 's/sv_password //g' | sed 's/"//g')
  262. if [ ! -n "${serverpassword}" ]; then
  263. serverpassword="NOT SET"
  264. fi
  265. else
  266. serverpassword="\e[0;31mUNAVAILABLE\e[0m"
  267. fi
  268. # rcon password
  269. if [ -f "${servercfgfullpath}" ]; then
  270. rconpassword=$(grep "rcon_password" "${servercfgfullpath}" | sed 's/rcon_password //g' | sed 's/"//g')
  271. if [ ! -n "${rconpassword}" ]; then
  272. rconpassword="NOT SET"
  273. fi
  274. else
  275. rconpassword="\e[0;31mUNAVAILABLE\e[0m"
  276. fi
  277. # Spark (NS2: Combat)
  278. elif [ "${engine}" == "spark" ]; then
  279. # query port
  280. if [ -f "${servercfgfullpath}" ]; then
  281. queryport=$((port + 1))
  282. fi
  283. if [ ! -n "${queryport}" ]; then
  284. queryport="0"
  285. fi
  286. # Teamspeak 3
  287. elif [ "${gamename}" == "Teamspeak 3" ]; then
  288. # ip
  289. if [ -f "${servercfgfullpath}" ]; then
  290. # check if the ip exists in the config file. Failing this will fall back to the default.
  291. configipcheck=$(grep "voice_ip=" "${servercfgfullpath}" | sed 's/\voice_ip=//g')
  292. fi
  293. if [ -n "${configipcheck}" ]; then
  294. ip=$(grep "voice_ip=" "${servercfgfullpath}" | sed 's/\voice_ip=//g')
  295. fi
  296. # dbplugin
  297. if [ -f "${servercfgfullpath}" ]; then
  298. dbplugin=$(grep "dbplugin=" "${servercfgfullpath}" | sed 's/\dbplugin=//g')
  299. if [ ! -n "${dbplugin}" ]; then
  300. dbplugin="NOT SET"
  301. fi
  302. else
  303. dbplugin="\e[0;31mUNAVAILABLE\e[0m"
  304. fi
  305. # port
  306. if [ -f "${servercfgfullpath}" ]; then
  307. port=$(grep "default_voice_port=" "${servercfgfullpath}" | tr -cd '[:digit:]')
  308. fi
  309. if [ ! -n "${port}" ]; then
  310. port="9987"
  311. fi
  312. # query port
  313. if [ -f "${servercfgfullpath}" ]; then
  314. queryport=$(grep "query_port=" "${servercfgfullpath}" | tr -cd '[:digit:]')
  315. fi
  316. if [ ! -n "${queryport}" ]; then
  317. queryport="10011"
  318. fi
  319. # file port
  320. if [ -f "${servercfgfullpath}" ]; then
  321. fileport=$(grep "filetransfer_port=" "${servercfgfullpath}" | tr -cd '[:digit:]')
  322. fi
  323. if [ ! -n "${fileport}" ]; then
  324. fileport="30033"
  325. fi
  326. # Teeworlds
  327. elif [ "${engine}" == "teeworlds" ]; then
  328. # server name
  329. if [ -f "${servercfgfullpath}" ]; then
  330. servername=$(grep "sv_name" "${servercfgfullpath}" | sed 's/sv_name //g' | sed 's/"//g')
  331. if [ ! -n "${servername}" ]; then
  332. servername="unnamed server"
  333. fi
  334. else
  335. servername="unnamed server"
  336. fi
  337. # server password
  338. if [ -f "${servercfgfullpath}" ]; then
  339. serverpassword=$(grep "password " "${servercfgfullpath}" | awk '!/sv_rcon_password/'| sed 's/password //g' | tr -d '=\"; ')
  340. if [ ! -n "${serverpassword}" ]; then
  341. serverpassword="NOT SET"
  342. fi
  343. else
  344. serverpassword="\e[0;31mUNAVAILABLE\e[0m"
  345. fi
  346. # rcon password
  347. if [ -f "${servercfgfullpath}" ]; then
  348. rconpassword=$(grep "sv_rcon_password" "${servercfgfullpath}" | sed 's/sv_rcon_password //g' | tr -d '=\"; ')
  349. if [ ! -n "${rconpassword}" ]; then
  350. rconpassword="NOT SET"
  351. fi
  352. else
  353. rconpassword="\e[0;31mUNAVAILABLE\e[0m"
  354. fi
  355. # port
  356. if [ -f "${servercfgfullpath}" ]; then
  357. port=$(grep "sv_port" "${servercfgfullpath}" | tr -cd '[:digit:]')
  358. fi
  359. if [ ! -n "${port}" ]; then
  360. port="8303"
  361. fi
  362. # slots
  363. if [ -f "${servercfgfullpath}" ]; then
  364. slots=$(grep "sv_max_clients" "${servercfgfullpath}" | tr -cd '[:digit:]')
  365. if [ ! -n "${slots}" ]; then
  366. slots="12"
  367. fi
  368. else
  369. slots="12"
  370. fi
  371. # Terraria
  372. elif [ "${engine}" == "terraria" ]; then
  373. # port
  374. if [ -f "${servercfgfullpath}" ]; then
  375. port=$(grep "port=" "${servercfgfullpath}" | tr -cd '[:digit:]')
  376. fi
  377. if [ ! -n "${port}" ]; then
  378. port="0"
  379. fi
  380. # 7 Day To Die (unity3d)
  381. elif [ "${gamename}" == "7 Days To Die" ]; then
  382. # server name
  383. if [ -f "${servercfgfullpath}" ]; then
  384. servername=$(grep "ServerName" "${servercfgfullpath}" | sed 's/^.*value="//' | cut -f1 -d"\"")
  385. if [ ! -n "${servername}" ]; then
  386. servername="NOT SET"
  387. fi
  388. else
  389. servername="\e[0;31mUNAVAILABLE\e[0m"
  390. fi
  391. # server password
  392. if [ -f "${servercfgfullpath}" ]; then
  393. serverpassword=$(grep "ServerPassword" "${servercfgfullpath}" | sed 's/^.*value="//' | cut -f1 -d"\"")
  394. if [ ! -n "${serverpassword}" ]; then
  395. serverpassword="NOT SET"
  396. fi
  397. else
  398. serverpassword="\e[0;31mUNAVAILABLE\e[0m"
  399. fi
  400. # webadmin enabled
  401. if [ -f "${servercfgfullpath}" ]; then
  402. webadminenabled=$(grep "ControlPanelEnabled" "${servercfgfullpath}" | sed 's/^.*value="//' | cut -f1 -d"\"")
  403. if [ ! -n "${webadminenabled}" ]; then
  404. webadminenabled="NOT SET"
  405. fi
  406. else
  407. webadminenabled="\e[0;31mUNAVAILABLE\e[0m"
  408. fi
  409. # webadmin port
  410. if [ -f "${servercfgfullpath}" ]; then
  411. webadminport=$(grep "ControlPanelPort" "${servercfgfullpath}" | tr -cd '[:digit:]')
  412. fi
  413. if [ ! -n "${webadminport}" ]; then
  414. webadminport="0"
  415. fi
  416. # webadmin enabled
  417. if [ -f "${servercfgfullpath}" ]; then
  418. webadminenabled=$(grep "ControlPanelEnabled" "${servercfgfullpath}" | sed 's/^.*value="//' | cut -f1 -d"\"")
  419. if [ ! -n "${webadminenabled}" ]; then
  420. webadminenabled="NOT SET"
  421. fi
  422. else
  423. webadminenabled="\e[0;31mUNAVAILABLE\e[0m"
  424. fi
  425. # webadmin password
  426. if [ -f "${servercfgfullpath}" ]; then
  427. webadminpass=$(grep "ControlPanelPassword" "${servercfgfullpath}" | sed 's/^.*value="//' | cut -f1 -d"\"")
  428. if [ ! -n "${webadminpass}" ]; then
  429. webadminpass="NOT SET"
  430. fi
  431. else
  432. webadminpass="\e[0;31mUNAVAILABLE\e[0m"
  433. fi
  434. # telnet enabled
  435. if [ -f "${servercfgfullpath}" ]; then
  436. telnetenabled=$(grep "TelnetEnabled" "${servercfgfullpath}" | sed 's/^.*value="//' | cut -f1 -d"\"")
  437. if [ ! -n "${telnetenabled}" ]; then
  438. telnetenabled="NOT SET"
  439. fi
  440. else
  441. telnetenabled="\e[0;31mUNAVAILABLE\e[0m"
  442. fi
  443. # telnet port
  444. if [ -f "${servercfgfullpath}" ]; then
  445. telnetport=$(grep "TelnetPort" "${servercfgfullpath}" | tr -cd '[:digit:]')
  446. fi
  447. if [ ! -n "${telnetport}" ]; then
  448. telnetport="0"
  449. fi
  450. # telnet password
  451. if [ -f "${servercfgfullpath}" ]; then
  452. telnetpass=$(grep "TelnetEnabled" "${servercfgfullpath}" | sed 's/^.*value="//' | cut -f1 -d"\"")
  453. if [ ! -n "${telnetpass}" ]; then
  454. telnetpass="NOT SET"
  455. fi
  456. else
  457. telnetpass="\e[0;31mUNAVAILABLE\e[0m"
  458. fi
  459. # slots
  460. if [ -f "${servercfgfullpath}" ]; then
  461. slots=$(grep "ServerMaxPlayerCount" "${servercfgfullpath}" | tr -cd '[:digit:]')
  462. if [ ! -n "${slots}" ]; then
  463. slots="NOT SET"
  464. fi
  465. else
  466. slots="\e[0;31mUNAVAILABLE\e[0m"
  467. fi
  468. # game mode
  469. if [ -f "${servercfgfullpath}" ]; then
  470. gamemode=$(grep "GameMode" "${servercfgfullpath}" | sed 's/^.*value="//' | cut -f1 -d"\"")
  471. if [ ! -n "${gamemode}" ]; then
  472. gamemode="NOT SET"
  473. fi
  474. else
  475. gamemode="\e[0;31mUNAVAILABLE\e[0m"
  476. fi
  477. # game world
  478. if [ -f "${servercfgfullpath}" ]; then
  479. gameworld=$(grep "GameWorld" "${servercfgfullpath}" | sed 's/^.*value="//' | cut -f1 -d"\"")
  480. if [ ! -n "${gameworld}" ]; then
  481. gameworld="NOT SET"
  482. fi
  483. else
  484. gameworld="\e[0;31mUNAVAILABLE\e[0m"
  485. fi
  486. # port
  487. if [ -f "${servercfgfullpath}" ]; then
  488. port=$(grep "sv_port" "${servercfgfullpath}" | tr -cd '[:digit:]')
  489. fi
  490. if [ ! -n "${port}" ]; then
  491. port="0"
  492. fi
  493. # query port
  494. if [ -f "${servercfgfullpath}" ]; then
  495. queryport=$((port + 1))
  496. fi
  497. if [ ! -n "${queryport}" ]; then
  498. queryport="0"
  499. fi
  500. # Hurtworld (unity3d)
  501. elif [ "${gamename}" == "Hurtworld" ]; then
  502. # server name
  503. if [ -n "${servername}" ]; then
  504. servername="${servername}"
  505. else
  506. servername="\e[0;31mUNAVAILABLE\e[0m"
  507. fi
  508. # server password
  509. # not available yet
  510. # slots
  511. if [ -n "${maxplayers}" ]; then
  512. slots="${maxplayers}"
  513. else
  514. slots="NOT SET"
  515. fi
  516. # game world
  517. if [ -n "${map}" ]; then
  518. gameworld="${map}"
  519. else
  520. gameworld="NO MAP SET"
  521. fi
  522. # port
  523. if [ -n "${port}" ]; then
  524. port="${port}"
  525. else
  526. port="0"
  527. fi
  528. # query port
  529. if [ -n "${queryport}" ]; then
  530. queryport="${queryport}"
  531. else
  532. queryport="0"
  533. fi
  534. # Unreal Tournament
  535. elif [ "${engine}" == "unreal" ]||[ "${engine}" == "unreal2" ]; then
  536. # server name
  537. if [ -f "${servercfgfullpath}" ]; then
  538. servername=$(grep "ServerName=" "${servercfgfullpath}" | sed 's/ServerName=//g')
  539. if [ ! -n "${servername}" ]; then
  540. servername="NOT SET"
  541. fi
  542. else
  543. servername="\e[0;31mUNAVAILABLE\e[0m"
  544. fi
  545. # server password
  546. if [ -f "${servercfgfullpath}" ]; then
  547. serverpassword=$(grep "GamePassword=" "${servercfgfullpath}" | sed 's/GamePassword=//g')
  548. if [ ! -n "${serverpassword}" ]; then
  549. serverpassword="NOT SET"
  550. fi
  551. else
  552. serverpassword="\e[0;31mUNAVAILABLE\e[0m"
  553. fi
  554. # admin password
  555. if [ -f "${servercfgfullpath}" ]; then
  556. adminpassword=$(grep "AdminPassword=" "${servercfgfullpath}" | sed 's/AdminPassword=//g')
  557. if [ ! -n "${adminpassword}" ]; then
  558. adminpassword="NOT SET"
  559. fi
  560. else
  561. adminpassword="\e[0;31mUNAVAILABLE\e[0m"
  562. fi
  563. # port
  564. if [ -f "${servercfgfullpath}" ]; then
  565. port=$(grep "Port=" "${servercfgfullpath}" | grep -v "Master" | grep -v "LAN" | grep -v "Proxy" | grep -v "Listen" | tr -d '\r' | tr -cd '[:digit:]')
  566. fi
  567. if [ ! -n "${port}" ]; then
  568. port="0"
  569. fi
  570. # query port
  571. if [ -f "${servercfgfullpath}" ]; then
  572. queryport=$((port + 1))
  573. fi
  574. if [ ! -n "${queryport}" ]; then
  575. queryport="0"
  576. fi
  577. # gamespy query port
  578. if [ -f "${servercfgfullpath}" ]; then
  579. gsqueryport=$(grep "OldQueryPortNumber=" "${servercfgfullpath}" | tr -d '\r' | tr -cd '[:digit:]')
  580. fi
  581. if [ ! -n "${gsqueryport}" ]; then
  582. gsqueryport="0"
  583. fi
  584. # query port
  585. if [ -f "${servercfgfullpath}" ]; then
  586. udplinkport=$((port + 2))
  587. fi
  588. if [ ! -n "${udplinkport}" ]; then
  589. udplinkport="0"
  590. fi
  591. # webadmin enabled
  592. if [ -f "${servercfgfullpath}" ]; then
  593. webadminenabled=$(grep "bEnabled=" "${servercfgfullpath}" | sed 's/bEnabled=//g' | tr -d '\r')
  594. if [ ! -n "${webadminenabled}" ]; then
  595. webadminenabled="NOT SET"
  596. fi
  597. else
  598. webadminenabled="\e[0;31mUNAVAILABLE\e[0m"
  599. fi
  600. # webadmin port
  601. if [ -f "${servercfgfullpath}" ]; then
  602. webadminport=$(grep "ListenPort=" "${servercfgfullpath}" | tr -d '\r' | tr -cd '[:digit:]')
  603. fi
  604. if [ ! -n "${webadminport}" ]; then
  605. webadminport="0"
  606. fi
  607. if [ "${engine}" == "unreal" ]; then
  608. # webadmin user
  609. if [ -f "${servercfgfullpath}" ]; then
  610. webadminuser=$(grep "AdminUsername=" "${servercfgfullpath}" | sed 's/\AdminUsername=//g')
  611. if [ ! -n "${webadminuser}" ]; then
  612. webadminuser="NOT SET"
  613. fi
  614. else
  615. webadminuser="\e[0;31mUNAVAILABLE\e[0m"
  616. fi
  617. # webadmin password
  618. if [ -f "${servercfgfullpath}" ]; then
  619. webadminpass=$(grep "UTServerAdmin.UTServerAdmin" "${servercfgfullpath}" -A 2 | grep "AdminPassword=" | sed 's/\AdminPassword=//g')
  620. if [ ! -n "${webadminpass}" ]; then
  621. webadminpass="NOT SET"
  622. fi
  623. else
  624. webadminpass="\e[0;31mUNAVAILABLE\e[0m"
  625. fi
  626. else
  627. # webadmin user
  628. if [ -f "${servercfgfullpath}" ]; then
  629. webadminuser=$(grep "AdminName=" "${servercfgfullpath}" | sed 's/\AdminName=//g')
  630. if [ ! -n "${webadminuser}" ]; then
  631. webadminuser="NOT SET"
  632. fi
  633. else
  634. webadminuser="\e[0;31mUNAVAILABLE\e[0m"
  635. fi
  636. # webadmin password
  637. if [ -f "${servercfgfullpath}" ]; then
  638. webadminpass=$(grep "AdminPassword=" "${servercfgfullpath}" | sed 's/\AdminPassword=//g')
  639. if [ ! -n "${webadminpass}" ]; then
  640. webadminpass="NOT SET"
  641. fi
  642. else
  643. webadminpass="\e[0;31mUNAVAILABLE\e[0m"
  644. fi
  645. fi
  646. # ARK: Survivaial Evolved
  647. elif [ "${gamename}" == "ARK: Survivial Evolved" ]; then
  648. # server name
  649. if [ -f "${servercfgfullpath}" ]; then
  650. servername=$(grep "SessionName=" "${servercfgfullpath}" | sed 's/SessionName=//g')
  651. if [ ! -n "${servername}" ]; then
  652. servername="NOT SET"
  653. fi
  654. else
  655. servername="\e[0;31mUNAVAILABLE\e[0m"
  656. fi
  657. # server password
  658. if [ -f "${servercfgfullpath}" ]; then
  659. serverpassword=$(grep "ServerPassword=" "${servercfgfullpath}" | sed 's/ServerPassword=//g')
  660. if [ ! -n "${serverpassword}" ]; then
  661. serverpassword="NOT SET"
  662. fi
  663. else
  664. serverpassword="\e[0;31mUNAVAILABLE\e[0m"
  665. fi
  666. # admin password
  667. if [ -f "${servercfgfullpath}" ]; then
  668. adminpassword=$(grep "ServerAdminPassword=" "${servercfgfullpath}" | sed 's/ServerAdminPassword=//g')
  669. if [ ! -n "${adminpassword}" ]; then
  670. adminpassword="NOT SET"
  671. fi
  672. else
  673. adminpassword="\e[0;31mUNAVAILABLE\e[0m"
  674. fi
  675. # slots
  676. if [ -f "${servercfgfullpath}" ]; then
  677. slots=$(grep "MaxPlayers=" "${servercfgfullpath}" | tr -cd '[:digit:]')
  678. if [ ! -n "${slots}" ]; then
  679. slots="NOT SET"
  680. fi
  681. else
  682. slots="\e[0;31mUNAVAILABLE\e[0m"
  683. fi
  684. # port
  685. if [ -f "${servercfgfullpath}" ]; then
  686. port=$(grep "Port=" "${servercfgfullpath}" | grep -v "RCONPort=" | grep -v "QueryPort=" | tr -cd '[:digit:]')
  687. fi
  688. if [ ! -n "${port}" ]; then
  689. port="0"
  690. fi
  691. # rcon port
  692. if [ -f "${servercfgfullpath}" ]; then
  693. rconport=$(grep "RCONPort=" "${servercfgfullpath}" | tr -cd '[:digit:]')
  694. fi
  695. if [ ! -n "${rconport}" ]; then
  696. rconport="0"
  697. fi
  698. # query port
  699. if [ -f "${servercfgfullpath}" ]; then
  700. queryport=$(grep "QueryPort=" "${servercfgfullpath}" | tr -cd '[:digit:]')
  701. fi
  702. if [ ! -n "${queryport}" ]; then
  703. queryport="0"
  704. fi
  705. fi