Skip to content

Commit 16b6bdd

Browse files
committed
default.set_inventory_action_loggers: Hook (instead of replace) callbacks
1 parent 996fea7 commit 16b6bdd

File tree

2 files changed

+9
-1
lines changed

2 files changed

+9
-1
lines changed

game_api.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1142,8 +1142,9 @@ the log.
11421142

11431143
`default.set_inventory_action_loggers(def, name)`
11441144

1145-
* sets the callbacks `on_metadata_inventory_move`,
1145+
* hooks the callbacks `on_metadata_inventory_move`,
11461146
`on_metadata_inventory_put` and `on_metadata_inventory_take`
11471147
that log corresponding actions
1148+
* after logging the action, the original callback (if any) is called
11481149
* `def` See [Node definition]
11491150
* `name` Description of the node in the log message

mods/default/functions.lua

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -744,16 +744,23 @@ function default.log_player_action(player, ...)
744744
minetest.log("action", msg)
745745
end
746746

747+
local nop = function() end
747748
function default.set_inventory_action_loggers(def, name)
749+
local on_move = def.on_metadata_inventory_move or nop
748750
def.on_metadata_inventory_move = function(pos, from_list, from_index,
749751
to_list, to_index, count, player)
750752
default.log_player_action(player, "moves stuff in", name, "at", pos)
753+
return on_move(pos, from_list, from_index, to_list, to_index, count, player)
751754
end
755+
local on_put = def.on_metadata_inventory_put or nop
752756
def.on_metadata_inventory_put = function(pos, listname, index, stack, player)
753757
default.log_player_action(player, "moves", stack:get_name(), "to", name, "at", pos)
758+
return on_put(pos, listname, index, stack, player)
754759
end
760+
local on_take = def.on_metadata_inventory_take or nop
755761
def.on_metadata_inventory_take = function(pos, listname, index, stack, player)
756762
default.log_player_action(player, "takes", stack:get_name(), "from", name, "at", pos)
763+
return on_take(pos, listname, index, stack, player)
757764
end
758765
end
759766

0 commit comments

Comments
 (0)