ソースを参照

Merge pull request #496 from SingingTree/teeworlds_server

Teeworlds server
Daniel Gibbs 10 年 前
コミット
006f46c26e
3 ファイル変更146 行追加14 行削除
  1. 92 0
      Teeworlds/twserver
  2. 42 12
      functions/fn_details
  3. 12 2
      functions/fn_details_config

+ 92 - 0
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

+ 42 - 12
functions/fn_details

@@ -2,7 +2,7 @@
 # LGSM fn_details function
 # LGSM fn_details function
 # Author: Daniel Gibbs
 # Author: Daniel Gibbs
 # Website: http://gameservermanagers.com
 # Website: http://gameservermanagers.com
-# Version: 070915
+# Version: 141015
 
 
 # Description: Displays server infomation.
 # 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_check_ip
 fn_parms
 fn_parms
 fn_details_config
 fn_details_config
@@ -520,16 +549,15 @@ echo -e ""
 {
 {
 	echo -e "DESCRIPTION\tDIRECTION\tPORT\tPROTOCOL"
 	echo -e "DESCRIPTION\tDIRECTION\tPORT\tPROTOCOL"
 	echo -e "> Game\tINBOUND\t${port}\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
 } >> .fn_details_ports
 column -s $'\t' -t .fn_details_ports
 column -s $'\t' -t .fn_details_ports
 rm -f .fn_details_ports
 rm -f .fn_details_ports
 fn_details_statusbottom
 fn_details_statusbottom
-
 }
 }
 
 
-fn_details_teamspeak3(){
+fn_details_terraria(){
+fn_check_ip
+fn_parms
 fn_details_config
 fn_details_config
 fn_details_distro
 fn_details_distro
 fn_details_os
 fn_details_os
@@ -541,17 +569,17 @@ fn_details_commandlineparms
 echo -e ""
 echo -e ""
 echo -e "\e[92mPorts\e[0m"
 echo -e "\e[92mPorts\e[0m"
 printf '%*s\n' "${COLUMNS:-$(tput cols)}" '' | tr ' ' =
 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 ""
 echo -e "Useful port diagnostic command:"
 echo -e "Useful port diagnostic command:"
-echo -e "netstat -atunp | grep ts3server"
+echo -e "netstat -atunp | grep terraia"
 echo -e ""
 echo -e ""
 {
 {
 	echo -e "DESCRIPTION\tDIRECTION\tPORT\tPROTOCOL"
 	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
 } >> .fn_details_ports
 column -s $'\t' -t .fn_details_ports
 column -s $'\t' -t .fn_details_ports
 rm -f .fn_details_ports
 rm -f .fn_details_ports
@@ -735,6 +763,8 @@ elif [ "${engine}" == "spark" ]; then
 	fn_details_spark
 	fn_details_spark
 elif [ "${engine}" == "starbound" ]; then
 elif [ "${engine}" == "starbound" ]; then
 	fn_details_starbound
 	fn_details_starbound
+elif [ "${engine}" == "teeworlds" ]; then
+	fn_details_teeworlds
 elif [ "${engine}" == "terraria" ]; then
 elif [ "${engine}" == "terraria" ]; then
 	fn_details_terraria
 	fn_details_terraria
 elif [ "${engine}" == "unity3d" ]; then
 elif [ "${engine}" == "unity3d" ]; then

+ 12 - 2
functions/fn_details_config

@@ -2,7 +2,7 @@
 # LGSM fn_details_config function
 # LGSM fn_details_config function
 # Author: Daniel Gibbs
 # Author: Daniel Gibbs
 # Website: http://gameservermanagers.com
 # Website: http://gameservermanagers.com
-# Version: 090815
+# Version: 141015
 
 
 # Description: Gets specific details from config files.
 # Description: Gets specific details from config files.
 
 
@@ -382,6 +382,16 @@ elif [ "${gamename}" == "Teamspeak 3" ]; then
 		fileport="30033"
 		fileport="30033"
 	fi
 	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
 elif [ "${engine}" == "unity3d" ]; then
 
 
 	# server name
 	# server name
@@ -502,7 +512,7 @@ elif [ "${engine}" == "unity3d" ]; then
 
 
 	# port
 	# port
 	if [ -f "${servercfgfullpath}" ]; then
 	if [ -f "${servercfgfullpath}" ]; then
-		port=$(grep "ServerPort" "${servercfgfullpath}" | tr -cd "[:digit:]")
+		port=$(grep "sv_port" "${servercfgfullpath}" | tr -cd "[:digit:]")
 	fi
 	fi
 	if [ ! -n "${port}" ]; then
 	if [ ! -n "${port}" ]; then
 		port="0"
 		port="0"