fn_details 8.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263
  1. #!/bin/bash
  2. # LGSM fn_details function
  3. # Author: Daniel Gibbs
  4. # Website: http://danielgibbs.co.uk
  5. # Version: 161214
  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_unrealdetails(){
  182. fn_autoip
  183. pid=$(tmux list-sessions 2>&1|awk '{print $1}'|grep -E "^${servicename}:"|wc -l)
  184. gameport=$(grep Port= "${systemdir}/${ini}"|grep -v Master|grep -v LAN|grep -v Proxy|grep -v Listen|tr -d '\r'|tr -cd [:digit:])
  185. queryport=$((${gameport} + 1))
  186. gsqueryport=$(grep OldQueryPortNumber= "${systemdir}/${ini}"|tr -d '\r'|tr -cd [:digit:])
  187. udplinkport=$((${gameport} + 2))
  188. webadminport=$(grep ListenPort= "${systemdir}/${ini}"|tr -d '\r'|tr -cd [:digit:])
  189. if [ "${engine}" == "unreal" ]; then
  190. webadminuser=$(grep AdminUsername= "${systemdir}/${ini}"|sed 's/\AdminUsername=//g')
  191. else
  192. webadminuser=$(grep AdminName= "${systemdir}/${ini}"|sed 's/\AdminName=//g')
  193. fi
  194. webadminpass=$(grep AdminPassword= "${systemdir}/${ini}"|sed 's/\AdminPassword=//g')
  195. echo ""
  196. echo "${gamename} Server Details"
  197. echo "============================"
  198. echo "Server name: ${servername}"
  199. echo "Server IP: ${ip}:${gameport}"
  200. echo "Config file: ${systemdir}/${ini}"
  201. echo ""
  202. echo "Server Ports"
  203. echo "============================"
  204. echo "Ports the server is currently using."
  205. echo ""
  206. echo "DIRECTION DESCRIPTION PORT INI VARIABLE"
  207. echo "INBOUND Game port ${gameport} UDP Port=${gameport}"
  208. echo "INBOUND Query port ${queryport} UDP n/a"
  209. if [ "${engine}" == "unreal" ]; then
  210. echo "OUTBOUND UdpLink Port (random) ${udplinkport}+ UDP n/a"
  211. fi
  212. if [ "${engine}" != "unreal" ] && [ "${appid}" != "223250" ]; then
  213. echo "INBOUND GameSpy query port ${gsqueryport} UDP OldQueryPortNumber=${gsqueryport}"
  214. fi
  215. if [ "${appid}" == "215360" ]; then
  216. echo "OUTBOUND Master server port 28852 TCP/UDP n/a"
  217. else
  218. echo "OUTBOUND Master server port 28900/28902 TCP/UDP n/a"
  219. fi
  220. if [ "${appid}" ]; then
  221. if [ "${appid}" == "223250" ]; then
  222. echo "OUTBOUND Steam port 20610 UDP n/a"
  223. else
  224. echo "OUTBOUND Steam port 20660 UDP n/a"
  225. fi
  226. fi
  227. echo "INBOUND WebAdmin ${webadminport} TCP ListenPort=${webadminport}"
  228. echo ""
  229. echo "${servername} WebAdmin"
  230. echo "======================="
  231. echo "WebAdmin URL: http://${ip}:${webadminport}"
  232. echo "WebAdmin Username: ${webadminuser}"
  233. echo "WebAdmin Password: ${webadminpass}"
  234. echo ""
  235. if [ "${pid}" == "0" ]; then
  236. echo -e "Status:\e[0;31m OFFLINE\e[0;39m"
  237. else
  238. echo -e "Status:\e[0;32m ONLINE\e[0;39m"
  239. fi
  240. echo ""
  241. }
  242. if [ "${engine}" == "avalanche" ]; then
  243. fn_avalanchedetails
  244. elif [ "${engine}" == "realvirtuality" ]; then
  245. fn_realvirtualitydetails
  246. elif [ "${engine}" == "seriousengine35" ]; then
  247. fn_seriousengine35details
  248. elif [ "${engine}" == "source" ]||[ "${engine}" == "goldsource" ]; then
  249. fn_sourcedetails
  250. elif [ "${engine}" == "spark" ]; then
  251. fn_sparkdetails
  252. elif [ "${engine}" == "unreal" ]||[ "${engine}" == "unreal2" ]; then
  253. fn_unrealdetails
  254. else
  255. echo "error: Unable to detect server engine!"
  256. fi