fn_details_config 20 KB

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