Re-enabled the lua type filter again

This commit is contained in:
EvilFactory
2023-04-09 14:10:34 -03:00
parent 675b4f349c
commit 0f49932604
2 changed files with 53 additions and 23 deletions

View File

@@ -43,29 +43,7 @@ require("DefaultLib/Utils/String")
require("DefaultLib/Utils/Util")
require("DefaultLib/Utils/SteamApi")
if false then
LuaUserData.RegisterType = function (typeName)
local descriptor = Descriptors[typeName]
if descriptor == nil then
error("Type '" .. typeName .. "' can't be registered", 2)
else
return descriptor
end
end
local originalCreateStatic = LuaUserData.CreateStatic
LuaUserData.CreateStatic = function (typeName, addCallMethod)
local descriptor = Descriptors[typeName]
if descriptor == nil then
error("Unable to create static reference to type " .. typeName, 2)
end
return originalCreateStatic(typeName, addCallMethod)
end
end
require("PostSetup")
LuaSetup = nil

View File

@@ -0,0 +1,52 @@
if CSActive then
return
end
local function IsAllowed(typeName)
if string.startsWith(typeName, "Barotrauma.Lua") or string.startsWith(typeName, "Barotrauma.Cs") or string.startsWith(typeName, "Barotrauma.LuaCs") then
return false
end
if string.startsWith(typeName, "System.Collections") then return true end
if string.startsWith(typeName, "Microsoft.Xna") then return true end
if string.startsWith(typeName, "Barotrauma.IO") then return false end
if string.startsWith(typeName, "Barotrauma.ToolBox") then return false end
if string.startsWith(typeName, "Barotrauma.SaveUtil") then return false end
if string.startsWith(typeName, "Barotrauma.") then return true end
return false
end
local originalRegisterType = LuaUserData.RegisterType
LuaUserData.RegisterType = function (typeName)
if not IsAllowed(typeName) then
error("Couldn't register type " .. typeName .. ".", 2)
end
local success, result = pcall(originalRegisterType, typeName)
if not success then
error(result, 2)
end
return result
end
local originalCreateStatic = LuaUserData.CreateStatic
LuaUserData.CreateStatic = function (typeName, addCallMethod)
if not IsAllowed(typeName) then
error("Couldn't register type " .. typeName .. ".", 2)
end
local success, result = pcall(originalCreateStatic, typeName, addCallMethod)
if not success then
error(result, 2)
end
return result
end