diff --git a/.travis.yml b/.travis.yml index 19ec9bbb9..a2d1726d6 100644 --- a/.travis.yml +++ b/.travis.yml @@ -132,6 +132,15 @@ script: - bash StarBound/sbserver email-test - bash StarBound/sbserver details + - bash Terraria/terrariaserver auto-install + - bash Terraria/terrariaserver start + - bash Terraria/terrariaserver stop + - bash Terraria/terrariaserver restart + - bash Terraria/terrariaserver validate + - bash Terraria/terrariaserver monitor + - bash Terraria/terrariaserver email-test + - bash Terraria/terrariaserver details + - bash UnrealTournament2004/ut2k4server start - bash UnrealTournament2004/ut2k4server stop - bash UnrealTournament2004/ut2k4server restart @@ -152,4 +161,4 @@ script: - bash TeamSpeak3/ts3server update - bash TeamSpeak3/ts3server monitor - bash TeamSpeak3/ts3server email-test - - bash TeamSpeak3/ts3server details \ No newline at end of file + - bash TeamSpeak3/ts3server details diff --git a/Terraria/cfg/terraria-server.txt b/Terraria/cfg/terraria-server.txt new file mode 100644 index 000000000..c04a5b556 --- /dev/null +++ b/Terraria/cfg/terraria-server.txt @@ -0,0 +1,68 @@ +#this is an example config file for TerrariaServer.exe +#use the command 'TerrariaServer.exe -config serverconfig.txt' to use this configuration or run start-server.bat +#please report crashes by emailing crashlog.txt to support@terraria.org + +#the following is a list of available command line parameters: + +#-config Specifies the configuration file to use. +#-port Specifies the port to listen on. +#-players / -maxplayers Sets the max number of players +#-pass / -password Sets the server password +#-world Load a world and automatically start the server. +#-autocreate <#> Creates a world if none is found in the path specified by -world. World size is specified by: 1(small), 2(medium), and 3(large). +#-banlist Specifies the location of the banlist. Defaults to "banlist.txt" in the working directory. +#-worldname Sets the name of the world when using -autocreate. +#-secure Adds addition cheat protection to the server. +#-noupnp Disables automatic port forwarding +#-steam Enables Steam Support +#-lobby or Allows friends to join the server or sets it to private if Steam is enabled +#-ip Sets the IP address for the server to listen on +#-forcepriority Sets the process priority for this task. If this is used the "priority" setting below will be ignored. + +#remove the # in front of commands to enable them. + +#Load a world and automatically start the server. +#world=C:\Users\YOUR_USERNAME_HERE\My Documents\My Games\Terraria\Worlds\world1.wld + +#Creates a new world if none is found. World size is specified by: 1(small), 2(medium), and 3(large). +#autocreate=1 + +#Sets the name of the world when using autocreate +#worldname=Terraria + +#Sets the difficulty of the world when using autocreate 0(normal), 1(expert) +#difficulty=1 + +#Sets the max number of players allowed on a server. Value must be between 1 and 255 +#maxplayers=8 + +#Set the port number +#port=7777 + +#Set the server password +#password=p@55w0rd + +#Set the message of the day +#motd=Please don’t cut the purple trees! + +#Sets the folder where world files will be stored +#worldpath=C:\Users\Defaults\My Documents\My Games\Terraria\Worlds\ + +#The location of the banlist. Defaults to "banlist.txt" in the working directory. +#banlist=banlist.txt + +#Adds addition cheat protection. +#secure=1 + +#Sets the server language 1:English, 2:German, 3:Italian, 4:French, 5:Spanish +#lang=1 + +#Automatically forward ports with uPNP +#upnp=1 + +#Reduces enemy skipping but increases bandwidth usage. The lower the number the less skipping will happen, but more data is sent. 0 is off. +#npcstream=60 + +#Default system priority 0:Realtime, 1:High, 2:AboveNormal, 3:Normal, 4:BelowNormal, 5:Idle +priority=1 + diff --git a/Terraria/terrariaserver b/Terraria/terrariaserver new file mode 100644 index 000000000..57392162c --- /dev/null +++ b/Terraria/terrariaserver @@ -0,0 +1,92 @@ +#!/bin/bash +# Terraria +# Server Management Script +# Author: Daniel Gibbs +# Contributor: Bryce Van Dyk (SingingTree) +# Website: http://gameservermanagers.com +version="070915" + +#### 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="-config ${servercfgfullpath}" +} + +#### Advanced Variables #### + +# Steam +appid="105600" + +# Server Details +servicename="terraria-server" +gamename="Terraria" +engine="terraria" + +# Directories +rootdir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +selfname="$(basename $0)" +lockselfname=".${servicename}.lock" +filesdir="${rootdir}/serverfiles" +systemdir="${filesdir}" +executabledir="${filesdir}" +executable="./TerrariaServer" +servercfg="${servicename}.txt" +servercfgdir="${filesdir}" +servercfgfullpath="${servercfgdir}/${servercfg}" +backupdir="${rootdir}/backups" + +# Logging +logdays="7" +#gamelogdir="" # Terraria Doesn't Have a Server Log +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 055142ee7..3463272a2 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: 280715 +# Version: 070915 # Description: Displays server infomation. @@ -19,7 +19,7 @@ printf '%*s\n' "${COLUMNS:-$(tput cols)}" '' | tr ' ' = echo -e "\e[34mKernel:\t\e[0m${kernel}" echo -e "\e[34mHostname:\t\e[0m$HOSTNAME" echo -e "\e[34mtmux:\t\e[0m${tmuxv}" - echo -e "\e[34mGLIBC:\t\e[0m${glibcv}" + echo -e "\e[34mGLIBC:\t\e[0m${glibcv}" } >> .fn_details_distro column -s $'\t' -t .fn_details_distro rm -f .fn_details_distro @@ -31,7 +31,7 @@ echo -e "\e[93mPerformance\e[0m" printf '%*s\n' "${COLUMNS:-$(tput cols)}" '' | tr ' ' = { echo -e "\e[34mUptime:\t\e[0m${days}d, ${hours}h, ${minutes}m" - echo -e "\e[34mAvg Load:\t\e[0m${load}" + echo -e "\e[34mAvg Load:\t\e[0m${load}" } >> .fn_details_performance column -s $'\t' -t .fn_details_performance rm -f .fn_details_performance @@ -39,7 +39,7 @@ echo -e "" { echo -e "\e[34mMem:\t\e[34mtotal\t used\t free\e[0m" echo -e "\e[34mPhysical:\t\e[0m${physmemtotal}\t${physmemused}\t${physmemfree}\e[0m" - echo -e "\e[34mSwap:\t\e[0m${swaptotal}\t${swapused}\t${swapfree}\e[0m" + echo -e "\e[34mSwap:\t\e[0m${swaptotal}\t${swapused}\t${swapfree}\e[0m" } >> .fn_details_performance column -s $'\t' -t .fn_details_performance rm -f .fn_details_performance @@ -497,6 +497,38 @@ fn_details_statusbottom } +fn_details_terraria(){ +fn_check_ip +fn_parms +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 command-line" +echo -e "parameters in ${selfname}." +echo -e "" +echo -e "Useful port diagnostic command:" +echo -e "netstat -atunp | grep terraia" +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_config fn_details_distro @@ -703,6 +735,8 @@ elif [ "${engine}" == "spark" ]; then fn_details_spark elif [ "${engine}" == "starbound" ]; then fn_details_starbound +elif [ "${engine}" == "terraria" ]; then + fn_details_terraria elif [ "${engine}" == "unity3d" ]; then fn_details_unity3d elif [ "${engine}" == "unreal" ] || [ "${engine}" == "unreal2" ]; then @@ -713,4 +747,4 @@ elif [ "${gamename}" == "Teamspeak 3" ]; then fn_details_teamspeak3 else fn_printerrornl "Unable to detect server engine." -fi \ No newline at end of file +fi