diff --git a/7DaysToDie/sdtdserver b/7DaysToDie/sdtdserver
index b27e3846a..0523ed81d 100644
--- a/7DaysToDie/sdtdserver
+++ b/7DaysToDie/sdtdserver
@@ -74,7 +74,7 @@ if [ ! -f "${rootdir}/functions/${functionfile}" ]; then
fi
cd functions
echo -e "loading ${functionfile}...\c"
- wget -N --no-check-certificate /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgameservers/master/functions/${functionfile} 2>&1 | grep -F HTTP | cut -c45-
+ wget -N --no-check-certificate /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgsm/master/functions/${functionfile} 2>&1 | grep -F HTTP | cut -c45-
chmod +x "${functionfile}"
cd "${rootdir}"
sleep 1
diff --git a/Arma3/arma3server b/Arma3/arma3server
index f1a190eb3..2c0125374 100644
--- a/Arma3/arma3server
+++ b/Arma3/arma3server
@@ -4,7 +4,7 @@
# Author: Daniel Gibbs
# Contributor: Scarsz
# Website: http://danielgibbs.co.uk
-# Version: 210115
+# Version: 200315
#### Variables ####
@@ -21,11 +21,19 @@ steampass="password"
ip="0.0.0.0"
fn_parms(){
-parms="-netlog -ip=${ip} -config=${servercfg}"
+parms="-netlog -ip=${ip} -cfg=${networkcfgfullpath} -config=${servercfgfullpath} -mod=${mods}"
}
#### Advanced Variables ####
+# ARMA 3 Modules
+# add mods with relative paths:
+# mods/\@CBA_A3\;
+# or several mods as:
+# mods/\@CBA_A3\;mods/\@task_force_radio
+# and chmod modules directories to 775
+mods=""
+
# Steam
appid="233780"
@@ -42,9 +50,11 @@ filesdir="${rootdir}/serverfiles"
systemdir="${filesdir}"
executabledir="${filesdir}"
executable="./arma3server"
-servercfgdir="${systemdir}"
-servercfg="${servicename}.cfg"
+servercfgdir="${systemdir}/cfg"
+servercfg="${servicename}.server.cfg"
+networkcfg="${servicename}.network.cfg"
servercfgfullpath="${servercfgdir}/${servercfg}"
+networkcfgfullpath="${servercfgdir}/${networkcfg}"
backupdir="${rootdir}/backups"
# Logging
@@ -72,7 +82,7 @@ if [ ! -f "${rootdir}/functions/${functionfile}" ]; then
fi
cd functions
echo -e "loading ${functionfile}...\c"
- wget -N --no-check-certificate /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgameservers/master/functions/${functionfile} 2>&1 | grep -F HTTP | cut -c45-
+ wget -N --no-check-certificate /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgsm/master/functions/${functionfile} 2>&1 | grep -F HTTP | cut -c45-
chmod +x "${functionfile}"
cd "${rootdir}"
sleep 1
diff --git a/Arma3/cfg/lgsm-default.network.cfg b/Arma3/cfg/lgsm-default.network.cfg
new file mode 100644
index 000000000..5bba89f8d
--- /dev/null
+++ b/Arma3/cfg/lgsm-default.network.cfg
@@ -0,0 +1,77 @@
+//
+// network.cfg - Defines network tuning parameters
+//
+// This file is to be passed to the -cfg parameter on the command line for the server
+// See http://community.bistudio.com/wiki/basic.cfg
+// The following settings are the suggested settings
+
+// BANDWIDTH SETTINGS
+
+// Bandwidth the server is guaranteed to have (in bps)
+// General guideline is NumberOfPlayers * 256kb
+// Default: 131072
+MinBandwidth=5120000;
+// Bandwidth the server can never go above (in bps)
+// For a single server, use full network speed; decrease when running multiple servers
+MaxBandwidth=10240000;
+
+// PACKET SETTINGS
+
+// Maximum number of packets per frame.
+// Increasing the value potentially decreases lag, but increases desync
+// Default: 128
+MaxMsgSend=2048;
+// Maximum payload of guaranteed packet (in b)
+// Small messages are packed to larger packets
+// Guaranteed packets are used for non-repetitive events, like shooting
+// Lower value means more packets are sent, so less events will get combined
+// Default: 512
+MaxSizeGuaranteed=512;
+// Maximum payload of non-guaranteed packet (in b)
+// Increasing this value may improve bandwidth requirement, but may also increase lag
+// Largest factor in desync
+// Guidance is half of MaxSizeGuaranteed
+// Default: 256
+MaxSizeNonguaranteed=256;
+// Maximal size of a packet sent over the network
+// Only necessary if ISP forces lower packet size and there are connectivity issues
+// Default: 1400
+// class sockets{maxPacketSize=1400};
+
+// SMOOTHNESS SETTINGS
+
+// Minimal error required to send network updates for far units
+// Smaller values will make for smoother movement at long ranges, but will increase network traffic
+// Default: 0.003
+MinErrorToSend=0.01;
+// Minimal error required to send network updates for near units
+// Using larger value can reduce traffic sent for near units
+// Also controls client to server traffic
+// Default: 0.01
+MinErrorToSendNear=0.02;
+
+// GEOLOCATION SETTINGS
+
+// Server latitude
+serverLatitude=52;
+serverLatitudeAuto=52;
+
+// Server Longitude
+serverLongitude=0;
+serverLongitudeAuto=0;
+// MISC
+// View Distance (not sure if this actually works)
+viewDistance=10000;
+
+// Maximum size (in b) for custom face or sound files
+// Default: 0
+MaxCustomFileSize=0;
+// Server language
+language="English";
+steamLanguage="English";
+// Adapter
+adapter=-1;
+// Windowed mode
+Windowed=0;
+
+3D_Performance=1.000000;
\ No newline at end of file
diff --git a/Arma3/cfg/lgsm-default.cfg b/Arma3/cfg/lgsm-default.server.cfg
similarity index 100%
rename from Arma3/cfg/lgsm-default.cfg
rename to Arma3/cfg/lgsm-default.server.cfg
diff --git a/BladeSymphony/bsserver b/BladeSymphony/bsserver
index 4aa7b5fec..57cf170d7 100644
--- a/BladeSymphony/bsserver
+++ b/BladeSymphony/bsserver
@@ -78,7 +78,7 @@ if [ ! -f "${rootdir}/functions/${functionfile}" ]; then
fi
cd functions
echo -e "loading ${functionfile}...\c"
- wget -N --no-check-certificate /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgameservers/master/functions/${functionfile} 2>&1 | grep -F HTTP | cut -c45-
+ wget -N --no-check-certificate /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgsm/master/functions/${functionfile} 2>&1 | grep -F HTTP | cut -c45-
chmod +x "${functionfile}"
cd "${rootdir}"
sleep 1
diff --git a/CounterStrike/csserver b/CounterStrike/csserver
index 0ec105f55..5cbafd583 100644
--- a/CounterStrike/csserver
+++ b/CounterStrike/csserver
@@ -77,7 +77,7 @@ if [ ! -f "${rootdir}/functions/${functionfile}" ]; then
fi
cd functions
echo -e "loading ${functionfile}...\c"
- wget -N --no-check-certificate /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgameservers/master/functions/${functionfile} 2>&1 | grep -F HTTP | cut -c45-
+ wget -N --no-check-certificate /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgsm/master/functions/${functionfile} 2>&1 | grep -F HTTP | cut -c45-
chmod +x "${functionfile}"
cd "${rootdir}"
sleep 1
diff --git a/CounterStrikeConditionZero/csczserver b/CounterStrikeConditionZero/csczserver
index 64f8b38c9..b9d5a1d47 100644
--- a/CounterStrikeConditionZero/csczserver
+++ b/CounterStrikeConditionZero/csczserver
@@ -77,7 +77,7 @@ if [ ! -f "${rootdir}/functions/${functionfile}" ]; then
fi
cd functions
echo -e "loading ${functionfile}...\c"
- wget -N --no-check-certificate /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgameservers/master/functions/${functionfile} 2>&1 | grep -F HTTP | cut -c45-
+ wget -N --no-check-certificate /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgsm/master/functions/${functionfile} 2>&1 | grep -F HTTP | cut -c45-
chmod +x "${functionfile}"
cd "${rootdir}"
sleep 1
diff --git a/CounterStrikeGlobalOffensive/csgoserver b/CounterStrikeGlobalOffensive/csgoserver
index 7a48dcff5..963687477 100755
--- a/CounterStrikeGlobalOffensive/csgoserver
+++ b/CounterStrikeGlobalOffensive/csgoserver
@@ -95,7 +95,7 @@ if [ ! -f "${rootdir}/functions/${functionfile}" ]; then
fi
cd functions
echo -e "loading ${functionfile}...\c"
- wget -N --no-check-certificate /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgameservers/master/functions/${functionfile} 2>&1 | grep -F HTTP | cut -c45-
+ wget -N --no-check-certificate /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgsm/master/functions/${functionfile} 2>&1 | grep -F HTTP | cut -c45-
chmod +x "${functionfile}"
cd "${rootdir}"
sleep 1
diff --git a/CounterStrikeSource/cssserver b/CounterStrikeSource/cssserver
index d7c388de3..1d1abb808 100644
--- a/CounterStrikeSource/cssserver
+++ b/CounterStrikeSource/cssserver
@@ -78,7 +78,7 @@ if [ ! -f "${rootdir}/functions/${functionfile}" ]; then
fi
cd functions
echo -e "loading ${functionfile}...\c"
- wget -N --no-check-certificate /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgameservers/master/functions/${functionfile} 2>&1 | grep -F HTTP | cut -c45-
+ wget -N --no-check-certificate /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgsm/master/functions/${functionfile} 2>&1 | grep -F HTTP | cut -c45-
chmod +x "${functionfile}"
cd "${rootdir}"
sleep 1
diff --git a/DayOfDefeat/dodserver b/DayOfDefeat/dodserver
index 9cdec9838..9d5a677f2 100644
--- a/DayOfDefeat/dodserver
+++ b/DayOfDefeat/dodserver
@@ -77,7 +77,7 @@ if [ ! -f "${rootdir}/functions/${functionfile}" ]; then
fi
cd functions
echo -e "loading ${functionfile}...\c"
- wget -N --no-check-certificate /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgameservers/master/functions/${functionfile} 2>&1 | grep -F HTTP | cut -c45-
+ wget -N --no-check-certificate /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgsm/master/functions/${functionfile} 2>&1 | grep -F HTTP | cut -c45-
chmod +x "${functionfile}"
cd "${rootdir}"
sleep 1
diff --git a/DayOfDefeatSource/dodsserver b/DayOfDefeatSource/dodsserver
index 430df7374..8110b8313 100644
--- a/DayOfDefeatSource/dodsserver
+++ b/DayOfDefeatSource/dodsserver
@@ -78,7 +78,7 @@ if [ ! -f "${rootdir}/functions/${functionfile}" ]; then
fi
cd functions
echo -e "loading ${functionfile}...\c"
- wget -N --no-check-certificate /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgameservers/master/functions/${functionfile} 2>&1 | grep -F HTTP | cut -c45-
+ wget -N --no-check-certificate /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgsm/master/functions/${functionfile} 2>&1 | grep -F HTTP | cut -c45-
chmod +x "${functionfile}"
cd "${rootdir}"
sleep 1
diff --git a/HalfLifeDeathmatchClassic/cfg/lgsm-default.cfg b/DeathmatchClassic/cfg/lgsm-default.cfg
similarity index 100%
rename from HalfLifeDeathmatchClassic/cfg/lgsm-default.cfg
rename to DeathmatchClassic/cfg/lgsm-default.cfg
diff --git a/DeathmatchClassic/dmcserver b/DeathmatchClassic/dmcserver
new file mode 100644
index 000000000..0b200049b
--- /dev/null
+++ b/DeathmatchClassic/dmcserver
@@ -0,0 +1,97 @@
+#!/bin/bash
+# Deathmatch Classic
+# Server Management Script
+# Author: Daniel Gibbs
+# Website: http://gameservermanagers.com
+# Version: 150315
+
+#### Variables ####
+
+# Notification Email
+# (on|off)
+emailnotification="off"
+email="email@example.com"
+
+# Steam login
+steamuser="anonymous"
+steampass=""
+
+# Start Variables
+defaultmap="dcdm5"
+maxplayers="16"
+port="27015"
+clientport="27005"
+ip="0.0.0.0"
+
+# https://developer.valvesoftware.com/wiki/Command_Line_Options#Command-line_parameters_2
+fn_parms(){
+parms="-game dmc -strictportbind -ip ${ip} -port ${port} +clientport ${clientport} +map ${defaultmap} -maxplayers ${maxplayers}"
+}
+
+#### Advanced Variables ####
+
+# Steam
+appid="90 +app_set_config 90 mod dmc"
+
+# Server Details
+servicename="dmc-server"
+gamename="Deathmatch Classic"
+engine="goldsource"
+
+# Directories
+rootdir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
+selfname="$(basename $0)"
+lockselfname=".${servicename}.lock"
+filesdir="${rootdir}/serverfiles"
+systemdir="${filesdir}/dmc"
+executabledir="${filesdir}"
+executable="./hlds_run"
+servercfgdir="${systemdir}"
+servercfg="${servicename}.cfg"
+servercfgfullpath="${servercfgdir}/${servercfg}"
+defaultcfg="${servercfgdir}/server.cfg"
+backupdir="${rootdir}/backups"
+
+# Logging
+logdays="7"
+gamelogdir="${systemdir}/logs"
+scriptlogdir="${rootdir}/log/script"
+consolelogdir="${rootdir}/log/console"
+
+scriptlog="${scriptlogdir}/${servicename}-script.log"
+consolelog="${consolelogdir}/${servicename}-console.log"
+emaillog="${scriptlogdir}/${servicename}-email.log"
+
+scriptlogdate="${scriptlogdir}/${servicename}-script-$(date '+%d-%m-%Y-%H-%M-%S').log"
+consolelogdate="${consolelogdir}/${servicename}-console-$(date '+%d-%m-%Y-%H-%M-%S').log"
+
+##### Script #####
+# Do not edit
+
+fn_runfunction(){
+# Functions are downloaded and run with this function
+if [ ! -f "${rootdir}/functions/${functionfile}" ]; then
+ cd "${rootdir}"
+ if [ ! -d "functions" ]; then
+ mkdir functions
+ fi
+ cd functions
+ echo -e "loading ${functionfile}...\c"
+ wget -N --no-check-certificate /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgsm/master/functions/${functionfile} 2>&1 | grep -F HTTP | cut -c45-
+ chmod +x "${functionfile}"
+ cd "${rootdir}"
+ sleep 1
+fi
+source "${rootdir}/functions/${functionfile}"
+}
+
+fn_functions(){
+# Functions are defined in fn_functions.
+functionfile="${FUNCNAME}"
+fn_runfunction
+}
+
+fn_functions
+
+getopt=$1
+fn_getopt
diff --git a/DoubleActionBoogaloo/cfg/lgsm-default.cfg b/DoubleActionBoogaloo/cfg/lgsm-default.cfg
new file mode 100644
index 000000000..957530abd
--- /dev/null
+++ b/DoubleActionBoogaloo/cfg/lgsm-default.cfg
@@ -0,0 +1,15 @@
+// Server Name
+hostname "hostname"
+
+// RCON Password
+rcon_password "rconpassword"
+
+// Server Password
+sv_password ""
+
+// Server Logging
+log on
+sv_logbans 1
+sv_logecho 1
+sv_logfile 1
+sv_log_onefile 0
\ No newline at end of file
diff --git a/DoubleActionBoogaloo/dabserver b/DoubleActionBoogaloo/dabserver
new file mode 100644
index 000000000..68e96ec6f
--- /dev/null
+++ b/DoubleActionBoogaloo/dabserver
@@ -0,0 +1,98 @@
+#!/bin/bash
+# Double Action: Boogaloo
+# Server Management Script
+# Author: Daniel Gibbs
+# Website: http://gameservermanagers.com
+# Version: 220315
+
+#### Variables ####
+
+# Notification Email
+# (on|off)
+emailnotification="off"
+email="email@example.com"
+
+# Steam login
+steamuser="anonymous"
+steampass=""
+
+# Start Variables
+defaultmap="da_rooftops"
+maxplayers="10"
+port="27015"
+sourcetvport="27020"
+clientport="27005"
+ip="0.0.0.0"
+
+# https://developer.valvesoftware.com/wiki/Command_Line_Options#Source_Dedicated_Server
+fn_parms(){
+parms="-strictportbind -ip ${ip} -port ${port} +clientport ${clientport} +tv_port ${sourcetvport} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers ${maxplayers}"
+}
+
+#### Advanced Variables ####
+
+# Steam
+appid="317800"
+
+# Server Details
+servicename="da-server"
+gamename="Double Action: Boogaloo"
+engine="source"
+
+# Directories
+rootdir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
+selfname="$(basename $0)"
+lockselfname=".${servicename}.lock"
+filesdir="${rootdir}/serverfiles"
+systemdir="${filesdir}/dab"
+executabledir="${filesdir}"
+executable="./dabds.sh"
+servercfgdir="${systemdir}/cfg"
+servercfg="${servicename}.cfg"
+servercfgfullpath="${servercfgdir}/${servercfg}"
+defaultcfg="${servercfgdir}/server.cfg"
+backupdir="${rootdir}/backups"
+
+# Logging
+logdays="7"
+gamelogdir="${systemdir}/logs"
+scriptlogdir="${rootdir}/log/script"
+consolelogdir="${rootdir}/log/console"
+
+scriptlog="${scriptlogdir}/${servicename}-script.log"
+consolelog="${consolelogdir}/${servicename}-console.log"
+emaillog="${scriptlogdir}/${servicename}-email.log"
+
+scriptlogdate="${scriptlogdir}/${servicename}-script-$(date '+%d-%m-%Y-%H-%M-%S').log"
+consolelogdate="${consolelogdir}/${servicename}-console-$(date '+%d-%m-%Y-%H-%M-%S').log"
+
+##### Script #####
+# Do not edit
+
+fn_runfunction(){
+# Functions are downloaded and run with this function
+if [ ! -f "${rootdir}/functions/${functionfile}" ]; then
+ cd "${rootdir}"
+ if [ ! -d "functions" ]; then
+ mkdir functions
+ fi
+ cd functions
+ echo -e "loading ${functionfile}...\c"
+ wget -N --no-check-certificate /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgameservers/master/functions/${functionfile} 2>&1 | grep -F HTTP | cut -c45-
+ chmod +x "${functionfile}"
+ cd "${rootdir}"
+ sleep 1
+fi
+source "${rootdir}/functions/${functionfile}"
+}
+
+fn_functions(){
+# Functions are defined in fn_functions.
+functionfile="${FUNCNAME}"
+fn_runfunction
+}
+
+fn_functions
+
+getopt=$1
+fn_getopt
diff --git a/DoubleActionBoogaloo/dependencies/libm.so.6 b/DoubleActionBoogaloo/dependencies/libm.so.6
new file mode 100644
index 000000000..39034023b
Binary files /dev/null and b/DoubleActionBoogaloo/dependencies/libm.so.6 differ
diff --git a/FistfulOfFrags/fofserver b/FistfulOfFrags/fofserver
index 790c5503f..fb5fb5d69 100644
--- a/FistfulOfFrags/fofserver
+++ b/FistfulOfFrags/fofserver
@@ -78,7 +78,7 @@ if [ ! -f "${rootdir}/functions/${functionfile}" ]; then
fi
cd functions
echo -e "loading ${functionfile}...\c"
- wget -N --no-check-certificate /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgameservers/master/functions/${functionfile} 2>&1 | grep -F HTTP | cut -c45-
+ wget -N --no-check-certificate /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgsm/master/functions/${functionfile} 2>&1 | grep -F HTTP | cut -c45-
chmod +x "${functionfile}"
cd "${rootdir}"
sleep 1
diff --git a/GarrysMod/cfg/lgsm-default.cfg b/GarrysMod/cfg/lgsm-default.cfg
index 1fbdaedb1..5785b0206 100644
--- a/GarrysMod/cfg/lgsm-default.cfg
+++ b/GarrysMod/cfg/lgsm-default.cfg
@@ -65,7 +65,7 @@ sv_allowdownload 0
sbox_noclip 0
sbox_godmode 0
sbox_weapons 0
-sbox_plpldamage 0
+sbox_playershurtplayers 0
sbox_maxprops 100
sbox_maxragdolls 50
sbox_maxnpcs 10
@@ -79,10 +79,8 @@ sbox_maxhoverballs 20
sbox_maxvehicles 1
sbox_maxbuttons 20
sbox_maxemitters 0
-sbox_maxspawners 0
-sbox_maxturrets 0
// Misc Config
exec banned_user.cfg
exec banned_ip.cfg
-heartbeat
\ No newline at end of file
+heartbeat
diff --git a/GarrysMod/gmodserver b/GarrysMod/gmodserver
index 7697782fc..ec257b56f 100644
--- a/GarrysMod/gmodserver
+++ b/GarrysMod/gmodserver
@@ -3,7 +3,7 @@
# Server Management Script
# Author: Daniel Gibbs
# Website: http://danielgibbs.co.uk
-# Version: 210115
+# Version: 160315
#### Variables ####
@@ -23,6 +23,7 @@ workshopcollectionid=""
# Start Variables
defaultmap="gm_construct"
+gamemode="sandbox"
maxplayers="16"
port="27015"
sourcetvport="27020"
@@ -31,7 +32,7 @@ ip="0.0.0.0"
# https://developer.valvesoftware.com/wiki/Command_Line_Options#Source_Dedicated_Server
fn_parms(){
-parms="-game garrysmod -strictportbind -ip ${ip} -port ${port} +host_workshop_collection ${workshopcollectionid} -authkey ${workshopauth} +clientport ${clientport} +tv_port ${sourcetvport} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers ${maxplayers}"
+parms="-game garrysmod -strictportbind -ip ${ip} -port ${port} +host_workshop_collection ${workshopcollectionid} -authkey ${workshopauth} +clientport ${clientport} +tv_port ${sourcetvport} +gamemode ${gamemode} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers ${maxplayers}"
}
#### Advanced Variables ####
@@ -83,7 +84,7 @@ if [ ! -f "${rootdir}/functions/${functionfile}" ]; then
fi
cd functions
echo -e "loading ${functionfile}...\c"
- wget -N --no-check-certificate /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgameservers/master/functions/${functionfile} 2>&1 | grep -F HTTP | cut -c45-
+ wget -N --no-check-certificate /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgsm/master/functions/${functionfile} 2>&1 | grep -F HTTP | cut -c45-
chmod +x "${functionfile}"
cd "${rootdir}"
sleep 1
diff --git a/HalfLife2Deathmatch/hl2dmserver b/HalfLife2Deathmatch/hl2dmserver
index ecb7c6b44..484c241ed 100644
--- a/HalfLife2Deathmatch/hl2dmserver
+++ b/HalfLife2Deathmatch/hl2dmserver
@@ -78,7 +78,7 @@ if [ ! -f "${rootdir}/functions/${functionfile}" ]; then
fi
cd functions
echo -e "loading ${functionfile}...\c"
- wget -N --no-check-certificate /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgameservers/master/functions/${functionfile} 2>&1 | grep -F HTTP | cut -c45-
+ wget -N --no-check-certificate /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgsm/master/functions/${functionfile} 2>&1 | grep -F HTTP | cut -c45-
chmod +x "${functionfile}"
cd "${rootdir}"
sleep 1
diff --git a/HalfLifeDeathmatch/cfg/lgsm-default.cfg b/HalfLifeDeathmatch/cfg/lgsm-default.cfg
new file mode 100644
index 000000000..c7f032be0
--- /dev/null
+++ b/HalfLifeDeathmatch/cfg/lgsm-default.cfg
@@ -0,0 +1,35 @@
+// Server Name
+hostname "hostname"
+
+// RCON Password
+rcon_password "rconpassword"
+
+// Server Password
+sv_password ""
+
+// Server Logging
+log on
+sv_logbans 1
+sv_logecho 1
+sv_logfile 1
+sv_log_onefile 0
+
+// disable autoaim
+sv_aim 0
+
+// disable clients' ability to pause the server
+pausable 0
+
+// maximum client movement speed
+sv_maxspeed 320
+
+// 20 minute timelimit
+mp_timelimit 20
+
+// cheats off
+sv_cheats 0
+
+// load ban files
+exec listip.cfg
+exec banned.cfg
+
diff --git a/HalfLifeDeathmatchClassic/hldmcserver b/HalfLifeDeathmatch/hldmserver
similarity index 88%
rename from HalfLifeDeathmatchClassic/hldmcserver
rename to HalfLifeDeathmatch/hldmserver
index cc7e7e264..0bfe0c452 100644
--- a/HalfLifeDeathmatchClassic/hldmcserver
+++ b/HalfLifeDeathmatch/hldmserver
@@ -1,9 +1,9 @@
#!/bin/bash
-# Half Life: Deathmatch Classic
+# Half Life: Deathmatch
# Server Management Script
# Author: Daniel Gibbs
-# Website: http://danielgibbs.co.uk
-# Version: 210115
+# Website: http://gameservermanagers.com
+# Version: 150315
#### Variables ####
@@ -34,8 +34,8 @@ parms="-game valve -strictportbind -ip ${ip} -port ${port} +clientport ${clientp
appid="90"
# Server Details
-servicename="hldmc-server"
-gamename="Half Life: Deathmatch Classic"
+servicename="hldm-server"
+gamename="Half Life: Deathmatch"
engine="goldsource"
# Directories
@@ -77,7 +77,7 @@ if [ ! -f "${rootdir}/functions/${functionfile}" ]; then
fi
cd functions
echo -e "loading ${functionfile}...\c"
- wget -N --no-check-certificate /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgameservers/master/functions/${functionfile} 2>&1 | grep -F HTTP | cut -c45-
+ wget -N --no-check-certificate /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgsm/master/functions/${functionfile} 2>&1 | grep -F HTTP | cut -c45-
chmod +x "${functionfile}"
cd "${rootdir}"
sleep 1
@@ -94,4 +94,4 @@ fn_runfunction
fn_functions
getopt=$1
-fn_getopt
+fn_getopt
\ No newline at end of file
diff --git a/Insurgency/insserver b/Insurgency/insserver
index 6d01da31e..67543f549 100644
--- a/Insurgency/insserver
+++ b/Insurgency/insserver
@@ -78,7 +78,7 @@ if [ ! -f "${rootdir}/functions/${functionfile}" ]; then
fi
cd functions
echo -e "loading ${functionfile}...\c"
- wget -N --no-check-certificate /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgameservers/master/functions/${functionfile} 2>&1 | grep -F HTTP | cut -c45-
+ wget -N --no-check-certificate /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgsm/master/functions/${functionfile} 2>&1 | grep -F HTTP | cut -c45-
chmod +x "${functionfile}"
cd "${rootdir}"
sleep 1
diff --git a/JustCause2/jc2server b/JustCause2/jc2server
index 59df04d32..9e7732761 100644
--- a/JustCause2/jc2server
+++ b/JustCause2/jc2server
@@ -73,7 +73,7 @@ if [ ! -f "${rootdir}/functions/${functionfile}" ]; then
fi
cd functions
echo -e "loading ${functionfile}...\c"
- wget -N --no-check-certificate /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgameservers/master/functions/${functionfile} 2>&1 | grep -F HTTP | cut -c45-
+ wget -N --no-check-certificate /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgsm/master/functions/${functionfile} 2>&1 | grep -F HTTP | cut -c45-
chmod +x "${functionfile}"
cd "${rootdir}"
sleep 1
diff --git a/KillingFloor/kfserver b/KillingFloor/kfserver
index 15d5cc1a2..d6412f29f 100644
--- a/KillingFloor/kfserver
+++ b/KillingFloor/kfserver
@@ -80,7 +80,7 @@ if [ ! -f "${rootdir}/functions/${functionfile}" ]; then
fi
cd functions
echo -e "loading ${functionfile}...\c"
- wget -N --no-check-certificate /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgameservers/master/functions/${functionfile} 2>&1 | grep -F HTTP | cut -c45-
+ wget -N --no-check-certificate /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgsm/master/functions/${functionfile} 2>&1 | grep -F HTTP | cut -c45-
chmod +x "${functionfile}"
cd "${rootdir}"
sleep 1
diff --git a/Left4Dead/l4dserver b/Left4Dead/l4dserver
index a22a9922a..1107802ce 100644
--- a/Left4Dead/l4dserver
+++ b/Left4Dead/l4dserver
@@ -78,7 +78,7 @@ if [ ! -f "${rootdir}/functions/${functionfile}" ]; then
fi
cd functions
echo -e "loading ${functionfile}...\c"
- wget -N --no-check-certificate /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgameservers/master/functions/${functionfile} 2>&1 | grep -F HTTP | cut -c45-
+ wget -N --no-check-certificate /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgsm/master/functions/${functionfile} 2>&1 | grep -F HTTP | cut -c45-
chmod +x "${functionfile}"
cd "${rootdir}"
sleep 1
diff --git a/Left4Dead2/l4d2server b/Left4Dead2/l4d2server
index d05edb059..6f701aa25 100644
--- a/Left4Dead2/l4d2server
+++ b/Left4Dead2/l4d2server
@@ -77,7 +77,7 @@ if [ ! -f "${rootdir}/functions/${functionfile}" ]; then
fi
cd functions
echo -e "loading ${functionfile}...\c"
- wget -N --no-check-certificate /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgameservers/master/functions/${functionfile} 2>&1 | grep -F HTTP | cut -c45-
+ wget -N --no-check-certificate /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgsm/master/functions/${functionfile} 2>&1 | grep -F HTTP | cut -c45-
chmod +x "${functionfile}"
cd "${rootdir}"
sleep 1
diff --git a/NaturalSelection2/ns2server b/NaturalSelection2/ns2server
index 585bc1fe3..ccc9cc57a 100644
--- a/NaturalSelection2/ns2server
+++ b/NaturalSelection2/ns2server
@@ -83,7 +83,7 @@ if [ ! -f "${rootdir}/functions/${functionfile}" ]; then
fi
cd functions
echo -e "loading ${functionfile}...\c"
- wget -N --no-check-certificate /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgameservers/master/functions/${functionfile} 2>&1 | grep -F HTTP | cut -c45-
+ wget -N --no-check-certificate /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgsm/master/functions/${functionfile} 2>&1 | grep -F HTTP | cut -c45-
chmod +x "${functionfile}"
cd "${rootdir}"
sleep 1
diff --git a/NoMoreRoomInHell/cfg/lgsm-default.cfg b/NoMoreRoomInHell/cfg/lgsm-default.cfg
index 957530abd..11269d8fd 100644
--- a/NoMoreRoomInHell/cfg/lgsm-default.cfg
+++ b/NoMoreRoomInHell/cfg/lgsm-default.cfg
@@ -1,15 +1,176 @@
-// Server Name
+//*********************************************************************************
+// *
+// No More Room in Hell - Community Developed Server.cfg *
+// Version 1.3 - March 7, 2015 *
+// Version 1.0: http://avidblur.com/nmrih/server.cfg *
+// Version 1.2: http://fastdl.zombiegaming.net/nmrih/cfg/server.cfg *
+// Version 1.3: http://gameservermanagers.com/nmrih/server.cfg *
+// *
+// ********************************************************************************
+
+// ............................ Basic Server Settings ............................. //
+
+// The name of your server as you want it to show up on NMRiH's Server Browser
hostname "hostname"
-// RCON Password
+// The contact email for your main server admin
+sv_contact "email@example.com"
+
+// Password for rcon (remote connection), can be left blank for no RCon, it's recommended that you make a secure password.
+// Need a secure password? Check out https://www.grc.com/passwords.htm for automatically generated ones
rcon_password "rconpassword"
-// Server Password
+// Makes your server private so only people with the password can play on it
sv_password ""
-// Server Logging
+// The region of the world this server will report as being located in
+// -1 = World
+// 0 = US East Coast
+// 1 = US West Coast
+// 2 = South America
+// 3 = Europe
+// 4 = Asia
+// 5 = Australia
+// 6 = Middle East
+// 7 = Africa
+sv_region -1
+
+// Is this server running on LAN or is it accessable to the world wide web?
+// 0 = Internet
+// 1 = Local Area Network
+sv_lan 0
+
+// Enable communication over voice via microphone
+sv_voiceenable 1
+
+// Players can hear all other players, no team restrictions 0=off 1=on
+sv_alltalk 1
+
+//Gameplay can be chosen between classic/normal, sv_difficulty casual is casual, sv_difficulty normal is normal
+sv_difficulty casual
+
+// Time spend on a single map (in minutes) before switching to a new one automatically
+mp_timelimit 45
+
+// Maximum number of rounds to spend on a map before moving to the next one
+//mp_maxrounds 0
+
+// Name of the .txt file containing a list of maps the server should cycle through
+// mapcycle.txt - All maps
+// mapcycle_objective.txt - Objective maps only
+// mapcycle_survival.txt - Survival maps only
+mapcyclefile "mapcycle.txt"
+
+// A comma seperated list of tags that will show up in the server browser & make it easier for users to find the server they're looking for
+// "Official" tags:
+// custom - If your server is running custom gameplay settings/configs
+// objective - If your server only cycles through objective maps
+// survival - If your server only cycles through survival maps
+// IE: sv_tags "example1, example2, example3"
+sv_tags "objective, survival, vanilla"
+
+// ............................ Download Settings .................................. //
+
+// Allow clients to upload sprays etc (NMRiH has sprays disabled by default, so 0 might be the best option)
+sv_allowupload 0
+
+// Allow clients to download files
+sv_allowdownload 1
+
+// Maximum file size allowed for downloading individual maps/textures etc (Calculated in MB)
+net_maxfilesize 64
+
+// Allow downloading of maps/textures/etc from a website for faster download speeds!
+// NOTE: If left blank (sv_downloadurl "") connecting clients will download custom maps etc directly from your Gameserver.
+//
+// Example: 1 - Game server has a map called "nmo_example.bsp" located in the map folder
+// 2 - Web server has the exact same "nmo_example.bsp" file located at "http://www.yourwebsite.com/nmrih/maps/nmo_example.bsp"
+// 3 - Therefore, sv_downloadurl should be set to "http://www.yourwebsite.com/nmrih/"
+//
+sv_downloadurl ""
+
+
+// ............................ Performance Settings .............................. //
+
+// Sets a limit to the frame rate that the server runs at (Set a framerate your server can consistently manage)
+fps_max 66
+
+// Min bandwidth rate allowed on server, 0 = Unlimited
+sv_minrate 0
+
+// Max bandwidth rate allowed on server, 0 = Unlimited
+sv_maxrate 60000
+
+//
+net_splitpacket_maxrate 60000
+
+sv_parallel_packentities 1
+
+sv_parallel_sendsnapshot 1
+
+// Use a high priority thread to send queued packets out instead of sending them each frame.
+net_queued_packet_thread 1
+
+// Max # of seconds we can wait for next packets to be sent based on rate setting (0 == no limit).
+net_maxcleartime 0.01
+
+// Minimum updates per second that the server will allow
+sv_minupdaterate 66
+
+// Maximum updates per second that the server will allow
+sv_maxupdaterate 66
+
+// Minimum commands per second that the server will allow
+sv_mincmdrate 66
+
+// Maximum commands per second that the server will allow
+sv_maxcmdrate 66
+
+sv_client_min_interp_ratio 0
+
+sv_client_max_interp_ratio 4
+
+sv_client_cmdrate_difference 0
+
+// This can be used to force the value of cl_predict for connected clients (only while they are connected).
+// -1 = let clients set cl_predict to anything
+// 0 = force cl_predict to 0
+// 1 = force cl_predict to 1
+sv_client_predict 1
+
+// .............................. Additional Settings .............................. //
+
+// Allow the use of the "wait" command by clients? (Best left disabled to prevent the abuse of scripts - 0)
+sv_allow_wait_command 0
+
+// Enable logging? (off/on)
log on
sv_logbans 1
sv_logecho 1
sv_logfile 1
-sv_log_onefile 0
\ No newline at end of file
+sv_log_onefile 0
+
+// ............................... Sourcemod Settings .............................. //
+
+
+// ********************************************************************************
+// *
+// Advanced Server Settings (Best left untouched!) *
+// *
+// ********************************************************************************
+
+exec banned_user.cfg
+exec banned_ip.cfg
+
+//These commands will run on map change, sometimes a crash may wipe a recent ban from your banlist, this minimises that issue
+writeid
+writeip
+
+//**********************************************************************************************************
+// Master Server Settings
+//**********************************************************************************************************
+sv_master_legacy_mode 0 // Disable legacy mode, since steam master servers won't support it anymore
+heartbeat // Send heartbeat that this server is ready. Should be the last line of the config
+//**********************************************************************************************************
+
+//-----End of Server.cfg-----
\ No newline at end of file
diff --git a/NoMoreRoomInHell/nmrihserver b/NoMoreRoomInHell/nmrihserver
index 6502da312..644459753 100644
--- a/NoMoreRoomInHell/nmrihserver
+++ b/NoMoreRoomInHell/nmrihserver
@@ -78,7 +78,7 @@ if [ ! -f "${rootdir}/functions/${functionfile}" ]; then
fi
cd functions
echo -e "loading ${functionfile}...\c"
- wget -N --no-check-certificate /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgameservers/master/functions/${functionfile} 2>&1 | grep -F HTTP | cut -c45-
+ wget -N --no-check-certificate /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgsm/master/functions/${functionfile} 2>&1 | grep -F HTTP | cut -c45-
chmod +x "${functionfile}"
cd "${rootdir}"
sleep 1
diff --git a/OpposingForce/cfg/lgsm-default.cfg b/OpposingForce/cfg/lgsm-default.cfg
new file mode 100644
index 000000000..c7f032be0
--- /dev/null
+++ b/OpposingForce/cfg/lgsm-default.cfg
@@ -0,0 +1,35 @@
+// Server Name
+hostname "hostname"
+
+// RCON Password
+rcon_password "rconpassword"
+
+// Server Password
+sv_password ""
+
+// Server Logging
+log on
+sv_logbans 1
+sv_logecho 1
+sv_logfile 1
+sv_log_onefile 0
+
+// disable autoaim
+sv_aim 0
+
+// disable clients' ability to pause the server
+pausable 0
+
+// maximum client movement speed
+sv_maxspeed 320
+
+// 20 minute timelimit
+mp_timelimit 20
+
+// cheats off
+sv_cheats 0
+
+// load ban files
+exec listip.cfg
+exec banned.cfg
+
diff --git a/OpposingForce/opforserver b/OpposingForce/opforserver
new file mode 100644
index 000000000..f7e9dc304
--- /dev/null
+++ b/OpposingForce/opforserver
@@ -0,0 +1,97 @@
+#!/bin/bash
+# Half-Life: Opposing Force
+# Server Management Script
+# Author: Daniel Gibbs
+# Website: http://danielgibbs.co.uk
+# Version: 210115
+
+#### Variables ####
+
+# Notification Email
+# (on|off)
+emailnotification="off"
+email="email@example.com"
+
+# Steam login
+steamuser="anonymous"
+steampass=""
+
+# Start Variables
+defaultmap="op4_bootcamp"
+maxplayers="16"
+port="27015"
+clientport="27005"
+ip="0.0.0.0"
+
+# https://developer.valvesoftware.com/wiki/Command_Line_Options#Command-line_parameters_2
+fn_parms(){
+parms="-game gearbox -strictportbind -ip ${ip} -port ${port} +clientport ${clientport} +map ${defaultmap} -maxplayers ${maxplayers}"
+}
+
+#### Advanced Variables ####
+
+# Steam
+appid="90 +app_set_config 90 mod gearbox"
+
+# Server Details
+servicename="opfor-server"
+gamename="Half-Life: Opposing Force"
+engine="goldsource"
+
+# Directories
+rootdir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
+selfname="$(basename $0)"
+lockselfname=".${servicename}.lock"
+filesdir="${rootdir}/serverfiles"
+systemdir="${filesdir}/gearbox"
+executabledir="${filesdir}"
+executable="./hlds_run"
+servercfgdir="${systemdir}"
+servercfg="${servicename}.cfg"
+servercfgfullpath="${servercfgdir}/${servercfg}"
+defaultcfg="${servercfgdir}/server.cfg"
+backupdir="${rootdir}/backups"
+
+# Logging
+logdays="7"
+gamelogdir="${systemdir}/logs"
+scriptlogdir="${rootdir}/log/script"
+consolelogdir="${rootdir}/log/console"
+
+scriptlog="${scriptlogdir}/${servicename}-script.log"
+consolelog="${consolelogdir}/${servicename}-console.log"
+emaillog="${scriptlogdir}/${servicename}-email.log"
+
+scriptlogdate="${scriptlogdir}/${servicename}-script-$(date '+%d-%m-%Y-%H-%M-%S').log"
+consolelogdate="${consolelogdir}/${servicename}-console-$(date '+%d-%m-%Y-%H-%M-%S').log"
+
+##### Script #####
+# Do not edit
+
+fn_runfunction(){
+# Functions are downloaded and run with this function
+if [ ! -f "${rootdir}/functions/${functionfile}" ]; then
+ cd "${rootdir}"
+ if [ ! -d "functions" ]; then
+ mkdir functions
+ fi
+ cd functions
+ echo -e "loading ${functionfile}...\c"
+ wget -N --no-check-certificate /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgsm/master/functions/${functionfile} 2>&1 | grep -F HTTP | cut -c45-
+ chmod +x "${functionfile}"
+ cd "${rootdir}"
+ sleep 1
+fi
+source "${rootdir}/functions/${functionfile}"
+}
+
+fn_functions(){
+# Functions are defined in fn_functions.
+functionfile="${FUNCNAME}"
+fn_runfunction
+}
+
+fn_functions
+
+getopt=$1
+fn_getopt
diff --git a/README.md b/README.md
index 709d5ec00..9d63d6bc7 100644
--- a/README.md
+++ b/README.md
@@ -1,38 +1,46 @@
-
Linux Game Server Manager - Issues
-
-
+Linux Game Server Managers_ Install
+
The Linux Game Server Managers are command line tools for quick, simple deployment and management of various dedicated game servers and voice comms servers.
-
Main features
-
- - Server installer (SteamCMD).
- - Start/Stop/Restart server.
- - Server update (SteamCMD).
- - Server monitor (including email notification).
- - Server backup.
- - Server console.
+ - Backup
+ - Console
+ - Details
+ - Installer (SteamCMD)
+ - Monitor (including email notification)
+ - Update (SteamCMD)
+ - Start/Stop/Restart server
Compatibility
-The Linux Game Server Manager is tested to work on the following Linux systems.
+The Linux Game Server Managers are tested to work on the following Linux distros.
- - Debian based distros (Ubuntu, Mint etc.).
- - Redhat based distros (CentOS, Fedora etc.).
+ - Debian based (Ubuntu, Mint etc.).
+ - Redhat based (CentOS, Fedora etc.).
+
+Other distros are likely to work but are not fully tested.
+Specific Requirements
+
-The scripts are written in BASH and Python and would probably work with other distros.
-
-"I've found a bug", "Something isn't working for me"
-Before submitting an issue about a script error, try deleting the "functions" folder located where the script is. (ie. /home/tf2/tf2server would be /home/tf2/functions)
-This will grab the latest scripts from the repository meaning that if we've already fixed the bug you would be asking about, you'd get the patch that way.
-
FAQ
-Q: How do I install a script on my Linux server?
-- Full documentation and instructions can be found here.
-http://danielgibbs.co.uk/lgsm
-
-Q: There's a feature that I'd like to see implemented, how can I get it put in?
-- Create an issue report and we'll tag it as an enhancement, if you are able to program in Bash feel free to send us a pull request, it's much likely to be included as well as faster that way.
+All FAQ can be found here.
-Q: Can you go on my server through SSH and install the server for me?
-- Unfortunately, no, the scripts are very easy to install and shouldn't require much help in the first place. If there's a error that you're experiencing, send us an issue report.
+http://wiki.gameservermanagers.com/wiki/FAQ
+Donate
+If you want to donate to the project you can via PayPal, Flattr or Gratipay. I have had a may kind people show there support by sending me a donation. Any donations you send help cover my server costs and buy me a drink. Cheers!
+
+Useful Links
+
diff --git a/RedOrchestra/roserver b/RedOrchestra/roserver
index f70b1d4b2..618d72823 100644
--- a/RedOrchestra/roserver
+++ b/RedOrchestra/roserver
@@ -76,7 +76,7 @@ if [ ! -f "${rootdir}/functions/${functionfile}" ]; then
fi
cd functions
echo -e "loading ${functionfile}...\c"
- wget -N --no-check-certificate /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgameservers/master/functions/${functionfile} 2>&1 | grep -F HTTP | cut -c45-
+ wget -N --no-check-certificate /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgsm/master/functions/${functionfile} 2>&1 | grep -F HTTP | cut -c45-
chmod +x "${functionfile}"
cd "${rootdir}"
sleep 1
diff --git a/Ricochet/cfg/lgsm-default.cfg b/Ricochet/cfg/lgsm-default.cfg
new file mode 100644
index 000000000..c7f032be0
--- /dev/null
+++ b/Ricochet/cfg/lgsm-default.cfg
@@ -0,0 +1,35 @@
+// Server Name
+hostname "hostname"
+
+// RCON Password
+rcon_password "rconpassword"
+
+// Server Password
+sv_password ""
+
+// Server Logging
+log on
+sv_logbans 1
+sv_logecho 1
+sv_logfile 1
+sv_log_onefile 0
+
+// disable autoaim
+sv_aim 0
+
+// disable clients' ability to pause the server
+pausable 0
+
+// maximum client movement speed
+sv_maxspeed 320
+
+// 20 minute timelimit
+mp_timelimit 20
+
+// cheats off
+sv_cheats 0
+
+// load ban files
+exec listip.cfg
+exec banned.cfg
+
diff --git a/Ricochet/ricochetserver b/Ricochet/ricochetserver
new file mode 100644
index 000000000..fd8d99c06
--- /dev/null
+++ b/Ricochet/ricochetserver
@@ -0,0 +1,97 @@
+#!/bin/bash
+# Ricochet
+# Server Management Script
+# Author: Daniel Gibbs
+# Website: http://danielgibbs.co.uk
+# Version: 210115
+
+#### Variables ####
+
+# Notification Email
+# (on|off)
+emailnotification="off"
+email="email@example.com"
+
+# Steam login
+steamuser="anonymous"
+steampass=""
+
+# Start Variables
+defaultmap="rc_arena"
+maxplayers="16"
+port="27015"
+clientport="27005"
+ip="0.0.0.0"
+
+# https://developer.valvesoftware.com/wiki/Command_Line_Options#Command-line_parameters_2
+fn_parms(){
+parms="-game ricochet -strictportbind -ip ${ip} -port ${port} +clientport ${clientport} +map ${defaultmap} -maxplayers ${maxplayers}"
+}
+
+#### Advanced Variables ####
+
+# Steam
+appid="90 +app_set_config 90 mod ricochet"
+
+# Server Details
+servicename="ricochet-server"
+gamename="Ricochet"
+engine="goldsource"
+
+# Directories
+rootdir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
+selfname="$(basename $0)"
+lockselfname=".${servicename}.lock"
+filesdir="${rootdir}/serverfiles"
+systemdir="${filesdir}/ricochet"
+executabledir="${filesdir}"
+executable="./hlds_run"
+servercfgdir="${systemdir}"
+servercfg="${servicename}.cfg"
+servercfgfullpath="${servercfgdir}/${servercfg}"
+defaultcfg="${servercfgdir}/server.cfg"
+backupdir="${rootdir}/backups"
+
+# Logging
+logdays="7"
+gamelogdir="${systemdir}/logs"
+scriptlogdir="${rootdir}/log/script"
+consolelogdir="${rootdir}/log/console"
+
+scriptlog="${scriptlogdir}/${servicename}-script.log"
+consolelog="${consolelogdir}/${servicename}-console.log"
+emaillog="${scriptlogdir}/${servicename}-email.log"
+
+scriptlogdate="${scriptlogdir}/${servicename}-script-$(date '+%d-%m-%Y-%H-%M-%S').log"
+consolelogdate="${consolelogdir}/${servicename}-console-$(date '+%d-%m-%Y-%H-%M-%S').log"
+
+##### Script #####
+# Do not edit
+
+fn_runfunction(){
+# Functions are downloaded and run with this function
+if [ ! -f "${rootdir}/functions/${functionfile}" ]; then
+ cd "${rootdir}"
+ if [ ! -d "functions" ]; then
+ mkdir functions
+ fi
+ cd functions
+ echo -e "loading ${functionfile}...\c"
+ wget -N --no-check-certificate /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgsm/master/functions/${functionfile} 2>&1 | grep -F HTTP | cut -c45-
+ chmod +x "${functionfile}"
+ cd "${rootdir}"
+ sleep 1
+fi
+source "${rootdir}/functions/${functionfile}"
+}
+
+fn_functions(){
+# Functions are defined in fn_functions.
+functionfile="${FUNCNAME}"
+fn_runfunction
+}
+
+fn_functions
+
+getopt=$1
+fn_getopt
diff --git a/SeriousSam3BFE/ss3sserver b/SeriousSam3BFE/ss3sserver
index d436c0a17..7e5379cc4 100644
--- a/SeriousSam3BFE/ss3sserver
+++ b/SeriousSam3BFE/ss3sserver
@@ -19,7 +19,7 @@ steampass="password"
# Start Variables
ip="0.0.0.0"
-# https://raw.githubusercontent.com/dgibbs64/linuxgameservers/master/SeriousSam3BFE/help/DedicatedServer_Readme.txt
+# https://raw.githubusercontent.com/dgibbs64/linuxgsm/master/SeriousSam3BFE/help/DedicatedServer_Readme.txt
fn_parms(){
parms="+ip ${ip} +logfile ${gamelog} +exec ${servercfgfullpath}"
}
@@ -74,7 +74,7 @@ if [ ! -f "${rootdir}/functions/${functionfile}" ]; then
fi
cd functions
echo -e "loading ${functionfile}...\c"
- wget -N --no-check-certificate /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgameservers/master/functions/${functionfile} 2>&1 | grep -F HTTP | cut -c45-
+ wget -N --no-check-certificate /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgsm/master/functions/${functionfile} 2>&1 | grep -F HTTP | cut -c45-
chmod +x "${functionfile}"
cd "${rootdir}"
sleep 1
diff --git a/StarBound/sbserver b/StarBound/sbserver
index 3f1b9e9f9..db29f0158 100644
--- a/StarBound/sbserver
+++ b/StarBound/sbserver
@@ -73,7 +73,7 @@ if [ ! -f "${rootdir}/functions/${functionfile}" ]; then
fi
cd functions
echo -e "loading ${functionfile}...\c"
- wget -N --no-check-certificate /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgameservers/master/functions/${functionfile} 2>&1 | grep -F HTTP | cut -c45-
+ wget -N --no-check-certificate /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgsm/master/functions/${functionfile} 2>&1 | grep -F HTTP | cut -c45-
chmod +x "${functionfile}"
cd "${rootdir}"
sleep 1
diff --git a/TeamFortress2/tf2server b/TeamFortress2/tf2server
index c269fa8d7..17b46f0f6 100644
--- a/TeamFortress2/tf2server
+++ b/TeamFortress2/tf2server
@@ -78,7 +78,7 @@ if [ ! -f "${rootdir}/functions/${functionfile}" ]; then
fi
cd functions
echo -e "loading ${functionfile}...\c"
- wget -N --no-check-certificate /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgameservers/master/functions/${functionfile} 2>&1 | grep -F HTTP | cut -c45-
+ wget -N --no-check-certificate /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgsm/master/functions/${functionfile} 2>&1 | grep -F HTTP | cut -c45-
chmod +x "${functionfile}"
cd "${rootdir}"
sleep 1
diff --git a/TeamFortressClassic/tfcserver b/TeamFortressClassic/tfcserver
index 7336c6916..78eda9482 100644
--- a/TeamFortressClassic/tfcserver
+++ b/TeamFortressClassic/tfcserver
@@ -77,7 +77,7 @@ if [ ! -f "${rootdir}/functions/${functionfile}" ]; then
fi
cd functions
echo -e "loading ${functionfile}...\c"
- wget -N --no-check-certificate /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgameservers/master/functions/${functionfile} 2>&1 | grep -F HTTP | cut -c45-
+ wget -N --no-check-certificate /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgsm/master/functions/${functionfile} 2>&1 | grep -F HTTP | cut -c45-
chmod +x "${functionfile}"
cd "${rootdir}"
sleep 1
diff --git a/TeamSpeak3/ts3server b/TeamSpeak3/ts3server
index 5146c5973..740815411 100644
--- a/TeamSpeak3/ts3server
+++ b/TeamSpeak3/ts3server
@@ -52,7 +52,7 @@ if [ ! -f "${rootdir}/functions/${functionfile}" ]; then
fi
cd functions
echo -e "loading ${functionfile}...\c"
- wget -N --no-check-certificate /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgameservers/master/functions/${functionfile} 2>&1 | grep -F HTTP | cut -c45-
+ wget -N --no-check-certificate /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgsm/master/functions/${functionfile} 2>&1 | grep -F HTTP | cut -c45-
chmod +x "${functionfile}"
cd "${rootdir}"
sleep 1
diff --git a/UnrealTournament2004/ut2k4server b/UnrealTournament2004/ut2k4server
index a2b75e97f..15e5a52b4 100644
--- a/UnrealTournament2004/ut2k4server
+++ b/UnrealTournament2004/ut2k4server
@@ -3,7 +3,7 @@
# Server Management Script
# Author: Daniel Gibbs
# Website: http://danielgibbs.co.uk
-# Version: 210115
+# Version: 070215
#### Variables ####
@@ -27,7 +27,7 @@ engine="unreal2"
# Directories
rootdir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
-selfname="$(basename 0)"
+selfname="$(basename $0)"
lockselfname=".${servicename}.lock"
filesdir="${rootdir}/serverfiles"
systemdir="${filesdir}/System"
@@ -67,7 +67,7 @@ if [ ! -f "${rootdir}/functions/${functionfile}" ]; then
fi
cd functions
echo -e "loading ${functionfile}...\c"
- wget -N --no-check-certificate /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgameservers/master/functions/${functionfile} 2>&1 | grep -F HTTP | cut -c45-
+ wget -N --no-check-certificate /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgsm/master/functions/${functionfile} 2>&1 | grep -F HTTP | cut -c45-
chmod +x "${functionfile}"
cd "${rootdir}"
sleep 1
diff --git a/UnrealTournament99/ut99server b/UnrealTournament99/ut99server
index ce74bd2be..c730e3486 100644
--- a/UnrealTournament99/ut99server
+++ b/UnrealTournament99/ut99server
@@ -3,7 +3,7 @@
# Server Management Script
# Author: Daniel Gibbs
# Website: http://danielgibbs.co.uk
-# Version: 210115
+# Version: 070215
#### Variables ####
@@ -29,7 +29,7 @@ engine="unreal"
# Directories
rootdir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
-selfname="$(basename 0)"
+selfname="$(basename $0)"
lockselfname=".${servicename}.lock"
filesdir="${rootdir}/serverfiles"
systemdir="${filesdir}/System"
@@ -66,7 +66,7 @@ if [ ! -f "${rootdir}/functions/${functionfile}" ]; then
fi
cd functions
echo -e "loading ${functionfile}...\c"
- wget -N --no-check-certificate /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgameservers/master/functions/${functionfile} 2>&1 | grep -F HTTP | cut -c45-
+ wget -N --no-check-certificate /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgsm/master/functions/${functionfile} 2>&1 | grep -F HTTP | cut -c45-
chmod +x "${functionfile}"
cd "${rootdir}"
sleep 1
diff --git a/functions/fn_check_tmux b/functions/fn_check_tmux
index e0e4c8716..ae205c9f9 100644
--- a/functions/fn_check_tmux
+++ b/functions/fn_check_tmux
@@ -2,7 +2,7 @@
# LGSM fn_check_tmux function
# Author: Daniel Gibbs
# Website: http://danielgibbs.co.uk
-# Version: 140215
+# Version: 110315
# Checks if tmux is installed as too many users do not RTFM or know how to use Google.
@@ -12,6 +12,7 @@ if [ -z "$(command -v tmux)" ]; then
fn_scriptlog "Tmux is not installed"
echo " * Tmux is required to run this server."
# Suitable passive agressive message
- echo " * Please see 'Prerequisites' section of installation instructions."
+ echo " * Please see the the following link."
+ echo " * http://gameservermanagers.com/dependencies"
exit
fi
\ No newline at end of file
diff --git a/functions/fn_getopt b/functions/fn_getopt
index eb8e6beec..cb1327cef 100644
--- a/functions/fn_getopt
+++ b/functions/fn_getopt
@@ -2,7 +2,7 @@
# LGSM fn_getopt function
# Author: Daniel Gibbs
# Website: http://danielgibbs.co.uk
-# Version: 080214
+# Version: 150314
# Description: getopt arguments.
@@ -56,6 +56,8 @@ case "$getopt" in
fn_stop;;
restart)
fn_restart;;
+ update)
+ fn_update_check;;
backup)
fn_backup;;
monitor)
diff --git a/functions/fn_install b/functions/fn_install
index ed526fe70..ab52c90b4 100644
--- a/functions/fn_install
+++ b/functions/fn_install
@@ -2,7 +2,7 @@
# LGSM fn_install function
# Author: Daniel Gibbs
# Website: http://danielgibbs.co.uk
-# Version: 080215
+# Version: 060315
fn_check_root
fn_install_header
@@ -40,6 +40,6 @@ elif [ "${gamename}" == "Red Orchestra: Ostfront 41-45" ]; then
elif [ "${gamename}" == "Unreal Tournament 2004" ]; then
fn_install_ut2k4fix
elif [ "${gamename}" == "Unreal Tournament 99" ]; then
- fn_install_99fix
+ fn_install_ut99fix
fi
fn_install_complete
\ No newline at end of file
diff --git a/functions/fn_install_config b/functions/fn_install_config
index f768fda75..5aefecdf0 100644
--- a/functions/fn_install_config
+++ b/functions/fn_install_config
@@ -1,11 +1,13 @@
#!/bin/bash
# LGSM fn_server function
# Author: Daniel Gibbs
-# Website: http://danielgibbs.co.uk
-# Version: 210115
+# Website: http://gameservermanagers.com
+# Version: 220315
fn_arma3config(){
-cp -v lgsm-default.cfg "${servercfgfullpath}"
+mkdir -pv "${servercfgdir}"
+mv -v lgsm-default.server.cfg "${servercfgfullpath}"
+mv -v lgsm-default.network.cfg "${networkcfgfullpath}"
sleep 1
echo ""
}
@@ -131,72 +133,83 @@ echo ""
echo "Creating Configs"
echo "================================="
sleep 1
-cd "${servercfgdir}"
+if [ "${gamename}" == "ARMA 3" ]; then
+ cd "${systemdir}"
+else
+ cd "${servercfgdir}"
+fi
+ #statements
if [ "${gamename}" == "7 Days To Die" ]; then
fn_unity3dconfig
elif [ "${gamename}" == "ARMA 3" ]; then
- echo -e "downloading lgsm-default.cfg...\c"
- wget -N --no-check-certificate /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgameservers/master/Arma3/cfg/lgsm-default.cfg 2>&1 | grep -F HTTP | cut -c45- | uniq
+ echo -e "downloading lgsm-default.server.cfg & lgsm-default.network.cfg...\c"
+ wget -N --no-check-certificate /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgsm/master/Arma3/cfg/lgsm-default.server.cfg 2>&1 | grep -F HTTP | cut -c45- | uniq
+ wget -N --no-check-certificate /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgsm/master/Arma3/cfg/lgsm-default.network.cfg 2>&1 | grep -F HTTP | cut -c45- | uniq
sleep 1
fn_arma3config
elif [ "${gamename}" == "Blade Symphony" ]; then
echo -e "downloading lgsm-default.cfg...\c"
- wget -N --no-check-certificate /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgameservers/master/BladeSymphony/cfg/lgsm-default.cfg 2>&1 | grep -F HTTP | cut -c45- | uniq
+ wget -N --no-check-certificate /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgsm/master/BladeSymphony/cfg/lgsm-default.cfg 2>&1 | grep -F HTTP | cut -c45- | uniq
sleep 1
fn_goldsourceconfig
elif [ "${gamename}" == "Counter Strike 1.6" ]; then
echo -e "downloading lgsm-default.cfg...\c"
- wget -N --no-check-certificate /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgameservers/master/CounterStrike/cfg/lgsm-default.cfg 2>&1 | grep -F HTTP | cut -c45- | uniq
+ wget -N --no-check-certificate /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgsm/master/CounterStrike/cfg/lgsm-default.cfg 2>&1 | grep -F HTTP | cut -c45- | uniq
sleep 1
fn_goldsourceconfig
elif [ "${gamename}" == "Counter Strike: Condition Zero" ]; then
echo -e "downloading lgsm-default.cfg...\c"
- wget -N --no-check-certificate /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgameservers/master/CounterStrikeConditionZero/cfg/lgsm-default.cfg 2>&1 | grep -F HTTP | cut -c45- | uniq
+ wget -N --no-check-certificate /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgsm/master/CounterStrikeConditionZero/cfg/lgsm-default.cfg 2>&1 | grep -F HTTP | cut -c45- | uniq
sleep 1
fn_goldsourceconfig
elif [ "${gamename}" == "Counter Strike: Global Offensive" ]; then
echo -e "downloading lgsm-default.cfg...\c"
- wget -N --no-check-certificate /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgameservers/master/CounterStrikeGlobalOffensive/cfg/lgsm-default.cfg 2>&1 | grep -F HTTP | cut -c45- | uniq
+ wget -N --no-check-certificate /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgsm/master/CounterStrikeGlobalOffensive/cfg/lgsm-default.cfg 2>&1 | grep -F HTTP | cut -c45- | uniq
sleep 1
fn_sourceconfig
elif [ "${gamename}" == "Counter Strike: Source" ]; then
echo -e "downloading lgsm-default.cfg...\c"
- wget -N --no-check-certificate /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgameservers/master/CounterStrikeSource/cfg/lgsm-default.cfg 2>&1 | grep -F HTTP | cut -c45- | uniq
+ wget -N --no-check-certificate /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgsm/master/CounterStrikeSource/cfg/lgsm-default.cfg 2>&1 | grep -F HTTP | cut -c45- | uniq
sleep 1
fn_sourceconfig
elif [ "${gamename}" == "Day of Defeat" ]; then
echo -e "downloading lgsm-default.cfg...\c"
- wget -N --no-check-certificate /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgameservers/master/DayOfDefeat/cfg/lgsm-default.cfg 2>&1 | grep -F HTTP | cut -c45- | uniq
+ wget -N --no-check-certificate /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgsm/master/DayOfDefeat/cfg/lgsm-default.cfg 2>&1 | grep -F HTTP | cut -c45- | uniq
sleep 1
fn_goldsourceconfig
elif [ "${gamename}" == "Day of Defeat: Source" ]; then
echo -e "downloading lgsm-default.cfg...\c"
- wget -N --no-check-certificate /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgameservers/master/DayOfDefeatSource/cfg/lgsm-default.cfg 2>&1 | grep -F HTTP | cut -c45- | uniq
+ wget -N --no-check-certificate /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgsm/master/DayOfDefeatSource/cfg/lgsm-default.cfg 2>&1 | grep -F HTTP | cut -c45- | uniq
+ sleep 1
+ fn_sourceconfig
+elif [ "${gamename}" == "Double Action: Boogaloo" ]; then
+ echo -e "downloading lgsm-default.cfg...\c"
+ wget -N --no-check-certificate /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgsm/master/DoubleActionBoogaloo/cfg/lgsm-default.cfg 2>&1 | grep -F HTTP | cut -c45- | uniq
sleep 1
fn_sourceconfig
elif [ "${gamename}" == "Fistful of Frags" ]; then
echo -e "downloading lgsm-default.cfg...\c"
- wget -N --no-check-certificate /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgameservers/master/FistfulOfFrags/cfg/lgsm-default.cfg 2>&1 | grep -F HTTP | cut -c45- | uniq
+ wget -N --no-check-certificate /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgsm/master/FistfulOfFrags/cfg/lgsm-default.cfg 2>&1 | grep -F HTTP | cut -c45- | uniq
sleep 1
fn_sourceconfig
elif [ "${gamename}" == "Garry's Mod" ]; then
echo -e "downloading lgsm-default.cfg...\c"
- wget -N --no-check-certificate /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgameservers/master/GarrysMod/cfg/lgsm-default.cfg 2>&1 | grep -F HTTP | cut -c45- | uniq
+ wget -N --no-check-certificate /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgsm/master/GarrysMod/cfg/lgsm-default.cfg 2>&1 | grep -F HTTP | cut -c45- | uniq
sleep 1
fn_sourceconfig
elif [ "${gamename}" == "Half Life 2: Deathmatch" ]; then
echo -e "downloading lgsm-default.cfg...\c"
- wget -N --no-check-certificate /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgameservers/master/HalfLife2Deathmatch/cfg/lgsm-default.cfg 2>&1 | grep -F HTTP | cut -c45- | uniq
+ wget -N --no-check-certificate /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgsm/master/HalfLife2Deathmatch/cfg/lgsm-default.cfg 2>&1 | grep -F HTTP | cut -c45- | uniq
sleep 1
fn_sourceconfig
elif [ "${gamename}" == "Half Life: Deathmatch Classic" ]; then
echo -e "downloading lgsm-default.cfg...\c"
- wget -N --no-check-certificate /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgameservers/master/HalfLifeDeathmatchClassic/cfg/lgsm-default.cfg 2>&1 | grep -F HTTP | cut -c45- | uniq
+ wget -N --no-check-certificate /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgsm/master/HalfLifeDeathmatchClassic/cfg/lgsm-default.cfg 2>&1 | grep -F HTTP | cut -c45- | uniq
sleep 1
fn_goldsourceconfig
elif [ "${gamename}" == "Insurgency" ]; then
echo -e "downloading lgsm-default.cfg...\c"
- wget -N --no-check-certificate /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgameservers/master/Insurgency/cfg/lgsm-default.cfg 2>&1 | grep -F HTTP | cut -c45- | uniq
+ wget -N --no-check-certificate /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgsm/master/Insurgency/cfg/lgsm-default.cfg 2>&1 | grep -F HTTP | cut -c45- | uniq
sleep 1
fn_sourceconfig
elif [ "${gamename}" == "Just Cause 2" ]; then
@@ -205,17 +218,17 @@ elif [ "${gamename}" == "Killing Floor" ]; then
fn_unreal2config
elif [ "${gamename}" == "Left 4 Dead" ]; then
echo -e "downloading lgsm-default.cfg...\c"
- wget -N --no-check-certificate /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgameservers/master/Left4Dead/cfg/lgsm-default.cfg 2>&1 | grep -F HTTP | cut -c45- | uniq
+ wget -N --no-check-certificate /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgsm/master/Left4Dead/cfg/lgsm-default.cfg 2>&1 | grep -F HTTP | cut -c45- | uniq
sleep 1
fn_sourceconfig
elif [ "${gamename}" == "Left 4 Dead 2" ]; then
echo -e "downloading lgsm-default.cfg...\c"
- wget -N --no-check-certificate /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgameservers/master/Left4Dead2/cfg/lgsm-default.cfg 2>&1 | grep -F HTTP | cut -c45- | uniq
+ wget -N --no-check-certificate /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgsm/master/Left4Dead2/cfg/lgsm-default.cfg 2>&1 | grep -F HTTP | cut -c45- | uniq
sleep 1
fn_sourceconfig
elif [ "${gamename}" == "No More Room in Hell" ]; then
echo -e "downloading lgsm-default.cfg...\c"
- wget -N --no-check-certificate /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgameservers/master/NoMoreRoomInHell/cfg/lgsm-default.cfg 2>&1 | grep -F HTTP | cut -c45- | uniq
+ wget -N --no-check-certificate /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgsm/master/NoMoreRoomInHell/cfg/lgsm-default.cfg 2>&1 | grep -F HTTP | cut -c45- | uniq
sleep 1
fn_sourceconfig
elif [ "${gamename}" == "Natural Selection 2" ]; then
@@ -226,17 +239,17 @@ elif [ "${gamename}" == "Red Orchestra: Ostfront 41-45" ]; then
fn_unreal2config
elif [ "${gamename}" == "Serious Sam 3: BFE" ]; then
echo -e "downloading lgsm-default.ini...\c"
- wget -N --no-check-certificate /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgameservers/master/SeriousSam3BFE/cfg/lgsm-default.ini 2>&1 | grep -F HTTP | cut -c45- | uniq
+ wget -N --no-check-certificate /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgsm/master/SeriousSam3BFE/cfg/lgsm-default.ini 2>&1 | grep -F HTTP | cut -c45- | uniq
sleep 1
fn_serious3config
elif [ "${gamename}" == "Team Fortress 2" ]; then
echo -e "downloading lgsm-default.cfg...\c"
- wget -N --no-check-certificate /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgameservers/master/TeamFortress2/cfg/lgsm-default.cfg 2>&1 | grep -F HTTP | cut -c45- | uniq
+ wget -N --no-check-certificate /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgsm/master/TeamFortress2/cfg/lgsm-default.cfg 2>&1 | grep -F HTTP | cut -c45- | uniq
sleep 1
fn_sourceconfig
elif [ "${gamename}" == "Team Fortress Classic" ]; then
echo -e "downloading lgsm-default.cfg...\c"
- wget -N --no-check-certificate /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgameservers/master/TeamFortressClassic/cfg/lgsm-default.cfg 2>&1 | grep -F HTTP | cut -c45- | uniq
+ wget -N --no-check-certificate /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgsm/master/TeamFortressClassic/cfg/lgsm-default.cfg 2>&1 | grep -F HTTP | cut -c45- | uniq
sleep 1
fn_goldsourceconfig
elif [ "${gamename}" == "Unreal Tournament 2004" ]; then
diff --git a/functions/fn_install_glibcfix b/functions/fn_install_glibcfix
index de3263a19..4c1badd22 100644
--- a/functions/fn_install_glibcfix
+++ b/functions/fn_install_glibcfix
@@ -1,8 +1,8 @@
#!/bin/bash
# LGSM fn_install_glibcfix function
# Author: Daniel Gibbs
-# Website: http://danielgibbs.co.uk
-# Version: 210115
+# Website: http://gameservermanagers.com
+# Version: 220315
fn_glibcfixmsg(){
echo ""
@@ -52,42 +52,48 @@ elif [ "$(ldd --version | sed -n '1 p' | tr -cd [:digit:] | tail -c 3)" -lt 215
glibcversion="2.15"
fn_glibcfixmsg
cp -v "${rootdir}/steamcmd/linux32/libstdc++.so.6" "${filesdir}/libstdc++.so.6"
+ # Double Action: Boogaloo
+ elif [ "${gamename}" == "Double Action: Boogaloo" ]; then
+ glibcversion="2.15"
+ fn_glibcfixmsg
+ cd "${filesdir}"
+ wget -nv -N --no-check-certificate https://github.com/dgibbs64/linuxgsm/blob/master/DoubleActionBoogaloo/dependencies/libm.so.6
# Fistful of Frags
elif [ "${gamename}" == "Fistful of Frags" ]; then
glibcversion="2.15"
fn_glibcfixmsg
cd "${filesdir}"
- wget -nv -N --no-check-certificate https://github.com/dgibbs64/linuxgameservers/raw/master/FistfulOfFrags/dependencies/libm.so.6
+ wget -nv -N --no-check-certificate https://github.com/dgibbs64/linuxgsm/raw/master/FistfulOfFrags/dependencies/libm.so.6
# Garry's Mod
elif [ "${gamename}" == "Garry's Mod" ]; then
glibcversion="2.15"
fn_glibcfixmsg
cd "${filesdir}/bin"
- wget -nv -N --no-check-certificate https://github.com/dgibbs64/linuxgameservers/raw/master/GarrysMod/dependencies/libc.so.6
- wget -nv -N --no-check-certificate https://github.com/dgibbs64/linuxgameservers/raw/master/GarrysMod/dependencies/libm.so.6
- wget -nv -N --no-check-certificate https://github.com/dgibbs64/linuxgameservers/raw/master/GarrysMod/dependencies/libpthread.so.0
+ wget -nv -N --no-check-certificate https://github.com/dgibbs64/linuxgsm/raw/master/GarrysMod/dependencies/libc.so.6
+ wget -nv -N --no-check-certificate https://github.com/dgibbs64/linuxgsm/raw/master/GarrysMod/dependencies/libm.so.6
+ wget -nv -N --no-check-certificate https://github.com/dgibbs64/linuxgsm/raw/master/GarrysMod/dependencies/libpthread.so.0
cp -v "${rootdir}/steamcmd/linux32/libstdc++.so.6" "${filesdir}/libstdc++.so.6"
# Insurgency
elif [ "${gamename}" == "Insurgency" ]; then
glibcversion="2.15"
fn_glibcfixmsg
cd "${filesdir}/bin"
- wget -nv -N --no-check-certificate https://github.com/dgibbs64/linuxgameservers/raw/master/Insurgency/dependencies/libc.so.6
- wget -nv -N --no-check-certificate https://github.com/dgibbs64/linuxgameservers/raw/master/Insurgency/dependencies/librt.so.1
- wget -nv -N --no-check-certificate https://github.com/dgibbs64/linuxgameservers/raw/master/Insurgency/dependencies/libpthread.so.0
+ wget -nv -N --no-check-certificate https://github.com/dgibbs64/linuxgsm/raw/master/Insurgency/dependencies/libc.so.6
+ wget -nv -N --no-check-certificate https://github.com/dgibbs64/linuxgsm/raw/master/Insurgency/dependencies/librt.so.1
+ wget -nv -N --no-check-certificate https://github.com/dgibbs64/linuxgsm/raw/master/Insurgency/dependencies/libpthread.so.0
# Natural Selection 2
elif [ "${gamename}" == "Natural Selection 2" ]; then
glibcversion="2.15"
fn_glibcfixmsg
cd "${filesdir}"
- wget -nv -N --no-check-certificate https://github.com/dgibbs64/linuxgameservers/raw/master/NaturalSelection2/dependencies/libm.so.6
+ wget -nv -N --no-check-certificate https://github.com/dgibbs64/linuxgsm/raw/master/NaturalSelection2/dependencies/libm.so.6
cp -v "${rootdir}/steamcmd/linux32/libstdc++.so.6" "${filesdir}/libstdc++.so.6"
# No More Room in Hell
elif [ "${gamename}" == "No More Room in Hell" ]; then
glibcversion="2.15"
fn_glibcfixmsg
cd "${filesdir}"
- wget -nv -N --no-check-certificate https://github.com/dgibbs64/linuxgameservers/raw/master/NoMoreRoomInHell/dependencies/libm.so.6
+ wget -nv -N --no-check-certificate https://github.com/dgibbs64/linuxgsm/raw/master/NoMoreRoomInHell/dependencies/libm.so.6
cp -v "${rootdir}/steamcmd/linux32/libstdc++.so.6" "${filesdir}/libstdc++.so.6"
# if Glibc less than 1.13
elif [ "$(ldd --version | sed -n '1 p' | tr -cd [:digit:] | tail -c 3)" -lt 213 ]; then
diff --git a/functions/fn_install_ut99fix b/functions/fn_install_ut99fix
index 4a40d8c19..de8c560a8 100644
--- a/functions/fn_install_ut99fix
+++ b/functions/fn_install_ut99fix
@@ -2,7 +2,7 @@
# LGSM fn_install_ut99fix function
# Author: Daniel Gibbs
# Website: http://danielgibbs.co.uk
-# Version: 210115
+# Version: 070215
echo "Applying ${gamename} Server Fixes"
echo "================================="
@@ -16,6 +16,9 @@ echo "MasterServerPort=27900"
echo "Region=0"
}|tee -a "${servercfgfullpath}" > /dev/null 2>&1
sleep 1
+echo "removing dead gamespy.com master server."
+sed -i '/master0.gamespy.com/d' "${servercfgfullpath}"
+sleep 1
echo "removing dead mplayer.com master server."
sed -i '/master.mplayer.com/d' "${servercfgfullpath}"
sleep 1
diff --git a/functions/fn_monitor b/functions/fn_monitor
index 54f2cafc7..34e2e10c1 100644
--- a/functions/fn_monitor
+++ b/functions/fn_monitor
@@ -69,8 +69,10 @@ if [ ! -f "${lockselfname}" ]; then
echo "To enable monitor run ${selfname} start"
exit
fi
+
+
updatecheck=$(ps -ef|grep "${selfname} update"|grep -v grep|wc -l)
-if [ "${updatecheck}" = "0" ]; then
+if [ "${updatecheck}" = "0" ]||[ "${gamename}" == "Unreal Tournament 99" ]||[ "${gamename}" == "Unreal Tournament 2004" ]; then
fn_printdots "Checking session: CHECKING"
fn_scriptlog "Checking session: CHECKING"
sleep 1
diff --git a/functions/fn_monitor_query b/functions/fn_monitor_query
index 893e6b35c..f9a888bff 100644
--- a/functions/fn_monitor_query
+++ b/functions/fn_monitor_query
@@ -1,8 +1,8 @@
#!/bin/bash
# LGSM fn_monitor_query function
# Author: Daniel Gibbs
-# Website: http://danielgibbs.co.uk
-# Version: 210115
+# Website: http://gameservermanagers.com
+# Version: 220315
# Description: uses gsquery.py to directly query the server.
# Detects if the server has frozen.
@@ -35,9 +35,16 @@ if [ -f gsquery.py ]; then
sleep 1
echo -en "\n"
if [[ -z "${secondquery}" ]]; then
- fn_printinfo "Waiting 30 seconds to re-query"
- fn_scriptlog "Waiting 30 seconds to re-query"
- sleep 30
+ if [ "${engine}" == "unreal2" ]; then
+ # unreal 2: Map change can take around 60 seconds
+ fn_printinfo "Waiting 60 seconds to re-query"
+ fn_scriptlog "Waiting 60 seconds to re-query"
+ sleep 60
+ else
+ fn_printinfo "Waiting 30 seconds to re-query"
+ fn_scriptlog "Waiting 30 seconds to re-query"
+ sleep 30
+ fi
secondquery=1
fn_monitor_query
fi
diff --git a/functions/fn_update_check b/functions/fn_update_check
index d35b830b3..a05c681f5 100644
--- a/functions/fn_update_check
+++ b/functions/fn_update_check
@@ -2,20 +2,115 @@
# LGSM fn_update_check function
# Author: Daniel Gibbs
# Website: http://danielgibbs.co.uk
-# Version: 210115
+# Version: 150315
# Description: Checks if a server update is available.
local modulename="Update"
+### SteamCMD Update Checker ###
+
+fn_appmanifestinfo(){
+ appmanifestfile=$(find "${filesdir}" -type f -name "appmanifest_${appid}.acf")
+ appmanifestfilewc=$(find "${filesdir}" -type f -name "appmanifest_${appid}.acf"|wc -l)
+}
+
+fn_appmanifestcheck(){
+fn_appmanifestinfo
+# Multiple or no matching appmanifest files may sometimes be available.
+# This is an error is corrected below if required.
+if [ "${appmanifestfilewc}" -ge "2" ]; then
+ sleep 1
+ fn_printwarn "Multiple appmanifest_${appid}.acf files found"
+ fn_scriptlog "Warning! Multiple appmanifest_${appid}.acf files found"
+ sleep 2
+ fn_printdots "Removing x${appmanifestfilewc} appmanifest_${appid}.acf files"
+ sleep 1
+ for appfile in ${appmanifestfile}; do
+ rm "${appfile}"
+ done
+ appmanifestfilewc1="${appmanifestfilewc}"
+ fn_appmanifestinfo
+ if [ "${appmanifestfilewc}" -ge "2" ]; then
+ fn_printfail "Unable to remove x${appmanifestfilewc} appmanifest_${appid}.acf files"
+ fn_scriptlog "Failure! Unable to remove x${appmanifestfilewc} appmanifest_${appid}.acf files"
+ sleep 1
+ echo ""
+ echo " Check user permissions"
+ for appfile in ${appmanifestfile}; do
+ echo " ${appfile}"
+ done
+ exit
+ else
+ sleep 1
+ fn_printok "Removed x${appmanifestfilewc1} appmanifest_${appid}.acf files"
+ fn_scriptlog "Success! Removed x${appmanifestfilewc1} appmanifest_${appid}.acf files"
+ sleep 1
+ fn_printinfonl "Forcing update to correct issue"
+ fn_scriptlog "Forcing update to correct issue"
+ sleep 1
+ fn_update_dl
+ fn_update_check
+ fi
+elif [ "${appmanifestfilewc}" -eq "0" ]; then
+ fn_printwarn "No appmanifest_${appid}.acf found"
+ fn_scriptlog "Warning! No appmanifest_${appid}.acf found"
+ sleep 2
+ fn_printinfonl "Forcing update to correct issue"
+ fn_scriptlog "Forcing update to correct issue"
+ sleep 1
+ fn_update_dl
+ fn_update_check
+fi
+}
+
+fn_logupdaterequest(){
+# Checks for server update requests from server logs.
+echo ""
+fn_printdots "Checking for update: Server logs"
+sleep 1
+fn_printok "Checking for update: Server logs"
+fn_scriptlog "Checking for update: Server logs"
+sleep 1
+requestrestart=$(grep -sc "MasterRequestRestart" "${consolelog}")
+if [ "${requestrestart}" -ge "1" ]; then
+ fn_printoknl "Server requesting update"
+ sleep 1
+ echo ""
+ echo -ne "Applying update.\r"
+ sleep 1
+ echo -ne "Applying update..\r"
+ sleep 1
+ echo -ne "Applying update...\r"
+ sleep 1
+ echo -ne "\n"
+ if [ ! -z "${norestart}" ]; then
+ fn_update_dl
+ else
+ fn_stop
+ fn_update_dl
+ fn_start
+ fi
+else
+ fn_printok "Checking for update: Server logs: No update requested"
+ sleep 1
+fi
+echo ""
+}
+
fn_steamcmdcheck(){
+fn_appmanifestcheck
# Checks for server update from SteamCMD
fn_printdots "Checking for update: SteamCMD"
fn_scriptlog "Checking for update: SteamCMD"
sleep 1
+
+# Gets currentbuild
currentbuild=$(grep buildid "${appmanifestfile}" | tr '[:blank:]"' ' ' | tr -s ' ' | cut -d\ -f3)
+
+# Gets availablebuild info
cd "${rootdir}/steamcmd"
-availablebuild=$(./steamcmd.sh +login "${steamuser}" "${steampass}" +app_info_print ${appid} +app_info_print ${appid} +quit | grep -EA 1000 "^\s+\"branches\"$" | grep -EA 5 "^\s+\"public\"$" | grep -m 1 -EB 10 "^\s+}$" | grep -E "^\s+\"buildid\"\s+" | tr '[:blank:]"' ' ' | tr -s ' ' | cut -d\ -f3)
+availablebuild=$(./steamcmd.sh +login "${steamuser}" "${steampass}" +app_info_print "${appid}" +app_info_print "${appid}" +quit | grep -EA 1000 "^\s+\"branches\"$" | grep -EA 5 "^\s+\"public\"$" | grep -m 1 -EB 10 "^\s+}$" | grep -E "^\s+\"buildid\"\s+" | tr '[:blank:]"' ' ' | tr -s ' ' | cut -d\ -f3)
if [ -z "${availablebuild}" ]; then
fn_printfail "Checking for update: SteamCMD"
fn_scriptlog "Failure! Checking for update: SteamCMD"
@@ -29,30 +124,6 @@ else
sleep 1
fi
-if [ -z "${availablebuild}" ]; then
- # Checks for server update from SteamDB.info if SteamCMD fails
- echo ""
- fn_printdots "Checking for update: SteamDB.info"
- fn_scriptlog "Checking for update: SteamDB.info"
- availablebuild=$(wget -qO- "http://steamdb.info/api/GetRawDepots/?appid=${appid}" | sed 's/\\n/\n/g' | grep -EA 1000 "^\s+\[branches\]" | grep -EA 5 "^\s+\[public\]" | grep -m 1 -EB 10 "^\s+\)$" | grep -E "^\s+\[buildid\]\s+" | tr '[:blank:]"' ' ' | tr -s ' ' | cut -d\ -f4)
- sleep 1
- if [ -z "${availablebuild}" ]; then
- fn_printfail "Checking for update: SteamDB.info"
- fn_scriptlog "Failure! Checking for update: SteamDB.info"
- sleep 1
- fn_printfail "Checking for update: SteamDB.info: Not returning version info"
- fn_scriptlog "Failure! Checking for update: SteamDB.info: Not returning version info"
- sleep 2
- else
- fn_printok "Checking for update: SteamDB.info"
- fn_scriptlog "Success! Checking for update: SteamDB.info"
- sleep 1
- fi
-fi
-if [ -z "${availablebuild}" ]; then
- fn_logupdaterequest
-fi
-
if [ "${currentbuild}" -ne "${availablebuild}" ]; then
echo -e "\n"
echo -e "Update available:"
@@ -94,96 +165,110 @@ else
fi
}
-fn_logupdaterequest(){
-# Checks for server update requests from server logs.
-echo ""
-fn_printdots "Checking server logs for update requests"
-sleep 1
-fn_printok "Checking server logs for update requests"
-fn_scriptlog "Checking server logs for update requests"
+### END SteamCMD Update Checker ###
+
+fn_teamspeak3_check(){
+# Checks for server update from teamspeak.com using a mirror dl.4players.de
+fn_printdots "Checking for update: teamspeak.com"
+fn_scriptlog "Checking for update: teamspeak.com"
sleep 1
-requestrestart=$(grep -sc "MasterRequestRestart" "${consolelog}")
-if [ "${requestrestart}" -ge "1" ]; then
- fn_printoknl "Server requesting update"
- sleep 1
- echo ""
- echo -ne "Applying update.\r"
- sleep 1
- echo -ne "Applying update..\r"
- sleep 1
- echo -ne "Applying update...\r"
+
+# Gets currentbuild info
+# Checks currentbuild info is available, if fails a server restart will be forced to generate logs
+if [ -z "$(find ./* -name 'ts3server*_0.log')" ]; then
+ fn_printfail "Checking for update: teamspeak.com"
+ fn_scriptlog "Checking for update: teamspeak.com"
sleep 1
- echo -ne "\n"
- if [ ! -z "${norestart}" ]; then
- fn_update_dl
- else
- fn_stop
- fn_update_dl
- fn_start
+ fn_printfailnl "Checking for update: teamspeak.com: No logs with server version found"
+ fn_scriptlog "Failure! Checking for update: teamspeak.com: No logs with server version found"
+ sleep 2
+ fn_printinfonl "Checking for update: teamspeak.com: Forcing server restart"
+ fn_scriptlog "Checking for update: teamspeak.com: Forcing server restart"
+ sleep 2
+ ./${selfname} restart
+ sleep 2
+ # If still failing will exit
+ if [ -z "$(find ./* -name 'ts3server*_0.log')" ]; then
+ fn_printfailnl "Checking for update: teamspeak.com: Still No logs with server version found"
+ fn_scriptlog "Failure! Checking for update: teamspeak.com: Still No logs with server version found"
+ exit
fi
-else
- fn_printok "No update request detected"
- sleep 1
fi
-echo ""
-exit
-}
+currentbuild=$(cat $(find ./* -name 'ts3server*_0.log' 2> /dev/null | sort | egrep -E -v '${rootdir}/.ts3version' | tail -1) | egrep -o 'TeamSpeak 3 Server ((\.)?[0-9]{1,3}){1,3}\.[0-9]{1,3}' | egrep -o '((\.)?[0-9]{1,3}){1,3}\.[0-9]{1,3}')
+# Gets the teamspeak server architecture
+ts3arch=$(ls $(find ${filesdir}/ -name 'ts3server_*_*' 2> /dev/null | grep -v 'ts3server_minimal_runscript.sh' | sort | tail -1) | egrep -o '(amd64|x86)' | tail -1)
-fn_appmanifestinfo(){
- appmanifestfile=$(find "${filesdir}" -type f -name "appmanifest_${appid}.acf")
- appmanifestfilewc=$(find "${filesdir}" -type f -name "appmanifest_${appid}.acf"|wc -l)
-}
+# Gets availablebuild info
+wget "http://dl.4players.de/ts/releases/?C=M;O=D" -q -O -| grep -i dir | egrep -o '.*\/<\/a>' | egrep -o '[0-9\.?]+'|uniq > .ts3_version_numbers.tmp
+# Finds directory with most recent server version.
+while read ts3_version_number; do
+ wget --spider -q "http://dl.4players.de/ts/releases/${ts3_version_number}/teamspeak3-server_linux-${ts3arch}-${ts3_version_number}.tar.gz"
+ if [[ $? == 0 ]]; then
+ availablebuild="${ts3_version_number}"
+ # Break while-loop, if the latest release could be found
+ break
+ fi
+done < .ts3_version_numbers.tmp
+rm .ts3_version_numbers.tmp
-fn_appmanifestcheck(){
-fn_appmanifestinfo
-# Multiple or no matching appmanifest files may sometimes be available.
-# This is an error is corrected below if required.
-if [ "${appmanifestfilewc}" -ge "2" ]; then
+# Checks availablebuild info is available
+if [ -z "${availablebuild}" ]; then
+ fn_printfail "Checking for update: teamspeak.com"
+ fn_scriptlog "Checking for update: teamspeak.com"
sleep 1
- fn_printwarn "Multiple appmanifest_${appid}.acf files found"
- fn_scriptlog "Warning! Multiple appmanifest_${appid}.acf files found"
+ fn_printfail "Checking for update: teamspeak.com: Not returning version info"
+ fn_scriptlog "Failure! Checking for update: teamspeak.com: Not returning version info"
sleep 2
- fn_printdots "Removing x${appmanifestfilewc} appmanifest_${appid}.acf files"
+ exit
+else
+ fn_printok "Checking for update: teamspeak.com"
+ fn_scriptlog "Success! Checking for update: teamspeak.com"
sleep 1
- for appfile in ${appmanifestfile}; do
- rm "${appfile}"
- done
- appmanifestfilewc1="${appmanifestfilewc}"
- fn_appmanifestinfo
- if [ "${appmanifestfilewc}" -ge "2" ]; then
- fn_printfail "Unable to remove x${appmanifestfilewc} appmanifest_${appid}.acf files"
- fn_scriptlog "Failure! Unable to remove x${appmanifestfilewc} appmanifest_${appid}.acf files"
- sleep 1
- echo ""
- echo " Check user permissions"
- for appfile in ${appmanifestfile}; do
- echo " ${appfile}"
- done
- exit
- else
- sleep 1
- fn_printok "Removed x${appmanifestfilewc1} appmanifest_${appid}.acf files"
- fn_scriptlog "Success! Removed x${appmanifestfilewc1} appmanifest_${appid}.acf files"
- sleep 1
- fn_printinfonl "Forcing update to correct issue"
- fn_scriptlog "Forcing update to correct issue"
- sleep 1
- fn_update_dl
- fn_update_check
- fi
-elif [ "${appmanifestfilewc}" -eq "0" ]; then
- fn_printwarn "No appmanifest_${appid}.acf found"
- fn_scriptlog "Warning! No appmanifest_${appid}.acf found"
- sleep 2
- fn_printinfonl "Forcing update to correct issue"
- fn_scriptlog "Forcing update to correct issue"
+fi
+
+# Removes dots so if can compare version numbers
+currentbuilddigit=$(echo "${currentbuild}"|tr -cd "[:digit:]")
+availablebuilddigit=$(echo "${availablebuild}"|tr -cd "[:digit:]")
+if [ "${currentbuilddigit}" -ne "${availablebuilddigit}" ]; then
+ echo -e "\n"
+ echo -e "Update available:"
+ sleep 1
+ echo -e " Current build: \e[0;31m${currentbuild} ${architecture}\e[0;39m"
+ echo -e " Available build: \e[0;32m${availablebuild} ${architecture}\e[0;39m"
+ echo -e ""
+ sleep 1
+ echo ""
+ echo -en "Applying update.\r"
sleep 1
+ echo -en "Applying update..\r"
+ sleep 1
+ echo -en "Applying update...\r"
+ sleep 1
+ echo -en "\n"
+ fn_scriptlog "Update available"
+ fn_scriptlog "Current build: ${currentbuild}"
+ fn_scriptlog "Available build: ${availablebuild}"
+ fn_scriptlog "${currentbuild} > ${availablebuild}"
+ fn_stop
fn_update_dl
- fn_update_check
+ fn_start
+else
+ echo -e "\n"
+ echo -e "No update available:"
+ echo -e " Current version: \e[0;32m${currentbuild}\e[0;39m"
+ echo -e " Available version: \e[0;32m${availablebuild}\e[0;39m"
+ echo -e ""
+ fn_printoknl "No update available"
+ fn_scriptlog "Current build: ${currentbuild}"
+ fn_scriptlog "Available build: ${availablebuild}"
fi
}
fn_printdots "Checking for update"
-fn_appmanifestcheck
-fn_steamcmdcheck
\ No newline at end of file
+if [ "${gamename}" == "Teamspeak 3" ]; then
+ fn_teamspeak3_check
+else
+ fn_logupdaterequest
+ fn_steamcmdcheck
+fi
\ No newline at end of file
diff --git a/functions/fn_update_dl b/functions/fn_update_dl
index 524b6ead9..fa576992f 100644
--- a/functions/fn_update_dl
+++ b/functions/fn_update_dl
@@ -2,11 +2,13 @@
# LGSM fn_update_dl function
# Author: Daniel Gibbs
# Website: http://danielgibbs.co.uk
-# Version: 210115
+# Version: 150315
# Description: Runs a server update.
local modulename="Update"
+
+fn_steamcmd_dl(){
fn_check_root
fn_check_systemdir
fn_details_config
@@ -18,4 +20,61 @@ fn_scriptlog "Updating ${servername}"
sleep 1
cd "${rootdir}"
cd "steamcmd"
-./steamcmd.sh +login "${steamuser}" "${steampass}" +force_install_dir "${filesdir}" +app_update "${appid}" +quit|tee -a "${scriptlog}"
\ No newline at end of file
+./steamcmd.sh +login "${steamuser}" "${steampass}" +force_install_dir "${filesdir}" +app_update "${appid}" +quit|tee -a "${scriptlog}"
+}
+
+fn_teamspeak3_dl(){
+fn_check_root
+fn_check_systemdir
+fn_details_config
+fn_printdots "Updating ${servername}"
+sleep 1
+fn_printoknl "Updating ${servername}"
+fn_scriptlog "Updating ${servername}"
+sleep 1
+cd ${rootdir}
+echo -e "downloading teamspeak3-server_linux-${ts3arch}-${availablebuild}.tar.gz...\c"
+fn_scriptlog "Downloading teamspeak3-server_linux-${ts3arch}-${availablebuild}.tar.gz"
+wget -N --no-check-certificate /dev/null http://dl.4players.de/ts/releases/${ts3_version_number}/teamspeak3-server_linux-${ts3arch}-${ts3_version_number}.tar.gz 2>&1 | grep -F HTTP | cut -c45-| uniq
+sleep 1
+echo -e "extracting teamspeak3-server_linux-${ts3arch}-${availablebuild}.tar.gz...\c"
+fn_scriptlog "Extracting teamspeak3-server_linux-${ts3arch}-${availablebuild}.tar.gz"
+tar -xf "teamspeak3-server_linux-${ts3arch}-${availablebuild}.tar.gz" 2> "${scriptlogdir}/.${servicename}-tar-error.tmp"
+local status=$?
+if [ ${status} -eq 0 ]; then
+ echo "OK"
+else
+ echo "FAIL - Exit status ${status}"
+ fn_scriptlog "Failed to extract - Exit status ${status}"
+ sleep 1
+ cat "${scriptlogdir}/.${servicename}-tar-error.tmp"
+ cat "${scriptlogdir}/.${servicename}-tar-error.tmp" >> "${scriptlog}"
+ rm "${scriptlogdir}/.${servicename}-tar-error.tmp"
+ fn_scriptlog "Failure! Unable to update"
+ exit
+fi
+echo -e "copying to ${filesdir}...\c"
+fn_scriptlog "Copying to ${filesdir}"
+cp -R ${rootdir}/teamspeak3-server_linux-${ts3arch}/* "${filesdir}" 2> "${scriptlogdir}/.${servicename}-cp-error.tmp"
+local status=$?
+if [ ${status} -eq 0 ]; then
+ echo "OK"
+else
+ echo "FAIL - Exit status ${status}"
+ fn_scriptlog "Failed to copy - Exit status ${status}"
+ sleep 1
+ cat "${scriptlogdir}/.${servicename}-cp-error.tmp"
+ cat "${scriptlogdir}/.${servicename}-cp-error.tmp" >> "${scriptlog}"
+ rm "${scriptlogdir}/.${servicename}-cp-error.tmp"
+ fn_scriptlog "Failure! Unable to update"
+ exit
+fi
+rm -f teamspeak3-server_linux-${ts3arch}-${availablebuild}.tar.gz
+rm -rf ${rootdir}/teamspeak3-server_linux-${ts3arch}
+}
+
+if [ "${gamename}" == "Teamspeak 3" ]; then
+ fn_teamspeak3_dl
+else
+ fn_steamcmd_dl
+fi