415 lines
17 KiB
Lua
415 lines
17 KiB
Lua
hook.Add('PlayerFinishedLoading', 'antiexp-grab', function()
|
|
|
|
if CFG.dev then return end
|
|
|
|
local stringFind, fileFind, fileRead = string.find, file.Find, file.Read
|
|
|
|
local queue = {}
|
|
local goodFiles = {
|
|
['addons/luadev/lua/autorun/easylua.lua'] = true,
|
|
['addons/luadev/lua/luadev/luadev.lua'] = true,
|
|
['addons/luadev/lua/luadev/luadev_sh.lua'] = true,
|
|
['addons/luadev/lua/luadev/socketdev.lua'] = true,
|
|
['lua/autorun/base_npcs.lua'] = true,
|
|
['lua/autorun/base_vehicles.lua'] = true,
|
|
['lua/autorun/developer_functions.lua'] = true,
|
|
['lua/autorun/easylua.lua'] = true,
|
|
['lua/autorun/game_hl2.lua'] = true,
|
|
['lua/autorun/menubar.lua'] = true,
|
|
['lua/autorun/properties.lua'] = true,
|
|
['lua/autorun/utilities_menu.lua'] = true,
|
|
['lua/autorun/client/demo_recording.lua'] = true,
|
|
['lua/autorun/client/gm_demo.lua'] = true,
|
|
['lua/autorun/properties/bodygroups.lua'] = true,
|
|
['lua/autorun/properties/bone_manipulate.lua'] = true,
|
|
['lua/autorun/properties/collisions.lua'] = true,
|
|
['lua/autorun/properties/drive.lua'] = true,
|
|
['lua/autorun/properties/editentity.lua'] = true,
|
|
['lua/autorun/properties/gravity.lua'] = true,
|
|
['lua/autorun/properties/ignite.lua'] = true,
|
|
['lua/autorun/properties/keep_upright.lua'] = true,
|
|
['lua/autorun/properties/kinect_controller.lua'] = true,
|
|
['lua/autorun/properties/npc_scale.lua'] = true,
|
|
['lua/autorun/properties/persist.lua'] = true,
|
|
['lua/autorun/properties/remove.lua'] = true,
|
|
['lua/autorun/properties/skin.lua'] = true,
|
|
['lua/autorun/properties/statue.lua'] = true,
|
|
['lua/autorun/server/admin_functions.lua'] = true,
|
|
['lua/autorun/server/sensorbones/css.lua'] = true,
|
|
['lua/autorun/server/sensorbones/eli.lua'] = true,
|
|
['lua/autorun/server/sensorbones/tf2_engineer.lua'] = true,
|
|
['lua/autorun/server/sensorbones/tf2_heavy.lua'] = true,
|
|
['lua/autorun/server/sensorbones/tf2_medic.lua'] = true,
|
|
['lua/autorun/server/sensorbones/tf2_pyro_demo.lua'] = true,
|
|
['lua/autorun/server/sensorbones/tf2_scout.lua'] = true,
|
|
['lua/autorun/server/sensorbones/tf2_sniper.lua'] = true,
|
|
['lua/autorun/server/sensorbones/tf2_spy_solider.lua'] = true,
|
|
['lua/autorun/server/sensorbones/valvebiped.lua'] = true,
|
|
['lua/derma/derma.lua'] = true,
|
|
['lua/derma/derma_animation.lua'] = true,
|
|
['lua/derma/derma_example.lua'] = true,
|
|
['lua/derma/derma_gwen.lua'] = true,
|
|
['lua/derma/derma_menus.lua'] = true,
|
|
['lua/derma/derma_utils.lua'] = true,
|
|
['lua/derma/init.lua'] = true,
|
|
['lua/drive/drive_base.lua'] = true,
|
|
['lua/drive/drive_noclip.lua'] = true,
|
|
['lua/drive/drive_sandbox.lua'] = true,
|
|
['lua/entities/sent_ball.lua'] = true,
|
|
['lua/entities/widget_arrow.lua'] = true,
|
|
['lua/entities/widget_axis.lua'] = true,
|
|
['lua/entities/widget_base.lua'] = true,
|
|
['lua/entities/widget_bones.lua'] = true,
|
|
['lua/entities/widget_disc.lua'] = true,
|
|
['lua/includes/gmsave.lua'] = true,
|
|
['lua/includes/init.lua'] = true,
|
|
['lua/includes/init_menu.lua'] = true,
|
|
['lua/includes/menu.lua'] = true,
|
|
['lua/includes/util.lua'] = true,
|
|
['lua/includes/vgui_base.lua'] = true,
|
|
['lua/includes/extensions/angle.lua'] = true,
|
|
['lua/includes/extensions/coroutine.lua'] = true,
|
|
['lua/includes/extensions/debug.lua'] = true,
|
|
['lua/includes/extensions/entity.lua'] = true,
|
|
['lua/includes/extensions/ents.lua'] = true,
|
|
['lua/includes/extensions/file.lua'] = true,
|
|
['lua/includes/extensions/game.lua'] = true,
|
|
['lua/includes/extensions/math.lua'] = true,
|
|
['lua/includes/extensions/motionsensor.lua'] = true,
|
|
['lua/includes/extensions/net.lua'] = true,
|
|
['lua/includes/extensions/player.lua'] = true,
|
|
['lua/includes/extensions/player_auth.lua'] = true,
|
|
['lua/includes/extensions/string.lua'] = true,
|
|
['lua/includes/extensions/table.lua'] = true,
|
|
['lua/includes/extensions/util.lua'] = true,
|
|
['lua/includes/extensions/vector.lua'] = true,
|
|
['lua/includes/extensions/weapon.lua'] = true,
|
|
['lua/includes/extensions/client/entity.lua'] = true,
|
|
['lua/includes/extensions/client/globals.lua'] = true,
|
|
['lua/includes/extensions/client/panel.lua'] = true,
|
|
['lua/includes/extensions/client/player.lua'] = true,
|
|
['lua/includes/extensions/client/render.lua'] = true,
|
|
['lua/includes/extensions/client/panel/animation.lua'] = true,
|
|
['lua/includes/extensions/client/panel/dragdrop.lua'] = true,
|
|
['lua/includes/extensions/client/panel/scriptedpanels.lua'] = true,
|
|
['lua/includes/extensions/client/panel/selections.lua'] = true,
|
|
['lua/includes/extensions/util/worldpicker.lua'] = true,
|
|
['lua/includes/gmsave/constraints.lua'] = true,
|
|
['lua/includes/gmsave/entity_filters.lua'] = true,
|
|
['lua/includes/gmsave/physics.lua'] = true,
|
|
['lua/includes/gmsave/player.lua'] = true,
|
|
['lua/includes/gui/icon_progress.lua'] = true,
|
|
['lua/includes/modules/ai_schedule.lua'] = true,
|
|
['lua/includes/modules/ai_task.lua'] = true,
|
|
['lua/includes/modules/baseclass.lua'] = true,
|
|
['lua/includes/modules/cleanup.lua'] = true,
|
|
['lua/includes/modules/concommand.lua'] = true,
|
|
['lua/includes/modules/constraint.lua'] = true,
|
|
['lua/includes/modules/construct.lua'] = true,
|
|
['lua/includes/modules/controlpanel.lua'] = true,
|
|
['lua/includes/modules/cookie.lua'] = true,
|
|
['lua/includes/modules/cvars.lua'] = true,
|
|
['lua/includes/modules/draw.lua'] = true,
|
|
['lua/includes/modules/drive.lua'] = true,
|
|
['lua/includes/modules/duplicator.lua'] = true,
|
|
['lua/includes/modules/effects.lua'] = true,
|
|
['lua/includes/modules/gamemode.lua'] = true,
|
|
['lua/includes/modules/halo.lua'] = true,
|
|
['lua/includes/modules/hook.lua'] = true,
|
|
['lua/includes/modules/http.lua'] = true,
|
|
['lua/includes/modules/killicon.lua'] = true,
|
|
['lua/includes/modules/list.lua'] = true,
|
|
['lua/includes/modules/markup.lua'] = true,
|
|
['lua/includes/modules/matproxy.lua'] = true,
|
|
['lua/includes/modules/menubar.lua'] = true,
|
|
['lua/includes/modules/notification.lua'] = true,
|
|
['lua/includes/modules/numpad.lua'] = true,
|
|
['lua/includes/modules/player_manager.lua'] = true,
|
|
['lua/includes/modules/presets.lua'] = true,
|
|
['lua/includes/modules/properties.lua'] = true,
|
|
['lua/includes/modules/saverestore.lua'] = true,
|
|
['lua/includes/modules/scripted_ents.lua'] = true,
|
|
['lua/includes/modules/search.lua'] = true,
|
|
['lua/includes/modules/spawnmenu.lua'] = true,
|
|
['lua/includes/modules/team.lua'] = true,
|
|
['lua/includes/modules/undo.lua'] = true,
|
|
['lua/includes/modules/usermessage.lua'] = true,
|
|
['lua/includes/modules/utf8.lua'] = true,
|
|
['lua/includes/modules/weapons.lua'] = true,
|
|
['lua/includes/modules/widget.lua'] = true,
|
|
['lua/includes/util/client.lua'] = true,
|
|
['lua/includes/util/color.lua'] = true,
|
|
['lua/includes/util/javascript_util.lua'] = true,
|
|
['lua/includes/util/model_database.lua'] = true,
|
|
['lua/includes/util/sql.lua'] = true,
|
|
['lua/includes/util/tooltips.lua'] = true,
|
|
['lua/includes/util/vgui_showlayout.lua'] = true,
|
|
['lua/includes/util/workshop_files.lua'] = true,
|
|
['lua/luadev/luadev.lua'] = true,
|
|
['lua/luadev/luadev_sh.lua'] = true,
|
|
['lua/luadev/socketdev.lua'] = true,
|
|
['lua/matproxy/player_color.lua'] = true,
|
|
['lua/matproxy/player_weapon_color.lua'] = true,
|
|
['lua/matproxy/sky_paint.lua'] = true,
|
|
['lua/menu/background.lua'] = true,
|
|
['lua/menu/cef_credits.lua'] = true,
|
|
['lua/menu/demo_to_video.lua'] = true,
|
|
['lua/menu/errors.lua'] = true,
|
|
['lua/menu/getmaps.lua'] = true,
|
|
['lua/menu/loading.lua'] = true,
|
|
['lua/menu/mainmenu.lua'] = true,
|
|
['lua/menu/menu.lua'] = true,
|
|
['lua/menu/menu_addon.lua'] = true,
|
|
['lua/menu/menu_demo.lua'] = true,
|
|
['lua/menu/menu_dupe.lua'] = true,
|
|
['lua/menu/menu_save.lua'] = true,
|
|
['lua/menu/motionsensor.lua'] = true,
|
|
['lua/menu/openurl.lua'] = true,
|
|
['lua/menu/progressbar.lua'] = true,
|
|
['lua/menu/util.lua'] = true,
|
|
['lua/menu/video.lua'] = true,
|
|
['lua/menu/mount/mount.lua'] = true,
|
|
['lua/menu/mount/vgui/addon_rocket.lua'] = true,
|
|
['lua/menu/mount/vgui/workshop.lua'] = true,
|
|
['lua/postprocess/bloom.lua'] = true,
|
|
['lua/postprocess/bokeh_dof.lua'] = true,
|
|
['lua/postprocess/color_modify.lua'] = true,
|
|
['lua/postprocess/dof.lua'] = true,
|
|
['lua/postprocess/frame_blend.lua'] = true,
|
|
['lua/postprocess/motion_blur.lua'] = true,
|
|
['lua/postprocess/overlay.lua'] = true,
|
|
['lua/postprocess/sharpen.lua'] = true,
|
|
['lua/postprocess/sobel.lua'] = true,
|
|
['lua/postprocess/stereoscopy.lua'] = true,
|
|
['lua/postprocess/sunbeams.lua'] = true,
|
|
['lua/postprocess/super_dof.lua'] = true,
|
|
['lua/postprocess/texturize.lua'] = true,
|
|
['lua/postprocess/toytown.lua'] = true,
|
|
['lua/skins/default.lua'] = true,
|
|
['lua/vgui/contextbase.lua'] = true,
|
|
['lua/vgui/dadjustablemodelpanel.lua'] = true,
|
|
['lua/vgui/dalphabar.lua'] = true,
|
|
['lua/vgui/dbinder.lua'] = true,
|
|
['lua/vgui/dbubblecontainer.lua'] = true,
|
|
['lua/vgui/dbutton.lua'] = true,
|
|
['lua/vgui/dcategorycollapse.lua'] = true,
|
|
['lua/vgui/dcategorylist.lua'] = true,
|
|
['lua/vgui/dcheckbox.lua'] = true,
|
|
['lua/vgui/dcolorbutton.lua'] = true,
|
|
['lua/vgui/dcolorcombo.lua'] = true,
|
|
['lua/vgui/dcolorcube.lua'] = true,
|
|
['lua/vgui/dcolormixer.lua'] = true,
|
|
['lua/vgui/dcolorpalette.lua'] = true,
|
|
['lua/vgui/dcolumnsheet.lua'] = true,
|
|
['lua/vgui/dcombobox.lua'] = true,
|
|
['lua/vgui/ddragbase.lua'] = true,
|
|
['lua/vgui/ddrawer.lua'] = true,
|
|
['lua/vgui/dentityproperties.lua'] = true,
|
|
['lua/vgui/dexpandbutton.lua'] = true,
|
|
['lua/vgui/dfilebrowser.lua'] = true,
|
|
['lua/vgui/dform.lua'] = true,
|
|
['lua/vgui/dframe.lua'] = true,
|
|
['lua/vgui/dgrid.lua'] = true,
|
|
['lua/vgui/dhorizontaldivider.lua'] = true,
|
|
['lua/vgui/dhorizontalscroller.lua'] = true,
|
|
['lua/vgui/dhtml.lua'] = true,
|
|
['lua/vgui/dhtmlcontrols.lua'] = true,
|
|
['lua/vgui/diconbrowser.lua'] = true,
|
|
['lua/vgui/diconlayout.lua'] = true,
|
|
['lua/vgui/dimage.lua'] = true,
|
|
['lua/vgui/dimagebutton.lua'] = true,
|
|
['lua/vgui/dkillicon.lua'] = true,
|
|
['lua/vgui/dlabel.lua'] = true,
|
|
['lua/vgui/dlabeleditable.lua'] = true,
|
|
['lua/vgui/dlabelurl.lua'] = true,
|
|
['lua/vgui/dlistbox.lua'] = true,
|
|
['lua/vgui/dlistlayout.lua'] = true,
|
|
['lua/vgui/dlistview.lua'] = true,
|
|
['lua/vgui/dlistview_column.lua'] = true,
|
|
['lua/vgui/dlistview_line.lua'] = true,
|
|
['lua/vgui/dmenu.lua'] = true,
|
|
['lua/vgui/dmenubar.lua'] = true,
|
|
['lua/vgui/dmenuoption.lua'] = true,
|
|
['lua/vgui/dmenuoptioncvar.lua'] = true,
|
|
['lua/vgui/dmodelpanel.lua'] = true,
|
|
['lua/vgui/dmodelselect.lua'] = true,
|
|
['lua/vgui/dmodelselectmulti.lua'] = true,
|
|
['lua/vgui/dnotify.lua'] = true,
|
|
['lua/vgui/dnumberscratch.lua'] = true,
|
|
['lua/vgui/dnumberwang.lua'] = true,
|
|
['lua/vgui/dnumpad.lua'] = true,
|
|
['lua/vgui/dnumslider.lua'] = true,
|
|
['lua/vgui/dpanel.lua'] = true,
|
|
['lua/vgui/dpanellist.lua'] = true,
|
|
['lua/vgui/dpaneloverlay.lua'] = true,
|
|
['lua/vgui/dpanelselect.lua'] = true,
|
|
['lua/vgui/dprogress.lua'] = true,
|
|
['lua/vgui/dproperties.lua'] = true,
|
|
['lua/vgui/dpropertysheet.lua'] = true,
|
|
['lua/vgui/drgbpicker.lua'] = true,
|
|
['lua/vgui/dscrollbargrip.lua'] = true,
|
|
['lua/vgui/dscrollpanel.lua'] = true,
|
|
['lua/vgui/dshape.lua'] = true,
|
|
['lua/vgui/dsizetocontents.lua'] = true,
|
|
['lua/vgui/dslider.lua'] = true,
|
|
['lua/vgui/dsprite.lua'] = true,
|
|
['lua/vgui/dtextentry.lua'] = true,
|
|
['lua/vgui/dtilelayout.lua'] = true,
|
|
['lua/vgui/dtooltip.lua'] = true,
|
|
['lua/vgui/dtree.lua'] = true,
|
|
['lua/vgui/dtree_node.lua'] = true,
|
|
['lua/vgui/dtree_node_button.lua'] = true,
|
|
['lua/vgui/dverticaldivider.lua'] = true,
|
|
['lua/vgui/dvscrollbar.lua'] = true,
|
|
['lua/vgui/fingerposer.lua'] = true,
|
|
['lua/vgui/fingervar.lua'] = true,
|
|
['lua/vgui/imagecheckbox.lua'] = true,
|
|
['lua/vgui/material.lua'] = true,
|
|
['lua/vgui/matselect.lua'] = true,
|
|
['lua/vgui/prop_boolean.lua'] = true,
|
|
['lua/vgui/prop_combo.lua'] = true,
|
|
['lua/vgui/prop_float.lua'] = true,
|
|
['lua/vgui/prop_generic.lua'] = true,
|
|
['lua/vgui/prop_int.lua'] = true,
|
|
['lua/vgui/prop_vectorcolor.lua'] = true,
|
|
['lua/vgui/propselect.lua'] = true,
|
|
['lua/vgui/slidebar.lua'] = true,
|
|
['lua/vgui/spawnicon.lua'] = true,
|
|
['lua/vgui/vgui_panellist.lua'] = true,
|
|
['lua/weapons/weapon_fists.lua'] = true,
|
|
['lua/weapons/weapon_flechettegun.lua'] = true,
|
|
['lua/weapons/weapon_medkit.lua'] = true,
|
|
['lua/autorun/cs_playermodels.lua'] = true,
|
|
['lua/lua/autorun/cs_playermodels.lua'] = true,
|
|
['lua/lua/weapons/weapon_ak47/shared.lua'] = true,
|
|
['lua/lua/weapons/weapon_cs_base/shared.lua'] = true,
|
|
['lua/lua/weapons/weapon_deagle/shared.lua'] = true,
|
|
['lua/lua/weapons/weapon_fiveseven/shared.lua'] = true,
|
|
['lua/lua/weapons/weapon_glock/shared.lua'] = true,
|
|
['lua/lua/weapons/weapon_m4/shared.lua'] = true,
|
|
['lua/lua/weapons/weapon_mac10/shared.lua'] = true,
|
|
['lua/lua/weapons/weapon_mp5/shared.lua'] = true,
|
|
['lua/lua/weapons/weapon_para/shared.lua'] = true,
|
|
['lua/lua/weapons/weapon_pumpshotgun/shared.lua'] = true,
|
|
['lua/weapons/weapon_cs_base/shared.lua'] = true,
|
|
['lua/weapons/weapon_fiveseven/shared.lua'] = true,
|
|
['lua/lua/weapons/weapon_tmp/shared.lua'] = true,
|
|
['lua/weapons/weapon_ak47/shared.lua'] = true,
|
|
['lua/weapons/weapon_mac10/shared.lua'] = true,
|
|
['lua/weapons/weapon_deagle/shared.lua'] = true,
|
|
['lua/weapons/weapon_glock/shared.lua'] = true,
|
|
['lua/weapons/weapon_pumpshotgun/shared.lua'] = true,
|
|
['lua/weapons/weapon_m4/shared.lua'] = true,
|
|
['lua/weapons/weapon_mp5/shared.lua'] = true,
|
|
['lua/weapons/weapon_tmp/shared.lua'] = true,
|
|
['lua/weapons/weapon_para/shared.lua'] = true,
|
|
['gamemodes/base/entities/entities/lua_run.lua'] = true,
|
|
['gamemodes/base/entities/entities/base_entity/outputs.lua'] = true,
|
|
['gamemodes/base/gamemode/cl_init.lua'] = true,
|
|
['gamemodes/base/gamemode/cl_scoreboard.lua'] = true,
|
|
['gamemodes/base/gamemode/player_class/player_default.lua'] = true,
|
|
['gamemodes/base/gamemode/player_class/taunt_camera.lua'] = true,
|
|
['gamemodes/sandbox/entities/weapons/gmod_tool/stools/finger.lua'] = true,
|
|
['gamemodes/sandbox/entities/weapons/gmod_tool/stools/duplicator/arming.lua'] = true,
|
|
['gamemodes/sandbox/gamemode/cl_init.lua'] = true,
|
|
['gamemodes/sandbox/gamemode/player_class/player_sandbox.lua'] = true,
|
|
['gamemodes/terrortown/entities/entities/ttt_hat_deerstalker.lua'] = true,
|
|
['gamemodes/terrortown/entities/entities/ttt_traitor_check.lua'] = true,
|
|
['gamemodes/terrortown/entities/entities/ttt_weapon_check.lua'] = true,
|
|
['gamemodes/terrortown/entities/entities/ttt_c4/shared.lua'] = true,
|
|
['gamemodes/terrortown/entities/weapons/weapon_ttt_teleport.lua'] = true,
|
|
['gamemodes/terrortown/entities/weapons/weapon_zm_carry.lua'] = true,
|
|
['gamemodes/terrortown/gamemode/admin.lua'] = true,
|
|
['gamemodes/terrortown/gamemode/cl_hud.lua'] = true,
|
|
['gamemodes/terrortown/gamemode/cl_init.lua'] = true,
|
|
['gamemodes/terrortown/gamemode/cl_popups.lua'] = true,
|
|
['gamemodes/terrortown/gamemode/cl_targetid.lua'] = true,
|
|
['gamemodes/terrortown/gamemode/cl_transfer.lua'] = true,
|
|
['gamemodes/terrortown/gamemode/gamemsg.lua'] = true,
|
|
['gamemodes/terrortown/gamemode/init.lua'] = true,
|
|
['gamemodes/terrortown/gamemode/karma.lua'] = true,
|
|
['gamemodes/terrortown/gamemode/player.lua'] = true,
|
|
['gamemodes/terrortown/gamemode/radar.lua'] = true,
|
|
['gamemodes/terrortown/gamemode/scoring.lua'] = true,
|
|
['gamemodes/terrortown/gamemode/traitor_state.lua'] = true,
|
|
['gamemodes/terrortown/gamemode/util.lua'] = true,
|
|
['gamemodes/terrortown/gamemode/weaponry.lua'] = true,
|
|
['gamemodes/terrortown/gamemode/vgui/sb_main.lua'] = true,
|
|
|
|
['gmcl_luasocket_win32.dll'] = true,
|
|
['gmcl_luasocket_win64.dll'] = true,
|
|
}
|
|
|
|
local hackStrings = {'HUDPaint', 'CreateMove', 'net.SendToServer', 'LookupBone', 'RenderScene', 'player.GetAll', 'RunString'}
|
|
local function hasHacks(content)
|
|
|
|
for i = 1, #hackStrings do
|
|
if stringFind(content, hackStrings[i], 1, true) then return true end
|
|
end
|
|
|
|
return false
|
|
|
|
end
|
|
|
|
local function scanDir(dir)
|
|
dir = dir .. '/'
|
|
local fls, fds = fileFind(dir .. '/*', 'MOD')
|
|
if fls then
|
|
for _, fl in pairs(fls) do
|
|
if fl and fl ~= '' and fl:sub(-4) == '.lua' then
|
|
local fname = dir .. fl
|
|
local fcontent = fileRead(fname, 'MOD')
|
|
|
|
if not goodFiles[fname] and fcontent and hasHacks(fcontent) then
|
|
queue[#queue + 1] = {fname, 'hacks'}
|
|
end
|
|
end
|
|
end
|
|
end
|
|
if fds then
|
|
for _, fd in pairs(fds) do
|
|
if fd ~= '/' and fd ~= '.svn' and fd ~= '.git' then
|
|
scanDir(dir .. fd)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
local exclude = {
|
|
['/'] = true,
|
|
['.svn'] = true,
|
|
['.git'] = true,
|
|
['cache'] = true,
|
|
}
|
|
|
|
local x, y = ScrW() / 2, ScrH() / 2
|
|
hook.Add('HUDPaint', 'antiexp-grab', function()
|
|
draw.SimpleText(L.grab_scanning, 'DermaLarge', x+1, y+1, color_black, TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER)
|
|
draw.SimpleText(L.grab_scanning, 'DermaLarge', x, y, color_white, TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER)
|
|
end)
|
|
|
|
timer.Simple(0.5, function()
|
|
hook.Remove('HUDPaint', 'antiexp-grab')
|
|
|
|
-- detect binary files
|
|
local fls, fds = fileFind('lua/bin/*', 'MOD')
|
|
for _, fl in pairs(fls) do
|
|
if not goodFiles[fl] then
|
|
queue[#queue + 1] = {fl, '[binary]'}
|
|
end
|
|
end
|
|
|
|
-- detect lua files
|
|
local fls, fds = fileFind('*', 'MOD')
|
|
for _, fd in pairs(fds) do
|
|
if not exclude[fd] then
|
|
scanDir(fd)
|
|
end
|
|
end
|
|
|
|
-- send them to server
|
|
local compr = util.Compress(pon.encode(queue))
|
|
netstream.Heavy('antiexp-grab', compr)
|
|
end)
|
|
|
|
end)
|