Using hopper.lua as a library - umnikos/hopper.lua GitHub Wiki
Hopper.lua can be used within scripts by importing the file as a library. This will give you a single function called hopper
, which accepts an arguments string with the exact same syntax as the command line interface. This is better than using shell.run()
to call hopper.lua because it allows for caching various data and thus way faster transfer. The function passes -once -quiet
by default, use -forever
and -verbose
to override them.
Example program to autocraft buckets: (Chest ender_storage_6958
is full of iron ingots and chest ender_storage_6959
is where the finished buckets should go. The program is written in such a way as to not break if the turtle randomly gets rebooted or the source chest runs out of iron ingots)
local hopper = require("hopper")
turtle.select(16)
while true do
-- fill inventory with iron
hopper("*storage*_6958 self *:iron_ingot -to_slot 1 -to_slot 3 -to_slot 6 -to_limit 16 -per_slot")
-- check how many slots have at least 1 iron ingot in them
local count = hopper("self void *:iron_ingot -transfer_limit 1 -per_slot")
if count >= 3 then
-- all is good, craft!
turtle.craft(16)
end
-- regardless of success, output the buckets
hopper("self *storage*_6959 *bucket* -to_slot_range 1 9")
sleep(1)
end
Usage of storages and aliases is also supported. Simply use -storage
or -alias
in a command and the definition will be remembered for all further commands.
Example:
local hopper = require("hopper")
hopper("-alias a *chest*")
hopper("-alias b *barrel*")
hopper("a b") -- equivalent to hopper("*chest* *barrel*")