diff --git a/Teeworlds/twserver b/Teeworlds/twserver new file mode 100644 index 000000000..b8b0e3dba --- /dev/null +++ b/Teeworlds/twserver @@ -0,0 +1,92 @@ +#!/bin/bash +# Terraria +# Server Management Script +# Author: Daniel Gibbs +# Contributor: Bryce Van Dyk (SingingTree) +# Website: http://gameservermanagers.com +version="141015" + +#### Variables #### + +# Notification Email +# (on|off) +emailnotification="off" +email="email@example.com" + +# Steam login +steamuser="username" +steampass="password" + +# Start Variables +ip="0.0.0.0" +updateonstart="off" + +fn_parms(){ +parms="-f ${servercfgfullpath}" +} + +#### Advanced Variables #### + +# Steam +appid="380840" + +# Server Details +servicename="tw-server" +gamename="Teeworlds" +engine="teeworlds" + +# Directories +rootdir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +selfname="$(basename $0)" +lockselfname=".${servicename}.lock" +filesdir="${rootdir}/serverfiles" +systemdir="${filesdir}" +executabledir="${filesdir}" +executable="./teeworlds_srv" +servercfg="${servicename}.cfg" # Teeworlds can also auto load any config if an autoexec.cfg file is present in the server dir +servercfgdir="${filesdir}" +servercfgfullpath="${servercfgdir}/${servercfg}" +backupdir="${rootdir}/backups" + +# Logging +logdays="7" +#gamelogdir="" # Teeworlds has a configurable logfile location, use 'logfile' in server.cfg +scriptlogdir="${rootdir}/log/script" +consolelogdir="${rootdir}/log/console" + +scriptlog="${scriptlogdir}/${servicename}-script.log" +consolelog="${consolelogdir}/${servicename}-console.log" +emaillog="${scriptlogdir}/${servicename}-email.log" + +scriptlogdate="${scriptlogdir}/${servicename}-script-$(date '+%d-%m-%Y-%H-%M-%S').log" +consolelogdate="${consolelogdir}/${servicename}-console-$(date '+%d-%m-%Y-%H-%M-%S').log" + +##### Script ##### +# Do not edit + +fn_runfunction(){ +# Functions are downloaded and run with this function +if [ ! -f "${rootdir}/functions/${functionfile}" ]; then + cd "${rootdir}" + if [ ! -d "functions" ]; then + mkdir functions + fi + cd functions + echo -e " loading ${functionfile}...\c" + wget -N /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgsm/master/functions/${functionfile} 2>&1 | grep -F HTTP | cut -c45- + chmod +x "${functionfile}" + cd "${rootdir}" +fi +source "${rootdir}/functions/${functionfile}" +} + +fn_functions(){ +# Functions are defined in fn_functions. +functionfile="${FUNCNAME}" +fn_runfunction +} + +fn_functions + +getopt=$1 +fn_getopt diff --git a/functions/fn_details b/functions/fn_details index 3463272a2..a6175744c 100644 --- a/functions/fn_details +++ b/functions/fn_details @@ -2,7 +2,7 @@ # LGSM fn_details function # Author: Daniel Gibbs # Website: http://gameservermanagers.com -# Version: 070915 +# Version: 141015 # Description: Displays server infomation. @@ -497,7 +497,36 @@ fn_details_statusbottom } -fn_details_terraria(){ +fn_details_teamspeak3(){ +fn_details_config +fn_details_distro +fn_details_os +fn_details_performance +fn_details_disk +fn_details_gameserver +fn_details_backup +fn_details_commandlineparms +echo -e "" +echo -e "\e[92mPorts\e[0m" +printf '%*s\n' "${COLUMNS:-$(tput cols)}" '' | tr ' ' = +echo -e "Change ports by editing the parameters in" +echo -e "${servercfgfullpath}." +echo -e "" +echo -e "Useful port diagnostic command:" +echo -e "netstat -atunp | grep ts3server" +echo -e "" +{ + echo -e "DESCRIPTION\tDIRECTION\tPORT\tPROTOCOL" + echo -e "> Voice\tINBOUND\t${port}\tudp" + echo -e "> ServerQuery\tINBOUND\t${queryport}\ttcp" + echo -e "> File transfer\tINBOUND\t${fileport}\ttcp" +} >> .fn_details_ports +column -s $'\t' -t .fn_details_ports +rm -f .fn_details_ports +fn_details_statusbottom +} + +fn_details_teeworlds(){ fn_check_ip fn_parms fn_details_config @@ -520,16 +549,15 @@ echo -e "" { echo -e "DESCRIPTION\tDIRECTION\tPORT\tPROTOCOL" echo -e "> Game\tINBOUND\t${port}\ttcp" - echo -e "> Query\tINBOUND\t${queryport}\ttcp" - echo -e "> Rcon\tINBOUND\t${rconport}\ttcp" } >> .fn_details_ports column -s $'\t' -t .fn_details_ports rm -f .fn_details_ports fn_details_statusbottom - } -fn_details_teamspeak3(){ +fn_details_terraria(){ +fn_check_ip +fn_parms fn_details_config fn_details_distro fn_details_os @@ -541,17 +569,17 @@ fn_details_commandlineparms echo -e "" echo -e "\e[92mPorts\e[0m" printf '%*s\n' "${COLUMNS:-$(tput cols)}" '' | tr ' ' = -echo -e "Change ports by editing the parameters in" -echo -e "${servercfgfullpath}." +echo -e "Change ports by editing the command-line" +echo -e "parameters in ${servercfgfullpath}." echo -e "" echo -e "Useful port diagnostic command:" -echo -e "netstat -atunp | grep ts3server" +echo -e "netstat -atunp | grep terraia" echo -e "" { echo -e "DESCRIPTION\tDIRECTION\tPORT\tPROTOCOL" - echo -e "> Voice\tINBOUND\t${port}\tudp" - echo -e "> ServerQuery\tINBOUND\t${queryport}\ttcp" - echo -e "> File transfer\tINBOUND\t${fileport}\ttcp" + echo -e "> Game\tINBOUND\t${port}\ttcp" + echo -e "> Query\tINBOUND\t${queryport}\ttcp" + echo -e "> Rcon\tINBOUND\t${rconport}\ttcp" } >> .fn_details_ports column -s $'\t' -t .fn_details_ports rm -f .fn_details_ports @@ -735,6 +763,8 @@ elif [ "${engine}" == "spark" ]; then fn_details_spark elif [ "${engine}" == "starbound" ]; then fn_details_starbound +elif [ "${engine}" == "teeworlds" ]; then + fn_details_teeworlds elif [ "${engine}" == "terraria" ]; then fn_details_terraria elif [ "${engine}" == "unity3d" ]; then diff --git a/functions/fn_details_config b/functions/fn_details_config index c85ea2316..89e600aaa 100644 --- a/functions/fn_details_config +++ b/functions/fn_details_config @@ -2,7 +2,7 @@ # LGSM fn_details_config function # Author: Daniel Gibbs # Website: http://gameservermanagers.com -# Version: 090815 +# Version: 141015 # Description: Gets specific details from config files. @@ -382,6 +382,16 @@ elif [ "${gamename}" == "Teamspeak 3" ]; then fileport="30033" fi +elif [ "${engine}" == "teeworlds" ]; then + + # port + if [ -f "${servercfgfullpath}" ]; then + port=$(grep "DefaultPort=" "${servercfgfullpath}" | tr -cd "[:digit:]") + fi + if [ ! -n "${port}" ]; then + port="0" + fi + elif [ "${engine}" == "unity3d" ]; then # server name @@ -502,7 +512,7 @@ elif [ "${engine}" == "unity3d" ]; then # port if [ -f "${servercfgfullpath}" ]; then - port=$(grep "ServerPort" "${servercfgfullpath}" | tr -cd "[:digit:]") + port=$(grep "sv_port" "${servercfgfullpath}" | tr -cd "[:digit:]") fi if [ ! -n "${port}" ]; then port="0"