Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local args = {...}
- local wifi = peripheral.find("modem")
- local channel = 52
- if #args > 0 then channel = tonumber(args[1]) end
- print("Opening wifi channel ",channel)
- wifi.open(channel)
- local interval = #args >= 2 and tonumber(args[2]) or 5
- local pos = #args >= 5 and {x=tonumber(args[3]),y=tonumber(args[4]),z=tonumber(args[5])} or {x=0,y=0,z=0}
- local save = #args >= 6 and args[6] or nil
- local sensor = peripheral.find("peripheral")
- local signalSide = "front"
- for _,i in pairs(peripheral.getNames()) do
- if peripheral.getType(i) == "auto_placer" then
- signalSide = i
- break
- end
- end
- print("Listening for redstone signal on ",signalSide," side")
- local function saveData(line)
- if save then
- local saveFile = fs.open(save,"a")
- if saveFile then
- saveFile.writeLine(os.day()..":"..os.time()..": "..line)
- saveFile.flush()
- saveFile.close()
- end
- end
- end
- local event, modemSide, senderChannel, replyChannel, message, senderDistance
- local players = {}
- while true do
- if rs.getInput(signalSide) then os.queueEvent("redstone") end
- event, modemSide, senderChannel, replyChannel, message, senderDistance = os.pullEvent()
- if event == "redstone" and rs.getInput(signalSide) then
- players = sensor.getPlayerNames()
- for i,k in pairs(players) do
- if k ~= "_Tikkamasala_" then
- saveData(k)
- saveData(" x="..math.floor(sensor.getPlayerData(k).position.x+pos.x).." y="..math.floor(sensor.getPlayerData(k).position.y+pos.y).." z="..math.floor(sensor.getPlayerData(k).position.z+pos.z))
- saveData("held item: "..sensor.getPlayerData(k).heldItem.name)
- --print(k," x=",math.floor(sensor.getPlayerData(k).position.x+pos.x)," y=",math.floor(sensor.getPlayerData(k).position.y+pos.y)," z=",math.floor(sensor.getPlayerData(k).position.z+pos.z))
- --print("held item: ",sensor.getPlayerData(k).heldItem.name)
- end
- end
- end
- sleep(interval)
- end
Advertisement
Add Comment
Please, Sign In to add comment