Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local port = 1212
- local net = peripheral.find("modem")
- net.open(port)
- local eventHandlers = {}
- local modemHandlers = {handlers={}}
- local keyHandlers = {handlers={}}
- local commandHandlers = {handlers={}}
- function commandHandlers.addCommandHandler(name, func)
- if not commandHandlers["handlers"][name] then
- commandHandlers["handlers"][name] = {}
- commandHandlers["handlers"][name]["name"] = name
- commandHandlers["handlers"][name]["exec"] = func
- end
- end
- function commandHandlers.handleCommand(cmd, args)
- cmd = string.lower(cmd)
- if commandHandlers["handlers"][cmd] then
- commandHandlers["handlers"][cmd]["exec"](cmd, args)
- else
- return false
- end
- end
- function keyHandlers.addKeyHandler(keycode, func)
- table.insert(keyHandlers["handlers"], {key=keycode, exec=func})
- end
- function keyHandlers.handleKey(keycode, isHeld)
- for k,v in pairs(keyHandlers["handlers"]) do
- if v["key"] == keycode then
- v["exec"](isHeld)
- end
- end
- end
- function modemHandlers.addModemHandler(cmd, func)
- table.insert(modemHandlers["handlers"], {cmd=cmd, exec=func})
- end
- function modemHandlers.handleMessage(channel, reply, msg, dist)
- local split = split(msg," ")
- local cmd = split[1]
- table.remove(split, 1)
- print("true")
- if modemHandlers["handlers"][cmd] then
- modemHandlers["handlers"][cmd]["exec"](channel, repy, cmd, split, dist)
- print(true)
- else
- print(false)
- return false
- end
- end
- function split(str, delim)
- local res = {}
- for match in (str..delim):gmatch("(.-)"..delim) do
- table.insert(res, match)
- end
- return res
- end
- function parseMessage(message)
- local split = split(message)
- local command = split[1]
- table.remove(split, 1)
- return command, split
- end
- function getCommandInput()
- end
- function eventHandlers.modem()
- while true do
- local ev, side, channel, replyChannel, msg, dist = os.pullEvent("modem_message")
- modemHandlers.handleMessage(channel, replyChannel, msg, dist)
- end
- end
- function eventHandlers.key()
- while true do
- local ev, key, isHeld = os.pullEvent("key")
- keyHandlers.handleKey(key, isHeld)
- end
- end
- commandHandlers.addCommandHandler("quit", function(cmd, args)
- end)
- keyHandlers.addKeyHandler(keys.t, function(keycode, isHeld)
- print("T press")
- end)
- modemHandlers.addModemHandler("test", function(channel, reply, cmd, split, dist)
- print("modem test")
- end)
- parallel.waitForAll(eventHandlers.modem, eventHandlers.key)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement