فهرست منبع

feat(new server): The Front (#4359)

* add the front

* config

* appid

* config

* parameters

* params

* params

* ports

* update parameters

* verbose

* variable

* fix

* multihome

* update ip addressing

* add ip vars

* info

* add ft-icon

* add missing tf
Daniel Gibbs 2 سال پیش
والد
کامیت
67472a824f

+ 202 - 0
lgsm/config-default/config-lgsm/tfserver/_default.cfg

@@ -0,0 +1,202 @@
+##################################
+######## Default Settings ########
+##################################
+# DO NOT EDIT, ANY CHANGES WILL BE OVERWRITTEN!
+# Copy settings from here and use them in either:
+# common.cfg - applies settings to every instance.
+# [instance].cfg - applies settings to a specific instance.
+
+#### Game Server Settings ####
+
+## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
+ip="0.0.0.0"
+port="5001"
+beaconport="5002"
+shutdownport="5003"
+queryport="27015"
+adminlabel="true" # Enable admin icon.
+allowsensitivewords="true"
+altsavedirectoryname="${defaultmap}"
+anticheat="true"
+damageself="true"
+damangeallies="true"
+gamemode="0" # 0 = PvP; 1 = PvE
+greenhand="true"
+maxplayers="40"
+maxqueuesize="50"
+queuevalidtime="120"
+saveinterval="300"
+serveradmins="" # Use 17-digit Steam IDs separated by commas to grant admin privileges to players.
+servername="LinuxGSM"
+serverpassword=""
+servertags="LinuxGSM"
+steamsocket="0" # Use Steam Socket. 0 = off; 1 = on. Use Steam Servers for network penetration. Enable this if you don't have a public IP but you want to allow players from outside your network to join your server. If disabled, only you and other players on your LAN can join. If you have a public IP, you do not need to enable this.
+
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+startparameters="ProjectWar_Start?DedicatedServer?MaxPlayers=${maxplayers} -server -game -log -MultiHome=${ip} -Port=${port} -QueryPort=${queryport} -BeaconPort=${beaconport} -ShutDownServicePort=${shutdownport} -ConfigServerName='${selfname}' -OutIPAddress=${publicip} -ServerTags='${servertags}' -UseSteamSocket=${steamsocket} -UserDir='${serverfiles}/${selfname}' -ServerName='${servername}' -EnableParallelCharacterMovementTickFunction -EnableParallelCharacterTickFunction -UseDynamicPhysicsScene -Game.PhysicsVehicle=false -ansimalloc -Game.MaxFrameRate=35 -MaxQueueSize=${maxqueuesize} -QueueValidTime=${queuevalidtime} -QueueThreshold=${maxplayers} -ServerFightModeType=${gamemode} -IsCanSelfDamage=${damageself} -IsCanFriendDamage=${damageallies} -SaveWorldInterval=${saveinterval} -GMOverlapRatio=2 -GreenHand=${greenhand} -SensitiveWords=${allowsensitivewords} -UseACE=${anticheat} -ServerAdminAccounts='${serveradmins}' -IsShowGmTitle=${adminlabel} -ServerPassword='${serverpassword}'"
+
+#### LinuxGSM Settings ####
+
+## LinuxGSM Stats
+# Send useful stats to LinuxGSM developers.
+# https://docs.linuxgsm.com/configuration/linuxgsm-stats
+# (on|off)
+stats="off"
+
+## Notification Alerts
+# (on|off)
+
+# Display IP | https://docs.linuxgsm.com/alerts#display-ip
+displayip=""
+
+# More info | https://docs.linuxgsm.com/alerts#more-info
+postalert="off"
+
+# Alert on Start/Stop/Restart
+statusalert="off"
+
+# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
+discordalert="off"
+discordwebhook="webhook"
+
+# Email Alerts | https://docs.linuxgsm.com/alerts/email
+emailalert="off"
+email="email@example.com"
+emailfrom=""
+
+# Gotify Alerts | https://docs.linuxgsm.com/alerts/gotify
+gotifyalert="off"
+gotifytoken="token"
+gotifywebhook="webhook"
+
+# IFTTT Alerts | https://docs.linuxgsm.com/alerts/ifttt
+iftttalert="off"
+ifttttoken="accesstoken"
+iftttevent="linuxgsm_alert"
+
+# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
+pushbulletalert="off"
+pushbullettoken="accesstoken"
+channeltag=""
+
+# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
+pushoveralert="off"
+pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+
+# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
+slackalert="off"
+slackwebhook="webhook"
+
+# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+telegramapi="api.telegram.org"
+telegramalert="off"
+telegramtoken="accesstoken"
+telegramchatid=""
+curlcustomstring=""
+
+## Updating | https://docs.linuxgsm.com/commands/update
+updateonstart="off"
+
+## Backup | https://docs.linuxgsm.com/commands/backup
+maxbackups="4"
+maxbackupdays="30"
+stoponbackup="on"
+
+## Logging | https://docs.linuxgsm.com/features/logging
+consolelogging="on"
+logdays="7"
+
+## Monitor | https://docs.linuxgsm.com/commands/monitor
+# Query delay time
+querydelay="5"
+
+## ANSI Colors | https://docs.linuxgsm.com/features/ansi-colors
+ansi="on"
+
+#### Advanced Settings ####
+
+## Message Display Time | https://docs.linuxgsm.com/features/message-display-time
+sleeptime="0.5"
+
+## SteamCMD Settings | https://docs.linuxgsm.com/steamcmd
+# Server appid
+appid="2334200"
+steamcmdforcewindows="no"
+# SteamCMD Branch | https://docs.linuxgsm.com/steamcmd/branch
+branch=""
+betapassword=""
+# Master Server | https://docs.linuxgsm.com/steamcmd/steam-master-server
+steammaster="true"
+
+## Stop Mode | https://docs.linuxgsm.com/features/stop-mode
+# 1: tmux kill
+# 2: CTRL+c
+# 3: quit
+# 4: quit 120s
+# 5: stop
+# 6: q
+# 7: exit
+# 8: 7 Days to Die
+# 9: GoldSrc
+# 10: Avorion
+# 11: end
+stopmode="2"
+
+## Query mode
+# 1: session only
+# 2: gamedig (gsquery fallback)
+# 3: gamedig
+# 4: gsquery
+# 5: tcp
+querymode="2"
+querytype="protocol-valve"
+
+## Console type
+consoleverbose="yes"
+consoleinteract="no"
+
+## Game Server Details
+# Do not edit
+gamename="The Front"
+engine="unreal4"
+glibc="2.17"
+
+#### Directories ####
+# Edit with care
+
+## Game Server Directories
+systemdir="${serverfiles}/ProjectWar"
+executabledir="${systemdir}/Binaries/Linux"
+executable="./TheFrontServer"
+servercfgdir="${systemdir}/Saved/Config/LinuxServer"
+servercfg="GameUserSettings.ini"
+servercfgdefault="GameUserSettings.ini"
+servercfgfullpath="${servercfgdir}/${servercfg}"
+
+## Backup Directory
+backupdir="${lgsmdir}/backup"
+
+## Logging Directories
+[ -n "${LGSM_LOGDIR}" ] && logdir="${LGSM_LOGDIR}" || logdir="${rootdir}/log"
+gamelogdir="${systemdir}/Saved/Logs"
+lgsmlogdir="${logdir}/script"
+consolelogdir="${logdir}/console"
+lgsmlog="${lgsmlogdir}/${selfname}-script.log"
+consolelog="${consolelogdir}/${selfname}-console.log"
+alertlog="${lgsmlogdir}/${selfname}-alert.log"
+postdetailslog="${lgsmlogdir}/${selfname}-postdetails.log"
+
+## Logs Naming
+lgsmlogdate="${lgsmlogdir}/${selfname}-script-$(date '+%Y-%m-%d-%H:%M:%S').log"
+consolelogdate="${consolelogdir}/${selfname}-console-$(date '+%Y-%m-%d-%H:%M:%S').log"
+
+## Log Parameters
+logtimestamp="off"
+logtimestampformat="%Y-%m-%d %H:%M:%S"

+ 1 - 0
lgsm/data/almalinux-8.csv

@@ -111,6 +111,7 @@ st,libxml2
 stn
 sven
 terraria
+tf
 tf2,libcurl.i686
 tfc
 ti

+ 1 - 0
lgsm/data/almalinux-9.csv

@@ -111,6 +111,7 @@ st,libxml2
 stn
 sven
 terraria
+tf
 tf2,libcurl.i686
 tfc
 ti

+ 1 - 0
lgsm/data/centos-7.csv

@@ -111,6 +111,7 @@ st,libxml2
 stn
 sven
 terraria
+tf
 tf2,libcurl.i686
 tfc
 ti

+ 1 - 0
lgsm/data/centos-8.csv

@@ -111,6 +111,7 @@ st,libxml2
 stn
 sven
 terraria
+tf
 tf2,libcurl.i686
 tfc
 ti

+ 1 - 0
lgsm/data/centos-9.csv

@@ -111,6 +111,7 @@ st,libxml2
 stn
 sven
 terraria
+tf
 tf2,libcurl.i686
 tfc
 ti

+ 1 - 0
lgsm/data/debian-10.csv

@@ -111,6 +111,7 @@ st,libxml2-utils
 stn
 sven,libssl1.1:i386,zlib1g:i386
 terraria
+tf
 tf2,libcurl4-gnutls-dev:i386
 tfc
 ti

+ 1 - 0
lgsm/data/debian-11.csv

@@ -111,6 +111,7 @@ st,libxml2-utils
 stn
 sven,libssl1.1:i386,zlib1g:i386
 terraria
+tf
 tf2,libcurl4-gnutls-dev:i386
 tfc
 ti

+ 1 - 0
lgsm/data/debian-12.csv

@@ -111,6 +111,7 @@ st,libxml2-utils
 stn
 sven,libssl3:i386,zlib1g:i386
 terraria
+tf
 tf2,libcurl4-gnutls-dev:i386
 tfc
 ti

+ 1 - 0
lgsm/data/debian-9.csv

@@ -111,6 +111,7 @@ st,libxml2-utils
 stn
 sven,libssl1.1:i386,zlib1g:i386
 terraria
+tf
 tf2,libcurl4-gnutls-dev:i386
 tfc
 ti

BIN
lgsm/data/gameicons/tf-icon.png


+ 1 - 0
lgsm/data/rhel-7.csv

@@ -111,6 +111,7 @@ st,libxml2
 stn
 sven
 terraria
+tf
 tf2,libcurl.i686
 tfc
 ti

+ 1 - 0
lgsm/data/rhel-8.csv

@@ -111,6 +111,7 @@ st,libxml2
 stn
 sven
 terraria
+tf
 tf2,libcurl.i686
 tfc
 ti

+ 1 - 0
lgsm/data/rhel-9.csv

@@ -111,6 +111,7 @@ st,libxml2
 stn
 sven
 terraria
+tf
 tf2,libcurl.i686
 tfc
 ti

+ 1 - 0
lgsm/data/rocky-8.csv

@@ -111,6 +111,7 @@ st,libxml2
 stn
 sven
 terraria
+tf
 tf2,libcurl.i686
 tfc
 ti

+ 1 - 0
lgsm/data/rocky-9.csv

@@ -111,6 +111,7 @@ st,libxml2
 stn
 sven
 terraria
+tf
 tf2,libcurl.i686
 tfc
 ti

+ 1 - 0
lgsm/data/serverlist.csv

@@ -110,6 +110,7 @@ st,stserver,Stationeers,ubuntu-22.04
 stn,stnserver,Survive the Nights,ubuntu-22.04
 sven,svenserver,Sven Co-op,ubuntu-20.04
 terraria,terrariaserver,Terraria,ubuntu-22.04
+tf,tfserver,The Front,ubuntu-22.04
 tf2,tf2server,Team Fortress 2,ubuntu-22.04
 tfc,tfcserver,Team Fortress Classic,ubuntu-22.04
 ti,tiserver,The Isle,ubuntu-22.04

+ 1 - 0
lgsm/data/ubuntu-16.04.csv

@@ -111,6 +111,7 @@ st,libxml2-utils
 stn
 sven,libssl1.1:i386,zlib1g:i386
 terraria
+tf
 tf2,libcurl4-gnutls-dev:i386
 tfc
 ti

+ 1 - 0
lgsm/data/ubuntu-18.04.csv

@@ -111,6 +111,7 @@ st,libxml2-utils
 stn
 sven,libssl1.1:i386,zlib1g:i386
 terraria
+tf
 tf2,libcurl4-gnutls-dev:i386
 tfc
 ti

+ 1 - 0
lgsm/data/ubuntu-20.04.csv

@@ -111,6 +111,7 @@ st,libxml2-utils
 stn
 sven,libssl1.1:i386,zlib1g:i386
 terraria
+tf
 tf2,libcurl4-gnutls-dev:i386
 tfc
 ti

+ 1 - 0
lgsm/data/ubuntu-22.04.csv

@@ -111,6 +111,7 @@ st,libxml2-utils
 stn
 sven,libssl1.1:i386,zlib1g:i386
 terraria
+tf
 tf2,libcurl4-gnutls-dev:i386
 tfc
 ti

+ 1 - 0
lgsm/data/ubuntu-23.04.csv

@@ -111,6 +111,7 @@ st,libxml2-utils
 stn
 sven,libssl1.1:i386,zlib1g:i386
 terraria
+tf
 tf2,libcurl4-gnutls-dev:i386
 tfc
 ti

+ 1 - 0
lgsm/data/ubuntu-23.10.csv

@@ -111,6 +111,7 @@ st,libxml2-utils
 stn
 sven,libssl1.1:i386,zlib1g:i386
 terraria
+tf
 tf2,libcurl4-gnutls-dev:i386
 tfc
 ti

+ 10 - 0
lgsm/modules/command_dev_query_raw.sh

@@ -15,6 +15,16 @@ info_game.sh
 info_distro.sh
 info_messages.sh
 
+echo -e ""
+echo -e "${lightgreen}IP Addresses Variables${default}"
+fn_messages_separator
+echo -e ""
+echo -e "IP: ${ip}"
+echo -e "HTTP IP: ${httpip}"
+echo -e "Public IP: ${publicip}"
+echo -e "Telnet IP: ${telnetip}"
+echo -e "Display IP: ${displayip}"
+
 echo -e ""
 echo -e "${lightgreen}Query IP Addresses${default}"
 fn_messages_separator

+ 20 - 0
lgsm/modules/info_game.sh

@@ -681,6 +681,24 @@ fn_info_game_stn() {
 	serverpassword="${serverpassword:-"NOT SET"}"
 }
 
+# Config Type: parameters
+# Parameters: true
+# Comment:
+# Example: -ServerName="SERVERNAME"
+# Filetype: parameters
+fn_info_game_tf() {
+	beaconport="${beaconport:-"0"}"
+	gamemode="${gamemode:-"NOT SET"}"
+	maxplayers="${maxplayers:-"0"}"
+	port="${port:-"0"}"
+	queryport="${queryport:-"0"}"
+	saveinterval="${saveinterval:-"0"}"
+	servername="${servername:-"NOT SET"}"
+	serverpassword="${serverpassword:-"NOT SET"}"
+	shutdownport="${shutdownport:-"0"}"
+
+}
+
 # Config Type: ini
 # Parameters: true
 # Comment: ; or #
@@ -2372,6 +2390,8 @@ elif [ "${shortname}" == "stn" ]; then
 	fn_info_game_stn
 elif [ "${shortname}" == "terraria" ]; then
 	fn_info_game_terraria
+elif [ "${shortname}" == "tf" ]; then
+	fn_info_game_tf
 elif [ "${shortname}" == "ti" ]; then
 	fn_info_game_ti
 elif [ "${shortname}" == "ts3" ]; then

+ 12 - 0
lgsm/modules/info_messages.sh

@@ -1542,6 +1542,16 @@ fn_info_messages_tu() {
 	} | column -s $'\t' -t
 }
 
+fn_info_messages_tf() {
+	{
+		fn_port "header"
+		fn_port "Game" port udp
+		fn_port "Query" queryport tcp
+		fn_port "Beacon" beaconport udp
+		fn_port "Shutdown" shutdownport tcp
+	} | column -s $'\t' -t
+}
+
 fn_info_messages_ut2k4() {
 	{
 		fn_port "header"
@@ -1813,6 +1823,8 @@ fn_info_messages_select_engine() {
 		fn_info_messages_stn
 	elif [ "${shortname}" == "terraria" ]; then
 		fn_info_messages_terraria
+	elif [ "${shortname}" == "tf" ]; then
+		fn_info_messages_tf
 	elif [ "${shortname}" == "ti" ]; then
 		fn_info_messages_ti
 	elif [ "${shortname}" == "ts3" ]; then