fn_details 9.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307
  1. #!/bin/bash
  2. # LGSM fn_details function
  3. # Author: Daniel Gibbs
  4. # Website: http://danielgibbs.co.uk
  5. # Version: 231214
  6. fn_avalanchedetails(){
  7. fn_autoip
  8. servername=$(grep -s hostname "${servercfgfullpath}"|sed 's/hostname //g'|sed 's/"//g')
  9. pid=$(tmux list-sessions 2>&1|awk '{print $1}'|grep -E "^${servicename}:"|wc -l)
  10. echo ""
  11. echo "${gamename} Server Details"
  12. echo "============================"
  13. echo "Server name: ${servername}"
  14. echo "Server IP: ${ip}:${port}"
  15. echo "Config file: ${servercfgfullpath}"
  16. echo ""
  17. echo "Server Ports"
  18. echo "============================"
  19. echo "Ports the server is currently using."
  20. echo ""
  21. echo "DIRECTION DESCRIPTION PORT"
  22. echo "INBOUND Game port ${port}"
  23. echo ""
  24. echo "You can change ports by editing the"
  25. echo "start parameters in ${selfname}."
  26. echo ""
  27. if [ "${pid}" == "0" ]; then
  28. echo -e "Status:\e[0;31m OFFLINE\e[0;39m"
  29. else
  30. echo -e "Status:\e[0;32m ONLINE\e[0;39m"
  31. fi
  32. echo ""
  33. }
  34. fn_realvirtualitydetails(){
  35. fn_autoip
  36. servername=$(grep -s hostname "${servercfgfullpath}"|grep -v //|sed -e 's/\<hostname\>//g'|tr -d '=\"; ')
  37. serverport=$(grep -s serverport= "${servercfgfullpath}"|grep -v //|tr -d '\r'|tr -cd [:digit:])
  38. queryport=$(grep -s steamqueryport= "${servercfgfullpath}"|grep -v //|tr -d '\r'|tr -cd [:digit:])
  39. masterport=$(grep -s steamport= "${servercfgfullpath}"|grep -v //|tr -d '\r'|tr -cd [:digit:])
  40. pid=$(tmux list-sessions 2>&1|awk '{print $1}'|grep -E "^${servicename}:"|wc -l)
  41. echo ""
  42. echo "${gamename} Server Details"
  43. echo "============================"
  44. echo "Server name: ${servername}"
  45. echo "Server IP: ${ip}:${serverport}"
  46. echo "Config file: ${servercfgfullpath}"
  47. echo ""
  48. echo "Admin Password: ${adminpass}"
  49. echo ""
  50. echo "Server Ports"
  51. echo "============================"
  52. echo "Ports the server is currently using."
  53. echo ""
  54. if [ -z ${serverport} ] || [ -z ${queryport} ] || [ -z ${masterport} ] ; then
  55. echo -e "\e[0;31mERROR!\e[0;39m Missing/commented ports in ${servercfg}."
  56. echo ""
  57. fi
  58. echo "PROTOCOL DESCRIPTION PORT"
  59. echo "UDP Game port ${serverport}"
  60. echo "UDP STEAM query port ${queryport}"
  61. echo "UDP STEAM master traffic port ${masterport}"
  62. echo ""
  63. echo "You can change ports by editing the"
  64. echo "parameters in ${servercfgfullpath}"
  65. echo ""
  66. if [ "${pid}" == "0" ]; then
  67. echo -e "Status:\e[0;31m OFFLINE\e[0;39m"
  68. else
  69. echo -e "Status:\e[0;32m ONLINE\e[0;39m"
  70. fi
  71. echo ""
  72. }
  73. fn_seriousengine35details(){
  74. fn_autoip
  75. fn_parms
  76. servername=$(grep -s prj_strMultiplayerSessionName "${servercfgfullpath}"|sed 's/prj_strMultiplayerSessionName = //g'|sed 's/"//g'|sed 's/;//g')
  77. rcon=$(grep -s rcts_strAdminPassword "${servercfgfullpath}"|sed 's/rcts_strAdminPassword = //g'|sed 's/"//g'|sed 's/;//g')
  78. gameport=$(grep -s prj_uwPort "${servercfgfullpath}"|tr -d '\r'|tr -cd [:digit:])
  79. queryport=$((${gameport} + 1))
  80. pid=$(tmux list-sessions 2>&1|awk '{print $1}'|grep -E "^${servicename}:"|wc -l)
  81. echo ""
  82. echo "${gamename} Server Details"
  83. echo "============================"
  84. echo "Server name: ${servername}"
  85. echo "Server IP: ${ip}:${port}"
  86. echo "RCON password: ${rcon}"
  87. echo "Config file: ${servercfgfullpath}"
  88. echo ""
  89. echo "Server Ports"
  90. echo "============================"
  91. echo "Ports the server is currently using."
  92. echo ""
  93. echo "DIRECTION DESCRIPTION PORT"
  94. echo "INBOUND Game/RCON port ${port}"
  95. echo "INBOUND Query port ${queryport}"
  96. echo ""
  97. echo "You can change ports by editing the"
  98. echo "parameters in ${servercfgfullpath}"
  99. echo ""
  100. if [ "${pid}" == "0" ]; then
  101. echo -e "Status:\e[0;31m OFFLINE\e[0;39m"
  102. else
  103. echo -e "Status:\e[0;32m ONLINE\e[0;39m"
  104. fi
  105. echo ""
  106. }
  107. fn_sourcedetails(){
  108. fn_autoip
  109. fn_parms
  110. servername=$(grep -s hostname "${servercfgfullpath}"|sed 's/hostname //g'|sed 's/"//g')
  111. rcon=$(grep -s rcon_password "${servercfgfullpath}"|sed 's/rcon_password //g'|sed 's/"//g')
  112. pid=$(tmux list-sessions 2>&1|awk '{print $1}'|grep -E "^${servicename}:"|wc -l)
  113. echo ""
  114. echo "${gamename} Server Details"
  115. echo "============================"
  116. echo "Server name: ${servername}"
  117. echo "Server IP: ${ip}:${port}"
  118. echo "RCON password: ${rcon}"
  119. echo "Config file: ${servercfgfullpath}"
  120. echo ""
  121. echo "Start Parameters"
  122. echo "============================"
  123. echo "${executable} ${parms}"
  124. echo ""
  125. echo "Server Ports"
  126. echo "============================"
  127. echo "Ports the server is currently using."
  128. echo ""
  129. echo "DIRECTION DESCRIPTION PORT"
  130. echo "INBOUND Game/RCON port ${port}"
  131. if [ ! -z "${sourcetvport}" ]; then
  132. echo "INBOUND SourceTV port ${sourcetvport}"
  133. fi
  134. echo "OUTBOUND Client port ${clientport}"
  135. echo ""
  136. echo "You can change ports by editing the"
  137. echo "start parameters in ${selfname}."
  138. echo ""
  139. if [ "${pid}" == "0" ]; then
  140. echo -e "Status:\e[0;31m OFFLINE\e[0;39m"
  141. else
  142. echo -e "Status:\e[0;32m ONLINE\e[0;39m"
  143. fi
  144. echo ""
  145. }
  146. fn_sparkdetails(){
  147. fn_autoip
  148. queryport=$((${port} + 1))
  149. pid=$(tmux list-sessions 2>&1|awk '{print $1}'|grep -E "^${servicename}:"|wc -l)
  150. echo ""
  151. echo "${gamename} Server Details"
  152. echo "============================"
  153. echo "Server name: ${servername}"
  154. echo "Server IP: ${ip}:${port}"
  155. echo ""
  156. echo "Server Ports"
  157. echo "============================"
  158. echo "Ports the server is currently using."
  159. echo ""
  160. echo "DIRECTION DESCRIPTION PORT"
  161. echo "INBOUND Game/RCON port ${port}"
  162. echo "INBOUND Query port ${queryport}"
  163. echo "INBOUND WebAdmin ${webadminport}"
  164. echo ""
  165. echo "${servername} WebAdmin"
  166. echo "======================="
  167. echo "WebAdmin URL: http://${ip}:${webadminport}/index.html"
  168. echo "WebAdmin Username: ${webadminuser}"
  169. echo "WebAdmin Password: ${webadminpass}"
  170. echo ""
  171. echo "You can change various parameters by editing the"
  172. echo "start parameters in ${selfname}."
  173. echo ""
  174. if [ "${pid}" == "0" ]; then
  175. echo -e "Status:\e[0;31m OFFLINE\e[0;39m"
  176. else
  177. echo -e "Status:\e[0;32m ONLINE\e[0;39m"
  178. fi
  179. echo ""
  180. }
  181. fn_unity3ddetails(){
  182. fn_autoip
  183. pid=$(tmux list-sessions 2>&1|awk '{print $1}'|grep -E "^${servicename}:"|wc -l)
  184. servername=$(grep ServerName "${servercfgfullpath}"|sed 's/^.*value="//'|cut -f1 -d"\"")
  185. gameport=$(grep ServerPort "${servercfgfullpath}"|tr -cd [:digit:])
  186. queryport=$((${gameport} + 1))
  187. webadminport=$(grep ControlPanelPort "${servercfgfullpath}"|tr -cd [:digit:])
  188. telnetport=$(grep TelnetPort "${servercfgfullpath}"|tr -cd [:digit:])
  189. webadminuser=$(grep ControlPanelPassword "${servercfgfullpath}"|sed 's/^.*value="//'|cut -f1 -d"\"")
  190. echo ""
  191. echo "${gamename} Server Details"
  192. echo "============================"
  193. echo "Server name: ${servername}"
  194. echo "Server IP: ${ip}:${port}"
  195. echo "Config file: ${servercfgfullpath}"
  196. echo ""
  197. echo "Server Ports"
  198. echo "============================"
  199. echo "Ports the server is currently using."
  200. echo ""
  201. echo "DIRECTION DESCRIPTION PORT"
  202. echo "INBOUND Game port ${gameport}"
  203. echo "INBOUND Query port ${queryport}"
  204. echo "INBOUND WebAdmin ${webadminport}"
  205. echo "INBOUND Telnet ${telnetport}"
  206. echo ""
  207. echo "${servername} WebAdmin"
  208. echo "======================="
  209. echo "WebAdmin URL: http://${ip}:${webadminport}"
  210. echo "WebAdmin Username: ${webadminuser}"
  211. echo ""
  212. echo "You can change ports by editing the"
  213. echo "parameters in ${servercfgfullpath}"
  214. echo ""
  215. if [ "${pid}" == "0" ]; then
  216. echo -e "Status:\e[0;31m OFFLINE\e[0;39m"
  217. else
  218. echo -e "Status:\e[0;32m ONLINE\e[0;39m"
  219. fi
  220. echo ""
  221. }
  222. fn_unrealdetails(){
  223. fn_autoip
  224. pid=$(tmux list-sessions 2>&1|awk '{print $1}'|grep -E "^${servicename}:"|wc -l)
  225. gameport=$(grep Port= "${systemdir}/${ini}"|grep -v Master|grep -v LAN|grep -v Proxy|grep -v Listen|tr -d '\r'|tr -cd [:digit:])
  226. queryport=$((${gameport} + 1))
  227. gsqueryport=$(grep OldQueryPortNumber= "${systemdir}/${ini}"|tr -d '\r'|tr -cd [:digit:])
  228. udplinkport=$((${gameport} + 2))
  229. webadminport=$(grep ListenPort= "${systemdir}/${ini}"|tr -d '\r'|tr -cd [:digit:])
  230. if [ "${engine}" == "unreal" ]; then
  231. webadminuser=$(grep AdminUsername= "${systemdir}/${ini}"|sed 's/\AdminUsername=//g')
  232. else
  233. webadminuser=$(grep AdminName= "${systemdir}/${ini}"|sed 's/\AdminName=//g')
  234. fi
  235. webadminpass=$(grep AdminPassword= "${systemdir}/${ini}"|sed 's/\AdminPassword=//g')
  236. echo ""
  237. echo "${gamename} Server Details"
  238. echo "============================"
  239. echo "Server name: ${servername}"
  240. echo "Server IP: ${ip}:${gameport}"
  241. echo "Config file: ${systemdir}/${ini}"
  242. echo ""
  243. echo "Server Ports"
  244. echo "============================"
  245. echo "Ports the server is currently using."
  246. echo ""
  247. echo "DIRECTION DESCRIPTION PORT INI VARIABLE"
  248. echo "INBOUND Game port ${gameport} UDP Port=${gameport}"
  249. echo "INBOUND Query port ${queryport} UDP n/a"
  250. if [ "${engine}" == "unreal" ]; then
  251. echo "OUTBOUND UdpLink Port (random) ${udplinkport}+ UDP n/a"
  252. fi
  253. if [ "${engine}" != "unreal" ] && [ "${appid}" != "223250" ]; then
  254. echo "INBOUND GameSpy query port ${gsqueryport} UDP OldQueryPortNumber=${gsqueryport}"
  255. fi
  256. if [ "${appid}" == "215360" ]; then
  257. echo "OUTBOUND Master server port 28852 TCP/UDP n/a"
  258. else
  259. echo "OUTBOUND Master server port 28900/28902 TCP/UDP n/a"
  260. fi
  261. if [ "${appid}" ]; then
  262. if [ "${appid}" == "223250" ]; then
  263. echo "OUTBOUND Steam port 20610 UDP n/a"
  264. else
  265. echo "OUTBOUND Steam port 20660 UDP n/a"
  266. fi
  267. fi
  268. echo "INBOUND WebAdmin ${webadminport} TCP ListenPort=${webadminport}"
  269. echo ""
  270. echo "${servername} WebAdmin"
  271. echo "======================="
  272. echo "WebAdmin URL: http://${ip}:${webadminport}"
  273. echo "WebAdmin Username: ${webadminuser}"
  274. echo "WebAdmin Password: ${webadminpass}"
  275. echo ""
  276. if [ "${pid}" == "0" ]; then
  277. echo -e "Status:\e[0;31m OFFLINE\e[0;39m"
  278. else
  279. echo -e "Status:\e[0;32m ONLINE\e[0;39m"
  280. fi
  281. echo ""
  282. }
  283. if [ "${engine}" == "avalanche" ]; then
  284. fn_avalanchedetails
  285. elif [ "${engine}" == "realvirtuality" ]; then
  286. fn_realvirtualitydetails
  287. elif [ "${engine}" == "seriousengine35" ]; then
  288. fn_seriousengine35details
  289. elif [ "${engine}" == "source" ]||[ "${engine}" == "goldsource" ]; then
  290. fn_sourcedetails
  291. elif [ "${engine}" == "spark" ]; then
  292. fn_sparkdetails
  293. elif [ "${engine}" == "unity3d" ]; then
  294. fn_unity3ddetails
  295. elif [ "${engine}" == "unreal" ]||[ "${engine}" == "unreal2" ]; then
  296. fn_unrealdetails
  297. else
  298. echo "error: Unable to detect server engine!"
  299. fi