Преглед на файлове

Merge branch 'hotfix/v25.1.6'

Daniel Gibbs преди 11 месеца
родител
ревизия
5b9952917f
променени са 47 файла, в които са добавени 149 реда и са изтрити 120 реда
  1. 4 1
      lgsm/config-default/config-lgsm/ecoserver/_default.cfg
  2. 2 3
      lgsm/config-default/config-lgsm/hzserver/_default.cfg
  3. 1 1
      lgsm/config-default/config-lgsm/jc2server/_default.cfg
  4. 1 1
      lgsm/config-default/config-lgsm/tfserver/_default.cfg
  5. 1 1
      lgsm/data/almalinux-8.csv
  6. 1 1
      lgsm/data/almalinux-9.csv
  7. 1 1
      lgsm/data/centos-7.csv
  8. 1 1
      lgsm/data/centos-8.csv
  9. 1 1
      lgsm/data/centos-9.csv
  10. 1 1
      lgsm/data/debian-10.csv
  11. 1 1
      lgsm/data/debian-11.csv
  12. 1 1
      lgsm/data/debian-12.csv
  13. 1 1
      lgsm/data/debian-13.csv
  14. 1 1
      lgsm/data/debian-9.csv
  15. 1 1
      lgsm/data/rhel-7.csv
  16. 1 1
      lgsm/data/rhel-8.csv
  17. 1 1
      lgsm/data/rhel-9.csv
  18. 1 1
      lgsm/data/rocky-8.csv
  19. 1 1
      lgsm/data/rocky-9.csv
  20. 1 1
      lgsm/data/serverlist.csv
  21. 1 1
      lgsm/data/ubuntu-16.04.csv
  22. 1 1
      lgsm/data/ubuntu-18.04.csv
  23. 1 1
      lgsm/data/ubuntu-20.04.csv
  24. 1 1
      lgsm/data/ubuntu-22.04.csv
  25. 1 1
      lgsm/data/ubuntu-23.04.csv
  26. 1 1
      lgsm/data/ubuntu-23.10.csv
  27. 2 2
      lgsm/data/ubuntu-24.04.csv
  28. 63 50
      lgsm/modules/alert_discord.sh
  29. 7 4
      lgsm/modules/check_deps.sh
  30. 1 1
      lgsm/modules/command_monitor.sh
  31. 19 10
      lgsm/modules/command_postdetails.sh
  32. 1 1
      lgsm/modules/core_modules.sh
  33. 1 1
      lgsm/modules/core_steamcmd.sh
  34. 1 1
      lgsm/modules/info_messages.sh
  35. 0 1
      lgsm/modules/mods_list.sh
  36. 3 3
      lgsm/modules/query_gsquery.py
  37. 1 1
      lgsm/modules/update_fctr.sh
  38. 1 1
      lgsm/modules/update_jk2.sh
  39. 1 1
      lgsm/modules/update_mc.sh
  40. 11 8
      lgsm/modules/update_mcb.sh
  41. 1 1
      lgsm/modules/update_mta.sh
  42. 1 1
      lgsm/modules/update_pmc.sh
  43. 1 1
      lgsm/modules/update_ts3.sh
  44. 1 1
      lgsm/modules/update_ut99.sh
  45. 1 1
      lgsm/modules/update_vints.sh
  46. 1 1
      lgsm/modules/update_xnt.sh
  47. 1 1
      linuxgsm.sh

+ 4 - 1
lgsm/config-default/config-lgsm/ecoserver/_default.cfg

@@ -8,8 +8,11 @@
 
 #### Game Server Settings ####
 
+## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
+usertoken=""
+
 ## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-startparameters="-nogui"
+startparameters="-nogui -userToken=${usertoken}"
 
 #### LinuxGSM Settings ####
 

+ 2 - 3
lgsm/config-default/config-lgsm/hzserver/_default.cfg

@@ -12,7 +12,6 @@
 ip="0.0.0.0"
 port="7777"
 queryport="27015"
-servername="LinuxGSM"
 
 ## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
 startparameters="-log -port=${port} -queryport=${queryport} -steamservername=${servername}"
@@ -157,8 +156,8 @@ glibc="2.17"
 systemdir="${serverfiles}/TSSGame"
 executabledir="${systemdir}/Binaries/Linux"
 executable="./TSSGameServer-Linux-Shipping"
