Explorar o código

Merge pull request #245 from rocco27/master

Monthly update #1
OwN-3m-All %!s(int64=8) %!d(string=hai) anos
pai
achega
88fae6307b
Modificáronse 30 ficheiros con 351 adicións e 160 borrados
  1. BIN=BIN
      images/countries/bl.png
  2. BIN=BIN
      images/countries/cw.png
  3. BIN=BIN
      images/countries/gg.png
  4. BIN=BIN
      images/countries/im.png
  5. BIN=BIN
      images/countries/je.png
  6. BIN=BIN
      images/countries/ly.png
  7. BIN=BIN
      images/icons/aliensvspredator.png
  8. BIN=BIN
      images/icons/hurtworld.png
  9. BIN=BIN
      images/icons/m2o.png
  10. BIN=BIN
      images/icons/squad.png
  11. 22 19
      modules/config_games/server_configs/7daystodie_linux32.xml
  12. 22 19
      modules/config_games/server_configs/7daystodie_linux64.xml
  13. 19 19
      modules/config_games/server_configs/7daystodie_win64.xml
  14. 6 3
      modules/config_games/server_configs/aliensvspredator_win32.xml
  15. 0 73
      modules/config_games/server_configs/egs_win64.xml
  16. 114 0
      modules/config_games/server_configs/empyriongs_win64.xml
  17. 22 10
      modules/config_games/server_configs/homefront_win32.xml
  18. 18 2
      modules/config_games/server_configs/hurtworld_linux32.xml
  19. 8 2
      modules/config_games/server_configs/hurtworld_linux64.xml
  20. 5 2
      modules/config_games/server_configs/hurtworld_win64.xml
  21. 36 0
      modules/config_games/server_configs/mafia2online_linux32.xml
  22. 36 0
      modules/config_games/server_configs/mafia2online_win32.xml
  23. 7 0
      modules/config_games/server_configs/squad_linux64.xml
  24. 7 0
      modules/config_games/server_configs/squad_win64.xml
  25. 2 2
      protocol/TeamSpeak3/Node/Channel.php
  26. 1 1
      protocol/TeamSpeak3/Node/Channelgroup.php
  27. 5 5
      protocol/TeamSpeak3/Node/Server.php
  28. 1 1
      protocol/TeamSpeak3/Node/Servergroup.php
  29. 19 1
      protocol/TeamSpeak3/Viewer/Html.php
  30. 1 1
      protocol/lgsl/lgsl_protocol.php

BIN=BIN
images/countries/bl.png


BIN=BIN
images/countries/cw.png


BIN=BIN
images/countries/gg.png


BIN=BIN
images/countries/im.png


BIN=BIN
images/countries/je.png


BIN=BIN
images/countries/ly.png


BIN=BIN
images/icons/aliensvspredator.png


BIN=BIN
images/icons/hurtworld.png


BIN=BIN
images/icons/m2o.png


BIN=BIN
images/icons/squad.png


+ 22 - 19
modules/config_games/server_configs/7daystodie_linux32.xml

@@ -5,9 +5,9 @@
   <installer>steamcmd</installer>
   <game_name>7 Days to Die</game_name>
   <server_exec_name>7DaysToDieServer.x86</server_exec_name>
-  <cli_template>-logfile logs/output_log.txt -quit -batchmode -nographics -configfile=serverconfig.xml -dedicated</cli_template>
+  <cli_template>-logfile 7DaysToDieServer_Data/output_log.txt -quit -batchmode -nographics -configfile=serverconfig.xml -dedicated</cli_template>
   <maps_location>Data/Worlds</maps_location>
-  <console_log>logs/output_log.txt</console_log>
+  <console_log>7DaysToDieServer_Data/output_log.txt</console_log>
   <max_user_amount>64</max_user_amount>
   <mods>
     <mod key="7daystodie1">
@@ -16,7 +16,7 @@
       <installer_login>anonymous</installer_login>
     </mod>
     <mod key="7daystodie2">
-      <name>Latest Experimental</name>
+      <name>Unstable build</name>
       <installer_name>294420</installer_name>
       <installer_login>anonymous</installer_login>
       <betaname>latest_experimental</betaname>
@@ -67,14 +67,6 @@
     </text>
   </replace_texts>
   <custom_fields>
-    <field key="Game Name" type="text">
-      <default>property</default>
-      <default_value>My Game</default_value>
-      <var>GameName</var>
-      <filepath>serverconfig.xml</filepath>
-      <options>tagValueByName</options>
-      <desc>Whatever you want the game name to be (this controls the random generation seed as well).</desc>
-    </field>
     <field key="Control Panel Enabled" type="select">
       <option value="false">False</option>
       <option value="true">True</option>
@@ -111,14 +103,6 @@
       <options>tagValueByName</options>
       <desc>Port of the Telnet server.</desc>
     </field>
