From e037977b7cc8a44094b2b8fa9f542586cd0a35dd Mon Sep 17 00:00:00 2001 From: Alexander Hurd Date: Wed, 31 Aug 2016 02:17:59 -0400 Subject: [PATCH 01/13] adding Quake 3: Team Arena --- Quake3/cfg/lgsm-default.cfg | 36 +++++++ Quake3/q3server | 143 +++++++++++++++++++++++++ lgsm/functions/command_install.sh | 2 +- lgsm/functions/install_config.sh | 6 ++ lgsm/functions/install_server_files.sh | 2 + 5 files changed, 188 insertions(+), 1 deletion(-) create mode 100644 Quake3/cfg/lgsm-default.cfg create mode 100644 Quake3/q3server diff --git a/Quake3/cfg/lgsm-default.cfg b/Quake3/cfg/lgsm-default.cfg new file mode 100644 index 000000000..fddb8347e --- /dev/null +++ b/Quake3/cfg/lgsm-default.cfg @@ -0,0 +1,36 @@ +set sv_hostname "" +set sv_maxclients 10 +set g_motd "LGSM Quake3 Server" +set g_forcerespawn 15 +set rconpassword "" +set g_gametype 1 +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..d247fa69b --- /dev/null +++ b/Quake3/q3server @@ -0,0 +1,143 @@ +#!/bin/bash +# Quake 3: Team 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 +ip="0.0.0.0" +port="27960" + +fn_parms(){ +parms="+set sv_punkbuster 1 +set fs_basepath ${filesdir} +set dedicated 1 +set com_hunkMegs 32 +set net_ip ${ip} +set net_port ${port} +exec ${servercfg}" +} + +#### 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: Team 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" +filesdir="${rootdir}/serverfiles" +systemdir="${filesdir}/baseq3" +executabledir="${filesdir}" +executable="./q3ded" +servercfg="${servicename}.cfg" +servercfgdir="${systemdir}" +servercfgfullpath="${servercfgdir}/${servercfg}" +servercfgdefault="${servercfgdir}/lgsm-default.cfg" +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/lgsm/functions/command_install.sh b/lgsm/functions/command_install.sh index bcfe36fd2..32ef1a4e6 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}" == "Enemy Territory" ]||[ "${gamename}" == "Unreal Tournament 99" ]||[ "${gamename}" == "Unreal Tournament" ]||[ "${gamename}" == "TeamSpeak 3" ]||[ "${gamename}" == "Minecraft" ]||[ "${gamename}" == "Mumble" ]; then +elif [ "${gamename}" == "Quake 3: Team Arena" ]||[ "${gamename}" == "Unreal Tournament 3" ]||[ "${gamename}" == "Battlefield: 1942" ]||[ "${gamename}" == "Enemy Territory" ]||[ "${gamename}" == "Unreal Tournament 99" ]||[ "${gamename}" == "Unreal Tournament" ]||[ "${gamename}" == "TeamSpeak 3" ]||[ "${gamename}" == "Minecraft" ]||[ "${gamename}" == "Mumble" ]; then installer=1 install_server_files.sh elif [ -n "${appid}" ]; then diff --git a/lgsm/functions/install_config.sh b/lgsm/functions/install_config.sh index 5a856f8e6..3e712e30a 100644 --- a/lgsm/functions/install_config.sh +++ b/lgsm/functions/install_config.sh @@ -383,6 +383,12 @@ elif [ "${gamename}" == "Project Zomboid" ]; then wget -N /dev/null ${githuburl}/ProjectZomboid/cfg/lgsm-default.ini 2>&1 | grep -F HTTP | cut -c45- | uniq sleep 1 fn_defaultconfig +elif [ "${gamename}" == "Quake 3: Team Arena" ]; then + echo -e "downloading lgsm-default.cfg...\c" + wget -N /dev/null ${githuburl}/Quake3/cfg/lgsm-default.cfg 2>&1 | grep -F HTTP | cut -c45- | uniq + sleep 1 + fn_defaultconfig + fn_userinputconfig elif [ "${gamename}" == "Quake Live" ]; then echo -e "downloading lgsm-default.cfg...\c" wget -N /dev/null ${githuburl}/QuakeLive/cfg/lgsm-default.cfg 2>&1 | grep -F HTTP | cut -c45- | uniq diff --git a/lgsm/functions/install_server_files.sh b/lgsm/functions/install_server_files.sh index 78057b680..38dc70b5a 100644 --- a/lgsm/functions/install_server_files.sh +++ b/lgsm/functions/install_server_files.sh @@ -23,6 +23,8 @@ fn_install_server_files(){ fileurl="http://files.gameservermanagers.com/UnrealTournament/UnrealTournament-Server-XAN-3045522-Linux.zip"; filedir="${lgsmdir}/tmp"; 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="${lgsmdir}/tmp"; filename="GoldenEye_Source_v5.0.1_server_full_Linux.tar.bz2"; executecmd="noexecute" run="norun"; force="noforce"; md5="254533d4643ad2fe6f1f3ecc4f6b5e5f" + elif [ "${gamename}" == "Quake 3: Team Arena" ]; then + fileurl="https://s3.amazonaws.com/linuxgsm/quake3-1.32b-x86-full-linux.tar.bz2"; filedir="${lgsmdir}/tmp"; filename="quake3-1.32b-x86-full-linux.tar.bz2"; executecmd="noexecute" run="norun"; force="noforce"; md5="8fe61809ade4f9cce24e520043afe91b" fi fn_fetch_file "${fileurl}" "${filedir}" "${filename}" "${executecmd}" "${run}" "${force}" "${md5}" fn_dl_extract "${filedir}" "${filename}" "${filesdir}" From 3781817d46236cf1e422e31201ff524a3ca2a89b Mon Sep 17 00:00:00 2001 From: Alexander Hurd Date: Wed, 31 Aug 2016 02:50:42 -0400 Subject: [PATCH 02/13] update --- Quake3/cfg/lgsm-default.cfg | 4 ++-- Quake3/q3server | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/Quake3/cfg/lgsm-default.cfg b/Quake3/cfg/lgsm-default.cfg index fddb8347e..b392ecad2 100644 --- a/Quake3/cfg/lgsm-default.cfg +++ b/Quake3/cfg/lgsm-default.cfg @@ -1,9 +1,9 @@ set sv_hostname "" -set sv_maxclients 10 +set sv_maxclients 16 set g_motd "LGSM Quake3 Server" set g_forcerespawn 15 set rconpassword "" -set g_gametype 1 +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 diff --git a/Quake3/q3server b/Quake3/q3server index d247fa69b..4e722b08e 100644 --- a/Quake3/q3server +++ b/Quake3/q3server @@ -26,11 +26,12 @@ pushbulletalert="off" pushbullettoken="accesstoken" # Start Variables +defaultmap="q3dm17" ip="0.0.0.0" port="27960" fn_parms(){ -parms="+set sv_punkbuster 1 +set fs_basepath ${filesdir} +set dedicated 1 +set com_hunkMegs 32 +set net_ip ${ip} +set net_port ${port} +exec ${servercfg}" +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 #### From f4ca76dfe086b4240aefd66bc49f60afc5d1e4eb Mon Sep 17 00:00:00 2001 From: Alexander Hurd Date: Wed, 31 Aug 2016 03:07:56 -0400 Subject: [PATCH 03/13] config fix --- Quake3/cfg/lgsm-default.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Quake3/cfg/lgsm-default.cfg b/Quake3/cfg/lgsm-default.cfg index b392ecad2..caccea760 100644 --- a/Quake3/cfg/lgsm-default.cfg +++ b/Quake3/cfg/lgsm-default.cfg @@ -3,7 +3,7 @@ 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 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 From bde812f8baa459525e5988fd7af0a157436c2f1e Mon Sep 17 00:00:00 2001 From: Daniel Gibbs Date: Thu, 20 Oct 2016 21:45:00 +0100 Subject: [PATCH 04/13] Renamed to Quake 3 --- Quake3/q3server | 4 ++-- lgsm/functions/command_install.sh | 2 +- lgsm/functions/install_server_files.sh | 8 ++------ 3 files changed, 5 insertions(+), 9 deletions(-) diff --git a/Quake3/q3server b/Quake3/q3server index 4e722b08e..5e4b69c28 100644 --- a/Quake3/q3server +++ b/Quake3/q3server @@ -1,5 +1,5 @@ #!/bin/bash -# Quake 3: Team Arena +# Quake 3 # Server Management Script # Author: Daniel Gibbs # Website: https://gameservermanagers.com @@ -45,7 +45,7 @@ githubbranch="master" # Server Details servicename="quake3-server" -gamename="Quake 3: Team Arena" +gamename="Quake 3" engine="idtech3" # Directories diff --git a/lgsm/functions/command_install.sh b/lgsm/functions/command_install.sh index 23a20defd..99f8d696f 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}" == "Battlefield: 1942" ]||[ "${gamename}" == "Minecraft" ]||[ "${gamename}" == "Quake 3: Team Arena" ]||[ "${gamename}" == "Unreal Tournament 99" ]||[ "${gamename}" == "Unreal Tournament 3" ]||[ "${gamename}" == "Unreal Tournament" ]||[ "${gamename}" == "TeamSpeak 3" ]||[ "${gamename}" == "Mumble" ]||[ "${gamename}" == "Wolfenstein: Enemy Territory" ]; then +elif [ "${gamename}" == "Battlefield: 1942" ]||[ "${gamename}" == "Minecraft" ]||[ "${gamename}" == "Quake 3" ]||[ "${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/install_server_files.sh b/lgsm/functions/install_server_files.sh index d4bc66d12..1a23ef6e5 100644 --- a/lgsm/functions/install_server_files.sh +++ b/lgsm/functions/install_server_files.sh @@ -22,13 +22,9 @@ fn_install_server_files(){ elif [ "${gamename}" == "Unreal Tournament" ]; then 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 -<<<<<<< HEAD - fileurl="http://files.gameservermanagers.com/GoldenEyeSource/GoldenEye_Source_v5.0.1_full_server_linux.tar.bz2"; filedir="${lgsmdir}/tmp"; filename="GoldenEye_Source_v5.0.1_server_full_Linux.tar.bz2"; executecmd="noexecute" run="norun"; force="noforce"; md5="254533d4643ad2fe6f1f3ecc4f6b5e5f" - elif [ "${gamename}" == "Quake 3: Team Arena" ]; then - fileurl="https://s3.amazonaws.com/linuxgsm/quake3-1.32b-x86-full-linux.tar.bz2"; filedir="${lgsmdir}/tmp"; filename="quake3-1.32b-x86-full-linux.tar.bz2"; executecmd="noexecute" run="norun"; force="noforce"; md5="8fe61809ade4f9cce24e520043afe91b" -======= 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" ->>>>>>> refs/remotes/origin/master + elif [ "${gamename}" == "Quake 3" ]; then + fileurl="http://files.gameservermanagers.com/Quake3/quake3-1.32b-x86-full-linux.tar.bz2"; filedir="${lgsmdir}/tmp"; filename="quake3-1.32b-x86-full-linux.tar.bz2"; executecmd="noexecute" run="norun"; force="noforce"; md5="8fe61809ade4f9cce24e520043afe91b" fi fn_fetch_file "${fileurl}" "${filedir}" "${filename}" "${executecmd}" "${run}" "${force}" "${md5}" fn_dl_extract "${filedir}" "${filename}" "${filesdir}" From 64643b3dd6e0e3da70fa730c008acf1867b2876b Mon Sep 17 00:00:00 2001 From: Daniel Gibbs Date: Thu, 20 Oct 2016 22:02:49 +0100 Subject: [PATCH 05/13] Glibc version for Quake 3 --- lgsm/functions/info_glibc.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lgsm/functions/info_glibc.sh b/lgsm/functions/info_glibc.sh index 655402584..b61fe21d8 100644 --- a/lgsm/functions/info_glibc.sh +++ b/lgsm/functions/info_glibc.sh @@ -41,6 +41,9 @@ elif [ "${gamename}" == "Mumble" ]; then elif [ "${gamename}" == "No More Room in Hell" ]; then glibcrequired="2.15" glibcfix="yes" +elif [ "${gamename}" == "Quake 3" ]; then + glibcrequired="2.1" + glibcfix="no" elif [ "${gamename}" == "Quake Live" ]; then glibcrequired="2.15" glibcfix="no" From a4dcf379ee0e3764d072dce1eff1fdf8f50b3d38 Mon Sep 17 00:00:00 2001 From: Daniel Gibbs Date: Thu, 20 Oct 2016 22:23:07 +0100 Subject: [PATCH 06/13] Renamed to Quake 3: Arena --- Quake3/q3server | 4 ++-- lgsm/functions/command_install.sh | 2 +- lgsm/functions/info_glibc.sh | 2 +- lgsm/functions/install_server_files.sh | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Quake3/q3server b/Quake3/q3server index 5e4b69c28..8aff1501e 100644 --- a/Quake3/q3server +++ b/Quake3/q3server @@ -1,5 +1,5 @@ #!/bin/bash -# Quake 3 +# Quake 3: Arena # Server Management Script # Author: Daniel Gibbs # Website: https://gameservermanagers.com @@ -45,7 +45,7 @@ githubbranch="master" # Server Details servicename="quake3-server" -gamename="Quake 3" +gamename="Quake 3: Arena" engine="idtech3" # Directories diff --git a/lgsm/functions/command_install.sh b/lgsm/functions/command_install.sh index 99f8d696f..2a2037daf 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}" == "Battlefield: 1942" ]||[ "${gamename}" == "Minecraft" ]||[ "${gamename}" == "Quake 3" ]||[ "${gamename}" == "Unreal Tournament 99" ]||[ "${gamename}" == "Unreal Tournament 3" ]||[ "${gamename}" == "Unreal Tournament" ]||[ "${gamename}" == "TeamSpeak 3" ]||[ "${gamename}" == "Mumble" ]||[ "${gamename}" == "Wolfenstein: Enemy Territory" ]; then +elif [ "${gamename}" == "Battlefield: 1942" ]||[ "${gamename}" == "Minecraft" ]||[ "${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/info_glibc.sh b/lgsm/functions/info_glibc.sh index b61fe21d8..c1d7cb1cf 100644 --- a/lgsm/functions/info_glibc.sh +++ b/lgsm/functions/info_glibc.sh @@ -41,7 +41,7 @@ elif [ "${gamename}" == "Mumble" ]; then elif [ "${gamename}" == "No More Room in Hell" ]; then glibcrequired="2.15" glibcfix="yes" -elif [ "${gamename}" == "Quake 3" ]; then +elif [ "${gamename}" == "Quake 3: Arena" ]; then glibcrequired="2.1" glibcfix="no" elif [ "${gamename}" == "Quake Live" ]; then diff --git a/lgsm/functions/install_server_files.sh b/lgsm/functions/install_server_files.sh index 1a23ef6e5..e14a0521a 100644 --- a/lgsm/functions/install_server_files.sh +++ b/lgsm/functions/install_server_files.sh @@ -23,7 +23,7 @@ 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 3" ]; then + elif [ "${gamename}" == "Quake 3: Arena" ]; then fileurl="http://files.gameservermanagers.com/Quake3/quake3-1.32b-x86-full-linux.tar.bz2"; filedir="${lgsmdir}/tmp"; filename="quake3-1.32b-x86-full-linux.tar.bz2"; executecmd="noexecute" run="norun"; force="noforce"; md5="8fe61809ade4f9cce24e520043afe91b" fi fn_fetch_file "${fileurl}" "${filedir}" "${filename}" "${executecmd}" "${run}" "${force}" "${md5}" From ba8d4a1c9eb222e4d7551fe716e7246305feb763 Mon Sep 17 00:00:00 2001 From: Daniel Gibbs Date: Thu, 20 Oct 2016 22:23:22 +0100 Subject: [PATCH 07/13] added Quake 3 Arena Config --- lgsm/functions/install_config.sh | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/lgsm/functions/install_config.sh b/lgsm/functions/install_config.sh index 13db1215b..e61496414 100644 --- a/lgsm/functions/install_config.sh +++ b/lgsm/functions/install_config.sh @@ -291,6 +291,12 @@ elif [ "${gamename}" == "Project Zomboid" ]; then fn_fetch_default_config fn_default_config_remote fn_set_config_vars +elif [ "${gamename}" == "Quake 3: Arena" ]; then + gamedirname="QuakeLive" + 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 ) From 6bee0b423cbbbb52283c51878a2808740590044f Mon Sep 17 00:00:00 2001 From: Daniel Gibbs Date: Thu, 20 Oct 2016 22:24:30 +0100 Subject: [PATCH 08/13] Added quake 3 arena details --- lgsm/functions/command_details.sh | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/lgsm/functions/command_details.sh b/lgsm/functions/command_details.sh index 9cf79be84..fe37083df 100644 --- a/lgsm/functions/command_details.sh +++ b/lgsm/functions/command_details.sh @@ -386,6 +386,15 @@ fn_details_refractor(){ } | 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 "" @@ -665,6 +674,8 @@ fn_display_details() { fn_details_ark elif [ "${gamename}" == "Hurtworld" ]; then fn_details_hurtworld + elif [ "${gamename}" == "Quake 3: Arena" ]; then + fn_details_quake3 elif [ "${gamename}" == "Quake Live" ]; then fn_details_quakelive elif [ "${gamename}" == "TeamSpeak 3" ]; then From 61d846b985d055e6de421d3cfa3c12eab15c3031 Mon Sep 17 00:00:00 2001 From: Daniel Gibbs Date: Thu, 20 Oct 2016 23:07:02 +0100 Subject: [PATCH 09/13] Updated config info --- Quake3/q3server | 3 ++- lgsm/functions/install_config.sh | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/Quake3/q3server b/Quake3/q3server index 8aff1501e..6c2e4d844 100644 --- a/Quake3/q3server +++ b/Quake3/q3server @@ -55,14 +55,15 @@ 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}" -servercfgdefault="${servercfgdir}/lgsm-default.cfg" backupdir="${rootdir}/backups" # Logging diff --git a/lgsm/functions/install_config.sh b/lgsm/functions/install_config.sh index e61496414..d3828a5eb 100644 --- a/lgsm/functions/install_config.sh +++ b/lgsm/functions/install_config.sh @@ -292,7 +292,7 @@ elif [ "${gamename}" == "Project Zomboid" ]; then fn_default_config_remote fn_set_config_vars elif [ "${gamename}" == "Quake 3: Arena" ]; then - gamedirname="QuakeLive" + gamedirname="Quake3Arena" array_configs+=( server.cfg ) fn_fetch_default_config fn_default_config_remote From 7c157a8edc1235a7049488bb2a2a68993949e01d Mon Sep 17 00:00:00 2001 From: Alexander Hurd Date: Fri, 21 Oct 2016 07:31:29 -0400 Subject: [PATCH 10/13] updating to quake3-1.32c --- lgsm/functions/install_server_files.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lgsm/functions/install_server_files.sh b/lgsm/functions/install_server_files.sh index e14a0521a..0bcdcc90c 100644 --- a/lgsm/functions/install_server_files.sh +++ b/lgsm/functions/install_server_files.sh @@ -24,7 +24,7 @@ fn_install_server_files(){ 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 3: Arena" ]; then - fileurl="http://files.gameservermanagers.com/Quake3/quake3-1.32b-x86-full-linux.tar.bz2"; filedir="${lgsmdir}/tmp"; filename="quake3-1.32b-x86-full-linux.tar.bz2"; executecmd="noexecute" run="norun"; force="noforce"; md5="8fe61809ade4f9cce24e520043afe91b" + fileurl="https://s3.amazonaws.com/linuxgsm/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}" From 31ff13993c12629d3a09b8676e49cda16dd81ebc Mon Sep 17 00:00:00 2001 From: Daniel Gibbs Date: Thu, 20 Oct 2016 23:43:10 +0100 Subject: [PATCH 11/13] Added Quake 3 --- lgsm/functions/info_config.sh | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/lgsm/functions/info_config.sh b/lgsm/functions/info_config.sh index d5f283404..846dec349 100644 --- a/lgsm/functions/info_config.sh +++ b/lgsm/functions/info_config.sh @@ -154,6 +154,26 @@ fn_info_config_projectzomboid(){ 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 +495,9 @@ elif [ "${gamename}" == "Battlefield: 1942" ]; then # Dont Starve Together elif [ "${engine}" == "dontstarve" ]; then fn_info_config_dontstarve +# Quake 3 +elif [ "${gamename}" == "Quake 3: Arena" ]; then + fn_info_config_quake3 # Quake Live elif [ "${gamename}" == "Quake Live" ]; then fn_info_config_quakelive From ea0c6973fb17863888de4440b70bbc53418f1c21 Mon Sep 17 00:00:00 2001 From: Daniel Gibbs Date: Fri, 21 Oct 2016 14:44:11 +0100 Subject: [PATCH 12/13] Updated Quake 3 location --- lgsm/functions/install_server_files.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lgsm/functions/install_server_files.sh b/lgsm/functions/install_server_files.sh index 0bcdcc90c..d9f6cad5c 100644 --- a/lgsm/functions/install_server_files.sh +++ b/lgsm/functions/install_server_files.sh @@ -24,7 +24,7 @@ fn_install_server_files(){ 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 3: Arena" ]; then - fileurl="https://s3.amazonaws.com/linuxgsm/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" + 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}" From b3f8b29a06f57ba70a752adffabaf40d84484e3f Mon Sep 17 00:00:00 2001 From: Daniel Gibbs Date: Fri, 21 Oct 2016 15:11:38 +0100 Subject: [PATCH 13/13] Added Quake 3 to correct getopt --- lgsm/functions/core_getopt.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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