From ec9c227062e797a174936beb66a60dd4ca59c222 Mon Sep 17 00:00:00 2001 From: Lars Mueller Date: Sun, 6 Dec 2020 11:28:28 +0100 Subject: [PATCH] Redo backwards compatibility hack --- mods/beds/functions.lua | 4 ++-- mods/player_api/api.lua | 22 +++++++--------------- 2 files changed, 9 insertions(+), 17 deletions(-) diff --git a/mods/beds/functions.lua b/mods/beds/functions.lua index 28d850d8..b2043031 100644 --- a/mods/beds/functions.lua +++ b/mods/beds/functions.lua @@ -73,7 +73,7 @@ local function lay_down(player, pos, bed_pos, state, skip) player:set_look_horizontal(math.random(1, 180) / 100) player_api.player_attached[name] = false - player:set_physics_override(1, 1, 1) + --player:set_physics_override(1, 1, 1) hud_flags.wielditem = true player_api.set_animation(player, "stand" , 30) @@ -108,7 +108,7 @@ local function lay_down(player, pos, bed_pos, state, skip) y = bed_pos.y + 0.07, z = bed_pos.z + dir.z / 2 } - player:set_physics_override(0, 0, 0) + --player:set_physics_override(0, 0, 0) player:set_pos(p) player_api.player_attached[name] = true hud_flags.wielditem = false diff --git a/mods/player_api/api.lua b/mods/player_api/api.lua index ac1c2888..6d3bcb4a 100644 --- a/mods/player_api/api.lua +++ b/mods/player_api/api.lua @@ -49,7 +49,7 @@ local players = {} player_api.player_attached = {} local function get_player_data(player) - return assert(players[player:get_player_name()], "offline_player") + return assert(players[player:get_player_name()]) end function player_api.get_animation(player) @@ -183,22 +183,14 @@ minetest.register_globalstep(function() end end) --- HACK for keeping backwards compatibility for _, api_function in pairs({"get_animation", "set_animation", "set_model", "set_textures"}) do local original_function = player_api[api_function] - player_api[api_function] = function(...) - local arguments = {...} - local ret -- single value works because get_animation returns only one value - local status, err = pcall(function() - ret = original_function(unpack(arguments)) - end) - if not status then - if err == "offline_player" then - minetest.log("warning", api_function .. " called on offline player") - return - end - error(err) + player_api[api_function] = function(player, ...) + if not players[player:get_player_name()] then + -- HACK for keeping backwards compatibility + minetest.log("warning", api_function .. " called on offline player") + return end - return ret + original_function(player, ...) end end \ No newline at end of file