diff --git a/scripts/98-uecp.lua b/scripts/98-uecp.lua index 383f7b0..c585c30 100644 --- a/scripts/98-uecp.lua +++ b/scripts/98-uecp.lua @@ -291,8 +291,7 @@ mec_handlers[0x2D] = function (data) local mel = string.byte(data, 2) local designation = string.sub(data, 3, 4) if string.byte(designation, 1) == 0x39 and string.byte(designation, 2) == 0x35 and mel > 2 then - local data = string.sub(data, 5, 4+mel) - pcall(hooks.data_handle, data) + pcall(hooks.parse_ascii, string.sub(data, 5, 4+mel)) end return 2+mel end diff --git a/scripts/99-data.lua b/scripts/99-data.lua index fe4029b..da0a86c 100644 --- a/scripts/99-data.lua +++ b/scripts/99-data.lua @@ -1,8 +1,5 @@ ---@param data string -function hooks.data_handle(data) - -- UECP - if uecp.parse_uecp and string.byte(data, 1) == 0xfe then return uecp.parse_uecp(data) end - +function hooks.parse_ascii(data) if string.sub(data, 1, 4):lower() == "lua=" then local chunk, err = load("return " .. string.sub(data, 5), "udp_chunk") -- skip "lua=" if not chunk then return string.format("-\r\n%s\r\n", err) end @@ -324,7 +321,11 @@ function hooks.data_handle(data) rds.ext.set_af_oda(af_table) return "+\r\n" - else - return "?\r\n" - end + else return "?\r\n" end +end + +---@param data string +function hooks.data_handle(data) + if uecp.parse_uecp and string.byte(data, 1) == 0xfe then return uecp.parse_uecp(data) + else return hooks.parse_ascii(data) end end \ No newline at end of file