-servercfgdir="${systemdir}/Saved/Config/LinuxServer"
-servercfg="GameUserSettings.ini"
+servercfgdir="${systemdir}"
+servercfg="GameServerSettings.ini"
 servercfgdefault="GameUserSettings.ini"
 servercfgfullpath="${servercfgdir}/${servercfg}"
 

+ 1 - 1
lgsm/config-default/config-lgsm/jc2server/_default.cfg

@@ -134,7 +134,7 @@ stopmode="2"
 # 4: gsquery
 # 5: tcp
 querymode="2"
-querytype="jc2mp"
+querytype="jc2m"
 
 ## Console type
 consoleverbose="yes"

+ 1 - 1
lgsm/config-default/config-lgsm/tfserver/_default.cfg

@@ -33,7 +33,7 @@ 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}'"
+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} -UseEAC=${anticheat} -ServerAdminAccounts='${serveradmins}' -IsShowGmTitle=${adminlabel} -ServerPassword='${serverpassword}'"
 
 #### LinuxGSM Settings ####
 

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

@@ -127,7 +127,7 @@ ut2k4
 ut3
 ut99
 vh,glibc-devel,libatomic,pulseaudio-libs-devel
-vints,aspnetcore-runtime-7.0
+vints,dotnet-runtime-7.0
 vpmc,java-21-openjdk
 vs
 wet

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

@@ -127,7 +127,7 @@ ut2k4
 ut3
 ut99
 vh,glibc-devel,libatomic,pulseaudio-libs-devel
-vints,aspnetcore-runtime-7.0
+vints,dotnet-runtime-7.0
 vpmc,java-21-openjdk
 vs
 wet

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

@@ -127,7 +127,7 @@ ut2k4
 ut3
 ut99
 vh,glibc-devel,libatomic,pulseaudio-libs-devel
-vints,aspnetcore-runtime-7.0
+vints,dotnet-runtime-7.0
 vpmc,java-11-openjdk
 vs
 wet

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

@@ -127,7 +127,7 @@ ut2k4
 ut3
 ut99
 vh,glibc-devel,libatomic,pulseaudio-libs-devel
-vints,aspnetcore-runtime-7.0
+vints,dotnet-runtime-7.0
 vpmc,java-17-openjdk
 vs
 wet

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

@@ -127,7 +127,7 @@ ut2k4
 ut3
 ut99
 vh,glibc-devel,libatomic,pulseaudio-libs-devel
-vints,aspnetcore-runtime-7.0
+vints,dotnet-runtime-7.0
 vpmc,java-17-openjdk
 vs
 wet

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

@@ -127,7 +127,7 @@ ut2k4
 ut3
 ut99
 vh,libc6-dev,libatomic1,libpulse-dev
-vints,aspnetcore-runtime-7.0
+vints,dotnet-runtime-7.0
 vpmc,openjdk-11-jre
 vs
 wet

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

@@ -127,7 +127,7 @@ ut2k4
 ut3
 ut99
 vh,libc6-dev,libatomic1,libpulse-dev
-vints,aspnetcore-runtime-7.0
+vints,dotnet-runtime-7.0
 vpmc,openjdk-11-jre
 vs
 wet

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

@@ -127,7 +127,7 @@ ut2k4
 ut3
 ut99
 vh,libc6-dev,libatomic1,libpulse-dev
-vints,aspnetcore-runtime-7.0
+vints,dotnet-runtime-7.0
 vpmc,openjdk-17-jre
 vs
 wet

+ 1 - 1
lgsm/data/debian-13.csv

@@ -127,7 +127,7 @@ ut2k4
 ut3
 ut99
 vh,libc6-dev,libatomic1,libpulse-dev
-vints,aspnetcore-runtime-7.0
+vints,dotnet-runtime-7.0
 vpmc,openjdk-21-jre
 vs
 wet

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

@@ -127,7 +127,7 @@ ut2k4
 ut3
 ut99
 vh,libc6-dev,libatomic1,libpulse-dev
-vints,aspnetcore-runtime-7.0
+vints,dotnet-runtime-7.0
 vpmc,openjdk-8-jre
 vs
 wet

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

@@ -127,7 +127,7 @@ ut2k4
 ut3
 ut99
 vh,glibc-devel,libatomic,pulseaudio-libs-devel
-vints,aspnetcore-runtime-7.0
+vints,dotnet-runtime-7.0
 vpmc,java-11-openjdk
 vs
 wet

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

@@ -127,7 +127,7 @@ ut2k4
 ut3
 ut99
 vh,glibc-devel,libatomic,pulseaudio-libs-devel
-vints,aspnetcore-runtime-7.0
+vints,dotnet-runtime-7.0
 vpmc,java-21-openjdk
 vs
 wet

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

@@ -127,7 +127,7 @@ ut2k4
 ut3
 ut99
 vh,glibc-devel,libatomic,pulseaudio-libs-devel
-vints,aspnetcore-runtime-7.0
+vints,dotnet-runtime-7.0
 vpmc,java-21-openjdk
 vs
 wet

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

@@ -127,7 +127,7 @@ ut2k4
 ut3
 ut99
 vh,glibc-devel,libatomic,pulseaudio-libs-devel
-vints,aspnetcore-runtime-7.0
+vints,dotnet-runtime-7.0
 vpmc,java-21-openjdk
 vs
 wet

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

@@ -127,7 +127,7 @@ ut2k4
 ut3
 ut99
 vh,glibc-devel,libatomic,pulseaudio-libs-devel
-vints,aspnetcore-runtime-7.0
+vints,dotnet-runtime-7.0
 vpmc,java-21-openjdk
 vs
 wet

+ 1 - 1
lgsm/data/serverlist.csv

@@ -126,7 +126,7 @@ ut2k4,ut2k4server,Unreal Tournament 2004,ubuntu-24.04
 ut3,ut3server,Unreal Tournament 3,ubuntu-24.04
 ut99,ut99server,Unreal Tournament 99,ubuntu-24.04
 vh,vhserver,Valheim,ubuntu-24.04
-vints,vintsserver,Vintage Story,ubuntu-24.04
+vints,vintsserver,Vintage Story,ubuntu-22.04
 vpmc,vpmcserver,Velocity Proxy MC,ubuntu-24.04
 vs,vsserver,Vampire Slayer,ubuntu-24.04
 wet,wetserver,Wolfenstein: Enemy Territory,ubuntu-24.04

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

@@ -127,7 +127,7 @@ ut2k4
 ut3
 ut99
 vh,libc6-dev,libatomic1,libpulse-dev
-vints,aspnetcore-runtime-7.0
+vints,dotnet-runtime-7.0
 vpmc,openjdk-8-jre
 vs
 wet

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

@@ -127,7 +127,7 @@ ut2k4
 ut3
 ut99
 vh,libc6-dev,libatomic1,libpulse-dev
-vints,aspnetcore-runtime-7.0
+vints,dotnet-runtime-7.0
 vpmc,openjdk-11-jre
 vs
 wet

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

@@ -127,7 +127,7 @@ ut2k4
 ut3
 ut99
 vh,libc6-dev,libatomic1,libpulse-dev
-vints,aspnetcore-runtime-7.0
+vints,dotnet-runtime-7.0
 vpmc,openjdk-11-jre
 vs
 wet

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

@@ -127,7 +127,7 @@ ut2k4
 ut3
 ut99
 vh,libc6-dev,libatomic1,libpulse-dev
-vints,aspnetcore-runtime-7.0
+vints,dotnet-runtime-7.0
 vpmc,openjdk-21-jre
 vs
 wet

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

@@ -127,7 +127,7 @@ ut2k4
 ut3
 ut99
 vh,libc6-dev,libatomic1,libpulse-dev
-vints,aspnetcore-runtime-7.0
+vints,dotnet-runtime-7.0
 vpmc,openjdk-21-jre
 vs
 wet

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

@@ -127,7 +127,7 @@ ut2k4
 ut3
 ut99
 vh,libc6-dev,libatomic1,libpulse-dev
-vints,aspnetcore-runtime-7.0
+vints,dotnet-runtime-7.0
 vpmc,openjdk-21-jre
 vs
 wet

+ 2 - 2
lgsm/data/ubuntu-24.04.csv

@@ -5,7 +5,7 @@ ahl
 ahl2
 ark
 arma3
-armar,libcurl4
+armar,libcurl4t64
 ats
 av
 bb
@@ -127,7 +127,7 @@ ut2k4
 ut3
 ut99
 vh,libc6-dev,libatomic1,libpulse-dev