-    <field key="Max Spawned Zombies" type="text">
-      <default>property</default>
-      <default_value>60</default_value>
-      <var>MaxSpawnedZombies</var>
-      <filepath>serverconfig.xml</filepath>
-      <options>tagValueByName</options>
-      <desc>Making this number too large (more than about 80) may cause servers to run at poor framerates which will effect lag and play quality for clients.</desc>
-    </field>
     <field key="EAC Enabled" type="select">
       <option value="false">False</option>
       <option value="true">True</option>
@@ -129,7 +113,26 @@
       <options>tagValueByName</options>
       <desc>Enables/Disables EasyAntiCheat.</desc>
     </field>
+    <field key="Game Name" type="text">
+      <default>property</default>
+      <default_value>My Game</default_value>
+      <var>GameName</var>
+      <filepath>serverconfig.xml</filepath>
+      <options>tagValueByName</options>
+      <desc>Whatever you want the game name to be (this controls the random generation seed as well).</desc>
+    </field>
+    <field key="Max Spawned Zombies" type="text">
+      <default>property</default>
+      <default_value>60</default_value>
+      <var>MaxSpawnedZombies</var>
+      <filepath>serverconfig.xml</filepath>
+      <options>tagValueByName</options>
+      <desc>Making this number too large (more than about 80) may cause servers to run at poor framerates which will effect lag and play quality for clients.</desc>
+    </field>
   </custom_fields>
+  <lock_files>
+    7DaysToDieServer.x86_64
+  </lock_files>
   <configuration_files>
     <file description="Server Configurations">serverconfig.xml</file>
     <file description="Admin Configurations">Saves/serveradmin.xml</file>

+ 22 - 19
modules/config_games/server_configs/7daystodie_linux64.xml

@@ -5,9 +5,9 @@
   <installer>steamcmd</installer>
   <game_name>7 Days to Die</game_name>
   <server_exec_name>7DaysToDieServer.x86_64</server_exec_name>
-  <cli_template>-logfile logs/output_log.txt -quit -batchmode -nographics -configfile=serverconfig.xml -dedicated</cli_template>
+  <cli_template>-logfile 7DaysToDieServer_Data/output_log.txt -quit -batchmode -nographics -configfile=serverconfig.xml -dedicated</cli_template>
   <maps_location>Data/Worlds</maps_location>
-  <console_log>logs/output_log.txt</console_log>
+  <console_log>7DaysToDieServer_Data/output_log.txt</console_log>
   <max_user_amount>64</max_user_amount>
   <mods>
     <mod key="7daystodie1">
@@ -16,7 +16,7 @@
       <installer_login>anonymous</installer_login>
     </mod>
     <mod key="7daystodie2">
-      <name>Latest Experimental</name>
+      <name>Unstable build</name>
       <installer_name>294420</installer_name>
       <installer_login>anonymous</installer_login>
       <betaname>latest_experimental</betaname>
@@ -67,14 +67,6 @@
     </text>
   </replace_texts>
   <custom_fields>
-    <field key="Game Name" type="text">
-      <default>property</default>
-      <default_value>My Game</default_value>
-      <var>GameName</var>
-      <filepath>serverconfig.xml</filepath>
-      <options>tagValueByName</options>
-      <desc>Whatever you want the game name to be (this controls the random generation seed as well).</desc>
-    </field>
     <field key="Control Panel Enabled" type="select">
       <option value="false">False</option>
       <option value="true">True</option>
@@ -111,14 +103,6 @@
       <options>tagValueByName</options>
       <desc>Port of the Telnet server.</desc>
     </field>
-    <field key="Max Spawned Zombies" type="text">
-      <default>property</default>
-      <default_value>60</default_value>
-      <var>MaxSpawnedZombies</var>
-      <filepath>serverconfig.xml</filepath>
-      <options>tagValueByName</options>
-      <desc>Making this number too large (more than about 80) may cause servers to run at poor framerates which will effect lag and play quality for clients.</desc>
-    </field>
     <field key="EAC Enabled" type="select">
       <option value="false">False</option>
       <option value="true">True</option>
@@ -129,7 +113,26 @@
       <options>tagValueByName</options>
       <desc>Enables/Disables EasyAntiCheat.</desc>
     </field>
+    <field key="Game Name" type="text">
+      <default>property</default>
+      <default_value>My Game</default_value>
+      <var>GameName</var>
+      <filepath>serverconfig.xml</filepath>
+      <options>tagValueByName</options>
+      <desc>Whatever you want the game name to be (this controls the random generation seed as well).</desc>
+    </field>
+    <field key="Max Spawned Zombies" type="text">
+      <default>property</default>
+      <default_value>60</default_value>
+      <var>MaxSpawnedZombies</var>
+      <filepath>serverconfig.xml</filepath>
+      <options>tagValueByName</options>
+      <desc>Making this number too large (more than about 80) may cause servers to run at poor framerates which will effect lag and play quality for clients.</desc>
+    </field>
   </custom_fields>
