From 7630898bc43dd9c6e5b3a84b64231e8a6f71c706 Mon Sep 17 00:00:00 2001 From: Moonlit Productions Date: Mon, 29 Dec 2025 21:05:43 -0500 Subject: [PATCH] minor changes --- config.lua | 5 ++++- display.lua | 18 ++++++++++++++---- handlers.lua | 5 ++++- startup.lua | 41 +++++++++++++++++++++++++++++++++++++---- 4 files changed, 59 insertions(+), 10 deletions(-) diff --git a/config.lua b/config.lua index 31b6ebb..c64c81c 100644 --- a/config.lua +++ b/config.lua @@ -25,7 +25,10 @@ config.canAccessHazardGates = true config.irisEnabled = true config.autoCloseIrisOnIncoming = true config.irisCloseDelay = 0.1 -- seconds before closing iris on incoming -config.autoOpenIrisAfterDisconnect = true + +-- Default iris state when gate is idle (no connection) +-- true = iris closed when idle, false = iris open when idle +config.irisClosedByDefault = false -- Iris password (set to nil to disable remote password unlock) config.irisPassword = "1234" diff --git a/display.lua b/display.lua index 452f5ce..65a6074 100644 --- a/display.lua +++ b/display.lua @@ -139,7 +139,7 @@ function display.selectionTabs() term.redirect(oldterm) end -function display.showIncoming(addressString, allowed, reason) +function display.showIncoming(addressName, addressString, allowed, reason) mon.setBackgroundColor(colors.black) mon.clear() @@ -159,9 +159,19 @@ function display.showIncoming(addressString, allowed, reason) mon.setCursorPos(1, 6) mon.setBackgroundColor(colors.black) - mon.write("Address:") - mon.setCursorPos(1, 7) - mon.write(addressString) + + -- Show name if found in address book + if addressName then + mon.write("Name: " .. addressName) + mon.setCursorPos(1, 7) + mon.write("Address:") + mon.setCursorPos(1, 8) + mon.write(addressString) + else + mon.write("Address:") + mon.setCursorPos(1, 7) + mon.write(addressString) + end end function display.showEntity(entityType, entityName, allowed) diff --git a/handlers.lua b/handlers.lua index 83b9f7d..762fbf1 100644 --- a/handlers.lua +++ b/handlers.lua @@ -145,7 +145,10 @@ function handlers.handleDisconnect(eventType, side, disCode) redstone.setOutput("top", false) utils.log("Stargate disconnected (code: " .. tostring(disCode) .. ")") - if config.autoOpenIrisAfterDisconnect then + -- Set iris to default state + if config.irisClosedByDefault then + utils.closeIris() + else utils.openIris() end diff --git a/startup.lua b/startup.lua index f0c2334..179d42e 100644 --- a/startup.lua +++ b/startup.lua @@ -59,9 +59,13 @@ handlers.init(config, gate, mon, utils, display, events) -- Ensure gate starts disconnected gate.disconnectStargate() --- Ensure iris starts open +-- Set iris to default state if config.irisEnabled then - gate.openIris() + if config.irisClosedByDefault then + gate.closeIris() + else + gate.openIris() + end end --------------------------------------------- @@ -243,6 +247,32 @@ end -- INCOMING WORMHOLE HANDLER --------------------------------------------- +local function findAddressName(address) + -- Search all address categories for matching address + local categories = {addresses.MainGates, addresses.playerGates, addresses.hazardGates} + + for _, category in ipairs(categories) do + for _, entry in ipairs(category) do + local name, storedAddress = entry[1], entry[2] + -- Compare addresses (excluding point of origin) + if #address == #storedAddress then + local match = true + for i = 1, #address do + if address[i] ~= storedAddress[i] then + match = false + break + end + end + if match then + return name + end + end + end + end + + return nil -- Not found in address book +end + local function handleIncomingWormhole() local state = getState() @@ -261,11 +291,14 @@ local function handleIncomingWormhole() -- Check security local allowed, reason = utils.isAddressAllowed(state.incomingAddress) local addressString = gate.addressToString(state.incomingAddress) or "Unknown" + + -- Look up address name in address book + local addressName = findAddressName(state.incomingAddress) - utils.log("Incoming wormhole from: " .. addressString .. " " .. reason) + utils.log("Incoming wormhole from: " .. (addressName or addressString) .. " " .. reason) -- Show incoming connection status - display.showIncoming(addressString, allowed, reason) + display.showIncoming(addressName, addressString, allowed, reason) -- Send version message to remote gate sleep(0.5) -- Brief delay to ensure connection is stable