FireDemonite icon

ItemRequester (computer, turtle needed) (w/chatbox)

FireDemonite | PRO | 10/15/18 12:49:37 PM UTC | 0 ⭐ | 228 👁️ | Never ⏰ | []
Lua |

2.8 KB

|

None

|

0 👍

/

0 👎

rednet.open("left")
local turtleID = 0
 
local file = fs.open("disk/items.txt","r")
CurrItems = textutils.unserialise(file.readAll())
file.close()
 
if (fs.exists("Config.txt")) then
    local file = fs.open("Config.txt","r")
    file.readLine()
    turtleID = file.readLine()
else
    while not (tonumber(turtleID) and tonumber(turtleID) > 0) do
        term.clear()
        term.setCursorPos(1,1)
        term.write("Turtle ID: ")
        turtleID = read()
        if not (tonumber(turtleID)) then
            print("Not a number!")
            sleep(1)
        end
    end
    local file = fs.open("Config.txt","a")
    file.close()
    file = fs.open("Config.txt","w")
 
    file.writeLine("TurtleID: ")
    file.write(turtleID)
    file.close()
end
 
chatbox = peripheral.wrap("bottom")
chatbox.setName("ItemRouter")
 
function fetchItem(item, itemAmount)
    if (checkItem(item)) then
        item = CurrItems[item]
        rednet.send(tonumber(turtleID), {item, itemAmount})
        return true
    else
        return false
    end
end
 
function checkItem(item)
    if (CurrItems[item] ~= nil) then
        print(CurrItems[item])
        return true
    else
        return false
    end
end
 
while true do
    getitem = false
    cmd = ""
    item = ""
    itemAmount = ""
    term.clear()
    term.setCursorPos(1,1)
    print("Computer ID: "..os.getComputerID())
    print("Turtle ID: "..turtleID)
    print("Type 'item' to get an item, type 'list' to get a list of all the items")
    event, side, name, cmd = os.pullEvent("chat_message")
 
if (cmd ~= "getItem list") then
  if (name == "FireDemonite" or name == "aleroqu") then
    for w in string.gmatch(cmd, "%d+") do
        itemAmount = w
    end
    for w in string.gmatch(cmd, "%a+") do
        if ( w == "getItem") then
            getitem = true
        end
        if (getitem and w ~= "getItem") then
            item = item.." "..w
        end
    end
    item = string.sub(item,2)
    crafting = false
 
    --print("Item: "..item.." Amount: "..itemAmount)
 
    if (getitem and crafting == false) then
        term.clear()
        term.setCursorPos(1,1)
        sleep(1)
        chatbox.say("Item: "..item)
        term.write("Item: "..item)
        sleep(1)
        chatbox.say("Amount: "..itemAmount)
        print("ItemAmount: "..itemAmount)
 
        if (fetchItem(item, tonumber(itemAmount))) then
            print("Getting items...")
            sleep(5)
        else
            print("Not an exisiting item")
            chatbox.say("Not a valid item")
            sleep(1)
        end
    end
  end
else
    i = 1
    for k,v in pairs(CurrItems) do
        --chatbox.say(k)
        if (i>1) then
            list = list..", "..k
        else
            list = k
        end
    i = i + 1
    end
    --list = list.sub(list,2)
    sleep(1)
    chatbox.say(list)
end
end

Comments