85 lines
2.0 KiB
Lua
85 lines
2.0 KiB
Lua
function hold_items_in_hotbar(target_kinds, inventory)
|
|
if not inventory then
|
|
inventory = client:open_inventory()
|
|
end
|
|
for index, item in ipairs(inventory.contents) do
|
|
if index >= 37 and index <= 45 and table.contains(target_kinds, item.kind) then
|
|
inventory = nil
|
|
sleep(500)
|
|
client:set_held_slot(index - 37)
|
|
return true
|
|
end
|
|
end
|
|
return false
|
|
end
|
|
|
|
function hold_items(target_kinds)
|
|
local inventory = client:open_inventory()
|
|
if hold_items_in_hotbar(target_kinds, inventory) then
|
|
return true
|
|
end
|
|
for index, item in ipairs(inventory.contents) do
|
|
if table.contains(target_kinds, item.kind) then
|
|
inventory:click({ source_slot = index - 1, target_slot = client.held_slot }, SWAP)
|
|
sleep(100)
|
|
inventory = nil
|
|
sleep(500)
|
|
return true
|
|
end
|
|
end
|
|
inventory = nil
|
|
sleep(500)
|
|
return false
|
|
end
|
|
|
|
function steal(item_name)
|
|
for _, chest_pos in ipairs(client:find_blocks(client.position, get_block_states({ "chest" }))) do
|
|
client:go_to({ position = chest_pos, radius = 3 }, { type = RADIUS_GOAL })
|
|
client:look_at(chest_pos)
|
|
|
|
local container = client:open_container_at(chest_pos)
|
|
for index, item in ipairs(container.contents) do
|
|
if item.kind == item_name then
|
|
container:click({ slot = index - 1 }, THROW_ALL)
|
|
sleep(50)
|
|
end
|
|
end
|
|
|
|
container = nil
|
|
while client.container do
|
|
sleep(50)
|
|
end
|
|
end
|
|
end
|
|
|
|
function dump_inventory(hide_empty)
|
|
local inventory = client:open_inventory()
|
|
for index, item in ipairs(inventory.contents) do
|
|
if hide_empty and item.count == 0 then
|
|
goto continue
|
|
end
|
|
|
|
local item_damage = ""
|
|
if item.damage then
|
|
item_damage = item.damage
|
|
end
|
|
info(string.format("%-2d = %2dx %-32s %s", index - 1, item.count, item.kind, item_damage))
|
|
|
|
::continue::
|
|
end
|
|
end
|
|
|
|
function drop_all_hotbar()
|
|
local inventory = client:open_inventory()
|
|
for i = 0, 9 do
|
|
inventory:click({ slot = 36 + i }, THROW_ALL)
|
|
end
|
|
end
|
|
|
|
function drop_all_inventory()
|
|
local inventory = client:open_inventory()
|
|
for i = 0, 45 do
|
|
inventory:click({ slot = i }, THROW_ALL)
|
|
end
|
|
end
|