Inventory Change Callback
Provide a global callback for handling player inventory changes.
Inventory Change Callback
Provide a universal global callback for handling player inventory changes.
Information for GAME developers
The mod can handle all types of natural events ("move", "put", "take",
"dig", "place", "pickup", "eat"), except the changes made manually in
code. So please don't forget to call
rr.handle_player_inventory_changes(player) after using inventory
changing functions:
local name = player:get_player_name()
local inv = player:get_inventory()
local list = inv:get_list("main")
-- Your changes example:
list[1] = ItemStack("")
inv:set_list("main", list)
Now trigger handlers manually:
-- "custom" is optional action name
rr.handle_player_inventory_changes(player, "custom")
OR just update cache (if you don't want to trigger them for some reason):
rr.player_inventory_main_lists[name] = list
Information for MOD developers
It is actually not necessary to add a handler to every custom event in the game. Alternatively, you can just use this workaround, which will check the inventory of all players in the game every second:
minetest.register_on_mods_loaded(rr.auto_detect_inventory_changes)
Usage
See test.lua.
Debug mode
Uncomment lines at the bottom of init.lua.
This mod was created in Rustroot Forge.
All my mods uses Luanti LSP-API annotations, StyLua and Luacheck.
Links
- Source: https://notabug.org/rr/inv_change_cb
- Issues: https://notabug.org/rr/inv_change_cb/issues
- Original ContentDB page: content.luanti.org/packages/luarocks/inv_change_cb/
License
MIT
Development state
ACTIVELY_DEVELOPED
| Version | Date | Min engine | Size | Download |
|---|---|---|---|---|
| 1.1.1 | 2023-09-03 02:13:44 | 5.6 | 3.5 KB | Download |