Advertisement
Guest User

forward.lua

a guest
Mar 24th, 2014
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.21 KB | None | 0 0
  1. local component = require "component"
  2. local event = require "event"
  3. local text = require "text"
  4. local shell = require "shell"
  5.  
  6. local modem = component.modem
  7. tape = component.tape_drive
  8.  
  9. local modemPower = 100
  10. local nodeAddr = "derp"
  11. local storedMessages = 0
  12.  
  13.  
  14.  
  15. local function tape_rezero()
  16.  tape.seek(0-tape.getSize())
  17. end
  18.  
  19. local function extractPath(path)
  20.  return path:sub(1,path:find("!")-1), path:sub(path:find("!")+1,path:len())
  21. end
  22.  
  23. local function idCheck(addr)
  24.  local n = 0
  25.  repeat
  26.   n = n + 1
  27.   print(tConnections[n])
  28.  until tConnections[n] == addr or tConnections[n] == nil
  29.  if tConnections[n] == addr then
  30.   print(n..":"..addr)
  31.   return true
  32.  end
  33. end
  34.  
  35. function recvMsg(name,user,message)
  36.  
  37. end
  38.  
  39. local function sks_send(path,retPath,name,user,message)
  40.  local toAddr, contPath = extractPath(path)
  41.  modem.broadcast(42,toAddr,contPath,retPath,name,user,message)
  42. end
  43.  
  44. local function store(path,retPath,name,user,message)
  45.  tape.write(path:len())
  46.  tape.write(path)
  47.  print(path)
  48.  tape.write(retPath:len())
  49.  tape.write(retPath)
  50.  print(retPath)
  51.  tape.write(name:len())
  52.  tape.write(name)
  53.  print(name)
  54.  tape.write(user:len())
  55.  tape.write(user)
  56.  print(user)
  57.  tape.write(message:len())
  58.  tape.write(message)
  59.  print(message)
  60.  storedMessages = storedMessages + 1
  61.  print "Message stored! Will be sent soon."
  62. end
  63.  
  64. function msgListener(_,_,from,port,_,toAddr,path,retPath,name,user,message)
  65.  print(from)
  66.  if port == 42 and path ~= nodeAddr and toAddr == nodeAddr then
  67.   store(path,retPath,name,user,message)
  68.  elseif port == 42 and path == nodeAddr and toAddr == nodeAddr then
  69.   recvMsg(name,user,message)
  70.  end
  71. end
  72.  
  73. local function sendTimer()
  74.  tape_rezero()
  75.  print "Send timer activated"
  76.  if storedMessages > 0 then
  77.   repeat
  78.    local path = tape.read(tape.read())
  79.    local retPath = tape.read(tape.read())
  80.    local name = tape.read(tape.read())
  81.    local user = tape.read(tape.read())
  82.    local message = tape.read(tape.read())
  83.    sks_send(path,retPath,name,user,message)
  84.    storedMessages = storedMessages - 1
  85.   until storedMessages == 0
  86.   print "Messages sent!"
  87.  else
  88.   print "No messages sent!"
  89.  end
  90. end
  91.  
  92. local function setup()
  93.  modem.open(42)
  94.  modem.setStrength(100)
  95.  event.listen("modem_message",msgListener)
  96.  event.timer(30,sendTimer,math.huge)
  97.  sendTimer()
  98. end
  99.  
  100. setup()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement