diff options
author | est31 <MTest31@outlook.com> | 2016-04-15 04:13:53 +0200 |
---|---|---|
committer | est31 <MTest31@outlook.com> | 2016-04-15 14:40:31 +0200 |
commit | bc4dc80c0166bd5c7f645bec1472101e4a9e20bb (patch) | |
tree | dd09c0072a3ab4361cc447853e17d14bcd1fef00 /builtin/mainmenu/common.lua | |
parent | d82c5da0dccb1f30250725d17c3f373aacdda0e2 (diff) | |
download | minetest-bc4dc80c0166bd5c7f645bec1472101e4a9e20bb.tar.gz minetest-bc4dc80c0166bd5c7f645bec1472101e4a9e20bb.tar.bz2 minetest-bc4dc80c0166bd5c7f645bec1472101e4a9e20bb.zip |
Mainmenu: Still support favorites if send_pre_v25_init is disabled
@SmallJoker has noted a bug that servers from the (local) main menu
favorites list can't be opened.
This commit fixes the bug by disabling any main menu based protocol
checks for servers from the favorite list.
Also, it fixes a second bug that happens when a server from the
public serverlist doesn't send its supported protocol versions,
most likely because its running a minetest older than commit [1].
Then we have shown an error msg that the server has enforced
one specific protocol version. This was most likely not the case.
Of course, we can't do anything better than do an assumption on
the protocol versions if they are not known. That assumption
should however be closest to the most often occuring case as
possible.
Also, some little cleanups.
[1]: 5a0ed780f56a5225b3d7c5f64099586e390e5f39 "Server: announce MIN/MAX protocol version supported to serverlist. Client: check serverlist"
Diffstat (limited to 'builtin/mainmenu/common.lua')
-rw-r--r-- | builtin/mainmenu/common.lua | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/builtin/mainmenu/common.lua b/builtin/mainmenu/common.lua index 3dd7d8b4a..62ab2b578 100644 --- a/builtin/mainmenu/common.lua +++ b/builtin/mainmenu/common.lua @@ -246,6 +246,7 @@ function asyncOnlineFavourites() }} end menudata.favorites = menudata.public_known + menudata.favorites_is_public = true core.handle_async( function(param) return core.get_favorites("online") @@ -257,6 +258,7 @@ function asyncOnlineFavourites() if favs[1] then menudata.public_known = favs menudata.favorites = menudata.public_known + menudata.favorites_is_public = true end core.event_handler("Refresh") end @@ -297,12 +299,14 @@ function is_server_protocol_compat_or_error(server_proto_min, server_proto_max) if not is_server_protocol_compat(server_proto_min, server_proto_max) then local server_prot_ver_info local client_prot_ver_info - if server_proto_min ~= server_proto_max then + local s_p_min = server_proto_min or 13 + local s_p_max = server_proto_max or 24 + if s_p_min ~= s_p_max then server_prot_ver_info = fgettext_ne("Server supports protocol versions between $1 and $2. ", - server_proto_min or 13, server_proto_max or 24) + s_p_min, s_p_max) else server_prot_ver_info = fgettext_ne("Server enforces protocol version $1. ", - server_proto_min or 13) + s_p_min) end if min_supp_proto ~= max_supp_proto then client_prot_ver_info= fgettext_ne("We support protocol versions between version $1 and $2.", |