diff --git a/lgsm/functions/core_functions.sh b/lgsm/functions/core_functions.sh index 8a035ab76..9b79fae06 100644 --- a/lgsm/functions/core_functions.sh +++ b/lgsm/functions/core_functions.sh @@ -325,6 +325,11 @@ functionfile="${FUNCNAME[0]}" fn_fetch_function } +fix_cs.sh(){ +functionfile="${FUNCNAME[0]}" +fn_fetch_function +} + fix_csgo.sh(){ functionfile="${FUNCNAME[0]}" fn_fetch_function diff --git a/lgsm/functions/fix.sh b/lgsm/functions/fix.sh index 0c1c9a78f..9c773523a 100644 --- a/lgsm/functions/fix.sh +++ b/lgsm/functions/fix.sh @@ -40,6 +40,8 @@ if [ "${commandname}" != "INSTALL" ]&&[ -z "${fixbypass}" ]; then fix_arma3.sh elif [ "${shortname}" == "ark" ]; then fix_ark.sh + elif [ "${shortname}" == "cs" ]; then + fix_cs.sh elif [ "${shortname}" == "csgo" ]; then fix_csgo.sh elif [ "${shortname}" == "cmw" ]; then diff --git a/lgsm/functions/fix_cs.sh b/lgsm/functions/fix_cs.sh new file mode 100644 index 000000000..de1fa175b --- /dev/null +++ b/lgsm/functions/fix_cs.sh @@ -0,0 +1,21 @@ +#!/bin/bash +# LinuxGSM fix_cs.sh function +# Author: Christian Birk +# Website: https://linuxgsm.com +# Description: Resolves various issues with Counter Strike. + +functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")" + +if [ "${shortname}" == "cs" ]; then + # Fixes: steamclient.so: cannot open shared object file: No such file or directory + if [ ! -f "${serverfiles}/steamclient.so" ]; then + fixname="steamclient.so x86" + fn_fix_msg_start + if [ -f "${HOME}/.steam/steamcmd/linux32/steamclient.so" ]; then + cp "${steamcmddir}/linux32/steamclient.so" "${serverfiles}/steamclient.so" >> "${lgsmlog}" + elif [ -f "${steamcmddir}/linux32/steamclient.so" ]; then + cp "${steamcmddir}/linux32/steamclient.so" "${serverfiles}/steamclient.so" >> "${lgsmlog}" + fi + fn_fix_msg_end + fi +fi diff --git a/lgsm/functions/fix_hw.sh b/lgsm/functions/fix_hw.sh index 6230f7b46..00b9d675d 100644 --- a/lgsm/functions/fix_hw.sh +++ b/lgsm/functions/fix_hw.sh @@ -15,8 +15,6 @@ if [ "${shortname}" == "hw" ]; then cp "${steamcmddir}/linux32/steamclient.so" "${serverfiles}/Hurtworld_Data/Plugins/x86/steamclient.so" >> "${lgsmlog}" elif [ -f "${steamcmddir}/linux32/steamclient.so" ]; then cp "${steamcmddir}/linux32/steamclient.so" "${serverfiles}/Hurtworld_Data/Plugins/x86/steamclient.so" >> "${lgsmlog}" - else - : fi fn_fix_msg_end fi @@ -27,8 +25,6 @@ if [ "${shortname}" == "hw" ]; then cp "${steamcmddir}/linux64/steamclient.so" "${serverfiles}/Hurtworld_Data/Plugins/x86_64/steamclient.so" >> "${lgsmlog}" elif [ -f "${steamcmddir}/linux64/steamclient.so" ]; then cp "${steamcmddir}/linux64/steamclient.so" "${serverfiles}/Hurtworld_Data/Plugins/x86_64/steamclient.so" >> "${lgsmlog}" - else - : fi fn_fix_msg_end fi diff --git a/lgsm/functions/info_config.sh b/lgsm/functions/info_config.sh index a04dd1ac7..fd7ea988e 100644 --- a/lgsm/functions/info_config.sh +++ b/lgsm/functions/info_config.sh @@ -377,15 +377,24 @@ fn_info_config_factorio(){ servername="Factorio Server" serverpassword="${unavailable}" maxplayers="${zero}" + authtoken=${authtoken:-"NOT SET"} + savegameinterval="${unavailable}" + versioncount="${unavailable}" else - servername="Factorio Server" - serverpassword=$(grep "game_password" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/game_password//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//') - maxplayers=$(grep "\"max_players\"" "${servercfgfullpath}" | tr -cd '[:digit:]') + servername=$(jq -r '.name' "${servercfgfullpath}") + serverpassword=$(jq -r '.game_password' "${servercfgfullpath}") + maxplayers=$(jq -r '.max_players' "${servercfgfullpath}") + authtoken=$(jq -r '.token' "${servercfgfullpath}") + savegameinterval=$(jq -r '.autosave_interval' "${servercfgfullpath}") + versioncount=$(jq -r '.autosave_slots' "${servercfgfullpath}") # Not Set servername=${servername:-"NOT SET"} serverpassword=${serverpassword:-"NOT SET"} - maxplayers=${maxplayers=:-"0"} + maxplayers=${maxplayers:-"0"} + authtoken=${authtoken:-"NOT SET"} + savegameinterval=${savegameinterval:-"0"} + versioncount=${versioncount:-"0"} fi } diff --git a/lgsm/functions/info_messages.sh b/lgsm/functions/info_messages.sh index 862673be4..a7d6a1261 100644 --- a/lgsm/functions/info_messages.sh +++ b/lgsm/functions/info_messages.sh @@ -382,6 +382,21 @@ fn_info_message_gameserver(){ echo -e "${lightblue}Server Version:\t${default}${serverversion}" fi + # authentication token (Factorio) + if [ -n "${authtoken}" ]; then + echo -e "${lightblue}Auth Token:\t${default}${authtoken}" + fi + + # savegameinterval (Factorio) + if [ -n "${savegameinterval}" ]; then + echo -e "${lightblue}Savegame Interval:\t${default}${savegameinterval}" + fi + + # versioncount (Factorio) + if [ -n "${versioncount}" ]; then + echo -e "${lightblue}Version Count:\t${default}${versioncount}" + fi + # Listed on Master server if [ -n "${displaymasterserver}" ]; then if [ "${displaymasterserver}" == "true" ]; then