command_dev_parse_game_details.sh 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  1. #!/bin/bash
  2. # LinuxGSM command_dev_parse_game_details.sh module
  3. # Author: Daniel Gibbs
  4. # Contributors: http://linuxgsm.com/contrib
  5. # Website: https://linuxgsm.com
  6. # Description: Display parsed gameserver details.
  7. if [ -f "config" ]; then
  8. servercfgfullpath="config"
  9. fi
  10. if [ -f "clusterconfig" ]; then
  11. clustercfgfullpath="clusterconfig"
  12. fi
  13. info_game.sh
  14. carriagereturn=$(file -b "${servercfgfullpath}" | grep -q CRLF && echo "${red}CRLF${default}" || echo "${lightgreen}LF${default}")
  15. echo -e ""
  16. echo -e "${bold}${lightgreen}Server Details${default}"
  17. fn_messages_separator
  18. echo -e ""
  19. echo -e "${lightblue}Game: ${default}${gamename}"
  20. echo -e "${lightblue}Config type: ${default}${configtype}"
  21. echo -e "${lightblue}Config file: ${default}${servercfgfullpath}"
  22. if [ -f "${clustercfgfullpath}" ]; then
  23. echo -e "${lightblue}Cluster config file: ${default}${clustercfgfullpath}"
  24. fi
  25. echo -e "${lightblue}Carriage Return: ${default}${carriagereturn}"
  26. # Create an associative array of the server details.
  27. declare -A server_details=(
  28. ['Admin Password']="${adminpassword}"
  29. ['Alert IP']="${alertip}"
  30. ['API Port']="${apiport}"
  31. ['App Port']="${appport}"
  32. ['ASE']="${ase}"
  33. ['Auth Token']="${authtoken}"
  34. ['BattleEye Port']="${battleeyeport}"
  35. ['Beacon Port']="${beaconport}"
  36. ['Cave']="${cave}"
  37. ['Client Port']="${clientport}"
  38. ['Cluster']="${cluster}"
  39. ['Config IP']="${configip}"
  40. ['Creative Mode']="${creativemode}"
  41. ['Custom Level URL']="${customlevelurl}"
  42. ['DB Plugin']="${dbplugin}"
  43. ['Default Map']="${defaultmap}"
  44. ['Default Scenario']="${defaultscenario}"
  45. ['Display Master Server']="${displaymasterserver}"
  46. ['Epic Settings']="${epicsettings}"
  47. ['File Port']="${fileport}"
  48. ['Files Port']="${filesport}"
  49. ['Game Mode']="${gamemode}"
  50. ['Game Type']="${gametype}"
  51. ['Home Kingdom']="${homekingdom}"
  52. ['Home Server']="${homeserver}"
  53. ['HTTP Enabled']="${httpenabled}"
  54. ['HTTP IP']="${httpip}"
  55. ['HTTP Password']="${httppassword}"
  56. ['HTTP Port']="${httpport}"
  57. ['HTTP User']="${httpuser}"
  58. ['Internet IP']="${publicip}"
  59. ['LAN Port']="${lanport}"
  60. ['Login Server']="${loginserver}"
  61. ['Master Port']="${masterport}"
  62. ['Master Server']="${masterserver}"
  63. ['Master']="${master}"
  64. ['Max Players']="${maxplayers}"
  65. ['Mod Server Port']="${modserverport}"
  66. ['OldQueryPortNumber']="${oldqueryportnumber}"
  67. ['Password']="${password}"
  68. ['Port 401']="${port401}"
  69. ['Port IPv6']="${portipv6}"
  70. ['Port']="${port}"
  71. ['Query Enabled']="${queryenabled}"
  72. ['Query HTTP Port']="${queryhttpport}"
  73. ['Query HTTPS Port']="${queryhttpsport}"
  74. ['Query Mode']="${querymode}"
  75. ['Query Port GS']="${queryportgs}"
  76. ['Query Port']="${queryport}"
  77. ['Query SSH Port']="${querysshport}"
  78. ['Queue Enabled']="${queueenabled}"
  79. ['Queue Port']="${queueport}"
  80. ['Random Map']="${randommap}"
  81. ['Raw Port']="${rawport}"
  82. ['RC Password']="${rcpassword}"
  83. ['RCON Enabled']="${rconenabled}"
  84. ['RCON Password']="${rconpassword}"
  85. ['RCON Port']="${rconport}"
  86. ['RCON Web']="${rconweb}"
  87. ['Reserved Slots']="${reservedslots}"
  88. ['RMI Port']="${rmiport}"
  89. ['RMI Reg Port']="${rmiregport}"
  90. ['Salt']="${salt}"
  91. ['Save Game Interval']="${savegameinterval}"
  92. ['Save Interval']="${saveinterval}"
  93. ['Secondary Port']="${port3}"
  94. ['Seed']="${seed}"
  95. ['Server Description']="${serverdescription}"
  96. ['Server IP']="${ip}"
  97. ['Server Level']="${serverlevel}"
  98. ['Server Name']="${servername}"
  99. ['Server Password Enabled']="${serverpasswordenabled}"
  100. ['Server Password']="${serverpassword}"
  101. ['Server Version']="${serverversion}"
  102. ['Shard']="${shard}"
  103. ['Sharding']="${sharding}"
  104. ['Shutdown Port']="${shutdownport}"
  105. ['Stats Port']="${statsport}"
  106. ['Steam Auth Port']="${steamauthport}"
  107. ['Steam Port']="${steamport}"
  108. ['Steamworks Port']="${steamworksport}"
  109. ['Telnet Enabled']="${telnetenabled}"
  110. ['Telnet IP']="${telnetip}"
  111. ['Telnet Password']="${telnetpass}"
  112. ['Telnet Password']="${telnetpassword}"
  113. ['Telnet Port']="${telnetport}"
  114. ['Tickrate']="${tickrate}"
  115. ['Unknown Port']="${unknownport}"
  116. ['Version Count']="${versioncount}"
  117. ['Voice Port']="${voiceport}"
  118. ['Voice Unused Port']="${voiceunusedport}"
  119. ['World Name']="${worldname}"
  120. ['World Size']="${worldsize}"
  121. ['World Type']="${worldtype}"
  122. )
  123. # Initialize variables to keep track of available and missing server details.
  124. available_details=""
  125. missing_details=""
  126. # Loop through the server details and store them.
  127. for key in "${!server_details[@]}"; do
  128. value=${server_details[$key]}
  129. if [ -n "$value" ]; then
  130. available_details+="${lightblue}${key}: ${default}${value}\n"
  131. else
  132. missing_details+="${key}\n"
  133. fi
  134. done
  135. # Sort and output the available distro details.
  136. if [ -n "$available_details" ]; then
  137. echo -e ""
  138. echo -e "${bold}${lightgreen}Available Distro Details${default}"
  139. fn_messages_separator
  140. echo -e "${available_details}" | sort
  141. fi
  142. # Output the missing server details if there are any.
  143. if [ -n "$missing_details" ]; then
  144. echo -e ""
  145. echo -e "${lightgreen}Missing or unsupported Server Details${default}"
  146. fn_messages_separator
  147. echo -e "${missing_details}" | sort
  148. fi
  149. core_exit.sh