forked from whosit/waypoint_compass
fix overwriting a non-compass item because of switching during lag
This commit is contained in:
parent
4da4a63c6c
commit
05f47c2445
21
init.lua
21
init.lua
@ -361,17 +361,22 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
|
||||
|
||||
local label = fields.label
|
||||
set_compass_meta_label(meta, label)
|
||||
|
||||
local success = player:set_wielded_item(compass_item)
|
||||
if not success then
|
||||
-- no idea why this can happen
|
||||
minetest.log("error","[MOD] waypoint_compass: " ..
|
||||
player:get_player_name() ..
|
||||
" Failed to swap compass after editing it")
|
||||
|
||||
-- Prevent overwriting random item if user switched before
|
||||
-- formspec appeared. FIXME can still change another compass.
|
||||
local current_item = player:get_wielded_item()
|
||||
if current_item:get_name() == "waypoint_compass:compass" then
|
||||
local success = player:set_wielded_item(compass_item)
|
||||
if not success then
|
||||
-- no idea why this can happen
|
||||
minetest.log("error","[MOD] waypoint_compass: " ..
|
||||
player:get_player_name() ..
|
||||
" Failed to swap compass after editing it")
|
||||
end
|
||||
end
|
||||
-- assume dialog is closed and reset context
|
||||
compass_dialog_context[player:get_player_name()] = nil
|
||||
update_hud_waypoint(player, compass_item, 'force')
|
||||
update_hud_waypoint(player, current_item, 'force')
|
||||
end
|
||||
end)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user