fn_details 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218
  1. #!/bin/bash
  2. # LGSM fn_details function
  3. # Author: Daniel Gibbs
  4. # Website: http://danielgibbs.co.uk
  5. # Version: 131114
  6. fn_sourcedetails(){
  7. fn_autoip
  8. fn_parms
  9. servername=$(grep -s hostname "${servercfgfullpath}"|sed 's/hostname //g'|sed 's/"//g')
  10. rcon=$(grep -s rcon_password "${servercfgfullpath}"|sed 's/rcon_password //g'|sed 's/"//g')
  11. pid=$(tmux list-sessions 2>&1|awk '{print $1}'|grep -E "^${servicename}:"|wc -l)
  12. echo ""
  13. echo "${gamename} Server Details"
  14. echo "============================"
  15. echo "Server name: ${servername}"
  16. echo "Server IP: ${ip}:${port}"
  17. echo "RCON password: ${rcon}"
  18. echo "Config file: ${servercfgfullpath}"
  19. echo ""
  20. echo "Start Parameters"
  21. echo "============================"
  22. echo "${executable} ${parms}"
  23. echo ""
  24. echo "${servername} Ports"
  25. echo "============================"
  26. echo "Ports the server is currently using."
  27. echo ""
  28. echo "DIRECTION DESCRIPTION PORT"
  29. echo "INBOUND Game/RCON port ${port}"
  30. if [ ! -z ${sourcetvport} ]; then
  31. echo "INBOUND SourceTV port ${sourcetvport}"
  32. fi
  33. echo "OUTBOUND Client port ${clientport}"
  34. echo ""
  35. echo "You can change ports by editing the"
  36. echo "start parameters in ${selfname}."
  37. echo ""
  38. if [ "${pid}" == "0" ]; then
  39. echo -e "Status:\e[0;31m OFFLINE\e[0;39m"
  40. else
  41. echo -e "Status:\e[0;32m ONLINE\e[0;39m"
  42. fi
  43. echo ""
  44. }
  45. fn_unrealdetails(){
  46. fn_autoip
  47. pid=$(tmux list-sessions 2>&1|awk '{print $1}'|grep -E "^${servicename}:"|wc -l)
  48. gameport=$(grep Port= "${systemdir}/${ini}"|grep -v Master|grep -v LAN|grep -v Proxy|grep -v Listen|sed 's/\Port=//g')
  49. queryport=$((${gameport} + 1))
  50. gsqueryport=$(grep OldQueryPortNumber= "${systemdir}/${ini}"|sed 's/\OldQueryPortNumber=//g')
  51. udplinkport=$((${gameport} + 2))
  52. webadminport=$(grep ListenPort= "${systemdir}/${ini}"|sed 's/\ListenPort=//g')
  53. if [ "${engine}" == "unreal" ]; then
  54. webadminuser=$(grep AdminUsername= "${systemdir}/${ini}"|sed 's/\AdminUsername=//g')
  55. else
  56. webadminuser=$(grep AdminName= "${systemdir}/${ini}"|sed 's/\AdminName=//g')
  57. fi
  58. webadminpass=$(grep AdminPassword= "${systemdir}/${ini}"|sed 's/\AdminPassword=//g')
  59. echo ""
  60. echo "${gamename} Server Details"
  61. echo "============================"
  62. echo "Server name: ${servername}"
  63. echo "Server IP: ${ip}:${gameport}"
  64. echo "Config file: ${systemdir}/${ini}"
  65. echo ""
  66. echo "${servername} Ports"
  67. echo "============================"
  68. echo "Ports the server is currently using."
  69. echo ""
  70. echo "DIRECTION DESCRIPTION PORT INI VARIABLE"
  71. echo "INBOUND Game Port ${gameport} UDP Port=${gameport}"
  72. echo "INBOUND Query Port ${queryport} UDP n/a"
  73. if [ "${engine}" == "unreal" ]; then
  74. echo "OUTBOUND UdpLink Port (random) ${udplinkport}+ UDP n/a"
  75. fi
  76. if [ "${engine}" != "unreal" ] && [ "${appid}" != "223250" ]; then
  77. echo "INBOUND GameSpy Query Port ${gsqueryport} UDP OldQueryPortNumber=${gsqueryport}"
  78. fi
  79. if [ "${appid}" == "215360" ]; then
  80. echo "OUTBOUND Master Server port 28852 TCP/UDP n/a"
  81. else
  82. echo "OUTBOUND Master Server port 28900/28902 TCP/UDP n/a"
  83. fi
  84. if [ "${appid}" ]; then
  85. if [ "${appid}" == "223250" ]; then
  86. echo "OUTBOUND Steam Port 20610 UDP n/a"
  87. else
  88. echo "OUTBOUND Steam Port 20660 UDP n/a"
  89. fi
  90. fi
  91. echo "INBOUND WebAdmin ${webadminport} TCP ListenPort=${webadminport}"
  92. echo ""
  93. echo "${servername} WebAdmin"
  94. echo "======================="
  95. echo "WebAdmin URL: http://${ip}:${webadminport}"
  96. echo "WebAdmin Username: ${webadminuser}"
  97. echo "WebAdmin Password: ${webadminpass}"
  98. echo ""
  99. if [ "${pid}" == "0" ]; then
  100. echo -e "Status:\e[0;31m OFFLINE\e[0;39m"
  101. else
  102. echo -e "Status:\e[0;32m ONLINE\e[0;39m"
  103. fi
  104. echo ""
  105. }
  106. fn_ns2details(){
  107. fn_autoip
  108. queryport=$((${port} + 1))
  109. pid=$(tmux list-sessions 2>&1|awk '{print $1}'|grep -E "^${servicename}:"|wc -l)
  110. echo ""
  111. echo "${gamename} Server Details"
  112. echo "============================"
  113. echo "Server name: ${servername}"
  114. echo "Server IP: ${ip}:${port}"
  115. echo ""
  116. echo "${servername} Ports"
  117. echo "============================"
  118. echo "Ports the server is currently using."
  119. echo ""
  120. echo "DIRECTION DESCRIPTION PORT"
  121. echo "INBOUND Game/RCON port ${port}"
  122. echo "INBOUND Query Port ${queryport}"
  123. echo "INBOUND WebAdmin ${webadminport}"
  124. echo ""
  125. echo "${servername} WebAdmin"
  126. echo "======================="
  127. echo "WebAdmin URL: http://${ip}:${webadminport}/index.html"
  128. echo "WebAdmin Username: ${webadminuser}"
  129. echo "WebAdmin Password: ${webadminpass}"
  130. echo ""
  131. echo "You can change various parameters by editing the"
  132. echo "start parameters in ${selfname}."
  133. echo ""
  134. if [ "${pid}" == "0" ]; then
  135. echo -e "Status:\e[0;31m OFFLINE\e[0;39m"
  136. else
  137. echo -e "Status:\e[0;32m ONLINE\e[0;39m"
  138. fi
  139. echo ""
  140. }
  141. fn_jc2details(){
  142. fn_autoip
  143. servername=$(grep -s hostname "${servercfgfullpath}"|sed 's/hostname //g'|sed 's/"//g')
  144. pid=$(tmux list-sessions 2>&1|awk '{print $1}'|grep -E "^${servicename}:"|wc -l)
  145. echo ""
  146. echo "${gamename} Server Details"
  147. echo "============================"
  148. echo "Server name: ${servername}"
  149. echo "Server IP: ${ip}:${port}"
  150. echo "Config file: ${servercfgfullpath}"
  151. echo ""
  152. echo "${servername} Ports"
  153. echo "============================"
  154. echo "Ports the server is currently using."
  155. echo ""
  156. echo "DIRECTION DESCRIPTION PORT"
  157. echo "INBOUND Game port ${port}"
  158. echo ""
  159. echo "You can change ports by editing the"
  160. echo "start parameters in ${selfname}."
  161. echo ""
  162. if [ "${pid}" == "0" ]; then
  163. echo -e "Status:\e[0;31m OFFLINE\e[0;39m"
  164. else
  165. echo -e "Status:\e[0;32m ONLINE\e[0;39m"
  166. fi
  167. echo ""
  168. }
  169. fn_arma3details(){
  170. fn_autoip
  171. pid=$(tmux list-sessions 2>&1|awk '{print $1}'|grep -E "^${servicename}:"|wc -l)
  172. echo ""
  173. echo "${gamename} Server Details"
  174. echo "============================"
  175. echo "Server name: ${servername}"
  176. echo "Server IP: ${ip}:${serverport}"
  177. echo "Config file: ${servercfgfullpath}"
  178. echo ""
  179. echo "Admin Password: ${adminpass}"
  180. echo ""
  181. echo "${servername} Ports"
  182. echo "============================"
  183. echo "Ports the server is currently using."
  184. echo ""
  185. echo "PROTOCOL DESCRIPTION PORT"
  186. echo "UDP Game port ${serverport}"
  187. echo "UDP STEAM query port ${queryport}"
  188. echo "UDP STEAM master traffic port ${masterport}"
  189. echo ""
  190. echo "You can change ports by editing the"
  191. echo "parameters in ${servercfgfullpath}"
  192. echo ""
  193. if [ "${pid}" == "0" ]; then
  194. echo -e "Status:\e[0;31m OFFLINE\e[0;39m"
  195. else
  196. echo -e "Status:\e[0;32m ONLINE\e[0;39m"
  197. fi
  198. echo ""
  199. }
  200. if [ "${engine}" == "source" ]||[ "${engine}" == "goldsource" ]; then
  201. fn_sourcedetails
  202. elif [ "${engine}" == "unreal" ]||[ "${engine}" == "unreal2" ]; then
  203. fn_unrealdetails
  204. elif [ "${engine}" == "spark" ]; then
  205. fn_ns2details
  206. elif [ "${engine}" == "avalanche" ]; then
  207. fn_jc2details
  208. elif [ "${engine}" == "realvirtuality" ]; then
  209. fn_arma3details
  210. else
  211. echo "error: Unable to detect server engine!"
  212. fi