milo: peripheral improvements

This commit is contained in:
kepler155c
2018-11-21 17:28:50 -05:00
parent a5d62c3271
commit 0787cc7913
2 changed files with 36 additions and 13 deletions

View File

@@ -24,6 +24,7 @@ local fs = _G.fs
local multishell = _ENV.multishell
local os = _G.os
local shell = _ENV.shell
local turtle = _G.turtle
if multishell then
multishell.setTitle(multishell.getCurrent(), 'Milo')
@@ -71,11 +72,15 @@ if not modem.getNameLocal() then
Syntax('Wired modem is not active')
end
local introspection = Peripheral.get('plethora:introspection') or
local introspection = device['plethora:introspection'] or
turtle.equip('left', 'plethora:module:0') and device['plethora:introspection'] or
Syntax('Introspection module missing')
if not device.workbench then
Syntax('Workbench missing')
turtle.equip('right', 'minecraft:crafting_table:0')
if not device.workbench then
Syntax('Workbench missing')
end
end
local context = {

View File

@@ -122,15 +122,33 @@ local function client(socket)
_G._debug('REMOTE: disconnected from ' .. socket.dhost)
end
if device.wireless_modem then
Event.addRoutine(function()
_G._debug('REMOTE: listening on port 4242')
while true do
local socket = Socket.server(4242)
Event.addRoutine(function()
client(socket)
socket:close()
end)
end
end)
local handler
local function listen()
if device.wireless_modem then
handler = Event.addRoutine(function()
_G._debug('REMOTE: listening on port 4242')
while true do
local socket = Socket.server(4242)
Event.addRoutine(function()
client(socket)
socket:close()
end)
end
end)
end
end
Event.on({ 'device_attach', 'device_detach' }, function(_, name)
if name == 'wireless_modem' then
if handler then
handler:terminate()
handler = nil
_debug('REMOTE: wireless modem disconnected')
else
listen()
end
end
end)
listen()