make detached trade_inv beeing sent only to the player it belongs to and delete it when the player leaves

This commit is contained in:
Sokomine 2024-02-15 00:48:44 +01:00
parent 7b14fb6668
commit d588e38308
2 changed files with 12 additions and 1 deletions

View File

@ -221,7 +221,8 @@ yl_speak_up.player_joined_add_trade_inv = function(player, last_login)
on_take = function(inv, listname, index, stack, player)
return yl_speak_up.trade_inv_on_take(inv, listname, index, stack, player)
end,
})
-- create the detached inventory only for that player (don't spam other clients with it):
}, tostring(pname))
-- prepare the actual inventories
trade_inv:set_size("pay", 1)
trade_inv:set_size("buy", 1)
@ -233,3 +234,12 @@ yl_speak_up.player_joined_add_trade_inv = function(player, last_login)
-- for setting wielded items (left and right)
trade_inv:set_size("wield", 2)
end
yl_speak_up.player_left_remove_trade_inv = function(player)
if(not(plaer)) then
return
end
local pname = player:get_player_name()
minetest.remove_detached_inventory("yl_speak_up_player_"..tostring(pname))
end

View File

@ -53,6 +53,7 @@ minetest.register_privilege("npc_talk_admin", npc_talk_admin_priv_definition)
minetest.register_on_leaveplayer(
function(player)
yl_speak_up.reset_vars_for_player(player:get_player_name(), true)
yl_speak_up.player_left_remove_trade_inv(player)
end
)