1 minetest.register_globalstep(function(dtime)
2 local player = minetest.localplayer
3 if not player then return end
4 local item = player:get_wielded_item()
5 local itemdef = minetest.get_item_def(item:get_name())
6 local wieldindex = player:get_wield_index()
7 if minetest.settings:get_bool("autorefill") and itemdef then
8 local space = item:get_free_space()
9 local i = minetest.find_item(item:get_name(), wieldindex + 1)
10 if i and space > 0 then
11 local invact = InventoryAction("move")
12 invact:to("current_player", "main", wieldindex)
13 invact:from("current_player", "main", i)
14 invact:set_count(space)
18 if minetest.settings:get_bool("autoeject") then
19 local invact = InventoryAction("drop")
20 local list = (minetest.settings:get("eject_items") or ""):split(",")
21 local inventory = minetest.get_inventory("current_player")
22 for index, stack in pairs(inventory.main) do
23 if table.indexof(list, stack:get_name()) ~= -1 then
24 invact:from("current_player", "main", index)
31 minetest.register_list_command("eject", "Configure AutoEject", "eject_items")
33 minetest.register_cheat("AutoRefill", "Inventory", "autorefill")
34 minetest.register_cheat("AutoEject", "Inventory", "autoeject")