+  <lock_files>
+    7DaysToDieServer.x86
+  </lock_files>
   <configuration_files>
     <file description="Server Configurations">serverconfig.xml</file>
     <file description="Admin Configurations">Saves/serveradmin.xml</file>

+ 19 - 19
modules/config_games/server_configs/7daystodie_win64.xml

@@ -5,9 +5,9 @@
   <installer>steamcmd</installer>
   <game_name>7 Days to Die</game_name>
   <server_exec_name>7DaysToDieServer.exe</server_exec_name>
-  <cli_template>-logfile logs/output_log.txt -quit -batchmode -nographics -configfile=serverconfig.xml -dedicated</cli_template>
+  <cli_template>-logfile 7DaysToDieServer_Data/output_log.txt -quit -batchmode -nographics -configfile=serverconfig.xml -dedicated</cli_template>
   <maps_location>Data/Worlds</maps_location>
-  <console_log>logs/output_log.txt</console_log>
+  <console_log>7DaysToDieServer_Data/output_log.txt</console_log>
   <max_user_amount>64</max_user_amount>
   <mods>
     <mod key="7daystodie1">
@@ -16,7 +16,7 @@
       <installer_login>anonymous</installer_login>
     </mod>
     <mod key="7daystodie2">
-      <name>Latest Experimental</name>
+      <name>Unstable build</name>
       <installer_name>294420</installer_name>
       <installer_login>anonymous</installer_login>
       <betaname>latest_experimental</betaname>
@@ -67,14 +67,6 @@
     </text>
   </replace_texts>
   <custom_fields>
-    <field key="Game Name" type="text">
-      <default>property</default>
-      <default_value>My Game</default_value>
-      <var>GameName</var>
-      <filepath>serverconfig.xml</filepath>
-      <options>tagValueByName</options>
-      <desc>Whatever you want the game name to be (this controls the random generation seed as well).</desc>
-    </field>
     <field key="Control Panel Enabled" type="select">
       <option value="false">False</option>
       <option value="true">True</option>
@@ -111,14 +103,6 @@
       <options>tagValueByName</options>
       <desc>Port of the Telnet server.</desc>
     </field>
-    <field key="Max Spawned Zombies" type="text">
-      <default>property</default>
-      <default_value>60</default_value>
-      <var>MaxSpawnedZombies</var>
-      <filepath>serverconfig.xml</filepath>
-      <options>tagValueByName</options>
-      <desc>Making this number too large (more than about 80) may cause servers to run at poor framerates which will effect lag and play quality for clients.</desc>
-    </field>
     <field key="EAC Enabled" type="select">
       <option value="false">False</option>
       <option value="true">True</option>
@@ -129,6 +113,22 @@
       <options>tagValueByName</options>
       <desc>Enables/Disables EasyAntiCheat.</desc>
     </field>
+    <field key="Game Name" type="text">
+      <default>property</default>
+      <default_value>My Game</default_value>
+      <var>GameName</var>
+      <filepath>serverconfig.xml</filepath>
+      <options>tagValueByName</options>
+      <desc>Whatever you want the game name to be (this controls the random generation seed as well).</desc>
+    </field>
+    <field key="Max Spawned Zombies" type="text">
+      <default>property</default>
+      <default_value>60</default_value>
+      <var>MaxSpawnedZombies</var>
+      <filepath>serverconfig.xml</filepath>
+      <options>tagValueByName</options>
+      <desc>Making this number too large (more than about 80) may cause servers to run at poor framerates which will effect lag and play quality for clients.</desc>
+    </field>
   </custom_fields>
   <configuration_files>
     <file description="Server Configurations">serverconfig.xml</file>

+ 6 - 3
modules/config_games/server_configs/aliensvspredator_win32.xml

@@ -51,7 +51,7 @@
     </text>
   </replace_texts>
   <custom_fields>
-    <field key="authport" type="text">
+    <field key="Auth Port" type="text">
       <default>authport.*</default>
       <default_value>8766</default_value>
       <var>authport</var>
@@ -59,7 +59,7 @@
    	  <options>s</options>
       <desc>Port of Auth.</desc>
     </field>
-    <field key="gameport" type="text">
+    <field key="Game Port" type="text">
       <default>gameport.*</default>
       <default_value>27016</default_value>
       <var>gameport</var>
@@ -88,4 +88,7 @@
         echo host>> $config
     fi
   </post_install>
-</game_config>
+  <configuration_files>
+    <file description="Server Configurations">default.cfg</file>
+  </configuration_files>
+</game_config>

+ 0 - 73
modules/config_games/server_configs/egs_win64.xml

