fn_details_config 20 KB

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