Log readable names of hooked objects (#41)
This commit is contained in:
commit
2e7ca9c6c0
1 changed files with 15 additions and 4 deletions
|
@ -86,6 +86,16 @@ local function can_rehook(mod, hook_data, obj, hook_type)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- Search global table for an object that matches to get a readable string.
|
||||||
|
local function print_obj(obj)
|
||||||
|
for k, v in pairs(_G) do
|
||||||
|
if v == obj then
|
||||||
|
return k
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return obj
|
||||||
|
end
|
||||||
|
|
||||||
-- ####################################################################################################################
|
-- ####################################################################################################################
|
||||||
-- ##### Hook Creation ################################################################################################
|
-- ##### Hook Creation ################################################################################################
|
||||||
-- ####################################################################################################################
|
-- ####################################################################################################################
|
||||||
|
@ -193,7 +203,7 @@ local function create_hook(mod, orig, obj, method, handler, func_name, hook_type
|
||||||
else
|
else
|
||||||
unique_id = obj[method]
|
unique_id = obj[method]
|
||||||
end
|
end
|
||||||
mod:info("(%s): Hooking '%s' from [%s] (Origin: %s) (UniqueID: %s)", func_name, method, obj, orig, unique_id)
|
mod:info("(%s): Hooking '%s' from [%s] (Origin: %s)", func_name, method, print_obj(obj), orig)
|
||||||
|
|
||||||
-- Check to make sure this mod hasn't hooked it before
|
-- Check to make sure this mod hasn't hooked it before
|
||||||
local hook_data = _registry[mod][unique_id]
|
local hook_data = _registry[mod][unique_id]
|
||||||
|
@ -218,8 +228,8 @@ local function create_hook(mod, orig, obj, method, handler, func_name, hook_type
|
||||||
hook_data.handler = handler
|
hook_data.handler = handler
|
||||||
elseif mod:get_internal_data("allow_rehooking") then
|
elseif mod:get_internal_data("allow_rehooking") then
|
||||||
-- If we can't rehook but rehooking is enabled, send a warning that something went wrong
|
-- If we can't rehook but rehooking is enabled, send a warning that something went wrong
|
||||||
mod:warning("(%s): Attempting to rehook active hook [%s] with different obj or hook_type.", func_name,
|
mod:warning("(%s): Attempting to rehook active hook [%s] with different obj or hook_type.",
|
||||||
method)
|
func_name, method)
|
||||||
else
|
else
|
||||||
mod:warning("(%s): Attempting to rehook active hook [%s].", func_name, method)
|
mod:warning("(%s): Attempting to rehook active hook [%s].", func_name, method)
|
||||||
end
|
end
|
||||||
|
@ -281,7 +291,8 @@ local function generic_hook(mod, obj, method, handler, func_name)
|
||||||
|
|
||||||
-- Quick check to make sure the target exists
|
-- Quick check to make sure the target exists
|
||||||
if not obj[method] then
|
if not obj[method] then
|
||||||
mod:error("(%s): trying to hook function or method that doesn't exist: [%s.%s]", func_name, obj, method)
|
mod:error("(%s): trying to hook function or method that doesn't exist: [%s.%s]",
|
||||||
|
func_name, print_obj(obj), method)
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue