Răsfoiți Sursa

fix(mcb): query Bedrock over TCP now that NetherNet is the default (#5170)

Bedrock Dedicated Server 1.26.50 and later default to the NetherNet
transport. server-port becomes a TCP signalling port and gameplay uses
the UDP ports in server-udp-ports, so the RakNet query on UDP
server-port gets no answer and monitor restarts a healthy server.

- querymode is now 5 (tcp) against server-port.
- details shows the TCP signalling port and server-udp-ports, or the
  old UDP ports when transport=raknet is set.
- server-portv6 is read into portipv6, so the IPv6 port is shown.

This is a temporary fix until GameDig can query NetherNet servers
(gamedig/node-gamedig#800). Once a GameDig release includes it, mcb
can go back to querymode 2 with querytype mbe and report the server
name, version and player count again.

Fixes #5169
Daniel Gibbs 1 zi în urmă
părinte
comite
d4f49f91fa

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

@@ -155,7 +155,7 @@ stopmode="5"
 # 3: gamedig
 # 4: gsquery
 # 5: tcp
-querymode="2"
+querymode="5"
 querytype="mbe"
 
 ## Console type

+ 5 - 1
lgsm/modules/info_game.sh

@@ -1596,8 +1596,10 @@ fn_info_game_mcb() {
 		fn_info_game_java_properties "gamemode" "gamemode"
 		fn_info_game_java_properties "maxplayers" "max-players"
 		fn_info_game_java_properties "port" "server-port"
-		fn_info_game_java_properties "portv6" "server-portv6"
+		fn_info_game_java_properties "portipv6" "server-portv6"
 		fn_info_game_java_properties "servername" "server-name"
+		fn_info_game_java_properties "transport" "transport"
+		fn_info_game_java_properties "udpport" "server-udp-ports"
 		fn_info_game_java_properties "worldname" "level-name"
 	fi
 	gamemode="${gamemode:-"NOT SET"}"
@@ -1605,6 +1607,8 @@ fn_info_game_mcb() {
 	portipv6="${portipv6:-"NOT SET"}"
 	queryport="${port}"
 	servername="${servername:-"NOT SET"}"
+	transport="${transport:-"nethernet"}"
+	udpport="${udpport:-"NOT SET"}"
 	worldname="${worldname:-"NOT SET"}"
 }
 

+ 7 - 2
lgsm/modules/info_messages.sh

@@ -1300,8 +1300,13 @@ fn_info_messages_mc() {
 fn_info_messages_mcb() {
 	{
 		fn_port "header"
-		fn_port "Game" port udp
-		fn_port "Game" portipv6 udp6
+		if [ "${transport}" == "raknet" ]; then
+			fn_port "Game" port udp
+			fn_port "Game" portipv6 udp6
+		else
+			fn_port "Signalling" port tcp
+			fn_port "Game" udpport udp
+		fi
 	} | column -s $'\t' -t
 }