From 99f5b8a8335278df656d39da489a7bd0ba82f88f Mon Sep 17 00:00:00 2001 From: Daniel Gibbs <me@danielgibbs.co.uk> Date: Sun, 31 Jul 2016 23:41:58 +0100 Subject: [PATCH 01/14] removed incorrect logo --- images/logo/lgsm-250x143-dark.png | Bin 14106 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 images/logo/lgsm-250x143-dark.png diff --git a/images/logo/lgsm-250x143-dark.png b/images/logo/lgsm-250x143-dark.png deleted file mode 100644 index 6d87e0e2b54d2acef37a65095f3f9b084f9fdedd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14106 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 From 286ed56575e27c86e34f6974404f28781b8e0aff Mon Sep 17 00:00:00 2001 From: Daniel Gibbs <me@danielgibbs.co.uk> Date: Sun, 31 Jul 2016 23:42:07 +0100 Subject: [PATCH 02/14] added correct logo --- images/logo/lgsm-250x130-dark.png | Bin 0 -> 17303 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 images/logo/lgsm-250x130-dark.png diff --git a/images/logo/lgsm-250x130-dark.png b/images/logo/lgsm-250x130-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..2490a4fdeacba6f93d9774a6b789351bcb3b076a GIT binary patch literal 17303 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 literal 0 HcmV?d00001 From ac96d6ffadbec7b78a75c7048fda3102f24da17d Mon Sep 17 00:00:00 2001 From: Daniel Gibbs <me@danielgibbs.co.uk> Date: Sun, 31 Jul 2016 23:58:28 +0100 Subject: [PATCH 03/14] removed nl --- lgsm/functions/command_validate.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lgsm/functions/command_validate.sh b/lgsm/functions/command_validate.sh index 3bd03e720..948b11ee3 100644 --- a/lgsm/functions/command_validate.sh +++ b/lgsm/functions/command_validate.sh @@ -39,7 +39,7 @@ fn_validation(){ } -fn_print_dots_nl "Validating files:" +fn_print_dots "Validating files:" sleep 0.5 fn_print_dots_nl "Validating files: SteamCMD" sleep 1 From 83492ed57cf665f762162d9fb1c2994d1cdc7df9 Mon Sep 17 00:00:00 2001 From: UltimateByte <robin.labadie@gmail.com> Date: Tue, 2 Aug 2016 03:54:28 +0200 Subject: [PATCH 04/14] Imrpoved server hibernation over default one --- CounterStrikeGlobalOffensive/cfg/lgsm-default.cfg | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CounterStrikeGlobalOffensive/cfg/lgsm-default.cfg b/CounterStrikeGlobalOffensive/cfg/lgsm-default.cfg index 15906f925..2d253dbcc 100644 --- a/CounterStrikeGlobalOffensive/cfg/lgsm-default.cfg +++ b/CounterStrikeGlobalOffensive/cfg/lgsm-default.cfg @@ -14,6 +14,10 @@ sv_logecho 1 sv_logfile 1 sv_log_onefile 0 +// Server Hibernation +sv_hibernate_when_empty 1 +sv_hibernate_ms 5 + exec banned_user.cfg exec banned_ip.cfg writeid From 0c2bbe007586d0bb3aade99162ac1360cffdcbe9 Mon Sep 17 00:00:00 2001 From: Scarsz <Scarsz@users.noreply.github.com> Date: Mon, 1 Aug 2016 23:26:47 -0700 Subject: [PATCH 05/14] Missing portion of opt --- 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 47cfbf1a7..f7c566d7f 100644 --- a/lgsm/functions/core_getopt.sh +++ b/lgsm/functions/core_getopt.sh @@ -234,7 +234,7 @@ case "${getopt}" in echo -e "${blue}start\t${default}st |Start the server." echo -e "${blue}stop\t${default}sp |Stop the server." echo -e "${blue}restart\t${default}r |Restart the server." - echo -e "${blue}update\t${default}Checks and applies updates from SteamCMD." + echo -e "${blue}update\t${default}u |Checks and applies updates from SteamCMD." echo -e "${blue}force-update\t${default}fu |Bypasses the check and applies updates from SteamCMD." echo -e "${blue}update-functions\t${default}uf |Removes all functions so latest can be downloaded." echo -e "${blue}validate\t${default}v |Validate server files with SteamCMD." From 4d7be97ba0c0cf7156fff24dc2d9c519f0fa17be Mon Sep 17 00:00:00 2001 From: Scarsz <Scarsz@users.noreply.github.com> Date: Mon, 1 Aug 2016 23:44:11 -0700 Subject: [PATCH 06/14] Characters --- lgsm/functions/command_fastdl.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lgsm/functions/command_fastdl.sh b/lgsm/functions/command_fastdl.sh index a0bb581e7..71a2ecff5 100644 --- a/lgsm/functions/command_fastdl.sh +++ b/lgsm/functions/command_fastdl.sh @@ -305,15 +305,15 @@ fn_fastdl_bzip2(){ fn_fastdl_completed(){ # Finished message echo "" - fn_print_ok "Congratulations, it's done !" + fn_print_ok "Congratulations, it's done!" fn_script_log "FastDL job done" sleep 2 echo -en "\n" echo "" - fn_print_info "Need more doc ? See https://github.com/dgibbs64/linuxgsm/wiki/FastDL" + fn_print_info "Need more documentation? See https://github.com/dgibbs64/linuxgsm/wiki/FastDL" echo -en "\n" if [ "$bzip2installed" == "0" ]; then - echo "By the way, you'd better install bzip2 an re-run this command !" + echo "By the way, you'd better install bzip2 and re-run this command!" fi echo "Credits : UltimateByte" } From 53f502ad88a854affbc3ca349d0aeaf7fea05d99 Mon Sep 17 00:00:00 2001 From: UltimateByte <robin.labadie@gmail.com> Date: Tue, 2 Aug 2016 14:13:48 +0200 Subject: [PATCH 07/14] Compatibility with python 3.x "A prefix of 'b' or 'B' is ignored in Python 2; it indicates that the literal should become a bytes literal in Python 3 (e.g. when code is automatically converted with 2to3). A 'u' or 'b' prefix may be followed by an 'r' prefix." "Bytes literals are always prefixed with 'b' or 'B'; they produce an instance of the bytes type instead of the str type. They may only contain ASCII characters; bytes with a numeric value of 128 or greater must be expressed with escapes." --- lgsm/functions/gsquery.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/lgsm/functions/gsquery.py b/lgsm/functions/gsquery.py index 8102e28a7..76d5478d9 100644 --- a/lgsm/functions/gsquery.py +++ b/lgsm/functions/gsquery.py @@ -18,23 +18,23 @@ class GameServer: self.default_buffer_length = 1024 # if self.option.engine == 'source': - self.query_prompt_string = '\xFF\xFF\xFF\xFFTSource Engine Query\0' + self.query_prompt_string = b'\xFF\xFF\xFF\xFFTSource Engine Query\0' elif self.option.engine == 'goldsource': - self.query_prompt_string = '\xFF\xFF\xFF\xFFTSource Engine Query\0' + self.query_prompt_string = b'\xFF\xFF\xFF\xFFTSource Engine Query\0' elif self.option.engine == 'spark': - self.query_prompt_string = '\xFF\xFF\xFF\xFFTSource Engine Query\0' + self.query_prompt_string = b'\xFF\xFF\xFF\xFFTSource Engine Query\0' elif self.option.engine == 'realvirtuality': - self.query_prompt_string = '\xFF\xFF\xFF\xFFTSource Engine Query\0' + self.query_prompt_string = b'\xFF\xFF\xFF\xFFTSource Engine Query\0' elif self.option.engine == 'unity3d': self.query_prompt_string = '\xFF\xFF\xFF\xFFTSource Engine Query\0' elif self.option.engine == 'idtech3': - self.query_prompt_string = '\xFF\xFF\xFF\xFFTSource Engine Query\0' + self.query_prompt_string = b'\xFF\xFF\xFF\xFFTSource Engine Query\0' elif self.option.engine == 'unreal': - self.query_prompt_string = '\x5C\x69\x6E\x66\x6F\x5C' + self.query_prompt_string = b'\x5C\x69\x6E\x66\x6F\x5C' elif self.option.engine == 'unreal2': - self.query_prompt_string = '\x79\x00\x00\x00\x00' + self.query_prompt_string = b'\x79\x00\x00\x00\x00' elif self.option.engine == 'avalanche': - self.query_prompt_string = '\xFE\xFD\x09\x10\x20\x30\x40' + self.query_prompt_string = b'\xFE\xFD\x09\x10\x20\x30\x40' self.connected = False self.response = None self.sanity_checks() From cc4d103dad9505d0ed12813e16d4d95461df0064 Mon Sep 17 00:00:00 2001 From: UltimateByte <robin.labadie@gmail.com> Date: Tue, 2 Aug 2016 14:28:14 +0200 Subject: [PATCH 08/14] Allow Server Querying --- CounterStrikeGlobalOffensive/cfg/lgsm-default.cfg | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/CounterStrikeGlobalOffensive/cfg/lgsm-default.cfg b/CounterStrikeGlobalOffensive/cfg/lgsm-default.cfg index 2d253dbcc..d518c8e0d 100644 --- a/CounterStrikeGlobalOffensive/cfg/lgsm-default.cfg +++ b/CounterStrikeGlobalOffensive/cfg/lgsm-default.cfg @@ -18,10 +18,14 @@ sv_log_onefile 0 sv_hibernate_when_empty 1 sv_hibernate_ms 5 +// Server Query +// More info at: https://www.gametracker.com/games/csgo/forum.php?thread=91691 +host_name_store 1 +host_info_show 1 +host_players_show 2 + + exec banned_user.cfg exec banned_ip.cfg writeid writeip - - - From dd12d4a5b47829e8cbd7130370eb697d40b37b02 Mon Sep 17 00:00:00 2001 From: Noel Benzinger <noelbenzinger@gmail.com> Date: Wed, 3 Aug 2016 15:09:05 -0500 Subject: [PATCH 09/14] Update gmodserver: Missing $ in front of tickrate in parms --- GarrysMod/gmodserver | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/GarrysMod/gmodserver b/GarrysMod/gmodserver index c6ca902e4..e15fcf4e5 100644 --- a/GarrysMod/gmodserver +++ b/GarrysMod/gmodserver @@ -56,7 +56,7 @@ gslt="" # https://developer.valvesoftware.com/wiki/Command_Line_Options#Source_Dedicated_Server fn_parms(){ -parms="-game garrysmod -strictportbind -ip ${ip} -port ${port} -tickrate {tickrate} +host_workshop_collection ${workshopcollectionid} -authkey ${workshopauth} +clientport ${clientport} +tv_port ${sourcetvport} +gamemode ${gamemode} +map ${defaultmap} +sv_setsteamaccount ${gslt} +servercfgfile ${servercfg} -maxplayers ${maxplayers} ${customparms}" +parms="-game garrysmod -strictportbind -ip ${ip} -port ${port} -tickrate ${tickrate} +host_workshop_collection ${workshopcollectionid} -authkey ${workshopauth} +clientport ${clientport} +tv_port ${sourcetvport} +gamemode ${gamemode} +map ${defaultmap} +sv_setsteamaccount ${gslt} +servercfgfile ${servercfg} -maxplayers ${maxplayers} ${customparms}" } #### Advanced Variables #### From 458ea8ffdf9c0aba2a4cb1a58a7bc778c44e48c9 Mon Sep 17 00:00:00 2001 From: GhoulofGSG9 <ghoulofgsg9@gmail.com> Date: Fri, 5 Aug 2016 20:19:25 +0200 Subject: [PATCH 10/14] Fixed that the steam branch parameter wasn't used in various places. --- lgsm/functions/command_validate.sh | 4 ++-- lgsm/functions/install_server_files.sh | 6 +++--- lgsm/functions/update_steamcmd.sh | 4 ++-- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/lgsm/functions/command_validate.sh b/lgsm/functions/command_validate.sh index 948b11ee3..65b68dad5 100644 --- a/lgsm/functions/command_validate.sh +++ b/lgsm/functions/command_validate.sh @@ -24,9 +24,9 @@ fn_validation(){ fi if [ "${engine}" == "goldsource" ]; then - ${unbuffer} ./steamcmd.sh +login "${steamuser}" "${steampass}" +force_install_dir "${filesdir}" +app_set_config 90 mod ${appidmod} +app_update "${appid}" +app_update "${appid}" validate +quit| tee -a "${scriptlog}" + ${unbuffer} ./steamcmd.sh +login "${steamuser}" "${steampass}" +force_install_dir "${filesdir}" +app_set_config 90 mod ${appidmod} +app_update "${appid}" ${branch} +app_update "${appid}" ${branch} validate +quit| tee -a "${scriptlog}" else - ${unbuffer} ./steamcmd.sh +login "${steamuser}" "${steampass}" +force_install_dir "${filesdir}" +app_update "${appid}" validate +quit| tee -a "${scriptlog}" + ${unbuffer} ./steamcmd.sh +login "${steamuser}" "${steampass}" +force_install_dir "${filesdir}" +app_update "${appid}" ${branch} validate +quit| tee -a "${scriptlog}" fi if [ $? != 0 ]; then fn_print_fail_nl "Validating files: SteamCMD" diff --git a/lgsm/functions/install_server_files.sh b/lgsm/functions/install_server_files.sh index 946b1c6d9..8f05a01a8 100644 --- a/lgsm/functions/install_server_files.sh +++ b/lgsm/functions/install_server_files.sh @@ -56,7 +56,7 @@ fn_install_server_files_steamcmd(){ ${unbuffer} ./steamcmd.sh +login "${steamuser}" "${steampass}" +force_install_dir "${filesdir}" +app_set_config 90 mod "${appidmod}" +app_update "${appid}" ${branch} +quit local exitcode=$? else - ${unbuffer} ./steamcmd.sh +login "${steamuser}" "${steampass}" +force_install_dir "${filesdir}" +app_update "${appid}" +quit + ${unbuffer} ./steamcmd.sh +login "${steamuser}" "${steampass}" +force_install_dir "${filesdir}" +app_update "${appid}" ${branch} +quit local exitcode=$? fi elif [ "${counter}" -ge "5" ]; then @@ -64,7 +64,7 @@ fn_install_server_files_steamcmd(){ ${unbuffer} ./steamcmd.sh +login "${steamuser}" "${steampass}" +force_install_dir "${filesdir}" +app_set_config 90 mod "${appidmod}" +app_update "${appid}" ${branch} -validate +quit local exitcode=$? else - ${unbuffer} ./steamcmd.sh +login "${steamuser}" "${steampass}" +force_install_dir "${filesdir}" +app_update "${appid}" -validate +quit + ${unbuffer} ./steamcmd.sh +login "${steamuser}" "${steampass}" +force_install_dir "${filesdir}" +app_update "${appid}" ${branch} -validate +quit local exitcode=$? fi fi @@ -82,7 +82,7 @@ fn_install_server_files_steamcmd(){ counter="0" while [ "${counter}" -le "4" ]; do counter=$((counter+1)) - ${unbuffer} ./steamcmd.sh +login "${steamuser}" "${steampass}" +force_install_dir "${filesdir}" +app_set_config 90 mod ${appidmod} +app_update "${appid}" -validate +quit + ${unbuffer} ./steamcmd.sh +login "${steamuser}" "${steampass}" +force_install_dir "${filesdir}" +app_set_config 90 mod ${appidmod} +app_update "${appid}" ${branch} -validate +quit local exitcode=$? done fi diff --git a/lgsm/functions/update_steamcmd.sh b/lgsm/functions/update_steamcmd.sh index 5a097aaaf..574fbe2b9 100644 --- a/lgsm/functions/update_steamcmd.sh +++ b/lgsm/functions/update_steamcmd.sh @@ -24,9 +24,9 @@ fn_update_steamcmd_dl(){ fi if [ "${engine}" == "goldsource" ]; then - ${unbuffer} ./steamcmd.sh +login "${steamuser}" "${steampass}" +force_install_dir "${filesdir}" +app_set_config 90 mod ${appidmod} +app_update "${appid}" +quit | tee -a "${scriptlog}" + ${unbuffer} ./steamcmd.sh +login "${steamuser}" "${steampass}" +force_install_dir "${filesdir}" +app_set_config 90 mod ${appidmod} +app_update "${appid}" ${branch} +quit | tee -a "${scriptlog}" else - ${unbuffer} ./steamcmd.sh +login "${steamuser}" "${steampass}" +force_install_dir "${filesdir}" +app_update "${appid}" +quit | tee -a "${scriptlog}" + ${unbuffer} ./steamcmd.sh +login "${steamuser}" "${steampass}" +force_install_dir "${filesdir}" +app_update "${appid}" ${branch} +quit | tee -a "${scriptlog}" fi fix.sh From 9abe209f6155b32c00e6c992c4b34d611f7906a9 Mon Sep 17 00:00:00 2001 From: GhoulofGSG9 <ghoulofgsg9@gmail.com> Date: Fri, 5 Aug 2016 20:26:54 +0200 Subject: [PATCH 11/14] Added the branch parameter to game script with popular branches --- CounterStrikeGlobalOffensive/csgoserver | 5 +++++ GarrysMod/gmodserver | 5 +++++ NaturalSelection2/ns2server | 5 +++++ 3 files changed, 15 insertions(+) diff --git a/CounterStrikeGlobalOffensive/csgoserver b/CounterStrikeGlobalOffensive/csgoserver index 6dd95fcb7..413f896a0 100755 --- a/CounterStrikeGlobalOffensive/csgoserver +++ b/CounterStrikeGlobalOffensive/csgoserver @@ -78,6 +78,11 @@ githubbranch="master" # Steam appid="740" +# Steam App Branch Select +# Allows to opt into the various Steam app branches. Default branch is "". +# Example: "-beta 1.35.4.4" +branch="" + # Server Details servicename="csgo-server" gamename="Counter Strike: Global Offensive" diff --git a/GarrysMod/gmodserver b/GarrysMod/gmodserver index e15fcf4e5..9eb3be966 100644 --- a/GarrysMod/gmodserver +++ b/GarrysMod/gmodserver @@ -29,6 +29,11 @@ pushbullettoken="accesstoken" steamuser="anonymous" steampass="" +# Steam App Branch Select +# Allows to opt into the various Steam app branches. Default branch is "". +# Example: "-beta prerelease " +branch="" + # Workshop Variables # http://wiki.garrysmod.com/page/Workshop_for_Dedicated_Servers workshopauth="" diff --git a/NaturalSelection2/ns2server b/NaturalSelection2/ns2server index 70f4e7fd5..3c1cc3186 100644 --- a/NaturalSelection2/ns2server +++ b/NaturalSelection2/ns2server @@ -62,6 +62,11 @@ githubbranch="master" # Steam appid="4940" +# Steam App Branch Select +# Allows to opt into the various Steam app branches. Default branch is "". +# Example: "-beta beta" +branch="" + # Server Details servicename="ns2-server" gamename="Natural Selection 2" From 220a720790d71477da8a9abd38ccae0eba339069 Mon Sep 17 00:00:00 2001 From: Marvin Lehmann <marvinl97@users.noreply.github.com> Date: Sat, 6 Aug 2016 01:04:52 +0200 Subject: [PATCH 12/14] Fixed servercfgdir --- CounterStrike/csserver | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CounterStrike/csserver b/CounterStrike/csserver index b03f7bcf2..7b942ee32 100644 --- a/CounterStrike/csserver +++ b/CounterStrike/csserver @@ -9,7 +9,7 @@ if [ -f ".dev-debug" ]; then set -x fi -version="210516" +version="060816" #### Variables #### @@ -71,7 +71,7 @@ systemdir="${filesdir}/cstrike" executabledir="${filesdir}" executable="./hlds_run" servercfg="${servicename}.cfg" -servercfgdir="${systemdir}/cfg" +servercfgdir="${systemdir}" servercfgfullpath="${servercfgdir}/${servercfg}" servercfgdefault="${servercfgdir}/lgsm-default.cfg" backupdir="${rootdir}/backups" From e0b6cf949a9645a8516d4fd28ed77c97a3c427c6 Mon Sep 17 00:00:00 2001 From: Daniel Gibbs <me@danielgibbs.co.uk> Date: Sat, 6 Aug 2016 19:52:47 +0100 Subject: [PATCH 13/14] bug fix --- lgsm/functions/check_deps.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lgsm/functions/check_deps.sh b/lgsm/functions/check_deps.sh index 6b43262ef..7b2ed5d2d 100644 --- a/lgsm/functions/check_deps.sh +++ b/lgsm/functions/check_deps.sh @@ -86,7 +86,7 @@ fn_found_missing_deps(){ fi if [ $? != 0 ]; then fn_print_failure_nl "Unable to install dependencies" - fn_script_log_fail "Unable to install dependencies" + fn_script_log_fatal "Unable to install dependencies" else fn_print_complete_nl "Install dependencies completed" fn_script_log_pass "Install dependencies completed" From 12b742debecdd69599841eaf82f461d1bb9d10d6 Mon Sep 17 00:00:00 2001 From: Daniel Gibbs <me@danielgibbs.co.uk> Date: Sat, 6 Aug 2016 20:02:42 +0100 Subject: [PATCH 14/14] added nl --- lgsm/functions/check_deps.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lgsm/functions/check_deps.sh b/lgsm/functions/check_deps.sh index 7b2ed5d2d..daca93518 100644 --- a/lgsm/functions/check_deps.sh +++ b/lgsm/functions/check_deps.sh @@ -63,7 +63,7 @@ fn_found_missing_deps(){ if [ "${#array_deps_missing[@]}" != "0" ]; then fn_print_dots "Checking dependencies" sleep 0.5 - fn_print_error "Checking dependencies: missing: ${red}${array_deps_missing[@]}${default}" + fn_print_error_nl "Checking dependencies: missing: ${red}${array_deps_missing[@]}${default}" fn_script_log_error "Checking dependencies: missing: ${red}${array_deps_missing[@]}${default}" sleep 1 sudo -v > /dev/null 2>&1