--[[ | This file was obtained through the combined efforts | of Madbluntz & Plymouth Antiquarian Society. | | Credits: lifestorm, Gregory Wayne Rossel JR., | Maloy, DrPepper10 @ RIP, Atle! | | Visit for more: https://plymouth.thetwilightzone.ru/ --]] eProtect = eProtect or {} eProtect.data = eProtect.data or {} eProtect.data.exploitPatcher = eProtect.data.exploitPatcher or {} eProtect.patcher = eProtect.patcher or {} local function addExploitPatch(str, func) eProtect.patcher[str] = func eProtect.data.exploitPatcher[str] = true end addExploitPatch("start_wd_emp", function(ply) if IsValid(ply) and ply:IsPlayer() then local wep = ply:GetActiveWeapon() if !IsValid(wep) or wep:GetClass() ~= "weapon_hack_phone" then return false end end end) addExploitPatch("gPrinters.removePrinter", function(ply) if IsValid(ply) and ply:IsPlayer() then return ply:IsSuperAdmin() end end) hook.Add("eP:PreNetworking", "eP:ExploitPatches", function(ply, netstring, len) if eProtect.patcher[netstring] and isfunction(eProtect.patcher[netstring]) and !eProtect.config["disabledModules"]["exploit_patcher"] then local result = eProtect.patcher[netstring](ply) if result == false then eProtect.logDetectionHandeler(ply, "patched-exploit", netstring, 2) eProtect.punish(ply, 2, slib.getLang("eprotect", eProtect.config["language"], "banned-exploit-attempt")) return false end end end) if eProtect.queueNetworking then eProtect.queueNetworking(nil, "exploitPatcher") end