From 339ee40f9c96b65e99c3c4c32698233e1e2aa1d3 Mon Sep 17 00:00:00 2001 From: Lars Mueller Date: Sun, 9 Jan 2022 19:03:43 +0100 Subject: [PATCH] Log a warning instead of erroring --- dynamic_add_media.lua | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/dynamic_add_media.lua b/dynamic_add_media.lua index 5663660..4bcddd8 100644 --- a/dynamic_add_media.lua +++ b/dynamic_add_media.lua @@ -11,15 +11,7 @@ function epidermis.dynamic_add_media(path, on_all_received, ephemeral) end assert(not existing_path) assert(modlib.file.exists(path)) - local to_receive = {} - for player in modlib.minetest.connected_players() do - local name = player:get_player_name() - if minetest.get_player_information(name).protocol_version < 39 then - minetest.kick_player(name, "Your Minetest client is outdated (< 5.3) and can't receive dynamic media. Rejoin to get the added media.") - else - to_receive[name] = true - end - end + local arg = path if minetest.features.dynamic_add_media_table then arg = {filepath = path} @@ -29,11 +21,25 @@ function epidermis.dynamic_add_media(path, on_all_received, ephemeral) arg.ephemeral = false end end + + local to_receive = {} + for player in modlib.minetest.connected_players() do + local name = player:get_player_name() + if minetest.get_player_information(name).protocol_version < 39 then + minetest.kick_player(name, "Your Minetest client is outdated (< 5.3) and can't receive dynamic media. Rejoin to get the added media.") + else + to_receive[name] = true + end + end + if not next(to_receive) then - minetest.dynamic_add_media(arg, error) + minetest.dynamic_add_media(arg, function(name) + minetest.log("warning", name .. " received media despite not being connected") + end) on_all_received() return end + minetest.dynamic_add_media(arg, function(name) if name == nil then on_all_received()