Selaa lähdekoodia

Merge branch 'release/180409'

Daniel Gibbs 8 vuotta sitten
vanhempi
commit
543fa19872
100 muutettua tiedostoa jossa 967 lisäystä ja 1732 poistoa
  1. 15 0
      .github/request-info.yml
  2. 15 0
      .github/support.yml
  3. 21 0
      .github/welcome.yml
  4. 2 0
      .travis.yml
  5. 1 1
      CONTRIBUTING.md
  6. 13 4
      ISSUE_TEMPLATE.md
  7. 0 0
      README.md
  8. BIN
      images/icons/centos-icon-32.png
  9. BIN
      images/icons/debian-icon-32.png
  10. BIN
      images/icons/ubuntu-icon-32.png
  11. 0 3
      images/logo/README.md
  12. BIN
      images/logo/apple-touch-icon-precomposed.png
  13. BIN
      images/logo/assets/lgsm-font-pt_sans.zip
  14. BIN
      images/logo/assets/lgsm-font-source_code_pro.zip
  15. 0 238
      images/logo/assets/svg/linuxgsm_black_gradiant_vector.svg
  16. 0 304
      images/logo/assets/svg/linuxgsm_black_gradiant_vector_full.svg
  17. 0 286
      images/logo/assets/svg/linuxgsm_black_vector.svg
  18. 0 248
      images/logo/assets/svg/linuxgsm_white_vector.svg
  19. 0 324
      images/logo/assets/svg/linuxgsm_white_vector_full.svg
  20. BIN
      images/logo/facebook.png
  21. BIN
      images/logo/lgsm-dark-full.png
  22. BIN
      images/logo/lgsm-dark-square-114.png
  23. BIN
      images/logo/lgsm-dark-square-16.png
  24. BIN
      images/logo/lgsm-dark-square-184.png
  25. BIN
      images/logo/lgsm-dark-square-24.png
  26. BIN
      images/logo/lgsm-dark-square-512.png
  27. BIN
      images/logo/lgsm-dark-square-64.png
  28. BIN
      images/logo/lgsm-light-full.png
  29. BIN
      images/logo/lgsm_full.png
  30. BIN
      images/logo/lgsmbutton.png
  31. BIN
      images/wallpaper/LinuxGSM_wallpaper.png
  32. BIN
      images/wallpaper/LinuxGSM_wallpaper_2.png
  33. 104 0
      lgsm/config-default/config-lgsm/etlserver/_default.cfg
  34. 118 0
      lgsm/config-default/config-lgsm/rwserver/_default.cfg
  35. 1 1
      lgsm/config-default/config-lgsm/ut3server/_default.cfg
  36. 2 0
      lgsm/data/serverlist.csv
  37. 2 2
      lgsm/functions/alert.sh
  38. 2 2
      lgsm/functions/alert_discord.sh
  39. 1 1
      lgsm/functions/alert_ifttt.sh
  40. 1 1
      lgsm/functions/alert_mailgun.sh
  41. 3 3
      lgsm/functions/alert_pushover.sh
  42. 11 11
      lgsm/functions/check_deps.sh
  43. 7 6
      lgsm/functions/check_ip.sh
  44. 17 17
      lgsm/functions/check_permissions.sh
  45. 2 2
      lgsm/functions/check_status.sh
  46. 1 2
      lgsm/functions/check_steamcmd.sh
  47. 2 2
      lgsm/functions/check_system_requirements.sh
  48. 14 14
      lgsm/functions/command_backup.sh
  49. 4 4
      lgsm/functions/command_console.sh
  50. 6 6
      lgsm/functions/command_debug.sh
  51. 2 1
      lgsm/functions/command_details.sh
  52. 14 0
      lgsm/functions/command_dev_clear_functions.sh
  53. 3 3
      lgsm/functions/command_dev_detect_deps.sh
  54. 3 3
      lgsm/functions/command_dev_detect_glibc.sh
  55. 6 6
      lgsm/functions/command_dev_detect_ldd.sh
  56. 40 0
      lgsm/functions/command_dev_query_raw.sh
  57. 3 3
      lgsm/functions/command_fastdl.sh
  58. 2 2
      lgsm/functions/command_mods_install.sh
  59. 1 1
      lgsm/functions/command_mods_remove.sh
  60. 1 1
      lgsm/functions/command_mods_update.sh
  61. 137 64
      lgsm/functions/command_monitor.sh
  62. 2 2
      lgsm/functions/command_postdetails.sh
  63. 12 11
      lgsm/functions/command_start.sh
  64. 16 16
      lgsm/functions/command_stop.sh
  65. 1 1
      lgsm/functions/command_test_alert.sh
  66. 2 2
      lgsm/functions/command_ts3_server_pass.sh
  67. 4 4
      lgsm/functions/command_update_linuxgsm.sh
  68. 5 5
      lgsm/functions/command_validate.sh
  69. 10 10
      lgsm/functions/command_wipe.sh
  70. 1 1
      lgsm/functions/compress_ut99_maps.sh
  71. 2 2
      lgsm/functions/core_dl.sh
  72. 3 0
      lgsm/functions/core_exit.sh
  73. 31 10
      lgsm/functions/core_functions.sh
  74. 9 7
      lgsm/functions/core_getopt.sh
  75. 9 5
      lgsm/functions/fix.sh
  76. 4 4
      lgsm/functions/fix_kf.sh
  77. 1 1
      lgsm/functions/fix_kf2.sh
  78. 1 1
      lgsm/functions/fix_mta.sh
  79. 5 5
      lgsm/functions/fix_ro.sh
  80. 10 0
      lgsm/functions/fix_rw.sh
  81. 1 1
      lgsm/functions/fix_ut.sh
  82. 4 4
      lgsm/functions/fix_ut2k4.sh
  83. 20 0
      lgsm/functions/fix_ut3.sh
  84. 85 9
      lgsm/functions/info_config.sh
  85. 9 2
      lgsm/functions/info_distro.sh
  86. 8 1
      lgsm/functions/info_glibc.sh
  87. 76 15
      lgsm/functions/info_messages.sh
  88. 13 1
      lgsm/functions/info_parms.sh
  89. 20 11
      lgsm/functions/install_config.sh
  90. 1 1
      lgsm/functions/install_dst_token.sh
  91. 2 2
      lgsm/functions/install_factorio_save.sh
  92. 2 2
      lgsm/functions/install_gslt.sh
  93. 3 3
      lgsm/functions/install_logs.sh
  94. 1 1
      lgsm/functions/install_minecraft_eula.sh
  95. 2 3
      lgsm/functions/install_server_dir.sh
  96. 5 13
      lgsm/functions/install_server_files.sh
  97. 2 2
      lgsm/functions/install_squad_license.sh
  98. 1 1
      lgsm/functions/install_steamcmd.sh
  99. 6 6
      lgsm/functions/install_ts3db.sh
  100. 1 1
      lgsm/functions/install_unreal_tournament_eula.sh

+ 15 - 0
.github/request-info.yml

@@ -0,0 +1,15 @@
+# Configuration for request-info - https://github.com/behaviorbot/request-info
+
+# *Required* Comment to reply with
+requestInfoReplyComment: >
+  We require more information for this issue.
+  https://linuxgsm.com/support/#guide
+
+# *OPTIONAL* default titles to check against for lack of descriptiveness
+# MUST BE ALL LOWERCASE
+#requestInfoDefaultTitles:
+#  - update readme.md
+#  - updates
+
+# *OPTIONAL* Label to be added to Issues and Pull Requests with insufficient information given
+requestInfoLabelToAdd: Status: needs more info

+ 15 - 0
.github/support.yml

@@ -0,0 +1,15 @@
+# Configuration for support-requests - https://github.com/dessant/support-requests
+
+# Label used to mark issues as support requests
+supportLabel: Type: support
+# Comment to post on issues marked as support requests. Add a link
+# to a support page, or set to `false` to disable
+supportComment: >
+  We use the issue tracker exclusively for bug reports and feature requests.
+  However, this issue appears to be a support request. Please use our
+  support channels to get help with the project.
+  https://linuxgsm.com/support/
+# Whether to close issues marked as support requests
+close: true
+# Whether to lock issues marked as support requests
+lock: false

+ 21 - 0
.github/welcome.yml

@@ -0,0 +1,21 @@
+# Configuration for welcome - https://github.com/behaviorbot/welcome
+
+# Configuration for new-issue-welcome - https://github.com/behaviorbot/new-issue-welcome
+
+# Comment to be posted to on first time issues
+newIssueWelcomeComment: >
+  Thanks for opening your first issue. Be sure to follow the issue template! and guide for posting. https://linuxgsm.com/support/#guide
+
+# Configuration for new-pr-welcome - https://github.com/behaviorbot/new-pr-welcome
+
+# Comment to be posted to on PRs from first time contributors in your repository
+newPRWelcomeComment: >
+  Thanks for opening this pull request! Please check out our contributing guidelines.
+
+# Configuration for first-pr-merge - https://github.com/behaviorbot/first-pr-merge
+
+# Comment to be posted to on pull requests merged by a first time user
+firstPRMergeComment: >
+  Congrats on merging your first pull request! Thank you for supporting LinuxGSM!
+
+# It is recommend to include as many gifs and emojis as possible

+ 2 - 0
.travis.yml

@@ -36,6 +36,8 @@ jobs:
   include:
     - stage: jobs
       script: bash tests/tests_jc2server.sh
+    - # stage name not required
+      script: bash tests/tests_fctrserver.sh
     - # stage name not required
       script: bash tests/tests_ts3server.sh
     - # stage name not required

+ 1 - 1
CONTRIBUTING.md

@@ -36,4 +36,4 @@ This will help us in understanding your code and determining where problems may
 Start reading our code and you'll get the hang of it. Explore how functions are organized and you'll see how we strive for readable code.
 
 Please give the following document a read and adjust your code according to its specifications.