-vints,aspnetcore-runtime-8.0
+vints,dotnet-runtime-7.0
 vpmc,openjdk-21-jre
 vs
 wet

+ 63 - 50
lgsm/modules/alert_discord.sh

@@ -10,68 +10,81 @@ moduleselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
 json=$(
 	cat << EOF
 {
-    "username": "LinuxGSM",
-    "avatar_url": "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/lgsm/data/alert_discord_logo.jpg",
-    "file": "content",
-    "embeds": [
-        {
-            "author": {
-                "name": "LinuxGSM Alert",
-                "url": "",
-                "icon_url": "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/lgsm/data/alert_discord_logo.jpg"
-            },
-            "title": "${alerttitle}",
-            "url": "",
-            "description": "",
-            "color": "${alertcolourdec}",
-            "type": "content",
-            "thumbnail": {
-                "url": "${alerticon}"
-            },
-            "fields": [
-                {
-                    "name": "Server Name",
-                    "value": "${servername}"
-                },
-                {
-                    "name": "Information",
-                    "value": "${alertmessage}"
-                },
-                {
-                    "name": "Game",
-                    "value": "${gamename}",
-                    "inline": true
-                },
-                {
-                    "name": "Server Time",
-                    "value": "$(date)",
-                    "inline": true
-                }
+	"username": "LinuxGSM",
+	"avatar_url": "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/lgsm/data/alert_discord_logo.jpg",
+	"file": "content",
+	"embeds": [
+		{
+			"author": {
+				"name": "LinuxGSM Alert",
+				"url": "",
+				"icon_url": "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/lgsm/data/alert_discord_logo.jpg"
+			},
+			"title": "${alerttitle}",
+			"url": "",
+			"description": "",
+			"color": "${alertcolourdec}",
+			"type": "content",
+			"thumbnail": {
+				"url": "${alerticon}"
+			},
+			"fields": [
+				{
+					"name": "Server Name",
+					"value": "${servername}"
+				},
+				{
+					"name": "Information",
+					"value": "${alertmessage}"
+				},
+				{
+					"name": "Game",
+					"value": "${gamename}",
+					"inline": true
+				},
+				{
+					"name": "Server Time",
+					"value": "$(date)",
+					"inline": true
+				}
 EOF
 )
 
 if [ -n "${querytype}" ]; then
 	json+=$(
 		cat << EOF
-                ,
-                {
-                    "name": "Is my Game Server Online?",
-                    "value": "https://ismygameserver.online/${imgsoquerytype}/${alertip}:${queryport}",
-                    "inline": true
-                }
+				,
+				{
+					"name": "Is my Game Server Online?",
+					"value": "https://ismygameserver.online/${imgsoquerytype}/${alertip}:${queryport}",
+					"inline": true
+				}
+EOF
+	)
+fi
+
+if [ -n "{alerturl}" ]; then
+	json+=$(
+		cat << EOF
+				,
+				{
+					"name": "More info",
+					"value": "${alerturl}",
+					"inline": true
+				}
 EOF
 	)
 fi
 
 json+=$(
 	cat << EOF
-            ],
-            "footer": {
-                "icon_url": "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/lgsm/data/alert_discord_logo.jpg",
-                "text": "Sent by LinuxGSM ${version}"
-            }
-        }
-    ]
+			],
+			"footer": {
+				"icon_url": "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/lgsm/data/alert_discord_logo.jpg",
+				"text": "Sent by LinuxGSM ${version}"
+			}
+		}
+	]
 }
 EOF
 )

+ 7 - 4
lgsm/modules/check_deps.sh

