From b9a776485a54c42fc6d88ec22fca2d2aa29bef24 Mon Sep 17 00:00:00 2001 From: Guillaume ARM Date: Sun, 7 Jun 2026 22:21:23 +0200 Subject: [PATCH] fix(events): tolerate unserializable values --- programs/events.lua | 36 ++++++++++++++++++++++++++++++++++-- 1 file changed, 34 insertions(+), 2 deletions(-) diff --git a/programs/events.lua b/programs/events.lua index c414a53..9bcc02e 100644 --- a/programs/events.lua +++ b/programs/events.lua @@ -1,4 +1,4 @@ -local _VERSION = '1.0.1'; +local _VERSION = '1.0.2'; local command = ...; @@ -10,12 +10,44 @@ local function printUsage() print('\t\t\tevents help'); end +local function sanitize(value, seen) + local valueType = type(value); + + if valueType == 'function' then + return ''; + end + + if valueType ~= 'table' then + return value; + end + + seen = seen or {}; + if seen[value] then + return ''; + end + + seen[value] = true; + + local result = {}; + for k, v in pairs(value) do + result[sanitize(k, seen)] = sanitize(v, seen); + end + + seen[value] = nil; + return result; +end + local function valueToString(value) if type(value) == 'string' then return value; end - return textutils.serialize(value, { compact = true }); + local ok, serialized = pcall(textutils.serialize, sanitize(value), { compact = true }); + if ok then + return serialized; + end + + return '<' .. type(value) .. '>'; end if command == 'version' or command == '-version' or command == '--version' then