mirror of
https://github.com/clusterio/clusterio.git
synced 2026-11-12 07:04:52 +09:00
The largest source was compat.lua returning the setmetatable call directly, which made emmylua infer the module type from the metatable rather than the LibCompat class, hiding every field from consumers. The remaining fixes are nil guards on gui element and character accesses, type annotations for research_sync's script data and player_auth's rcon arguments, casts where the api's read/write union types are wider than the values at runtime, and scoped diagnostic disables for the vendored json.lua and the version fallback code that touches apis removed from the current typedefs. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
17 lines
607 B
Lua
17 lines
607 B
Lua
--- Undefined fields are expected, the typedefs only cover the latest version
|
|
--- @diagnostic disable: undefined-field
|
|
|
|
local function send_json(channel, data)
|
|
data = helpers and helpers.table_to_json(data) or game.table_to_json(data)
|
|
print("\f$ipc:" .. channel .. "?j" .. data)
|
|
end
|
|
|
|
script.on_init(function()
|
|
send_json("mod_list", script.active_mods)
|
|
local mod_settings = prototypes and prototypes.mod_setting or game.mod_setting_prototypes
|
|
for name, mod_setting in pairs(mod_settings) do
|
|
send_json("mod_setting_mod", { name = name, mod = mod_setting.mod })
|
|
end
|
|
send_json("defines", defines)
|
|
end)
|