@@ -1,73 +0,0 @@
-<game_config>
-  <game_key>egs_win64</game_key>
-  <protocol>lgsl</protocol>
-  <lgsl_query_name>egs</lgsl_query_name>
-  <installer>steamcmd</installer>
-  <game_name>Empyrion – Galactic Survival</game_name>
-  <server_exec_name>EmpyrionLauncher.exe</server_exec_name>
-  <cli_template>-startDedi</cli_template>
-  <console_log>Logs/Dedicated.log</console_log>
-  <max_user_amount>12</max_user_amount>
-  <mods>
-    <mod key="egs1">
-      <name>Stable</name>
-      <installer_name>530870</installer_name>
-      <installer_login>anonymous</installer_login>
-    </mod>
-    <mod key="egs2">
-      <name>Experimental</name>
-      <installer_name>530870</installer_name>
-      <installer_login>anonymous</installer_login>
-      <betaname>experimental</betaname>
-    </mod>
-  </mods>
-  <replace_texts>
-    <text key="home_name">
-      <default>Srv_Name: .*</default>
-      <var>Srv_Name: </var>
-      <filepath>dedicated.yaml</filepath>
-    </text>
-    <text key="port">
-      <default>Srv_Port: .*</default>
-      <var>Srv_Port: </var>
-      <filepath>dedicated.yaml</filepath>
-    </text>
-    <text key="max_players">
-      <default>Srv_MaxPlayers: .*</default>
-      <var>Srv_MaxPlayers: </var>
-      <filepath>dedicated.yaml</filepath>
-    </text>
-    <text key="control_password">
-      <default>Tel_Pwd: .*</default>
-      <var>Tel_Pwd: </var>
-      <filepath>dedicated.yaml</filepath>
-    </text>
-  </replace_texts>
-  <custom_fields>
-    <field key="Enable Telnet" type="select">
-      <option value="true">True</option>
-      <option value="false">False</option>
-      <default>Tel_Enabled: .*</default>
-      <default_value>true</default_value>
-      <var>Tel_Enabled: </var>
-      <filepath>dedicated.yaml</filepath>
-      <desc>Activate Telnet server.</desc>
-    </field>
-    <field key="Telnet Port" type="text">
-      <default>Tel_Port: .*</default>
-      <default_value>30004</default_value>
-      <var>Tel_Port: </var>
-      <filepath>dedicated.yaml</filepath>
-      <desc>Port of Telnet.</desc>
-    </field>
-    <field key="Activate EAC" type="select">
-      <option value="true">True</option>
-      <option value="false">False</option>
-      <default>EACActive: .*</default>
-      <default_value>false</default_value>
-      <var>EACActive: </var>
-      <filepath>dedicated.yaml</filepath>
-      <desc>Activate Easy Anti Cheat.</desc>
-    </field>
-  </custom_fields>
-</game_config>

+ 114 - 0
modules/config_games/server_configs/empyriongs_win64.xml

