From 2adc3ae5f492971a9b3dad0b3781671320663f04 Mon Sep 17 00:00:00 2001 From: H3o66 Date: Tue, 8 Nov 2022 00:40:31 +0100 Subject: [PATCH] feat(newserver): TrackMania Nations Forever --- .../config-lgsm/tmnfserver/_default.cfg | 173 ++++++++++++++++++ lgsm/data/almalinux-8.csv | 1 + lgsm/data/almalinux-9.csv | 1 + lgsm/data/centos-7.csv | 1 + lgsm/data/centos-8.csv | 1 + lgsm/data/centos-9.csv | 1 + lgsm/data/debian-10.csv | 1 + lgsm/data/debian-11.csv | 1 + lgsm/data/debian-12.csv | 1 + lgsm/data/debian-9.csv | 1 + lgsm/data/rhel-7.csv | 1 + lgsm/data/rhel-8.csv | 1 + lgsm/data/rhel-9.csv | 1 + lgsm/data/rocky-8.csv | 1 + lgsm/data/rocky-9.csv | 1 + lgsm/data/serverlist.csv | 1 + lgsm/data/ubuntu-16.04.csv | 1 + lgsm/data/ubuntu-18.04.csv | 1 + lgsm/data/ubuntu-20.04.csv | 1 + lgsm/data/ubuntu-22.04.csv | 1 + lgsm/data/ubuntu-23.04.csv | 1 + lgsm/modules/core_getopt.sh | 2 +- lgsm/modules/info_game.sh | 21 +++ lgsm/modules/install_server_files.sh | 7 + 24 files changed, 222 insertions(+), 1 deletion(-) create mode 100644 lgsm/config-default/config-lgsm/tmnfserver/_default.cfg diff --git a/lgsm/config-default/config-lgsm/tmnfserver/_default.cfg b/lgsm/config-default/config-lgsm/tmnfserver/_default.cfg new file mode 100644 index 0000000000..85aca4222f --- /dev/null +++ b/lgsm/config-default/config-lgsm/tmnfserver/_default.cfg @@ -0,0 +1,173 @@ +################################## +######## 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 +gamesettings="Matchsettings/Nations/NationsWhite.txt" + +## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters +startparameters="/nodaemon /dedicated_cfg=${servercfg} /game_settings=${gamesettings}" + +#### 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 all". +telegramapi="api.telegram.org" +telegramalert="off" +telegramtoken="accesstoken" +telegramchatid="" +telegramthreadid="" +telegramsilentnotification="false" +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="1" + +## 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" + +## 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="5" +querytype="" + +## Console type +consoleverbose="no" +consoleinteract="no" + +## Game Server Details +# Do not edit +gamename="Trackmania Nations Forever" +engine="maniaplanet" +glibc="2.18" + +#### Directories #### +# Edit with care + +## Game Server Directories +systemdir="${serverfiles}" +executabledir="${serverfiles}" +executable="./TrackmaniaServer" +servercfgdir="${systemdir}/GameData/Config" +servercfg="${selfname}.xml" +servercfgdefault="server.xml" +servercfgfullpath="${servercfgdir}/${servercfg}" + +## Backup Directory +backupdir="${lgsmdir}/backup" + +## Logging Directories +[ -n "${LGSM_LOGDIR}" ] && logdir="${LGSM_LOGDIR}" || logdir="${rootdir}/log" +gamelogdir="${systemdir}/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" diff --git a/lgsm/data/almalinux-8.csv b/lgsm/data/almalinux-8.csv index d4d2456bd0..822fa24220 100644 --- a/lgsm/data/almalinux-8.csv +++ b/lgsm/data/almalinux-8.csv @@ -117,6 +117,7 @@ tf tf2,libcurl.i686 tfc ti +tmnf,libxml2 ts ts3 tu diff --git a/lgsm/data/almalinux-9.csv b/lgsm/data/almalinux-9.csv index 7dae6338e5..e5a1dd534f 100644 --- a/lgsm/data/almalinux-9.csv +++ b/lgsm/data/almalinux-9.csv @@ -117,6 +117,7 @@ tf tf2,libcurl.i686 tfc ti +tmnf,libxml2 ts ts3 tu diff --git a/lgsm/data/centos-7.csv b/lgsm/data/centos-7.csv index 266b358bad..2b3c7a4214 100644 --- a/lgsm/data/centos-7.csv +++ b/lgsm/data/centos-7.csv @@ -117,6 +117,7 @@ tf tf2,libcurl.i686 tfc ti +tmnf,libxml2 ts ts3 tu diff --git a/lgsm/data/centos-8.csv b/lgsm/data/centos-8.csv index bd5b72c33c..9c185ba856 100644 --- a/lgsm/data/centos-8.csv +++ b/lgsm/data/centos-8.csv @@ -117,6 +117,7 @@ tf tf2,libcurl.i686 tfc ti +tmnf,libxml2 ts ts3 tu diff --git a/lgsm/data/centos-9.csv b/lgsm/data/centos-9.csv index 893f3698c0..42a67e76ab 100644 --- a/lgsm/data/centos-9.csv +++ b/lgsm/data/centos-9.csv @@ -117,6 +117,7 @@ tf tf2,libcurl.i686 tfc ti +tmnf,libxml2 ts ts3 tu diff --git a/lgsm/data/debian-10.csv b/lgsm/data/debian-10.csv index bfbf4dac0d..1bb966ca19 100644 --- a/lgsm/data/debian-10.csv +++ b/lgsm/data/debian-10.csv @@ -117,6 +117,7 @@ tf tf2,libcurl4-gnutls-dev:i386 tfc ti +tmnf,libxml2-utils ts ts3 tu diff --git a/lgsm/data/debian-11.csv b/lgsm/data/debian-11.csv index 61a20b15f1..8a0e761410 100644 --- a/lgsm/data/debian-11.csv +++ b/lgsm/data/debian-11.csv @@ -117,6 +117,7 @@ tf tf2,libcurl4-gnutls-dev:i386 tfc ti +tmnf,libxml2-utils ts ts3 tu diff --git a/lgsm/data/debian-12.csv b/lgsm/data/debian-12.csv index 5fa249e15a..fe22728845 100644 --- a/lgsm/data/debian-12.csv +++ b/lgsm/data/debian-12.csv @@ -117,6 +117,7 @@ tf tf2,libcurl4-gnutls-dev:i386 tfc ti +tmnf,libxml2-utils ts ts3 tu diff --git a/lgsm/data/debian-9.csv b/lgsm/data/debian-9.csv index d00f64969b..26d241af51 100644 --- a/lgsm/data/debian-9.csv +++ b/lgsm/data/debian-9.csv @@ -117,6 +117,7 @@ tf tf2,libcurl4-gnutls-dev:i386 tfc ti +tmnf,libxml2-utils ts ts3 tu diff --git a/lgsm/data/rhel-7.csv b/lgsm/data/rhel-7.csv index 7800136bb9..fac6d67085 100644 --- a/lgsm/data/rhel-7.csv +++ b/lgsm/data/rhel-7.csv @@ -117,6 +117,7 @@ tf tf2,libcurl.i686 tfc ti +tmnf,libxml2 ts ts3 tu diff --git a/lgsm/data/rhel-8.csv b/lgsm/data/rhel-8.csv index f8bb1d4921..638e360583 100644 --- a/lgsm/data/rhel-8.csv +++ b/lgsm/data/rhel-8.csv @@ -117,6 +117,7 @@ tf tf2,libcurl.i686 tfc ti +tmnf,libxml2 ts ts3 tu diff --git a/lgsm/data/rhel-9.csv b/lgsm/data/rhel-9.csv index 7dae6338e5..e5a1dd534f 100644 --- a/lgsm/data/rhel-9.csv +++ b/lgsm/data/rhel-9.csv @@ -117,6 +117,7 @@ tf tf2,libcurl.i686 tfc ti +tmnf,libxml2 ts ts3 tu diff --git a/lgsm/data/rocky-8.csv b/lgsm/data/rocky-8.csv index f8bb1d4921..638e360583 100644 --- a/lgsm/data/rocky-8.csv +++ b/lgsm/data/rocky-8.csv @@ -117,6 +117,7 @@ tf tf2,libcurl.i686 tfc ti +tmnf,libxml2 ts ts3 tu diff --git a/lgsm/data/rocky-9.csv b/lgsm/data/rocky-9.csv index 7dae6338e5..e5a1dd534f 100644 --- a/lgsm/data/rocky-9.csv +++ b/lgsm/data/rocky-9.csv @@ -117,6 +117,7 @@ tf tf2,libcurl.i686 tfc ti +tmnf,libxml2 ts ts3 tu diff --git a/lgsm/data/serverlist.csv b/lgsm/data/serverlist.csv index d75bee3b5c..d54e52542c 100644 --- a/lgsm/data/serverlist.csv +++ b/lgsm/data/serverlist.csv @@ -116,6 +116,7 @@ tf,tfserver,The Front,ubuntu-24.04 tf2,tf2server,Team Fortress 2,ubuntu-24.04 tfc,tfcserver,Team Fortress Classic,ubuntu-24.04 ti,tiserver,The Isle,ubuntu-24.04 +tmnf,tmnfserver,Trackmania Nations Forever,ubuntu-24.04 ts,tsserver,The Specialists,ubuntu-24.04 ts3,ts3server,Teamspeak 3,ubuntu-24.04 tu,tuserver,Tower Unite,ubuntu-24.04 diff --git a/lgsm/data/ubuntu-16.04.csv b/lgsm/data/ubuntu-16.04.csv index 1327946e51..dc84c98bed 100644 --- a/lgsm/data/ubuntu-16.04.csv +++ b/lgsm/data/ubuntu-16.04.csv @@ -117,6 +117,7 @@ tf tf2,libcurl4-gnutls-dev:i386 tfc ti +tmnf,libxml2-utils ts ts3 tu diff --git a/lgsm/data/ubuntu-18.04.csv b/lgsm/data/ubuntu-18.04.csv index d693fba00e..4b6ae3b1a7 100644 --- a/lgsm/data/ubuntu-18.04.csv +++ b/lgsm/data/ubuntu-18.04.csv @@ -117,6 +117,7 @@ tf tf2,libcurl4-gnutls-dev:i386 tfc ti +tmnf,libxml2-utils ts ts3 tu diff --git a/lgsm/data/ubuntu-20.04.csv b/lgsm/data/ubuntu-20.04.csv index 193054da83..ab79685a5d 100644 --- a/lgsm/data/ubuntu-20.04.csv +++ b/lgsm/data/ubuntu-20.04.csv @@ -117,6 +117,7 @@ tf tf2,libcurl4-gnutls-dev:i386 tfc ti +tmnf,libxml2-utils ts ts3 tu diff --git a/lgsm/data/ubuntu-22.04.csv b/lgsm/data/ubuntu-22.04.csv index 1b8849bbaa..1b5252ecc6 100644 --- a/lgsm/data/ubuntu-22.04.csv +++ b/lgsm/data/ubuntu-22.04.csv @@ -117,6 +117,7 @@ tf tf2,libcurl4-gnutls-dev:i386 tfc ti +tmnf,libxml2-utils ts ts3 tu diff --git a/lgsm/data/ubuntu-23.04.csv b/lgsm/data/ubuntu-23.04.csv index 2ed8416a27..1497ce4408 100644 --- a/lgsm/data/ubuntu-23.04.csv +++ b/lgsm/data/ubuntu-23.04.csv @@ -117,6 +117,7 @@ tf tf2,libcurl4-gnutls-dev:i386 tfc ti +tmnf,libxml2-utils ts ts3 tu diff --git a/lgsm/modules/core_getopt.sh b/lgsm/modules/core_getopt.sh index 9a5704663e..c35e06bb53 100644 --- a/lgsm/modules/core_getopt.sh +++ b/lgsm/modules/core_getopt.sh @@ -68,7 +68,7 @@ currentopt+=("${cmd_update_linuxgsm[@]}") # Exclude noupdate games here. if [ "${shortname}" == "jk2" ] || [ "${engine}" != "idtech3" ]; then - if [ "${shortname}" != "bf1942" ] && [ "${shortname}" != "bfv" ] && [ "${engine}" != "idtech2" ] && [ "${engine}" != "iw2.0" ] && [ "${engine}" != "iw3.0" ] && [ "${engine}" != "quake" ] && [ "${shortname}" != "samp" ] && [ "${shortname}" != "ut2k4" ]; then + if [ "${shortname}" != "bf1942" ] && [ "${shortname}" != "bfv" ] && [ "${engine}" != "idtech2" ] && [ "${engine}" != "iw2.0" ] && [ "${engine}" != "iw3.0" ] && [ "${engine}" != "quake" ] && [ "${shortname}" != "samp" ] && [ "${shortname}" != "tmnf" ] && [ "${shortname}" != "ut2k4" ]; then currentopt+=("${cmd_update[@]}" "${cmd_check_update[@]}") # force update for SteamCMD or Multi Theft Auto only. if [ "${appid}" ] || [ "${shortname}" == "mta" ]; then diff --git a/lgsm/modules/info_game.sh b/lgsm/modules/info_game.sh index 2819b65d1c..2fbd6ebc82 100644 --- a/lgsm/modules/info_game.sh +++ b/lgsm/modules/info_game.sh @@ -1442,6 +1442,25 @@ fn_info_game_jk2() { serverversion="${serverversion:-"NOT SET"}" } +# Config Type: xml +# Comment: +# Example: LinuxGSM +# Filetype: xml +fn_info_game_maniaplanet() { + if [ -f "${servercfgfullpath}" ]; then + fn_info_game_xml "servername" "/dedicated/server_options/name" + fn_info_game_xml "maxplayers" "/dedicated/server_options/max_players" + fn_info_game_xml "serverpassword" "/dedicated/server_options/password" + fn_info_game_xml "port" "/dedicated/system_config/server_port" + fn_info_game_xml "queryport" "/dedicated/system_config/xmlrpc_port" + fi + servername="${servername:-"NOT SET"}" + maxplayers="${maxplayers:-"0"}" + serverpassword="${serverpassword:-"NOT SET"}" + port="${port:-"0"}" + queryport="${port:-"0"}" +} + # Config Type: Java properties # Comment: # or ! # Example: motd=SERVERNAME @@ -2386,6 +2405,8 @@ elif [ "${shortname}" == "kf" ]; then fn_info_game_kf elif [ "${shortname}" == "kf2" ]; then fn_info_game_kf2 +elif [ "${engine}" == "maniaplanet" ]; then + fn_info_game_maniaplanet elif [ "${shortname}" == "mc" ] || [ "${shortname}" == "pmc" ]; then fn_info_game_mc elif [ "${shortname}" == "mcb" ]; then diff --git a/lgsm/modules/install_server_files.sh b/lgsm/modules/install_server_files.sh index c667a7fe49..1218697e25 100644 --- a/lgsm/modules/install_server_files.sh +++ b/lgsm/modules/install_server_files.sh @@ -160,6 +160,13 @@ fn_install_server_files() { run="norun" force="noforce" md5="201e23bab04207d00ce813d001c483d9" + elif [ "${shortname}" == "tmnf" ]; then + remote_fileurl="http://files2.trackmaniaforever.com/TrackmaniaServer_2011-02-21.zip" + local_filedir="${tmpdir}" + local_filename="TrackmaniaServer_2011-02-21.zip" + chmodx="nochmodx" run="norun" + force="noforce" + md5="dd021f49c3d58d45ee09f333015bdb35b19243a38fa65f202ca8a88fb6550c0b" # sha256 sum elif [ "${shortname}" == "ts" ]; then remote_fileurl="http://linuxgsm.download/TheSpecialists/ts-3-linux-final.tar.xz" local_filedir="${tmpdir}"