diff --git a/7DaysToDie/sdtdserver b/7DaysToDie/sdtdserver index 9eeb62a99..3a2f62064 100644 --- a/7DaysToDie/sdtdserver +++ b/7DaysToDie/sdtdserver @@ -9,7 +9,7 @@ if [ -f ".dev-debug" ]; then set -x fi -version="160916" +version="211016" #### Variables #### diff --git a/ARKSurvivalEvolved/arkserver b/ARKSurvivalEvolved/arkserver index 6263c51e0..940ffee80 100644 --- a/ARKSurvivalEvolved/arkserver +++ b/ARKSurvivalEvolved/arkserver @@ -9,7 +9,7 @@ if [ -f ".dev-debug" ]; then set -x fi -version="160916" +version="211016" #### Variables #### diff --git a/Arma3/arma3server b/Arma3/arma3server index 3d727f5f1..e09959ef7 100644 --- a/Arma3/arma3server +++ b/Arma3/arma3server @@ -10,7 +10,7 @@ if [ -f ".dev-debug" ]; then set -x fi -version="160916" +version="211016" #### Variables #### diff --git a/Battlefield1942/bf1942server b/Battlefield1942/bf1942server index 46ebcceee..07dfccc4b 100644 --- a/Battlefield1942/bf1942server +++ b/Battlefield1942/bf1942server @@ -9,7 +9,7 @@ if [ -f ".dev-debug" ]; then set -x fi -version="210516" +version="211016" #### Variables #### diff --git a/BlackMesa/bmdmserver b/BlackMesa/bmdmserver index a61821b1d..9f458c29b 100644 --- a/BlackMesa/bmdmserver +++ b/BlackMesa/bmdmserver @@ -9,7 +9,7 @@ if [ -f ".dev-debug" ]; then set -x fi -version="160916" +version="211016" #### Variables #### diff --git a/BladeSymphony/bsserver b/BladeSymphony/bsserver index c1b4a24a6..67c3f5f1f 100644 --- a/BladeSymphony/bsserver +++ b/BladeSymphony/bsserver @@ -9,7 +9,7 @@ if [ -f ".dev-debug" ]; then set -x fi -version="160916" +version="211016" #### Variables #### diff --git a/BrainBread2/bb2server b/BrainBread2/bb2server index 891cf2499..b2c7c49b1 100644 --- a/BrainBread2/bb2server +++ b/BrainBread2/bb2server @@ -9,7 +9,7 @@ if [ -f ".dev-debug" ]; then set -x fi -version="160916" +version="211016" #### Variables #### diff --git a/CodenameCURE/ccserver b/CodenameCURE/ccserver index c888ea234..43b726b6a 100644 --- a/CodenameCURE/ccserver +++ b/CodenameCURE/ccserver @@ -9,7 +9,7 @@ if [ -f ".dev-debug" ]; then set -x fi -version="160916" +version="211016" #### Variables #### diff --git a/CounterStrike/csserver b/CounterStrike/csserver index c2be066c6..9c75a6aa6 100644 --- a/CounterStrike/csserver +++ b/CounterStrike/csserver @@ -9,7 +9,7 @@ if [ -f ".dev-debug" ]; then set -x fi -version="060816" +version="211016" #### Variables #### diff --git a/CounterStrikeConditionZero/csczserver b/CounterStrikeConditionZero/csczserver index c40692742..0a6c49e04 100644 --- a/CounterStrikeConditionZero/csczserver +++ b/CounterStrikeConditionZero/csczserver @@ -9,7 +9,7 @@ if [ -f ".dev-debug" ]; then set -x fi -version="210516" +version="211016" #### Variables #### diff --git a/CounterStrikeGlobalOffensive/csgoserver b/CounterStrikeGlobalOffensive/csgoserver index 8e4148493..36114ccb3 100755 --- a/CounterStrikeGlobalOffensive/csgoserver +++ b/CounterStrikeGlobalOffensive/csgoserver @@ -9,7 +9,7 @@ if [ -f ".dev-debug" ]; then set -x fi -version="210516" +version="211016" #### Variables #### diff --git a/CounterStrikeSource/cssserver b/CounterStrikeSource/cssserver index f88670455..12ff1df51 100644 --- a/CounterStrikeSource/cssserver +++ b/CounterStrikeSource/cssserver @@ -9,7 +9,7 @@ if [ -f ".dev-debug" ]; then set -x fi -version="160916" +version="211016" #### Variables #### diff --git a/DayOfDefeat/dodserver b/DayOfDefeat/dodserver index 77c7ba3d7..c4e2610fa 100644 --- a/DayOfDefeat/dodserver +++ b/DayOfDefeat/dodserver @@ -9,7 +9,7 @@ if [ -f ".dev-debug" ]; then set -x fi -version="210516" +version="211016" #### Variables #### diff --git a/DayOfDefeatSource/dodsserver b/DayOfDefeatSource/dodsserver index 0c6453d89..f0b8520e0 100644 --- a/DayOfDefeatSource/dodsserver +++ b/DayOfDefeatSource/dodsserver @@ -9,7 +9,7 @@ if [ -f ".dev-debug" ]; then set -x fi -version="160916" +version="211016" #### Variables #### diff --git a/DayOfInfamy/doiserver b/DayOfInfamy/doiserver index e3f2d2d82..0decebc06 100644 --- a/DayOfInfamy/doiserver +++ b/DayOfInfamy/doiserver @@ -9,7 +9,7 @@ if [ -f ".dev-debug" ]; then set -x fi -version="160916" +version="211016" #### Variables #### diff --git a/DeathmatchClassic/dmcserver b/DeathmatchClassic/dmcserver index 72049d7f1..c4cb47902 100644 --- a/DeathmatchClassic/dmcserver +++ b/DeathmatchClassic/dmcserver @@ -9,7 +9,7 @@ if [ -f ".dev-debug" ]; then set -x fi -version="210516" +version="211016" #### Variables #### diff --git a/DontStarveTogether/dstserver b/DontStarveTogether/dstserver index 9de0307c3..973f72c16 100644 --- a/DontStarveTogether/dstserver +++ b/DontStarveTogether/dstserver @@ -9,7 +9,7 @@ if [ -f ".dev-debug" ]; then set -x fi -version="160916" +version="211016" #### Variables #### diff --git a/DoubleActionBoogaloo/dabserver b/DoubleActionBoogaloo/dabserver index 4918d70e6..4ee289fb8 100644 --- a/DoubleActionBoogaloo/dabserver +++ b/DoubleActionBoogaloo/dabserver @@ -9,7 +9,7 @@ if [ -f ".dev-debug" ]; then set -x fi -version="160916" +version="211016" #### Variables #### diff --git a/EmpiresMod/emserver b/EmpiresMod/emserver index e923651da..28ccec4e1 100644 --- a/EmpiresMod/emserver +++ b/EmpiresMod/emserver @@ -9,7 +9,7 @@ if [ -f ".dev-debug" ]; then set -x fi -version="160916" +version="211016" #### Variables #### diff --git a/FistfulOfFrags/fofserver b/FistfulOfFrags/fofserver index c57cb963f..18d0058cf 100644 --- a/FistfulOfFrags/fofserver +++ b/FistfulOfFrags/fofserver @@ -9,7 +9,7 @@ if [ -f ".dev-debug" ]; then set -x fi -version="160916" +version="211016" #### Variables #### diff --git a/GarrysMod/gmodserver b/GarrysMod/gmodserver index ce9ee4494..bd73743ea 100644 --- a/GarrysMod/gmodserver +++ b/GarrysMod/gmodserver @@ -9,7 +9,7 @@ if [ -f ".dev-debug" ]; then set -x fi -version="160916" +version="211016" #### Variables #### diff --git a/GoldenEyeSource/gesserver b/GoldenEyeSource/gesserver index ecd664093..12ac8a165 100644 --- a/GoldenEyeSource/gesserver +++ b/GoldenEyeSource/gesserver @@ -9,7 +9,7 @@ if [ -f ".dev-debug" ]; then set -x fi -version="300816" +version="211016" #### Variables #### diff --git a/HalfLife2Deathmatch/hl2dmserver b/HalfLife2Deathmatch/hl2dmserver index 56c57d6c9..77ef2a03d 100644 --- a/HalfLife2Deathmatch/hl2dmserver +++ b/HalfLife2Deathmatch/hl2dmserver @@ -9,7 +9,7 @@ if [ -f ".dev-debug" ]; then set -x fi -version="210516" +version="211016" #### Variables #### diff --git a/HalfLifeDeathmatch/hldmserver b/HalfLifeDeathmatch/hldmserver index e29839462..3285f810e 100644 --- a/HalfLifeDeathmatch/hldmserver +++ b/HalfLifeDeathmatch/hldmserver @@ -9,7 +9,7 @@ if [ -f ".dev-debug" ]; then set -x fi -version="210516" +version="211016" #### Variables #### diff --git a/HalfLifeDeathmatchSource/hldmsserver b/HalfLifeDeathmatchSource/hldmsserver index 69ed525ee..9c1a1040e 100644 --- a/HalfLifeDeathmatchSource/hldmsserver +++ b/HalfLifeDeathmatchSource/hldmsserver @@ -9,7 +9,7 @@ if [ -f ".dev-debug" ]; then set -x fi -version="210516" +version="211016" #### Variables #### diff --git a/Hurtworld/hwserver b/Hurtworld/hwserver index d6497b83d..a72c59e05 100644 --- a/Hurtworld/hwserver +++ b/Hurtworld/hwserver @@ -10,7 +10,7 @@ if [ -f ".dev-debug" ]; then set -x fi -version="160916" +version="211016" #### Variables #### diff --git a/Insurgency/insserver b/Insurgency/insserver index 424b559ad..77c32f9c5 100644 --- a/Insurgency/insserver +++ b/Insurgency/insserver @@ -9,7 +9,7 @@ if [ -f ".dev-debug" ]; then set -x fi -version="161001" +version="211016" #### Variables #### diff --git a/JustCause2/jc2server b/JustCause2/jc2server index 95ca86cb5..2966d9af0 100644 --- a/JustCause2/jc2server +++ b/JustCause2/jc2server @@ -9,7 +9,7 @@ if [ -f ".dev-debug" ]; then set -x fi -version="160916" +version="211016" #### Variables #### diff --git a/KillingFloor/kfserver b/KillingFloor/kfserver index a2e9e3f9a..e4dba3329 100644 --- a/KillingFloor/kfserver +++ b/KillingFloor/kfserver @@ -9,7 +9,7 @@ if [ -f ".dev-debug" ]; then set -x fi -version="160916" +version="211016" #### Variables #### diff --git a/Left4Dead/l4dserver b/Left4Dead/l4dserver index ef8e2e4b9..37dc67e5f 100644 --- a/Left4Dead/l4dserver +++ b/Left4Dead/l4dserver @@ -10,7 +10,7 @@ if [ -f ".dev-debug" ]; then set -x fi -version="160916" +version="211016" #### Variables #### diff --git a/Left4Dead2/l4d2server b/Left4Dead2/l4d2server index 41a0e9ac9..8db8c6638 100644 --- a/Left4Dead2/l4d2server +++ b/Left4Dead2/l4d2server @@ -9,7 +9,7 @@ if [ -f ".dev-debug" ]; then set -x fi -version="160916" +version="211016" #### Variables #### diff --git a/Minecraft/mcserver b/Minecraft/mcserver index c086b0d4b..230da0fa3 100644 --- a/Minecraft/mcserver +++ b/Minecraft/mcserver @@ -4,12 +4,12 @@ # Author: Daniel Gibbs # Website: https://gameservermanagers.com if [ -f ".dev-debug" ]; then - exec 5>dev-debug.log - BASH_XTRACEFD="5" - set -x + exec 5>dev-debug.log + BASH_XTRACEFD="5" + set -x fi -version="210816" +version="211016" #### Variables #### @@ -96,36 +96,36 @@ filename="${github_file_url_name}" githuburl="https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/${github_file_url_dir}/${github_file_url_name}" # If the file is missing, then download if [ ! -f "${filedir}/${filename}" ]; then - if [ ! -d "${filedir}" ]; then - mkdir -p "${filedir}" - fi - echo -e " fetching ${filename}...\c" - # Check curl exists and use available path - curlpaths="$(command -v curl 2>/dev/null) $(which curl >/dev/null 2>&1) /usr/bin/curl /bin/curl /usr/sbin/curl /sbin/curl)" - for curlcmd in ${curlpaths} - do - if [ -x "${curlcmd}" ]; then - break - fi - done - # If curl exists download file - if [ "$(basename ${curlcmd})" == "curl" ]; then - curlfetch=$(${curlcmd} -s --fail -o "${filedir}/${filename}" "${githuburl}" 2>&1) - if [ $? -ne 0 ]; then - echo -e "\e[0;31mFAIL\e[0m\n" - echo "${curlfetch}" - echo -e "${githuburl}\n" - exit 1 - else - echo -e "\e[0;32mOK\e[0m" - fi - else - echo -e "\e[0;31mFAIL\e[0m\n" - echo "Curl is not installed!" - echo -e "" - exit 1 - fi - chmod +x "${filedir}/${filename}" + if [ ! -d "${filedir}" ]; then + mkdir -p "${filedir}" + fi + echo -e " fetching ${filename}...\c" + # Check curl exists and use available path + curlpaths="$(command -v curl 2>/dev/null) $(which curl >/dev/null 2>&1) /usr/bin/curl /bin/curl /usr/sbin/curl /sbin/curl)" + for curlcmd in ${curlpaths} + do + if [ -x "${curlcmd}" ]; then + break + fi + done + # If curl exists download file + if [ "$(basename ${curlcmd})" == "curl" ]; then + curlfetch=$(${curlcmd} -s --fail -o "${filedir}/${filename}" "${githuburl}" 2>&1) + if [ $? -ne 0 ]; then + echo -e "\e[0;31mFAIL\e[0m\n" + echo "${curlfetch}" + echo -e "${githuburl}\n" + exit 1 + else + echo -e "\e[0;32mOK\e[0m" + fi + else + echo -e "\e[0;31mFAIL\e[0m\n" + echo "Curl is not installed!" + echo -e "" + exit 1 + fi + chmod +x "${filedir}/${filename}" fi source "${filedir}/${filename}" } diff --git a/Mumble/mumbleserver b/Mumble/mumbleserver index c298d90a3..f0c18a521 100644 --- a/Mumble/mumbleserver +++ b/Mumble/mumbleserver @@ -10,7 +10,7 @@ if [ -f ".dev-debug" ]; then set -x fi -version="290716" +version="211016" #### Variables #### diff --git a/NS2Combat/ns2cserver b/NS2Combat/ns2cserver index 283182a26..4c9dcec4b 100644 --- a/NS2Combat/ns2cserver +++ b/NS2Combat/ns2cserver @@ -9,7 +9,7 @@ if [ -f ".dev-debug" ]; then set -x fi -version="160916" +version="211016" #### Variables #### diff --git a/NaturalSelection2/ns2server b/NaturalSelection2/ns2server index 91464bd2c..48f22369f 100644 --- a/NaturalSelection2/ns2server +++ b/NaturalSelection2/ns2server @@ -9,7 +9,7 @@ if [ -f ".dev-debug" ]; then set -x fi -version="210916" +version="211016" #### Variables #### diff --git a/NoMoreRoomInHell/nmrihserver b/NoMoreRoomInHell/nmrihserver index 0e795cd0d..e809b1fa4 100644 --- a/NoMoreRoomInHell/nmrihserver +++ b/NoMoreRoomInHell/nmrihserver @@ -9,7 +9,7 @@ if [ -f ".dev-debug" ]; then set -x fi -version="160916" +version="211016" #### Variables #### diff --git a/OpposingForce/opforserver b/OpposingForce/opforserver index aa41c633d..896a7370e 100644 --- a/OpposingForce/opforserver +++ b/OpposingForce/opforserver @@ -9,7 +9,7 @@ if [ -f ".dev-debug" ]; then set -x fi -version="210516" +version="211016" #### Variables #### diff --git a/PiratesVikingandKnightsII/pvkiiserver b/PiratesVikingandKnightsII/pvkiiserver index b953b98e9..19800bb87 100644 --- a/PiratesVikingandKnightsII/pvkiiserver +++ b/PiratesVikingandKnightsII/pvkiiserver @@ -9,7 +9,7 @@ if [ -f ".dev-debug" ]; then set -x fi -version="160916" +version="211016" #### Variables #### diff --git a/ProjectZomboid/pzserver b/ProjectZomboid/pzserver index 17a8b1a6a..711c406eb 100644 --- a/ProjectZomboid/pzserver +++ b/ProjectZomboid/pzserver @@ -10,7 +10,7 @@ if [ -f ".dev-debug" ]; then set -x fi -version="160916" +version="211016" #### Variables #### diff --git a/Quake2/cfg/lgsm-default.cfg b/Quake2/cfg/lgsm-default.cfg new file mode 100644 index 000000000..d59e3505f --- /dev/null +++ b/Quake2/cfg/lgsm-default.cfg @@ -0,0 +1,15 @@ +set hostname "" +set rcon_password "" +set location "The Internet" +set website "https://gameservermanagers.com/" +set deathmatch 1 +set maxclients 8 +set timelimit 30 +set fraglimit 30 + +map q2dm1 + +// to advertise your server to a public "master server" add something +// like this: +//set public 1 +//setmaster master.q2servers.com diff --git a/Quake2/q2server b/Quake2/q2server new file mode 100644 index 000000000..5a7faaab7 --- /dev/null +++ b/Quake2/q2server @@ -0,0 +1,145 @@ +#!/bin/bash +# Quake 2 +# Server Management Script +# Author: Daniel Gibbs +# Website: https://gameservermanagers.com +if [ -f ".dev-debug" ]; then + exec 5>dev-debug.log + BASH_XTRACEFD="5" + set -x +fi + +version="210516" + +#### Variables #### + +# Notification Alerts +# (on|off) + +# Email +emailalert="off" +email="email@example.com" + +# Pushbullet +# https://www.pushbullet.com/#settings +pushbulletalert="off" +pushbullettoken="accesstoken" + +# Start Variables +defaultmap="q2dm1" +ip="0.0.0.0" +port="27910" + +fn_parms(){ +parms="+set dedicated 1 +set ip ${ip} +set port ${port} +exec ${servercfg} +set deathmatch 1 +map ${defaultmap}" +} + +#### Advanced Variables #### + +# Github Branch Select +# Allows for the use of different function files +# from a different repo and/or branch. +githubuser="GameServerManagers" +githubrepo="LinuxGSM" +githubbranch="master" + +# Server Details +servicename="quake2server" +gamename="Quake 2" +engine="idtech2" + +# Directories +rootdir="$(dirname $(readlink -f "${BASH_SOURCE[0]}"))" +selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))" +lockselfname=".${servicename}.lock" +lgsmdir="${rootdir}/lgsm" +functionsdir="${lgsmdir}/functions" +libdir="${lgsmdir}/lib" +tmpdir="${lgsmdir}/tmp" +filesdir="${rootdir}/serverfiles" +systemdir="${filesdir}/baseq2" +executabledir="${filesdir}" +executable="./quake2" +servercfg="${servicename}.cfg" +servercfgdefault="server.cfg" +servercfgdir="${systemdir}" +servercfgfullpath="${servercfgdir}/${servercfg}" +backupdir="${rootdir}/backups" + +# Logging +logdays="7" +gamelogdir="${filesdir}/Logs" +scriptlogdir="${rootdir}/log/script" +consolelogdir="${rootdir}/log/console" +consolelogging="on" + +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 + +# Fetches core_dl for file downloads +fn_fetch_core_dl(){ +github_file_url_dir="lgsm/functions" +github_file_url_name="${functionfile}" +filedir="${functionsdir}" +filename="${github_file_url_name}" +githuburl="https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/${github_file_url_dir}/${github_file_url_name}" +# If the file is missing, then download +if [ ! -f "${filedir}/${filename}" ]; then + if [ ! -d "${filedir}" ]; then + mkdir -p "${filedir}" + fi + echo -e " fetching ${filename}...\c" + # Check curl exists and use available path + curlpaths="$(command -v curl 2>/dev/null) $(which curl >/dev/null 2>&1) /usr/bin/curl /bin/curl /usr/sbin/curl /sbin/curl)" + for curlcmd in ${curlpaths} + do + if [ -x "${curlcmd}" ]; then + break + fi + done + # If curl exists download file + if [ "$(basename ${curlcmd})" == "curl" ]; then + curlfetch=$(${curlcmd} -s --fail -o "${filedir}/${filename}" "${githuburl}" 2>&1) + if [ $? -ne 0 ]; then + echo -e "\e[0;31mFAIL\e[0m\n" + echo "${curlfetch}" + echo -e "${githuburl}\n" + exit 1 + else + echo -e "\e[0;32mOK\e[0m" + fi + else + echo -e "\e[0;31mFAIL\e[0m\n" + echo "Curl is not installed!" + echo -e "" + exit 1 + fi + chmod +x "${filedir}/${filename}" +fi +source "${filedir}/${filename}" +} + +core_dl.sh(){ +# Functions are defined in core_functions.sh. +functionfile="${FUNCNAME}" +fn_fetch_core_dl +} + +core_functions.sh(){ +# Functions are defined in core_functions.sh. +functionfile="${FUNCNAME}" +fn_fetch_core_dl +} + +core_dl.sh +core_functions.sh + +getopt=$1 +core_getopt.sh diff --git a/Quake3/cfg/lgsm-default.cfg b/Quake3/cfg/lgsm-default.cfg new file mode 100644 index 000000000..caccea760 --- /dev/null +++ b/Quake3/cfg/lgsm-default.cfg @@ -0,0 +1,36 @@ +set sv_hostname "" +set sv_maxclients 16 +set g_motd "LGSM Quake3 Server" +set g_forcerespawn 15 +set rconpassword "" +set g_gametype 0 //- Sets the type of game. 0 - Free for all, 1 - Tournament, 2 - Free for all(again), 3 - Team Deathmatch, 4 - Capture the Flag +set fraglimit 50 +set timelimit 20 + +//Here's the map-cycle. When fraglimit or timelimit is reached, the map is automatically changed. +//Otherwise it would just play the same map again. +set m1 "map q3dm1; set nextmap vstr m2" +set m2 "map q3dm2; set nextmap vstr m3" +set m3 "map q3dm3; set nextmap vstr m4" +set m4 "map q3tourney1; set nextmap vstr m5" +set m5 "map q3dm4; set nextmap vstr m6" +set m6 "map q3dm5; set nextmap vstr m7" +set m7 "map q3dm6; set nextmap vstr m8" +set m8 "map q3tourney2; set nextmap vstr m9" +set m9 "map q3dm7; set nextmap vstr m10" +set m10 "map q3dm8; set nextmap vstr m11" +set m11 "map q3dm9; set nextmap vstr m12" +set m12 "map q3tourney3; set nextmap vstr m13" +set m13 "map q3dm10; set nextmap vstr m14" +set m14 "map q3dm11; set nextmap vstr m15" +set m15 "map q3dm12; set nextmap vstr m16" +set m16 "map q3tourney4; set nextmap vstr m17" +set m17 "map q3dm13; set nextmap vstr m18" +set m18 "map q3dm14; set nextmap vstr m19" +set m19 "map q3dm15; set nextmap vstr m20" +set m20 "map q3tourney5; set nextmap vstr m21" +set m21 "map q3dm16; set nextmap vstr m22" +set m22 "map q3dm17; set nextmap vstr m23" +set m23 "map q3dm18; set nextmap vstr m24" +set m24 "map q3dm19; set nextmap vstr m25" +set m25 "map q3tourney6; set nextmap vstr m1" \ No newline at end of file diff --git a/Quake3/q3server b/Quake3/q3server new file mode 100644 index 000000000..6c2e4d844 --- /dev/null +++ b/Quake3/q3server @@ -0,0 +1,145 @@ +#!/bin/bash +# Quake 3: Arena +# Server Management Script +# Author: Daniel Gibbs +# Website: https://gameservermanagers.com +if [ -f ".dev-debug" ]; then + exec 5>dev-debug.log + BASH_XTRACEFD="5" + set -x +fi + +version="210516" + +#### Variables #### + +# Notification Alerts +# (on|off) + +# Email +emailalert="off" +email="email@example.com" + +# Pushbullet +# https://www.pushbullet.com/#settings +pushbulletalert="off" +pushbullettoken="accesstoken" + +# Start Variables +defaultmap="q3dm17" +ip="0.0.0.0" +port="27960" + +fn_parms(){ +parms="+set sv_punkbuster 0 +set fs_basepath ${filesdir} +set dedicated 1 +set com_hunkMegs 32 +set net_ip ${ip} +set net_port ${port} +exec ${servercfg} +map ${defaultmap}" +} + +#### Advanced Variables #### + +# Github Branch Select +# Allows for the use of different function files +# from a different repo and/or branch. +githubuser="GameServerManagers" +githubrepo="LinuxGSM" +githubbranch="master" + +# Server Details +servicename="quake3-server" +gamename="Quake 3: Arena" +engine="idtech3" + +# Directories +rootdir="$(dirname $(readlink -f "${BASH_SOURCE[0]}"))" +selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))" +lockselfname=".${servicename}.lock" +lgsmdir="${rootdir}/lgsm" +functionsdir="${lgsmdir}/functions" +libdir="${lgsmdir}/lib" +tmpdir="${lgsmdir}/tmp" +filesdir="${rootdir}/serverfiles" +systemdir="${filesdir}/baseq3" +executabledir="${filesdir}" +executable="./q3ded" +servercfg="${servicename}.cfg" +servercfgdefault="server.cfg" +servercfgdir="${systemdir}" +servercfgfullpath="${servercfgdir}/${servercfg}" +backupdir="${rootdir}/backups" + +# Logging +logdays="7" +gamelogdir="${filesdir}/Logs" +scriptlogdir="${rootdir}/log/script" +consolelogdir="${rootdir}/log/console" +consolelogging="on" + +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 + +# Fetches core_dl for file downloads +fn_fetch_core_dl(){ +github_file_url_dir="lgsm/functions" +github_file_url_name="${functionfile}" +filedir="${functionsdir}" +filename="${github_file_url_name}" +githuburl="https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/${github_file_url_dir}/${github_file_url_name}" +# If the file is missing, then download +if [ ! -f "${filedir}/${filename}" ]; then + if [ ! -d "${filedir}" ]; then + mkdir -p "${filedir}" + fi + echo -e " fetching ${filename}...\c" + # Check curl exists and use available path + curlpaths="$(command -v curl 2>/dev/null) $(which curl >/dev/null 2>&1) /usr/bin/curl /bin/curl /usr/sbin/curl /sbin/curl)" + for curlcmd in ${curlpaths} + do + if [ -x "${curlcmd}" ]; then + break + fi + done + # If curl exists download file + if [ "$(basename ${curlcmd})" == "curl" ]; then + curlfetch=$(${curlcmd} -s --fail -o "${filedir}/${filename}" "${githuburl}" 2>&1) + if [ $? -ne 0 ]; then + echo -e "\e[0;31mFAIL\e[0m\n" + echo "${curlfetch}" + echo -e "${githuburl}\n" + exit 1 + else + echo -e "\e[0;32mOK\e[0m" + fi + else + echo -e "\e[0;31mFAIL\e[0m\n" + echo "Curl is not installed!" + echo -e "" + exit 1 + fi + chmod +x "${filedir}/${filename}" +fi +source "${filedir}/${filename}" +} + +core_dl.sh(){ +# Functions are defined in core_functions.sh. +functionfile="${FUNCNAME}" +fn_fetch_core_dl +} + +core_functions.sh(){ +# Functions are defined in core_functions.sh. +functionfile="${FUNCNAME}" +fn_fetch_core_dl +} + +core_dl.sh +core_functions.sh + +getopt=$1 +core_getopt.sh \ No newline at end of file diff --git a/QuakeLive/qlserver b/QuakeLive/qlserver index f3e9e01ae..8eb822ad3 100755 --- a/QuakeLive/qlserver +++ b/QuakeLive/qlserver @@ -9,7 +9,7 @@ if [ -f ".dev-debug" ]; then set -x fi -version="160916" +version="211016" #### Variables #### diff --git a/RedOrchestra/roserver b/RedOrchestra/roserver index c168b403d..788c7cb7d 100644 --- a/RedOrchestra/roserver +++ b/RedOrchestra/roserver @@ -9,7 +9,7 @@ if [ -f ".dev-debug" ]; then set -x fi -version="210516" +version="211016" #### Variables #### diff --git a/Ricochet/ricochetserver b/Ricochet/ricochetserver index cce21777f..60a9a6b19 100644 --- a/Ricochet/ricochetserver +++ b/Ricochet/ricochetserver @@ -9,7 +9,7 @@ if [ -f ".dev-debug" ]; then set -x fi -version="210516" +version="211016" #### Variables #### diff --git a/Rust/rustserver b/Rust/rustserver index ec4cbcf47..19e3e4723 100644 --- a/Rust/rustserver +++ b/Rust/rustserver @@ -10,7 +10,7 @@ if [ -f ".dev-debug" ]; then set -x fi -version="160916" +version="211016" #### Variables #### diff --git a/SeriousSam3BFE/ss3sserver b/SeriousSam3BFE/ss3sserver index e72fc8af7..852c6a518 100644 --- a/SeriousSam3BFE/ss3sserver +++ b/SeriousSam3BFE/ss3sserver @@ -9,7 +9,7 @@ if [ -f ".dev-debug" ]; then set -x fi -version="160916" +version="211016" #### Variables #### diff --git a/Starbound/sbserver b/Starbound/sbserver index 412666137..cbe75f260 100644 --- a/Starbound/sbserver +++ b/Starbound/sbserver @@ -9,7 +9,7 @@ if [ -f ".dev-debug" ]; then set -x fi -version="160916" +version="211016" #### Variables #### diff --git a/SvenCoop/svenserver b/SvenCoop/svenserver index cd0183f8d..2e9257204 100644 --- a/SvenCoop/svenserver +++ b/SvenCoop/svenserver @@ -9,7 +9,7 @@ if [ -f ".dev-debug" ]; then set -x fi -version="160916" +version="211016" #### Variables #### diff --git a/TeamFortress2/tf2server b/TeamFortress2/tf2server index 9f668e6e9..5eb44c96f 100644 --- a/TeamFortress2/tf2server +++ b/TeamFortress2/tf2server @@ -9,7 +9,7 @@ if [ -f ".dev-debug" ]; then set -x fi -version="160916" +version="211016" #### Variables #### diff --git a/TeamFortressClassic/tfcserver b/TeamFortressClassic/tfcserver index 0358fb3a3..60b521a4f 100644 --- a/TeamFortressClassic/tfcserver +++ b/TeamFortressClassic/tfcserver @@ -9,7 +9,7 @@ if [ -f ".dev-debug" ]; then set -x fi -version="210516" +version="211016" #### Variables #### diff --git a/TeamSpeak3/ts3server b/TeamSpeak3/ts3server index 1ccb6dac5..5b7180515 100644 --- a/TeamSpeak3/ts3server +++ b/TeamSpeak3/ts3server @@ -9,7 +9,7 @@ if [ -f ".dev-debug" ]; then set -x fi -version="290716" +version="211016" #### Variables #### diff --git a/Teeworlds/twserver b/Teeworlds/twserver index ded4d5a65..7ad17233a 100644 --- a/Teeworlds/twserver +++ b/Teeworlds/twserver @@ -10,7 +10,7 @@ if [ -f ".dev-debug" ]; then set -x fi -version="210516" +version="211016" #### Variables #### diff --git a/Terraria/terrariaserver b/Terraria/terrariaserver index 39a52b54a..db4bba201 100644 --- a/Terraria/terrariaserver +++ b/Terraria/terrariaserver @@ -10,7 +10,7 @@ if [ -f ".dev-debug" ]; then set -x fi -version="210516" +version="211016" #### Variables #### diff --git a/UnrealTournament/utserver b/UnrealTournament/utserver index aaa9d69af..0b60ca9d6 100644 --- a/UnrealTournament/utserver +++ b/UnrealTournament/utserver @@ -9,7 +9,7 @@ if [ -f ".dev-debug" ]; then set -x fi -version="210516" +version="211016" #### Variables #### diff --git a/UnrealTournament2004/ut2k4server b/UnrealTournament2004/ut2k4server index 7f50fdb97..c841a2199 100644 --- a/UnrealTournament2004/ut2k4server +++ b/UnrealTournament2004/ut2k4server @@ -9,7 +9,7 @@ if [ -f ".dev-debug" ]; then set -x fi -version="210516" +version="211016" #### Variables #### diff --git a/UnrealTournament3/ut3server b/UnrealTournament3/ut3server index 85179800d..a094b0daa 100644 --- a/UnrealTournament3/ut3server +++ b/UnrealTournament3/ut3server @@ -9,7 +9,7 @@ if [ -f ".dev-debug" ]; then set -x fi -version="210516" +version="211016" #### Variables #### diff --git a/UnrealTournament99/ut99server b/UnrealTournament99/ut99server index fe9e1965f..8fa9f4bae 100644 --- a/UnrealTournament99/ut99server +++ b/UnrealTournament99/ut99server @@ -9,7 +9,7 @@ if [ -f ".dev-debug" ]; then set -x fi -version="210516" +version="211016" #### Variables #### diff --git a/WolfensteinEnemyTerritory/wetserver b/WolfensteinEnemyTerritory/wetserver index 087fd5561..54815accf 100644 --- a/WolfensteinEnemyTerritory/wetserver +++ b/WolfensteinEnemyTerritory/wetserver @@ -9,7 +9,7 @@ if [ -f ".dev-debug" ]; then set -x fi -version="210516" +version="211016" #### Variables #### diff --git a/appmanifest/appmanifest_10.acf b/appmanifest/appmanifest_10.acf deleted file mode 100644 index 9217b6129..000000000 --- a/appmanifest/appmanifest_10.acf +++ /dev/null @@ -1,22 +0,0 @@ -"AppState" -{ - "AppID" "10" - "Universe" "1" - "StateFlags" "1090" - "installdir" "Half-Life" - "LastUpdated" "0" - "UpdateResult" "0" - "SizeOnDisk" "0" - "buildid" "0" - "LastOwner" "0" - "BytesToDownload" "0" - "BytesDownloaded" "0" - "AutoUpdateBehavior" "0" - "AllowOtherDownloadsWhileRunning" "0" - "UserConfig" - { - } - "MountedDepots" - { - } -} diff --git a/appmanifest/appmanifest_70.acf b/appmanifest/appmanifest_70.acf deleted file mode 100644 index e5d6f2807..000000000 --- a/appmanifest/appmanifest_70.acf +++ /dev/null @@ -1,22 +0,0 @@ -"AppState" -{ - "AppID" "70" - "Universe" "1" - "StateFlags" "1090" - "installdir" "Half-Life" - "LastUpdated" "0" - "UpdateResult" "0" - "SizeOnDisk" "0" - "buildid" "0" - "LastOwner" "0" - "BytesToDownload" "0" - "BytesDownloaded" "0" - "AutoUpdateBehavior" "0" - "AllowOtherDownloadsWhileRunning" "0" - "UserConfig" - { - } - "MountedDepots" - { - } -} diff --git a/appmanifest/appmanifest_90.acf b/appmanifest/appmanifest_90.acf deleted file mode 100644 index 7de939d34..000000000 --- a/appmanifest/appmanifest_90.acf +++ /dev/null @@ -1,28 +0,0 @@ -"AppState" -{ - "AppID" "90" - "Universe" "1" - "StateFlags" "1026" - "installdir" "Half-Life" - "LastUpdated" "0" - "UpdateResult" "0" - "SizeOnDisk" "0" - "buildid" "0" - "LastOwner" "0" - "BytesToDownload" "0" - "BytesDownloaded" "0" - "AutoUpdateBehavior" "0" - "AllowOtherDownloadsWhileRunning" "0" - "UserConfig" - { - } - "MountedDepots" - { - } - "SharedDepots" - { - "1" "70" - "11" "10" - "71" "70" - } -} diff --git a/appmanifest/czero/appmanifest_90.acf b/appmanifest/czero/appmanifest_90.acf deleted file mode 100644 index 2373e5421..000000000 --- a/appmanifest/czero/appmanifest_90.acf +++ /dev/null @@ -1,31 +0,0 @@ -"AppState" -{ - "appid" "90" - "Universe" "1" - "StateFlags" "4" - "installdir" "Half-Life" - "LastUpdated" "1390662869" - "UpdateResult" "0" - "SizeOnDisk" "41586625" - "buildid" "63549" - "LastOwner" "76561199609699388" - "BytesToDownload" "224501136" - "BytesDownloaded" "224501136" - "AutoUpdateBehavior" "0" - "AllowOtherDownloadsWhileRunning" "0" - "UserConfig" - { - "mod" "czero" - } - "MountedDepots" - { - "4" "3196956435784640171" - } - "SharedDepots" - { - "1" "70" - "11" "10" - "71" "70" - "81" "80" - } -} diff --git a/appmanifest/dod/appmanifest_90.acf b/appmanifest/dod/appmanifest_90.acf deleted file mode 100644 index 704e4d1f0..000000000 --- a/appmanifest/dod/appmanifest_90.acf +++ /dev/null @@ -1,31 +0,0 @@ -"AppState" -{ - "AppID" "90" - "Universe" "1" - "StateFlags" "1030" - "installdir" "Half-Life" - "LastUpdated" "1390652241" - "UpdateResult" "0" - "SizeOnDisk" "41586625" - "buildid" "63549" - "LastOwner" "76561201453793332" - "BytesToDownload" "236411088" - "BytesDownloaded" "0" - "AutoUpdateBehavior" "0" - "AllowOtherDownloadsWhileRunning" "0" - "UserConfig" - { - "mod" "dod" - } - "MountedDepots" - { - "4" "3196956435784640171" - } - "SharedDepots" - { - "1" "70" - "11" "10" - "71" "70" - "31" "30" - } -} diff --git a/appmanifest/tfc/appmanifest_90.acf b/appmanifest/tfc/appmanifest_90.acf deleted file mode 100644 index aa3f4e2a9..000000000 --- a/appmanifest/tfc/appmanifest_90.acf +++ /dev/null @@ -1,31 +0,0 @@ -"AppState" -{ - "AppID" "90" - "Universe" "1" - "StateFlags" "4" - "installdir" "Half-Life" - "LastUpdated" "1390765182" - "UpdateResult" "0" - "SizeOnDisk" "41586625" - "buildid" "63549" - "LastOwner" "76561198445953036" - "BytesToDownload" "62362560" - "BytesDownloaded" "0" - "AutoUpdateBehavior" "0" - "AllowOtherDownloadsWhileRunning" "0" - "UserConfig" - { - "mod" "tfc" - } - "MountedDepots" - { - "4" "3196956435784640171" - } - "SharedDepots" - { - "1" "70" - "11" "10" - "71" "70" - "21" "20" - } -} diff --git a/functions/command_update_functions.sh b/functions/command_update_functions.sh deleted file mode 100644 index 0c35eb1f0..000000000 --- a/functions/command_update_functions.sh +++ /dev/null @@ -1,38 +0,0 @@ -#!/bin/bash -# LGSM command_update_functions.sh function -# Author: Daniel Gibbs -# Website: https://gameservermanagers.com -lgsm_version="210516" - -# Description: Deletes the functions dir to allow re-downloading of functions from GitHub. - -local function_selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))" -check.sh -fn_print_dots "Updating functions" -fn_script_log "Updating functions" -sleep 1 -echo -ne "\n" - -# Removed legecy functions dir -if [ -n "${rootdir}" ]; then - if [ -d "${rootdir}/functions/" ]; then - rm -rfv "${rootdir}/functions/" - exitcode=$? - fi -fi - -if [ -n "${functionsdir}" ]; then - if [ -d "${functionsdir}" ]; then - rm -rfv "${functionsdir}/"* - exitcode=$? - fi -fi - -if [ "${exitcode}" == "0" ]; then - fn_print_ok "Updating functions" - fn_script_log "Success! Updating functions" -else - fn_print_fail "Updating functions" - fn_script_log "Failure! Updating functions" -fi -echo -ne "\n" \ No newline at end of file diff --git a/functions/core_functions.sh b/functions/core_functions.sh deleted file mode 100644 index 287a50897..000000000 --- a/functions/core_functions.sh +++ /dev/null @@ -1,72 +0,0 @@ -#!/bin/bash -# LGSM core_functions.sh function -# Author: Daniel Gibbs -# Website: https://gameservermanagers.com -lgsm_version="210516" - -# Description: REDIRECT FUNCTION to new location for core_functions.sh - -# fn_fetch_core_dl also placed here to allow legecy servers to still download core functions -if [ -z "${lgsmdir}" ]; then - lgsmdir="${rootdir}/lgsm" - functionsdir="${lgsmdir}/functions" - libdir="${lgsmdir}/lib" -fi - -fn_fetch_core_dl(){ -if [ -z "${githubuser}" ]; then - githubuser="GameServerManagers" -fi -if [ -z "${githubrepo}" ]; then - githubrepo="LinuxGSM" -fi -if [ -z "${githubbranch}" ]; then - githubbranch="master" -fi -github_file_url_dir="lgsm/functions" -github_file_url_name="${functionfile}" -filedir="${functionsdir}" -filename="${github_file_url_name}" -githuburl="https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/${github_file_url_dir}/${github_file_url_name}" -# If the file is missing, then download -if [ ! -f "${filedir}/${filename}" ]; then - if [ ! -d "${filedir}" ]; then - mkdir -p "${filedir}" - fi - echo -e " fetching ${filename}...\c" - # Check curl exists and use available path - curlpaths="$(command -v curl 2>/dev/null) $(which curl >/dev/null 2>&1) /usr/bin/curl /bin/curl /usr/sbin/curl /sbin/curl)" - for curlcmd in ${curlpaths} - do - if [ -x "${curlcmd}" ]; then - break - fi - done - # If curl exists download file - if [ "$(basename ${curlcmd})" == "curl" ]; then - curlfetch=$(${curlcmd} -s --fail -o "${filedir}/${filename}" "${githuburl}" 2>&1) - if [ $? -ne 0 ]; then - echo -e "${red}FAIL${default}\n" - echo "${curlfetch}" - echo -e "${githuburl}\n" - exit 1 - else - echo -e "${green}OK${default}" - fi - else - echo -e "${red}FAIL${default}\n" - echo "Curl is not installed!" - echo -e "" - exit 1 - fi - chmod +x "${filedir}/${filename}" -fi -source "${filedir}/${filename}" -} - -core_functions.sh(){ -functionfile="${FUNCNAME}" -fn_fetch_core_dl -} - -core_functions.sh diff --git a/functions/core_getopt.sh b/functions/core_getopt.sh deleted file mode 100644 index f6032fae6..000000000 --- a/functions/core_getopt.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/bash -# LGSM core_getopt.sh function -# Author: Daniel Gibbs -# Website: https://gameservermanagers.com -lgsm_version="210516" - -# Description: REDIRECT FUNCTION to new location for core_getopt.sh - -core_getopt.sh(){ -functionfile="${FUNCNAME}" -fn_fetch_core_dl -} - -core_getopt.sh \ No newline at end of file diff --git a/functions/fn_functions b/functions/fn_functions deleted file mode 100644 index 2ae012923..000000000 --- a/functions/fn_functions +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/bash -# LGSM fn_functions function -# Author: Daniel Gibbs -# Website: https://gameservermanagers.com -lgsm_version="210516" - -# Description: REDIRECT FUNCTION to new core_functions.sh - -core_functions.sh(){ -# Functions are defined in core_functions.sh. -functionfile="${FUNCNAME}" -fn_runfunction -} - -core_functions.sh \ No newline at end of file diff --git a/functions/fn_getopt b/functions/fn_getopt deleted file mode 100644 index 0b0e3713d..000000000 --- a/functions/fn_getopt +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/bash -# LGSM fn_getopt.sh function -# Author: Daniel Gibbs -# Website: https://gameservermanagers.com -lgsm_version="210516" - -# Description: REDIRECT FUNCTION to new core_getopt.sh - -core_getopt.sh(){ -functionfile="${FUNCNAME}" -fn_fetch_core_dl -} - -core_getopt.sh \ No newline at end of file diff --git a/functions/fn_update_functions b/functions/fn_update_functions deleted file mode 100644 index 5513d5d20..000000000 --- a/functions/fn_update_functions +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/bash -# LGSM fn_update_functions function -# Author: Daniel Gibbs -# Website: https://gameservermanagers.com -lgsm_version="210516" - -# Description: REDIRECT FUNCTION to new command_update_functions.sh - -command_update_functions.sh(){ -functionfile="${FUNCNAME}" -fn_runfunction -} - -command_update_functions.sh - diff --git a/functions/update_functions.sh b/functions/update_functions.sh deleted file mode 100644 index 5513d5d20..000000000 --- a/functions/update_functions.sh +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/bash -# LGSM fn_update_functions function -# Author: Daniel Gibbs -# Website: https://gameservermanagers.com -lgsm_version="210516" - -# Description: REDIRECT FUNCTION to new command_update_functions.sh - -command_update_functions.sh(){ -functionfile="${FUNCNAME}" -fn_runfunction -} - -command_update_functions.sh - diff --git a/lgsm/functions/check_system_requirements.sh b/lgsm/functions/check_system_requirements.sh index a46c3d0e3..3040a8406 100644 --- a/lgsm/functions/check_system_requirements.sh +++ b/lgsm/functions/check_system_requirements.sh @@ -14,14 +14,13 @@ info_distro.sh if [ "${gamename}" == "Rust" ]; then ramrequirementmb="4000" ramrequirementgb="4" -fi - -if [ "${gamename}" == "ARMA 3" ]; then +elif [ "${gamename}" == "ARMA 3" ]; then ramrequirementmb="1000" ramrequirementgb="1" -fi - -if [ "${gamename}" == "Minecraft" ]; then +elif [ "${gamename}" == "Minecraft" ]; then + ramrequirementmb="1000" + ramrequirementgb="1" +elif [ "${gamename}" == "Natural Selection 2" ]||[ "${gamename}" == "NS2: Combat" ]; then ramrequirementmb="1000" ramrequirementgb="1" fi diff --git a/lgsm/functions/command_details.sh b/lgsm/functions/command_details.sh index 2ae4632f0..af30b9a27 100644 --- a/lgsm/functions/command_details.sh +++ b/lgsm/functions/command_details.sh @@ -227,6 +227,8 @@ fn_details_script(){ if [ -n "${servercfgfullpath}" ]; then if [ -f "${servercfgfullpath}" ]; then echo -e "${blue}Config file:\t${default}${servercfgfullpath}" + elif [ -d "${servercfgfullpath}" ]; then + echo -e "${blue}Config dir:\t${default}${servercfgfullpath}" else echo -e "${blue}Config file:\t${default}${red}${servercfgfullpath}${default} (${red}FILE MISSING${default})" fi @@ -290,7 +292,7 @@ fn_details_ports(){ parmslocation="${red}UNKNOWN${default}" # engines that require editing in the config file - local ports_edit_array=( "avalanche" "dontstarve" "idtech3" "lwjgl2" "projectzomboid" "idtech3_ql" "refractor" "realvirtuality" "seriousengine35" "teeworlds" "terraria" "unreal" "unreal2" "unreal3" "TeamSpeak 3" "Mumble" "7 Days To Die" ) + local ports_edit_array=( "avalanche" "dontstarve" "idtech2" "idtech3" "lwjgl2" "projectzomboid" "idtech3_ql" "refractor" "realvirtuality" "seriousengine35" "teeworlds" "terraria" "unreal" "unreal2" "unreal3" "TeamSpeak 3" "Mumble" "7 Days To Die" ) for port_edit in "${ports_edit_array[@]}" do if [ "${engine}" == "${port_edit}" ]||[ "${gamename}" == "${port_edit}" ]; then @@ -384,6 +386,24 @@ fn_details_refractor(){ } | column -s $'\t' -t } +fn_details_quake2(){ + echo -e "netstat -atunp | grep quake2" + echo -e "" + { + echo -e "DESCRIPTION\tDIRECTION\tPORT\tPROTOCOL" + echo -e "> Game\tINBOUND\t${port}\tudp" + } | column -s $'\t' -t +} + +fn_details_quake3(){ + echo -e "netstat -atunp | grep q3ded" + echo -e "" + { + echo -e "DESCRIPTION\tDIRECTION\tPORT\tPROTOCOL" + echo -e "> Game\tINBOUND\t${port}\tudp" + } | column -s $'\t' -t +} + fn_details_quakelive(){ echo -e "netstat -atunp | grep qzeroded" echo -e "" @@ -426,7 +446,7 @@ fn_details_source(){ echo -e "DESCRIPTION\tDIRECTION\tPORT\tPROTOCOL" echo -e "> Game/RCON\tINBOUND\t${port}\ttcp/udp" if [ -n "${sourcetvport}" ]; then - echo -e "> SourceTV\tINBOUND\t${sourcetvport}\tudp" + echo -e "> SourceTV\tINBOUND\t${sourcetvport}\tudp" fi echo -e "< Client\tOUTBOUND\t${clientport}\tudp" } | column -s $'\t' -t @@ -663,6 +683,10 @@ fn_display_details() { fn_details_ark elif [ "${gamename}" == "Hurtworld" ]; then fn_details_hurtworld + elif [ "${gamename}" == "Quake 2" ]; then + fn_details_quake2 + elif [ "${gamename}" == "Quake 3: Arena" ]; then + fn_details_quake3 elif [ "${gamename}" == "Quake Live" ]; then fn_details_quakelive elif [ "${gamename}" == "TeamSpeak 3" ]; then diff --git a/lgsm/functions/command_install.sh b/lgsm/functions/command_install.sh index 5b741a126..4eae90e17 100644 --- a/lgsm/functions/command_install.sh +++ b/lgsm/functions/command_install.sh @@ -18,7 +18,7 @@ check_deps.sh if [ "${gamename}" == "Unreal Tournament 2004" ]; then install_server_files.sh install_ut2k4_key.sh -elif [ "${gamename}" == "Unreal Tournament 3" ]||[ "${gamename}" == "Battlefield: 1942" ]||[ "${gamename}" == "Wolfenstein: Enemy Territory" ]||[ "${gamename}" == "Unreal Tournament 99" ]||[ "${gamename}" == "Unreal Tournament" ]||[ "${gamename}" == "TeamSpeak 3" ]||[ "${gamename}" == "Minecraft" ]||[ "${gamename}" == "Mumble" ]; then +elif [ "${gamename}" == "Battlefield: 1942" ]||[ "${gamename}" == "Minecraft" ]||[ "${gamename}" == "Quake 2" ]||[ "${gamename}" == "Quake 3: Arena" ]||[ "${gamename}" == "Unreal Tournament 99" ]||[ "${gamename}" == "Unreal Tournament 3" ]||[ "${gamename}" == "Unreal Tournament" ]||[ "${gamename}" == "TeamSpeak 3" ]||[ "${gamename}" == "Mumble" ]||[ "${gamename}" == "Wolfenstein: Enemy Territory" ]; then installer=1 install_server_files.sh elif [ -n "${appid}" ]; then diff --git a/lgsm/functions/core_getopt.sh b/lgsm/functions/core_getopt.sh index 217650dbc..da5a0d710 100644 --- a/lgsm/functions/core_getopt.sh +++ b/lgsm/functions/core_getopt.sh @@ -622,7 +622,7 @@ case "${getopt}" in if [ "${gamename}" == "Mumble" ]; then fn_getopt_mumble -elif [ "${gamename}" == "Battlefield: 1942" ]|| [ "${gamename}" == "Wolfenstein: Enemy Territory" ]; then +elif [ "${gamename}" == "Battlefield: 1942" ]||[ "${gamename}" == "Quake 3: Arena" ]||[ "${gamename}" == "Wolfenstein: Enemy Territory" ]; then fn_getopt_generic_no_update elif [ "${engine}" == "lwjgl2" ]; then fn_getopt_minecraft diff --git a/lgsm/functions/fn_functions b/lgsm/functions/fn_functions index 0d024beb1..758af3dbc 100644 --- a/lgsm/functions/fn_functions +++ b/lgsm/functions/fn_functions @@ -2,7 +2,7 @@ # LGSM fn_functions function # Author: Daniel Gibbs # Website: https://gameservermanagers.com -lgsm_version="210516" +lgsm_version="211016" # Description: Redirects to new core_functions.sh diff --git a/lgsm/functions/fn_getopt b/lgsm/functions/fn_getopt index cec7b51b4..0302cf1d5 100644 --- a/lgsm/functions/fn_getopt +++ b/lgsm/functions/fn_getopt @@ -2,7 +2,7 @@ # LGSM fn_getopt function # Author: Daniel Gibbs # Website: https://gameservermanagers.com -lgsm_version="210516" +lgsm_version="211016" # Description: Redirect to new core_getopt.sh diff --git a/lgsm/functions/fn_update_functions b/lgsm/functions/fn_update_functions index 7c3be31e6..a424d3352 100644 --- a/lgsm/functions/fn_update_functions +++ b/lgsm/functions/fn_update_functions @@ -2,7 +2,7 @@ # LGSM fn_update_functions function # Author: Daniel Gibbs # Website: https://gameservermanagers.com -lgsm_version="210516" +lgsm_version="211016" # Description: LEGACY FUNCTION Deletes the functions dir to allow re-downloading of functions from GitHub. diff --git a/lgsm/functions/gsquery.py b/lgsm/functions/gsquery.py index 53df875b1..a242c89bb 100644 --- a/lgsm/functions/gsquery.py +++ b/lgsm/functions/gsquery.py @@ -22,6 +22,8 @@ class GameServer: self.query_prompt_string = b'\xFE\xFD\x09\x10\x20\x30\x40' elif self.option.engine == 'goldsource': self.query_prompt_string = b'\xFF\xFF\xFF\xFFTSource Engine Query\0' + elif self.option.engine == 'idtech2': + self.query_prompt_string = b'\xff\xff\xff\xffstatus\x00' elif self.option.engine == 'idtech3': self.query_prompt_string = b'\xff\xff\xff\xffgetstatus' elif self.option.engine == 'quakelive': @@ -109,7 +111,7 @@ if __name__ == '__main__': action='store', dest='engine', default=False, - help='Engine type: avalanche, goldsource, idtech3, realvirtuality, quakelive, refractor, spark, source, unity3d, unreal, unreal2.' + help='Engine type: avalanche, goldsource, idtech2, idtech3, idtech3_ql, realvirtuality, quakelive, refractor, spark, source, unity3d, unreal, unreal2.' ) parser.add_option( '-v', '--verbose', diff --git a/lgsm/functions/info_config.sh b/lgsm/functions/info_config.sh index d5f283404..7982ebd69 100644 --- a/lgsm/functions/info_config.sh +++ b/lgsm/functions/info_config.sh @@ -154,6 +154,44 @@ fn_info_config_projectzomboid(){ fi } +fn_info_config_quake2(){ + if [ ! -f "${servercfgfullpath}" ]; then + rconpassword="${unavailable}" + servername="${unavailable}" + serverpassword="${unavailable}" + slots="${zero}" + else + rconpassword=$(grep "rcon_password" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/set rcon_password//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//') + servername=$(grep "hostname" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/set hostname//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//') + slots=$(grep "maxclients" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]') + + # Not Set + rconpassword=${rconpassword:-"NOT SET"} + servername=${servername:-"NOT SET"} + slots=${slots:-"0"} + fi +} + +fn_info_config_quake3(){ + if [ ! -f "${servercfgfullpath}" ]; then + rconpassword="${unavailable}" + servername="${unavailable}" + serverpassword="${unavailable}" + slots="${zero}" + else + rconpassword=$(grep "zmq_rcon_password" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/set zmq_rcon_password//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//') + servername=$(grep "sv_hostname" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/set sv_hostname//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//') + serverpassword=$(grep "rconpassword" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/set rconpassword//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//') + slots=$(grep "sv_maxclients" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]') + + # Not Set + rconpassword=${rconpassword:-"NOT SET"} + servername=${servername:-"NOT SET"} + serverpassword=${serverpassword:-"NOT SET"} + slots=${slots:-"0"} + fi +} + fn_info_config_quakelive(){ if [ ! -f "${servercfgfullpath}" ]; then rconpassword="${unavailable}" @@ -475,6 +513,12 @@ elif [ "${gamename}" == "Battlefield: 1942" ]; then # Dont Starve Together elif [ "${engine}" == "dontstarve" ]; then fn_info_config_dontstarve +# Quake 2 +elif [ "${gamename}" == "Quake 2" ]; then + fn_info_config_quake2 +# Quake 3 +elif [ "${gamename}" == "Quake 3: Arena" ]; then + fn_info_config_quake3 # Quake Live elif [ "${gamename}" == "Quake Live" ]; then fn_info_config_quakelive diff --git a/lgsm/functions/info_glibc.sh b/lgsm/functions/info_glibc.sh index 655402584..f7f333d63 100644 --- a/lgsm/functions/info_glibc.sh +++ b/lgsm/functions/info_glibc.sh @@ -41,6 +41,12 @@ elif [ "${gamename}" == "Mumble" ]; then elif [ "${gamename}" == "No More Room in Hell" ]; then glibcrequired="2.15" glibcfix="yes" +elif [ "${gamename}" == "Quake 2" ]; then + glibcrequired="2.0" + glibcfix="no" +elif [ "${gamename}" == "Quake 3: Arena" ]; then + glibcrequired="2.1" + glibcfix="no" elif [ "${gamename}" == "Quake Live" ]; then glibcrequired="2.15" glibcfix="no" @@ -101,7 +107,6 @@ elif [ "${gamename}" == "TeamSpeak 3" ]; then elif [ "${gamename}" == "Mumble" ]; then glibcrequired="NOT REQUIRED" glibcfix="no" - elif [ "${engine}" == "refractor" ]; then glibcrequired="2.0" glibcfix="no" diff --git a/lgsm/functions/info_parms.sh b/lgsm/functions/info_parms.sh index 7be827c7b..7cfdd8b8b 100644 --- a/lgsm/functions/info_parms.sh +++ b/lgsm/functions/info_parms.sh @@ -26,17 +26,6 @@ fn_info_config_quakelive(){ rconpassword=${rconpassword:-"NOT SET"} } -fn_info_config_realvirtuality(){ - port=$(grep "^serverport=" "${servercfgfullpath}" | tr -cd '[:digit:]') - queryport=$(grep "^steamqueryport=" "${servercfgfullpath}" | tr -cd '[:digit:]') - masterport=$(grep "^steamport=" "${servercfgfullpath}" | tr -cd '[:digit:]') - - # Not Set - port=${port:-"2302"} - queryport=${queryport:-"2303"} - masterport=${masterport:-"2304"} -} - fn_info_config_source(){ defaultmap=${defaultmap:-"NOT SET"} maxplayers=${maxplayers:-"0"} @@ -44,6 +33,16 @@ fn_info_config_source(){ clientport=${clientport:-"0"} } +fn_info_config_spark(){ + # Not Set + port=${port:-"0"} + queryport=$((port + 1)) + maxplayers=${maxplayers:-"0"} + webadminuser=${webadminuser:-"NOT SET"} + webadminpass=${webadminpass:-"NOT SET"} + webadminport=${webadminport:-"0"} +} + fn_info_config_teeworlds(){ if [ ! -f "${servercfgfullpath}" ]; then servername="unnamed server" @@ -139,6 +138,9 @@ elif [ "${engine}" == "seriousengine35" ]; then # Source Engine Games elif [ "${engine}" == "source" ]||[ "${engine}" == "goldsource" ]; then fn_info_config_source +# Spark +elif [ "${engine}" == "spark" ]; then + fn_info_config_spark # Teeworlds elif [ "${engine}" == "teeworlds" ]; then fn_info_config_teeworlds diff --git a/lgsm/functions/install_config.sh b/lgsm/functions/install_config.sh index a94183499..eebf3e7c0 100644 --- a/lgsm/functions/install_config.sh +++ b/lgsm/functions/install_config.sh @@ -290,6 +290,18 @@ elif [ "${gamename}" == "Project Zomboid" ]; then fn_fetch_default_config fn_default_config_remote fn_set_config_vars +elif [ "${gamename}" == "Quake 2" ]; then + gamedirname="Quake2" + array_configs+=( server.cfg ) + fn_fetch_default_config + fn_default_config_remote + fn_set_config_vars +elif [ "${gamename}" == "Quake 3: Arena" ]; then + gamedirname="Quake3Arena" + array_configs+=( server.cfg ) + fn_fetch_default_config + fn_default_config_remote + fn_set_config_vars elif [ "${gamename}" == "Quake Live" ]; then gamedirname="QuakeLive" array_configs+=( server.cfg ) diff --git a/lgsm/functions/install_server_files.sh b/lgsm/functions/install_server_files.sh index e2778ae64..43e8f2567 100644 --- a/lgsm/functions/install_server_files.sh +++ b/lgsm/functions/install_server_files.sh @@ -23,6 +23,10 @@ fn_install_server_files(){ fileurl="http://files.gameservermanagers.com/UnrealTournament/UnrealTournament-Server-XAN-3045522-Linux.zip"; filedir="${tmpdir}"; filename="UnrealTournament-Server-XAN-3045522-Linux.zip"; executecmd="noexecute" run="norun"; force="noforce"; md5="553fed5645a9fc623e92563049bf79f6" elif [ "${gamename}" == "GoldenEye: Source" ]; then fileurl="http://files.gameservermanagers.com/GoldenEyeSource/GoldenEye_Source_v5.0.1_full_server_linux.tar.bz2"; filedir="${tmpdir}"; filename="GoldenEye_Source_v5.0.1_server_full_Linux.tar.bz2"; executecmd="noexecute" run="norun"; force="noforce"; md5="ea227a150300abe346e757380325f84c" + elif [ "${gamename}" == "Quake 2" ]; then + fileurl="http://files.gameservermanagers.com/Quake2/quake2-3.20-glibc-i386-full-linux2.0.tar.bz2"; filedir="${lgsmdir}/tmp"; filename="quake2-3.20-glibc-i386-full-linux2.0.tar.bz2"; executecmd="noexecute" run="norun"; force="noforce"; md5="0b8c7e2d51f40b56b328c69e986e7c5f" + elif [ "${gamename}" == "Quake 3: Arena" ]; then + fileurl="http://files.gameservermanagers.com/Quake3/quake3-1.32c-x86-full-linux.tar.bz2"; filedir="${lgsmdir}/tmp"; filename="quake3-1.32c-x86-full-linux.tar.bz2"; executecmd="noexecute" run="norun"; force="noforce"; md5="fd7258d827474f67663dda297bff4306" fi fn_fetch_file "${fileurl}" "${filedir}" "${filename}" "${executecmd}" "${run}" "${force}" "${md5}" fn_dl_extract "${filedir}" "${filename}" "${filesdir}"