@@ -0,0 +1,114 @@
+<game_config>
+  <game_key>empyriongs_win64</game_key>
+  <protocol>lgsl</protocol>
+  <lgsl_query_name>egs</lgsl_query_name>
+  <installer>steamcmd</installer>
+  <game_name>Empyrion – Galactic Survival</game_name>
+  <server_exec_name>EmpyrionLauncher.exe</server_exec_name>
+  <cli_template>-startDedi -dedicated dedicated.yaml</cli_template>
+  <console_log>Logs/Dedicated.log</console_log>
+  <max_user_amount>128</max_user_amount>
+  <mods>
+    <mod key="empyriongs1">
+      <name>Stable</name>
+      <installer_name>530870</installer_name>
+      <installer_login>anonymous</installer_login>
+    </mod>
+    <mod key="empyriongs2">
+      <name>Unstable Test Branch</name>
+      <installer_name>530870</installer_name>
+      <installer_login>anonymous</installer_login>
+      <betaname>experimental</betaname>
+    </mod>
+  </mods>
+  <replace_texts>
+    <text key="home_name">
+      <default>Srv_Name: .*</default>
+      <var>Srv_Name: </var>
+      <filepath>dedicated.yaml</filepath>
+    </text>
+    <text key="port">
+      <default>Srv_Port: .*</default>
+      <var>Srv_Port: </var>
+      <filepath>dedicated.yaml</filepath>
+    </text>
+    <text key="max_players">
+      <default>(.*)(Srv_MaxPlayers:\s+)(.*)</default>
+      <var>    ${2}%key%</var>
+      <filepath>dedicated.yaml</filepath>
+      <options>key-regex</options>
+    </text>
+    <text key="control_password">
+      <default>(.*)(Tel_Pwd:\s+)(.*)</default>
+      <var>    ${2}%key%</var>
+      <filepath>dedicated.yaml</filepath>
+      <options>key-regex</options>
+    </text>
+  </replace_texts>
+  <custom_fields>
+    <field key="Enable Telnet" type="select">
+      <option value="True">True</option>
+      <option value="False">False</option>
+      <default>(.*)(Tel_Enabled:\s+)(.*)</default>
+      <default_value>True</default_value>
+      <var>    ${2}%key%</var>
+      <filepath>dedicated.yaml</filepath>
+      <options>key-regex</options>
+      <desc>Activate Telnet server.</desc>
+    </field>
+    <field key="Telnet Port" type="text">
+      <default>(.*)(Tel_Port:\s+)(.*)</default>
+      <default_value>30004</default_value>
+      <var>    ${2}%key%</var>
+      <filepath>dedicated.yaml</filepath>
+      <options>key-regex</options>
+      <desc>Port of Telnet.</desc>
+    </field>
+    <field key="Activate EAC" type="select">
+      <option value="True">True</option>
+      <option value="False">False</option>
+      <default>(.*)(EACActive:\s+)(.*)</default>
+      <default_value>False</default_value>
+      <var>    ${2}%key%</var>
+      <filepath>dedicated.yaml</filepath>
+      <options>key-regex</options>
+      <desc>Activate Easy Anti Cheat.</desc>
+    </field>
+    <field key="Reserve Playfields" type="text">
+      <default>(.*)(Srv_ReservePlayfields:\s+)(.*)(#\s+)(.*)</default>
+      <default_value>1</default_value>
+      <var>    ${2}%key%  ${4}${5}</var>
+      <filepath>dedicated.yaml</filepath>
+      <options>key-regex</options>
+      <desc>Idle playfield servers held in reserve. For busy public servers, we recommend at least 2.</desc>
+    </field>
+    <field key="Stop Period" type="text">
+      <default>(.*)(Srv_StopPeriod:\s+)(.*)</default>
+      <default_value>48</default_value>
+      <var>    ${2}%key%</var>
+      <filepath>dedicated.yaml</filepath>
+      <options>key-regex</options>
+      <desc>All playfield servers will be automatically stopped every (n) real time hours. Players will get some warning messages before.</desc>
+    </field>
+    <field key="Game Name" type="text">
+      <default>(.*)(GameName:\s+)(.*)(#\s+)(.*)</default>
+      <default_value>NewGame_0</default_value>
+      <var>    ${2}%key%                      ${4}${5}</var>
+      <filepath>dedicated.yaml</filepath>
+      <options>key-regex</options>
+      <desc>Determines name of the save game.</desc>
+    </field>
+    <field key="Seed" type="text">
+      <default>(.*)(Seed:\s+)(.*)(#\s+)(.*)</default>
+      <default_value>2309115</default_value>
+      <var>    ${2}%key%                            ${4}${5}</var>
+      <filepath>dedicated.yaml</filepath>
+      <options>key-regex</options>
+      <desc>The seed determines how the world is procedurally generated - the same seed means the same world. Can be any 7 digit or below number, but negative numbers and 0 (zero) cannot be used.</desc>
+    </field>
+  </custom_fields>
+  <configuration_files>
+    <file description="Server Configurations">dedicated.yaml</file>
+    <file description="Admin Configurations">Saves/adminconfig.example.yaml</file>
+  </configuration_files>
+</game_config>

+ 22 - 10
modules/config_games/server_configs/homefront_win32.xml

@@ -49,23 +49,35 @@
     </param>
   </server_params>
   <custom_fields>
-    <field key="VAC Secured" type="select">
-      <option value="True">True</option>
-      <option value="False">False</option>
-      <default>bVAC=.*</default>
-      <default_value>True</default_value>
-      <var>bVAC=</var>
-      <filepath>GCGame/Config/DedicatedProfile_DefaultProfile/DedicatedPlaylist</filepath>
-      <desc>Allow or disallow any VAC banned players from joining.</desc>
-    </field>
     <field key="Cheat Detection" type="select">
-      <option value="True">True</option>
       <option value="False">False</option>
+      <option value="True">True</option>
       <default>bEnableCheatDetection=.*</default>
       <default_value>False</default_value>
       <var>bEnableCheatDetection=</var>
       <filepath>GCGame/Config/DedicatedProfile_DefaultProfile/DedicatedPlaylist</filepath>
       <desc>Enable/Disable cheat detection.</desc>
     </field>
+    <field key="VAC Secured" type="select">
+      <option value="False">False</option>
+      <option value="True">True</option>
+      <default>bVAC=.*</default>
+      <default_value>True</default_value>
+      <var>bVAC=</var>
+      <filepath>GCGame/Config/DedicatedProfile_DefaultProfile/DedicatedPlaylist</filepath>
+      <desc>Allow or disallow any VAC banned players from joining.</desc>
+    </field>
   </custom_fields>
+  <post_install>
+    if [ -d "GCGame/Config/DedicatedProfile_DefaultProfile" ]
+      then
+        echo "DedicatedProfile_DefaultProfile found. OK!"
+      else
+        echo "DedicatedProfile_DefaultProfile not found."
+        echo "You need to run DedicatedServer.exe server tool first and create DedicatedProfile_DefaultProfile!"
+    fi
+</post_install>
+  <configuration_files>
+    <file description="Server Configurations">GCGame/Config/DedicatedProfile_DefaultProfile/DedicatedPlaylist</file>
+  </configuration_files>
 </game_config>

+ 18 - 2
modules/config_games/server_configs/hurtworld_linux32.xml

@@ -5,7 +5,7 @@
   <installer>steamcmd</installer>
   <game_name>Hurtworld</game_name>
   <server_exec_name>Hurtworld.x86</server_exec_name>
-  <cli_template>-batchmode -nographics -exec "%PORT% %MAP%;%QUERY_PORT%;%PLAYERS%;%HOSTNAME%" -logfile "output.txt"</cli_template>
+  <cli_template>-batchmode -nographics -exec "%PORT% %MAP%;%QUERY_PORT%;%PLAYERS%;%HOSTNAME%" -logfile "gamelog.txt"</cli_template>
   <cli_params>
     <cli_param id="PORT" cli_string="host" options="s" />
     <cli_param id="MAP" cli_string="" />
@@ -16,7 +16,7 @@
     <port type="add" id="QUERY_PORT" cli_string="queryport" options="s">10</port>
   </reserve_ports>
   <maps_location>Hurtworld_Data/maps</maps_location>
-  <console_log>output.txt</console_log>
+  <console_log>gamelog.txt</console_log>
   <max_user_amount>60</max_user_amount>
   <mods>
     <mod key="default">
@@ -25,4 +25,20 @@
       <installer_login>anonymous</installer_login>
     </mod>
   </mods>
+  <post_install>
+    if [ -f "Hurtworld_Data/Plugins/x86/steamclient.so" ]
+      then
+        echo "steamclient.so found. OK!"
+      else
+        echo "steamclient.so not found."
+        echo "Fixing steamclient.so!"
+        mv -f steamclient.so Hurtworld_Data/Plugins/x86
+    fi
+  </post_install>
+  <lock_files>
+    Hurtworld.x86_64
+  </lock_files>
+  <configuration_files>
+    <file description="Server Configurations">autoexec.cfg</file>
+  </configuration_files>
 </game_config>

+ 8 - 2
modules/config_games/server_configs/hurtworld_linux64.xml

@@ -5,7 +5,7 @@
   <installer>steamcmd</installer>
   <game_name>Hurtworld</game_name>
   <server_exec_name>Hurtworld.x86_64</server_exec_name>
-  <cli_template>-batchmode -nographics -exec "%PORT% %MAP%;%QUERY_PORT%;%PLAYERS%;%HOSTNAME%" -logfile "output.txt"</cli_template>
+  <cli_template>-batchmode -nographics -exec "%PORT% %MAP%;%QUERY_PORT%;%PLAYERS%;%HOSTNAME%" -logfile "gamelog.txt"</cli_template>
   <cli_params>
     <cli_param id="PORT" cli_string="host" options="s" />
     <cli_param id="MAP" cli_string="" />
@@ -16,7 +16,7 @@
     <port type="add" id="QUERY_PORT" cli_string="queryport" options="s">10</port>
   </reserve_ports>
   <maps_location>Hurtworld_Data/maps</maps_location>
-  <console_log>output.txt</console_log>
+  <console_log>gamelog.txt</console_log>
   <max_user_amount>60</max_user_amount>
   <mods>
     <mod key="default">
@@ -25,4 +25,10 @@
       <installer_login>anonymous</installer_login>
     </mod>
   </mods>
+  <lock_files>
+    Hurtworld.x86
+  </lock_files>
+  <configuration_files>
+    <file description="Server Configurations">autoexec.cfg</file>
+  </configuration_files>
 </game_config>

+ 5 - 2
modules/config_games/server_configs/hurtworld_win64.xml

@@ -5,7 +5,7 @@
   <installer>steamcmd</installer>
   <game_name>Hurtworld</game_name>
   <server_exec_name>Hurtworld.exe</server_exec_name>
-  <cli_template>-batchmode -nographics -exec "%PORT% %MAP%;%QUERY_PORT%;%PLAYERS%;%HOSTNAME%" -logfile "output.txt"</cli_template>
+  <cli_template>-batchmode -nographics -exec "%PORT% %MAP%;%QUERY_PORT%;%PLAYERS%;%HOSTNAME%" -logfile "gamelog.txt"</cli_template>
   <cli_params>
     <cli_param id="PORT" cli_string="host" options="s" />
     <cli_param id="MAP" cli_string="" />
@@ -16,7 +16,7 @@
     <port type="add" id="QUERY_PORT" cli_string="queryport" options="s">10</port>
   </reserve_ports>
   <maps_location>Hurtworld_Data/maps</maps_location>
-  <console_log>output.txt</console_log>
+  <console_log>gamelog.txt</console_log>
   <max_user_amount>60</max_user_amount>
   <mods>
     <mod key="default">
@@ -25,4 +25,7 @@
       <installer_login>anonymous</installer_login>
     </mod>
   </mods>
+  <configuration_files>
+    <file description="Server Configurations">autoexec.cfg</file>
+  </configuration_files>
 </game_config>

+ 36 - 0
modules/config_games/server_configs/mafia2online_linux32.xml

@@ -0,0 +1,36 @@
+<game_config>
+  <game_key>mafia2online_linux32</game_key>
+  <game_name>Mafia 2 Online</game_name>
+  <server_exec_name>m2online-svr</server_exec_name>
+  <max_user_amount>1000</max_user_amount>
+  <mods>
+    <mod key="m2o">
+      <name>None</name>
+    </mod>
+  </mods>
+  <replace_texts>
+    <text key="home_name">
+      <default>hostname</default>
+      <filepath>config.xml</filepath>
+      <options>tags</options>
+    </text>
+    <text key="ip">
+      <default>serverip</default>
+      <filepath>config.xml</filepath>
+      <options>tags</options>
+    </text>
+    <text key="port">
+      <default>port</default>
+      <filepath>config.xml</filepath>
+      <options>tags</options>
+    </text>
+    <text key="max_players">
+      <default>maxplayers</default>
+      <filepath>config.xml</filepath>
+      <options>tags</options>
+    </text>
+  </replace_texts>
+  <configuration_files>
+    <file description="Server Configurations">config.xml</file>
+  </configuration_files>
+</game_config>

+ 36 - 0
modules/config_games/server_configs/mafia2online_win32.xml

@@ -0,0 +1,36 @@
+<game_config>
+  <game_key>mafia2online_win32</game_key>
+  <game_name>Mafia 2 Online</game_name>
+  <server_exec_name>m2online-svr.exe</server_exec_name>
+  <max_user_amount>1000</max_user_amount>
+  <mods>
+    <mod key="m2o">
+      <name>None</name>
+    </mod>
+  </mods>
+  <replace_texts>
+    <text key="home_name">
+      <default>hostname</default>
+      <filepath>config.xml</filepath>
+      <options>tags</options>
+    </text>
+    <text key="ip">
+      <default>serverip</default>
+      <filepath>config.xml</filepath>
+      <options>tags</options>
+    </text>
+    <text key="port">
+      <default>port</default>
+      <filepath>config.xml</filepath>
+      <options>tags</options>
+    </text>
+    <text key="max_players">
+      <default>maxplayers</default>
+      <filepath>config.xml</filepath>
+      <options>tags</options>
+    </text>
+  </replace_texts>
+  <configuration_files>
+    <file description="Server Configurations">config.xml</file>
+  </configuration_files>
+</game_config>

+ 7 - 0
modules/config_games/server_configs/squad_linux64.xml

@@ -71,4 +71,11 @@
   <post_install>
     sed -i '4s/IP/Ip/g' Squad/ServerConfig/Rcon.cfg
   </post_install>
+  <configuration_files>
+    <file description="Server Configurations">Squad/ServerConfig/Server.cfg</file>
+    <file description="RCON Configurations">Squad/ServerConfig/Rcon.cfg</file>
+    <file description="Admin Configurations">Squad/ServerConfig/Admins.cfg</file>
+    <file description="Map Rotation Configurations">Squad/ServerConfig/MapRotation.cfg</file>
+    <file description="Server Messages Configurations">Squad/ServerConfig/ServerMessages.cfg</file>
+  </configuration_files>
 </game_config>

+ 7 - 0
modules/config_games/server_configs/squad_win64.xml

@@ -71,4 +71,11 @@
   <post_install>
     sed -i '4s/IP/Ip/g' Squad/ServerConfig/Rcon.cfg
   </post_install>
+  <configuration_files>
+    <file description="Server Configurations">Squad/ServerConfig/Server.cfg</file>
+    <file description="RCON Configurations">Squad/ServerConfig/Rcon.cfg</file>
+    <file description="Admin Configurations">Squad/ServerConfig/Admins.cfg</file>
+    <file description="Map Rotation Configurations">Squad/ServerConfig/MapRotation.cfg</file>
+    <file description="Server Messages Configurations">Squad/ServerConfig/ServerMessages.cfg</file>
+  </configuration_files>
 </game_config>

+ 2 - 2
protocol/TeamSpeak3/Node/Channel.php

@@ -57,7 +57,7 @@ class TeamSpeak3_Node_Channel extends TeamSpeak3_Node_Abstract
    * Returns an array filled with TeamSpeak3_Node_Channel objects.
    *
    * @param  array $filter
-   * @return array
+   * @return array|TeamSpeak3_Node_Channel[]
    */
   public function subChannelList(array $filter = array())
   {
@@ -112,7 +112,7 @@ class TeamSpeak3_Node_Channel extends TeamSpeak3_Node_Abstract
    * Returns an array filled with TeamSpeak3_Node_Client objects.
    *
    * @param  array $filter
-   * @return array
+   * @return array|TeamSpeak3_Node_Client[]
    */
   public function clientList(array $filter = array())
   {

+ 1 - 1
protocol/TeamSpeak3/Node/Channelgroup.php

@@ -148,7 +148,7 @@ class TeamSpeak3_Node_Channelgroup extends TeamSpeak3_Node_Abstract
   /**
    * Returns a list of clients assigned to the server group specified.
    *
-   * @return array
+   * @return array|TeamSpeak3_Node_Client[]
    */
   public function clientList()
   {

+ 5 - 5
protocol/TeamSpeak3/Node/Server.php

@@ -94,7 +94,7 @@ class TeamSpeak3_Node_Server extends TeamSpeak3_Node_Abstract
    * Returns an array filled with TeamSpeak3_Node_Channel objects.
    *
    * @param  array $filter
-   * @return array
+   * @return array|TeamSpeak3_Node_Channel[]
    */
   public function channelList(array $filter = array())
   {
@@ -625,7 +625,7 @@ class TeamSpeak3_Node_Server extends TeamSpeak3_Node_Abstract
    * Returns an array filled with TeamSpeak3_Node_Client objects.
    *
    * @param  array $filter
-   * @return array
+   * @return array|TeamSpeak3_Node_Client[]
    */
   public function clientList(array $filter = array())
   {
@@ -1023,7 +1023,7 @@ class TeamSpeak3_Node_Server extends TeamSpeak3_Node_Abstract
    * Returns a list of server groups available.
    *
    * @param  filter $filter
-   * @return array
+   * @return array|TeamSpeak3_Node_Servergroup[]
    */
   public function serverGroupList(array $filter = array())
   {
@@ -1353,7 +1353,7 @@ class TeamSpeak3_Node_Server extends TeamSpeak3_Node_Abstract
    * Returns a list of channel groups available.
    *
    * @param  array $filter
-   * @return array
+   * @return array|TeamSpeak3_Node_Channelgroup[]
    */
   public function channelGroupList(array $filter = array())
   {
@@ -2413,7 +2413,7 @@ class TeamSpeak3_Node_Server extends TeamSpeak3_Node_Abstract
    * @param  TeamSpeak3_Node_Abstract $b
    * @return integer
    */
-  protected static function sortGroupList(TeamSpeak3_Node_Abstract $a, TeamSpeak3_Node_Abstract $b)
+  public static function sortGroupList(TeamSpeak3_Node_Abstract $a, TeamSpeak3_Node_Abstract $b)
   {
     if(get_class($a) != get_class($b))
     {

+ 1 - 1
protocol/TeamSpeak3/Node/Servergroup.php

@@ -150,7 +150,7 @@ class TeamSpeak3_Node_Servergroup extends TeamSpeak3_Node_Abstract
   /**
    * Returns a list of clients assigned to the server group specified.
    *
-   * @return array
+   * @return array|TeamSpeak3_Node_Client[]
    */
   public function clientList()
   {

+ 19 - 1
protocol/TeamSpeak3/Viewer/Html.php

@@ -548,7 +548,25 @@ class TeamSpeak3_Viewer_Html implements TeamSpeak3_Viewer_Interface
       }
     }
 
-    foreach($this->currObj->memberOf() as $group)
+    // Get current groups the client is a member of.
+    // Shift off first group (channel group), leaving only server groups.
+    $groups = $this->currObj->memberOf();
+    $clientGroups = [$groups[0]];
+    unset($groups[0]);
+
+    // Create temp assoc array to use in custom uasort function.
+    $sgroups = [];
+    foreach($groups as $group) {
+      $sgroups[$group['sgid']] = $group;
+    }
+    // Use same server group sort function from TeamSpeak3_Node_Server class.
+    uasort($sgroups, array(get_class($this->currObj->getParent()), "sortGroupList"));
+
+    // Append first group (channel group), convert to non-assoc array.
+    $clientGroups = array_merge($clientGroups, array_values($sgroups));
+    unset($sgroups); // Clean-up temp sorting array.
+
+    foreach($clientGroups as $group)
     {
       if(!$group["iconid"]) continue;
 

+ 1 - 1
protocol/lgsl/lgsl_protocol.php

@@ -313,7 +313,7 @@ if (!function_exists('lgsl_version')) { // START OF DOUBLE LOAD PROTECTION
 	function lgsl_software_link($type, $ip, $c_port, $q_port, $s_port)
 	{
 		$lgsl_software_link = array(
-		"7dtd"			=> "steam://connect/{IP}:{S_PORT}",
+		"7dtd"			=> "steam://connect/{IP}:{Q_PORT}",
 		"aarmy"			=> "qtracker://{IP}:{S_PORT}?game=ArmyOperations&action=show",
 		"aarmy3"		=> "qtracker://{IP}:{S_PORT}?game=AmericasArmy3&action=show",
 		"aliensvspredator"	=> "steam://connect/{IP}:{Q_PORT}",