Skip to content

Commit

Permalink
Merge pull request #880 from TheFreeman193/lua_findhooks
Browse files Browse the repository at this point in the history
Add lua_findhooks
  • Loading branch information
robotboy655 committed Mar 1, 2016
2 parents dfc7f15 + 4f4aa27 commit 524070b
Showing 1 changed file with 51 additions and 13 deletions.
64 changes: 51 additions & 13 deletions garrysmod/lua/autorun/developer_functions.lua
Expand Up @@ -10,7 +10,7 @@ local function FindInTable( tab, find, parents, depth )

for k, v in pairs ( tab ) do

if ( type(k) == "string" ) then
if ( isstring(k) ) then

if ( k && k:lower():find( find:lower() ) ) then

Expand All @@ -27,7 +27,7 @@ local function FindInTable( tab, find, parents, depth )
k != "_LOADED" &&
k != "__index" ) then

local NewParents = parents .. k .. ".";
local NewParents = parents .. k .. "."
FindInTable( v, find, NewParents, depth )

end
Expand All @@ -38,31 +38,69 @@ local function FindInTable( tab, find, parents, depth )

end

local function FindInHooks( base, name )

for b, t in pairs( hook.GetTable() ) do

local head = true

if ( istable( t ) && b:lower():find( base:lower() ) ) then

for n, f in pairs( t ) do

if ( !name || tostring( n ):lower():find( tostring( name ):lower() ) ) then

if ( head ) then Msg( "\n\t", b, " hooks:\n" ) head = false end

Msg( "\t\t", tostring( n ), " - (", tostring( f ), ")\n" )

end

end

end

end

end


--[[---------------------------------------------------------
Name: Find
-----------------------------------------------------------]]
local function Find( ply, command, arguments )
if ( IsValid(ply) && ply:IsPlayer() && !ply:IsAdmin() ) then return end
if ( !game.SinglePlayer() && IsValid(ply) && ply:IsPlayer() && !ply:IsAdmin() ) then return end
if ( !arguments[1] ) then return end
if ( SERVER ) then Msg("Finding '", arguments[1], "' SERVERSIDE:\n\n") else
Msg("Finding '", arguments[1], "' CLIENTSIDE:\n\n") end
FindInTable( _G, arguments[1] )
FindInTable( debug.getregistry(), arguments[1] )
if ( command:StartWith( "lua_findhooks" ) ) then
Msg( "Finding '", arguments[1], "' hooks ",
( arguments[2] && "with name '" .. arguments[2] .. "' " || "" ),
( SERVER && "SERVERSIDE" || "CLIENTSIDE" ), ":\n\n"
)
FindInHooks( arguments[1], arguments[2] )
else
Msg( "Finding '", arguments[1], "' ", ( SERVER && "SERVERSIDE" || "CLIENTSIDE" ), ":\n\n" )
FindInTable( _G, arguments[1] )
FindInTable( debug.getregistry(), arguments[1] )
end
Msg("\n\n")
if ( SERVER && IsValid(ply) && ply:IsPlayer() && ply:IsListenServerHost() ) then
RunConsoleCommand( "lua_find_cl", tostring(arguments[1]) );
RunConsoleCommand( command .. "_cl", arguments[1], arguments[2] )
end
end
if ( SERVER ) then
concommand.Add( "lua_find", Find, nil, "", { FCVAR_DONTRECORD } )
concommand.Add( "lua_find", Find, _, "", { FCVAR_DONTRECORD } )
concommand.Add( "lua_findhooks", Find, _, "", { FCVAR_DONTRECORD } )
else
concommand.Add( "lua_find_cl", Find, nil, "", { FCVAR_DONTRECORD } )
end
concommand.Add( "lua_find_cl", Find, _, "", { FCVAR_DONTRECORD } )
concommand.Add( "lua_findhooks_cl", Find, _, "", { FCVAR_DONTRECORD } )
end

0 comments on commit 524070b

Please sign in to comment.