info_config.sh 21 KB

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