@@ -9,8 +9,8 @@ moduleselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
 
 fn_install_dotnet_repo() {
 	if [ "${distroid}" == "ubuntu" ]; then
-		# if package aspnetcore-runtime-7.0 is unavailable in ubuntu repos, add the microsoft repo.
-		if ! apt-cache show aspnetcore-runtime-7.0 > /dev/null 2>&1; then
+		# if package dotnet-runtime-7.0 is unavailable in ubuntu repos, add the microsoft repo.
+		if ! apt-cache show dotnet-runtime-7.0 > /dev/null 2>&1; then
 			fn_fetch_file "https://packages.microsoft.com/config/ubuntu/${distroversion}/packages-microsoft-prod.deb" "" "" "" "/tmp" "packages-microsoft-prod.deb" "" "" "" ""
 			sudo dpkg -i /tmp/packages-microsoft-prod.deb
 		fi
@@ -251,12 +251,15 @@ fn_deps_detector() {
 	if [ "${deptocheck}" == "libsdl2-2.0-0:i386" ] && [ -z "${appid}" ]; then
 		array_deps_required=("${array_deps_required[@]/libsdl2-2.0-0:i386/}")
 		steamcmdstatus=1
+		return
 	elif [ "${deptocheck}" == "steamcmd" ] && [ -z "${appid}" ]; then
 		array_deps_required=("${array_deps_required[@]/steamcmd/}")
 		steamcmdstatus=1
+		return
 	elif [ "${deptocheck}" == "steamcmd" ] && [ "${distroid}" == "debian" ] && ! grep -qE '[^deb]+non-free([^-]|$)' /etc/apt/sources.list; then
 		array_deps_required=("${array_deps_required[@]/steamcmd/}")
 		steamcmdstatus=1
+		return
 	# Java: Added for users using Oracle JRE to bypass check.
 	elif [[ ${deptocheck} == "openjdk"* ]] || [[ ${deptocheck} == "java"* ]]; then
 		# Is java already installed?
@@ -279,9 +282,9 @@ fn_deps_detector() {
 			monoinstalled=false
 		fi
 	# .NET Core: A .NET Core repo needs to be installed.
-	elif [ "${deptocheck}" == "aspnetcore-runtime-7.0" ]; then
+	elif [ "${deptocheck}" == "dotnet-runtime-7.0" ]; then
 		# .NET is not installed.
-		if [ -n "${dotnetversion}" ]; then
+		if dotnet --list-runtimes | grep -q "Microsoft.NETCore.App 7.0"; then
 			depstatus=0
 			dotnetinstalled=true
 		else

+ 1 - 1
lgsm/modules/command_monitor.sh

@@ -167,7 +167,7 @@ fn_monitor_check_update_source() {
 			fn_script_log_info "Checking update: ${selfname} has requested an update and needs to be restarted"
 			alert="update-request"
 			alert.sh
-			command_update.sh
+			command_restart.sh
 			core_exit.sh
 		fi
 	fi

+ 19 - 10
lgsm/modules/command_postdetails.sh

@@ -58,18 +58,27 @@ else
 fi
 
 fn_print_dots "termbin.com"
-link=$(cat "${postdetailslog}" | nc termbin.com 9999 | tr -d '\n\0')
-fn_print_ok_nl "termbin.com for 30D"
-fn_script_log_pass "termbin.com for 30D"
-pdurl="${link}"
+link=$(cat "${postdetailslog}" | {
+	nc -w 3 termbin.com 9999
+	echo $? > /tmp/nc_exit_status
+} | tr -d '\n\0')
+nc_exit_status=$(cat /tmp/nc_exit_status)
+if [ "${nc_exit_status}" -ne 0 ]; then
+	fn_print_error_nl "Failed to post to termbin.com"
+	fn_script_log_error "Failed to post to termbin.com"
+else
+	fn_print_ok_nl "termbin.com for 30D"
+	fn_script_log_pass "termbin.com for 30D"
+	pdurl="${link}"
 
-if [ "${firstcommandname}" == "POST-DETAILS" ]; then
-	echo -e ""
-	echo -e "Please share the following url for support: "
-	echo -e "${italic}${pdurl}${default}"
+	if [ "${firstcommandname}" == "POST-DETAILS" ]; then
+		echo -e ""
+		echo -e "Please share the following url for support: "
+		echo -e "${italic}${pdurl}${default}"
+	fi
+	fn_script_log_info "${pdurl}"
+	alerturl="${pdurl}"
 fi
-fn_script_log_info "${pdurl}"
-alerturl="${pdurl}"
 
 if [ -z "${exitbypass}" ]; then
 	core_exit.sh

+ 1 - 1
lgsm/modules/core_modules.sh

@@ -8,7 +8,7 @@
 
 moduleselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
 
-modulesversion="v25.1.5"
+modulesversion="v25.1.6"
 
 # Core
 

+ 1 - 1
lgsm/modules/core_steamcmd.sh

@@ -164,7 +164,7 @@ fn_update_steamcmd_localbuild() {
 }
 
 fn_update_steamcmd_remotebuild() {
-	# Get remote build info.
+	# Gets remote build info.
 	if [ -d "${steamcmddir}" ]; then
 		cd "${steamcmddir}" || exit
 	fi

+ 1 - 1
lgsm/modules/info_messages.sh

@@ -1658,7 +1658,7 @@ fn_info_messages_tf() {
 	{
 		fn_port "header"
 		fn_port "Game" port udp
-		fn_port "Query" queryport tcp
+		fn_port "Query" queryport udp
 		fn_port "Beacon" beaconport udp
 		fn_port "Shutdown" shutdownport tcp
 	} | column -s $'\t' -t

+ 0 - 1
lgsm/modules/mods_list.sh

@@ -189,7 +189,6 @@ mod_info_spinnertool=(MOD "spinnertool" "Spinner Tool" "https://github.com/dvdvi
 mod_info_surfacefrictiontool=(MOD "surfacefrictiontool" "Surface Friction Tool" "https://github.com/dvdvideo1234/surfacefrictiontool/archive/master.zip" "surfacefrictiontool-master.zip" "0" "LowercaseOn" "${systemdir}/addons" "OVERWRITE" "ENGINES" "Garry's Mod;" "NOTGAMES" "https://github.com/dvdvideo1234/SurfaceFrictionTool" "Controls the surface friction of a prop")
 mod_info_magneticdipole=(MOD "magneticdipole" "Magnetic Dipole" "https://github.com/dvdvideo1234/magneticdipole/archive/master.zip" "magneticdipole-master.zip" "0" "LowercaseOn" "${systemdir}/addons" "OVERWRITE" "ENGINES" "Garry's Mod;" "NOTGAMES" "https://github.com/dvdvideo1234/MagneticDipole" "Magnet entity that runs forces on its poles. Supports wire")
 mod_info_environmentorganizer=(MOD "environmentorganizer" "Environment Organizer" "https://github.com/dvdvideo1234/environmentorganizer/archive/master.zip" "environmentorganizer-master.zip" "0" "LowercaseOn" "${systemdir}/addons" "OVERWRITE" "ENGINES" "Garry's Mod;" "NOTGAMES" "https://github.com/dvdvideo1234/EnvironmentOrganizer" "Installs routines designed for server settings adjustment")
-mod_info_precision_alignment=(MOD "precision-alignment" "Precision Alignment" "https://github.com/Mista-Tea/precision-alignment/archive/master.zip" "precision-alignment-master.zip" "0" "LowercaseOn" "${systemdir}/addons" "OVERWRITE" "ENGINES" "Garry's Mod;" "NOTGAMES" "https://github.com/Mista-Tea/precision-alignment" "Creates precise constraints and aligments")
 mod_info_improved_stacker=(MOD "improved-stacker" "Improved Stacker" "https://github.com/Mista-Tea/improved-stacker/archive/master.zip" "improved-stacker-master.zip" "0" "LowercaseOn" "${systemdir}/addons" "OVERWRITE" "ENGINES" "Garry's Mod;" "NOTGAMES" "https://github.com/Mista-Tea/improved-stacker" "Stacks entities in the direction chosen")
 mod_info_improved_weight=(MOD "improved-weight" "Improved Weight" "https://github.com/Mista-Tea/improved-weight/archive/master.zip" "improved-weight-master.zip" "0" "LowercaseOn" "${systemdir}/addons" "OVERWRITE" "ENGINES" "Garry's Mod;" "NOTGAMES" "https://github.com/Mista-Tea/improved-weight" "Weight tool but with more features")
 mod_info_improved_antinoclip=(MOD "improved-antinoclip" "Improved Antinoclip" "https://github.com/Mista-Tea/improved-antinoclip/archive/master.zip" "improved-antinoclip-master.zip" "0" "LowercaseOn" "${systemdir}/addons" "OVERWRITE" "ENGINES" "Garry's Mod;" "NOTGAMES" "https://github.com/Mista-Tea/improved-antinoclip" "Controls clipping trough an object")

+ 3 - 3
lgsm/modules/query_gsquery.py

@@ -11,7 +11,7 @@ import socket
 import sys
 
 engine_types = ('protocol-valve', 'protocol-quake2', 'protocol-quake3', 'protocol-gamespy1',
-                'protocol-unreal2', 'ut3', 'minecraft', 'minecraftbe', 'jc2mp', 'mumbleping', 'soldat', 'teeworlds')
+                'protocol-unreal2', 'ut3', 'minecraft', 'minecraftbe', 'jc2m', 'mumbleping', 'soldat', 'teeworlds')
 
 
 class gsquery:
@@ -23,7 +23,7 @@ class gsquery:
     idtech3query = ('protocol-quake3', 'iw3.0', 'ioquake3', 'qfusion')
     minecraftquery = ('minecraft', 'lwjgl2')
     minecraftbequery = ('minecraftbe')
-    jc2mpquery = ('jc2mp')
+    jc2mquery = ('jc2m')
     mumblequery = ('mumbleping')
     soldatquery = ('soldat')
     twquery = ('teeworlds')
@@ -40,7 +40,7 @@ class gsquery:
             self.query_prompt_string = b'\xff\xff\xff\xffstatus\x00'
         elif self.argument.engine in self.idtech3query:
             self.query_prompt_string = b'\xff\xff\xff\xffgetstatus'
-        elif self.argument.engine in self.jc2mpquery:
+        elif self.argument.engine in self.jc2mquery:
             self.query_prompt_string = b'\xFE\xFD\x09\x10\x20\x30\x40'
         elif self.argument.engine in self.minecraftquery:
             self.query_prompt_string = b'\xFE\xFD\x09\x3d\x54\x1f\x93'

+ 1 - 1
lgsm/modules/update_fctr.sh

@@ -34,7 +34,7 @@ fn_update_localbuild() {
 }
 
 fn_update_remotebuild() {
-	# Get remote build info.
+	# Gets remote build info.
 	apiurl="https://factorio.com/get-download/${branch}/headless/${factorioarch}"
 	remotebuildresponse=$(curl -s "${apiurl}")
 	remotebuildversion=$(echo "${remotebuildresponse}" | grep -o '[0-9]\.[0-9]\{1,\}\.[0-9]\{1,\}' | head -1)

+ 1 - 1
lgsm/modules/update_jk2.sh

@@ -31,7 +31,7 @@ fn_update_localbuild() {
 }
 
 fn_update_remotebuild() {
-	# Get remote build info.
+	# Gets remote build info.
 	apiurl="https://api.github.com/repos/mvdevs/jk2mv/releases/latest"
 	remotebuildresponse=$(curl -s "${apiurl}")
 	remotebuildfilename=$(echo "${remotebuildresponse}" | jq -r '.assets[]|select(.browser_download_url | contains("dedicated.zip")) | .name')

+ 1 - 1
lgsm/modules/update_mc.sh

@@ -34,7 +34,7 @@ fn_update_localbuild() {
 }
 
 fn_update_remotebuild() {
-	# Get remote build info.
+	# Gets remote build info.
 	apiurl="https://launchermeta.mojang.com/mc/game/version_manifest.json"
 	remotebuildresponse=$(curl -s "${apiurl}")
 	# Latest release.

+ 11 - 8
lgsm/modules/update_mcb.sh

@@ -38,7 +38,7 @@ fn_update_localbuild() {
 	# Gets local build info.
 	fn_print_dots "Checking local build: ${remotelocation}"
 	# Uses log file to get local build.
-	localbuild=$(grep Version "${consolelogdir}"/* 2> /dev/null | tail -1 | sed 's/.*Version: //' | tr -d '\000-\011\013-\037')
+	localbuild=$(grep -hoP 'Version:\s*\K[\d.]+' "${consolelogdir}"/* 2> /dev/null | sort -V -r | head -n1)
 	if [ -z "${localbuild}" ]; then
 		fn_print_error "Checking local build: ${remotelocation}: missing local build info"
 		fn_script_log_error "Missing local build info"
@@ -51,15 +51,18 @@ fn_update_localbuild() {
 }
 
 fn_update_remotebuild() {
-	# Random number for userAgent
-	randomint=$(tr -dc 0-9 < /dev/urandom 2> /dev/null | head -c 4 | xargs)
-	# Get remote build info.
-	if [ "${mcversion}" == "latest" ]; then
-		remotebuildversion=$(curl -H "Accept-Encoding: identity" -H "Accept-Language: en" -Ls -A "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.${randomint}.212 Safari/537.36" "https://www.minecraft.net/en-us/download/server/bedrock/" | grep -o 'https://www.minecraft.net/bedrockdedicatedserver/bin-linux/[^"]*' | sed 's/.*\///' | grep -Eo "[.0-9]+[0-9]")
+	# Gets remote build info.
+	apiurl="https://net-secondary.web.minecraft-services.net/api/v1.0/download/links"
+	remotebuildresponse=$(curl -s "${apiurl}" | jq '.result.links[]')
+	# Latest preview.
+	if [ "${mcversion}" == "preview" ]; then
+		remotebuildurl=$(echo "${remotebuildresponse}" | jq -r 'select(.downloadType == "serverBedrockPreviewLinux") | .downloadUrl')
+	# Latest release.
 	else
-		remotebuildversion="${mcversion}"
+		remotebuildurl=$(echo "${remotebuildresponse}" | jq -r 'select(.downloadType == "serverBedrockLinux") | .downloadUrl')
 	fi
-	remotebuildurl="https://www.minecraft.net/bedrockdedicatedserver/bin-linux/bedrock-server-${remotebuildversion}.zip"
+	remotebuildversion=$(echo "${remotebuildurl}" | grep -Eo "[.0-9]+[0-9]")
+	remotebuildfilename="bedrock-server-${remotebuildversion}.zip"
 
 	if [ "${firstcommandname}" != "INSTALL" ]; then
 		fn_print_dots "Checking remote build: ${remotelocation}"

+ 1 - 1
lgsm/modules/update_mta.sh

@@ -34,7 +34,7 @@ fn_update_localbuild() {
 }
 
 fn_update_remotebuild() {
-	# Get remote build info.
+	# Gets remote build info.
 	apiurl="https://linux.multitheftauto.com/revision/latest.txt"
 	remotebuildresponse=$(curl -s "${apiurl}")
 	remotebuildfilename="multitheftauto_linux_x64.tar.gz"

+ 1 - 1
lgsm/modules/update_pmc.sh

@@ -32,7 +32,7 @@ fn_update_localbuild() {
 }
 
 fn_update_remotebuild() {
-	# Get remote build info.
+	# Gets remote build info.
 	apiurl="https://api.papermc.io/v2/projects"
 	# Get list of projects.
 	remotebuildresponse=$(curl -s "${apiurl}")

+ 1 - 1
lgsm/modules/update_ts3.sh

@@ -31,7 +31,7 @@ fn_update_localbuild() {
 }
 
 fn_update_remotebuild() {
-	# Get remote build info.
+	# Gets remote build info.
 	apiurl="https://www.teamspeak.com/versions/server.json"
 	remotebuildresponse=$(curl -s "${apiurl}")
 

+ 1 - 1
lgsm/modules/update_ut99.sh

@@ -32,7 +32,7 @@ fn_update_localbuild() {
 }
 
 fn_update_remotebuild() {
-	# Get remote build info.
+	# Gets remote build info.
 	apiurl="https://api.github.com/repos/OldUnreal/UnrealTournamentPatches/releases/latest"
 	remotebuildresponse=$(curl -s "${apiurl}")
 	remotebuildfilename=$(echo "${remotebuildresponse}" | jq -r '.assets[]|select(.browser_download_url | contains("Linux-amd64")) | .name')

+ 1 - 1
lgsm/modules/update_vints.sh

@@ -34,7 +34,7 @@ fn_update_localbuild() {
 }
 
 fn_update_remotebuild() {
-	# Get remote build info.
+	# Gets remote build info.
 	apiurl="http://api.vintagestory.at/stable-unstable.json"
 	remotebuildresponse=$(curl -s "${apiurl}")
 	if [ "${branch}" == "stable" ]; then

+ 1 - 1
lgsm/modules/update_xnt.sh

@@ -36,7 +36,7 @@ fn_update_localbuild() {
 }
 
 fn_update_remotebuild() {
-	# Get remote build info.
+	# Gets remote build info.
 	apiurl="https://api.github.com/repos/xonotic/xonotic/tags"
 	remotebuildresponse=$(curl -s "${apiurl}")
 	remotebuildtag=$(echo "${remotebuildresponse}" | jq -r '.[0].name')

+ 1 - 1
linuxgsm.sh

@@ -24,7 +24,7 @@ if [ -f ".dev-debug" ]; then
 	set -x
 fi
 
-version="v25.1.5"
+version="v25.1.6"
 shortname="core"
 gameservername="core"
 commandname="CORE"