-[Syntax & Coding Conventions](https://github.com/GameServerManagers/LinuxGSM/wiki/Syntax-&-Conventions)
+[Syntax & Coding Conventions](https://github.com/GameServerManagers/LinuxGSM/wiki/Syntax-and-Conventions)

+ 13 - 4
ISSUE_TEMPLATE.md

@@ -1,8 +1,17 @@
 Please select the "Preview" tab above to view this message correctly.
 
-Please note that this is an issue tracker for **LinuxGSM** related bugs and feature requests and **not** for the games themselves.
+Follow **[this guide](https://linuxgsm.com/support/#guide)** to make sure you post the correct info.
+For general support visit the **[steam group](https://linuxgsm.com/steam)**
 
-**Therefore personal server issues on GitHub will be closed without a kiss.**
+GitHub is **ONLY** for:
+* LinuxGSM bugs
+* feature suggestions
+* code contributions
 
-Please follow **[this article](https://github.com/GameServerManagers/LinuxGSM/wiki/Support)** for optimal assistance
-and do not forget to remove this text before opening the issue.
+GitHub is **NOT** for:
+* General support
+* Specific game server issues (e.g CS:GO, TF2)
+* Dedicated server issues (e.g Ubuntu, CentOS)
+* Anything not directly related to LinuxGSM development
+
+**Any general support issues on GitHub will be closed.**

Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
README.md


BIN
images/icons/centos-icon-32.png


BIN
images/icons/debian-icon-32.png


BIN
images/icons/ubuntu-icon-32.png


+ 0 - 3
images/logo/README.md

@@ -1,3 +0,0 @@
-# LinuxGSM - Official Logos
-For Reference the original design can be found here.
-http://twolofbees.com/artwork.php?iid=870

BIN
images/logo/apple-touch-icon-precomposed.png


BIN
images/logo/assets/lgsm-font-pt_sans.zip


BIN
images/logo/assets/lgsm-font-source_code_pro.zip


+ 0 - 238
images/logo/assets/svg/linuxgsm_black_gradiant_vector.svg

@@ -1,238 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="550.72363"
-   height="829.10431"
-   id="svg4312"
-   version="1.1"
-   inkscape:version="0.92.1 r15371"
-   sodipodi:docname="lgsm_vecto_s.svg">
-  <title
-     id="title5291">Stycil Tux</title>
-  <defs
-     id="defs4314">
-    <linearGradient
-       id="linearGradient3910-6-0-8-7-7-8">
-      <stop
-         style="stop-color:#000000;stop-opacity:1;"
-         offset="0"
-         id="stop3912-5-9-3-8-7-4" />
-      <stop
-         style="stop-color:#4c4c4c;stop-opacity:1;"
-         offset="1"
-         id="stop3914-0-1-3-0-6-9" />
-    </linearGradient>
-    <linearGradient
-       y2="497.71365"
-       x2="140.00095"
-       y1="230.00362"
-       x1="140.00095"
-       gradientTransform="matrix(3.0012867,0,0,3.0012867,-152.31552,-675.94661)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient4970"
-       xlink:href="#linearGradient3910-6-0-8-7-7-8"
-       inkscape:collect="always" />
-    <linearGradient
-       id="linearGradient3910-6-0-8-7-81">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop3912-5-9-3-8-5" />
-      <stop
-         style="stop-color:#a6a6a6;stop-opacity:1;"
-         offset="1"
-         id="stop3914-0-1-3-0-64" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4565-3">
-      <stop
-         style="stop-color:#939393;stop-opacity:1;"
-         offset="0"
-         id="stop4567-1" />
-      <stop
-         style="stop-color:#000000;stop-opacity:1;"
-         offset="1"
-         id="stop4569-9" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4617-7">
-      <stop
-         id="stop4619-9"
-         offset="0"
-         style="stop-color:#ffffff;stop-opacity:0;" />
-      <stop
-         id="stop4621-5"
-         offset="1"
-         style="stop-color:#a6a6a6;stop-opacity:0.5" />
-    </linearGradient>
-    <clipPath
-       clipPathUnits="userSpaceOnUse"
-       id="clipPath4719-2">
-      <rect
-         style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:15;marker:none;enable-background:accumulate"
-         id="rect4721-4"
-         width="1352.3417"
-         height="1135.7903"
-         x="-490.55533"
-         y="-358.505" />
-    </clipPath>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3910-6-0-8-7-7-8"
-       id="linearGradient5197"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(3.0012867,0,0,3.0012867,-152.31552,-675.94661)"
-       x1="140.00095"
-       y1="230.00362"
-       x2="140.00095"
-       y2="497.71365" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3910-6-0-8-7-7-8"
-       id="linearGradient5427"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(3.0012867,0,0,3.0012867,-152.31552,-675.94661)"
-       x1="140.00095"
-       y1="230.00362"
-       x2="140.00095"
-       y2="497.71365" />
-  </defs>
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="0.25"
-     inkscape:cx="89.228893"
-     inkscape:cy="462.02473"
-     inkscape:document-units="px"
-     inkscape:current-layer="g6064"
-     showgrid="false"
-     fit-margin-top="0"
-     fit-margin-left="0"
-     fit-margin-right="0"
-     fit-margin-bottom="0"
-     inkscape:window-width="1920"
-     inkscape:window-height="1017"
-     inkscape:window-x="-8"
-     inkscape:window-y="-8"
-     inkscape:window-maximized="1" />
-  <metadata
-     id="metadata4317">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title>Stycil Tux</dc:title>
-        <dc:creator>
-          <cc:Agent>
-            <dc:title>Cheeseness (Josh Bush)</dc:title>
-          </cc:Agent>
-        </dc:creator>
-        <dc:subject>
-          <rdf:Bag>
-            <rdf:li>tux linux icon</rdf:li>
-          </rdf:Bag>
-        </dc:subject>
-        <dc:description>A stylised stencil (a &quot;stycil&quot; - isn't that catchy) inspired by Larry Ewing's Tux illustration.
-http://en.wikipedia.org/wiki/Tux
-
-You're under no obligation to do so, but if you do something with this, drop me a line - I'd love to hear about it.
-cheese@twolofbees.com</dc:description>
-        <dc:date>2012-01-02</dc:date>
-        <cc:license
-           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
-        <dc:source>http://twolofbees.com/uploads/2012/stycil_tux.svg</dc:source>
-        <dc:relation>http://twolofbees.com/artwork.php?iid=870</dc:relation>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     id="g6064"
-     transform="translate(56.568542)"
-     style="display:inline">
-    <g
-       transform="translate(-756.17483,-402.59665)"
-       id="g5961-3"
-       style="display:inline">
-      <g
-         transform="translate(-452.34937,725.009)"
-         id="g5391-8-7">
-        <path
-           sodipodi:nodetypes="ccccc"
-           inkscape:connector-curvature="0"
-           id="path5199-1-3-9"
-           d="m 1295.2947,213.49225 v 51.44487 h 265.7241 v -51.44487 z"
-           style="fill:#000000;stroke:none;stroke-width:0.37795275;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
-        <path
-           sodipodi:nodetypes="ccccc"
-           inkscape:connector-curvature="0"
-           id="path5199-9-5-2"
-           d="m 1295.2947,277.56671 v 51.44487 h 265.7241 v -51.44487 z"
-           style="fill:#000000;stroke:none;stroke-width:0.37795275;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
-        <path
-           sodipodi:nodetypes="ccccc"
-           inkscape:connector-curvature="0"
-           id="path5199-8-9-8"
-           d="m 1295.2947,341.64115 v 51.44487 h 265.7241 v -51.44487 z"
-           style="fill:#000000;stroke:none;stroke-width:0.37795275;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
-        <g
-           style="fill:#000000"
-           transform="translate(-0.90575)"
-           id="g5258-9-9">
-          <path
-             inkscape:connector-curvature="0"
-             d="m 1424.625,162.97931 a 4.75,4 0 0 1 -4.75,4 4.75,4 0 0 1 -4.75,-4 4.75,4 0 0 1 4.75,-4 4.75,4 0 0 1 4.75,4 z m 18.375,-0.25 a 4.75,4 0 0 1 -4.75,4 4.75,4 0 0 1 -4.75,-4 4.75,4 0 0 1 4.75,-4 4.75,4 0 0 1 4.75,4 z m -146.7996,-13.31157 v 51.44487 h 265.7241 v -51.44487 z"
-             style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.37795275;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-             id="path5239-0-4-2" />
-        </g>
-      </g>
-      <path
-         style="fill:#000000;stroke:none;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-         d="m 912.26148,854.87423 v 7.27539 c 0,2.79634 4.1201,7.15235 7.0974,7.15235 h 57.0982 57.09622 c 2.9773,0 7.0974,-4.35601 7.0974,-7.15235 v -7.27539 h -64.19362 z"
-         id="path5429-1-9"
-         inkscape:connector-curvature="0" />
-      <path
-         inkscape:connector-curvature="0"
-         style="fill:#000000;stroke:none;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-         d="m 969.04908,749.4172 c -1.2404,0 -6.5507,5.41807 -6.5507,6.21875 v 4.91993 h 0.9531 c 0,43.5553 3.7609,25.12079 3.3398,62.125 0,0.82719 4.4526,3.88671 5.4356,3.88671 v 8.39649 h -1.125 v 1.0625 h -3.2266 v 0.5957 h -48.9883 c -2.8742,0 -6.9863,4.8837 -6.9863,7.15234 v 7.2754 h 128.75002 v -7.2754 c 0,-2.79633 -4.1361,-7.15234 -7.125,-7.15234 h -8.3535 v -0.79492 h -2.166 v -3.18164 h -1.1485 v -1.28125 h -8.9726 -8.9707 v 1.28125 h -1.1485 v 3.18164 h -2.166 v 0.79492 h -16.46682 v -0.5957 h -3.2246 v -1.0625 h -1.1269 v -8.39649 c 0.983,0 5.4355,-3.05952 5.4355,-3.88671 -0.4211,-37.00421 3.3399,-18.5697 3.3398,-62.125 h 0.9532 v -4.91993 c 0,-0.80068 -5.3104,-6.21875 -6.5508,-6.21875 h -6.9551 z"
-         id="path5429-3-7-4" />
-      <path
-         style="fill:none;stroke:#ff00ff;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-         d="m 912.26148,851.05049 v -7.27539 c 0,-2.79634 4.1201,-7.15235 7.0974,-7.15235 h 57.0982 57.09622 c 2.9773,0 7.0974,4.35601 7.0974,7.15235 v 7.27539 h -64.19362 z"
-         id="path5429-7-77-6"
-         inkscape:connector-curvature="0" />
-    </g>
-    <g
-       transform="translate(-55.729306)"
-       id="g5425"
-       style="display:inline">
-      <path
-         style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#f6bd0e;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:16;marker:none;enable-background:accumulate"
-         d="m 116.05923,577.93526 c -3.48,0.20109 -7.3256,1.1375 -11.63,2.90735 -27.54822,11.32986 -15.44643,35.19849 -27.48069,50.27156 -12.03367,15.07396 -36.19673,7.81324 -43.79988,38.64156 -7.60286,30.82892 109.26727,182.19131 172.10487,156.34843 62.838,-25.84288 39.4726,-215.66466 12.3803,-232.22455 -27.0917,-16.55961 -39.0863,5.6223 -58.2436,3.37644 -16.1637,-1.89502 -24.5385,-20.40725 -43.331,-19.32079 z m 316.5418,0 c -17.3826,0.30013 -25.7964,17.496 -41.3614,19.32079 -19.1572,2.24586 -31.1518,-19.93605 -58.2435,-3.37644 -27.0923,16.55989 -50.4576,206.38137 12.3803,232.22455 62.8376,25.84288 179.7077,-125.51951 172.1049,-156.34843 -7.6032,-30.82832 -31.6726,-23.5676 -43.7063,-38.64156 -12.0342,-15.07307 0.069,-38.9417 -27.4803,-50.27156 -5.1656,-2.12371 -9.6822,-2.97637 -13.6937,-2.90735 z"
-         id="path4372-7-9"
-         inkscape:connector-curvature="0"
-         sodipodi:nodetypes="ccccsssccssscccc"
-         inkscape:label="path4372-7-9" />
-      <path
-         style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:url(#linearGradient5427);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:16;marker:none;enable-background:accumulate"
-         d="M 275.31501,-1.7916665e-6 C 194.26645,-1.7916665e-6 146.68586,49.443198 137.72462,116.11228 128.76368,182.78135 143.19147,194.9981 120.74874,263.26927 98.30602,331.53923 -2.31211,448.5711 0.04059,556.5511 c 0.73262,33.61801 4.60398,62.7266 11.34877,88.1628 8.26915,-13.70117 20.521,-23.35722 29.45012,-27.48068 6.9708,-3.21799 10.34005,-4.76544 11.91151,-5.34589 0.2281,-1.72724 1.11168,-5.65953 2.71977,-13.41216 2.20895,-10.64736 10.67498,-27.3186 25.13578,-38.2664 -0.14707,-3.31673 -0.30674,-6.59923 -0.37516,-10.0354 -1.67022,-83.75241 84.89138,-174.48761 100.82462,-227.44141 15.93263,-52.952 9.00175,-58.40504 11.62998,-71.56178 2.62793,-13.15674 12.77468,-28.48221 27.38675,-40.70495 1.39198,-1.1651 2.74677,-1.67532 4.12676,-1.68823 13.32151,-0.12605 26.65263,48.37144 52.42857,48.39576 25.77596,0.03 39.1848,-59.11995 54.02317,-46.70753 14.61207,12.22304 24.75882,27.54821 27.38674,40.70495 2.62823,13.15674 -4.30325,18.60978 11.62999,71.56178 15.93322,52.9532 102.40085,143.6887 100.73065,227.44141 -0.069,3.40406 -0.2311,6.65445 -0.3751,9.94176 14.525,10.94599 23.0156,27.68686 25.2294,38.36004 1.6081,7.75263 2.492,11.68492 2.7201,13.41216 1.5666,0.57954 4.95,2.21674 11.9112,5.43983 8.9321,4.13577 21.1104,13.7738 29.3564,27.48068 6.7629,-25.46262 10.7089,-54.59011 11.4425,-88.25674 2.3527,-107.98 -98.3591,-225.01217 -120.80184,-293.28183 C 407.43855,194.9981 421.95998,182.78135 412.99903,116.11228 404.03809,49.443198 356.36355,-1.7916666e-6 275.31501,-1.7916665e-6 Z M 271.93856,763.54594 c -1.37309,8.8712 -3.21648,17.57674 -5.62741,25.98004 -3.92959,13.69607 -9.66505,27.42155 -18.19531,39.11067 8.8406,0.54803 17.90178,0.62006 27.19917,0.18608 9.29738,0.43308 18.35556,0.36075 27.19916,-0.18608 -8.53027,-11.68912 -14.26572,-25.4146 -18.1953,-39.11067 -2.41093,-8.4033 -4.25433,-17.10884 -5.62741,-25.98004 -1.12519,0.03 -2.24077,0.093 -3.37645,0.093 -1.13569,0 -2.25127,-0.072 -3.37645,-0.093 z"
-         id="path4372-7-91"
-         inkscape:connector-curvature="0"
-         sodipodi:nodetypes="ssssccccccsccccscsccccccsssscscccscsc" />
-    </g>
-  </g>
-</svg>

+ 0 - 304
images/logo/assets/svg/linuxgsm_black_gradiant_vector_full.svg

@@ -1,304 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="1710.7236"
-   height="830.10431"
-   id="svg4312"
-   version="1.1"
-   inkscape:version="0.92.1 r15371"
-   sodipodi:docname="linuxgsm_black_gradiant_vector_full.svg"
-   inkscape:export-filename="C:\Users\me\Google Drive\Projects\Linux Game Server Manager\media\logos\master rasta\linuxgsm_black_gradiant_vector_full.png"
-   inkscape:export-xdpi="84.68"
-   inkscape:export-ydpi="84.68">
-  <title
-     id="title5291">Stycil Tux</title>
-  <defs
-     id="defs4314">
-    <linearGradient
-       id="linearGradient3910-6-0-8-7-7-8">
-      <stop
-         style="stop-color:#000000;stop-opacity:1;"
-         offset="0"
-         id="stop3912-5-9-3-8-7-4" />
-      <stop
-         style="stop-color:#4c4c4c;stop-opacity:1;"
-         offset="1"
-         id="stop3914-0-1-3-0-6-9" />
-    </linearGradient>
-    <linearGradient
-       y2="497.71365"
-       x2="140.00095"
-       y1="230.00362"
-       x1="140.00095"
-       gradientTransform="matrix(3.0012867,0,0,3.0012867,-152.31552,-675.94661)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient4970"
-       xlink:href="#linearGradient3910-6-0-8-7-7-8"
-       inkscape:collect="always" />
-    <linearGradient
-       id="linearGradient3910-6-0-8-7-81">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop3912-5-9-3-8-5" />
-      <stop
-         style="stop-color:#a6a6a6;stop-opacity:1;"
-         offset="1"
-         id="stop3914-0-1-3-0-64" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4565-3">
-      <stop
-         style="stop-color:#939393;stop-opacity:1;"
-         offset="0"
-         id="stop4567-1" />
-      <stop
-         style="stop-color:#000000;stop-opacity:1;"
-         offset="1"
-         id="stop4569-9" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4617-7">
-      <stop
-         id="stop4619-9"
-         offset="0"
-         style="stop-color:#ffffff;stop-opacity:0;" />
-      <stop
-         id="stop4621-5"
-         offset="1"
-         style="stop-color:#a6a6a6;stop-opacity:0.5" />
-    </linearGradient>
-    <clipPath
-       clipPathUnits="userSpaceOnUse"
-       id="clipPath4719-2">
-      <rect
-         style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:15;marker:none;enable-background:accumulate"
-         id="rect4721-4"
-         width="1352.3417"
-         height="1135.7903"
-         x="-490.55533"
-         y="-358.505" />
-    </clipPath>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3910-6-0-8-7-7-8"
-       id="linearGradient5197"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(3.0012867,0,0,3.0012867,-152.31552,-675.94661)"
-       x1="140.00095"
-       y1="230.00362"
-       x2="140.00095"
-       y2="497.71365" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3910-6-0-8-7-7-8"
-       id="linearGradient5427"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(3.0012867,0,0,3.0012867,-152.31552,-675.94661)"
-       x1="140.00095"
-       y1="230.00362"
-       x2="140.00095"
-       y2="497.71365" />
-  </defs>
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="1"
-     inkscape:cx="1228.4325"
-     inkscape:cy="395.54805"
-     inkscape:document-units="px"
-     inkscape:current-layer="svg4312"
-     showgrid="false"
-     fit-margin-top="0"
-     fit-margin-left="0"
-     fit-margin-right="0"
-     fit-margin-bottom="0"
-     inkscape:window-width="1920"
-     inkscape:window-height="1017"
-     inkscape:window-x="-8"
-     inkscape:window-y="-8"
-     inkscape:window-maximized="1"
-     inkscape:pagecheckerboard="false" />
-  <metadata
-     id="metadata4317">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title>Stycil Tux</dc:title>
-        <dc:creator>
-          <cc:Agent>
-            <dc:title>Cheeseness (Josh Bush)</dc:title>
-          </cc:Agent>
-        </dc:creator>
-        <dc:subject>
-          <rdf:Bag>
-            <rdf:li>tux linux icon</rdf:li>
-          </rdf:Bag>
-        </dc:subject>
-        <dc:description>A stylised stencil (a &quot;stycil&quot; - isn't that catchy) inspired by Larry Ewing's Tux illustration.
-http://en.wikipedia.org/wiki/Tux
-
-You're under no obligation to do so, but if you do something with this, drop me a line - I'd love to hear about it.
-cheese@twolofbees.com</dc:description>
-        <dc:date>2012-01-02</dc:date>
-        <cc:license
-           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
-        <dc:source>http://twolofbees.com/uploads/2012/stycil_tux.svg</dc:source>
-        <dc:relation>http://twolofbees.com/artwork.php?iid=870</dc:relation>
-      </cc:Work>
-      <cc:License
-         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Reproduction" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Distribution" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
-      </cc:License>
-    </rdf:RDF>
-  </metadata>
-  <g
-     inkscape:groupmode="layer"
-     id="layer1"
-     inkscape:label="Layer 1" />
-  <g
-     id="g6064"
-     transform="translate(56.568542,1.0001456)"
-     style="display:inline">
-    <g
-       transform="translate(-756.17483,-402.59665)"
-       id="g5961-3"
-       style="display:inline">
-      <g
-         transform="translate(-452.34937,725.009)"
-         id="g5391-8-7">
-        <path
-           sodipodi:nodetypes="ccccc"
-           inkscape:connector-curvature="0"
-           id="path5199-1-3-9"
-           d="m 1295.2947,213.49225 v 51.44487 h 265.7241 v -51.44487 z"
-           style="fill:#000000;stroke:none;stroke-width:0.37795275;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
-        <path
-           sodipodi:nodetypes="ccccc"
-           inkscape:connector-curvature="0"
-           id="path5199-9-5-2"
-           d="m 1295.2947,277.56671 v 51.44487 h 265.7241 v -51.44487 z"
-           style="fill:#000000;stroke:none;stroke-width:0.37795275;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
-        <path
-           sodipodi:nodetypes="ccccc"
-           inkscape:connector-curvature="0"
-           id="path5199-8-9-8"
-           d="m 1295.2947,341.64115 v 51.44487 h 265.7241 v -51.44487 z"
-           style="fill:#000000;stroke:none;stroke-width:0.37795275;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
-        <g
-           style="fill:#000000"
-           transform="translate(-0.90575)"
-           id="g5258-9-9">
-          <path
-             inkscape:connector-curvature="0"
-             d="m 1424.625,162.97931 a 4.75,4 0 0 1 -4.75,4 4.75,4 0 0 1 -4.75,-4 4.75,4 0 0 1 4.75,-4 4.75,4 0 0 1 4.75,4 z m 18.375,-0.25 a 4.75,4 0 0 1 -4.75,4 4.75,4 0 0 1 -4.75,-4 4.75,4 0 0 1 4.75,-4 4.75,4 0 0 1 4.75,4 z m -146.7996,-13.31157 v 51.44487 h 265.7241 v -51.44487 z"
-             style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.37795275;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-             id="path5239-0-4-2" />
-        </g>
-      </g>
-      <path
-         style="fill:#000000;stroke:none;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-         d="m 912.26148,854.87423 v 7.27539 c 0,2.79634 4.1201,7.15235 7.0974,7.15235 h 57.0982 57.09622 c 2.9773,0 7.0974,-4.35601 7.0974,-7.15235 v -7.27539 h -64.19362 z"
-         id="path5429-1-9"
-         inkscape:connector-curvature="0" />
-      <path
-         inkscape:connector-curvature="0"
-         style="fill:#000000;stroke:none;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-         d="m 969.04908,749.4172 c -1.2404,0 -6.5507,5.41807 -6.5507,6.21875 v 4.91993 h 0.9531 c 0,43.5553 3.7609,25.12079 3.3398,62.125 0,0.82719 4.4526,3.88671 5.4356,3.88671 v 8.39649 h -1.125 v 1.0625 h -3.2266 v 0.5957 h -48.9883 c -2.8742,0 -6.9863,4.8837 -6.9863,7.15234 v 7.2754 h 128.75002 v -7.2754 c 0,-2.79633 -4.1361,-7.15234 -7.125,-7.15234 h -8.3535 v -0.79492 h -2.166 v -3.18164 h -1.1485 v -1.28125 h -8.9726 -8.9707 v 1.28125 h -1.1485 v 3.18164 h -2.166 v 0.79492 h -16.46682 v -0.5957 h -3.2246 v -1.0625 h -1.1269 v -8.39649 c 0.983,0 5.4355,-3.05952 5.4355,-3.88671 -0.4211,-37.00421 3.3399,-18.5697 3.3398,-62.125 h 0.9532 v -4.91993 c 0,-0.80068 -5.3104,-6.21875 -6.5508,-6.21875 h -6.9551 z"
-         id="path5429-3-7-4" />
-      <path
-         style="fill:none;stroke:#ff00ff;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-         d="m 912.26148,851.05049 v -7.27539 c 0,-2.79634 4.1201,-7.15235 7.0974,-7.15235 h 57.0982 57.09622 c 2.9773,0 7.0974,4.35601 7.0974,7.15235 v 7.27539 h -64.19362 z"
-         id="path5429-7-77-6"
-         inkscape:connector-curvature="0" />
-    </g>
-    <g
-       transform="translate(-55.729306)"
-       id="g5425"
-       style="display:inline">
-      <path
-         style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#f6bd0e;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:16;marker:none;enable-background:accumulate"
-         d="m 116.05923,577.93526 c -3.48,0.20109 -7.3256,1.1375 -11.63,2.90735 -27.54822,11.32986 -15.44643,35.19849 -27.48069,50.27156 -12.03367,15.07396 -36.19673,7.81324 -43.79988,38.64156 -7.60286,30.82892 109.26727,182.19131 172.10487,156.34843 62.838,-25.84288 39.4726,-215.66466 12.3803,-232.22455 -27.0917,-16.55961 -39.0863,5.6223 -58.2436,3.37644 -16.1637,-1.89502 -24.5385,-20.40725 -43.331,-19.32079 z m 316.5418,0 c -17.3826,0.30013 -25.7964,17.496 -41.3614,19.32079 -19.1572,2.24586 -31.1518,-19.93605 -58.2435,-3.37644 -27.0923,16.55989 -50.4576,206.38137 12.3803,232.22455 62.8376,25.84288 179.7077,-125.51951 172.1049,-156.34843 -7.6032,-30.82832 -31.6726,-23.5676 -43.7063,-38.64156 -12.0342,-15.07307 0.069,-38.9417 -27.4803,-50.27156 -5.1656,-2.12371 -9.6822,-2.97637 -13.6937,-2.90735 z"
-         id="path4372-7-9"
-         inkscape:connector-curvature="0"
-         sodipodi:nodetypes="ccccsssccssscccc"
-         inkscape:label="path4372-7-9" />
-      <path
-         style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:url(#linearGradient5427);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:16;marker:none;enable-background:accumulate"
-         d="M 275.31501,-1.7916665e-6 C 194.26645,-1.7916665e-6 146.68586,49.443198 137.72462,116.11228 128.76368,182.78135 143.19147,194.9981 120.74874,263.26927 98.30602,331.53923 -2.31211,448.5711 0.04059,556.5511 c 0.73262,33.61801 4.60398,62.7266 11.34877,88.1628 8.26915,-13.70117 20.521,-23.35722 29.45012,-27.48068 6.9708,-3.21799 10.34005,-4.76544 11.91151,-5.34589 0.2281,-1.72724 1.11168,-5.65953 2.71977,-13.41216 2.20895,-10.64736 10.67498,-27.3186 25.13578,-38.2664 -0.14707,-3.31673 -0.30674,-6.59923 -0.37516,-10.0354 -1.67022,-83.75241 84.89138,-174.48761 100.82462,-227.44141 15.93263,-52.952 9.00175,-58.40504 11.62998,-71.56178 2.62793,-13.15674 12.77468,-28.48221 27.38675,-40.70495 1.39198,-1.1651 2.74677,-1.67532 4.12676,-1.68823 13.32151,-0.12605 26.65263,48.37144 52.42857,48.39576 25.77596,0.03 39.1848,-59.11995 54.02317,-46.70753 14.61207,12.22304 24.75882,27.54821 27.38674,40.70495 2.62823,13.15674 -4.30325,18.60978 11.62999,71.56178 15.93322,52.9532 102.40085,143.6887 100.73065,227.44141 -0.069,3.40406 -0.2311,6.65445 -0.3751,9.94176 14.525,10.94599 23.0156,27.68686 25.2294,38.36004 1.6081,7.75263 2.492,11.68492 2.7201,13.41216 1.5666,0.57954 4.95,2.21674 11.9112,5.43983 8.9321,4.13577 21.1104,13.7738 29.3564,27.48068 6.7629,-25.46262 10.7089,-54.59011 11.4425,-88.25674 2.3527,-107.98 -98.3591,-225.01217 -120.80184,-293.28183 C 407.43855,194.9981 421.95998,182.78135 412.99903,116.11228 404.03809,49.443198 356.36355,-1.7916666e-6 275.31501,-1.7916665e-6 Z M 271.93856,763.54594 c -1.37309,8.8712 -3.21648,17.57674 -5.62741,25.98004 -3.92959,13.69607 -9.66505,27.42155 -18.19531,39.11067 8.8406,0.54803 17.90178,0.62006 27.19917,0.18608 9.29738,0.43308 18.35556,0.36075 27.19916,-0.18608 -8.53027,-11.68912 -14.26572,-25.4146 -18.1953,-39.11067 -2.41093,-8.4033 -4.25433,-17.10884 -5.62741,-25.98004 -1.12519,0.03 -2.24077,0.093 -3.37645,0.093 -1.13569,0 -2.25127,-0.072 -3.37645,-0.093 z"
-         id="path4372-7-91"
-         inkscape:connector-curvature="0"
-         sodipodi:nodetypes="ssssccccccsccccscsccccccsssscscccscsc" />
-    </g>
-    <flowRoot
-       xml:space="preserve"
-       id="flowRoot4513"
-       style="font-style:normal;font-weight:normal;font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none"
-       transform="translate(-56.568542,-1.8359376e-6)"><flowRegion
-         id="flowRegion4515"><rect
-           id="rect4517"
-           width="584"
-           height="560"
-           x="532"
-           y="65.104309" /></flowRegion><flowPara
-         id="flowPara4519" /></flowRoot>    <flowRoot
-       xml:space="preserve"
-       id="flowRoot4521"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:1.25;font-family:'PT Sans';-inkscape-font-specification:'PT Sans';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none"
-       transform="translate(-56.568542,-1.8359376e-6)"><flowRegion
-         id="flowRegion4523"
-         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'PT Sans';-inkscape-font-specification:'PT Sans'"><rect
-           id="rect4525"
-           width="476"
-           height="536"
-           x="548"
-           y="81.104309"
-           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'PT Sans';-inkscape-font-specification:'PT Sans'" /></flowRegion><flowPara
-         id="flowPara4527" /></flowRoot>    <text
-       xml:space="preserve"
-       style="font-style:normal;font-weight:normal;font-size:169.59358215px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:4.23983955"
-       x="429.06406"
-       y="220.41109"
-       id="text4531"
-       transform="scale(1.0093264,0.99075977)"
-       inkscape:export-filename="C:\Users\me\Google Drive\Projects\Linux Game Server Manager\media\logos\master rasta\text4531.png"
-       inkscape:export-xdpi="118.84"
-       inkscape:export-ydpi="118.84"><tspan
-         sodipodi:role="line"
-         id="tspan4529"
-         x="429.06406"
-         y="220.41109"
-         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:213.33334351px;font-family:'PT Sans';-inkscape-font-specification:'PT Sans';fill:#f6bd0e;fill-opacity:1;stroke-width:4.23983955">Linux</tspan><tspan
-         sodipodi:role="line"
-         x="429.06406"
-         y="487.07776"
-         id="tspan4535"
-         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:213.33334351px;font-family:'PT Sans';-inkscape-font-specification:'PT Sans';stroke-width:4.23983955"> Game Server</tspan><tspan
-         sodipodi:role="line"
-         x="429.06406"
-         y="753.74445"
-         id="tspan4537"
-         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:213.33334351px;font-family:'PT Sans';-inkscape-font-specification:'PT Sans';stroke-width:4.23983955">  Managers_</tspan></text>
-  </g>
-</svg>

+ 0 - 286
images/logo/assets/svg/linuxgsm_black_vector.svg

@@ -1,286 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="550.72363"
-   height="829.10431"
-   id="svg4312"
-   version="1.1"
-   inkscape:version="0.92.1 r15371"
-   sodipodi:docname="linuxgsm_black_vector.svg">
-  <title
-     id="title5291">Stycil Tux</title>
-  <defs
-     id="defs4314">
-    <linearGradient
-       id="linearGradient3910-6-0-8-7-7-8">
-      <stop
-         style="stop-color:#000000;stop-opacity:1;"
-         offset="0"
-         id="stop3912-5-9-3-8-7-4" />
-      <stop
-         style="stop-color:#4c4c4c;stop-opacity:1;"
-         offset="1"
-         id="stop3914-0-1-3-0-6-9" />
-    </linearGradient>
-    <linearGradient
-       y2="497.71365"
-       x2="140.00095"
-       y1="230.00362"
-       x1="140.00095"
-       gradientTransform="matrix(3.0012867,0,0,3.0012867,-152.31552,-675.94661)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient4970"
-       xlink:href="#linearGradient3910-6-0-8-7-7-8"
-       inkscape:collect="always" />
-    <linearGradient
-       id="linearGradient3910-6-0-8-7-81">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop3912-5-9-3-8-5" />
-      <stop
-         style="stop-color:#a6a6a6;stop-opacity:1;"
-         offset="1"
-         id="stop3914-0-1-3-0-64" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4565-3">
-      <stop
-         style="stop-color:#939393;stop-opacity:1;"
-         offset="0"
-         id="stop4567-1" />
-      <stop
-         style="stop-color:#000000;stop-opacity:1;"
-         offset="1"
-         id="stop4569-9" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4617-7">
-      <stop
-         id="stop4619-9"
-         offset="0"
-         style="stop-color:#ffffff;stop-opacity:0;" />
-      <stop
-         id="stop4621-5"
-         offset="1"
-         style="stop-color:#a6a6a6;stop-opacity:0.5" />
-    </linearGradient>
-    <clipPath
-       clipPathUnits="userSpaceOnUse"
-       id="clipPath4719-2">
-      <rect
-         style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:15;marker:none;enable-background:accumulate"
-         id="rect4721-4"
-         width="1352.3417"
-         height="1135.7903"
-         x="-490.55533"
-         y="-358.505" />
-    </clipPath>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3910-6-0-8-7-7-8"
-       id="linearGradient5197"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(3.0012867,0,0,3.0012867,-152.31552,-675.94661)"
-       x1="140.00095"
-       y1="230.00362"
-       x2="140.00095"
-       y2="497.71365" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3910-6-0-8-7-7-8"
-       id="linearGradient5427"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(3.0012867,0,0,3.0012867,-152.31552,-675.94661)"
-       x1="140.00095"
-       y1="230.00362"
-       x2="140.00095"
-       y2="497.71365" />
-  </defs>
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="1"
-     inkscape:cx="397.59441"
-     inkscape:cy="382.02473"
-     inkscape:document-units="px"
-     inkscape:current-layer="g6064"
-     showgrid="false"
-     fit-margin-top="0"
-     fit-margin-left="0"
-     fit-margin-right="0"
-     fit-margin-bottom="0"
-     inkscape:window-width="1920"
-     inkscape:window-height="1017"
-     inkscape:window-x="-8"
-     inkscape:window-y="-8"
-     inkscape:window-maximized="1" />
-  <metadata
-     id="metadata4317">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title>Stycil Tux</dc:title>
-        <dc:creator>
-          <cc:Agent>
-            <dc:title>Cheeseness (Josh Bush)</dc:title>
-          </cc:Agent>
-        </dc:creator>
-        <dc:subject>
-          <rdf:Bag>
-            <rdf:li>tux linux icon</rdf:li>
-          </rdf:Bag>
-        </dc:subject>
-        <dc:description>A stylised stencil (a &quot;stycil&quot; - isn't that catchy) inspired by Larry Ewing's Tux illustration.
-http://en.wikipedia.org/wiki/Tux
-
-You're under no obligation to do so, but if you do something with this, drop me a line - I'd love to hear about it.
-cheese@twolofbees.com</dc:description>
-        <dc:date>2012-01-02</dc:date>
-        <cc:license
-           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
-        <dc:source>http://twolofbees.com/uploads/2012/stycil_tux.svg</dc:source>
-        <dc:relation>http://twolofbees.com/artwork.php?iid=870</dc:relation>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     id="g6064"
-     transform="translate(56.568542)"
-     style="display:inline">
-    <g
-       transform="translate(-756.17483,-402.59665)"
-       id="g5961-3"
-       style="display:inline">
-      <g
-         transform="translate(-452.34937,725.009)"
-         id="g5391-8-7">
-        <path
-           sodipodi:nodetypes="ccccc"
-           inkscape:connector-curvature="0"
-           id="path5199-1-3-9"
-           d="m 1295.2947,213.49225 v 51.44487 h 265.7241 v -51.44487 z"
-           style="fill:#000000;stroke:none;stroke-width:0.37795275;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
-        <path
-           sodipodi:nodetypes="ccccc"
-           inkscape:connector-curvature="0"
-           id="path5199-9-5-2"
-           d="m 1295.2947,277.56671 v 51.44487 h 265.7241 v -51.44487 z"
-           style="fill:#000000;stroke:none;stroke-width:0.37795275;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
-        <path
-           sodipodi:nodetypes="ccccc"
-           inkscape:connector-curvature="0"
-           id="path5199-8-9-8"
-           d="m 1295.2947,341.64115 v 51.44487 h 265.7241 v -51.44487 z"
-           style="fill:#000000;stroke:none;stroke-width:0.37795275;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
-        <g
-           style="fill:#000000"
-           transform="translate(-0.90575)"
-           id="g5258-9-9">
-          <path
-             inkscape:connector-curvature="0"
-             d="m 1424.625,162.97931 a 4.75,4 0 0 1 -4.75,4 4.75,4 0 0 1 -4.75,-4 4.75,4 0 0 1 4.75,-4 4.75,4 0 0 1 4.75,4 z m 18.375,-0.25 a 4.75,4 0 0 1 -4.75,4 4.75,4 0 0 1 -4.75,-4 4.75,4 0 0 1 4.75,-4 4.75,4 0 0 1 4.75,4 z m -146.7996,-13.31157 v 51.44487 h 265.7241 v -51.44487 z"
-             style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.37795275;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-             id="path5239-0-4-2" />
-        </g>
-      </g>
-      <path
-         style="fill:#000000;stroke:none;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-         d="m 912.26148,854.87423 v 7.27539 c 0,2.79634 4.1201,7.15235 7.0974,7.15235 h 57.0982 57.09622 c 2.9773,0 7.0974,-4.35601 7.0974,-7.15235 v -7.27539 h -64.19362 z"
-         id="path5429-1-9"
-         inkscape:connector-curvature="0" />
-      <path
-         inkscape:connector-curvature="0"
-         style="fill:#000000;stroke:none;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-         d="m 969.04908,749.4172 c -1.2404,0 -6.5507,5.41807 -6.5507,6.21875 v 4.91993 h 0.9531 c 0,43.5553 3.7609,25.12079 3.3398,62.125 0,0.82719 4.4526,3.88671 5.4356,3.88671 v 8.39649 h -1.125 v 1.0625 h -3.2266 v 0.5957 h -48.9883 c -2.8742,0 -6.9863,4.8837 -6.9863,7.15234 v 7.2754 h 128.75002 v -7.2754 c 0,-2.79633 -4.1361,-7.15234 -7.125,-7.15234 h -8.3535 v -0.79492 h -2.166 v -3.18164 h -1.1485 v -1.28125 h -8.9726 -8.9707 v 1.28125 h -1.1485 v 3.18164 h -2.166 v 0.79492 h -16.46682 v -0.5957 h -3.2246 v -1.0625 h -1.1269 v -8.39649 c 0.983,0 5.4355,-3.05952 5.4355,-3.88671 -0.4211,-37.00421 3.3399,-18.5697 3.3398,-62.125 h 0.9532 v -4.91993 c 0,-0.80068 -5.3104,-6.21875 -6.5508,-6.21875 h -6.9551 z"
-         id="path5429-3-7-4" />
-      <path
-         style="fill:none;stroke:#ff00ff;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-         d="m 912.26148,851.05049 v -7.27539 c 0,-2.79634 4.1201,-7.15235 7.0974,-7.15235 h 57.0982 57.09622 c 2.9773,0 7.0974,4.35601 7.0974,7.15235 v 7.27539 h -64.19362 z"
-         id="path5429-7-77-6"
-         inkscape:connector-curvature="0" />
-    </g>
-    <g
-       transform="translate(-55.729306)"
-       id="g5425"
-       style="display:inline">
-      <path
-         style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#f6bd0e;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:16;marker:none;enable-background:accumulate"
-         d="m 116.05923,577.93526 c -3.48,0.20109 -7.3256,1.1375 -11.63,2.90735 -27.54822,11.32986 -15.44643,35.19849 -27.48069,50.27156 -12.03367,15.07396 -36.19673,7.81324 -43.79988,38.64156 -7.60286,30.82892 109.26727,182.19131 172.10487,156.34843 62.838,-25.84288 39.4726,-215.66466 12.3803,-232.22455 -27.0917,-16.55961 -39.0863,5.6223 -58.2436,3.37644 -16.1637,-1.89502 -24.5385,-20.40725 -43.331,-19.32079 z m 316.5418,0 c -17.3826,0.30013 -25.7964,17.496 -41.3614,19.32079 -19.1572,2.24586 -31.1518,-19.93605 -58.2435,-3.37644 -27.0923,16.55989 -50.4576,206.38137 12.3803,232.22455 62.8376,25.84288 179.7077,-125.51951 172.1049,-156.34843 -7.6032,-30.82832 -31.6726,-23.5676 -43.7063,-38.64156 -12.0342,-15.07307 0.069,-38.9417 -27.4803,-50.27156 -5.1656,-2.12371 -9.6822,-2.97637 -13.6937,-2.90735 z"
-         id="path4372-7-9"
-         inkscape:connector-curvature="0"
-         sodipodi:nodetypes="ccccsssccssscccc"
-         inkscape:label="path4372-7-9" />
-      <path
-         style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:url(#linearGradient5427);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:16;marker:none;enable-background:accumulate"
-         d="M 275.31501,-1.7916665e-6 C 194.26645,-1.7916665e-6 146.68586,49.443198 137.72462,116.11228 128.76368,182.78135 143.19147,194.9981 120.74874,263.26927 98.30602,331.53923 -2.31211,448.5711 0.04059,556.5511 c 0.73262,33.61801 4.60398,62.7266 11.34877,88.1628 8.26915,-13.70117 20.521,-23.35722 29.45012,-27.48068 6.9708,-3.21799 10.34005,-4.76544 11.91151,-5.34589 0.2281,-1.72724 1.11168,-5.65953 2.71977,-13.41216 2.20895,-10.64736 10.67498,-27.3186 25.13578,-38.2664 -0.14707,-3.31673 -0.30674,-6.59923 -0.37516,-10.0354 -1.67022,-83.75241 84.89138,-174.48761 100.82462,-227.44141 15.93263,-52.952 9.00175,-58.40504 11.62998,-71.56178 2.62793,-13.15674 12.77468,-28.48221 27.38675,-40.70495 1.39198,-1.1651 2.74677,-1.67532 4.12676,-1.68823 13.32151,-0.12605 26.65263,48.37144 52.42857,48.39576 25.77596,0.03 39.1848,-59.11995 54.02317,-46.70753 14.61207,12.22304 24.75882,27.54821 27.38674,40.70495 2.62823,13.15674 -4.30325,18.60978 11.62999,71.56178 15.93322,52.9532 102.40085,143.6887 100.73065,227.44141 -0.069,3.40406 -0.2311,6.65445 -0.3751,9.94176 14.525,10.94599 23.0156,27.68686 25.2294,38.36004 1.6081,7.75263 2.492,11.68492 2.7201,13.41216 1.5666,0.57954 4.95,2.21674 11.9112,5.43983 8.9321,4.13577 21.1104,13.7738 29.3564,27.48068 6.7629,-25.46262 10.7089,-54.59011 11.4425,-88.25674 2.3527,-107.98 -98.3591,-225.01217 -120.80184,-293.28183 C 407.43855,194.9981 421.95998,182.78135 412.99903,116.11228 404.03809,49.443198 356.36355,-1.7916666e-6 275.31501,-1.7916665e-6 Z M 271.93856,763.54594 c -1.37309,8.8712 -3.21648,17.57674 -5.62741,25.98004 -3.92959,13.69607 -9.66505,27.42155 -18.19531,39.11067 8.8406,0.54803 17.90178,0.62006 27.19917,0.18608 9.29738,0.43308 18.35556,0.36075 27.19916,-0.18608 -8.53027,-11.68912 -14.26572,-25.4146 -18.1953,-39.11067 -2.41093,-8.4033 -4.25433,-17.10884 -5.62741,-25.98004 -1.12519,0.03 -2.24077,0.093 -3.37645,0.093 -1.13569,0 -2.25127,-0.072 -3.37645,-0.093 z"
-         id="path4372-7-91"
-         inkscape:connector-curvature="0"
-         sodipodi:nodetypes="ssssccccccsccccscsccccccsssscscccscsc" />
-    </g>
-    <path
-       style="fill:#000000;fill-opacity:1"
-       d="m 114.59441,283.23565 c 0,-0.24417 1.59959,-4.40667 3.55464,-9.25 3.63491,-9.00495 9.23801,-27.28845 11.96125,-39.03081 3.90844,-16.85289 4.64856,-25.10578 5.49513,-61.27526 0.50046,-21.38213 1.516,-42.09154 2.45188,-50 1.57119,-13.27699 5.4476,-31.36537 8.08998,-37.750001 l 1.34507,-3.25 h 128.8934 128.8934 l 2.63985,8.75 c 6.08103,20.156101 7.61955,34.406361 8.6641,80.250001 0.89562,39.30731 1.86887,48.82949 7.0831,69.30099 2.80302,11.00486 8.63504,28.95882 11.55539,35.57344 1.30505,2.95594 2.37281,5.76844 2.37281,6.25 0,0.48538 -16.91415,0.87557 -37.95469,0.87557 h -37.95468 l -0.56349,-3.25 c -0.30992,-1.7875 -0.93391,-10.02932 -1.38663,-18.31515 -0.79328,-14.51864 -0.95643,-15.34226 -4.4972,-22.70384 -6.90636,-14.35891 -21.97739,-30.71166 -28.31639,-30.72455 -4.37845,-0.009 -7.44212,3.3144 -19.37708,21.01926 -14.2565,21.14873 -22.42203,27.97905 -31.92472,26.70447 -9.8998,-1.32784 -18.30259,-8.82427 -31.07877,-27.72648 -14.74352,-21.81289 -17.97303,-23.64117 -27.45345,-15.5418 -7.14,6.0999 -15.61506,17.44854 -20.1057,26.92283 -3.66096,7.72383 -3.75314,8.20992 -4.51711,23.82022 -0.42894,8.76451 -1.05551,16.80388 -1.39238,17.86526 -0.59088,1.86169 -1.95084,1.92978 -38.5451,1.92978 -20.86294,0 -37.93261,-0.19977 -37.93261,-0.44393 z"
-       id="path4513"
-       inkscape:connector-curvature="0"
-       transform="translate(-56.568542)" />
-    <path
-       style="fill:#000000;fill-opacity:1"
-       d="m 39.594409,421.1642 c 0,-2.46749 18.185161,-36.06364 43.051057,-79.5346 8.950557,-15.64751 19.753034,-35.20002 24.005494,-43.45002 l 7.73176,-15 h 38.10604 38.10604 l -2e-4,2.23249 c -1e-4,1.22787 -1.99431,10.07578 -4.43156,19.66203 -7.78392,30.6158 -10.11179,35.29497 -49.17014,98.83517 l -10.89849,17.72969 -43.250001,0.0203 c -23.7875,0.0112 -43.25,-0.21161 -43.25,-0.49507 z"
-       id="path4515"
-       inkscape:connector-curvature="0"
-       transform="translate(-56.568542)" />
-    <path
-       style="fill:#000000;fill-opacity:1"
-       d="M 1.6139312,543.92958 C 1.641425,537.2401 4.063405,519.97082 6.6187735,508.24388 11.235559,487.05683 20.217862,461.53331 32.507714,434.67958 l 6.178397,-13.5 43.454149,0.27069 c 23.89978,0.14889 43.45415,0.51009 43.45415,0.80269 0,0.29259 -2.7456,5.28856 -6.10133,11.10216 -23.740815,41.12952 -36.428347,75.98168 -38.526541,105.83092 l -0.66733,9.49354 H 40.946809 1.5944086 Z"
-       id="path4517"
-       inkscape:connector-curvature="0"
-       transform="translate(-56.568542)" />
-    <path
-       style="fill:#000000;fill-opacity:1"
-       d="M 12.11918,641.52282 C 7.434105,628.52087 1.5944086,582.80229 1.5944086,559.12511 v -10.44553 h 39.5000004 39.5 v 5.52174 c 0,5.37128 -0.152511,5.67425 -5.596954,11.11869 -10.385281,10.38528 -16.990895,22.73555 -20.01306,37.41768 l -1.754338,8.52283 -9.567824,4.6363 c -11.35871,5.50411 -20.095112,12.38399 -26.434177,20.81682 -2.839037,3.77675 -4.811755,5.63374 -5.108876,4.80918 z"
-       id="path4519"
-       inkscape:connector-curvature="0"
-       transform="translate(-56.568542)" />
-    <path
-       style="fill:#000000;fill-opacity:1"
-       d="m 254.16359,821.45812 c 7.52064,-12.19811 14.23801,-31.7349 18.14694,-52.77854 0.74974,-4.0362 1.14242,-4.53002 3.80989,-4.79125 l 2.97399,-0.29125 1.85186,9.79125 c 3.45673,18.27665 11.55543,39.66605 19.70443,52.04125 l 2.14011,3.25 h -26.53977 -26.53978 z"
-       id="path4521"
-       inkscape:connector-curvature="0"
-       transform="translate(-56.568542)" />
-    <path
-       style="fill:#000000;fill-opacity:1"
-       d="m 535.09441,636.96904 c -5.54021,-7.77645 -15.28282,-15.56204 -26.40806,-21.1034 l -9.40806,-4.68606 -2.11797,-9.5 c -3.40509,-15.27326 -11.54346,-29.68916 -21.63936,-38.33087 l -3.92655,-3.36099 v -10.77573 c 0,-13.74446 -2.22522,-28.68219 -6.46689,-43.4117 -3.47339,-12.06159 -9.76927,-28.70642 -14.06363,-37.18093 l -2.48152,-4.89705 41.9254,-0.27137 41.92541,-0.27136 5.08406,15.5 c 9.90205,30.18876 13.08225,48.71682 13.06685,76.12834 -0.0115,20.54191 -1.15712,36.33581 -3.98003,54.87166 -2.29557,15.07316 -6.0516,33.01825 -6.8971,32.95201 -0.3369,-0.0264 -2.41255,-2.57454 -4.61255,-5.66255 z"
-       id="path4523"
-       inkscape:connector-curvature="0"
-       transform="translate(-56.568542)" />
-    <path
-       style="fill:#000000;fill-opacity:1"
-       d="m 443.09441,452.10697 c -5.67275,-11.13765 -16.52406,-29.55199 -45.92151,-77.92739 -17.75407,-29.21548 -23.39832,-41.31692 -29.96695,-64.25 l -1.50374,-5.25 41.6961,0.007 41.6961,0.007 3.91592,7.24331 c 2.15375,3.98382 11.87827,21.19331 21.61004,38.24331 20.98319,36.76244 28.29962,50.14554 37.85218,69.23861 8.14156,16.27284 19.45527,42.26131 18.71857,42.99801 -0.27223,0.27223 -18.85536,0.71456 -41.29584,0.98295 l -40.80087,0.48797 z"
-       id="path4525"
-       inkscape:connector-curvature="0"
-       transform="translate(-56.568542)" />
-    <path
-       style="fill:#000000;fill-opacity:1"
-       d="m 364.20108,297.42958 c -0.87675,-3.9875 -1.87817,-8.7125 -2.22538,-10.5 l -0.63129,-3.25 h 37.04321 c 20.37377,0 37.64252,-0.21632 38.375,-0.48072 0.88636,-0.31994 2.98736,2.94106 6.28175,9.75 2.72247,5.6269 5.12247,10.56822 5.33333,10.98072 0.21086,0.4125 -18.28395,0.75 -41.09958,0.75 h -41.48295 z"
-       id="path4527"
-       inkscape:connector-curvature="0"
-       transform="translate(-56.568542)" />
-  </g>
-</svg>

+ 0 - 248
images/logo/assets/svg/linuxgsm_white_vector.svg

@@ -1,248 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="550.72363"
-   height="829.10431"
-   id="svg4312"
-   version="1.1"
-   inkscape:version="0.92.1 r15371"
-   sodipodi:docname="linuxgsm_logo_white.svg"
-   inkscape:export-filename="C:\Users\me\Desktop\lgsm media\linuxgsm_logo_white.png"
-   inkscape:export-xdpi="61.009998"
-   inkscape:export-ydpi="61.009998">
-  <title
-     id="title5291">Stycil Tux</title>
-  <defs
-     id="defs4314">
-    <linearGradient
-       id="linearGradient3910-6-0-8-7-7-8">
-      <stop
-         style="stop-color:#000000;stop-opacity:1;"
-         offset="0"
-         id="stop3912-5-9-3-8-7-4" />
-      <stop
-         style="stop-color:#4c4c4c;stop-opacity:1;"
-         offset="1"
-         id="stop3914-0-1-3-0-6-9" />
-    </linearGradient>
-    <linearGradient
-       y2="497.71365"
-       x2="140.00095"
-       y1="230.00362"
-       x1="140.00095"
-       gradientTransform="matrix(3.0012867,0,0,3.0012867,-152.31552,-675.94661)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient4970"
-       xlink:href="#linearGradient3910-6-0-8-7-7-8"
-       inkscape:collect="always" />
-    <linearGradient
-       id="linearGradient3910-6-0-8-7-81">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop3912-5-9-3-8-5" />
-      <stop
-         style="stop-color:#a6a6a6;stop-opacity:1;"
-         offset="1"
-         id="stop3914-0-1-3-0-64" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4565-3">
-      <stop
-         style="stop-color:#939393;stop-opacity:1;"
-         offset="0"
-         id="stop4567-1" />
-      <stop
-         style="stop-color:#000000;stop-opacity:1;"
-         offset="1"
-         id="stop4569-9" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4617-7">
-      <stop
-         id="stop4619-9"
-         offset="0"
-         style="stop-color:#ffffff;stop-opacity:0;" />
-      <stop
-         id="stop4621-5"
-         offset="1"
-         style="stop-color:#a6a6a6;stop-opacity:0.5" />
-    </linearGradient>
-    <clipPath
-       clipPathUnits="userSpaceOnUse"
-       id="clipPath4719-2">
-      <rect
-         style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:15;marker:none;enable-background:accumulate"
-         id="rect4721-4"
-         width="1352.3417"
-         height="1135.7903"
-         x="-490.55533"
-         y="-358.505" />
-    </clipPath>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3910-6-0-8-7-7-8"
-       id="linearGradient5197"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(3.0012867,0,0,3.0012867,-152.31552,-675.94661)"
-       x1="140.00095"
-       y1="230.00362"
-       x2="140.00095"
-       y2="497.71365" />
-  </defs>
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="1"
-     inkscape:cx="258.13863"
-     inkscape:cy="366.87337"
-     inkscape:document-units="px"
-     inkscape:current-layer="g6064"
-     showgrid="false"
-     fit-margin-top="0"
-     fit-margin-left="0"
-     fit-margin-right="0"
-     fit-margin-bottom="0"
-     inkscape:window-width="1920"
-     inkscape:window-height="1017"
-     inkscape:window-x="-8"
-     inkscape:window-y="-8"
-     inkscape:window-maximized="1"
-     inkscape:pagecheckerboard="true" />
-  <metadata
-     id="metadata4317">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title>Stycil Tux</dc:title>
-        <dc:creator>
-          <cc:Agent>
-            <dc:title>Cheeseness (Josh Bush)</dc:title>
-          </cc:Agent>
-        </dc:creator>
-        <dc:subject>
-          <rdf:Bag>
-            <rdf:li>tux linux icon</rdf:li>
-          </rdf:Bag>
-        </dc:subject>
-        <dc:description>A stylised stencil (a &quot;stycil&quot; - isn't that catchy) inspired by Larry Ewing's Tux illustration.
-http://en.wikipedia.org/wiki/Tux
-
-You're under no obligation to do so, but if you do something with this, drop me a line - I'd love to hear about it.
-cheese@twolofbees.com</dc:description>
-        <dc:date>2012-01-02</dc:date>
-        <cc:license
-           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
-        <dc:source>http://twolofbees.com/uploads/2012/stycil_tux.svg</dc:source>
-        <dc:relation>http://twolofbees.com/artwork.php?iid=870</dc:relation>
-      </cc:Work>
-      <cc:License
-         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Reproduction" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Distribution" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
-      </cc:License>
-    </rdf:RDF>
-  </metadata>
-  <g
-     id="g6064"
-     transform="translate(56.568542)"
-     style="display:inline">
-    <g
-       transform="translate(-756.17483,-402.59665)"
-       id="g5961-3"
-       style="display:inline;fill:#ababb2;fill-opacity:1">
-      <g
-         transform="translate(-452.34937,725.009)"
-         id="g5391-8-7"
-         style="fill:#ababb2;fill-opacity:1">
-        <path
-           sodipodi:nodetypes="ccccc"
-           inkscape:connector-curvature="0"
-           id="path5199-1-3-9"
-           d="m 1295.2947,213.49225 v 51.44487 h 265.7241 v -51.44487 z"
-           style="fill:#ababb2;stroke:none;stroke-width:0.37795275;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;fill-opacity:1" />
-        <path
-           sodipodi:nodetypes="ccccc"
-           inkscape:connector-curvature="0"
-           id="path5199-9-5-2"
-           d="m 1295.2947,277.56671 v 51.44487 h 265.7241 v -51.44487 z"
-           style="fill:#ababb2;stroke:none;stroke-width:0.37795275;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;fill-opacity:1" />
-        <path
-           sodipodi:nodetypes="ccccc"
-           inkscape:connector-curvature="0"
-           id="path5199-8-9-8"
-           d="m 1295.2947,341.64115 v 51.44487 h 265.7241 v -51.44487 z"
-           style="fill:#ababb2;stroke:none;stroke-width:0.37795275;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;fill-opacity:1" />
-        <g
-           style="fill:#ababb2;fill-opacity:1"
-           transform="translate(-0.90575)"
-           id="g5258-9-9">
-          <path
-             inkscape:connector-curvature="0"
-             d="m 1424.625,162.97931 a 4.75,4 0 0 1 -4.75,4 4.75,4 0 0 1 -4.75,-4 4.75,4 0 0 1 4.75,-4 4.75,4 0 0 1 4.75,4 z m 18.375,-0.25 a 4.75,4 0 0 1 -4.75,4 4.75,4 0 0 1 -4.75,-4 4.75,4 0 0 1 4.75,-4 4.75,4 0 0 1 4.75,4 z m -146.7996,-13.31157 v 51.44487 h 265.7241 v -51.44487 z"
-             style="fill:#ababb2;fill-opacity:1;stroke:none;stroke-width:0.37795275;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-             id="path5239-0-4-2" />
-        </g>
-      </g>
-      <path
-         style="fill:#ababb2;stroke:none;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;fill-opacity:1"
-         d="m 912.26148,854.87423 v 7.27539 c 0,2.79634 4.1201,7.15235 7.0974,7.15235 h 57.0982 57.09622 c 2.9773,0 7.0974,-4.35601 7.0974,-7.15235 v -7.27539 h -64.19362 z"
-         id="path5429-1-9"
-         inkscape:connector-curvature="0" />
-      <path
-         inkscape:connector-curvature="0"
-         style="fill:#ababb2;stroke:none;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;fill-opacity:1"
-         d="m 969.04908,749.4172 c -1.2404,0 -6.5507,5.41807 -6.5507,6.21875 v 4.91993 h 0.9531 c 0,43.5553 3.7609,25.12079 3.3398,62.125 0,0.82719 4.4526,3.88671 5.4356,3.88671 v 8.39649 h -1.125 v 1.0625 h -3.2266 v 0.5957 h -48.9883 c -2.8742,0 -6.9863,4.8837 -6.9863,7.15234 v 7.2754 h 128.75002 v -7.2754 c 0,-2.79633 -4.1361,-7.15234 -7.125,-7.15234 h -8.3535 v -0.79492 h -2.166 v -3.18164 h -1.1485 v -1.28125 h -8.9726 -8.9707 v 1.28125 h -1.1485 v 3.18164 h -2.166 v 0.79492 h -16.46682 v -0.5957 h -3.2246 v -1.0625 h -1.1269 v -8.39649 c 0.983,0 5.4355,-3.05952 5.4355,-3.88671 -0.4211,-37.00421 3.3399,-18.5697 3.3398,-62.125 h 0.9532 v -4.91993 c 0,-0.80068 -5.3104,-6.21875 -6.5508,-6.21875 h -6.9551 z"
-         id="path5429-3-7-4" />
-      <path
-         style="fill:#ababb2;stroke:#ff00ff;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;fill-opacity:1"
-         d="m 912.26148,851.05049 v -7.27539 c 0,-2.79634 4.1201,-7.15235 7.0974,-7.15235 h 57.0982 57.09622 c 2.9773,0 7.0974,4.35601 7.0974,7.15235 v 7.27539 h -64.19362 z"
-         id="path5429-7-77-6"
-         inkscape:connector-curvature="0" />
-    </g>
-    <g
-       transform="translate(-55.729306)"
-       id="g5425"
-       style="display:inline">
-      <path
-         style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#f6bd0e;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:16;marker:none;enable-background:accumulate"
-         d="m 116.05923,577.93526 c -3.48,0.20109 -7.3256,1.1375 -11.63,2.90735 -27.54822,11.32986 -15.44643,35.19849 -27.48069,50.27156 -12.03367,15.07396 -36.19673,7.81324 -43.79988,38.64156 -7.60286,30.82892 109.26727,182.19131 172.10487,156.34843 62.838,-25.84288 39.4726,-215.66466 12.3803,-232.22455 -27.0917,-16.55961 -39.0863,5.6223 -58.2436,3.37644 -16.1637,-1.89502 -24.5385,-20.40725 -43.331,-19.32079 z m 316.5418,0 c -17.3826,0.30013 -25.7964,17.496 -41.3614,19.32079 -19.1572,2.24586 -31.1518,-19.93605 -58.2435,-3.37644 -27.0923,16.55989 -50.4576,206.38137 12.3803,232.22455 62.8376,25.84288 179.7077,-125.51951 172.1049,-156.34843 -7.6032,-30.82832 -31.6726,-23.5676 -43.7063,-38.64156 -12.0342,-15.07307 0.069,-38.9417 -27.4803,-50.27156 -5.1656,-2.12371 -9.6822,-2.97637 -13.6937,-2.90735 z"
-         id="path4372-7-9"
-         inkscape:connector-curvature="0"
-         sodipodi:nodetypes="ccccsssccssscccc"
-         inkscape:label="path4372-7-9" />
-      <path
-         style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:16;marker:none;enable-background:accumulate"
-         d="M 275.31501,-1.7916665e-6 C 194.26645,-1.7916665e-6 146.68586,49.443198 137.72462,116.11228 128.76368,182.78135 143.19147,194.9981 120.74874,263.26927 98.30602,331.53923 -2.31211,448.5711 0.04059,556.5511 c 0.73262,33.61801 4.60398,62.7266 11.34877,88.1628 8.26915,-13.70117 20.521,-23.35722 29.45012,-27.48068 6.9708,-3.21799 10.34005,-4.76544 11.91151,-5.34589 0.2281,-1.72724 1.11168,-5.65953 2.71977,-13.41216 2.20895,-10.64736 10.67498,-27.3186 25.13578,-38.2664 -0.14707,-3.31673 -0.30674,-6.59923 -0.37516,-10.0354 -1.67022,-83.75241 84.89138,-174.48761 100.82462,-227.44141 15.93263,-52.952 9.00175,-58.40504 11.62998,-71.56178 2.62793,-13.15674 12.77468,-28.48221 27.38675,-40.70495 1.39198,-1.1651 2.74677,-1.67532 4.12676,-1.68823 13.32151,-0.12605 26.65263,48.37144 52.42857,48.39576 25.77596,0.03 39.1848,-59.11995 54.02317,-46.70753 14.61207,12.22304 24.75882,27.54821 27.38674,40.70495 2.62823,13.15674 -4.30325,18.60978 11.62999,71.56178 15.93322,52.9532 102.40085,143.6887 100.73065,227.44141 -0.069,3.40406 -0.2311,6.65445 -0.3751,9.94176 14.525,10.94599 23.0156,27.68686 25.2294,38.36004 1.6081,7.75263 2.492,11.68492 2.7201,13.41216 1.5666,0.57954 4.95,2.21674 11.9112,5.43983 8.9321,4.13577 21.1104,13.7738 29.3564,27.48068 6.7629,-25.46262 10.7089,-54.59011 11.4425,-88.25674 2.3527,-107.98 -98.3591,-225.01217 -120.80184,-293.28183 C 407.43855,194.9981 421.95998,182.78135 412.99903,116.11228 404.03809,49.443198 356.36355,-1.7916666e-6 275.31501,-1.7916665e-6 Z M 271.93856,763.54594 c -1.37309,8.8712 -3.21648,17.57674 -5.62741,25.98004 -3.92959,13.69607 -9.66505,27.42155 -18.19531,39.11067 8.8406,0.54803 17.90178,0.62006 27.19917,0.18608 9.29738,0.43308 18.35556,0.36075 27.19916,-0.18608 -8.53027,-11.68912 -14.26572,-25.4146 -18.1953,-39.11067 -2.41093,-8.4033 -4.25433,-17.10884 -5.62741,-25.98004 -1.12519,0.03 -2.24077,0.093 -3.37645,0.093 -1.13569,0 -2.25127,-0.072 -3.37645,-0.093 z"
-         id="path4372-7-91"
-         inkscape:connector-curvature="0"
-         sodipodi:nodetypes="ssssccccccsccccscsccccccsssscscccscsc" />
-    </g>
-    <path
-       style="fill:#ababb2;fill-opacity:0"
-       d="m 143.73409,497.33094 v -25.5 h 132.5 132.5 v 25.5 25.5 h -132.5 -132.5 z m 126.95432,-8.94496 c 3.54491,-4.27135 -2.78295,-9.83008 -6.92404,-6.08245 -2.43802,2.20639 -2.56466,3.85017 -0.45885,5.95598 1.96721,1.96722 5.80071,2.03289 7.38289,0.12647 z m 18.06193,-0.36711 c 4.2279,-3.42355 -1.243,-9.41376 -5.92103,-6.48306 -2.33049,1.46002 -2.61483,5.44202 -0.49906,6.9891 2.39868,1.75396 3.76179,1.64651 6.42009,-0.50604 z"
-       id="path3731"
-       inkscape:connector-curvature="0"
-       transform="translate(-56.568542)" />
-  </g>
-</svg>

+ 0 - 324
images/logo/assets/svg/linuxgsm_white_vector_full.svg

@@ -1,324 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="1710.7236"
-   height="830.10431"
-   id="svg4312"
-   version="1.1"
-   inkscape:version="0.92.1 r15371"
-   sodipodi:docname="linuxgsm_white_vector_full.svg"
-   inkscape:export-filename="C:\Users\me\Google Drive\Projects\Linux Game Server Manager\media\graphics\logos\dark\lgsm-dark-full.png"
-   inkscape:export-xdpi="84.68"
-   inkscape:export-ydpi="84.68">
-  <title
-     id="title5291">Stycil Tux</title>
-  <defs
-     id="defs4314">
-    <linearGradient
-       id="linearGradient3910-6-0-8-7-7-8">
-      <stop
-         style="stop-color:#000000;stop-opacity:1;"
-         offset="0"
-         id="stop3912-5-9-3-8-7-4" />
-      <stop
-         style="stop-color:#4c4c4c;stop-opacity:1;"
-         offset="1"
-         id="stop3914-0-1-3-0-6-9" />
-    </linearGradient>
-    <linearGradient
-       y2="497.71365"
-       x2="140.00095"
-       y1="230.00362"
-       x1="140.00095"
-       gradientTransform="matrix(3.0012867,0,0,3.0012867,-152.31552,-675.94661)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient4970"
-       xlink:href="#linearGradient3910-6-0-8-7-7-8"
-       inkscape:collect="always" />
-    <linearGradient
-       id="linearGradient3910-6-0-8-7-81">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop3912-5-9-3-8-5" />
-      <stop
-         style="stop-color:#a6a6a6;stop-opacity:1;"
-         offset="1"
-         id="stop3914-0-1-3-0-64" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4565-3">
-      <stop
-         style="stop-color:#939393;stop-opacity:1;"
-         offset="0"
-         id="stop4567-1" />
-      <stop
-         style="stop-color:#000000;stop-opacity:1;"
-         offset="1"
-         id="stop4569-9" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4617-7">
-      <stop
-         id="stop4619-9"
-         offset="0"
-         style="stop-color:#ffffff;stop-opacity:0;" />
-      <stop
-         id="stop4621-5"
-         offset="1"
-         style="stop-color:#a6a6a6;stop-opacity:0.5" />
-    </linearGradient>
-    <clipPath
-       clipPathUnits="userSpaceOnUse"
-       id="clipPath4719-2">
-      <rect
-         style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:15;marker:none;enable-background:accumulate"
-         id="rect4721-4"
-         width="1352.3417"
-         height="1135.7903"
-         x="-490.55533"
-         y="-358.505" />
-    </clipPath>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3910-6-0-8-7-7-8"
-       id="linearGradient5197"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(3.0012867,0,0,3.0012867,-152.31552,-675.94661)"
-       x1="140.00095"
-       y1="230.00362"
-       x2="140.00095"
-       y2="497.71365" />
-  </defs>
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="1"
-     inkscape:cx="1126.276"
-     inkscape:cy="424.55397"
-     inkscape:document-units="px"
-     inkscape:current-layer="g6064"
-     showgrid="false"
-     fit-margin-top="0"
-     fit-margin-left="0"
-     fit-margin-right="0"
-     fit-margin-bottom="0"
-     inkscape:window-width="1920"
-     inkscape:window-height="1017"
-     inkscape:window-x="-8"
-     inkscape:window-y="-8"
-     inkscape:window-maximized="1"
-     inkscape:pagecheckerboard="true" />
-  <metadata
-     id="metadata4317">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title>Stycil Tux</dc:title>
-        <dc:creator>
-          <cc:Agent>
-            <dc:title>Cheeseness (Josh Bush)</dc:title>
-          </cc:Agent>
-        </dc:creator>
-        <dc:subject>
-          <rdf:Bag>
-            <rdf:li>tux linux icon</rdf:li>
-          </rdf:Bag>
-        </dc:subject>
-        <dc:description>A stylised stencil (a &quot;stycil&quot; - isn't that catchy) inspired by Larry Ewing's Tux illustration.
-http://en.wikipedia.org/wiki/Tux
-
-You're under no obligation to do so, but if you do something with this, drop me a line - I'd love to hear about it.
-cheese@twolofbees.com</dc:description>
-        <dc:date>2012-01-02</dc:date>
-        <cc:license
-           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
-        <dc:source>http://twolofbees.com/uploads/2012/stycil_tux.svg</dc:source>
-        <dc:relation>http://twolofbees.com/artwork.php?iid=870</dc:relation>
-      </cc:Work>
-      <cc:License
-         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Reproduction" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Distribution" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
-      </cc:License>
-    </rdf:RDF>
-  </metadata>
-  <g
-     inkscape:groupmode="layer"
-     id="layer1"
-     inkscape:label="Layer 1" />
-  <g
-     id="g6064"
-     transform="translate(56.568542,1.0001456)"
-     style="display:inline">
-    <g
-       transform="translate(-756.17483,-402.59665)"
-       id="g5961-3"
-       style="display:inline;fill:#ababb2;fill-opacity:1">
-      <g
-         transform="translate(-452.34937,725.009)"
-         id="g5391-8-7"
-         style="fill:#ababb2;fill-opacity:1">
-        <path
-           sodipodi:nodetypes="ccccc"
-           inkscape:connector-curvature="0"
-           id="path5199-1-3-9"
-           d="m 1295.2947,213.49225 v 51.44487 h 265.7241 v -51.44487 z"
-           style="fill:#ababb2;stroke:none;stroke-width:0.37795275;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;fill-opacity:1" />
-        <path
-           sodipodi:nodetypes="ccccc"
-           inkscape:connector-curvature="0"
-           id="path5199-9-5-2"
-           d="m 1295.2947,277.56671 v 51.44487 h 265.7241 v -51.44487 z"
-           style="fill:#ababb2;stroke:none;stroke-width:0.37795275;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;fill-opacity:1" />
-        <path
-           sodipodi:nodetypes="ccccc"
-           inkscape:connector-curvature="0"
-           id="path5199-8-9-8"
-           d="m 1295.2947,341.64115 v 51.44487 h 265.7241 v -51.44487 z"
-           style="fill:#ababb2;stroke:none;stroke-width:0.37795275;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;fill-opacity:1" />
-        <g
-           style="fill:#ababb2;fill-opacity:1"
-           transform="translate(-0.90575)"
-           id="g5258-9-9">
-          <path
-             inkscape:connector-curvature="0"
-             d="m 1424.625,162.97931 a 4.75,4 0 0 1 -4.75,4 4.75,4 0 0 1 -4.75,-4 4.75,4 0 0 1 4.75,-4 4.75,4 0 0 1 4.75,4 z m 18.375,-0.25 a 4.75,4 0 0 1 -4.75,4 4.75,4 0 0 1 -4.75,-4 4.75,4 0 0 1 4.75,-4 4.75,4 0 0 1 4.75,4 z m -146.7996,-13.31157 v 51.44487 h 265.7241 v -51.44487 z"
-             style="fill:#ababb2;fill-opacity:1;stroke:none;stroke-width:0.37795275;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-             id="path5239-0-4-2" />
-        </g>
-      </g>
-      <path
-         style="fill:#ababb2;stroke:none;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;fill-opacity:1"
-         d="m 912.26148,854.87423 v 7.27539 c 0,2.79634 4.1201,7.15235 7.0974,7.15235 h 57.0982 57.09622 c 2.9773,0 7.0974,-4.35601 7.0974,-7.15235 v -7.27539 h -64.19362 z"
-         id="path5429-1-9"
-         inkscape:connector-curvature="0" />
-      <path
-         inkscape:connector-curvature="0"
-         style="fill:#ababb2;stroke:none;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;fill-opacity:1"
-         d="m 969.04908,749.4172 c -1.2404,0 -6.5507,5.41807 -6.5507,6.21875 v 4.91993 h 0.9531 c 0,43.5553 3.7609,25.12079 3.3398,62.125 0,0.82719 4.4526,3.88671 5.4356,3.88671 v 8.39649 h -1.125 v 1.0625 h -3.2266 v 0.5957 h -48.9883 c -2.8742,0 -6.9863,4.8837 -6.9863,7.15234 v 7.2754 h 128.75002 v -7.2754 c 0,-2.79633 -4.1361,-7.15234 -7.125,-7.15234 h -8.3535 v -0.79492 h -2.166 v -3.18164 h -1.1485 v -1.28125 h -8.9726 -8.9707 v 1.28125 h -1.1485 v 3.18164 h -2.166 v 0.79492 h -16.46682 v -0.5957 h -3.2246 v -1.0625 h -1.1269 v -8.39649 c 0.983,0 5.4355,-3.05952 5.4355,-3.88671 -0.4211,-37.00421 3.3399,-18.5697 3.3398,-62.125 h 0.9532 v -4.91993 c 0,-0.80068 -5.3104,-6.21875 -6.5508,-6.21875 h -6.9551 z"
-         id="path5429-3-7-4" />
-      <path
-         style="fill:#ababb2;stroke:#ff00ff;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;fill-opacity:1"
-         d="m 912.26148,851.05049 v -7.27539 c 0,-2.79634 4.1201,-7.15235 7.0974,-7.15235 h 57.0982 57.09622 c 2.9773,0 7.0974,4.35601 7.0974,7.15235 v 7.27539 h -64.19362 z"
-         id="path5429-7-77-6"
-         inkscape:connector-curvature="0" />
-    </g>
-    <g
-       transform="translate(-55.729306)"
-       id="g5425"
-       style="display:inline">
-      <path
-         style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#f6bd0e;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:16;marker:none;enable-background:accumulate"
-         d="m 116.05923,577.93526 c -3.48,0.20109 -7.3256,1.1375 -11.63,2.90735 -27.54822,11.32986 -15.44643,35.19849 -27.48069,50.27156 -12.03367,15.07396 -36.19673,7.81324 -43.79988,38.64156 -7.60286,30.82892 109.26727,182.19131 172.10487,156.34843 62.838,-25.84288 39.4726,-215.66466 12.3803,-232.22455 -27.0917,-16.55961 -39.0863,5.6223 -58.2436,3.37644 -16.1637,-1.89502 -24.5385,-20.40725 -43.331,-19.32079 z m 316.5418,0 c -17.3826,0.30013 -25.7964,17.496 -41.3614,19.32079 -19.1572,2.24586 -31.1518,-19.93605 -58.2435,-3.37644 -27.0923,16.55989 -50.4576,206.38137 12.3803,232.22455 62.8376,25.84288 179.7077,-125.51951 172.1049,-156.34843 -7.6032,-30.82832 -31.6726,-23.5676 -43.7063,-38.64156 -12.0342,-15.07307 0.069,-38.9417 -27.4803,-50.27156 -5.1656,-2.12371 -9.6822,-2.97637 -13.6937,-2.90735 z"
-         id="path4372-7-9"
-         inkscape:connector-curvature="0"
-         sodipodi:nodetypes="ccccsssccssscccc"
-         inkscape:label="path4372-7-9" />
-      <path
-         style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:16;marker:none;enable-background:accumulate"
-         d="M 275.31501,-1.7916665e-6 C 194.26645,-1.7916665e-6 146.68586,49.443198 137.72462,116.11228 128.76368,182.78135 143.19147,194.9981 120.74874,263.26927 98.30602,331.53923 -2.31211,448.5711 0.04059,556.5511 c 0.73262,33.61801 4.60398,62.7266 11.34877,88.1628 8.26915,-13.70117 20.521,-23.35722 29.45012,-27.48068 6.9708,-3.21799 10.34005,-4.76544 11.91151,-5.34589 0.2281,-1.72724 1.11168,-5.65953 2.71977,-13.41216 2.20895,-10.64736 10.67498,-27.3186 25.13578,-38.2664 -0.14707,-3.31673 -0.30674,-6.59923 -0.37516,-10.0354 -1.67022,-83.75241 84.89138,-174.48761 100.82462,-227.44141 15.93263,-52.952 9.00175,-58.40504 11.62998,-71.56178 2.62793,-13.15674 12.77468,-28.48221 27.38675,-40.70495 1.39198,-1.1651 2.74677,-1.67532 4.12676,-1.68823 13.32151,-0.12605 26.65263,48.37144 52.42857,48.39576 25.77596,0.03 39.1848,-59.11995 54.02317,-46.70753 14.61207,12.22304 24.75882,27.54821 27.38674,40.70495 2.62823,13.15674 -4.30325,18.60978 11.62999,71.56178 15.93322,52.9532 102.40085,143.6887 100.73065,227.44141 -0.069,3.40406 -0.2311,6.65445 -0.3751,9.94176 14.525,10.94599 23.0156,27.68686 25.2294,38.36004 1.6081,7.75263 2.492,11.68492 2.7201,13.41216 1.5666,0.57954 4.95,2.21674 11.9112,5.43983 8.9321,4.13577 21.1104,13.7738 29.3564,27.48068 6.7629,-25.46262 10.7089,-54.59011 11.4425,-88.25674 2.3527,-107.98 -98.3591,-225.01217 -120.80184,-293.28183 C 407.43855,194.9981 421.95998,182.78135 412.99903,116.11228 404.03809,49.443198 356.36355,-1.7916666e-6 275.31501,-1.7916665e-6 Z M 271.93856,763.54594 c -1.37309,8.8712 -3.21648,17.57674 -5.62741,25.98004 -3.92959,13.69607 -9.66505,27.42155 -18.19531,39.11067 8.8406,0.54803 17.90178,0.62006 27.19917,0.18608 9.29738,0.43308 18.35556,0.36075 27.19916,-0.18608 -8.53027,-11.68912 -14.26572,-25.4146 -18.1953,-39.11067 -2.41093,-8.4033 -4.25433,-17.10884 -5.62741,-25.98004 -1.12519,0.03 -2.24077,0.093 -3.37645,0.093 -1.13569,0 -2.25127,-0.072 -3.37645,-0.093 z"
-         id="path4372-7-91"
-         inkscape:connector-curvature="0"
-         sodipodi:nodetypes="ssssccccccsccccscsccccccsssscscccscsc" />
-    </g>
-    <flowRoot
-       xml:space="preserve"
-       id="flowRoot4513"
-       style="font-style:normal;font-weight:normal;font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none"
-       transform="translate(-56.568542,-1.8359376e-6)"><flowRegion
-         id="flowRegion4515"><rect
-           id="rect4517"
-           width="584"
-           height="560"
-           x="532"
-           y="65.104309" /></flowRegion><flowPara
-         id="flowPara4519" /></flowRoot>    <flowRoot
-       xml:space="preserve"
-       id="flowRoot4521"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:1.25;font-family:'PT Sans';-inkscape-font-specification:'PT Sans';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none"
-       transform="translate(-56.568542,-1.8359376e-6)"><flowRegion
-         id="flowRegion4523"
-         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'PT Sans';-inkscape-font-specification:'PT Sans'"><rect
-           id="rect4525"
-           width="476"
-           height="536"
-           x="548"
-           y="81.104309"
-           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'PT Sans';-inkscape-font-specification:'PT Sans'" /></flowRegion><flowPara
-         id="flowPara4527" /></flowRoot>    <text
-       xml:space="preserve"
-       style="font-style:normal;font-weight:normal;font-size:169.59358215px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:4.23983955"
-       x="429.06406"
-       y="220.41109"
-       id="text4531"
-       transform="scale(1.0093264,0.99075977)"
-       inkscape:export-filename="C:\Users\me\Google Drive\Projects\Linux Game Server Manager\media\logos\master rasta\text4531.png"
-       inkscape:export-xdpi="118.84"
-       inkscape:export-ydpi="118.84"><tspan
-         sodipodi:role="line"
-         id="tspan4529"
-         x="429.06406"
-         y="220.41109"
-         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:213.33334351px;font-family:'PT Sans';-inkscape-font-specification:'PT Sans';fill:#ababb2;fill-opacity:1;stroke-width:4.23983955">Linux</tspan><tspan
-         sodipodi:role="line"
-         x="429.06406"
-         y="487.07776"
-         id="tspan4535"
-         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:213.33334351px;font-family:'PT Sans';-inkscape-font-specification:'PT Sans';fill:#7dffff;fill-opacity:0.77900552;stroke-width:4.23983955"> <tspan
-   style="fill:#ffffff;fill-opacity:1;opacity:1"
-   id="tspan942">Game Server</tspan></tspan><tspan
-         sodipodi:role="line"
-         x="429.06406"
-         y="753.74445"
-         id="tspan4537"
-         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:213.33334351px;font-family:'PT Sans';-inkscape-font-specification:'PT Sans';fill:#f9f9f9;fill-opacity:0;stroke-width:4.23983955"><tspan
-   style="fill:#ffffff;fill-opacity:1;opacity:1"
-   id="tspan876">  Managers_</tspan>_</tspan></text>
-    <flowRoot
-       xml:space="preserve"
-       id="flowRoot2606"
-       style="fill:black;fill-opacity:1;stroke:none;font-family:sans-serif;font-style:normal;font-weight:normal;font-size:40px;line-height:1.25;letter-spacing:0px;word-spacing:0px"><flowRegion
-         id="flowRegion2608"><rect
-           id="rect2610"
-           width="596"
-           height="244"
-           x="551"
-           y="408.10431" /></flowRegion><flowPara
-         id="flowPara2612"></flowPara></flowRoot>  </g>
-  <path
-     style="fill:#ffffff;fill-opacity:0"
-     d="m 103.95897,305.64737 c 0,-0.29209 1.98741,-4.48823 4.41646,-9.32476 10.29339,-20.49537 17.26545,-40.28401 22.07901,-62.66635 3.9742,-18.47945 4.59123,-25.6379 5.51655,-64 0.79547,-32.97852 2.08256,-50.45634 4.54764,-61.75359 l 0.60083,-2.75359 135.12878,0.25359 135.12878,0.25359 0.7479,3.5 c 2.31683,10.84216 4.06464,35.3419 4.85112,68 0.91823,38.12897 1.41461,42.93974 6.60364,64 4.40569,17.881 10.0926,33.73138 17.82493,49.68112 l 7.42651,15.31888 H 407.51376 366.1964 l -1.20552,-4.75 c -2.93,-11.54485 -4.20984,-20.83185 -4.95211,-35.9344 -0.77423,-15.75263 -0.89123,-16.38609 -4.38555,-23.74414 -4.52737,-9.53335 -8.2765,-14.98271 -15.95627,-23.1924 -5.98826,-6.40148 -10.16413,-9.37906 -13.15352,-9.37906 -3.01465,0 -9.01166,6.69118 -17.89249,19.96358 -14.5779,21.78668 -21.89779,28.26554 -31.84767,28.18846 -10.48815,-0.0812 -17.90838,-6.63067 -34.16101,-30.15204 -9.08036,-13.14143 -13.92437,-18 -17.94601,-18 -2.78994,0 -17.0247,14.17371 -22.5033,22.40678 -7.65084,11.49747 -9.29829,17.42848 -10.30335,37.09322 -0.57802,11.30946 -1.63236,20.34738 -3.14974,27 l -2.28089,10 -41.25,0.26109 c -22.6875,0.1436 -41.25,0.0221 -41.25,-0.26998 z"
-     id="path858"
-     inkscape:connector-curvature="0" />
-  <path
-     style="fill:#ffffff;fill-opacity:0"
-     d="m 517.45897,621.51377 c -1.1,-0.86839 -5.55983,-3.235 -9.91074,-5.25913 l -7.91074,-3.68024 -2.77827,-11.29969 c -3.50583,-14.25876 -8.76676,-23.87229 -18.53319,-33.86648 l -7.13295,-7.2993 0.50085,-6.23958 c 0.56479,-7.03604 -0.9597,-22.97762 -3.30005,-34.50852 -4.32021,-21.28575 -18.56308,-55.37094 -35.39473,-84.70457 -3.47149,-6.05 -6.50225,-11.3375 -6.73501,-11.75 -0.23276,-0.4125 19.33809,-0.75 43.49078,-0.75 h 43.91398 l 4.19984,9.0393 c 18.10421,38.96563 27.55172,68.78316 31.67198,99.9607 2.56585,19.41552 1.31093,51.25328 -3.20255,81.25 l -1.61751,10.75 -12.63084,-0.0318 c -9.96138,-0.0251 -13.05354,-0.3655 -14.63085,-1.61069 z"
-     id="path860"
-     inkscape:connector-curvature="0" />
-  <path
-     style="fill:#ffffff;fill-opacity:0"
-     d="m 131.38196,230.39891 c 2.26043,-7.12198 3.80851,-27.49521 4.57759,-60.24265 0.8735,-37.19355 2.20679,-52.48825 5.97138,-68.5 5.698,-24.235019 17.42655,-45.8345 34.04809,-62.703515 l 7.68211,-7.796486 h 92.50635 92.50635 l 8.46293,8.778947 c 10.02293,10.397199 17.50821,21.162474 23.38694,33.634919 11.75298,24.935379 15.0362,45.563325 16.48717,103.586135 0.83379,33.34278 1.27259,39.85533 3.45308,51.25 l 0.7176,3.75 h -35.05284 -35.05285 l -4.47347,-5.81362 c -6.22632,-8.09156 -16.26919,-17.18638 -18.97791,-17.18638 -4.40434,0 -9.15051,4.57291 -16.34675,15.75 l -4.66783,7.25 h -30.18389 -30.18388 l -3.77528,-5.75 c -8.62521,-13.13676 -14.1939,-18.04759 -19.07583,-16.8223 -2.85946,0.71768 -15.11364,12.62294 -18.93212,18.39304 l -2.7657,4.17926 h -35.4345 c -33.3485,0 -35.40167,-0.10345 -34.87674,-1.75735 z"
-     id="path862"
-     inkscape:connector-curvature="0" />
-</svg>

BIN
images/logo/facebook.png


BIN
images/logo/lgsm-dark-full.png


BIN
images/logo/lgsm-dark-square-114.png


BIN
images/logo/lgsm-dark-square-16.png


BIN
images/logo/lgsm-dark-square-184.png


BIN
images/logo/lgsm-dark-square-24.png


BIN
images/logo/lgsm-dark-square-512.png


BIN
images/logo/lgsm-dark-square-64.png


BIN
images/logo/lgsm-light-full.png


BIN
images/logo/lgsm_full.png


BIN
images/logo/lgsmbutton.png


BIN
images/wallpaper/LinuxGSM_wallpaper.png


BIN
images/wallpaper/LinuxGSM_wallpaper_2.png


+ 104 - 0
lgsm/config-default/config-lgsm/etlserver/_default.cfg

@@ -0,0 +1,104 @@
+##################################
+######## Default Settings ########
+##################################
+# DO NOT EDIT WILL BE OVERWRITTEN!
+# Copy settings from here and use them in either
+# common.cfg - applies settings to every instance
+# [instance].cfg - applies settings to a specific instance
+
+#### Server Settings ####
+
+## Server Start Command | https://github.com/GameServerManagers/LinuxGSM/wiki/Start-Parameters#additional-parameters
+fn_parms(){
+	parms="+set net_strict 1 +set fs_homepath ${serverfiles} +exec ${servercfg}"
+}
+
+#### LinuxGSM Settings ####
+
+## Notification Alerts
+# (on|off)
+
+# More info | https://github.com/GameServerManagers/LinuxGSM/wiki/Alerts#more-info
+postalert="off"
+postdays="7"
+posttarget="https://hastebin.com"
+
+# Discord Alerts | https://github.com/GameServerManagers/LinuxGSM/wiki/Discord
+discordalert="off"
+discordwebhook="webhook"
+
+# Email Alerts | https://github.com/GameServerManagers/LinuxGSM/wiki/Email
+emailalert="off"
+email="email@example.com"
+emailfrom=""
+
+# IFTTT Alerts | https://github.com/GameServerManagers/LinuxGSM/wiki/IFTTT
+iftttalert="off"
+ifttttoken="accesstoken"
+iftttevent="linuxgsm_alert"
+
+# Mailgun Email Alerts | https://github.com/GameServerManagers/LinuxGSM/wiki/mailgun
+mailgunalert="off"
+mailguntoken="accesstoken"
+mailgundomain="example.com"
+mailgunemailfrom="alert@example.com"
+mailgunemail="email@myemail.com"
+
+# Pushbullet Alerts | https://github.com/GameServerManagers/LinuxGSM/wiki/Pushbullet
+pushbulletalert="off"
+pushbullettoken="accesstoken"
+channeltag=""
+
+# Pushover Alerts | https://github.com/GameServerManagers/LinuxGSM/wiki/Pushover
+pushoveralert="off"
+pushovertoken="accesstoken"
+
+# Telegram Alerts | https://github.com/GameServerManagers/LinuxGSM/wiki/Telegram
+telegramalert="off"
+telegramtoken="accesstoken"
+telegramchatid=""
+
+## Backup | https://github.com/GameServerManagers/LinuxGSM/wiki/Backup
+maxbackups="4"
+maxbackupdays="30"
+stoponbackup="on"
+
+## Logging | https://github.com/GameServerManagers/LinuxGSM/wiki/Logging
+consolelogging="on"
+logdays="7"
+
+#### LinuxGSM Advanced Settings ####
+
+## LinuxGSM Server Details
+# Do not edit
+gamename="ET: Legacy"
+engine="idtech3"
+
+#### Directories ####
+# Edit with care
+
+## Server Specific Directories
+systemdir="${serverfiles}"
+executabledir="${systemdir}"
+executable="./etlded"
+servercfg="${servicename}.cfg"
+servercfgdefault="server.cfg"
+servercfgdir="${systemdir}/etmain"
+servercfgfullpath="${servercfgdir}/${servercfg}"
+
+## Backup Directory
+backupdir="${rootdir}/backups"
+
+## Logging Directories
+logdir="${rootdir}/log"
+gamelogdir="${serverfiles}/Logs"
+lgsmlogdir="${logdir}/script"
+consolelogdir="${logdir}/console"
+lgsmlog="${lgsmlogdir}/${servicename}-script.log"
+consolelog="${consolelogdir}/${servicename}-console.log"
+alertlog="${lgsmlogdir}/${servicename}-alert.log"
+postdetailslog="${lgsmlogdir}/${servicename}-postdetails.log"
+
+## Logs Naming
+lgsmlogdate="${lgsmlogdir}/${servicename}-script-$(date '+%Y-%m-%d-%H:%M:%S').log"
+consolelogdate="${consolelogdir}/${servicename}-console-$(date '+%Y-%m-%d-%H:%M:%S').log"

+ 118 - 0
lgsm/config-default/config-lgsm/rwserver/_default.cfg

@@ -0,0 +1,118 @@
+##################################
+######## Default Settings ########
+##################################
+# DO NOT EDIT WILL BE OVERWRITTEN!
+# Copy settings from here and use them in either
+# common.cfg - applies settings to every instance
+# [instance].cfg - applies settings to a specific instance
+
+#### Server Settings ####
+
+## Server Start Settings | https://github.com/GameServerManagers/LinuxGSM/wiki/Start-Parameters
+javaram="2048" # -Xmx$2048M
+
+## Server Start Command | https://github.com/GameServerManagers/LinuxGSM/wiki/Start-Parameters#additional-parameters
+fn_parms(){
+parms=""
+}
+
+#### LinuxGSM Settings ####
+
+## Notification Alerts
+# (on|off)
+
+# More info | https://github.com/GameServerManagers/LinuxGSM/wiki/Alerts#more-info
+postalert="off"
+postdays="7"
+posttarget="https://hastebin.com"
+
+# Discord Alerts | https://github.com/GameServerManagers/LinuxGSM/wiki/Discord
+discordalert="off"
+discordwebhook="webhook"
+
+# Email Alerts | https://github.com/GameServerManagers/LinuxGSM/wiki/Email
+emailalert="off"
+email="email@example.com"
+emailfrom=""
+
+# IFTTT Alerts | https://github.com/GameServerManagers/LinuxGSM/wiki/IFTTT
+iftttalert="off"
+ifttttoken="accesstoken"
+iftttevent="linuxgsm_alert"
+
+# Mailgun Email Alerts | https://github.com/GameServerManagers/LinuxGSM/wiki/mailgun
+mailgunalert="off"
+mailguntoken="accesstoken"
+mailgundomain="example.com"
+mailgunemailfrom="alert@example.com"
+mailgunemail="email@myemail.com"
+
+# Pushbullet Alerts | https://github.com/GameServerManagers/LinuxGSM/wiki/Pushbullet
+pushbulletalert="off"
+pushbullettoken="accesstoken"
+channeltag=""
+
+# Pushover Alerts | https://github.com/GameServerManagers/LinuxGSM/wiki/Pushover
+pushoveralert="off"
+pushovertoken="accesstoken"
+
+# Telegram Alerts | https://github.com/GameServerManagers/LinuxGSM/wiki/Telegram
+telegramalert="off"
+telegramtoken="accesstoken"
+telegramchatid=""
+
+## Updating | https://github.com/GameServerManagers/LinuxGSM/wiki/Update
+updateonstart="off"
+
+## Backup | https://github.com/GameServerManagers/LinuxGSM/wiki/Backup
+maxbackups="4"
+maxbackupdays="30"
+stoponbackup="on"
+
+## Logging | https://github.com/GameServerManagers/LinuxGSM/wiki/Logging
+consolelogging="on"
+logdays="7"
+
+#### LinuxGSM Advanced Settings ####
+
+## SteamCMD Settings
+# Server appid
+appid="339010"
+# Steam App Branch Select
+# Allows to opt into the various Steam app branches. Default branch is "".
+# Example: "-beta latest_experimental"
+branch=""
+
+## LinuxGSM Server Details
+# Do not edit
+gamename="Rising World"
+engine="risingworld"
+
+#### Directories ####
+# Edit with care
+
+## Server Specific Directories
+systemdir="${serverfiles}"
+executabledir="${serverfiles}"
+executable="java -Xmx${javaram}m -jar ${serverfiles}/server.jar"
+servercfg="server.properties"
+servercfgdefault="server.properties"
+servercfgdir="${serverfiles}"
+servercfgfullpath="${servercfgdir}/${servercfg}"
+
+## Backup Directory
+backupdir="${rootdir}/backups"
+
+## Logging Directories
+logdir="${rootdir}/log"
+gamelogdir="${systemdir}/logs"
+lgsmlogdir="${logdir}/script"
+consolelogdir="${logdir}/console"
+lgsmlog="${lgsmlogdir}/${servicename}-script.log"
+consolelog="${consolelogdir}/${servicename}-console.log"
+alertlog="${lgsmlogdir}/${servicename}-alert.log"
+postdetailslog="${lgsmlogdir}/${servicename}-postdetails.log"
+
+## Logs Naming
+lgsmlogdate="${lgsmlogdir}/${servicename}-script-$(date '+%Y-%m-%d-%H:%M:%S').log"
+consolelogdate="${consolelogdir}/${servicename}-console-$(date '+%Y-%m-%d-%H:%M:%S').log"

+ 1 - 1
lgsm/config-default/config-lgsm/ut3server/_default.cfg

@@ -11,7 +11,7 @@
 ## Server Start Settings | https://github.com/GameServerManagers/LinuxGSM/wiki/Start-Parameters
 ip="0.0.0.0"
 port="7777"
-queryport="25300"
+queryport="6500"
 defaultmap="VCTF-Suspense"
 game="UTGameContent.UTVehicleCTFGame_Content"
 mutators="" #"UTGame.UTMutator_Instagib,UTGame.UTMutator_LowGrav"

+ 2 - 0
lgsm/data/serverlist.csv

@@ -57,6 +57,7 @@ qw,qwserver,Quake World
 ro,roserver,Red Orchestra: Ostfront 41-45
 ricochet,ricochetserver,Ricochet
 rust,rustserver,Rust
+rw,rwserver, Rising World
 samp,sampserver,San Andreas Multiplayer
 ss3,ss3server,Serious Sam 3: BFE
 sb,sbserver,Starbound
@@ -73,4 +74,5 @@ ut2k4,ut2k4server,Unreal Tournament 2004
 ut3,ut3server,Unreal Tournament 3
 ut99,ut99server,Unreal Tournament 99
 wet,wetserver,Wolfenstein: Enemy Territory
+etl,etlserver,ET: Legacy
 zps,zpsserver,Zombie Panic! Source

+ 2 - 2
lgsm/functions/alert.sh

@@ -45,12 +45,12 @@ fn_alert_restart(){
 }
 
 fn_alert_restart_query(){
-	fn_script_log_info "Sending alert: Restarted: ${gsquerycmd}"
+	fn_script_log_info "Sending alert: Restarted: ${servicename}"
 	alertsubject="Alert - ${servicename} - Restarted"
 	alertemoji="🚨"
 	alertsound="2"
 	alerturl="not enabled"
-	alertbody="gsquery.py failed to query: ${gsquerycmd}"
+	alertbody="Unable to query: ${servicename}"
 }
 
 fn_alert_update(){

+ 2 - 2
lgsm/functions/alert_discord.sh

@@ -39,7 +39,7 @@ json=$(cat <<EOF
 			},
 			{
 				"name": "Server IP",
-				"value": "[${ip}:${port}](https://www.gametracker.com/server_info/${ip}:${port})"
+				"value": "[${extip:-$ip}:${port}](https://www.gametracker.com/server_info/${extip:-$ip}:${port})"
 			},
 			{
 				"name": "More info",
@@ -53,7 +53,7 @@ EOF
 
 fn_print_dots "Sending Discord alert"
 sleep 0.5
-discordsend=$(${curlpath} -sSL -H "Content-Type: application/json" -X POST -d """${json}""" ${discordwebhook})
+discordsend=$(${curlpath} -sSL -H "Content-Type: application/json" -X POST -d """${json}""" "${discordwebhook}")
 
 if [ -n "${discordsend}" ]; then
 	fn_print_fail_nl "Sending Discord alert: ${discordsend}"

+ 1 - 1
lgsm/functions/alert_ifttt.sh

@@ -19,7 +19,7 @@ EOF
 
 fn_print_dots "Sending IFTTT alert"
 sleep 0.5
-iftttsend=$(${curlpath} -sSL -H "Content-Type: application/json" -X POST -d """${json}""" "https://maker.ifttt.com/trigger/${iftttevent}/with/key/${ifttttoken}"|grep "Bad Request")
+iftttsend=$(${curlpath} -sSL -H "Content-Type: application/json" -X POST -d """${json}""" "https://maker.ifttt.com/trigger/${iftttevent}/with/key/${ifttttoken}" | grep "Bad Request")
 
 if [ -n "${iftttsend}" ]; then
 	fn_print_fail_nl "Sending IFTTT alert: ${pushbulletsend}"

+ 1 - 1
lgsm/functions/alert_mailgun.sh

@@ -17,7 +17,7 @@ mailgunsend=$(${curlpath} -s --user "api:${mailguntoken}" \
 -F subject="${alertemoji} ${alertsubject} ${alertemoji}" \
 -F o:tag='alert' \
 -F o:tag='LinuxGSM' \
--F text="$(cat ${alertlog})" https://api.mailgun.net/v3/${mailgundomain}/messages)
+-F text="$(cat "${alertlog}")" https://api.mailgun.net/v3/${mailgundomain}/messages)
 
 if [ -z "${mailgunsend}" ]; then
 	fn_print_fail_nl "Sending Email alert: Mailgun: ${email}"

+ 3 - 3
lgsm/functions/alert_pushover.sh

@@ -12,10 +12,10 @@ fn_print_dots "Sending Pushover alert"
 sleep 0.5
 
 # Different alerts are given different priorities and notification sounds
-if [ "${alertsound}" == "1" ];then
+if [ "${alertsound}" == "1" ]; then
 	alertsound=""
 	alertpriority="0"
-elif [ "${alertsound}" == "2" ];then
+elif [ "${alertsound}" == "2" ]; then
 	# restarted
 	alertsound="siren"
 	alertpriority="1"
@@ -24,7 +24,7 @@ else
 	alertpriority="0"
 fi
 
-pushoversend=$(${curlpath} -sS -F token="${pushovertoken}" -F user="${pushoveruserkey}" -F html="1" -F sound="${alertsound}"  -F priority="${alertpriority}" -F title="${alertemoji} ${alertsubject} ${alertemoji}" -F message=" <b>Message</b><br>${alertbody}<br><br><b>Game</b><br>${gamename}<br><br><b>Server name</b><br>${servername}<br><br><b>Hostname</b><br>${HOSTNAME}<br><br><b>Server IP</b><br><a href='https://www.gametracker.com/server_info/${ip}:${port}'>${ip}:${port}</a><br><br><b>More info</b><br><a href='${alerturl}'>${alerturl}</a>" "https://api.pushover.net/1/messages.json"|grep errors)
+pushoversend=$(${curlpath} -sS -F token="${pushovertoken}" -F user="${pushoveruserkey}" -F html="1" -F sound="${alertsound}"  -F priority="${alertpriority}" -F title="${alertemoji} ${alertsubject} ${alertemoji}" -F message=" <b>Message</b><br>${alertbody}<br><br><b>Game</b><br>${gamename}<br><br><b>Server name</b><br>${servername}<br><br><b>Hostname</b><br>${HOSTNAME}<br><br><b>Server IP</b><br><a href='https://www.gametracker.com/server_info/${ip}:${port}'>${ip}:${port}</a><br><br><b>More info</b><br><a href='${alerturl}'>${alerturl}</a>" "https://api.pushover.net/1/messages.json" | grep errors)
 
 if [ -n "${pushoversend}" ]; then
 	fn_print_fail_nl "Sending Pushover alert: ${pushoversend}"

+ 11 - 11
lgsm/functions/check_deps.sh

@@ -18,11 +18,11 @@ fn_deps_detector(){
 		depstatus=0
 		deptocheck="${javaversion}"
 		unset javacheck
-	elif [ -n "$(command -v apt-get 2>/dev/null)" ]; then
-		dpkg-query -W -f='${Status}' ${deptocheck} 2>/dev/null | grep -q -P '^install ok installed'
+	elif [ -n "$(command -v apt 2>/dev/null)" ]; then
+		dpkg-query -W -f='${Status}' "${deptocheck}" 2>/dev/null | grep -q -P '^install ok installed'
 		depstatus=$?
 	elif [ -n "$(command -v yum 2>/dev/null)" ]; then
-		yum -q list installed ${deptocheck} > /dev/null 2>&1
+		yum -q list installed "${deptocheck}" > /dev/null 2>&1
 		depstatus=$?
 	fi
 
@@ -77,7 +77,7 @@ fn_found_missing_deps(){
 		sleep 0.5
 		fn_print_error_nl "Checking dependencies: missing: ${red}${array_deps_missing[@]}${default}"
 		fn_script_log_error "Checking dependencies: missing: ${array_deps_missing[@]}"
-		sleep 1
+		sleep 0.5
 		sudo -v > /dev/null 2>&1
 		if [ $? -eq 0 ]; then
 			fn_print_information_nl "Automatically installing missing dependencies."
@@ -90,11 +90,11 @@ fn_found_missing_deps(){
 			sleep 1
 			echo -en "   \r"
 			if [ -n "$(command -v dpkg-query 2>/dev/null)" ]; then
-				cmd="sudo dpkg --add-architecture i386; sudo apt-get update; sudo apt-get -y install ${array_deps_missing[@]}"
-				eval ${cmd}
+				cmd="sudo dpkg --add-architecture i386; sudo apt update; sudo apt -y install ${array_deps_missing[@]}"
+				eval "${cmd}"
 			elif [ -n "$(command -v yum 2>/dev/null)" ]; then
 				cmd="sudo yum -y install ${array_deps_missing[@]}"
-				eval ${cmd}
+				eval "${cmd}"
 			fi
 			if [ $? != 0 ]; then
 				fn_print_failure_nl "Unable to install dependencies"
@@ -108,7 +108,7 @@ fn_found_missing_deps(){
 			fn_print_warning_nl "$(whoami) does not have sudo access. Manually install dependencies."
 			fn_script_log_warn "$(whoami) does not have sudo access. Manually install dependencies."
 			if [ -n "$(command -v dpkg-query 2>/dev/null)" ]; then
-				echo "	sudo dpkg --add-architecture i386; sudo apt-get update; sudo apt-get install ${array_deps_missing[@]}"
+				echo "	sudo dpkg --add-architecture i386; sudo apt update; sudo apt install ${array_deps_missing[@]}"
 			elif [ -n "$(command -v yum 2>/dev/null)" ]; then
 				echo "	sudo yum install ${array_deps_missing[@]}"
 			fi
@@ -139,7 +139,7 @@ if [ "${function_selfname}" == "command_install.sh" ]; then
 	echo "================================="
 fi
 
-# Check will only run if using apt-get or yum
+# Check will only run if using apt or yum
 if [ -n "$(command -v dpkg-query 2>/dev/null)" ]; then
 	# Generate array of missing deps
 	array_deps_missing=()
@@ -193,7 +193,7 @@ if [ -n "$(command -v dpkg-query 2>/dev/null)" ]; then
 	elif [ "${gamename}" == "Battlefield: 1942" ]; then
 		array_deps_required+=( libncurses5:i386 )
 	# Call of Duty
-	elif [ "${gamename}" == "Call of Duty" ]||[ "${gamename}" == "Call of Duty 2" ]; then
+	elif [ "${gamename}" == "Call of Duty" ]||[ "${gamename}" == "Call of Duty: United Offensive" ]||[ "${gamename}" == "Call of Duty 2" ]; then
 		array_deps_required+=( libstdc++5:i386 )
 	# Factorio
 	elif [ "${gamename}" == "Factorio" ]; then
@@ -286,7 +286,7 @@ elif [ -n "$(command -v yum 2>/dev/null)" ]; then
 	elif [ "${gamename}" == "Battlefield: 1942" ]; then
 		array_deps_required+=( ncurses-libs.i686 )
 	# Call of Duty
-	elif [ "${gamename}" == "Call of Duty" ]||[ "${gamename}" == "Call of Duty 2" ]; then
+	elif [ "${gamename}" == "Call of Duty" ]||[ "${gamename}" == "Call of Duty: United Offensive" ]||[ "${gamename}" == "Call of Duty 2" ]; then
 		array_deps_required+=( compat-libstdc++-33.i686 )
 	# Factorio
 	elif [ "${gamename}" == "Factorio" ]; then

+ 7 - 6
lgsm/functions/check_ip.sh

@@ -14,18 +14,19 @@ if [ "${gamename}" != "TeamSpeak 3" ]&&[ "${gamename}" != "Mumble" ]&&[ "${travi
 	else
 		ipcommand="ip"
 	fi
-	getip=$(${ipcommand} -o -4 addr|awk '{print $4}'|grep -oe '\([0-9]\{1,3\}\.\?\)\{4\}'|grep -v 127.0.0)
-	getipwc=$(${ipcommand} -o -4 addr|awk '{print $4}'|grep -oe '\([0-9]\{1,3\}\.\?\)\{4\}'|grep -vc 127.0.0)
+	getip=$(${ipcommand} -o -4 addr| awk '{print $4}' | grep -oe '\([0-9]\{1,3\}\.\?\)\{4\}' | grep -v 127.0.0)
+	getipwc=$(${ipcommand} -o -4 addr| awk '{print $4}' | grep -oe '\([0-9]\{1,3\}\.\?\)\{4\}' | grep -vc 127.0.0)
 	info_config.sh
+	info_parms.sh
 
 	# IP is not set to specific IP
 	if [ "${ip}" == "0.0.0.0" ]||[ "${ip}" == "" ]; then
 		fn_print_dots "Check IP"
-		sleep 1
+		sleep 0.5
 		# Multiple interfaces
 		if [ "${getipwc}" -ge "2" ]; then
 			fn_print_fail "Check IP: Multiple IP addresses found."
-			sleep 1
+			sleep 0.5
 			echo -en "\n"
 			# IP is set within game config
 			if [ "${ipsetinconfig}" == "1" ]; then
@@ -57,7 +58,7 @@ if [ "${gamename}" != "TeamSpeak 3" ]&&[ "${gamename}" != "Mumble" ]&&[ "${travi
 		# Single interface
 		elif [ "${ipsetinconfig}" == "1" ]; then
 			fn_print_fail "Check IP: IP address not set in game config."
-			sleep 1
+			sleep 0.5
 			echo -en "\n"
 			fn_print_information "Specify the IP you want to bind within ${servercfg}.\n"
 			echo -en "	* location: ${servercfgfullpath}\n"
@@ -74,7 +75,7 @@ if [ "${gamename}" != "TeamSpeak 3" ]&&[ "${gamename}" != "Mumble" ]&&[ "${travi
 		else
 			fn_print_info_nl "Check IP: ${getip}"
 			fn_script_log_info "IP automatically set as: ${getip}"
-			sleep 1
+			sleep 0.5
 			ip="${getip}"
 		fi
 	fi

+ 17 - 17
lgsm/functions/check_permissions.sh

@@ -9,17 +9,17 @@ local commandname="CHECK"
 
 fn_check_ownership(){
 	if [ -f "${rootdir}/${selfname}" ]; then
-		if [ $(find "${rootdir}/${selfname}" -not -user $(whoami)|wc -l) -ne "0" ]; then
+		if [ "$(find "${rootdir}/${selfname}" -not -user $(whoami) | wc -l)" -ne "0" ]; then
 			selfownissue=1
 		fi
 	fi
 	if [ -d "${functionsdir}" ]; then
-		if [ $(find "${functionsdir}" -not -user $(whoami)|wc -l) -ne "0" ]; then
+		if [ "$(find "${functionsdir}" -not -user $(whoami) | wc -l)" -ne "0" ]; then
 			funcownissue=1
 		fi
 	fi
 	if [ -d "${serverfiles}" ]; then
-		if [ $(find "${serverfiles}" -not -user $(whoami)|wc -l) -ne "0" ]; then
+		if [ "$(find "${serverfiles}" -not -user $(whoami) | wc -l)" -ne "0" ]; then
 			filesownissue=1
 		fi
 	fi
@@ -31,13 +31,13 @@ fn_check_ownership(){
 		{
 			echo -e "User\tGroup\tFile\n"
 			if [ "${selfownissue}" == "1" ]; then
-				find "${rootdir}/${selfname}" -not -user $(whoami) -printf "%u\t\t%g\t%p\n"
+				find "${rootdir}/${selfname}" -not -user "$(whoami)" -printf "%u\t\t%g\t%p\n"
 			fi
 			if [ "${funcownissue}" == "1" ]; then
-				find "${functionsdir}" -not -user $(whoami) -printf "%u\t\t%g\t%p\n"
+				find "${functionsdir}" -not -user "$(whoami)" -printf "%u\t\t%g\t%p\n"
 			fi
 			if [ "${filesownissue}" == "1"  ]; then
-				find "${serverfiles}" -not -user $(whoami) -printf "%u\t\t%g\t%p\n"
+				find "${serverfiles}" -not -user "$(whoami)" -printf "%u\t\t%g\t%p\n"
 			fi
 
 		} | column -s $'\t' -t | tee -a "${lgsmlog}"
@@ -54,7 +54,7 @@ fn_check_ownership(){
 
 fn_check_permissions(){
 	if [ -d "${functionsdir}" ]; then
-		if [ $(find "${functionsdir}" -type f -not -executable|wc -l) -ne "0" ]; then
+		if [ "$(find "${functionsdir}" -type f -not -executable | wc -l)" -ne "0" ]; then
 			fn_print_fail_nl "Permissions issues found"
 			fn_script_log_fatal "Permissions issues found"
 			fn_print_information_nl "The following files are not executable:"
@@ -102,9 +102,9 @@ fn_check_permissions(){
 		userexecperm="${execperm:0:1}"
 		groupexecperm="${execperm:1:1}"
 		# Check for invalid user permission
-		if [ "${userexecperm}" == "0" ] || [ "${userexecperm}" == "2" ] || [ "${userexecperm}" == "4" ]  || [ "${userexecperm}" == "6" ]; then
+		if [ "${userexecperm}" == "0" ]||[ "${userexecperm}" == "2" ]||[ "${userexecperm}" == "4" ]||[ "${userexecperm}" == "6" ]; then
 			# If user permission is invalid, then check for invalid group permissions
-			if [ "${groupexecperm}" == "0" ] || [ "${groupexecperm}" == "2" ] || [ "${groupexecperm}" == "4" ]  || [ "${groupexecperm}" == "6" ]; then
+			if [ "${groupexecperm}" == "0" ]||[ "${groupexecperm}" == "2" ]||[ "${groupexecperm}" == "4" ]||[ "${groupexecperm}" == "6" ]; then
 				# If permission issues are found
 				fn_print_warn_nl "Permissions issue found"
 				fn_script_log_warn "Permissions issue found"
@@ -122,14 +122,14 @@ fn_check_permissions(){
 				# Grab the first and second digit for user and group permission
 				userexecperm="${execperm:0:1}"
 				groupexecperm="${execperm:1:1}"
-				if [ "${userexecperm}" == "0" ] || [ "${userexecperm}" == "2" ] || [ "${userexecperm}" == "4" ]  || [ "${userexecperm}" == "6" ]; then
-					if [ "${groupexecperm}" == "0" ] || [ "${groupexecperm}" == "2" ] || [ "${groupexecperm}" == "4" ]  || [ "${groupexecperm}" == "6" ]; then
+				if [ "${userexecperm}" == "0" ]||[ "${userexecperm}" == "2" ]||[ "${userexecperm}" == "4" ]||[ "${userexecperm}" == "6" ]; then
+					if [ "${groupexecperm}" == "0" ]||[ "${groupexecperm}" == "2" ]||[ "${groupexecperm}" == "4" ]||[ "${groupexecperm}" == "6" ]; then
 					# If errors are still found
 					fn_print_fail_nl "The following file could not be set executable:"
 					ls -l "${executabledir}/${execname}"
 					fn_script_log_warn "The following file could not be set executable:"
 					fn_script_log_info "${executabledir}/${execname}"
-					if [ "${monitorflag}" == 1 ]; then
+					if [ "${monitorflag}" == "1" ]; then
 						alert="permissions"
 						alert.sh
 					fi
@@ -171,7 +171,7 @@ fn_sys_perm_fix_manually_msg(){
 	fn_script_log_info "To fix this issue, run the following command as root:"
 	echo "	  chmod a+rx /sys /sys/class /sys/class/net"
 	fn_script_log "chmod a+rx /sys /sys/class /sys/class/net"
-	sleep 1
+	sleep 0.5
 	if [ "${monitorflag}" == 1 ]; then
 		alert="permissions"
 		alert.sh
@@ -184,7 +184,7 @@ fn_sys_perm_errors_fix(){
 	sudo -v > /dev/null 2>&1
 	if [ $? -eq 0 ]; then
 		fn_print_dots "Automatically fixing /sys permissions"
-		sleep 2
+		sleep 0.5
 		fn_script_log_info "Automatically fixing /sys permissions."
 		if [ "${sysdirpermerror}" == "1" ]; then
 			sudo chmod a+rx "/sys"
@@ -200,13 +200,13 @@ fn_sys_perm_errors_fix(){
 		if [ "${sysdirpermerror}" == "1" ]||[ "${classdirpermerror}" == "1" ]||[ "${netdirpermerror}" == "1" ]; then
 			fn_print_error "Could not fix /sys permissions"
 			fn_script_log_error "Could not fix /sys permissions."
-			sleep 1
+			sleep 0.5
 			# Show the user how to fix
 			fn_sys_perm_fix_manually_msg
 		else
 			fn_print_ok_nl "Automatically fixing /sys permissions"
 			fn_script_log_pass "Permissions in /sys fixed"
-			sleep 1
+			sleep 0.5
 		fi
 	else
 	# Show the user how to fix
@@ -221,7 +221,7 @@ fn_sys_perm_error_process(){
 	if [ "${sysdirpermerror}" == "1" ]||[ "${classdirpermerror}" == "1" ]||[ "${netdirpermerror}" == "1" ]; then
 		fn_print_error_nl "Permission error(s) found in /sys"
 		fn_script_log_error "Permission error(s) found in /sys"
-		sleep 1
+		sleep 0.5
 		# Run the fix
 		fn_sys_perm_errors_fix
 	fi

+ 2 - 2
lgsm/functions/check_status.sh

@@ -12,7 +12,7 @@ if [ "${gamename}" == "TeamSpeak 3" ]; then
 	# 1: Server is running
 	# 0: Server seems to have died
 	# 0: No server running (ts3server.pid is missing)
-	status=$(${executabledir}/ts3server_startscript.sh status servercfgfullpathfile=${servercfgfullpath})
+	status=$("${executabledir}/ts3server_startscript.sh" status servercfgfullpathfile=${servercfgfullpath})
 	if [ "${status}" == "Server is running" ]; then
 		status=1
 	else
@@ -25,7 +25,7 @@ elif [ "${gamename}" == "Mumble" ]; then
 	info_config.sh
 	# 1: Server is listening
 	# 0: Server is not listening, considered closed
-	mumblepid=$(netstat -nap  2>/dev/null | grep udp | grep ${port} | grep murmur | awk '{ print $6 }' | awk -F'/' '{ print $1 }')
+	mumblepid=$(netstat -nap  2>/dev/null | grep udp | grep "${port}" | grep murmur | awk '{ print $6 }' | awk -F'/' '{ print $1 }')
 	if [ -z "${mumblepid}" ]; then
 		status=0
 	else

+ 1 - 2
lgsm/functions/check_steamcmd.sh

@@ -40,7 +40,6 @@ fn_check_steamcmd_user(){
 		fi
 		steamuser="anonymous"
 		steampass=''
-		sleep 1
 	fi
 }
 
@@ -53,7 +52,7 @@ fn_check_steamcmd_sh(){
 		else
 			fn_print_error_nl "SteamCMD is missing"
 			fn_script_log_error "SteamCMD is missing"
-			sleep 1
+			sleep 0.5
 			fn_install_steamcmd
 		fi
 	elif [ "${function_selfname}" == "command_install.sh" ]; then

+ 2 - 2
lgsm/functions/check_system_requirements.sh

@@ -39,8 +39,8 @@ if [ -n "${ramrequirementmb}" ]; then
 		sleep 0.5
 		# Warn the user
 		fn_print_warn_nl "Check RAM: ${ramrequirementgb}G required, ${physmemtotal} available"
-		sleep 1
+		sleep 0.5
 		echo  "	* ${gamename} server may fail to run or experience poor performance."
-		sleep 1
+		sleep 0.5
 	fi
 fi

+ 14 - 14
lgsm/functions/command_backup.sh

@@ -17,7 +17,7 @@ fn_backup_trap(){
 	echo -ne "backup ${backupname}.tar.gz..."
 	fn_print_canceled_eol_nl
 	fn_script_log_info "Backup ${backupname}.tar.gz: CANCELED"
-	sleep 1
+	sleep 0.5
 	rm -f "${backupdir}/${backupname}.tar.gz" | tee -a "${lgsmlog}"
 	echo -ne "backup ${backupname}.tar.gz..."
 	fn_print_removed_eol_nl
@@ -44,9 +44,9 @@ fn_backup_init(){
 	info_distro.sh
 	fn_print_dots "Backup starting"
 	fn_script_log_info "Backup starting"
-	sleep 1
+	sleep 0.5
 	fn_print_ok "Backup starting"
-	sleep 1
+	sleep 0.5
 	echo -ne "\n"
 	if [ ! -d "${backupdir}" ]||[ "${backupcount}" == "0" ]; then
 		fn_print_info_nl "There are no previous backups"
@@ -59,11 +59,11 @@ fn_backup_init(){
 			daysago="${lastbackupdaysago} days ago"
 		fi
 		echo "	* Previous backup was created ${daysago}, total size ${lastbackupsize}"
-		sleep 1
+		sleep 0.5
 	fi
 }
 
-# Check if server is started and wether to stop it
+# Check if server is started and whether to stop it
 fn_backup_stop_server(){
 	check_status.sh
 	# Server is stopped
@@ -80,7 +80,7 @@ fn_backup_stop_server(){
 	else
 		fn_print_warn_nl "${servicename} will be stopped during the backup"
 		fn_script_log_warn "${servicename} will be stopped during the backup"
-		sleep 4
+		sleep 5
 		serverstopped="yes"
 		exitbypass=1
 		command_stop.sh
@@ -131,7 +131,7 @@ fn_backup_compression(){
 		fn_script_log_fatal "Starting backup"
 	else
 		fn_print_ok_eol
-		sleep 1
+		sleep 0.5
 		fn_print_ok_nl "Completed: ${backupname}.tar.gz, total size $(du -sh "${backupdir}/${backupname}.tar.gz" | awk '{print $1}')"
 		fn_script_log_pass "Backup created: ${backupname}.tar.gz, total size $(du -sh "${backupdir}/${backupname}.tar.gz" | awk '{print $1}')"
 	fi
@@ -153,18 +153,18 @@ fn_backup_prune(){
 		if [ "${backupquotadiff}" -gt "0" ]||[ "${backupsoudatedcount}" -gt "0" ]; then
 			fn_print_dots "Pruning"
 			fn_script_log_info "Backup pruning activated"
-			sleep 1
+			sleep 0.5
 			fn_print_ok_nl "Pruning"
-			sleep 1
+			sleep 0.5
 			# If maxbackups greater or equal to backupsoutdatedcount, then it is over maxbackupdays
 			if [ "${backupquotadiff}" -ge "${backupsoudatedcount}" ]; then
 				# Display how many backups will be cleared
 				echo "	* Pruning: ${backupquotadiff} backup(s) has exceeded the ${maxbackups} backups limit"
 				fn_script_log_info "Pruning: ${backupquotadiff} backup(s) has exceeded the ${maxbackups} backups limit"
-				sleep 1
+				sleep 0.5
 				fn_print_dots "Pruning: Clearing ${backupquotadiff} backup(s)"
 				fn_script_log_info "Pruning: Clearing ${backupquotadiff} backup(s)"
-				sleep 1
+				sleep 0.5
 				# Clear backups over quota
 				find "${backupdir}"/ -type f -name "*.tar.gz" -printf '%T@ %p\n' | sort -rn | tail -${backupquotadiff} | cut -f2- -d" " | xargs rm
 				fn_print_ok_nl "Pruning: Clearing ${backupquotadiff} backup(s)"
@@ -174,16 +174,16 @@ fn_backup_prune(){
 				# Display how many backups will be cleared
 				echo "	* Pruning: ${backupsoudatedcount} backup(s) are older than ${maxbackupdays} days."
 				fn_script_log_info "Pruning: ${backupsoudatedcount} backup(s) older than ${maxbackupdays} days."
-				sleep 1
+				sleep 0.5
 				fn_print_dots "Pruning: Clearing ${backupquotadiff} backup(s)."
 				fn_script_log_info "Pruning: Clearing ${backupquotadiff} backup(s)"
-				sleep 1
+				sleep 0.5
 				# Clear backups over quota
 				find "${backupdir}"/ -type f -mtime +"${maxbackupdays}" -exec rm -f {} \;
 				fn_print_ok_nl "Pruning: Clearing ${backupquotadiff} backup(s)"
 				fn_script_log_pass "Pruning: Cleared ${backupquotadiff} backup(s)"
 			fi
-			sleep 1
+			sleep 0.5
 		fi
 	fi
 }

+ 4 - 4
lgsm/functions/command_console.sh

@@ -24,19 +24,19 @@ if ! fn_prompt_yn "Continue?" Y; then
 	echo Exiting; return
 fi
 fn_print_dots "Accessing console"
-sleep 1
+sleep 0.5
 check_status.sh
 if [ "${status}" != "0" ]; then
 	fn_print_ok_nl "Accessing console"
 	fn_script_log_pass "Console accessed"
-	sleep 1
-	tmux attach-session -t ${servicename}
+	sleep 0.5
+	tmux attach-session -t="${servicename}"
 	fn_print_ok_nl "Closing console"
 	fn_script_log_pass "Console closed"
 else
 	fn_print_error_nl "Server not running"
 	fn_script_log_error "Failed to access: Server not running"
-	sleep 1
+	sleep 0.5
 	if fn_prompt_yn "Do you want to start the server?" Y; then
 		exitbypass=1
 		command_start.sh

+ 6 - 6
lgsm/functions/command_debug.sh

@@ -40,7 +40,7 @@ if [ -n "${glibcrequired}" ]; then
 			:
 	elif [ "${glibcrequired}" == "UNKNOWN" ]; then
 		echo -e "${blue}GLIBC required:\t${red}${glibcrequired}"
-	elif [ "$(printf '%s\n'${glibcrequired}'\n' ${glibcversion} | sort -V | head -n 1)" != "${glibcrequired}" ]; then
+	elif [ "$(printf '%s\n'${glibcrequired}'\n' "${glibcversion}" | sort -V | head -n 1)" != "${glibcrequired}" ]; then
 		if [ "${glibcfix}" == "yes" ]; then
 			echo -e "${blue}GLIBC required:\t${red}${glibcrequired} ${default}(${green}Using GLIBC fix${default})"
 		else
@@ -80,12 +80,12 @@ fi
 
 fn_print_info_nl "Stopping any running servers"
 fn_script_log_info "Stopping any running servers"
-sleep 1
+sleep 0.5
 exitbypass=1
 command_stop.sh
 fn_print_dots "Starting debug"
 fn_script_log_info "Starting debug"
-sleep 1
+sleep 0.5
 fn_print_ok_nl "Starting debug"
 
 # Create lockfile
@@ -95,16 +95,16 @@ fn_script_log_info "${rootdir}/${lockselfname}"
 # trap to remove lockfile on quit.
 trap fn_lockfile_trap INT
 
-cd "${executabledir}"
+cd "${executabledir}" || exit
 if [ "${engine}" == "source" ]||[ "${engine}" == "goldsource" ]; then
 	${executable} ${parms} -debug
 elif [ "${engine}" == "realvirtuality" ]; then
 	# Arma3 requires semicolons in the module list, which need to
 	# be escaped for regular (tmux) loading, but need to be
 	# stripped when loading straight from the console.
-	${executable} ${parms//\\;/;}
+	"${executable}" "${parms//\\;/;}"
 else
-	${executable} ${parms}
+	"${executable}" "${parms}"
 fi
 
 fn_print_dots "Stopping debug"

+ 2 - 1
lgsm/functions/command_details.sh

@@ -12,10 +12,11 @@ local function_selfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
 # Run checks and gathers details to display.
 check.sh
 info_config.sh
+info_parms.sh
 info_distro.sh
 info_glibc.sh
-info_parms.sh
 info_messages.sh
+query_gamedig.sh
 fn_info_message_distro
 fn_info_message_performance
 fn_info_message_disk

+ 14 - 0
lgsm/functions/command_dev_clear_functions.sh

@@ -0,0 +1,14 @@
+#!/bin/bash
+# command_dev_clear_functions.sh function
+# Author: Daniel Gibbs
+# Website: https://linuxgsm.com
+# Description: Deletes the contents of the functions dir.
+
+echo "================================="
+echo "Clear Functions"
+echo "================================="
+echo ""
+if fn_prompt_yn "Do you want to delete all functions?" Y; then
+	rm -rfv "${functionsdir}/*"
+fi
+core_exit.sh

+ 3 - 3
lgsm/functions/command_dev_detect_deps.sh

@@ -24,9 +24,9 @@ files=$(find "${serverfiles}" | wc -l)
 find "${serverfiles}" -type f -print0 |
 while IFS= read -r -d $'\0' line; do
 	if [ "${readelf}" == "eu-readelf" ]; then
-		${readelf} -d "${line}" 2>/dev/null|grep NEEDED|awk '{ print $4 }'|sed 's/\[//g;s/\]//g' >> "${tmpdir}/.depdetect_readelf"
+		${readelf} -d "${line}" 2>/dev/null | grep NEEDED| awk '{ print $4 }' | sed 's/\[//g;s/\]//g' >> "${tmpdir}/.depdetect_readelf"
 	else
-		${readelf} -d "${line}" 2>/dev/null|grep NEEDED|awk '{ print $5 }'|sed 's/\[//g;s/\]//g' >> "${tmpdir}/.depdetect_readelf"
+		${readelf} -d "${line}" 2>/dev/null | grep NEEDED | awk '{ print $5 }' | sed 's/\[//g;s/\]//g' >> "${tmpdir}/.depdetect_readelf"
 	fi
 	echo -n "${i} / ${files}" $'\r'
 	((i++))
@@ -114,7 +114,7 @@ fi
 echo ""
 echo "Required Librarys"
 echo "================================="
-sort "${tmpdir}/.depdetect_readelf" |uniq
+sort "${tmpdir}/.depdetect_readelf" | uniq
 echo -en "\n"
 rm -f "${tmpdir}/.depdetect_centos_line"
 rm -f "${tmpdir}/.depdetect_centos_list"

+ 3 - 3
lgsm/functions/command_dev_detect_glibc.sh

@@ -31,18 +31,18 @@ echo ""
 files=$(find "${serverfiles}" | wc -l)
 find "${serverfiles}" -type f -print0 |
 while IFS= read -r -d $'\0' line; do
-	glibcversion=$(objdump -T "${line}" 2>/dev/null|grep -oP "GLIBC[^ ]+" |grep -v GLIBCXX|sort|uniq|sort -r --version-sort| head -n 1)
+	glibcversion=$(objdump -T "${line}" 2>/dev/null | grep -oP "GLIBC[^ ]+" | grep -v GLIBCXX | sort | uniq | sort -r --version-sort | head -n 1)
 	if [ "${glibcversion}" ]; then
 		echo "${glibcversion}: ${line}" >>"${tmpdir}/detect_glibc_files.tmp"
 	fi
-	objdump -T "${line}" 2>/dev/null|grep -oP "GLIBC[^ ]+" >>"${tmpdir}/detect_glibc.tmp"
+	objdump -T "${line}" 2>/dev/null | grep -oP "GLIBC[^ ]+" >>"${tmpdir}/detect_glibc.tmp"
 	echo -n "${i} / ${files}" $'\r'
 	((i++))
 done
 echo ""
 cat "${tmpdir}/detect_glibc_files.tmp"
 echo ""
-cat "${tmpdir}/detect_glibc.tmp"|sort|uniq|sort -r --version-sort
+cat "${tmpdir}/detect_glibc.tmp" | sort | uniq | sort -r --version-sort
 rm "${tmpdir}/detect_glibc.tmp"
 rm "${tmpdir}/detect_glibc_files.tmp"
 

+ 6 - 6
lgsm/functions/command_dev_detect_ldd.sh

@@ -25,14 +25,14 @@ echo ""
 files=$(find "${serverfiles}" | wc -l)
 find "${serverfiles}" -type f -print0 |
 while IFS= read -r -d $'\0' line; do
-	#ldd -v $line 2>/dev/null|grep "=>" >>"${tmpdir}/detect_ldd.tmp"
-	if [ -n "$(ldd "${line}" 2>/dev/null |grep -v "not a dynamic executable")" ]; then
+	if ldd "${line}" 2>/dev/null | grep -v "not a dynamic executable"
+	then
 		echo "${line}" >> "${tmpdir}/detect_ldd.tmp"
-		ldd "${line}" 2>/dev/null |grep -v "not a dynamic executable" >> "${tmpdir}/detect_ldd.tmp"
-
-		if [ -n "$(ldd "${line}" 2>/dev/null |grep -v "not a dynamic executable"|grep "not found")" ]; then
+		ldd "${line}" 2>/dev/null | grep -v "not a dynamic executable" >> "${tmpdir}/detect_ldd.tmp"
+		if ldd "${line}" 2>/dev/null | grep -v "not a dynamic executable" | grep "not found"
+		then
 			echo "${line}" >> "${tmpdir}/detect_ldd_not_found.tmp"
-			ldd "${line}" 2>/dev/null |grep -v "not a dynamic executable"|grep "not found" >> "${tmpdir}/detect_ldd_not_found.tmp"
+			ldd "${line}" 2>/dev/null | grep -v "not a dynamic executable" | grep "not found" >> "${tmpdir}/detect_ldd_not_found.tmp"
 		fi
 	fi
 	echo -n "$i / $files" $'\r'

+ 40 - 0
lgsm/functions/command_dev_query_raw.sh

@@ -0,0 +1,40 @@
+#!/bin/bash
+# command_dev_query_raw.sh function
+# Author: Daniel Gibbs
+# Website: https://gameservermanagers.com
+# Description: Raw gamedig output of the server.
+
+echo "================================="
+echo "Gamedig Raw Output"
+echo "================================="
+echo""
+if [ ! "$(command -v gamedig 2>/dev/null)" ]; then
+	fn_print_failure_nl "gamedig not installed"
+fi
+if [ ! "$(command -v jq 2>/dev/null)" ]; then
+	fn_print_failure_nl "jq not installed"
+fi
+
+
+info_config.sh
+info_parms.sh
+if [ "${engine}" == "idtech3_ql" ]; then
+	local engine="quakelive"
+elif [ "${gamename}" == "Killing Floor 2" ]; then
+	local engine="unreal4"
+fi
+
+query_gamedig.sh
+echo "gamedig --type \"${gamedigengine}\" --host \"${ip}\" --port \"${port}\"|jq"
+echo""
+echo "${gamedigraw}" | jq
+echo""
+echo "================================="
+echo "gsquery Raw Output"
+echo "================================="
+echo""
+echo "./query_gsquery.py -a \"${ip}\" -p \"${port}\" -e \"${engine}\""
+if [ ! -f "${functionsdir}/query_gsquery.py" ]; then
+	fn_fetch_file_github "lgsm/functions" "query_gsquery.py" "${functionsdir}" "chmodx" "norun" "noforce" "nomd5"
+fi
+"${functionsdir}"/query_gsquery.py -a "${ip}" -p "${port}" -e "${engine}"

+ 3 - 3
lgsm/functions/command_fastdl.sh

@@ -271,7 +271,7 @@ fn_fastdl_gmod(){
 		fi
 		# Clear addons directory in fastdl
 		echo -en "clearing addons dir from fastdl dir..."
-		sleep 1
+		sleep 0.5
 		rm -R "${fastdldir:?}/addons"
 		exitcode=$?
 		if [ ${exitcode} -ne 0 ]; then
@@ -286,7 +286,7 @@ fn_fastdl_gmod(){
 	# Correct content that may be into a lua directory by mistake like some darkrpmodification addons
 	if [ -d "${fastdldir}/lua" ]; then
 		echo -en "correcting DarkRP files..."
-		sleep 2
+		sleep 1
 		cp -Rf "${fastdldir}/lua/"* "${fastdldir}"
 		exitcode=$?
 		if [ ${exitcode} -ne 0 ]; then
@@ -302,7 +302,7 @@ fn_fastdl_gmod(){
 		totalfiles=$(wc -l < "${tmpdir}/fastdl_files_to_compress.txt")
 		# Calculates total file size
 		while read dufile; do
-			filesize=$(du -b "${dufile}"| awk '{ print $1 }')
+			filesize=$(du -b "${dufile}" | awk '{ print $1 }')
 			filesizetotal=$(( ${filesizetotal} + ${filesize} ))
 		done <"${tmpdir}/fastdl_files_to_compress.txt"
 	fi

+ 2 - 2
lgsm/functions/command_mods_install.sh

@@ -16,7 +16,7 @@ fn_print_header
 
 # Displays a list of installed mods
 fn_mods_installed_list
-if [ ${installedmodscount} -gt 0 ]; then
+if [ "${installedmodscount}" -gt "0" ]; then
 	echo "Installed addons/mods"
 	echo "================================="
 	# Go through all available commands, get details and display them to the user
@@ -85,7 +85,7 @@ if [ -f "${modsinstalledlistfullpath}" ]; then
 	if [ -n "$(sed -n "/^${modcommand}$/p" "${modsinstalledlistfullpath}")" ]; then
 		fn_print_warning_nl "${modprettyname} is already installed"
 		fn_script_log_warn "${modprettyname} is already installed"
-		sleep 1
+		sleep 0.5
 		echo " * Any configs may be overwritten."
 		if ! fn_prompt_yn "Continue?" Y; then
 			echo Exiting; core_exit.sh

+ 1 - 1
lgsm/functions/command_mods_remove.sh

@@ -58,7 +58,7 @@ fn_script_log_info "Removing ${modsfilelistsize} files from ${modprettyname}"
 echo -e "removing ${modprettyname}"
 echo -e "* ${modsfilelistsize} files to be removed"
 echo -e "* location: ${modinstalldir}"
-sleep 1
+sleep 0.5
 # Go through every file and remove it
 modfileline="1"
 tput sc

+ 1 - 1
lgsm/functions/command_mods_update.sh

@@ -66,7 +66,7 @@ for ((ulindex=0; ulindex < ${#installedmodslist[@]}; ulindex++)); do
 		echo -e "	* ${yellow}${modprettyname}${default} (retain common custom files)"
 	fi
 done
-sleep 1
+sleep 0.5
 
 ## Update
 # List all installed mods and apply update

+ 137 - 64
lgsm/functions/command_monitor.sh

@@ -4,12 +4,82 @@
 # Contributor: UltimateByte
 # Website: https://linuxgsm.com
 # Description: Monitors server by checking for running processes.
-# then passes to monitor_gsquery.sh.
+# then passes to gamedig and gsquery.
 
 local commandname="MONITOR"
 local commandaction="Monitor"
 local function_selfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
 
+fn_monitor_loop(){
+# Will query up to 5 times every 15 seconds.
+# Query will wait up to 60 seconds to confirm server is down giving server time if changing map.
+for queryattempt in {1..5}; do
+	fn_print_dots "Querying port: ${querymethod}: ${ip}:${queryport} : ${totalseconds}/${queryattempt}: "
+	fn_print_querying_eol
+	fn_script_log_info "Querying port: ${querymethod}: ${ip}:${queryport} : ${queryattempt} : QUERYING"
+	sleep 0.5
+	if [ "${querymethod}" ==  "gamedig" ]; then
+		query_gamedig.sh
+	elif [ "${querymethod}" ==  "gsquery" ]; then
+		if [ ! -f "${functionsdir}/query_gsquery.py" ]; then
+			fn_fetch_file_github "lgsm/functions" "query_gsquery.py" "${functionsdir}" "chmodx" "norun" "noforce" "nomd5"
+		fi
+		"${functionsdir}"/query_gsquery.py -a "${ip}" -p "${queryport}" -e "${engine}" > /dev/null 2>&1
+		querystatus="$?"
+	elif [ "${querymethod}" ==  "telnet" ]; then
+		bash -c 'exec 3<> /dev/tcp/'${ip}'/'${queryport}''
+		querystatus="$?"
+	fi
+
+	if [ "${querystatus}" == "0" ]; then
+		# Server query OK
+		sleep 0.5
+		fn_print_ok "Querying port: ${querymethod}: ${ip}:${queryport} : ${totalseconds}/${queryattempt}: "
+		fn_print_ok_eol_nl
+		fn_script_log_pass "Querying port: ${querymethod}: ${ip}:${queryport} : ${queryattempt}: OK"
+		exitcode=0
+		monitorpass=1
+		core_exit.sh
+	else
+		# Server query FAIL
+		fn_script_log_info "Querying port: ${querymethod}: ${ip}:${queryport} : ${queryattempt}: FAIL"
+		fn_print_fail "Querying port: ${querymethod}: ${ip}:${queryport} : ${totalseconds}/${queryattempt}: "
+		fn_print_fail_eol
+		sleep 0.5
+		# monitor try gamedig first then gsquery before restarting
+		if [ "${querymethod}" ==  "gsquery" ]; then
+			if [ "${totalseconds}" -ge "59" ]; then
+				# Server query FAIL for over 59 seconds reboot server
+				fn_print_fail "Querying port: ${querymethod}: ${ip}:${queryport} : ${totalseconds}/${queryattempt}: "
+				fn_print_fail_eol_nl
+				fn_script_log_error "Querying port: ${querymethod}: ${ip}:${queryport} : ${queryattempt}: FAIL"
+				sleep 0.5
+
+				# Send alert if enabled
+				alert="restartquery"
+				alert.sh
+				command_restart.sh
+				core_exit.sh
+			fi
+		elif [ "${querymethod}" ==  "gamedig" ]; then
+			if [ "${totalseconds}" -ge "29" ]; then
+				break
+			fi
+		fi
+
+		# Seconds counter
+		for seconds in {1..15}; do
+			fn_print_fail "Querying port: ${querymethod}: ${ip}:${queryport} : ${totalseconds}/${queryattempt}: WAIT"
+			totalseconds=$((totalseconds + 1))
+			sleep 1
+			if [ "${seconds}" == "15" ]; then
+				break
+			fi
+		done
+	fi
+done
+}
+
 fn_monitor_check_lockfile(){
 	# Monitor does not run it lockfile is not found
 	if [ ! -f "${rootdir}/${lockselfname}" ]; then
@@ -22,102 +92,105 @@ fn_monitor_check_lockfile(){
 
 fn_monitor_check_update(){
 	# Monitor will not check if update is running.
-	if [ "$(ps -ef|grep "${selfname} update"|grep -v grep|wc -l)" != "0" ]; then
+	if [ "$(ps -ef | grep "${selfname} update" | grep -v grep | wc -l)" != "0" ]; then
 		fn_print_error_nl "SteamCMD is currently checking for updates"
 		fn_script_log_error "SteamCMD is currently checking for updates"
-		sleep 1
+		sleep 0.5
 		core_exit.sh
 	fi
 }
 
-fn_monitor_msg_checking(){
+fn_monitor_check_session(){
 	fn_print_dots "Checking session: "
 	fn_print_checking_eol
 	fn_script_log_info "Checking session: CHECKING"
-	sleep 1
-}
-
-fn_monitor_teamspeak3(){
+	sleep 0.5
 	if [ "${status}" != "0" ]; then
 		fn_print_ok "Checking session: "
 		fn_print_ok_eol_nl
 		fn_script_log_pass "Checking session: OK"
 	else
-		fn_print_error "Checking session: ${ts3error}: "
+		if [ "${gamename}" == "TeamSpeak 3" ]; then
+			fn_print_error "Checking session: ${ts3error}: "
+		elif [ "${gamename}" == "Mumble" ]; then
+			fn_print_error "Checking session: Not listening to port ${queryport}"
+		else
+			fn_print_error "Checking session: "
+		fi
 		fn_print_fail_eol_nl
-		fn_script_log_error "Checking session: ${ts3error}: FAIL"
-		failurereason="${ts3error}"
+		fn_script_log_error "Checking session: FAIL"
 		alert="restart"
 		alert.sh
 		fn_script_log_info "Monitor is starting ${servername}"
-		sleep 1
+		sleep 0.5
 		command_restart.sh
 	fi
+	sleep 0.5
 }
 
-fn_monitor_mumble(){
-	if [ "${status}" != "0" ]; then
-		fn_print_ok "Checking session: "
-		fn_print_ok_eol_nl
-		fn_script_log_pass "Checking session: OK"
-	else
-		fn_print_error "Checking session: Not listening to port ${port}"
-		fn_print_fail_eol_nl
-		fn_script_log_error "Checking session: Not listening to port ${port}"
-		failurereason="Checking session: Not listening to port ${port}"
-		alert="restart"
-		alert.sh
-		fn_script_log_info "Monitor is starting ${servername}"
-		sleep 1
-		command_restart.sh
-	fi
-}
-fn_monitor_tmux(){
-	# checks that tmux session is running
-	if [ "${status}" != "0" ]; then
-		fn_print_ok "Checking session: "
-		fn_print_ok_eol_nl
-		fn_script_log_pass "Checking session: OK"
-		# runs gsquery check on game with specific engines.
-		local allowed_engines_array=( avalanche2.0 avalanche3.0 goldsource idtech2 idtech3 idtech3_ql iw2.0 iw3.0 madness quake refractor realvirtuality source spark starbound unity3d unreal unreal2 unreal4 )
-		for allowed_engine in "${allowed_engines_array[@]}"
-		do
-			if [ "${allowed_engine}" == "starbound" ]; then
-				info_config.sh
-				if [ "${queryenabled}" == "true" ]; then
-					monitor_gsquery.sh
-				fi
-			elif [ "${allowed_engine}" == "${engine}" ]; then
-				monitor_gsquery.sh
+fn_monitor_query(){
+	fn_script_log_info "Querying port: query enabled"
+	# engines that work with query
+	local allowed_engines_array=( avalanche2.0 avalanche3.0 goldsource idtech2 idtech3 idtech3_ql iw2.0 iw3.0 madness quake refractor realvirtuality source spark starbound unity3d unreal unreal2 unreal4 )
+	for allowed_engine in "${allowed_engines_array[@]}"
+	do
+		if [ "${allowed_engine}" == "${engine}" ]; then
+			if [ "${engine}" == "idtech3_ql" ]; then
+				local engine="quakelive"
+			elif [ "${gamename}" == "Killing Floor 2" ]; then
+				local engine="unreal4"
 			fi
-		done
-	else
-		fn_print_error "Checking session: "
-		fn_print_fail_eol_nl
-		fn_script_log_error "Checking session: FAIL"
-		alert="restart"
-		alert.sh
-		fn_script_log_info "Monitor is starting ${servername}"
-		sleep 1
-		command_restart.sh
-	fi
+
+			# will first attempt to use gamedig then gsquery
+			totalseconds=0
+			local query_methods_array=( gamedig gsquery )
+			for query_method in "${query_methods_array[@]}"
+			do
+				if [ "${query_method}" == "gamedig" ]; then
+					# will bypass gamedig if not installed
+					if [ "$(command -v gamedig 2>/dev/null)" ]&&[ "$(command -v jq 2>/dev/null)" ]; then
+						if [ -z "${monitorpass}" ]; then
+							querymethod="${query_method}"
+							fn_monitor_loop
+						fi
+					fi
+				else
+					if [ -z "${monitorpass}" ]; then
+						querymethod="${query_method}"
+						fn_monitor_loop
+					fi
+				fi
+			done
+		fi
+	done
+}
+
+fn_monitor_query_telnet(){
+	querymethod="telnet"
+	fn_monitor_loop
 }
 
 monitorflag=1
 fn_print_dots "${servername}"
-sleep 1
+sleep 0.5
 check.sh
 logs.sh
 info_config.sh
+info_parms.sh
 
 fn_monitor_check_lockfile
 fn_monitor_check_update
-fn_monitor_msg_checking
-if [ "${gamename}" == "TeamSpeak 3" ]; then
-	fn_monitor_teamspeak3
-elif [ "${gamename}" == "Mumble" ]; then
-	fn_monitor_mumble
+fn_monitor_check_session
+# Query has to be enabled in starbound config
+if [ "${gamename}" == "starbound" ]; then
+	if [ "${queryenabled}" == "true" ]; then
+		fn_monitor_query
+	fi
+elif [ "${gamename}" == "TeamSpeak 3" ]; then
+	fn_monitor_query_telnet
 else
-	fn_monitor_tmux
+	fn_monitor_query
 fi
+
 core_exit.sh
+

+ 2 - 2
lgsm/functions/command_postdetails.sh

@@ -74,7 +74,7 @@ fi
 
 if [ "${posttarget}" == "http://pastebin.com" ] ; then
 	fn_print_dots "Posting details to pastbin.com for ${postexpire}"
-	sleep 1
+	sleep 0.5
 	# grab the return from 'value' from an initial visit to pastebin.
 	csrftoken=$(${curlpath} -s "${posttarget}" |
 					sed -n 's/^.*input type="hidden" name="csrf_token_post" value="\(.*\)".*$/\1/p')
@@ -94,7 +94,7 @@ if [ "${posttarget}" == "http://pastebin.com" ] ; then
 	echo "  Please share the following url for support: ${pdurl}"
 elif [ "${posttarget}" == "https://hastebin.com" ] ; then
 	fn_print_dots "Posting details to hastebin.com"
-	sleep 1
+	sleep 0.5
 	# hastebin is a bit simpler.  If successful, the returned result
 	# should look like: {"something":"key"}, putting the reference that
 	# we need in "key".  TODO - error handling. -CedarLUG

+ 12 - 11
lgsm/functions/command_start.sh

@@ -15,16 +15,16 @@ fn_start_teamspeak3(){
 		fn_script_log_warn "${servercfgfullpath} is missing"
 		echo  "	* Creating blank ${servercfg}"
 		fn_script_log_info "Creating blank ${servercfg}"
-		sleep 2
+		sleep 1
 		echo  "	* ${servercfg} can remain blank by default."
 		fn_script_log_info "${servercfgfullpath} can remain blank by default."
-		sleep 2
+		sleep 1
 		echo  "	* ${servercfg} is located in ${servercfgfullpath}."
 		fn_script_log_info "${servercfg} is located in ${servercfgfullpath}."
 		sleep 5
 		touch "${servercfgfullpath}"
 	fi
-	sleep 1
+	sleep 0.5
 	check_status.sh
 	if [ "${status}" != "0" ]; then
 		fn_print_info_nl "${servername} is already running"
@@ -52,7 +52,7 @@ fn_start_teamspeak3(){
 	else
 		./ts3server_startscript.sh start inifile="${servercfgfullpath}" > /dev/null 2>&1
 	fi
-	sleep 1
+	sleep 0.5
 	check_status.sh
 	if [ "${status}" == "0" ]; then
 		fn_print_fail_nl "Unable to start ${servername}"
@@ -112,9 +112,9 @@ fn_start_tmux(){
 	touch "${consolelog}"
 
 	# Get tmux version
-	tmuxversion="$(tmux -V|sed "s/tmux //"|sed -n '1 p')"
+	tmuxversion="$(tmux -V | sed "s/tmux //" | sed -n '1 p')"
 	# Tmux compiled from source will return "master", therefore ignore it
-	if [ "$(tmux -V|sed "s/tmux //"|sed -n '1 p')" == "master" ]; then
+	if [ "$(tmux -V | sed "s/tmux //" | sed -n '1 p')" == "master" ]; then
 		fn_script_log "Tmux version: master (user compiled)"
 		echo "Tmux version: master (user compiled)" >> "${consolelog}"
 		if [ "${consolelogging}" == "on" ]||[ -z "${consolelogging}" ]; then
@@ -122,7 +122,7 @@ fn_start_tmux(){
 		fi
 	elif [ -n "${tmuxversion}" ]; then
 		# Get the digit version of tmux
-		tmuxversion="$(tmux -V|sed "s/tmux //"|sed -n '1 p'|tr -cd '[:digit:]')"
+		tmuxversion="$(tmux -V | sed "s/tmux //" | sed -n '1 p' | tr -cd '[:digit:]')"
 		# tmux pipe-pane not supported in tmux versions < 1.6
 		if [ "${tmuxversion}" -lt "16" ]; then
 			echo "Console logging disabled: Tmux => 1.6 required
@@ -148,14 +148,14 @@ if [ "${consolelogging}" == "off" ]; then
 	echo "Console logging disabled by user" >> "${consolelog}"
 	fn_script_log_info "Console logging disabled by user"
 fi
-sleep 1
+sleep 0.5
 
 	# If the server fails to start
 	check_status.sh
 	if [ "${status}" == "0" ]; then
 		fn_print_fail_nl "Unable to start ${servername}"
 		fn_script_log_fatal "Unable to start ${servername}"
-		sleep 1
+		sleep 0.5
 		if [ -s "${lgsmlogdir}/.${servicename}-tmux-error.tmp" ]; then
 			fn_print_fail_nl "Unable to start ${servername}: Tmux error:"
 			fn_script_log_fatal "Unable to start ${servername}: Tmux error:"
@@ -169,7 +169,8 @@ sleep 1
 			cat "${lgsmlogdir}/.${servicename}-tmux-error.tmp" | tee -a "${lgsmlog}"
 
 			# Detected error https://linuxgsm.com/support
-			if [ $(grep -c "Operation not permitted" "${lgsmlogdir}/.${servicename}-tmux-error.tmp") ]; then
+			if grep -c "Operation not permitted" "${lgsmlogdir}/.${servicename}-tmux-error.tmp"
+			then
 			echo ""
 			echo "Fix"
 			echo "================================="
@@ -206,7 +207,7 @@ sleep 1
 }
 
 fn_print_dots "${servername}"
-sleep 1
+sleep 0.5
 check.sh
 fix.sh
 info_config.sh

+ 16 - 16
lgsm/functions/command_stop.sh

@@ -14,7 +14,7 @@ fn_stop_graceful_ctrlc(){
 	fn_print_dots "Graceful: CTRL+c"
 	fn_script_log_info "Graceful: CTRL+c"
 	# sends quit
-	tmux send-keys C-c -t "${servicename}" > /dev/null 2>&1
+	tmux send-keys C-c -t="${servicename}" > /dev/null 2>&1
 	# waits up to 30 seconds giving the server time to shutdown gracefuly
 	for seconds in {1..30}; do
 		check_status.sh
@@ -33,7 +33,7 @@ fn_stop_graceful_ctrlc(){
 		fn_print_fail_eol_nl
 		fn_script_log_error "Graceful: CTRL+c: FAIL"
 	fi
-	sleep 1
+	sleep 0.5
 	fn_stop_tmux
 }
 
@@ -44,7 +44,7 @@ fn_stop_graceful_cmd(){
 	fn_print_dots "Graceful: sending \"${1}\""
 	fn_script_log_info "Graceful: sending \"${1}\""
 	# sends specific stop command
-	tmux send -t "${servicename}" ${1} ENTER > /dev/null 2>&1
+	tmux send -t="${servicename}" "${1}" ENTER > /dev/null 2>&1
 	# waits up to given seconds giving the server time to shutdown gracefully
 	for ((seconds=1; seconds<=${2}; seconds++)); do
 		check_status.sh
@@ -63,7 +63,7 @@ fn_stop_graceful_cmd(){
 		fn_print_fail_eol_nl
 		fn_script_log_error "Graceful: sending \"${1}\": FAIL"
 	fi
-	sleep 1
+	sleep 0.5
 	fn_stop_tmux
 }
 
@@ -75,7 +75,7 @@ fn_stop_graceful_goldsource(){
 	fn_print_dots "Graceful: sending \"quit\""
 	fn_script_log_info "Graceful: sending \"quit\""
 	# sends quit
-	tmux send -t "${servicename}" quit ENTER > /dev/null 2>&1
+	tmux send -t="${servicename}" quit ENTER > /dev/null 2>&1
 	# waits 3 seconds as goldsource servers restart with the quit command
 	for seconds in {1..3}; do
 		sleep 1
@@ -84,7 +84,7 @@ fn_stop_graceful_goldsource(){
 	fn_print_ok "Graceful: sending \"quit\": ${seconds}: "
 	fn_print_ok_eol_nl
 	fn_script_log_pass "Graceful: sending \"quit\": OK: ${seconds} seconds"
-	sleep 1
+	sleep 0.5
 	fn_stop_tmux
 }
 
@@ -115,7 +115,7 @@ fn_stop_telnet_sdtd(){
 fn_stop_graceful_sdtd(){
 	fn_print_dots "Graceful: telnet"
 	fn_script_log_info "Graceful: telnet"
-	sleep 1
+	sleep 0.5
 	if [ "${telnetenabled}" == "false" ]; then
 		fn_print_info_nl "Graceful: telnet: DISABLED: Enable in ${servercfg}"
 	elif [ "$(command -v expect 2>/dev/null)" ]; then
@@ -123,10 +123,10 @@ fn_stop_graceful_sdtd(){
 		for telnetip in 127.0.0.1 ${ip}; do
 			fn_print_dots "Graceful: telnet: ${telnetip}"
 			fn_script_log_info "Graceful: telnet: ${telnetip}"
-			sleep 1
+			sleep 0.5
 			fn_stop_telnet_sdtd
-			completed=$(echo -en "\n ${sdtd_telnet_shutdown}"|grep "Completed.")
-			refused=$(echo -en "\n ${sdtd_telnet_shutdown}"|grep "Timeout or EOF")
+			completed=$(echo -en "\n ${sdtd_telnet_shutdown}" | grep "Completed.")
+			refused=$(echo -en "\n ${sdtd_telnet_shutdown}" | grep "Timeout or EOF")
 			if [ -n "${refused}" ]; then
 				fn_print_error "Graceful: telnet: ${telnetip}: "
 				fn_print_fail_eol_nl
@@ -142,7 +142,7 @@ fn_stop_graceful_sdtd(){
 		if [ -n "${completed}" ]; then
 			for seconds in {1..30}; do
 				fn_stop_telnet_sdtd
-				refused=$(echo -en "\n ${sdtd_telnet_shutdown}"|grep "Timeout or EOF")
+				refused=$(echo -en "\n ${sdtd_telnet_shutdown}" | grep "Timeout or EOF")
 				if [ -n "${refused}" ]; then
 					fn_print_ok "Graceful: telnet: ${telnetip}: "
 					fn_print_ok_eol_nl
@@ -173,7 +173,7 @@ fn_stop_graceful_sdtd(){
 		fn_print_fail_eol_nl
 		fn_script_log_warn "Graceful: telnet: expect not installed: FAIL"
 	fi
-	sleep 1
+	sleep 0.5
 	fn_stop_tmux
 }
 
@@ -193,7 +193,7 @@ fn_stop_graceful_select(){
 		fn_stop_graceful_goldsource
 	elif [ "${engine}" == "avalanche2.0" ]||[ "${engine}" == "avalanche3.0" ]||[ "${gamename}" == "Factorio" ]||[ "${engine}" == "unity3d" ]||[ "${engine}" == "unreal4" ]||[ "${engine}" == "unreal3" ]||[ "${engine}" == "unreal2" ]||[ "${engine}" == "unreal" ]||[ "${gamename}" == "Mumble" ]; then
 		fn_stop_graceful_ctrlc
-	elif  [ "${engine}" == "source" ]||[ "${engine}" == "quake" ]||[ "${engine}" == "idtech2" ]||[ "${engine}" == "idtech3" ]||[ "${engine}" == "idtech3_ql" ]||[ "${engine}" == "Just Cause 2" ]||[ "${engine}" == "projectzomboid" ]; then
+	elif  [ "${engine}" == "source" ]||[ "${engine}" == "quake" ]||[ "${engine}" == "idtech2" ]||[ "${engine}" == "idtech3" ]||[ "${engine}" == "idtech3_ql" ]||[ "${engine}" == "Just Cause 2" ]||[ "${engine}" == "projectzomboid" ]||[ "${shortname}" == "rw" ]; then
 		fn_stop_graceful_cmd "quit" 30
 	else
 		fn_stop_tmux
@@ -218,7 +218,7 @@ fn_stop_ark(){
 
 	if [ "${#queryport}" -gt 0 ] ; then
 		for (( pidcheck=0 ; pidcheck < ${maxpiditer} ; pidcheck++ )) ; do
-			pid=$(netstat -nap 2>/dev/null | grep ^udp[[:space:]] |\
+			pid=$(netstat -nap 2>/dev/null | grep "^udp[[:space:]]" |\
 				grep ":${queryport}[[:space:]]" | rev | awk '{print $1}' |\
 				rev | cut -d\/ -f1)
 			#
@@ -228,7 +228,7 @@ fn_stop_ark(){
 			# and a valid numeric pid remains unchanged.
 			if [ "${pid}" -gt 1 ]&&[ "${pid}" -le "$(cat "/proc/sys/kernel/pid_max")" ]; then
 			fn_print_dots "Process still bound. Awaiting graceful exit: ${pidcheck}"
-				sleep 1
+				sleep 0.5
 			else
 				break # Our job is done here
 			fi # end if for pid range check
@@ -263,7 +263,7 @@ fn_stop_tmux(){
 	fn_script_log_info "tmux kill-session: ${servername}"
 	sleep 0.5
 	# Kill tmux session
-	tmux kill-session -t "${servicename}" > /dev/null 2>&1
+	tmux kill-session -t="${servicename}" > /dev/null 2>&1
 	sleep 0.5
 	check_status.sh
 	if [ "${status}" == "0" ]; then

+ 1 - 1
lgsm/functions/command_test_alert.sh

@@ -9,7 +9,7 @@ local commandaction="Alert"
 local function_selfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
 
 fn_print_dots "${servername}"
-sleep 1
+sleep 0.5
 check.sh
 info_config.sh
 alert="test"

+ 2 - 2
lgsm/functions/command_ts3_server_pass.sh

@@ -25,14 +25,14 @@ fn_serveradmin_password_prompt(){
 fn_serveradmin_password_set(){
 	fn_print_info_nl "Starting server with new password..."
 	fn_script_log_info "Starting server with new password"
-	sleep 1
+	sleep 0.5
 	# Start server in "new password mode"
 	ts3serverpass="1"
 	exitbypass="1"
 	command_start.sh
 	fn_print_ok_nl "Password applied"
 	fn_script_log_pass "New ServerAdmin password applied"
-	sleep 1
+	sleep 0.5
 }
 
 # Running functions

+ 4 - 4
lgsm/functions/command_update_linuxgsm.sh

@@ -9,12 +9,12 @@ local commandaction="Update LinuxGSM"
 local function_selfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
 
 fn_print_dots "Updating LinuxGSM"
-sleep 1
+sleep 0.5
 check.sh
 fn_script_log_info "Updating LinuxGSM"
 echo -ne "\n"
 
-if [ -z "${legacymode}" ];then
+if [ -z "${legacymode}" ]; then
 	# Check and update _default.cfg
 	echo -ne "    checking config _default.cfg...\c"
 	config_file_diff=$(diff "${configdirdefault}/config-lgsm/${gameservername}/_default.cfg" <(${curlpath} -s "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/lgsm/config-default/config-lgsm/${gameservername}/_default.cfg"))
@@ -75,7 +75,7 @@ fi
 # Check and update functions
 if [ -n "${functionsdir}" ]; then
 	if [ -d "${functionsdir}" ]; then
-		cd "${functionsdir}"
+		cd "${functionsdir}" || exit
 		for functionfile in *
 		do
 			echo -ne "    checking function ${functionfile}...\c"
@@ -97,7 +97,7 @@ if [ -n "${functionsdir}" ]; then
 			elif [ "${function_file_diff}" != "" ]; then
 				fn_print_update_eol_nl
 				fn_script_log_info "checking function ${functionfile}: UPDATE"
-				rm -rf "${functionsdir}/${functionfile}"
+				rm -rf "${functionsdir:?}/${functionfile}"
 				fn_update_function
 			else
 				fn_print_ok_eol_nl

+ 5 - 5
lgsm/functions/command_validate.sh

@@ -17,9 +17,9 @@ fn_validation(){
 	echo -en "\n"
 
 	fn_script_log_info "Validating files: SteamCMD"
-	sleep 1
+	sleep 0.5
 
-	cd "${steamcmddir}"
+	cd "${steamcmddir}" || exit
 	# Detects if unbuffer command is available for 32 bit distributions only.
 	info_distro.sh
 	if [ "$(command -v stdbuf)" ]&&[ "${arch}" != "x86_64" ]; then
@@ -27,9 +27,9 @@ fn_validation(){
 	fi
 
 	if [ "${engine}" == "goldsource" ]; then
-		${unbuffer} ./steamcmd.sh +login "${steamuser}" "${steampass}" +force_install_dir "${serverfiles}" +app_set_config 90 mod ${appidmod} +app_update "${appid}" ${branch} +app_update "${appid}" ${branch} validate +quit| tee -a "${lgsmlog}"
+		${unbuffer} ./steamcmd.sh +login "${steamuser}" "${steampass}" +force_install_dir "${serverfiles}" +app_set_config 90 mod "${appidmod}" +app_update "${appid}" ${branch} +app_update "${appid}" ${branch} validate +quit | tee -a "${lgsmlog}"
 	else
-		${unbuffer} ./steamcmd.sh +login "${steamuser}" "${steampass}" +force_install_dir "${serverfiles}" +app_update "${appid}" ${branch} validate +quit| tee -a "${lgsmlog}"
+		${unbuffer} ./steamcmd.sh +login "${steamuser}" "${steampass}" +force_install_dir "${serverfiles}" +app_update "${appid}" ${branch} validate +quit | tee -a "${lgsmlog}"
 	fi
 	if [ $? != 0 ]; then
 		fn_print_fail_nl "Validating files: SteamCMD"
@@ -45,7 +45,7 @@ fn_validation(){
 fn_print_dots "Validating files:"
 sleep 0.5
 fn_print_dots "Validating files: SteamCMD"
-sleep 1
+sleep 0.5
 check.sh
 check_status.sh
 if [ "${status}" != "0" ]; then

+ 10 - 10
lgsm/functions/command_wipe.sh

@@ -48,7 +48,7 @@ fn_wipe_server_remove_files(){
 		if [ -n "$(find "${serveridentitydir}" -type f -name "proceduralmap.*.sav")" ]; then
 			currentaction="Removing procedural map save(s): ${serveridentitydir}/proceduralmap.*.sav"
 			echo -en "Removing map saves proceduralmap.*.sav file(s)..."
-			sleep 1
+			sleep 0.5
 			fn_script_log "${currentaction}"
 			find "${serveridentitydir:?}" -type f -name "proceduralmap.*.sav" -delete
 			fn_wipe_exit_code
@@ -62,7 +62,7 @@ fn_wipe_server_remove_files(){
 			if [ -n "$(find "${serveridentitydir}" -type f -name "barren*.sav")" ]; then
 			currentaction="Removing barren map save(s): ${serveridentitydir}/barren*.sav"
 			echo -en "Removing barren map saves barren*.sav file(s)..."
-			sleep 1
+			sleep 0.5
 			fn_script_log "${currentaction}"
 			find "${serveridentitydir:?}" -type f -name "barren*.sav" -delete
 			fn_wipe_exit_code
@@ -76,7 +76,7 @@ fn_wipe_server_remove_files(){
 		if [ -n "$(find "${serveridentitydir}" -type f -name "proceduralmap.*.map")" ]; then
 			currentaction="Removing map file(s): ${serveridentitydir}/proceduralmap.*.map"
 			echo -en "Removing procedural map proceduralmap.*.map file(s)..."
-			sleep 1
+			sleep 0.5
 			fn_script_log "${currentaction}"
 			find "${serveridentitydir:?}" -type f -name "proceduralmap.*.map" -delete
 			fn_wipe_exit_code
@@ -90,7 +90,7 @@ fn_wipe_server_remove_files(){
 				if [ -n "$(find "${serveridentitydir}" -type f -name "barren*.map")" ]; then
 			currentaction="Removing map file(s): ${serveridentitydir}/barren*.map"
 			echo -en "Removing barren map barren*.map file(s)..."
-			sleep 1
+			sleep 0.5
 			fn_script_log "${currentaction}"
 			find "${serveridentitydir:?}" -type f -name "barren*.map" -delete
 			fn_wipe_exit_code
@@ -103,7 +103,7 @@ fn_wipe_server_remove_files(){
 		if [ -d "${serveridentitydir}/user" ]; then
 			currentaction="Removing user directory: ${serveridentitydir}/user"
 			echo -en "Removing user directory..."
-			sleep 1
+			sleep 0.5
 			fn_script_log "${currentaction}"
 			rm -rf "${serveridentitydir:?}/user"
 			fn_wipe_exit_code
@@ -116,7 +116,7 @@ fn_wipe_server_remove_files(){
 		if [ -d "${serveridentitydir}/storage" ]; then
 			currentaction="Removing storage directory: ${serveridentitydir}/storage"
 			echo -en "Removing storage directory..."
-			sleep 1
+			sleep 0.5
 			fn_script_log "${currentaction}"
 			rm -rf "${serveridentitydir:?}/storage"
 			fn_wipe_exit_code
@@ -129,7 +129,7 @@ fn_wipe_server_remove_files(){
 		if [ -n "$(find "${serveridentitydir}" -type f -name "Log.*.txt")" ]; then
 			currentaction="Removing log files: ${serveridentitydir}/Log.*.txt"
 			echo -en "Removing Log files..."
-			sleep 1
+			sleep 0.5
 			fn_script_log "${currentaction}"
 			find "${serveridentitydir:?}" -type f -name "Log.*.txt" -delete
 			fn_wipe_exit_code
@@ -152,12 +152,12 @@ if [ "${gamename}" == "Rust" ]; then
 				echo Exiting; core_exit.sh
 		fi
 		fn_script_log_info "User selects to erase any user, storage, log and map data from ${serveridentitydir}"
-		sleep 1
+		sleep 0.5
 		fn_wipe_server_process
 	else
 		fn_print_information_nl "No data to wipe was found"
 		fn_script_log_info "No data to wipe was found."
-		sleep 1
+		sleep 0.5
 		core_exit.sh
 	fi
 # You can add an "elif" here to add another game or engine
@@ -165,7 +165,7 @@ else
 	# Game not listed
 	fn_print_information_nl "Wipe is not available for this game"
 	fn_script_log_info "Wipe is not available for this game."
-	sleep 1
+	sleep 0.5
 	core_exit.sh
 fi
 

+ 1 - 1
lgsm/functions/compress_ut99_maps.sh

@@ -22,7 +22,7 @@ if ! fn_prompt_yn "Start compression?" Y; then
 fi
 mkdir -pv "${compressedmapsdir}" > /dev/null 2>&1
 rm -rfv "${serverfiles}/Maps/"*.unr.uz
-cd "${systemdir}"
+cd "${systemdir}" || exit
 for map in "${serverfiles}/Maps/"*; do
 	./ucc-bin compress "${map}" --nohomedir
 done

+ 2 - 2
lgsm/functions/core_dl.sh

@@ -25,7 +25,7 @@ fn_dl_md5(){
 	# Runs MD5 Check if available
 	if [ "${md5}" != "0" ]&&[ "${md5}" != "nomd5" ]; then
 		echo -ne "verifying ${local_filename} with MD5..."
-		sleep 1
+		sleep 0.5
 		local md5sumcmd=$(md5sum "${local_filedir}/${local_filename}"|awk '{print $1;}')
 		if [ "${md5sumcmd}" != "${md5}" ]; then
 			fn_print_fail_eol_nl
@@ -88,7 +88,7 @@ fn_fetch_trap(){
 	echo -ne "downloading ${local_filename}..."
 	fn_print_canceled_eol_nl
 	fn_script_log_info "Downloading ${local_filename}...CANCELED"
-	sleep 1
+	sleep 0.5
 	rm -f "${local_filedir}/${local_filename}"
 	echo -ne "downloading ${local_filename}..."
 	fn_print_removed_eol_nl

+ 3 - 0
lgsm/functions/core_exit.sh

@@ -8,6 +8,9 @@ fn_exit_dev_debug(){
 	if [ -f "${rootdir}/.dev-debug" ]; then
 		echo ""
 		echo "${function_selfname} exiting with code: ${exitcode}"
+		if [ -f "${rootdir}/dev-debug.log" ]; then
+			grep "functionfile=" "${rootdir}/dev-debug.log" | sed 's/functionfile=//g' > "${rootdir}/dev-debug-function-order.log"
+		fi
 	fi
 }
 

+ 31 - 10
lgsm/functions/core_functions.sh

@@ -269,6 +269,11 @@ functionfile="${FUNCNAME}"
 fn_fetch_function
 }
 
+command_dev_query_raw.sh(){
+functionfile="${FUNCNAME}"
+fn_fetch_function
+}
+
 # Fix
 
 fix.sh(){
@@ -306,37 +311,43 @@ functionfile="${FUNCNAME}"
 fn_fetch_function
 }
 
-fix_steamcmd.sh(){
+fix_glibc.sh(){
 functionfile="${FUNCNAME}"
 fn_fetch_function
 }
 
-fix_glibc.sh(){
+
+fix_kf.sh(){
 functionfile="${FUNCNAME}"
 fn_fetch_function
 }
 
-fix_ro.sh(){
+fix_kf2.sh(){
 functionfile="${FUNCNAME}"
 fn_fetch_function
 }
 
-fix_kf.sh(){
+fix_mta.sh(){
 functionfile="${FUNCNAME}"
 fn_fetch_function
 }
 
-fix_kf2.sh(){
+fix_ro.sh(){
 functionfile="${FUNCNAME}"
 fn_fetch_function
 }
 
-fix_ut2k4.sh(){
+fix_rust.sh(){
 functionfile="${FUNCNAME}"
 fn_fetch_function
 }
 
-fix_ut.sh(){
+fix_rw.sh(){
+functionfile="${FUNCNAME}"
+fn_fetch_function
+}
+
+fix_ut3.sh(){
 functionfile="${FUNCNAME}"
 fn_fetch_function
 }
@@ -346,7 +357,12 @@ functionfile="${FUNCNAME}"
 fn_fetch_function
 }
 
-fix_mta.sh(){
+fix_ut2k4.sh(){
+functionfile="${FUNCNAME}"
+fn_fetch_function
+}
+
+fix_ut.sh(){
 functionfile="${FUNCNAME}"
 fn_fetch_function
 }
@@ -363,6 +379,11 @@ functionfile="${FUNCNAME}"
 fn_fetch_function
 }
 
+info_gamedig.sh(){
+functionfile="${FUNCNAME}"
+fn_fetch_function
+}
+
 info_glibc.sh(){
 functionfile="${FUNCNAME}"
 fn_fetch_function
@@ -426,9 +447,9 @@ functionfile="${FUNCNAME}"
 fn_fetch_function
 }
 
-# Monitor
+# Query
 
-monitor_gsquery.sh(){
+query_gamedig.sh(){
 functionfile="${FUNCNAME}"
 fn_fetch_function
 }

+ 9 - 7
lgsm/functions/core_getopt.sh

@@ -47,6 +47,8 @@ cmd_dev_debug=( "dev;developer" "command_dev_debug.sh" "Enable developer Mode."
 cmd_dev_detect_deps=( "dd;detect-deps" "command_dev_detect_deps.sh" "Detect required dependencies." )
 cmd_dev_detect_glibc=( "dg;detect-glibc" "command_dev_detect_glibc.sh" "Detect required glibc." )
 cmd_dev_detect_ldd=( "dl;detect-ldd" "command_dev_detect_ldd.sh" "Detect required dynamic dependencies." )
+cmd_dev_query_raw=( "qr;query-raw" "command_dev_query_raw.sh" "The raw output of gamedig and gsquery." )
+cmd_dev_clear_functions=( "cf;clear-functions" "command_dev_clear_functions.sh" "Delete the contents of the functions dir." )
 
 ### Set specific opt here ###
 
@@ -59,7 +61,7 @@ currentopt+=( "${cmd_update_linuxgsm[@]}" )
 if [ "${gamename}" != "Battlefield: 1942" ]&&[ "${engine}" != "quake" ]&&[ "${engine}" != "idtech2" ]&&[ "${engine}" != "idtech3" ]&&[ "${engine}" != "iw2.0" ]&&[ "${engine}" != "iw3.0" ]&&[ "${gamename}" != "San Andreas Multiplayer" ]; then
 	currentopt+=( "${cmd_update[@]}" )
 	# force update for SteamCMD only or MTA
-	if [ -n "${appid}" ] || [ "${gamename}" == "Multi Theft Auto" ]; then
+	if [ -n "${appid}" ]||[ "${gamename}" == "Multi Theft Auto" ]; then
 		currentopt+=( "${cmd_force_update[@]}" )
 	fi
 fi
@@ -130,16 +132,16 @@ currentopt+=( "${cmd_install[@]}" "${cmd_auto_install[@]}" )
 ## Developer commands
 currentopt+=( "${cmd_dev_debug[@]}" )
 if [ -f ".dev-debug" ]; then
-	currentopt+=(  "${cmd_dev_detect_deps[@]}" "${cmd_dev_detect_glibc[@]}" "${cmd_dev_detect_ldd[@]}" )
+	currentopt+=( "${cmd_dev_detect_deps[@]}" "${cmd_dev_detect_glibc[@]}" "${cmd_dev_detect_ldd[@]}" "${cmd_dev_query_raw[@]}" )
 fi
 
 ### Build list of available commands
 optcommands=()
 index="0"
 for ((index="0"; index < ${#currentopt[@]}; index+=3)); do
-	cmdamount="$(echo "${currentopt[index]}"| awk -F ';' '{ print NF }')"
+	cmdamount="$(echo "${currentopt[index]}" | awk -F ';' '{ print NF }')"
 	for ((cmdindex=1; cmdindex <= ${cmdamount}; cmdindex++)); do
-		optcommands+=( "$(echo "${currentopt[index]}"| awk -F ';' -v x=${cmdindex} '{ print $x }')" )
+		optcommands+=( "$(echo "${currentopt[index]}" | awk -F ';' -v x=${cmdindex} '{ print $x }')" )
 	done
 done
 
@@ -174,11 +176,11 @@ for i in "${optcommands[@]}"; do
 		# Seek and run command
 		index="0"
 		for ((index="0"; index < ${#currentopt[@]}; index+=3)); do
-			currcmdamount="$(echo "${currentopt[index]}"| awk -F ';' '{ print NF }')"
+			currcmdamount="$(echo "${currentopt[index]}" | awk -F ';' '{ print NF }')"
 			for ((currcmdindex=1; currcmdindex <= ${currcmdamount}; currcmdindex++)); do
-				if [ "$(echo "${currentopt[index]}"| awk -F ';' -v x=${currcmdindex} '{ print $x }')" == "${getopt}" ]; then
+				if [ "$(echo "${currentopt[index]}" | awk -F ';' -v x=${currcmdindex} '{ print $x }')" == "${getopt}" ]; then
 					# Run command
-					eval ${currentopt[index+1]}
+					eval "${currentopt[index+1]}"
 					core_exit.sh
 					break
 				fi

+ 9 - 5
lgsm/functions/fix.sh

@@ -11,18 +11,18 @@ local commandaction="Fix"
 # Messages that are displayed for some fixes
 fn_fix_msg_start(){
 	fn_print_dots "Applying ${fixname} fix: ${gamename}"
-	sleep 1
+	sleep 0.5
 	fn_print_info "Applying ${fixname} fix: ${gamename}"
 	fn_script_log_info "Applying ${fixname} fix: ${gamename}"
-	sleep 1
+	sleep 0.5
 }
 
 fn_fix_msg_start_nl(){
 	fn_print_dots "Applying ${fixname} fix: ${gamename}"
-	sleep 1
+	sleep 0.5
 	fn_print_info "Applying ${fixname} fix: ${gamename}"
 	fn_script_log_info "Applying ${fixname} fix: ${gamename}"
-	sleep 1
+	sleep 0.5
 }
 
 fn_fix_msg_end(){
@@ -56,6 +56,8 @@ if [ "${function_selfname}" != "command_install.sh" ]; then
 		fix_ins.sh
 	elif [ "${gamename}" == "Rust" ]; then
 		fix_rust.sh
+	elif [ "${shortname}" == "rw" ]; then
+		fix_rw.sh
 	elif [ "${gamename}" == "Multi Theft Auto" ]; then
 		fix_mta.sh
 	fi
@@ -66,7 +68,7 @@ if [ "${function_selfname}" == "command_install.sh" ]; then
 		echo ""
 		echo "Applying ${gamename} Server Fixes"
 		echo "================================="
-		sleep 1
+		sleep 0.5
 	if [ "${gamename}" == "Killing Floor" ]; then
 		fix_kf.sh
 	elif [ "${gamename}" == "Killing Floor 2" ]; then
@@ -77,5 +79,7 @@ if [ "${function_selfname}" == "command_install.sh" ]; then
 		fix_ut2k4.sh
 	elif [ "${gamename}" == "Unreal Tournament" ]; then
 		fix_ut.sh
+	elif [ "${gamename}" == "Unreal Tournament 3" ]; then
+		fix_ut3.sh
 	fi
 fi

+ 4 - 4
lgsm/functions/fix_kf.sh

@@ -12,15 +12,15 @@ echo "Applying WebAdmin ROOst.css fix."
 echo "http://forums.tripwireinteractive.com/showpost.php?p=585435&postcount=13"
 sed -i 's/none}/none;/g' "${serverfiles}/Web/ServerAdmin/ROOst.css"
 sed -i 's/underline}/underline;/g' "${serverfiles}/Web/ServerAdmin/ROOst.css"
-sleep 1
+sleep 0.5
 echo "Applying WebAdmin CharSet fix."
 echo "http://forums.tripwireinteractive.com/showpost.php?p=442340&postcount=1"
 sed -i 's/CharSet="iso-8859-1"/CharSet="utf-8"/g' "${systemdir}/UWeb.int"
-sleep 1
+sleep 0.5
 echo "applying server name fix."
-sleep 1
+sleep 0.5
 echo "forcing server restart..."
-sleep 1
+sleep 0.5
 command_start.sh
 sleep 5
 command_stop.sh

+ 1 - 1
lgsm/functions/fix_kf2.sh

@@ -12,7 +12,7 @@ fn_parms(){
 parms="\"${defaultmap}?Game=KFGameContent.KFGameInfo_VersusSurvival\""
 }
 
-fn_print_information "starting Killing Floor 2 server to generate configs."
+fn_print_information "starting ${gamename} server to generate configs."
 sleep 1
 exitbypass=1
 command_start.sh

+ 1 - 1
lgsm/functions/fix_mta.sh

@@ -11,7 +11,7 @@ local function_selfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
 if [ ! -f "${lgsmdir}/lib/libmysqlclient.so.16" ]; then
 	fixname="libmysqlclient16"
 	fn_fix_msg_start_nl
-	sleep 1
+	sleep 0.5
 	fn_fetch_file "https://nightly.mtasa.com/files/modules/64/libmysqlclient.so.16" "${lgsmdir}/lib" "libmysqlclient.so.16" "chmodx" "norun" "noforce" "6c188e0f8fb5d7a29f4bc413b9fed6c2"
 	fn_fix_msg_end
 fi

+ 5 - 5
lgsm/functions/fix_ro.sh

@@ -12,18 +12,18 @@ echo "Applying WebAdmin ROOst.css fix."
 echo "http://forums.tripwireinteractive.com/showpost.php?p=585435&postcount=13"
 sed -i 's/none}/none;/g' "${serverfiles}/Web/ServerAdmin/ROOst.css"
 sed -i 's/underline}/underline;/g' "${serverfiles}/Web/ServerAdmin/ROOst.css"
-sleep 1
+sleep 0.5
 echo "Applying WebAdmin CharSet fix."
 echo "http://forums.tripwireinteractive.com/showpost.php?p=442340&postcount=1"
 sed -i 's/CharSet="iso-8859-1"/CharSet="utf-8"/g' "${systemdir}/uweb.int"
-sleep 1
+sleep 0.5
 echo "Applying Steam AppID fix."
 sed -i 's/1210/1200/g' "${systemdir}/steam_appid.txt"
-sleep 1
+sleep 0.5
 echo "applying server name fix."
-sleep 1
+sleep 0.5
 echo "forcing server restart..."
-sleep 1
+sleep 0.5
 command_start.sh
 sleep 5
 command_stop.sh

+ 10 - 0
lgsm/functions/fix_rw.sh

@@ -0,0 +1,10 @@
+#!/bin/bash
+# LinuxGSM fix_rw.sh function
+# Author: Daniel Gibbs
+# Website: https://linuxgsm.com
+# Description: Resolves startup issue with Rising World
+
+local commandname="FIX"
+local commandaction="Fix"
+
+export LD_LIBRARY_PATH="${serverfiles}/linux64:${serverfiles}:$LD_LIBRARY_PATH"

+ 1 - 1
lgsm/functions/fix_ut.sh

@@ -11,4 +11,4 @@ local function_selfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
 #Set Binary Executable
 echo "chmod +x ${executabledir}/${executable}"
 chmod +x "${executabledir}/${executable}"
-sleep 1
+sleep 0.5

+ 4 - 4
lgsm/functions/fix_ut2k4.sh

@@ -12,15 +12,15 @@ echo "applying WebAdmin ut2003.css fix."
 echo "http://forums.tripwireinteractive.com/showpost.php?p=585435&postcount=13"
 sed -i 's/none}/none;/g' "${serverfiles}/Web/ServerAdmin/ut2003.css"
 sed -i 's/underline}/underline;/g' "${serverfiles}/Web/ServerAdmin/ut2003.css"
-sleep 1
+sleep 0.5
 echo "applying WebAdmin CharSet fix."
 echo "http://forums.tripwireinteractive.com/showpost.php?p=442340&postcount=1"
 sed -i 's/CharSet="iso-8859-1"/CharSet="utf-8"/g' "${systemdir}/UWeb.int"
-sleep 1
+sleep 0.5
 echo "applying server name fix."
-sleep 1
+sleep 0.5
 echo "forcing server restart."
-sleep 1
+sleep 0.5
 exitbypass=1
 command_start.sh
 sleep 5

+ 20 - 0
lgsm/functions/fix_ut3.sh

@@ -0,0 +1,20 @@
+#!/bin/bash
+# LinuxGSM fix_ut2.sh function
+# Author: Daniel Gibbs
+# Website: https://linuxgsm.com
+# Description: Resolves various issues with configs in Unreal Tournament 3.
+
+local commandname="FIX"
+local commandaction="Fix"
+local function_selfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
+
+fn_parms(){
+parms="server VCTF-Suspense?Game=UTGameContent.UTVehicleCTFGame_Content?bIsDedicated=true?bIsLanMatch=false?bUsesStats=false?bShouldAdvertise=false?PureServer=1?bAllowJoinInProgress=true?ConfigSubDir=${servicename} -port=${port} -queryport=${queryport} -multihome=${ip} -nohomedir -unattended -log=${gamelog}"
+}
+
+fn_print_information "starting ${gamename} server to generate configs."
+sleep 1
+exitbypass=1
+command_start.sh
+sleep 10
+command_stop.sh

+ 85 - 9
lgsm/functions/info_config.sh

@@ -20,13 +20,14 @@ fn_info_config_justcause2(){
 		serverpassword="${unavailable}"
 		maxplayers="${zero}"
 		port="${zero}"
+		queryport="${zero}"
 	else
 		servername=$(grep "Name" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^--/d' -e 's/Name//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
 		serverdescription=$(grep "Description" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^--/d' -e 's/Description//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
 		serverpassword=$(grep "Password" "${servercfgfullpath}" | sed -e 's/^ *//g' -e '/^--/d' -e 's/Password//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
 		maxplayers=$(grep "MaxPlayers" "${servercfgfullpath}" | grep -v "\--" | tr -cd '[:digit:]')
 		port=$(grep "BindPort" "${servercfgfullpath}" | grep -v "\--" | tr -cd '[:digit:]')
-
+		queryport="${port}"
 		ip=$(grep "BindIP" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^--/d' -e 's/BindIP//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
 		ipsetinconfig=1
 		ipinconfigvar="BindIP"
@@ -36,6 +37,7 @@ fn_info_config_justcause2(){
 		serverpassword=${serverpassword:-"NOT SET"}
 		maxplayers=${maxplayers:-"0"}
 		port=${port:-"0"}
+		queryport=${queryport:-"0"}
 	fi
 }
 
@@ -364,7 +366,7 @@ fn_info_config_quakeworld(){
 		rconpassword=$(grep "rcon_password" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/set rcon_password//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
 		servername=$(grep "hostname" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/set hostname//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
 		maxplayers=$(grep "maxclients" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
-		port=
+
 		# Not Set
 		rconpassword=${rconpassword:-"NOT SET"}
 		servername=${servername:-"NOT SET"}
@@ -417,6 +419,7 @@ fn_info_config_quakelive(){
 		serverpassword="${unavailable}"
 		maxplayers="${zero}"
 		port="${zero}"
+		queryport="${zero}"
 		rconport="${zero}"
 		statsport="${zero}"
 	else
@@ -425,6 +428,7 @@ fn_info_config_quakelive(){
 		serverpassword=$(grep "g_password" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/set g_password//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
 		maxplayers=$(grep "sv_maxClients" "${servercfgfullpath}" | grep -v "//" | tr -cd '[:digit:]')
 		port=$(grep "net_port" "${servercfgfullpath}" | grep -v "//" | tr -cd '[:digit:]')
+		queryport="${port}"
 		rconport=$(grep "zmq_rcon_port" "${servercfgfullpath}" | grep -v "//" | tr -cd '[:digit:]')
 		statsport=$(grep "zmq_stats_port" "${servercfgfullpath}" | grep -v "//" | tr -cd '[:digit:]')
 
@@ -438,6 +442,7 @@ fn_info_config_quakelive(){
 		serverpassword=${serverpassword:-"NOT SET"}
 		maxplayers=${maxplayers:-"0"}
 		port=${port:-"0"}
+		queryport=${queryport:-"0"}
 		rconport=${rconport:-"0"}
 		statsport=${statsport:-"0"}
 	fi
@@ -463,6 +468,40 @@ fn_info_config_realvirtuality(){
 	fi
 }
 
+fn_info_config_risingworld(){
+	if [ ! -f "${servercfgfullpath}" ]; then
+		servername="${unavailable}"
+		rconpassword="${unavailable}"
+		rconport="${zero}"
+		maxplayers="${zero}"
+		port="${zero}"
+		gamemode="${unavailable}"
+		gameworld="${unavailable}"
+	else
+		servername=$(grep "server_name" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/server_name//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
+		serverpassword=$(grep "server_password" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/server_password//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
+		rconpassword=$(grep "rcon_password" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/rcon_password//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
+		rconport=$(grep "rcon_port" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
+		maxplayers=$(grep "settings_max_players" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
+		port=$(grep "server_port" "${servercfgfullpath}" | grep -v "database_mysql_server_port" | grep -v "#" | tr -cd '[:digit:]')
+		gamemode=$(grep "gamemode" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
+		gameworld=$(grep "server_world_name" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/server_world_name//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
+		javaram=$(grep "server_memory" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/server_memory//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
+		ip=$(grep "server_ip" "${servercfgfullpath}" | grep -v "database_mysql_server_ip" | sed -e 's/^[ \t]*//g' -e '/^--/d' -e 's/server_ip//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
+		ipsetinconfig=1
+		ipinconfigvar="server-ip"
+
+		# Not Set
+		servername=${servername:-"NOT SET"}
+		rconpassword=${rconpassword:-"NOT SET"}
+		rconport=${rconport:-"NOT SET"}
+		maxplayers=${maxplayers:-"NOT SET"}
+		port=${port:-"NOT SET"}
+		gamemode=${gamemode:-"NOT SET"}
+		gameworld=${gameworld:-"NOT SET"}
+	fi
+}
+
 fn_info_config_seriousengine35(){
 	if [ ! -f "${servercfgfullpath}" ]; then
 		servername="${unavailable}"
@@ -704,7 +743,6 @@ fn_info_config_unreal3(){
 		servername="${unavailable}"
 		serverpassword="${unavailable}"
 		adminpassword="${unavailable}"
-		port="${unavailable}"
 		webadminenabled="${unavailable}"
 		webadminport="${zero}"
 		webadminuser="${unavailable}"
@@ -712,7 +750,6 @@ fn_info_config_unreal3(){
 	else
 		servername=$(grep "ServerName" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/ServerName//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
 		adminpassword=$(grep "AdminPassword" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/AdminPassword//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
-		port=$(grep "Port" "${servercfgdir}/UTEngine.ini" | sed -e 's/^[ \t]*//g' | grep "^Port" | grep -v "#" | tr -cd '[:digit:]')
 		webadminenabled=$(grep "bEnabled" "${servercfgdir}/UTWeb.ini" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/bEnabled//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
 		webadminport=$(grep "ListenPort" "${servercfgdir}/UTWeb.ini" | grep -v "#" | tr -cd '[:digit:]')
 		webadminuser="Admin"
@@ -736,13 +773,13 @@ fn_info_config_kf2(){
 		serverpassword="${unavailable}"
 		adminpassword="${unavailable}"
 		port="${unavailable}"
+		queryport="${unavailable}"
 		webadminenabled="${unavailable}"
 		webadminport="${zero}"
 		webadminuser="${unavailable}"
 		webadminpass="${unavailable}"
 	else
 		servername=$(grep "ServerName" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/ServerName//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
-		# Not in UT3
 		serverpassword=$(grep "GamePassword" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/GamePassword//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
 		adminpassword=$(grep "AdminPassword" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/AdminPassword//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
 		port=$(grep "Port" "${servercfgdir}/LinuxServer-KFEngine.ini" | sed -e 's/^[ \t]*//g' | grep "^Port" | grep -v "#" | tr -cd '[:digit:]')
@@ -858,8 +895,10 @@ fn_info_config_wolfensteinenemyterritory(){
 		serverpassword="${unavailable}"
 		maxplayers="${zero}"
 		port="${zero}"
+		queryport="${zero}"
 	else
 		port=$(grep "set net_port" "${servercfgfullpath}" | grep -v "//" | tr -cd '[:digit:]')
+		queryport="${port}"
 		rconpassword=$(grep "set zmq_rcon_password" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/set zmq_rcon_password //g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//g' -e '/^\//d' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
 		servername=$(grep "set sv_hostname" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/set sv_hostname //g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
 		serverpassword=$(grep "set g_password" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/set g_password //g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
@@ -875,24 +914,56 @@ fn_info_config_wolfensteinenemyterritory(){
 		serverpassword=${serverpassword:-"NOT SET"}
 		maxplayers=${maxplayers:-"0"}
 		port=${port:-"27960"}
+		queryport=${queryport:-"27960"}
 	fi
 }
 
+fn_info_config_etlegacy(){
+	if [ ! -f "${servercfgfullpath}" ]; then
+		rconpassword="${unavailable}"
+		servername="${unavailable}"
+		serverpassword="${unavailable}"
+		maxplayers="${zero}"
+		port="${zero}"
+		queryport="${zero}"
+	else
+		port=$(grep "set net_port" "${servercfgfullpath}" | grep -v "//" | tr -cd '[:digit:]')
+		queryport="${port}"
+		rconpassword=$(grep "set rconpassword" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/set rconpassword //g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//g' -e '/^\//d' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
+		servername=$(grep "set sv_hostname" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/set sv_hostname //g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
+		serverpassword=$(grep "set g_password" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/set g_password //g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
+		maxplayers=$(grep "set sv_maxclients" "${servercfgfullpath}" | grep -v "//" | tr -cd '[:digit:]')
+
+		ip=$(grep "set net_ip" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/set net_ip//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
+		ipsetinconfig=1
+		ipinconfigvar="set net_ip"
+
+		# Not Set
+		rconpassword=${rconpassword:-"NOT SET"}
+		servername=${servername:-"NOT SET"}
+		serverpassword=${serverpassword:-"NOT SET"}
+		maxplayers=${maxplayers:-"0"}
+		port=${port:-"27960"}
+		queryport=${queryport:-"27960"}
+	fi
+}
+
+
 fn_info_config_squad(){
 	if [ ! -f "${servercfgfullpath}" ]; then
 		servername="${unavailable}"
 		maxplayers="${unavailable}"
 	else
-		servername="$(cat ${servercfgfullpath} | grep "ServerName=" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/ServerName//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')"
-		maxplayers="$(cat ${servercfgfullpath} | grep "MaxPlayers=" | tr -cd '[:digit:]')"
+		servername="$(grep "ServerName=" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/ServerName//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')"
+		maxplayers="$(grep "MaxPlayers=" "${servercfgfullpath}" | tr -cd '[:digit:]')"
 	fi
 
 	if [ ! -f "${servercfgdir}/Rcon.cfg" ]; then
 		rconport=${unavailable}
 		rconpassword=${unavailable}
 	else
-		rconport=$(cat ${servercfgdir}/Rcon.cfg | grep "Port=" | tr -cd '[:digit:]')
-		rconpassword=$(cat ${servercfgdir}/Rcon.cfg | grep "Password=" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/Password//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
+		rconport=$(grep "Port=" "${servercfgdir}/Rcon.cfg" | tr -cd '[:digit:]')
+		rconpassword=$(grep "Password=" "${servercfgdir}/Rcon.cfg" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/Password//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
 	fi
 
 	rconport=${rconport:-"0"}
@@ -987,6 +1058,9 @@ elif [ "${engine}" == "projectzomboid" ]; then
 # ARMA 3
 elif [ "${engine}" == "realvirtuality" ]; then
 	fn_info_config_realvirtuality
+# Rising World
+elif [ "${shortname}" == "rw" ]; then
+	fn_info_config_risingworld
 # Serious Sam
 elif [ "${engine}" == "seriousengine35" ]; then
 	fn_info_config_seriousengine35
@@ -1025,6 +1099,8 @@ elif [ "${gamename}" == "7 Days To Die" ]; then
 	fn_info_config_sdtd
 elif [ "${gamename}" == "Wolfenstein: Enemy Territory" ]; then
 	fn_info_config_wolfensteinenemyterritory
+elif [ "${gamename}" == "ET: Legacy" ]; then
+	fn_info_config_etlegacy
 elif [ "${gamename}" == "Multi Theft Auto" ]; then
 	fn_info_config_mta
 elif [ "${gamename}" == "Squad" ]; then

+ 9 - 2
lgsm/functions/info_distro.sh

@@ -135,6 +135,13 @@ if [ -d "${backupdir}" ]; then
 fi
 
 # External IP address
-if [ -z "${extip}" ];then
-	extip=$(${curlpath} -m 3 ifconfig.co 2>/dev/null)
+if [ -z "${extip}" ]; then
+	extip=$(${curlpath} -m 3 ifconfig.co > "${tmpdir}/extip.txt" 2>/dev/null)
+	if [ $? -ne 0 ]; then
+		if [ -f "${tmpdir}/extip.txt" ]; then
+			echo "${tmpdir}/extip.txt"
+		else
+			echo "x.x.x.x"
+		fi
+	fi
 fi

+ 8 - 1
lgsm/functions/info_glibc.sh

@@ -26,6 +26,7 @@ elif [ "${gamename}" == "Blade Symphony" ]; then
 	glibcfix="yes"
 elif [ "${gamename}" == "BrainBread 2" ]; then
 	glibcrequired="2.17"
+	glibcfix="no"
 elif [ "${gamename}" == "Call of Duty" ]; then
 	glibcrequired="2.1"
 	glibcfix="no"
@@ -57,7 +58,7 @@ elif [ "${gamename}" == "Empires Mod" ]; then
 	glibcrequired="2.15"
 	glibcfix="yes"
 elif [ "${gamename}" == "Factorio" ]; then
-	glibcrequired="2.15"
+	glibcrequired="2.18"
 	glibcfix="yes"
 elif [ "${gamename}" == "Fistful of Frags" ]; then
 	glibcrequired="2.15"
@@ -95,6 +96,9 @@ elif [ "${gamename}" == "Quake 3: Arena" ]; then
 elif [ "${gamename}" == "Quake Live" ]; then
 	glibcrequired="2.15"
 	glibcfix="no"
+elif [ "${shortname}" == "rw" ]; then
+	glibcrequired="2.14"
+	glibcfix="no"
 elif [ "${gamename}" == "San Andreas Multiplayer" ]; then
 	glibcrequired="2.3"
 	glibcfix="no"
@@ -182,6 +186,9 @@ elif [ "${engine}" == "refractor" ]; then
 elif [ "${gamename}" == "Wolfenstein: Enemy Territory" ]; then
 	glibcrequired="2.2.4"
 	glibcfix="no"
+elif [ "${gamename}" == "ET: Legacy" ]; then
+	glibcrequired="2.7"
+	glibcfix="no"
 elif [ "${gamename}" == "Multi Theft Auto" ]; then
 	glibcrequired="2.7"
 	glibcfix="no"

+ 76 - 15
lgsm/functions/info_messages.sh

@@ -2,7 +2,7 @@
 # LinuxGSM info_messages.sh function
 # Author: Daniel Gibbs
 # Website: https://linuxgsm.com
-# Description: Defines server info messages for details, alerts.
+# Description: Defines server info messages for details and alerts.
 
 # Standard Details
 # This applies to all engines
@@ -122,7 +122,9 @@ fn_info_message_gameserver(){
 	fn_messages_separator
 	{
 		# Server name
-		if [ -n "${servername}" ]; then
+		if [ -n "${gdname}" ]; then
+			echo -e "${blue}Server name:\t${default}${gdname}"
+		elif [ -n "${servername}" ]; then
 			echo -e "${blue}Server name:\t${default}${servername}"
 		fi
 
@@ -181,9 +183,43 @@ fn_info_message_gameserver(){
 			echo -e "${blue}Stats password:\t${default}${statspassword}"
 		fi
 
-		# Maxplayers
-		if [ -n "${maxplayers}" ]; then
-			echo -e "${blue}Maxplayers:\t${default}${maxplayers}"
+		# Players
+
+		if [ "${querystatus}" != "0" ]; then
+			if [ -n "${maxplayers}" ]; then
+				echo -e "${blue}Maxplayers:\t${default}${maxplayers}"
+			fi
+		else
+			if [ -n "${gdplayers}" ]&&[ -n "${gdmaxplayers}" ]; then
+				echo -e "${blue}Players:\t${default}${gdplayers}/${gdmaxplayers}"
+
+			elif [ -n "${gdplayers}" ]&&[ -n "${maxplayers}" ]; then
+				echo -e "${blue}Players:\t${default}${gdplayers}/${maxplayers}"
+
+			elif [ -z "${gdplayers}" ]&&[ -n "${gdmaxplayers}" ]; then
+				echo -e "${blue}Players:\t${default}0/${gdmaxplayers}"
+
+			elif [ -n "${gdplayers}" ]&&[ -z "${gdmaxplayers}" ]; then
+				echo -e "${blue}Players:\t${default}${gdplayers}|∞"
+
+			elif [ -z "${gdplayers}" ]&&[ -z "${gdmaxplayers}" ]&&[ -n "${maxplayers}" ]; then
+				echo -e "${blue}Maxplayers:\t${default}${maxplayers}"
+			fi
+		fi
+
+		# Bots
+		if [ -n "${gdbots}" ]; then
+			echo -e "${blue}Bots:\t${default}${gdbots}"
+		fi
+
+		# Current Map
+		if [ -n "${gdmap}" ]; then
+			echo -e "${blue}Current Map:\t${default}${gdmap}"
+		fi
+
+		# Default Map
+		if [ -n "${defaultmap}" ]; then
+			echo -e "${blue}Default Map:\t${default}${defaultmap}"
 		fi
 
 		# Game mode
@@ -406,19 +442,19 @@ fn_info_message_ports(){
 	for port_edit in "${ports_edit_array[@]}"
 	do
 		if [ "${shortname}" == "ut3" ]; then
-			parmslocation="${servercfgdir}/UTEngine.ini\n${servercfgdir}/UTWeb.ini"
+			parmslocation="${servercfgdir}/UTWeb.ini"
 		elif [ "${shortname}" == "kf2" ]; then
 			parmslocation="${servercfgdir}/LinuxServer-KFEngine.ini\n${servercfgdir}/KFWeb.ini"
 		elif [ "${engine}" == "${port_edit}" ]||[ "${gamename}" == "${port_edit}" ]; then
 			parmslocation="${servercfgfullpath}"
 		fi
 	done
-	# engines/games that require editing in the script file
+	# engines/games that require editing the parms
 	local ports_edit_array=( "goldsource" "Factorio" "Hurtworld" "iw3.0" "Rust" "spark" "source" "starbound" "unreal4" "realvirtuality")
 	for port_edit in "${ports_edit_array[@]}"
 	do
 		if [ "${engine}" == "${port_edit}" ]||[ "${gamename}" == "${port_edit}" ]; then
-			parmslocation="${selfname}"
+			parmslocation="${configdirserver}"
 		fi
 	done
 	echo -e "${parmslocation}"
@@ -443,7 +479,7 @@ fn_info_logs(){
 
 	if [ -n "${lgsmlog}" ]; then
 		echo -e "\nScript log\n==================="
-		if [ ! "$(ls -A ${lgsmlogdir})" ]; then
+		if [ ! "$(ls -A "${lgsmlogdir}")" ]; then
 			echo "${lgsmlogdir} (NO LOG FILES)"
 		elif [ ! -s "${lgsmlog}" ]; then
 			echo "${lgsmlog} (LOG FILE IS EMPTY)"
@@ -456,7 +492,7 @@ fn_info_logs(){
 
 	if [ -n "${consolelog}" ]; then
 		echo -e "\nConsole log\n===================="
-		if [ ! "$(ls -A ${consolelogdir})" ]; then
+		if [ ! "$(ls -A "${consolelogdir}")" ]; then
 			echo "${consolelogdir} (NO LOG FILES)"
 		elif [ ! -s "${consolelog}" ]; then
 			echo "${consolelog} (LOG FILE IS EMPTY)"
@@ -469,12 +505,12 @@ fn_info_logs(){
 
 	if [ -n "${gamelogdir}" ]; then
 		echo -e "\nServer log\n==================="
-		if [ ! "$(ls -A ${gamelogdir})" ]; then
+		if [ ! "$(ls -A "${gamelogdir}")" ]; then
 			echo "${gamelogdir} (NO LOG FILES)"
 		else
 			echo "${gamelogdir}"
 			# dos2unix sed 's/\r//'
-			tail "${gamelogdir}"/* 2>/dev/null | grep -v "==>" | sed '/^$/d' | sed 's/\r//'| tail -25
+			tail "${gamelogdir}"/* 2>/dev/null | grep -v "==>" | sed '/^$/d' | sed 's/\r//' | tail -25
 		fi
 		echo ""
 	fi
@@ -739,6 +775,17 @@ fn_info_message_refractor(){
 	} | column -s $'\t' -t
 }
 
+fn_info_message_risingworld(){
+	echo -e "netstat -atunp | grep java"
+	echo -e ""
+	{
+		echo -e "DESCRIPTION\tDIRECTION\tPORT\tPROTOCOL"
+		echo -e "> Game/Query\tINBOUND\t${port}\ttcp/udp"
+		echo -e "> http query\tINBOUND\t${httpqueryport}\ttcp"
+		echo -e "> RCON\tINBOUND\t${rconport}\ttcp"
+	} | column -s $'\t' -t
+}
+
 fn_info_message_rust(){
 	echo -e "netstat -atunp | grep Rust"
 	echo -e ""
@@ -948,7 +995,8 @@ fn_info_message_unreal3(){
 	echo -e ""
 	{
 		echo -e "DESCRIPTION\tDIRECTION\tPORT\tPROTOCOL"
-		echo -e "> Game/Query\tINBOUND\t${port}\ttcp/udp"
+		echo -e "> Game\tINBOUND\t${port}\tudp"
+		echo -e "> Query\tINBOUND\t${queryport}\tudp"
 		echo -e "> WebAdmin\tINBOUND\t${webadminport}\ttcp\tListenPort=${webadminport}"
 	} | column -s $'\t' -t
 	echo -e ""
@@ -967,8 +1015,8 @@ fn_info_message_kf2(){
 	echo -e ""
 	{
 		echo -e "DESCRIPTION\tDIRECTION\tPORT\tPROTOCOL"
-		echo -e "> Game\tINBOUND\t${port}\ttcp"
-		echo -e "> Query\tINBOUND\t${queryport}\ttcp/udp"
+		echo -e "> Game\tINBOUND\t${port}\ttcp\tPort=${port}"
+		echo -e "> Query\tINBOUND\t${queryport}\tudp"
 		echo -e "> Steam\tINBOUND\t20560\tudp"
 		echo -e "> WebAdmin\tINBOUND\t${webadminport}\ttcp\tListenPort=${webadminport}"
 	} | column -s $'\t' -t
@@ -992,6 +1040,15 @@ fn_info_message_wolfensteinenemyterritory(){
 	} | column -s $'\t' -t
 }
 
+fn_info_message_etlegacy(){
+	echo -e "netstat -atunp | grep etlded"
+	echo -e ""
+	{
+		echo -e "DESCRIPTION\tDIRECTION\tPORT\tPROTOCOL"
+		echo -e "> Game/Query\tINBOUND\t${port}\tudp"
+	} | column -s $'\t' -t
+}
+
 fn_info_message_mta(){
 	echo -e "netstat -atunp | grep mta-server64"
 	echo -e ""
@@ -1025,6 +1082,8 @@ fn_info_message_select_engine(){
 		fn_info_message_cod4
 	elif [ "${gamename}" == "Call of Duty: World at War" ]; then
 		fn_info_message_codwaw
+	elif [ "${gamename}" == "ET: Legacy" ]; then
+		fn_info_message_etlegacy
 	elif [ "${gamename}" == "Factorio" ]; then
 		fn_info_message_factorio
 	elif [ "${gamename}" == "Hurtworld" ]; then
@@ -1061,6 +1120,8 @@ fn_info_message_select_engine(){
 		fn_info_message_mumble
 	elif [ "${gamename}" == "Rust" ]; then
 		fn_info_message_rust
+	elif [ "${shortname}" == "rw" ]; then
+		fn_info_message_risingworld
 	elif [ "${gamename}" == "Wolfenstein: Enemy Territory" ]; then
 		fn_info_message_wolfensteinenemyterritory
 	elif [ "${engine}" == "refractor" ]; then

+ 13 - 1
lgsm/functions/info_parms.sh

@@ -24,6 +24,7 @@ fn_info_parms_ark(){
 
 fn_info_parms_realvirtuality(){
 	port=${port:-"0"}
+	queryport=$((port + 1))
 }
 
 fn_info_parms_cod(){
@@ -68,6 +69,14 @@ fn_info_parms_quake2(){
 	defaultmap=${defaultmap:-"NOT SET"}
 }
 
+fn_info_parms_risingworld(){
+	servername=${servername:-"NOT SET"}
+	port=${port:-"0"}
+	queryport=${port}
+	httpqueryport=$((port - 1))
+
+}
+
 fn_info_parms_rust(){
 	servername=${servername:-"NOT SET"}
 	port=${port:-"0"}
@@ -145,6 +154,9 @@ elif [ "${gamename}" == "Quake 2" ]||[ "${gamename}" == "Quake 3: Arena" ]; then
 # Rust
 elif [ "${gamename}" == "Rust" ]; then
 	fn_info_parms_rust
+# Rising World
+elif [ "${shortname}" == "rw" ]; then
+	fn_info_parms_risingworld
 # Serious Sam
 elif [ "${engine}" == "seriousengine35" ]; then
 	fn_info_config_seriousengine35
@@ -158,7 +170,7 @@ elif [ "${gamename}" == "Tower Unite" ]; then
 # Unreal/Unreal 2 engine
 elif [ "${engine}" == "unreal" ]||[ "${engine}" == "unreal2" ]; then
 	fn_info_parms_unreal
-# Unreal/Unreal 2 engine
+# Unreal 3 engine
 elif [ "${engine}" == "unreal3" ]; then
 	fn_info_parms_unreal3
 fi

+ 20 - 11
lgsm/functions/install_config.sh

@@ -23,7 +23,7 @@ fn_fetch_default_config(){
 	echo "Downloading ${gamename} Configs"
 	echo "================================="
 	echo "default configs from https://github.com/GameServerManagers/Game-Server-Configs"
-	sleep 1
+	sleep 0.5
 	mkdir -p "${lgsmdir}/config-default/config-game"
 	githuburl="https://raw.githubusercontent.com/GameServerManagers/Game-Server-Configs/master"
 	for config in "${array_configs[@]}"; do
@@ -38,16 +38,19 @@ fn_default_config_remote(){
 		echo "copying ${config} config file."
 		fn_script_log_info "copying ${servercfg} config file."
 		if [ "${config}" == "${servercfgdefault}" ]; then
+			mkdir -p "${servercfgdir}"
 			cp -nv "${lgsmdir}/config-default/config-game/${config}" "${servercfgfullpath}"
 		elif [ "${gamename}" == "ARMA 3" ]&&[ "${config}" == "${networkcfgdefault}" ]; then
+			mkdir -p "${servercfgdir}"
 			cp -nv "${lgsmdir}/config-default/config-game/${config}" "${networkcfgfullpath}"
 		elif [ "${gamename}" == "Don't Starve Together" ]&&[ "${config}" == "${clustercfgdefault}" ]; then
 			cp -nv "${lgsmdir}/config-default/config-game/${clustercfgdefault}" "${clustercfgfullpath}"
 		else
+			mkdir -p "${servercfgdir}"
 			cp -nv "${lgsmdir}/config-default/config-game/${config}" "${servercfgdir}/${config}"
 		fi
 	done
-	sleep 1
+	sleep 0.5
 }
 
 # Changes some variables within the default configs
@@ -60,7 +63,7 @@ fn_set_config_vars(){
 		rconpass="admin$random"
 		echo "changing hostname."
 		fn_script_log_info "changing hostname."
-		sleep 1
+		sleep 0.5
 		if grep -q "SERVERNAME=SERVERNAME" "${lgsmdir}/config-default/config-game/${config}" 2>/dev/null; then
 			sed -i "s/SERVERNAME=SERVERNAME/SERVERNAME=${servername}/g" "${servercfgfullpath}"
 		else
@@ -69,11 +72,11 @@ fn_set_config_vars(){
 		echo "changing rcon/admin password."
 		fn_script_log_info "changing rcon/admin password."
 		sed -i "s/ADMINPASSWORD/${rconpass}/g" "${servercfgfullpath}"
-		sleep 1
+		sleep 0.5
 	else
 		fn_script_log_warn "Config file not found, cannot alter it."
 		echo "Config file not found, cannot alter it."
-		sleep 1
+		sleep 0.5
 	fi
 }
 
@@ -84,16 +87,16 @@ fn_set_dst_config_vars(){
 		echo "changing server name."
 		fn_script_log_info "changing server name."
 		sed -i "s/SERVERNAME/LinuxGSM/g" "${clustercfgfullpath}"
-		sleep 1
+		sleep 0.5
 		echo "changing shard mode."
 		fn_script_log_info "changing shard mode."
 		sed -i "s/USESHARDING/${sharding}/g" "${clustercfgfullpath}"
-		sleep 1
+		sleep 0.5
 		echo "randomizing cluster key."
 		fn_script_log_info "randomizing cluster key."
 		randomkey=$(tr -dc A-Za-z0-9_ < /dev/urandom | head -c 8 | xargs)
 		sed -i "s/CLUSTERKEY/${randomkey}/g" "${clustercfgfullpath}"
-		sleep 1
+		sleep 0.5
 	else
 		echo "${clustercfg} is already configured."
 		fn_script_log_info "${clustercfg} is already configured."
@@ -111,11 +114,11 @@ fn_set_dst_config_vars(){
 	echo "changing shard name."
 	fn_script_log_info "changing shard name."
 	sed -i "s/SHARDNAME/${shard}/g" "${servercfgfullpath}"
-	sleep 1
+	sleep 0.5
 	echo "changing master setting."
 	fn_script_log_info "changing master setting."
 	sed -i "s/ISMASTER/${master}/g" "${servercfgfullpath}"
-	sleep 1
+	sleep 0.5
 
 	## worldgenoverride.lua
 	if [ "${cave}" == "true" ]; then
@@ -123,7 +126,7 @@ fn_set_dst_config_vars(){
 		fn_script_log_info "defining ${shard} as cave in ${servercfgdir}/worldgenoverride.lua."
 		echo 'return { override_enabled = true, preset = "DST_CAVE", }' > "${servercfgdir}/worldgenoverride.lua"
 	fi
-	sleep 1
+	sleep 0.5
 	echo ""
 }
 
@@ -293,6 +296,12 @@ elif [ "${gamename}" == "Double Action: Boogaloo" ]; then
 	fn_fetch_default_config
 	fn_default_config_remote
 	fn_set_config_vars
+elif [ "${gamename}" == "ET: Legacy" ]; then
+	gamedirname="ETLegacy"
+	array_configs+=( server.cfg )
+	fn_fetch_default_config
+	fn_default_config_remote
+	fn_set_config_vars
 elif [ "${gamename}" == "Factorio" ]; then
 	gamedirname="Factorio"
 	array_configs+=( server-settings.json )

+ 1 - 1
lgsm/functions/install_dst_token.sh

@@ -11,7 +11,7 @@ local function_selfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
 echo ""
 echo "Enter ${gamename} Cluster Token"
 echo "================================="
-sleep 1
+sleep 0.5
 echo "A cluster token is required to run this server!"
 echo "Follow the instructions in this link to obtain this key:"
 echo "https://linuxgsm.com/dst-auth-token"

+ 2 - 2
lgsm/functions/install_factorio_save.sh

@@ -10,6 +10,6 @@ local commandaction="Install"
 echo ""
 echo "Creating initial Factorio savefile"
 echo "================================="
-sleep 1
+sleep 0.5
 check_glibc.sh
-"${executabledir}"/factorio --create ${serverfiles}/save1
+"${executabledir}"/factorio --create "${serverfiles}/save1"

+ 2 - 2
lgsm/functions/install_gslt.sh

@@ -11,7 +11,7 @@ local function_selfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
 echo ""
 echo "Game Server Login Token"
 echo "================================="
-sleep 1
+sleep 0.5
 if [ "${gamename}" == "Counter-Strike: Global Offensive" ]||[ "${gamename}" == "Counter-Strike: Source" ]||[ "${gamename}" == "No More Room in Hell" ]; then
 	echo "GSLT is required to run a public ${gamename} server"
 	fn_script_log_info "GSLT is required to run a public ${gamename} server"
@@ -37,7 +37,7 @@ if [ -z "${autoinstall}" ]; then
 		fi
 	fi
 fi
-sleep 1
+sleep 0.5
 if [ "${gamename}" == "Tower Unite" ]; then
 	echo "The GSLT can be changed by editing ${servercfgdir}/${servercfg}."
 	fn_script_log_info "The GSLT can be changed by editing ${servercfgdir}/${servercfg}."

+ 3 - 3
lgsm/functions/install_logs.sh

@@ -13,7 +13,7 @@ if [ "${checklogs}" != "1" ]; then
 	echo "Creating log directories"
 	echo "================================="
 fi
-sleep 1
+sleep 0.5
 # Create LinuxGSM logs
 echo -ne "installing log dir: ${logdir}..."
 mkdir -p "${logdir}"
@@ -77,7 +77,7 @@ fi
 # e.g serverfiles/log is not within log/: symlink created
 # log/server is in log/: symlink not created
 if [ -n "${gamelogdir}" ]; then
-	if [ "${gamelogdir:0:${#logdir}}" != "${logdir}" ];then
+	if [ "${gamelogdir:0:${#logdir}}" != "${logdir}" ]; then
 		echo -ne "creating symlink to game log dir: ${logdir}/server -> ${gamelogdir}..."
 		ln -nfs "${gamelogdir}" "${logdir}/server"
 		if [ $? -ne 0 ]; then
@@ -102,5 +102,5 @@ if [ -d "${rootdir}/Steam/logs" ]; then
 		fi
 	fi
 fi
-sleep 1
+sleep 0.5
 fn_script_log_info "Logs installed"

+ 1 - 1
lgsm/functions/install_minecraft_eula.sh

@@ -7,7 +7,7 @@
 echo ""
 echo "Accept ${gamename} EULA"
 echo "================================="
-sleep 1
+sleep 0.5
 echo "You are required to accept the EULA:"
 echo "https://account.mojang.com/documents/minecraft_eula"
 

+ 2 - 3
lgsm/functions/install_server_dir.sh

@@ -11,7 +11,7 @@ local function_selfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
 echo ""
 echo "Server Directory"
 echo "================================="
-sleep 1
+sleep 0.5
 if [ -d "${serverfiles}" ]; then
 	fn_print_warning_nl "A server is already installed here."
 fi
@@ -24,5 +24,4 @@ if [ -z "${autoinstall}" ]; then
 fi
 if [ ! -d "${serverfiles}" ]; then
 	mkdir -v "${serverfiles}"
-fi
-sleep 1
+fi

+ 5 - 13
lgsm/functions/install_server_files.sh

@@ -21,6 +21,8 @@ fn_install_server_files(){
 		remote_fileurl="http://files.linuxgsm.com/CallOfDuty4/cod4x18_dedrun.tar.bz2"; local_filedir="${tmpdir}"; local_filename="cod4x18_dedrun.tar.bz2"; chmodx="nochmodx" run="norun"; force="noforce"; md5="bebdfc1755626462bdaad49f6f926c08"
 	elif [ "${gamename}" == "Call of Duty: World at War" ]; then
 		remote_fileurl="http://files.linuxgsm.com/CallOfDutyWorldAtWar/codwaw-lnxded-1.7-full.tar.bz2"; local_filedir="${tmpdir}"; local_filename="codwaw-lnxded-1.7-full.tar.bz2"; chmodx="nochmodx" run="norun"; force="noforce"; md5="0489697ff3bf678c109bfb377d1b7895"
+	elif [ "${shortname}" == "etl" ]; then
+		remote_fileurl="http://files.linuxgsm.com/WolfensteinEnemyTerritory/etlegacy-v2.75-i386-et-260b.tar.bz2"; local_filedir="${tmpdir}"; local_filename="etlegacy-v2.75-i386-et-260b.tar.bz2"; chmodx="nochmodx" run="norun"; force="noforce"; md5="92d7d4c26e0a295daed78cef623eeabb"
 	elif [ "${gamename}" == "GoldenEye: Source" ]; then
 		remote_fileurl="http://files.linuxgsm.com/GoldenEyeSource/GoldenEye_Source_v5.0.6_full_server.tar.bz2"; local_filedir="${tmpdir}"; local_filename="GoldenEye_Source_v5.0.6_full_server.tar.bz2"; chmodx="nochmodx" run="norun"; force="noforce"; md5="c45c16293096706e8b5e2cd64a6f2931"
 	elif [ "${gamename}" == "Quake 2" ]; then
@@ -65,7 +67,7 @@ fn_install_server_files_steamcmd(){
 
 			if [ "${counter}" -ge "7" ]; then
 				echo "Removing $(find ${serverfiles} -type d -print0 | grep -Ez '[^/]{30}$')"
-				find ${serverfiles} -type d -print0 | grep -Ez '[^/]{30}$' | xargs -0 rm -rf
+				find "${serverfiles}" -type d -print0 | grep -Ez '[^/]{30}$' | xargs -0 rm -rf
 			fi
 			if [ "${counter}" -ge "9" ]; then
 				rm -rf "${steamcmddir}"
@@ -74,7 +76,7 @@ fn_install_server_files_steamcmd(){
 
 			# Detects if unbuffer command is available for 32 bit distributions only.
 			info_distro.sh
-			if [ $(command -v stdbuf 2>/dev/null) ]&&[ "${arch}" != "x86_64" ]; then
+			if [ "$(command -v stdbuf 2>/dev/null)" ]&&[ "${arch}" != "x86_64" ]; then
 				unbuffer="stdbuf -i0 -o0 -e0"
 			fi
 
@@ -85,11 +87,6 @@ fn_install_server_files_steamcmd(){
 				else
 					${unbuffer} ./steamcmd.sh +login "${steamuser}" "${steampass}" +force_install_dir "${serverfiles}" +app_update "${appid}" ${branch} +quit
 					local exitcode=$?
-
-					if [ "${gamename}" == "Classic Offensive" ]; then
-						${unbuffer} ./steamcmd.sh +login "${steamuser}" "${steampass}" +force_install_dir "${serverfiles}" +app_update "${appid_co}" ${branch} +quit
-						local exitcode=$?
-					fi
 				fi
 			elif [ "${counter}" -ge "5" ]; then
 				if [ "${engine}" == "goldsource" ]; then
@@ -98,11 +95,6 @@ fn_install_server_files_steamcmd(){
 				else
 					${unbuffer} ./steamcmd.sh +login "${steamuser}" "${steampass}" +force_install_dir "${serverfiles}" +app_update "${appid}" ${branch} validate +quit
 					local exitcode=$?
-
-					if [ "${gamename}" == "Classic Offensive" ]; then
-						${unbuffer} ./steamcmd.sh +login "${steamuser}" "${steampass}" +force_install_dir "${serverfiles}" +app_update "${appid_co}" ${branch} -validate +quit
-						local exitcode=$?
-					fi
 				fi
 			fi
 		elif [ "${counter}" -ge "11" ]; then
@@ -128,7 +120,7 @@ fn_install_server_files_steamcmd(){
 echo ""
 echo "Installing ${gamename} Server"
 echo "================================="
-sleep 1
+sleep 0.5
 
 if [ -n "${appid}" ]; then
 	fn_install_server_files_steamcmd

+ 2 - 2
lgsm/functions/install_squad_license.sh

@@ -11,7 +11,7 @@ local function_selfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
 echo ""
 echo "Squad Server License"
 echo "================================="
-sleep 1
+sleep 0.5
 echo "Server license is an optional feature for ${gamename} server"
 fn_script_log_info "Server license is an optional feature for ${gamename} server"
 
@@ -20,7 +20,7 @@ echo "http://forums.joinsquad.com/topic/16519-server-licensing-general-info/"
 fn_script_log_info "Get more info and a server license here:"
 fn_script_log_info "http://forums.joinsquad.com/topic/16519-server-licensing-general-info/"
 echo ""
-sleep 1
+sleep 0.5
 echo "The Squad server license can be changed by editing ${servercfgdir}/License.cfg."
 fn_script_log_info "The Squad server license can be changed by editing ${selfname}."
 echo ""

+ 1 - 1
lgsm/functions/install_steamcmd.sh

@@ -10,5 +10,5 @@ local commandaction="Install"
 echo ""
 echo "Installing SteamCMD"
 echo "================================="
-sleep 1
+sleep 0.5
 check_steamcmd.sh

+ 6 - 6
lgsm/functions/install_ts3db.sh

@@ -13,7 +13,7 @@ fn_install_ts3db_mariadb(){
 	echo ""
 	echo "checking if libmariadb2 is installed"
 	echo "================================="
-	sleep 1
+	sleep 0.5
 	ldd "${serverfiles}/libts3db_mariadb.so" | grep "libmariadb.so.2 => not found"
 	if [ $? -eq 0 ]; then
 		echo "libmariadb2 not installed. Please install it first."
@@ -25,7 +25,7 @@ fn_install_ts3db_mariadb(){
 	echo ""
 	echo "Configuring ${gamename} Server for MariaDB/MySQL"
 	echo "================================="
-	sleep 1
+	sleep 0.5
 	read -rp "Enter MariaDB hostname: " mariahostname
 	read -rp "Enter MariaDB port: " mariaport
 	read -rp "Enter MariaDB username: " mariausername
@@ -45,7 +45,7 @@ fn_install_ts3db_mariadb(){
 	sed -i "s/dbpluginparameter=/dbpluginparameter=ts3db_mariadb.ini/g" "${servercfgfullpath}"
 	sed -i "s/dbsqlcreatepath=create_sqlite\//dbsqlcreatepath=create_mariadb\//g" "${servercfgfullpath}"
 	echo "================================="
-	sleep 1
+	sleep 0.5
 }
 
 if [ -z "${autoinstall}" ]; then
@@ -61,16 +61,16 @@ fi
 fn_script_log "Accepting ts3server license:  ${executabledir}/LICENSE"
 fn_print_information_nl "Accepting TeamSpeak license:"
 echo " * ${executabledir}/LICENSE"
-sleep 1
+sleep 0.5
 touch "${executabledir}/.ts3server_license_accepted"
 
 ## Get privilege key
 echo ""
 echo "Getting privilege key"
 echo "================================="
-sleep 1
+sleep 0.5
 echo "IMPORANT! Save these details for later."
-sleep 1
+sleep 0.5
 cd "${executabledir}" || exit
 ./ts3server_startscript.sh start inifile=ts3-server.ini
 sleep 5

+ 1 - 1
lgsm/functions/install_unreal_tournament_eula.sh

@@ -7,7 +7,7 @@
 echo ""
 echo "Accept ${gamename} EULA"
 echo "================================="
-sleep 1
+sleep 0.5
 echo "You are required to accept the EULA:"
 echo "https://www.epicgames.com/unrealtournament/unreal-tournament-pre-alpha-test-development-build-eula/"
 

Kaikkia tiedostoja ei voida näyttää, sillä liian monta tiedostoa muuttui tässä diffissä