Difference between revisions of "hooks"

From OpenKore Wiki
Jump to navigation Jump to search
Line 34: Line 34:
 
== Discovering all existing hooks Unix Distro ==
 
== Discovering all existing hooks Unix Distro ==
  
  find src -type f \( -name "*.pl" -or -name "*.pm" \) -exec grep -Hn "^[^#]*callHook" {} \;
+
  find src -type f \( -name "*.pl" -or -name "*.pm" -not -name "Plugins.pm" -not -name "PluginsHookTest.pm" \) -exec grep -Hn "^[^#]*callHook" {} \; | sed -E s/\\t+/\\t/ | s
 +
ed s/\\sif.*//
  
 
== Discovering all existing hooks Windows Distro ==
 
== Discovering all existing hooks Windows Distro ==
Line 48: Line 49:
  
 
<pre>
 
<pre>
src/Actor/Item.pm:526: Plugins::callHook( 'get_item_weight', $self ) if !defined $self->{weight};
+
src/Actor/Item.pm:526: Plugins::callHook('get_item_weight', $self)
 
src/Actor/You.pm:282: Plugins::callHook('attack_start', {ID => $targetID});
 
src/Actor/You.pm:282: Plugins::callHook('attack_start', {ID => $targetID});
 
src/Actor.pm:589: Plugins::callHook('Actor::setStatus::change', {
 
src/Actor.pm:589: Plugins::callHook('Actor::setStatus::change', {
src/AI/Attack.pm:218: Plugins::callHook("target_died", {monster => $monsters_old{$ID}});
+
src/AI/Attack.pm:218: Plugins::callHook('target_died', {monster => $monsters_old{$ID}});
 
src/AI/Attack.pm:259: Plugins::callHook('attack_end', {ID => $ID})
 
src/AI/Attack.pm:259: Plugins::callHook('attack_end', {ID => $ID})
 
src/AI/Attack.pm:690: Plugins::callHook('AI::Attack::main', {target => $target})
 
src/AI/Attack.pm:690: Plugins::callHook('AI::Attack::main', {target => $target})
Line 58: Line 59:
 
src/AI/CoreLogic.pm:118: Plugins::callHook('AI_pre');
 
src/AI/CoreLogic.pm:118: Plugins::callHook('AI_pre');
 
src/AI/CoreLogic.pm:218: Plugins::callHook('AI_post');
 
src/AI/CoreLogic.pm:218: Plugins::callHook('AI_post');
src/AI/CoreLogic.pm:549: Plugins::callHook('portal_exist2', {
+
src/AI/CoreLogic.pm:549: Plugins::callHook('portal_exist2', {
src/AI/CoreLogic.pm:575: Plugins::callHook('portal_exist2', {
+
src/AI/CoreLogic.pm:575: Plugins::callHook('portal_exist2', {
src/AI/CoreLogic.pm:968: Plugins::callHook('AI_storage_auto_queued');
+
src/AI/CoreLogic.pm:968: Plugins::callHook('AI_storage_auto_queued');
src/AI/CoreLogic.pm:1190: Plugins::callHook( AI_storage_auto_weight_start => \%plugin_args );
+
src/AI/CoreLogic.pm:1190: Plugins::callHook('AI_storage_auto_weight_start' => \%plugin_args);
src/AI/CoreLogic.pm:1201: Plugins::callHook('AI_storage_auto_queued');
+
src/AI/CoreLogic.pm:1201: Plugins::callHook('AI_storage_auto_queued');
src/AI/CoreLogic.pm:1212: Plugins::callHook( AI_storage_auto_get_auto_start => \%plugin_args );
+
src/AI/CoreLogic.pm:1212: Plugins::callHook('AI_storage_auto_get_auto_start' => \%plugin_args);
src/AI/CoreLogic.pm:1256: Plugins::callHook("AI_storage_item_out_of_stock", {
+
src/AI/CoreLogic.pm:1256: Plugins::callHook('AI_storage_item_out_of_stock', {
src/AI/CoreLogic.pm:1281: Plugins::callHook('AI_storage_auto_queued');
+
src/AI/CoreLogic.pm:1281: Plugins::callHook('AI_storage_auto_queued');
src/AI/CoreLogic.pm:1298: Plugins::callHook('AI_sell_auto_queued');
+
src/AI/CoreLogic.pm:1298: Plugins::callHook('AI_sell_auto_queued');
src/AI/CoreLogic.pm:1302: Plugins::callHook('AI_sell_auto_queued');
+
src/AI/CoreLogic.pm:1302: Plugins::callHook('AI_sell_auto_queued');
src/AI/CoreLogic.pm:1445: Plugins::callHook("AI_storage_open", \%pluginArgs); # we can hook here to perform actions BEFORE any storage function
+
src/AI/CoreLogic.pm:1445: Plugins::callHook('AI_storage_open', \%pluginArgs); # we can hook here to perform actions BEFORE any storage function
src/AI/CoreLogic.pm:1460: Plugins::callHook("AI_storage_full", \%pluginArgs);
+
src/AI/CoreLogic.pm:1460: Plugins::callHook('AI_storage_full', \%pluginArgs);
src/AI/CoreLogic.pm:1484: Plugins::callHook("AI_storage_item_full", {
+
src/AI/CoreLogic.pm:1484: Plugins::callHook('AI_storage_item_full', {
src/AI/CoreLogic.pm:1545: Plugins::callHook("AI_storage_done", \%hookArgs);
+
src/AI/CoreLogic.pm:1545: Plugins::callHook('AI_storage_done', \%hookArgs);
src/AI/CoreLogic.pm:1629: Plugins::callHook("AI_storage_item_out_of_stock", {
+
src/AI/CoreLogic.pm:1629: Plugins::callHook('AI_storage_item_out_of_stock', {
src/AI/CoreLogic.pm:1663: Plugins::callHook("AI_storage_done_after_getAuto", \%hookArgs);
+
src/AI/CoreLogic.pm:1663: Plugins::callHook('AI_storage_done_after_getAuto', \%hookArgs);
src/AI/CoreLogic.pm:1699: Plugins::callHook( AI_sell_auto_start => \%plugin_args );
+
src/AI/CoreLogic.pm:1699: Plugins::callHook('AI_sell_auto_start' => \%plugin_args );
src/AI/CoreLogic.pm:1707: Plugins::callHook('AI_sell_auto_queued');
+
src/AI/CoreLogic.pm:1707: Plugins::callHook('AI_sell_auto_queued');
src/AI/CoreLogic.pm:1724: Plugins::callHook('AI_buy_auto_queued');
+
src/AI/CoreLogic.pm:1724: Plugins::callHook('AI_buy_auto_queued');
src/AI/CoreLogic.pm:1728: Plugins::callHook('AI_buy_auto_queued');
+
src/AI/CoreLogic.pm:1728: Plugins::callHook('AI_buy_auto_queued');
src/AI/CoreLogic.pm:1845: Plugins::callHook("AI_sell_auto");
+
src/AI/CoreLogic.pm:1845: Plugins::callHook('AI_sell_auto');
src/AI/CoreLogic.pm:1874: Plugins::callHook('AI_sell_auto_done');
+
src/AI/CoreLogic.pm:1874: Plugins::callHook('AI_sell_auto_done');
src/AI/CoreLogic.pm:1885: Plugins::callHook( AI_buy_auto_start => \%plugin_args );
+
src/AI/CoreLogic.pm:1885: Plugins::callHook('AI_buy_auto_start' => \%plugin_args);
src/AI/CoreLogic.pm:1921: Plugins::callHook('AI_buy_auto_queued');
+
src/AI/CoreLogic.pm:1921: Plugins::callHook('AI_buy_auto_queued');
src/AI/CoreLogic.pm:1937: Plugins::callHook('AI_buy_auto_done');
+
src/AI/CoreLogic.pm:1937: Plugins::callHook('AI_buy_auto_done');
src/AI/CoreLogic.pm:1941: Plugins::callHook('AI_storage_auto_queued');
+
src/AI/CoreLogic.pm:1941: Plugins::callHook('AI_storage_auto_queued');
src/AI/CoreLogic.pm:1945: Plugins::callHook('AI_storage_auto_queued');
+
src/AI/CoreLogic.pm:1945: Plugins::callHook('AI_storage_auto_queued');
src/AI/CoreLogic.pm:1949: Plugins::callHook('AI_buy_auto');
+
src/AI/CoreLogic.pm:1949: Plugins::callHook('AI_buy_auto');
src/AI/CoreLogic.pm:2266: Plugins::callHook("AI/lockMap", \%args);
+
src/AI/CoreLogic.pm:2266: Plugins::callHook('AI/lockMap', \%args);
src/AI/CoreLogic.pm:2384: Plugins::callHook( ai_processRandomWalk => \%plugin_args );
+
src/AI/CoreLogic.pm:2384: Plugins::callHook('ai_processRandomWalk' => \%plugin_args);
src/AI/CoreLogic.pm:2703: Plugins::callHook("ai_follow", $args);
+
src/AI/CoreLogic.pm:2703: Plugins::callHook('ai_follow', $args);
src/AI/CoreLogic.pm:3223: Plugins::callHook("checkMonsterAutoAttack", \%hookArgs);
+
src/AI/CoreLogic.pm:3223: Plugins::callHook('checkMonsterAutoAttack', \%hookArgs);
src/AI/CoreLogic.pm:3286: Plugins::callHook('ai_items_take');
+
src/AI/CoreLogic.pm:3286: Plugins::callHook('ai_items_take');
src/AI/SlaveAttack.pm:186: Plugins::callHook("slave_target_died", {ID => $ID, slave => $slave});
+
src/AI/SlaveAttack.pm:186: Plugins::callHook('slave_target_died', {
src/AI/SlaveAttack.pm:224: Plugins::callHook('slave_attack_end', {ID => $ID, slave => $slave})
+
src/AI/SlaveAttack.pm:227: Plugins::callHook('slave_attack_end', {
src/AI.pm:98: Plugins::callHook('AI_state_change', {old => $AI, new => $_[0]});
+
src/AI.pm:98: Plugins::callHook('AI_state_change', {
 
src/ChatQueue.pm:64: Plugins::callHook('ChatQueue::add', \%item);
 
src/ChatQueue.pm:64: Plugins::callHook('ChatQueue::add', \%item);
 
src/ChatQueue.pm:616: Plugins::callHook('ChatQueue::processChatResponse', $cmd);
 
src/ChatQueue.pm:616: Plugins::callHook('ChatQueue::processChatResponse', $cmd);
src/Commands.pm:870: Plugins::callHook("Commands::run/pre", \%params);
+
src/Commands.pm:870: Plugins::callHook('Commands::run/pre', \%params);
src/Commands.pm:872: Plugins::callHook("Commands::run/post", \%params);
+
src/Commands.pm:872: Plugins::callHook('Commands::run/post', \%params);
src/Commands.pm:876: Plugins::callHook('Command_post', \%params);
+
src/Commands.pm:876: Plugins::callHook('Command_post', \%params);
 
src/Commands.pm:1244: Plugins::callHook('AI_buy_auto_queued');
 
src/Commands.pm:1244: Plugins::callHook('AI_buy_auto_queued');
src/Commands.pm:1273: Plugins::callHook('AI_sell_auto_queued');
+
src/Commands.pm:1273: Plugins::callHook('AI_sell_auto_queued');
src/Commands.pm:1281: Plugins::callHook('AI_storage_auto_queued');
+
src/Commands.pm:1281: Plugins::callHook('AI_storage_auto_queued');
src/Commands.pm:2094: Plugins::callHook('Commands::cmdConf', {
+
src/Commands.pm:2094: Plugins::callHook('Commands::cmdConf', {
src/FileParsers.pm:784: Plugins::callHook("FileParsers::ROLUT", \%ret);
+
src/FileParsers.pm:784: Plugins::callHook('FileParsers::ROLUT', \%ret);
src/FileParsers.pm:811: Plugins::callHook("FileParsers::RODescLUT", \%ret);
+
src/FileParsers.pm:811: Plugins::callHook('FileParsers::RODescLUT', \%ret);
 
src/FileParsers.pm:861: Plugins::callHook ('FileParsers::ROQuestsLUT', \%ret);
 
src/FileParsers.pm:861: Plugins::callHook ('FileParsers::ROQuestsLUT', \%ret);
 
src/FileParsers.pm:1480: Plugins::callHook('updatePortalLUT', $plugin_args);
 
src/FileParsers.pm:1480: Plugins::callHook('updatePortalLUT', $plugin_args);
 
src/FileParsers.pm:1494: Plugins::callHook('updatePortalLUT2', $plugin_args);
 
src/FileParsers.pm:1494: Plugins::callHook('updatePortalLUT2', $plugin_args);
src/functions.pl:74: Plugins::callHook('mainLoop_pre');
+
src/functions.pl:74: Plugins::callHook('mainLoop_pre');
src/functions.pl:76: Plugins::callHook('mainLoop_post');
+
src/functions.pl:76: Plugins::callHook('mainLoop_post');
src/functions.pl:83: Plugins::callHook('start');
+
src/functions.pl:83: Plugins::callHook('start');
src/functions.pl:136: Plugins::callHook( 'parse_command_line' );
+
src/functions.pl:136: Plugins::callHook('parse_command_line');
 
src/functions.pl:378: Plugins::callHook('start2');
 
src/functions.pl:378: Plugins::callHook('start2');
 
src/functions.pl:402: Plugins::callHook('start3');
 
src/functions.pl:402: Plugins::callHook('start3');
Line 117: Line 118:
 
src/functions.pl:793: Plugins::callHook('packet_mapChange');
 
src/functions.pl:793: Plugins::callHook('packet_mapChange');
 
src/functions.pl:1002: Plugins::callHook('mainLoop::setTitle',\%args);
 
src/functions.pl:1002: Plugins::callHook('mainLoop::setTitle',\%args);
src/Interface/Console/Curses.pm:683: Plugins::callHook( 'curses/updateStatus' );
+
src/Interface/Console/Curses.pm:683: Plugins::callHook('curses/updateStatus');
src/Interface/Console/Curses.pm:808: Plugins::callHook( 'curses/updateObjects' );
+
src/Interface/Console/Curses.pm:808: Plugins::callHook('curses/updateObjects');
src/InventoryList/Cart.pm:41: Plugins::callHook('cart_ready');
+
src/InventoryList/Cart.pm:41: Plugins::callHook('cart_ready');
src/InventoryList/Cart.pm:43: Plugins::callHook('cart_info_updated');
+
src/InventoryList/Cart.pm:43: Plugins::callHook('cart_info_updated');
src/InventoryList/Cart.pm:102: Plugins::callHook('cart_ready');
+
src/InventoryList/Cart.pm:102: Plugins::callHook('cart_ready');
src/InventoryList/Inventory.pm:41: Plugins::callHook('inventory_ready');
+
src/InventoryList/Inventory.pm:41: Plugins::callHook('inventory_ready');
src/InventoryList/Inventory.pm:71: Plugins::callHook('inventory_ready');
+
src/InventoryList/Inventory.pm:71: Plugins::callHook('inventory_ready');
src/InventoryList/Storage.pm:44: Plugins::callHook('storage_first_session_openning');
+
src/InventoryList/Storage.pm:44: Plugins::callHook('storage_first_session_openning');
src/InventoryList/Storage.pm:46: Plugins::callHook('packet_storage_open');
+
src/InventoryList/Storage.pm:46: Plugins::callHook('packet_storage_open');
 
src/InventoryList/Storage.pm:53: Plugins::callHook('packet_storage_close');
 
src/InventoryList/Storage.pm:53: Plugins::callHook('packet_storage_close');
src/InventoryList/Storage.pm:89: Plugins::callHook('storage_ready');
+
src/InventoryList/Storage.pm:89: Plugins::callHook('storage_ready');
 
src/Misc.pm:315: Plugins::callHook('configModify', {
 
src/Misc.pm:315: Plugins::callHook('configModify', {
src/Misc.pm:366: Plugins::callHook('configModify', {
+
src/Misc.pm:366: Plugins::callHook('configModify', {
 
src/Misc.pm:406: Plugins::callHook('setTimeout', {
 
src/Misc.pm:406: Plugins::callHook('setTimeout', {
 
src/Misc.pm:1283: Plugins::callHook('charSelectScreen', \%plugin_args);
 
src/Misc.pm:1283: Plugins::callHook('charSelectScreen', \%plugin_args);
src/Misc.pm:1515: Plugins::callHook( ai_check_Aggressiveness => \%plugin_args );
+
src/Misc.pm:1515: Plugins::callHook('ai_check_Aggressiveness' => \%plugin_args);
src/Misc.pm:1550: Plugins::callHook( ai_slave_check_Aggressiveness => \%plugin_args );
+
src/Misc.pm:1550: Plugins::callHook('ai_slave_check_Aggressiveness' => \%plugin_args);
src/Misc.pm:2143: Plugins::callHook('inventory_item_removed', {item => $item, index => $binID, amount => $amount, remaining => ($item->{amount} <= 0 ? 0 : $item->{amount})});
+
src/Misc.pm:2143: Plugins::callHook('inventory_item_removed', {
src/Misc.pm:2162: Plugins::callHook('storage_item_removed', {item => $item, index => $binID, amount => $amount, remaining => ($item->{amount} <= 0 ? 0 : $item->{amount})});
+
src/Misc.pm:2167: Plugins::callHook('storage_item_removed', {
src/Misc.pm:2181: Plugins::callHook('cart_item_removed', {item => $item, index => $binID, amount => $amount, remaining => ($item->{amount} <= 0 ? 0 : $item->{amount})});
+
src/Misc.pm:2191: Plugins::callHook('cart_item_removed', {
src/Misc.pm:2868: Plugins::callHook('objectAdded', {
+
src/Misc.pm:2883: Plugins::callHook('objectAdded', {
src/Misc.pm:2885: Plugins::callHook('objectRemoved', {
+
src/Misc.pm:2900: Plugins::callHook('objectRemoved', {
src/Misc.pm:3277: Plugins::callHook('changed_status',{actor => $actor, changed => $changed});
+
src/Misc.pm:3292: Plugins::callHook('changed_status',{
src/Misc.pm:3287: Plugins::callHook('perfect_hidden_player',{actor => $actor, changed => $changed});
+
src/Misc.pm:3305: Plugins::callHook('perfect_hidden_player', {
src/Misc.pm:3299: Plugins::callHook('perfect_hidden_npc',{actor => $actor, changed => $changed});
+
src/Misc.pm:3320: Plugins::callHook('perfect_hidden_npc', {
src/Misc.pm:3760: Plugins::callHook('teleport_sent', \%args);
+
src/Misc.pm:3784: Plugins::callHook('teleport_sent', \%args);
src/Misc.pm:3766: Plugins::callHook('teleport_sent', \%args);
+
src/Misc.pm:3790: Plugins::callHook('teleport_sent', \%args);
src/Misc.pm:3798: Plugins::callHook('teleport_sent', \%args);
+
src/Misc.pm:3822: Plugins::callHook('teleport_sent', \%args);
src/Misc.pm:3807: Plugins::callHook('teleport_sent', \%args);
+
src/Misc.pm:3831: Plugins::callHook('teleport_sent', \%args);
src/Misc.pm:3817: Plugins::callHook('teleport_sent', \%args);
+
src/Misc.pm:3841: Plugins::callHook('teleport_sent', \%args);
src/Misc.pm:3829: Plugins::callHook('teleport_sent', \%args);
+
src/Misc.pm:3853: Plugins::callHook('teleport_sent', \%args);
src/Misc.pm:3887: Plugins::callHook('teleport_sent', \%args);
+
src/Misc.pm:3911: Plugins::callHook('teleport_sent', \%args);
src/Misc.pm:4275: Plugins::callHook('avoidGM_near', \%args);
+
src/Misc.pm:4299: Plugins::callHook('avoidGM_near', \%args);
src/Misc.pm:4327: Plugins::callHook('avoidGM_talk', \%args);
+
src/Misc.pm:4351: Plugins::callHook('avoidGM_talk', \%args);
src/Misc.pm:4366: Plugins::callHook('avoidList_near', \%args);
+
src/Misc.pm:4390: Plugins::callHook('avoidList_near', \%args);
src/Misc.pm:5034: Plugins::callHook("checkSelfCondition", \%hookArgs);
+
src/Misc.pm:5058: Plugins::callHook('checkSelfCondition', \%hookArgs);
src/Misc.pm:5186: Plugins::callHook('checkPlayerCondition', \%args);
+
src/Misc.pm:5210: Plugins::callHook('checkPlayerCondition', \%args);
src/Misc.pm:5261: Plugins::callHook('checkMonsterCondition', \%args);
+
src/Misc.pm:5285: Plugins::callHook('checkMonsterCondition', \%args);
src/Misc.pm:5351: Plugins::callHook ('open_shop', {title => $shop{title}, items => \@items});
+
src/Misc.pm:5375: Plugins::callHook('open_shop', {
src/Misc.pm:5365: Plugins::callHook("shop_closed");
+
src/Misc.pm:5392: Plugins::callHook('shop_closed');
src/Misc.pm:5460: Plugins::callHook ('buyer_open_shop', {title => $buyer_shop{title}, limitZeny=> $limitZeny, items => \@items});
+
src/Misc.pm:5487: Plugins::callHook ('buyer_open_shop', {
src/Misc.pm:5477: Plugins::callHook("buyer_shop_closed");
+
src/Misc.pm:5508: Plugins::callHook('buyer_shop_closed');
 
src/Network/ClientReceive.pm:75: Plugins::callHook('map_loaded');
 
src/Network/ClientReceive.pm:75: Plugins::callHook('map_loaded');
 
src/Network/DirectConnection.pm:140: Plugins::callHook('Network::connectTo', {
 
src/Network/DirectConnection.pm:140: Plugins::callHook('Network::connectTo', {
src/Network/DirectConnection.pm:173: Plugins::callHook("Network::serverSend/pre", { msg => \$msg });
+
src/Network/DirectConnection.pm:173: Plugins::callHook('Network::serverSend/pre', {msg => \$msg});
src/Network/DirectConnection.pm:178: Plugins::callHook("Network::serverSend", { msg => $msg });
+
src/Network/DirectConnection.pm:178: Plugins::callHook('Network::serverSend', {msg => $msg});
src/Network/DirectConnection.pm:196: Plugins::callHook("Network::serverRecv", { msg => \$msg });
+
src/Network/DirectConnection.pm:196: Plugins::callHook('Network::serverRecv', {msg => \$msg});
src/Network/DirectConnection.pm:245: Plugins::callHook("serverDisconnect/fail");
+
src/Network/DirectConnection.pm:245: Plugins::callHook('serverDisconnect/fail');
src/Network/DirectConnection.pm:248: Plugins::callHook("serverDisconnect/success");
+
src/Network/DirectConnection.pm:248: Plugins::callHook('serverDisconnect/success');
 
src/Network/DirectConnection.pm:260: Plugins::callHook('Network::stateChanged');
 
src/Network/DirectConnection.pm:260: Plugins::callHook('Network::stateChanged');
 
src/Network/DirectConnection.pm:274: Plugins::callHook('Network::clientAlive', \%args);
 
src/Network/DirectConnection.pm:274: Plugins::callHook('Network::clientAlive', \%args);
src/Network/DirectConnection.pm:286: Plugins::callHook('Network::clientSend', \%args);
+
src/Network/DirectConnection.pm:286: Plugins::callHook('Network::clientSend', \%args);
src/Network/DirectConnection.pm:301: Plugins::callHook('Network::clientRecv', \%args);
+
src/Network/DirectConnection.pm:301: Plugins::callHook('Network::clientRecv', \%args);
src/Network/DirectConnection.pm:355: Plugins::callHook("Network::serverConnect/master");
+
src/Network/DirectConnection.pm:355: Plugins::callHook('Network::serverConnect/master');
src/Network/DirectConnection.pm:486: Plugins::callHook("Network::serverConnect/special");
+
src/Network/DirectConnection.pm:486: Plugins::callHook('Network::serverConnect/special');
src/Network/DirectConnection.pm:526: Plugins::callHook("Network::serverConnect/char");
+
src/Network/DirectConnection.pm:526: Plugins::callHook('Network::serverConnect/char');
src/Network/DirectConnection.pm:562: Plugins::callHook("Network::serverConnect/charselect");
+
src/Network/DirectConnection.pm:562: Plugins::callHook('Network::serverConnect/charselect');
src/Network/DirectConnection.pm:600: Plugins::callHook("Network::serverConnect/mapserver");
+
src/Network/DirectConnection.pm:600: Plugins::callHook('Network::serverConnect/mapserver');
src/Network/DirectConnection.pm:618: Plugins::callHook('disconnected');
+
src/Network/DirectConnection.pm:618: Plugins::callHook('disconnected');
src/Network/DirectConnection.pm:633: Plugins::callHook('disconnected');
+
src/Network/DirectConnection.pm:633: Plugins::callHook('disconnected');
src/Network/PacketParser.pm:272: Plugins::callHook("packet_pre/$handler->[0]", \%args);
+
src/Network/PacketParser.pm:272: Plugins::callHook('packet_pre/$handler->[0]', \%args);
src/Network/PacketParser.pm:274: Plugins::callHook("$self->{hook_prefix}/packet_pre/$handler->[0]", \%args);
+
src/Network/PacketParser.pm:274: Plugins::callHook('$self->{hook_prefix}/packet_pre/$handler->[0]', \%args);
src/Network/PacketParser.pm:289: Plugins::callHook("packet/$handler->[0]", \%args);
+
src/Network/PacketParser.pm:289: Plugins::callHook('packet/$handler->[0]', \%args);
src/Network/PacketParser.pm:291: Plugins::callHook("$self->{hook_prefix}/packet/$handler->[0]", \%args);
+
src/Network/PacketParser.pm:291: Plugins::callHook('$self->{hook_prefix}/packet/$handler->[0]', \%args);
src/Network/PacketParser.pm:368: Plugins::callHook("$self->{hook_prefix}/willMangle", \%args);
+
src/Network/PacketParser.pm:368: Plugins::callHook('$self->{hook_prefix}/willMangle', \%args);
src/Network/PacketParser.pm:390: Plugins::callHook("$self->{hook_prefix}/mangle", \%hook_args);
+
src/Network/PacketParser.pm:390: Plugins::callHook('$self->{hook_prefix}/mangle', \%hook_args);
src/Network/PacketParser.pm:494: Plugins::callHook($hook, {switch => $switch, msg => $msg, msg_size => length($msg), realMsg => \$msg});
+
src/Network/PacketParser.pm:494: Plugins::callHook($hook, {
src/Network/Receive/kRO/Sakexe_0.pm:1011: Plugins::callHook($args->{hook}, {index => $index, item => $local_item});
+
src/Network/Receive/kRO/Sakexe_0.pm:1011: Plugins::callHook($args->{hook}, {
src/Network/Receive/kRO/Sakexe_0.pm:1048: Plugins::callHook('packet_guildMsg', {
+
src/Network/Receive/kRO/Sakexe_0.pm:1051: Plugins::callHook('packet_guildMsg', {
src/Network/Receive/kRO/Sakexe_0.pm:1101: Plugins::callHook('item_skill', {
+
src/Network/Receive/kRO/Sakexe_0.pm:1104: Plugins::callHook('item_skill', {
src/Network/Receive/kRO/Sakexe_0.pm:1152: Plugins::callHook('packet_pubMsg', {
+
src/Network/Receive/kRO/Sakexe_0.pm:1155: Plugins::callHook('packet_pubMsg', {
src/Network/Receive/kRO/Sakexe_0.pm:1168: Plugins::callHook('packet_sentPM', {
+
src/Network/Receive/kRO/Sakexe_0.pm:1171: Plugins::callHook('packet_sentPM', {
src/Network/Receive/kRO/Sakexe_0.pm:1201: Plugins::callHook('pvp_mode', {
+
src/Network/Receive/kRO/Sakexe_0.pm:1204: Plugins::callHook('pvp_mode', {
src/Network/Receive/kRO/Sakexe_0.pm:1217: Plugins::callHook('pvp_mode', {
+
src/Network/Receive/kRO/Sakexe_0.pm:1220: Plugins::callHook('pvp_mode', {
src/Network/Receive/kRO/Sakexe_0.pm:1292: Plugins::callHook('packet_skilluse', {
+
src/Network/Receive/kRO/Sakexe_0.pm:1295: Plugins::callHook('packet_skilluse', {
src/Network/Receive/kRO/Sakexe_0.pm:1333: Plugins::callHook('packet_skilluse', {
+
src/Network/Receive/kRO/Sakexe_0.pm:1336: Plugins::callHook('packet_skilluse', {
src/Network/Receive/kRO/Sakexe_0.pm:1412: Plugins::callHook('packet_skilluse', {
+
src/Network/Receive/kRO/Sakexe_0.pm:1415: Plugins::callHook('packet_skilluse', {
src/Network/Receive/ServerType0.pm:1044: Plugins::callHook($args->{hook}, {index => $index, item => $local_item});
+
src/Network/Receive/ServerType0.pm:1044: Plugins::callHook($args->{hook}, {
src/Network/Receive/ServerType0.pm:1083: Plugins::callHook('packet_guildMsg', {
+
src/Network/Receive/ServerType0.pm:1086: Plugins::callHook('packet_guildMsg', {
src/Network/Receive/ServerType0.pm:1136: Plugins::callHook('item_skill', {
+
src/Network/Receive/ServerType0.pm:1139: Plugins::callHook('item_skill', {
src/Network/Receive/ServerType0.pm:1187: Plugins::callHook('packet_pubMsg', {
+
src/Network/Receive/ServerType0.pm:1190: Plugins::callHook('packet_pubMsg', {
src/Network/Receive/ServerType0.pm:1217: Plugins::callHook('pvp_mode', {
+
src/Network/Receive/ServerType0.pm:1220: Plugins::callHook('pvp_mode', {
src/Network/Receive/ServerType0.pm:1234: Plugins::callHook('pvp_mode', {
+
src/Network/Receive/ServerType0.pm:1237: Plugins::callHook('pvp_mode', {
src/Network/Receive/ServerType0.pm:1314: Plugins::callHook('packet_skilluse', {
+
src/Network/Receive/ServerType0.pm:1317: Plugins::callHook('packet_skilluse', {
src/Network/Receive/ServerType0.pm:1363: Plugins::callHook('packet_skilluse', {
+
src/Network/Receive/ServerType0.pm:1366: Plugins::callHook('packet_skilluse', {
src/Network/Receive/ServerType0.pm:1449: Plugins::callHook('packet_skilluse', {
+
src/Network/Receive/ServerType0.pm:1452: Plugins::callHook('packet_skilluse', {
 
src/Network/Receive.pm:795: Plugins::callHook('parseMsg/recvChars', $args->{options});
 
src/Network/Receive.pm:795: Plugins::callHook('parseMsg/recvChars', $args->{options});
src/Network/Receive.pm:943: Plugins::callHook('char_created', { char => $character });
+
src/Network/Receive.pm:943: Plugins::callHook('char_created', {char => $character});
 
src/Network/Receive.pm:1230: Plugins::callHook('in_game');
 
src/Network/Receive.pm:1230: Plugins::callHook('in_game');
 
src/Network/Receive.pm:1274: Plugins::callHook('disconnected');
 
src/Network/Receive.pm:1274: Plugins::callHook('disconnected');
src/Network/Receive.pm:1374: Plugins::callHook('exp_gained');
+
src/Network/Receive.pm:1374: Plugins::callHook('exp_gained');
src/Network/Receive.pm:1430: Plugins::callHook('base_level_changed', {
+
src/Network/Receive.pm:1430: Plugins::callHook('base_level_changed', {level => $actor->{lv}});
src/Network/Receive.pm:1463: Plugins::callHook('zeny_change', {
+
src/Network/Receive.pm:1461: Plugins::callHook('zeny_change', {
src/Network/Receive.pm:1534: Plugins::callHook('job_level_changed', {
+
src/Network/Receive.pm:1532: Plugins::callHook('job_level_changed', {level => $actor->{lv_job}});
src/Network/Receive.pm:1652: Plugins::callHook('packet_charStats', {
+
src/Network/Receive.pm:1648: Plugins::callHook('packet_charStats', {
src/Network/Receive.pm:1752: Plugins::callHook('packet_pre/actor_display', $args);
+
src/Network/Receive.pm:1748: Plugins::callHook('packet_pre/actor_display', $args);
src/Network/Receive.pm:1754: Plugins::callHook('packet/actor_display', $args);
+
src/Network/Receive.pm:1750: Plugins::callHook('packet/actor_display', $args);
src/Network/Receive.pm:2123: Plugins::callHook('add_player_list', $actor);
+
src/Network/Receive.pm:2119: Plugins::callHook('add_player_list', $actor);
src/Network/Receive.pm:2127: Plugins::callHook('add_monster_list', $actor);
+
src/Network/Receive.pm:2123: Plugins::callHook('add_monster_list', $actor);
src/Network/Receive.pm:2131: Plugins::callHook('add_pet_list', $actor);
+
src/Network/Receive.pm:2127: Plugins::callHook('add_pet_list', $actor);
src/Network/Receive.pm:2135: Plugins::callHook('add_portal_list', $actor);
+
src/Network/Receive.pm:2131: Plugins::callHook('add_portal_list', $actor);
src/Network/Receive.pm:2144: Plugins::callHook('add_npc_list', $actor);
+
src/Network/Receive.pm:2140: Plugins::callHook('add_npc_list', $actor);
src/Network/Receive.pm:2148: Plugins::callHook('add_slave_list', $actor);
+
src/Network/Receive.pm:2144: Plugins::callHook('add_slave_list', $actor);
src/Network/Receive.pm:2151: Plugins::callHook('add_elemental_list', $actor);
+
src/Network/Receive.pm:2147: Plugins::callHook('add_elemental_list', $actor);
src/Network/Receive.pm:2172: Plugins::callHook('player', {player => $actor}); #backwards compatibility
+
src/Network/Receive.pm:2168: Plugins::callHook('player', {player => $actor}); #backwards compatibility
src/Network/Receive.pm:2174: Plugins::callHook('player_exist', {player => $actor});
+
src/Network/Receive.pm:2170: Plugins::callHook('player_exist', {player => $actor});
src/Network/Receive.pm:2178: Plugins::callHook('npc_exist', {npc => $actor});
+
src/Network/Receive.pm:2174: Plugins::callHook('npc_exist', {npc => $actor});
src/Network/Receive.pm:2182: Plugins::callHook('portal_exist', {portal => $actor});
+
src/Network/Receive.pm:2178: Plugins::callHook('portal_exist', {portal => $actor});
src/Network/Receive.pm:2217: Plugins::callHook('player', {player => $actor}); #backwards compatibailty
+
src/Network/Receive.pm:2213: Plugins::callHook('player', {player => $actor}); #backwards compatibailty
src/Network/Receive.pm:2219: Plugins::callHook('player_connected', {player => $actor});
+
src/Network/Receive.pm:2215: Plugins::callHook('player_connected', {player => $actor});
src/Network/Receive.pm:2247:         Plugins::callHook('player_moved', $actor);
+
src/Network/Receive.pm:2243: Plugins::callHook('player_moved', $actor);
src/Network/Receive.pm:2250:         Plugins::callHook('monster_moved', $actor);
+
src/Network/Receive.pm:2246: Plugins::callHook('monster_moved', $actor);
src/Network/Receive.pm:2253:         Plugins::callHook('pet_moved', $actor);
+
src/Network/Receive.pm:2249: Plugins::callHook('pet_moved', $actor);
src/Network/Receive.pm:2256:   Plugins::callHook('slave_moved', $actor);
+
src/Network/Receive.pm:2252: Plugins::callHook('slave_moved', $actor);
src/Network/Receive.pm:2260:         Plugins::callHook('portal_moved', $actor);
+
src/Network/Receive.pm:2256: Plugins::callHook('portal_moved', $actor);
src/Network/Receive.pm:2264:         Plugins::callHook('npc_moved', $actor);
+
src/Network/Receive.pm:2260: Plugins::callHook('npc_moved', $actor);
src/Network/Receive.pm:2267:         Plugins::callHook('pet_moved', $actor);
+
src/Network/Receive.pm:2263: Plugins::callHook('pet_moved', $actor);
src/Network/Receive.pm:2315: Plugins::callHook('self_died');
+
src/Network/Receive.pm:2311: Plugins::callHook('self_died');
src/Network/Receive.pm:2354: Plugins::callHook('monster_disappeared', {monster => $monster});
+
src/Network/Receive.pm:2350: Plugins::callHook('monster_disappeared', {monster => $monster});
src/Network/Receive.pm:2390: Plugins::callHook('player_disappeared', {player => $player});
+
src/Network/Receive.pm:2386: Plugins::callHook('player_disappeared', {player => $player});
src/Network/Receive.pm:2410: Plugins::callHook('portal_disappeared', {portal => $portal});
+
src/Network/Receive.pm:2406: Plugins::callHook('portal_disappeared', {portal => $portal});
src/Network/Receive.pm:2419: Plugins::callHook('npc_disappeared', {npc => $npc});
+
src/Network/Receive.pm:2415: Plugins::callHook('npc_disappeared', {npc => $npc});
src/Network/Receive.pm:2427: Plugins::callHook('pet_disappeared', {pet => $pet});
+
src/Network/Receive.pm:2423: Plugins::callHook('pet_disappeared', {pet => $pet});
src/Network/Receive.pm:2460: Plugins::callHook('slave_disappeared', {slave => $slave});
+
src/Network/Receive.pm:2456: Plugins::callHook('slave_disappeared', {slave => $slave});
src/Network/Receive.pm:2476: Plugins::callHook('elemental_disappeared', {elemental => $elemental});
+
src/Network/Receive.pm:2472: Plugins::callHook('elemental_disappeared', {elemental => $elemental});
src/Network/Receive.pm:2564: Plugins::callHook('packet_attack', {sourceID => $args->{sourceID}, targetID => $args->{targetID}, msg => \$msg, dmg => $totalDamage, type => $args->{type}});
+
src/Network/Receive.pm:2560: Plugins::callHook('packet_attack', {
src/Network/Receive.pm:2629: Plugins::callHook('charNameUpdate', {player => $player});
+
src/Network/Receive.pm:2631: Plugins::callHook('charNameUpdate', {player => $player});
src/Network/Receive.pm:2641: Plugins::callHook('mobNameUpdate', {monster => $monster});
+
src/Network/Receive.pm:2643: Plugins::callHook('mobNameUpdate', {monster => $monster});
src/Network/Receive.pm:2659: Plugins::callHook('npcNameUpdate', {npc => $npc});
+
src/Network/Receive.pm:2661: Plugins::callHook('npcNameUpdate', {npc => $npc});
src/Network/Receive.pm:2671: Plugins::callHook('petNameUpdate', {pet => $pet});
+
src/Network/Receive.pm:2673: Plugins::callHook('petNameUpdate', {pet => $pet});
src/Network/Receive.pm:2682: Plugins::callHook('slaveNameUpdate', {slave => $slave});
+
src/Network/Receive.pm:2684: Plugins::callHook('slaveNameUpdate', {slave => $slave});
src/Network/Receive.pm:2694: Plugins::callHook('elementalNameUpdate', {elemental => $elemental});
+
src/Network/Receive.pm:2696: Plugins::callHook('elementalNameUpdate', {elemental => $elemental});
src/Network/Receive.pm:2721: Plugins::callHook('base_level', {name => $actor});
+
src/Network/Receive.pm:2723: Plugins::callHook('base_level', {name => $actor});
src/Network/Receive.pm:2724: Plugins::callHook('job_level', {name => $actor});
+
src/Network/Receive.pm:2726: Plugins::callHook('job_level', {name => $actor});
src/Network/Receive.pm:3025: Plugins::callHook('packet_localBroadcast', {
+
src/Network/Receive.pm:3027: Plugins::callHook('packet_localBroadcast', {
src/Network/Receive.pm:3263: Plugins::callHook('show_script', {
+
src/Network/Receive.pm:3265: Plugins::callHook('show_script', {
src/Network/Receive.pm:3394: Plugins::callHook('packet_sysMsg', {
+
src/Network/Receive.pm:3396: Plugins::callHook('packet_sysMsg', {
src/Network/Receive.pm:3546: Plugins::callHook('equipped_item', {slot => 'arrow', item => $item});
+
src/Network/Receive.pm:3548: Plugins::callHook('equipped_item', {
src/Network/Receive.pm:3598: Plugins::callHook('item_gathered',{item => $item->{name}, amount => $amount});
+
src/Network/Receive.pm:3603: Plugins::callHook('item_gathered', {
src/Network/Receive.pm:3659: Plugins::callHook('packet_item_removed', {index => $item->{binID}});
+
src/Network/Receive.pm:3667: Plugins::callHook('packet_item_removed', {index => $item->{binID}});
src/Network/Receive.pm:3671: Plugins::callHook('rental_expired', {
+
src/Network/Receive.pm:3679: Plugins::callHook('rental_expired', {
src/Network/Receive.pm:3712: Plugins::callHook(
+
src/Network/Receive.pm:3720: Plugins::callHook('vending_item_sold', {
src/Network/Receive.pm:3727: Plugins::callHook(
+
src/Network/Receive.pm:3732: Plugins::callHook('vending_item_sold_out', {
src/Network/Receive.pm:3762: Plugins::callHook(
+
src/Network/Receive.pm:3764: Plugins::callHook('vending_item_sold', {
src/Network/Receive.pm:3779: Plugins::callHook(
+
src/Network/Receive.pm:3778: Plugins::callHook('vending_item_sold_out', {
src/Network/Receive.pm:3857: Plugins::callHook('packet_vender_store', { item => $item });
+
src/Network/Receive.pm:3853: Plugins::callHook('packet_vender_store', { item => $item });
src/Network/Receive.pm:3872: Plugins::callHook('packet_vender_store2', {
+
src/Network/Receive.pm:3868: Plugins::callHook('packet_vender_store2', {
src/Network/Receive.pm:4150: Plugins::callHook('pvp_mode', {
+
src/Network/Receive.pm:4146: Plugins::callHook('pvp_mode', {pvp => $pvp});# 1 PvP, 2 GvG, 3 Battleground
src/Network/Receive.pm:4194: Plugins::callHook('packet_areaSpell', {
+
src/Network/Receive.pm:4188: Plugins::callHook('packet_areaSpell', {
src/Network/Receive.pm:4241: Plugins::callHook('packet_areaSpell', {
+
src/Network/Receive.pm:4235: Plugins::callHook('packet_areaSpell', {
src/Network/Receive.pm:4290: Plugins::callHook('packet_areaSpell', {
+
src/Network/Receive.pm:4284: Plugins::callHook('packet_areaSpell', {
src/Network/Receive.pm:4562:           Plugins::callHook('quest_mission_added', {
+
src/Network/Receive.pm:4556: Plugins::callHook('quest_mission_added', {
src/Network/Receive.pm:4569: Plugins::callHook('quest_list');
+
src/Network/Receive.pm:4563: Plugins::callHook('quest_list');
src/Network/Receive.pm:4622:           Plugins::callHook('quest_mission_added', {
+
src/Network/Receive.pm:4616: Plugins::callHook('quest_mission_added', {
src/Network/Receive.pm:4690: Plugins::callHook('quest_mission_added', {
+
src/Network/Receive.pm:4684: Plugins::callHook('quest_mission_added', {
src/Network/Receive.pm:4696:   Plugins::callHook('quest_added', {
+
src/Network/Receive.pm:4690: Plugins::callHook('quest_added', {questID => $args->{questID}});
src/Network/Receive.pm:4791: Plugins::callHook('quest_mission_updated', {
+
src/Network/Receive.pm:4783: Plugins::callHook('quest_mission_updated', {
src/Network/Receive.pm:4862: Plugins::callHook('npc_chat', {
+
src/Network/Receive.pm:4854: Plugins::callHook('npc_chat', {
src/Network/Receive.pm:4888: Plugins::callHook('makable_item_list', {
+
src/Network/Receive.pm:4880: Plugins::callHook('makable_item_list', {item_list => $makableList});
src/Network/Receive.pm:5228: Plugins::callHook('invalid_password');
+
src/Network/Receive.pm:5218: Plugins::callHook('invalid_password');
src/Network/Receive.pm:5256: Plugins::callHook('dial');
+
src/Network/Receive.pm:5246: Plugins::callHook('dial');
src/Network/Receive.pm:5275: Plugins::callHook('invalid_password');
+
src/Network/Receive.pm:5265: Plugins::callHook('invalid_password');
src/Network/Receive.pm:5442: Plugins::callHook('chat_created', {
+
src/Network/Receive.pm:5432: Plugins::callHook('chat_created', {chat => $chatRooms{$accountID}});
src/Network/Receive.pm:5471: Plugins::callHook('packet_chatinfo', {
+
src/Network/Receive.pm:5459: Plugins::callHook('packet_chatinfo', {
src/Network/Receive.pm:5515: Plugins::callHook('chat_joined', {
+
src/Network/Receive.pm:5503: Plugins::callHook('chat_joined', {chat => $chat});
src/Network/Receive.pm:5582: Plugins::callHook('chat_modified', {
+
src/Network/Receive.pm:5568: Plugins::callHook('chat_modified', {
src/Network/Receive.pm:5657: Plugins::callHook('chat_leave');
+
src/Network/Receive.pm:5643: Plugins::callHook('chat_leave');
src/Network/Receive.pm:5671: Plugins::callHook('chat_removed', {
+
src/Network/Receive.pm:5657: Plugins::callHook('chat_removed', {
src/Network/Receive.pm:5703: Plugins::callHook("error_deal", { type =>$args->{type}} );
+
src/Network/Receive.pm:5689: Plugins::callHook('error_deal', {type => $args->{type}});
src/Network/Receive.pm:5706: Plugins::callHook("error_deal", { type =>$args->{type}} );
+
src/Network/Receive.pm:5692: Plugins::callHook('error_deal', {type => $args->{type}});
src/Network/Receive.pm:5724: Plugins::callHook("engaged_deal", {name => $currentDeal{name}});
+
src/Network/Receive.pm:5710: Plugins::callHook('engaged_deal', {name => $currentDeal{name}});
src/Network/Receive.pm:5727: Plugins::callHook("error_deal", { type =>$args->{type}} );
+
src/Network/Receive.pm:5713: Plugins::callHook('error_deal', {type =>$args->{type}});
src/Network/Receive.pm:5730: Plugins::callHook("error_deal", { type =>$args->{type}} );
+
src/Network/Receive.pm:5716: Plugins::callHook('error_deal', {type =>$args->{type}});
src/Network/Receive.pm:5739: Plugins::callHook("cancelled_deal");
+
src/Network/Receive.pm:5725: Plugins::callHook('cancelled_deal');
src/Network/Receive.pm:5747: Plugins::callHook("complete_deal");
+
src/Network/Receive.pm:5733: Plugins::callHook('complete_deal');
src/Network/Receive.pm:5755: Plugins::callHook("finalized_deal", {name => $currentDeal{name}});
+
src/Network/Receive.pm:5741: Plugins::callHook('finalized_deal', {name => $currentDeal{name}});
src/Network/Receive.pm:5774: Plugins::callHook("incoming_deal", {
+
src/Network/Receive.pm:5760: Plugins::callHook('incoming_deal', {
src/Network/Receive.pm:5872: Plugins::callHook('packet_emotion', {
+
src/Network/Receive.pm:5858: Plugins::callHook('packet_emotion', {
src/Network/Receive.pm:5915: Plugins::callHook('disconnected') if ($net->getState() == Network::IN_GAME);
+
src/Network/Receive.pm:5901: Plugins::callHook('disconnected')
src/Network/Receive.pm:6055: Plugins::callHook("friend_request", {
+
src/Network/Receive.pm:6041: Plugins::callHook('friend_request', {
src/Network/Receive.pm:6855: Plugins::callHook('packet_useitem', \%hook_args);
+
src/Network/Receive.pm:6841: Plugins::callHook('packet_useitem', \%hook_args);
src/Network/Receive.pm:6902: Plugins::callHook('item_appeared', {
+
src/Network/Receive.pm:6888: Plugins::callHook('item_appeared', {
src/Network/Receive.pm:6932: Plugins::callHook('item_exists', {
+
src/Network/Receive.pm:6918: Plugins::callHook('item_exists', {
src/Network/Receive.pm:7153: Plugins::callHook('Network::Receive::map_changed', {
+
src/Network/Receive.pm:7139: Plugins::callHook('Network::Receive::map_changed', {
src/Network/Receive.pm:7269: Plugins::callHook('Network::Receive::map_changed', {
+
src/Network/Receive.pm:7255: Plugins::callHook('Network::Receive::map_changed', {
src/Network/Receive.pm:7335: Plugins::callHook('npc_autotalk', {
+
src/Network/Receive.pm:7321: Plugins::callHook('npc_autotalk', {
src/Network/Receive.pm:7356: Plugins::callHook('npc_talk', {
+
src/Network/Receive.pm:7342: Plugins::callHook('npc_talk', {
src/Network/Receive.pm:7380: Plugins::callHook('npc_talk_done', {ID => $ID});
+
src/Network/Receive.pm:7366: Plugins::callHook('npc_talk_done', {ID => $ID});
src/Network/Receive.pm:7428: Plugins::callHook('npc_autotalk', {
+
src/Network/Receive.pm:7414: Plugins::callHook('npc_autotalk', {
src/Network/Receive.pm:7459: Plugins::callHook('npc_talk_responses', {
+
src/Network/Receive.pm:7445: Plugins::callHook('npc_talk_responses', {
src/Network/Receive.pm:7610: Plugins::callHook('buy_result', {fail => $args->{fail}});
+
src/Network/Receive.pm:7596: Plugins::callHook('buy_result', {fail => $args->{fail}});
src/Network/Receive.pm:7765: Plugins::callHook("deal_you_added", {id => $id, item => $item});
+
src/Network/Receive.pm:7751: Plugins::callHook('deal_you_added', {
src/Network/Receive.pm:7892: Plugins::callHook('add_player_list', $actor);
+
src/Network/Receive.pm:7881: Plugins::callHook('add_player_list', $actor);
src/Network/Receive.pm:7893: Plugins::callHook('player', {player => $actor});  #backwards compatibility
+
src/Network/Receive.pm:7882: Plugins::callHook('player', {player => $actor});  #backwards compatibility
src/Network/Receive.pm:7894: Plugins::callHook('player_exist', {player => $actor});
+
src/Network/Receive.pm:7883: Plugins::callHook('player_exist', {player => $actor});
src/Network/Receive.pm:7907: Plugins::callHook('player_disappeared', {player => $player});
+
src/Network/Receive.pm:7896: Plugins::callHook('player_disappeared', {player => $player});
src/Network/Receive.pm:8102: Plugins::callHook('packet_partyJoin', { partyName => bytesToString($info->{name}) });
+
src/Network/Receive.pm:8091: Plugins::callHook('packet_partyJoin', { partyName => bytesToString($info->{name}) });
src/Network/Receive.pm:8155: Plugins::callHook('packet_partyMsg', {
+
src/Network/Receive.pm:8144: Plugins::callHook('packet_partyMsg', {
src/Network/Receive.pm:8222: Plugins::callHook("party_invite", {
+
src/Network/Receive.pm:8211: Plugins::callHook('party_invite', {
src/Network/Receive.pm:8371: Plugins::callHook('party_users_info_ready');
+
src/Network/Receive.pm:8360: Plugins::callHook('party_users_info_ready');
src/Network/Receive.pm:8468: Plugins::callHook('rodex_mail_list', {
+
src/Network/Receive.pm:8457: Plugins::callHook('rodex_mail_list', {
src/Network/Receive.pm:8541: Plugins::callHook('rodex_mail', {
+
src/Network/Receive.pm:8530: Plugins::callHook('rodex_mail', {
src/Network/Receive.pm:8555: Plugins::callHook('rodex_unread_mail');
+
src/Network/Receive.pm:8544: Plugins::callHook('rodex_unread_mail');
src/Network/Receive.pm:8697: Plugins::callHook('rodex_mail_deleted', {
+
src/Network/Receive.pm:8686: Plugins::callHook('rodex_mail_deleted', {
src/Network/Receive.pm:8831: Plugins::callHook('packet_clanMsg', {
+
src/Network/Receive.pm:8820: Plugins::callHook('packet_clanMsg', {
src/Network/Receive.pm:9027: Plugins::callHook('cooking_list', {
+
src/Network/Receive.pm:9016: Plugins::callHook('cooking_list', {
src/Network/Receive.pm:9142: Plugins::callHook("search_store", $universalCatalogInfo);
+
src/Network/Receive.pm:9131: Plugins::callHook('search_store', $universalCatalogInfo);
src/Network/Receive.pm:9190: Plugins::callHook('packet_message_string', {
+
src/Network/Receive.pm:9179: Plugins::callHook('packet_message_string', {
src/Network/Receive.pm:9248: Plugins::callHook($hook, {
+
src/Network/Receive.pm:9237: Plugins::callHook($hook, {
src/Network/Receive.pm:9274: Plugins::callHook('packet_charSkills', {
+
src/Network/Receive.pm:9263: Plugins::callHook('packet_charSkills', {
src/Network/Receive.pm:9502: Plugins::callHook ('captcha_image', $hookArgs);
+
src/Network/Receive.pm:9491: Plugins::callHook ('captcha_image', $hookArgs);
src/Network/Receive.pm:9511: Plugins::callHook ('captcha_file', $hookArgs);
+
src/Network/Receive.pm:9500: Plugins::callHook ('captcha_file', $hookArgs);
src/Network/Receive.pm:9525: Plugins::callHook ('captcha_answer', {flag => $args->{flag}});
+
src/Network/Receive.pm:9514: Plugins::callHook ('captcha_answer', {flag => $args->{flag}});
src/Network/Receive.pm:9587: Plugins::callHook('packet_open_buying_store', {
+
src/Network/Receive.pm:9576: Plugins::callHook('packet_open_buying_store', {
src/Network/Receive.pm:9605: Plugins::callHook('packet_buying', {ID => $ID});
+
src/Network/Receive.pm:9594: Plugins::callHook('packet_buying', {ID => $ID});
src/Network/Receive.pm:9657: Plugins::callHook('packet_buying_store', {
+
src/Network/Receive.pm:9646: Plugins::callHook('packet_buying_store', {
src/Network/Receive.pm:9682: Plugins::callHook('packet_buying_store2', {
+
src/Network/Receive.pm:9671: Plugins::callHook('packet_buying_store2', {
src/Network/Receive.pm:9733: Plugins::callHook('packet_buyer', {ID => $ID});
+
src/Network/Receive.pm:9722: Plugins::callHook('packet_buyer', {ID => $ID});
src/Network/Receive.pm:9753: Plugins::callHook("buyer_shop_closed");
+
src/Network/Receive.pm:9742: Plugins::callHook('buyer_shop_closed');
src/Network/Receive.pm:9805: Plugins::callHook('packet_special_item_obtain', {
+
src/Network/Receive.pm:9794: Plugins::callHook('packet_special_item_obtain', {
src/Network/Receive.pm:9832: Plugins::callHook('packet_sentPM', {
+
src/Network/Receive.pm:9821: Plugins::callHook('packet_sentPM', {
src/Network/Receive.pm:9965: Plugins::callHook('memo_fail', { "field" => $field->baseName });
+
src/Network/Receive.pm:9954: Plugins::callHook('memo_fail', {field => $field->baseName});
src/Network/Receive.pm:9968: Plugins::callHook('memo_success', { "field" => $field->baseName });
+
src/Network/Receive.pm:9957: Plugins::callHook('memo_success', {field => $field->baseName});
src/Network/Receive.pm:10335: Plugins::callHook('instance_ready');
+
src/Network/Receive.pm:10324: Plugins::callHook('instance_ready');
src/Network/Receive.pm:10484: Plugins::callHook('equipped_item', {slot => $equipSlot_lut{$_}, item => $item});
+
src/Network/Receive.pm:10473: Plugins::callHook('equipped_item', {slot => $equipSlot_lut{$_}, item => $item});
src/Network/Receive.pm:10512: Plugins::callHook('equipped_item_sw', {slot => $equipSlot_lut{$_}, item => $item});
+
src/Network/Receive.pm:10501: Plugins::callHook('equipped_item_sw', {slot => $equipSlot_lut{$_}, item => $item});
src/Network/Receive.pm:10690: Plugins::callHook('packet_item_removed', {index => $item->{binID}});
+
src/Network/Receive.pm:10679: Plugins::callHook('packet_item_removed', {index => $item->{binID}});
src/Network/Receive.pm:11051: Plugins::callHook('parseMsg/addPrivMsgUser', {
+
src/Network/Receive.pm:11040: Plugins::callHook('parseMsg/addPrivMsgUser', {
src/Network/Receive.pm:11063: Plugins::callHook('packet_privMsg', {
+
src/Network/Receive.pm:11052: Plugins::callHook('packet_privMsg', {
src/Network/Receive.pm:11236: Plugins::callHook('packet_selfChat', {
+
src/Network/Receive.pm:11225: Plugins::callHook('packet_selfChat', {
src/Network/Receive.pm:11343: Plugins::callHook('is_casting', {
+
src/Network/Receive.pm:11332: Plugins::callHook('is_casting', {
src/Network/Receive.pm:11414: Plugins::callHook('packet_castCancelled', {
+
src/Network/Receive.pm:11403: Plugins::callHook('packet_castCancelled', {
src/Network/Receive.pm:11462: Plugins::callHook('unequipped_item', {slot => $equipSlot_lut{$_}, item => $item});
+
src/Network/Receive.pm:11451: Plugins::callHook('unequipped_item', {
src/Network/Receive.pm:11490: Plugins::callHook('unequipped_item_sw', {slot => $equipSlot_lut{$_}, item => $item});
+
src/Network/Receive.pm:11482: Plugins::callHook('unequipped_item_sw', {
src/Network/Receive.pm:11523: Plugins::callHook('packet_vender', {ID => $ID, title => bytesToString($args->{title})});
+
src/Network/Receive.pm:11518: Plugins::callHook('packet_vender', {
src/Network/Receive.pm:11556: Plugins::callHook('packet_charSkills', {
+
src/Network/Receive.pm:11554: Plugins::callHook('packet_charSkills', {
src/Network/Receive.pm:11637: Plugins::callHook('packet_skillfail', {
+
src/Network/Receive.pm:11635: Plugins::callHook('packet_skillfail', {
src/Network/Receive.pm:11650: Plugins::callHook('open_store_success');
+
src/Network/Receive.pm:11648: Plugins::callHook('open_store_success');
src/Network/Receive.pm:11654: Plugins::callHook('open_store_fail', { flag => $args->{flag} });
+
src/Network/Receive.pm:11652: Plugins::callHook('open_store_fail', { flag => $args->{flag} });
src/Network/Receive.pm:11792: Plugins::callHook("banking_opened");
+
src/Network/Receive.pm:11790: Plugins::callHook('banking_opened');
src/Network/Receive.pm:11808: Plugins::callHook("banking_deposit_success");
+
src/Network/Receive.pm:11806: Plugins::callHook('banking_deposit_success');
src/Network/Receive.pm:11817: Plugins::callHook("banking_deposit_failed", {'reason' => $args->{reason}});
+
src/Network/Receive.pm:11815: Plugins::callHook('banking_deposit_failed', {'reason' => $args->{reason}});
src/Network/Receive.pm:11832: Plugins::callHook("banking_withdraw_success");
+
src/Network/Receive.pm:11830: Plugins::callHook('banking_withdraw_success');
src/Network/Receive.pm:11839: Plugins::callHook("banking_withdraw_failed", {'reason' => $args->{reason}});
+
src/Network/Receive.pm:11837: Plugins::callHook('banking_withdraw_failed', {'reason' => $args->{reason}});
src/Network/Receive.pm:11858: Plugins::callHook('navigate_to', $args);
+
src/Network/Receive.pm:11856: Plugins::callHook('navigate_to', $args);
src/Network/Receive.pm:12096: Plugins::callHook ('captcha_image', $hookArgs);
+
src/Network/Receive.pm:12094: Plugins::callHook ('captcha_image', $hookArgs);
src/Network/Send/ServerType1.pm:37: Plugins::callHook('packet_pre/sendAttack', \%args) if ($flag == 0 || $flag == 7);
+
src/Network/Send/ServerType1.pm:37: Plugins::callHook('packet_pre/sendAttack', \%args)
src/Network/Send/ServerType1.pm:38: Plugins::callHook('packet_pre/sendSit', \%args) if ($flag == 2 || $flag == 3);
+
src/Network/Send/ServerType1.pm:38: Plugins::callHook('packet_pre/sendSit', \%args)
 
src/Network/Send/ServerType1.pm:56: Plugins::callHook('packet_pre/sendSit', \%args);
 
src/Network/Send/ServerType1.pm:56: Plugins::callHook('packet_pre/sendSit', \%args);
 
src/Network/Send/ServerType1.pm:74: Plugins::callHook('packet_pre/sendStand', \%args);
 
src/Network/Send/ServerType1.pm:74: Plugins::callHook('packet_pre/sendStand', \%args);
 
src/Network/Send/ServerType1.pm:151: Plugins::callHook('packet_pre/sendSkillUse', \%args);
 
src/Network/Send/ServerType1.pm:151: Plugins::callHook('packet_pre/sendSkillUse', \%args);
src/Network/Send/ServerType10.pm:39: Plugins::callHook('packet_pre/sendAttack', \%args) if ($flag == 0 || $flag == 7);
+
src/Network/Send/ServerType10.pm:39: Plugins::callHook('packet_pre/sendAttack', \%args)
src/Network/Send/ServerType10.pm:40: Plugins::callHook('packet_pre/sendSit', \%args) if ($flag == 2 || $flag == 3);
+
src/Network/Send/ServerType10.pm:40: Plugins::callHook('packet_pre/sendSit', \%args)
 
src/Network/Send/ServerType10.pm:59: Plugins::callHook('packet_pre/sendAttack', \%args);
 
src/Network/Send/ServerType10.pm:59: Plugins::callHook('packet_pre/sendAttack', \%args);
src/Network/Send/ServerType2.pm:44: Plugins::callHook('packet_pre/sendAttack', \%args) if ($flag == 0 || $flag == 7);
+
src/Network/Send/ServerType2.pm:44: Plugins::callHook('packet_pre/sendAttack', \%args)
src/Network/Send/ServerType2.pm:45: Plugins::callHook('packet_pre/sendSit', \%args) if ($flag == 2 || $flag == 3);
+
src/Network/Send/ServerType2.pm:45: Plugins::callHook('packet_pre/sendSit', \%args)
src/Network/Send/ServerType3.pm:59: Plugins::callHook('packet_pre/sendAttack', \%args) if ($flag == 0 || $flag == 7);
+
src/Network/Send/ServerType3.pm:59: Plugins::callHook('packet_pre/sendAttack', \%args)
src/Network/Send/ServerType3.pm:60: Plugins::callHook('packet_pre/sendSit', \%args) if ($flag == 2 || $flag == 3);
+
src/Network/Send/ServerType3.pm:60: Plugins::callHook('packet_pre/sendSit', \%args)
src/Network/Send/ServerType4.pm:45: Plugins::callHook('packet_pre/sendAttack', \%args) if ($flag == 0 || $flag == 7);
+
src/Network/Send/ServerType4.pm:45: Plugins::callHook('packet_pre/sendAttack', \%args)
src/Network/Send/ServerType4.pm:46: Plugins::callHook('packet_pre/sendSit', \%args) if ($flag == 2 || $flag == 3);
+
src/Network/Send/ServerType4.pm:46: Plugins::callHook('packet_pre/sendSit', \%args)
src/Network/Send/ServerType5.pm:57: Plugins::callHook('packet_pre/sendAttack', \%args) if ($flag == 0 || $flag == 7);
+
src/Network/Send/ServerType5.pm:57: Plugins::callHook('packet_pre/sendAttack', \%args)
src/Network/Send/ServerType5.pm:58: Plugins::callHook('packet_pre/sendSit', \%args) if ($flag == 2 || $flag == 3);
+
src/Network/Send/ServerType5.pm:58: Plugins::callHook('packet_pre/sendSit', \%args)
src/Network/Send/ServerType6.pm:36: Plugins::callHook('packet_pre/sendAttack', \%args) if ($flag == 0 || $flag == 7);
+
src/Network/Send/ServerType6.pm:36: Plugins::callHook('packet_pre/sendAttack', \%args)
src/Network/Send/ServerType6.pm:37: Plugins::callHook('packet_pre/sendSit', \%args) if ($flag == 2 || $flag == 3);
+
src/Network/Send/ServerType6.pm:37: Plugins::callHook('packet_pre/sendSit', \%args)
 
src/Network/Send/ServerType7.pm:35: Plugins::callHook('packet_pre/sendAttack', \%args);
 
src/Network/Send/ServerType7.pm:35: Plugins::callHook('packet_pre/sendAttack', \%args);
 
src/Network/Send/ServerType7.pm:55: Plugins::callHook('packet_pre/sendSit', \%args);
 
src/Network/Send/ServerType7.pm:55: Plugins::callHook('packet_pre/sendSit', \%args);
 
src/Network/Send/ServerType7.pm:73: Plugins::callHook('packet_pre/sendStand', \%args);
 
src/Network/Send/ServerType7.pm:73: Plugins::callHook('packet_pre/sendStand', \%args);
 
src/Network/Send/ServerType7.pm:96: Plugins::callHook('packet_pre/sendSkillUse', \%args);
 
src/Network/Send/ServerType7.pm:96: Plugins::callHook('packet_pre/sendSkillUse', \%args);
src/Network/Send/ServerType8.pm:65: Plugins::callHook('packet_pre/sendAttack', \%args) if ($flag == 0 || $flag == 7);
+
src/Network/Send/ServerType8.pm:65: Plugins::callHook('packet_pre/sendAttack', \%args)
src/Network/Send/ServerType8.pm:66: Plugins::callHook('packet_pre/sendSit', \%args) if ($flag == 2 || $flag == 3);
+
src/Network/Send/ServerType8.pm:66: Plugins::callHook('packet_pre/sendSit', \%args)
 
src/Network/Send/ServerType8.pm:85: Plugins::callHook('packet_pre/sendAttack', \%args);
 
src/Network/Send/ServerType8.pm:85: Plugins::callHook('packet_pre/sendAttack', \%args);
 
src/Network/Send/ServerType8.pm:103: Plugins::callHook('packet_pre/sendStand', \%args);
 
src/Network/Send/ServerType8.pm:103: Plugins::callHook('packet_pre/sendStand', \%args);
Line 400: Line 401:
 
src/Network/Send/ServerType8_5.pm:46: Plugins::callHook('packet_pre/sendSkillUse', \%args);
 
src/Network/Send/ServerType8_5.pm:46: Plugins::callHook('packet_pre/sendSkillUse', \%args);
 
src/Network/Send/ServerType8_5.pm:180: Plugins::callHook('packet_pre/sendAttack', \%args);
 
src/Network/Send/ServerType8_5.pm:180: Plugins::callHook('packet_pre/sendAttack', \%args);
src/Network/Send.pm:245: Plugins::callHook($hookName, \%args);
+
src/Network/Send.pm:245: Plugins::callHook($hookName, \%args);
 
src/Network/Send.pm:487: Plugins::callHook('packet/sendMapLoaded');
 
src/Network/Send.pm:487: Plugins::callHook('packet/sendMapLoaded');
src/Network/Send.pm:536: Plugins::callHook('packet_pre/sendAttack', \%args) if $flag == ACTION_ATTACK || $flag == ACTION_ATTACK_REPEAT;
+
src/Network/Send.pm:536: Plugins::callHook('packet_pre/sendAttack', \%args)
src/Network/Send.pm:537: Plugins::callHook('packet_pre/sendSit', \%args) if $flag == ACTION_SIT || $flag == ACTION_STAND;
+
src/Network/Send.pm:537: Plugins::callHook('packet_pre/sendSit', \%args)
 
src/Network/Send.pm:826: Plugins::callHook('packet_pre/sendSkillUse', \%args);
 
src/Network/Send.pm:826: Plugins::callHook('packet_pre/sendSkillUse', \%args);
src/Network/XKore.pm:120: Plugins::callHook("Network::serverSend/pre", { msg => \$msg });
+
src/Network/XKore.pm:120: Plugins::callHook('Network::serverSend/pre', {msg => \$msg});
src/Network/XKore.pm:140: Plugins::callHook('Network::stateChanged');
+
src/Network/XKore.pm:140: Plugins::callHook('Network::stateChanged');
src/Network/XKore.pm:243: Plugins::callHook('disconnected');
+
src/Network/XKore.pm:243: Plugins::callHook('disconnected');
 
src/Network/XKore.pm:264: Plugins::callHook('XKore_start');
 
src/Network/XKore.pm:264: Plugins::callHook('XKore_start');
src/Plugins.pm:534:sub callHook {
 
 
src/Poseidon/Client.pm:82: Plugins::callHook('Poseidon/client_authenticate', {
 
src/Poseidon/Client.pm:82: Plugins::callHook('Poseidon/client_authenticate', {
 
src/Poseidon/QueryServer.pm:78: Plugins::callHook('Poseidon/server_authenticate', {
 
src/Poseidon/QueryServer.pm:78: Plugins::callHook('Poseidon/server_authenticate', {
 
src/Settings.pm:344: Plugins::callHook( usage => $data );
 
src/Settings.pm:344: Plugins::callHook( usage => $data );
 
src/Settings.pm:498: Plugins::callHook('pre_load_'.$internalFilename, $pre_load);
 
src/Settings.pm:498: Plugins::callHook('pre_load_'.$internalFilename, $pre_load);
src/Settings.pm:546: Plugins::callHook('load_'.$internalFilename, $load);
+
src/Settings.pm:546: Plugins::callHook('load_'.$internalFilename, $load);
src/Settings.pm:551: Plugins::callHook('pos_load_'.$internalFilename, $pos_load);
+
src/Settings.pm:551: Plugins::callHook('pos_load_'.$internalFilename, $pos_load);
src/Settings.pm:553: Plugins::callHook('load_'.$internalFilename, $load);
+
src/Settings.pm:553: Plugins::callHook('load_'.$internalFilename, $load);
src/Settings.pm:557: Plugins::callHook('pos_load_'.$internalFilename, $pos_load);
+
src/Settings.pm:557: Plugins::callHook('pos_load_'.$internalFilename, $pos_load);
src/Settings.pm:599:   Plugins::callHook('preloadfiles', {files => $files});
+
src/Settings.pm:599: Plugins::callHook('preloadfiles', {files => $files});
src/Settings.pm:603:       Plugins::callHook('loadfiles', {files => $files, current => $i});
+
src/Settings.pm:603: Plugins::callHook('loadfiles', {
src/Settings.pm:608:   Plugins::callHook('postloadfiles', {files => $files});
+
src/Settings.pm:611: Plugins::callHook('postloadfiles', {files => $files});
src/Task/MapRoute.pm:193: Plugins::callHook( npc_teleport_missing => \%plugin_args );
+
src/Task/MapRoute.pm:193: Plugins::callHook('npc_teleport_missing' => \%plugin_args );
src/Task/MapRoute.pm:406: Plugins::callHook('Task::MapRoute::iterate::missing_portal', \%plugin_args);
+
src/Task/MapRoute.pm:406: Plugins::callHook('Task::MapRoute::iterate::missing_portal', \%plugin_args);
src/Task/MapRoute.pm:483: Plugins::callHook('Task::MapRoute::iterate::route_portal_near', \%plugin_args);
+
src/Task/MapRoute.pm:483: Plugins::callHook('Task::MapRoute::iterate::route_portal_near', \%plugin_args);
src/Task/Route.pm:313: Plugins::callHook('route', {status => 'success'});
+
src/Task/Route.pm:313: Plugins::callHook('route', {status => 'success'});
src/Task/Route.pm:414: Plugins::callHook('route', {status => 'success'});
+
src/Task/Route.pm:414: Plugins::callHook('route', {status => 'success'});
src/Task/Route.pm:426: Plugins::callHook('route', {status => 'success'});
+
src/Task/Route.pm:426: Plugins::callHook('route', {status => 'success'});
src/Task/Route.pm:469: Plugins::callHook('route', {status => 'stuck'});
+
src/Task/Route.pm:469: Plugins::callHook('route', {status => 'stuck'});
src/Task/Route.pm:599: Plugins::callHook( getRoute => \%plugin_args );
+
src/Task/Route.pm:599: Plugins::callHook('getRoute' => \%plugin_args);
src/test/PluginsHookTest.pm:29: Plugins::callHook('hook2');
+
src/Utils/PathFinding.pm:103: Plugins::callHook('PathFindingReset', \%hookArgs);
src/test/PluginsHookTest.pm:31: Plugins::callHook('hook1');
 
src/test/PluginsHookTest.pm:39: Plugins::callHook('hook1');
 
src/test/PluginsHookTest.pm:41: Plugins::callHook('hook2');
 
src/test/PluginsHookTest.pm:43: Plugins::callHook('hook3');
 
src/test/PluginsHookTest.pm:51: Plugins::callHook('hook1');
 
src/test/PluginsHookTest.pm:53: Plugins::callHook('hook2');
 
src/test/PluginsHookTest.pm:61: Plugins::callHook('hook2');
 
src/test/PluginsHookTest.pm:63: Plugins::callHook('hook1');
 
src/test/PluginsHookTest.pm:71: Plugins::callHook('hook2');
 
src/test/PluginsHookTest.pm:73: Plugins::callHook('hook1');
 
src/test/PluginsHookTest.pm:93: Plugins::callHook('hook1');
 
src/test/PluginsHookTest.pm:95: Plugins::callHook('hook2');
 
src/test/PluginsHookTest.pm:102: Plugins::callHook('hook1');
 
src/test/PluginsHookTest.pm:124: Plugins::callHook( 'add_during_call' );
 
src/test/PluginsHookTest.pm:129: Plugins::callHook( 'add_during_call' );
 
src/test/PluginsHookTest.pm:134: Plugins::callHook( 'add_during_call' );
 
src/test/PluginsHookTest.pm:139: Plugins::callHook( 'add_during_call' );
 
src/test/PluginsHookTest.pm:156: Plugins::callHook( 'del_during_call' );
 
src/test/PluginsHookTest.pm:161: Plugins::callHook( 'del_during_call' );
 
src/test/PluginsHookTest.pm:166: Plugins::callHook( 'del_during_call' );
 
src/test/PluginsHookTest.pm:171: Plugins::callHook( 'del_during_call' );
 
src/test/PluginsHookTest.pm:176: Plugins::callHook( 'del_during_call' );
 
src/Utils/PathFinding.pm:103: Plugins::callHook("PathFindingReset", \%hookArgs);
 
 
</pre>
 
</pre>
  
 
[[Category:Development]]
 
[[Category:Development]]

Revision as of 19:26, 15 January 2023

Recommended hooks

Initialization

start

Called once after loading all plugins, but before loading or configuring load of any control or tables files. %config and all other stuff would be unavailable at this moment. Reconfiguration for the following initialization steps (like profiles plugin does) should be performed there, as well as anything else that needs to be performed as soon as possible.

start2

Called once before loading any control or tables files, but when that load is already being configured. %config etc would still be unavailable at this moment. Monkey-patching of whatever will be loaded next can be performed there.

start3

Called once after all control and tables files are loaded. You probably should use initialized hook instead.

initialized

Called once when all initialization is done and it's ready to connect to the server or start XKore. Additional initialization should be performed there.

Continuous Work

mainLoop_pre

Called continuously.

mainLoop_post

Called continuously, after processing all other routines.

AI_pre/manual

Called continuously when in game unless AI is turned off.

AI_pre

Called continuously when in game if AI is set to automatic.

AI_post

Called continuously when in game if AI is set to automatic, after processing all other AI routines.

Discovering all existing hooks Unix Distro

find src -type f \( -name "*.pl" -or -name "*.pm" -not -name "Plugins.pm" -not -name "PluginsHookTest.pm" \) -exec grep -Hn "^[^#]*callHook" {} \; | sed -E s/\\t+/\\t/ | s

ed s/\\sif.*//

Discovering all existing hooks Windows Distro

open cmd
cd openkore\src
findstr /S /n "callHook" *.pl;
findstr /S /n "callHook" *.pm;

Note that some hooks, like packet/<name>, packet_pre/<name> and mangle/<name>, actually are many hooks, for example, one hook for each network packet type. See about it here.

Hook List

This list might be outdated.

src/Actor/Item.pm:526:	Plugins::callHook('get_item_weight', $self)
src/Actor/You.pm:282:	Plugins::callHook('attack_start', {ID => $targetID});
src/Actor.pm:589:	Plugins::callHook('Actor::setStatus::change', {
src/AI/Attack.pm:218:	Plugins::callHook('target_died', {monster => $monsters_old{$ID}});
src/AI/Attack.pm:259:	Plugins::callHook('attack_end', {ID => $ID})
src/AI/Attack.pm:690:	Plugins::callHook('AI::Attack::main', {target => $target})
src/AI/CoreLogic.pm:57:	Plugins::callHook('AI_start', {state => AI::state});
src/AI/CoreLogic.pm:68:	Plugins::callHook('AI_pre/manual');
src/AI/CoreLogic.pm:118:	Plugins::callHook('AI_pre');
src/AI/CoreLogic.pm:218:	Plugins::callHook('AI_post');
src/AI/CoreLogic.pm:549:	Plugins::callHook('portal_exist2', {
src/AI/CoreLogic.pm:575:	Plugins::callHook('portal_exist2', {
src/AI/CoreLogic.pm:968:	Plugins::callHook('AI_storage_auto_queued');
src/AI/CoreLogic.pm:1190:	Plugins::callHook('AI_storage_auto_weight_start' => \%plugin_args);
src/AI/CoreLogic.pm:1201:	Plugins::callHook('AI_storage_auto_queued');
src/AI/CoreLogic.pm:1212:	Plugins::callHook('AI_storage_auto_get_auto_start' => \%plugin_args);
src/AI/CoreLogic.pm:1256:	Plugins::callHook('AI_storage_item_out_of_stock', {
src/AI/CoreLogic.pm:1281:	Plugins::callHook('AI_storage_auto_queued');
src/AI/CoreLogic.pm:1298:	Plugins::callHook('AI_sell_auto_queued');
src/AI/CoreLogic.pm:1302:	Plugins::callHook('AI_sell_auto_queued');
src/AI/CoreLogic.pm:1445:	Plugins::callHook('AI_storage_open', \%pluginArgs); # we can hook here to perform actions BEFORE any storage function
src/AI/CoreLogic.pm:1460:	Plugins::callHook('AI_storage_full', \%pluginArgs);
src/AI/CoreLogic.pm:1484:	Plugins::callHook('AI_storage_item_full', {
src/AI/CoreLogic.pm:1545:	Plugins::callHook('AI_storage_done', \%hookArgs);
src/AI/CoreLogic.pm:1629:	Plugins::callHook('AI_storage_item_out_of_stock', {
src/AI/CoreLogic.pm:1663:	Plugins::callHook('AI_storage_done_after_getAuto', \%hookArgs);
src/AI/CoreLogic.pm:1699:	Plugins::callHook('AI_sell_auto_start' => \%plugin_args );
src/AI/CoreLogic.pm:1707:	Plugins::callHook('AI_sell_auto_queued');
src/AI/CoreLogic.pm:1724:	Plugins::callHook('AI_buy_auto_queued');
src/AI/CoreLogic.pm:1728:	Plugins::callHook('AI_buy_auto_queued');
src/AI/CoreLogic.pm:1845:	Plugins::callHook('AI_sell_auto');
src/AI/CoreLogic.pm:1874:	Plugins::callHook('AI_sell_auto_done');
src/AI/CoreLogic.pm:1885:	Plugins::callHook('AI_buy_auto_start' => \%plugin_args);
src/AI/CoreLogic.pm:1921:	Plugins::callHook('AI_buy_auto_queued');
src/AI/CoreLogic.pm:1937:	Plugins::callHook('AI_buy_auto_done');
src/AI/CoreLogic.pm:1941:	Plugins::callHook('AI_storage_auto_queued');
src/AI/CoreLogic.pm:1945:	Plugins::callHook('AI_storage_auto_queued');
src/AI/CoreLogic.pm:1949:	Plugins::callHook('AI_buy_auto');
src/AI/CoreLogic.pm:2266:	Plugins::callHook('AI/lockMap', \%args);
src/AI/CoreLogic.pm:2384:	Plugins::callHook('ai_processRandomWalk' => \%plugin_args);
src/AI/CoreLogic.pm:2703:	Plugins::callHook('ai_follow', $args);
src/AI/CoreLogic.pm:3223:	Plugins::callHook('checkMonsterAutoAttack', \%hookArgs);
src/AI/CoreLogic.pm:3286:	Plugins::callHook('ai_items_take');
src/AI/SlaveAttack.pm:186:	Plugins::callHook('slave_target_died', {
src/AI/SlaveAttack.pm:227:	Plugins::callHook('slave_attack_end', {
src/AI.pm:98:	Plugins::callHook('AI_state_change', {
src/ChatQueue.pm:64:	Plugins::callHook('ChatQueue::add', \%item);
src/ChatQueue.pm:616:	Plugins::callHook('ChatQueue::processChatResponse', $cmd);
src/Commands.pm:870:	Plugins::callHook('Commands::run/pre', \%params);
src/Commands.pm:872:	Plugins::callHook('Commands::run/post', \%params);
src/Commands.pm:876:	Plugins::callHook('Command_post', \%params);
src/Commands.pm:1244:	Plugins::callHook('AI_buy_auto_queued');
src/Commands.pm:1273:	Plugins::callHook('AI_sell_auto_queued');
src/Commands.pm:1281:	Plugins::callHook('AI_storage_auto_queued');
src/Commands.pm:2094:	Plugins::callHook('Commands::cmdConf', {
src/FileParsers.pm:784:	Plugins::callHook('FileParsers::ROLUT', \%ret);
src/FileParsers.pm:811:	Plugins::callHook('FileParsers::RODescLUT', \%ret);
src/FileParsers.pm:861:	Plugins::callHook ('FileParsers::ROQuestsLUT', \%ret);
src/FileParsers.pm:1480:	Plugins::callHook('updatePortalLUT', $plugin_args);
src/FileParsers.pm:1494:	Plugins::callHook('updatePortalLUT2', $plugin_args);
src/functions.pl:74:	Plugins::callHook('mainLoop_pre');
src/functions.pl:76:	Plugins::callHook('mainLoop_post');
src/functions.pl:83:	Plugins::callHook('start');
src/functions.pl:136:	Plugins::callHook('parse_command_line');
src/functions.pl:378:	Plugins::callHook('start2');
src/functions.pl:402:	Plugins::callHook('start3');
src/functions.pl:633:	Plugins::callHook('initialized');
src/functions.pl:793:	Plugins::callHook('packet_mapChange');
src/functions.pl:1002:	Plugins::callHook('mainLoop::setTitle',\%args);
src/Interface/Console/Curses.pm:683:	Plugins::callHook('curses/updateStatus');
src/Interface/Console/Curses.pm:808:	Plugins::callHook('curses/updateObjects');
src/InventoryList/Cart.pm:41:	Plugins::callHook('cart_ready');
src/InventoryList/Cart.pm:43:	Plugins::callHook('cart_info_updated');
src/InventoryList/Cart.pm:102:	Plugins::callHook('cart_ready');
src/InventoryList/Inventory.pm:41:	Plugins::callHook('inventory_ready');
src/InventoryList/Inventory.pm:71:	Plugins::callHook('inventory_ready');
src/InventoryList/Storage.pm:44:	Plugins::callHook('storage_first_session_openning');
src/InventoryList/Storage.pm:46:	Plugins::callHook('packet_storage_open');
src/InventoryList/Storage.pm:53:	Plugins::callHook('packet_storage_close');
src/InventoryList/Storage.pm:89:	Plugins::callHook('storage_ready');
src/Misc.pm:315:	Plugins::callHook('configModify', {
src/Misc.pm:366:	Plugins::callHook('configModify', {
src/Misc.pm:406:	Plugins::callHook('setTimeout', {
src/Misc.pm:1283:	Plugins::callHook('charSelectScreen', \%plugin_args);
src/Misc.pm:1515:	Plugins::callHook('ai_check_Aggressiveness' => \%plugin_args);
src/Misc.pm:1550:	Plugins::callHook('ai_slave_check_Aggressiveness' => \%plugin_args);
src/Misc.pm:2143:	Plugins::callHook('inventory_item_removed', {
src/Misc.pm:2167:	Plugins::callHook('storage_item_removed', {
src/Misc.pm:2191:	Plugins::callHook('cart_item_removed', {
src/Misc.pm:2883:	Plugins::callHook('objectAdded', {
src/Misc.pm:2900:	Plugins::callHook('objectRemoved', {
src/Misc.pm:3292:	Plugins::callHook('changed_status',{
src/Misc.pm:3305:	Plugins::callHook('perfect_hidden_player', {
src/Misc.pm:3320:	Plugins::callHook('perfect_hidden_npc', {
src/Misc.pm:3784:	Plugins::callHook('teleport_sent', \%args);
src/Misc.pm:3790:	Plugins::callHook('teleport_sent', \%args);
src/Misc.pm:3822:	Plugins::callHook('teleport_sent', \%args);
src/Misc.pm:3831:	Plugins::callHook('teleport_sent', \%args);
src/Misc.pm:3841:	Plugins::callHook('teleport_sent', \%args);
src/Misc.pm:3853:	Plugins::callHook('teleport_sent', \%args);
src/Misc.pm:3911:	Plugins::callHook('teleport_sent', \%args);
src/Misc.pm:4299:	Plugins::callHook('avoidGM_near', \%args);
src/Misc.pm:4351:	Plugins::callHook('avoidGM_talk', \%args);
src/Misc.pm:4390:	Plugins::callHook('avoidList_near', \%args);
src/Misc.pm:5058:	Plugins::callHook('checkSelfCondition', \%hookArgs);
src/Misc.pm:5210:	Plugins::callHook('checkPlayerCondition', \%args);
src/Misc.pm:5285:	Plugins::callHook('checkMonsterCondition', \%args);
src/Misc.pm:5375:	Plugins::callHook('open_shop', {
src/Misc.pm:5392:	Plugins::callHook('shop_closed');
src/Misc.pm:5487:	Plugins::callHook ('buyer_open_shop', {
src/Misc.pm:5508:	Plugins::callHook('buyer_shop_closed');
src/Network/ClientReceive.pm:75:	Plugins::callHook('map_loaded');
src/Network/DirectConnection.pm:140:	Plugins::callHook('Network::connectTo', {
src/Network/DirectConnection.pm:173:	Plugins::callHook('Network::serverSend/pre', {msg => \$msg});
src/Network/DirectConnection.pm:178:	Plugins::callHook('Network::serverSend', {msg => $msg});
src/Network/DirectConnection.pm:196:	Plugins::callHook('Network::serverRecv', {msg => \$msg});
src/Network/DirectConnection.pm:245:	Plugins::callHook('serverDisconnect/fail');
src/Network/DirectConnection.pm:248:	Plugins::callHook('serverDisconnect/success');
src/Network/DirectConnection.pm:260:	Plugins::callHook('Network::stateChanged');
src/Network/DirectConnection.pm:274:	Plugins::callHook('Network::clientAlive', \%args);
src/Network/DirectConnection.pm:286:	Plugins::callHook('Network::clientSend', \%args);
src/Network/DirectConnection.pm:301:	Plugins::callHook('Network::clientRecv', \%args);
src/Network/DirectConnection.pm:355:	Plugins::callHook('Network::serverConnect/master');
src/Network/DirectConnection.pm:486:	Plugins::callHook('Network::serverConnect/special');
src/Network/DirectConnection.pm:526:	Plugins::callHook('Network::serverConnect/char');
src/Network/DirectConnection.pm:562:	Plugins::callHook('Network::serverConnect/charselect');
src/Network/DirectConnection.pm:600:	Plugins::callHook('Network::serverConnect/mapserver');
src/Network/DirectConnection.pm:618:	Plugins::callHook('disconnected');
src/Network/DirectConnection.pm:633:	Plugins::callHook('disconnected');
src/Network/PacketParser.pm:272:	Plugins::callHook('packet_pre/$handler->[0]', \%args);
src/Network/PacketParser.pm:274:	Plugins::callHook('$self->{hook_prefix}/packet_pre/$handler->[0]', \%args);
src/Network/PacketParser.pm:289:	Plugins::callHook('packet/$handler->[0]', \%args);
src/Network/PacketParser.pm:291:	Plugins::callHook('$self->{hook_prefix}/packet/$handler->[0]', \%args);
src/Network/PacketParser.pm:368:	Plugins::callHook('$self->{hook_prefix}/willMangle', \%args);
src/Network/PacketParser.pm:390:	Plugins::callHook('$self->{hook_prefix}/mangle', \%hook_args);
src/Network/PacketParser.pm:494:	Plugins::callHook($hook, {
src/Network/Receive/kRO/Sakexe_0.pm:1011:	Plugins::callHook($args->{hook}, {
src/Network/Receive/kRO/Sakexe_0.pm:1051:	Plugins::callHook('packet_guildMsg', {
src/Network/Receive/kRO/Sakexe_0.pm:1104:	Plugins::callHook('item_skill', {
src/Network/Receive/kRO/Sakexe_0.pm:1155:	Plugins::callHook('packet_pubMsg', {
src/Network/Receive/kRO/Sakexe_0.pm:1171:	Plugins::callHook('packet_sentPM', {
src/Network/Receive/kRO/Sakexe_0.pm:1204:	Plugins::callHook('pvp_mode', {
src/Network/Receive/kRO/Sakexe_0.pm:1220:	Plugins::callHook('pvp_mode', {
src/Network/Receive/kRO/Sakexe_0.pm:1295:	Plugins::callHook('packet_skilluse', {
src/Network/Receive/kRO/Sakexe_0.pm:1336:	Plugins::callHook('packet_skilluse', {
src/Network/Receive/kRO/Sakexe_0.pm:1415:	Plugins::callHook('packet_skilluse', {
src/Network/Receive/ServerType0.pm:1044:	Plugins::callHook($args->{hook}, {
src/Network/Receive/ServerType0.pm:1086:	Plugins::callHook('packet_guildMsg', {
src/Network/Receive/ServerType0.pm:1139:	Plugins::callHook('item_skill', {
src/Network/Receive/ServerType0.pm:1190:	Plugins::callHook('packet_pubMsg', {
src/Network/Receive/ServerType0.pm:1220:	Plugins::callHook('pvp_mode', {
src/Network/Receive/ServerType0.pm:1237:	Plugins::callHook('pvp_mode', {
src/Network/Receive/ServerType0.pm:1317:	Plugins::callHook('packet_skilluse', {
src/Network/Receive/ServerType0.pm:1366:	Plugins::callHook('packet_skilluse', {
src/Network/Receive/ServerType0.pm:1452:	Plugins::callHook('packet_skilluse', {
src/Network/Receive.pm:795:	Plugins::callHook('parseMsg/recvChars', $args->{options});
src/Network/Receive.pm:943:	Plugins::callHook('char_created', {char => $character});
src/Network/Receive.pm:1230:	Plugins::callHook('in_game');
src/Network/Receive.pm:1274:	Plugins::callHook('disconnected');
src/Network/Receive.pm:1374:	Plugins::callHook('exp_gained');
src/Network/Receive.pm:1430:	Plugins::callHook('base_level_changed', {level	=> $actor->{lv}});
src/Network/Receive.pm:1461:	Plugins::callHook('zeny_change', {
src/Network/Receive.pm:1532:	Plugins::callHook('job_level_changed', {level => $actor->{lv_job}});
src/Network/Receive.pm:1648:	Plugins::callHook('packet_charStats', {
src/Network/Receive.pm:1748:	Plugins::callHook('packet_pre/actor_display', $args);
src/Network/Receive.pm:1750:	Plugins::callHook('packet/actor_display', $args);
src/Network/Receive.pm:2119:	Plugins::callHook('add_player_list', $actor);
src/Network/Receive.pm:2123:	Plugins::callHook('add_monster_list', $actor);
src/Network/Receive.pm:2127:	Plugins::callHook('add_pet_list', $actor);
src/Network/Receive.pm:2131:	Plugins::callHook('add_portal_list', $actor);
src/Network/Receive.pm:2140:	Plugins::callHook('add_npc_list', $actor);
src/Network/Receive.pm:2144:	Plugins::callHook('add_slave_list', $actor);
src/Network/Receive.pm:2147:	Plugins::callHook('add_elemental_list', $actor);
src/Network/Receive.pm:2168:	Plugins::callHook('player', {player => $actor}); #backwards compatibility
src/Network/Receive.pm:2170:	Plugins::callHook('player_exist', {player => $actor});
src/Network/Receive.pm:2174:	Plugins::callHook('npc_exist', {npc => $actor});
src/Network/Receive.pm:2178:	Plugins::callHook('portal_exist', {portal => $actor});
src/Network/Receive.pm:2213:	Plugins::callHook('player', {player => $actor}); #backwards compatibailty
src/Network/Receive.pm:2215:	Plugins::callHook('player_connected', {player => $actor});
src/Network/Receive.pm:2243:	Plugins::callHook('player_moved', $actor);
src/Network/Receive.pm:2246:	Plugins::callHook('monster_moved', $actor);
src/Network/Receive.pm:2249:	Plugins::callHook('pet_moved', $actor);
src/Network/Receive.pm:2252:	Plugins::callHook('slave_moved', $actor);
src/Network/Receive.pm:2256:	Plugins::callHook('portal_moved', $actor);
src/Network/Receive.pm:2260:	Plugins::callHook('npc_moved', $actor);
src/Network/Receive.pm:2263:	Plugins::callHook('pet_moved', $actor);
src/Network/Receive.pm:2311:	Plugins::callHook('self_died');
src/Network/Receive.pm:2350:	Plugins::callHook('monster_disappeared', {monster => $monster});
src/Network/Receive.pm:2386:	Plugins::callHook('player_disappeared', {player => $player});
src/Network/Receive.pm:2406:	Plugins::callHook('portal_disappeared', {portal => $portal});
src/Network/Receive.pm:2415:	Plugins::callHook('npc_disappeared', {npc => $npc});
src/Network/Receive.pm:2423:	Plugins::callHook('pet_disappeared', {pet => $pet});
src/Network/Receive.pm:2456:	Plugins::callHook('slave_disappeared', {slave => $slave});
src/Network/Receive.pm:2472:	Plugins::callHook('elemental_disappeared', {elemental => $elemental});
src/Network/Receive.pm:2560:	Plugins::callHook('packet_attack', {
src/Network/Receive.pm:2631:	Plugins::callHook('charNameUpdate', {player => $player});
src/Network/Receive.pm:2643:	Plugins::callHook('mobNameUpdate', {monster => $monster});
src/Network/Receive.pm:2661:	Plugins::callHook('npcNameUpdate', {npc => $npc});
src/Network/Receive.pm:2673:	Plugins::callHook('petNameUpdate', {pet => $pet});
src/Network/Receive.pm:2684:	Plugins::callHook('slaveNameUpdate', {slave => $slave});
src/Network/Receive.pm:2696:	Plugins::callHook('elementalNameUpdate', {elemental => $elemental});
src/Network/Receive.pm:2723:	Plugins::callHook('base_level', {name => $actor});
src/Network/Receive.pm:2726:	Plugins::callHook('job_level', {name => $actor});
src/Network/Receive.pm:3027:	Plugins::callHook('packet_localBroadcast', {
src/Network/Receive.pm:3265:	Plugins::callHook('show_script', {
src/Network/Receive.pm:3396:	Plugins::callHook('packet_sysMsg', {
src/Network/Receive.pm:3548:	Plugins::callHook('equipped_item', {
src/Network/Receive.pm:3603:	Plugins::callHook('item_gathered', {
src/Network/Receive.pm:3667:	Plugins::callHook('packet_item_removed', {index => $item->{binID}});
src/Network/Receive.pm:3679:	Plugins::callHook('rental_expired', {
src/Network/Receive.pm:3720:	Plugins::callHook('vending_item_sold', {
src/Network/Receive.pm:3732:	Plugins::callHook('vending_item_sold_out', {
src/Network/Receive.pm:3764:	Plugins::callHook('vending_item_sold', {
src/Network/Receive.pm:3778:	Plugins::callHook('vending_item_sold_out', {
src/Network/Receive.pm:3853:	Plugins::callHook('packet_vender_store', { item => $item });
src/Network/Receive.pm:3868:	Plugins::callHook('packet_vender_store2', {
src/Network/Receive.pm:4146:	Plugins::callHook('pvp_mode', {pvp => $pvp});# 1 PvP, 2 GvG, 3 Battleground
src/Network/Receive.pm:4188:	Plugins::callHook('packet_areaSpell', {
src/Network/Receive.pm:4235:	Plugins::callHook('packet_areaSpell', {
src/Network/Receive.pm:4284:	Plugins::callHook('packet_areaSpell', {
src/Network/Receive.pm:4556:	Plugins::callHook('quest_mission_added', {
src/Network/Receive.pm:4563:	Plugins::callHook('quest_list');
src/Network/Receive.pm:4616:	Plugins::callHook('quest_mission_added', {
src/Network/Receive.pm:4684:	Plugins::callHook('quest_mission_added', {
src/Network/Receive.pm:4690:	Plugins::callHook('quest_added', {questID => $args->{questID}});
src/Network/Receive.pm:4783:	Plugins::callHook('quest_mission_updated', {
src/Network/Receive.pm:4854:	Plugins::callHook('npc_chat', {
src/Network/Receive.pm:4880:	Plugins::callHook('makable_item_list', {item_list => $makableList});
src/Network/Receive.pm:5218:	Plugins::callHook('invalid_password');
src/Network/Receive.pm:5246:	Plugins::callHook('dial');
src/Network/Receive.pm:5265:	Plugins::callHook('invalid_password');
src/Network/Receive.pm:5432:	Plugins::callHook('chat_created', {chat => $chatRooms{$accountID}});
src/Network/Receive.pm:5459:	Plugins::callHook('packet_chatinfo', {
src/Network/Receive.pm:5503:	Plugins::callHook('chat_joined', {chat => $chat});
src/Network/Receive.pm:5568:	Plugins::callHook('chat_modified', {
src/Network/Receive.pm:5643:	Plugins::callHook('chat_leave');
src/Network/Receive.pm:5657:	Plugins::callHook('chat_removed', {
src/Network/Receive.pm:5689:	Plugins::callHook('error_deal', {type => $args->{type}});
src/Network/Receive.pm:5692:	Plugins::callHook('error_deal', {type => $args->{type}});
src/Network/Receive.pm:5710:	Plugins::callHook('engaged_deal', {name => $currentDeal{name}});
src/Network/Receive.pm:5713:	Plugins::callHook('error_deal', {type =>$args->{type}});
src/Network/Receive.pm:5716:	Plugins::callHook('error_deal', {type =>$args->{type}});
src/Network/Receive.pm:5725:	Plugins::callHook('cancelled_deal');
src/Network/Receive.pm:5733:	Plugins::callHook('complete_deal');
src/Network/Receive.pm:5741:	Plugins::callHook('finalized_deal', {name => $currentDeal{name}});
src/Network/Receive.pm:5760:	Plugins::callHook('incoming_deal', {
src/Network/Receive.pm:5858:	Plugins::callHook('packet_emotion', {
src/Network/Receive.pm:5901:	Plugins::callHook('disconnected')
src/Network/Receive.pm:6041:	Plugins::callHook('friend_request', {
src/Network/Receive.pm:6841:	Plugins::callHook('packet_useitem', \%hook_args);
src/Network/Receive.pm:6888:	Plugins::callHook('item_appeared', {
src/Network/Receive.pm:6918:	Plugins::callHook('item_exists', {
src/Network/Receive.pm:7139:	Plugins::callHook('Network::Receive::map_changed', {
src/Network/Receive.pm:7255:	Plugins::callHook('Network::Receive::map_changed', {
src/Network/Receive.pm:7321:	Plugins::callHook('npc_autotalk', {
src/Network/Receive.pm:7342:	Plugins::callHook('npc_talk', {
src/Network/Receive.pm:7366:	Plugins::callHook('npc_talk_done', {ID => $ID});
src/Network/Receive.pm:7414:	Plugins::callHook('npc_autotalk', {
src/Network/Receive.pm:7445:	Plugins::callHook('npc_talk_responses', {
src/Network/Receive.pm:7596:	Plugins::callHook('buy_result', {fail => $args->{fail}});
src/Network/Receive.pm:7751:	Plugins::callHook('deal_you_added', {
src/Network/Receive.pm:7881:	Plugins::callHook('add_player_list', $actor);
src/Network/Receive.pm:7882:	Plugins::callHook('player', {player => $actor});  #backwards compatibility
src/Network/Receive.pm:7883:	Plugins::callHook('player_exist', {player => $actor});
src/Network/Receive.pm:7896:	Plugins::callHook('player_disappeared', {player => $player});
src/Network/Receive.pm:8091:	Plugins::callHook('packet_partyJoin', { partyName => bytesToString($info->{name}) });
src/Network/Receive.pm:8144:	Plugins::callHook('packet_partyMsg', {
src/Network/Receive.pm:8211:	Plugins::callHook('party_invite', {
src/Network/Receive.pm:8360:	Plugins::callHook('party_users_info_ready');
src/Network/Receive.pm:8457:	Plugins::callHook('rodex_mail_list', {
src/Network/Receive.pm:8530:	Plugins::callHook('rodex_mail', {
src/Network/Receive.pm:8544:	Plugins::callHook('rodex_unread_mail');
src/Network/Receive.pm:8686:	Plugins::callHook('rodex_mail_deleted', {
src/Network/Receive.pm:8820:	Plugins::callHook('packet_clanMsg', {
src/Network/Receive.pm:9016:	Plugins::callHook('cooking_list', {
src/Network/Receive.pm:9131:	Plugins::callHook('search_store', $universalCatalogInfo);
src/Network/Receive.pm:9179:	Plugins::callHook('packet_message_string', {
src/Network/Receive.pm:9237:	Plugins::callHook($hook, {
src/Network/Receive.pm:9263:	Plugins::callHook('packet_charSkills', {
src/Network/Receive.pm:9491:	Plugins::callHook ('captcha_image', $hookArgs);
src/Network/Receive.pm:9500:	Plugins::callHook ('captcha_file', $hookArgs);
src/Network/Receive.pm:9514:	Plugins::callHook ('captcha_answer', {flag => $args->{flag}});
src/Network/Receive.pm:9576:	Plugins::callHook('packet_open_buying_store', {
src/Network/Receive.pm:9594:	Plugins::callHook('packet_buying', {ID => $ID});
src/Network/Receive.pm:9646:	Plugins::callHook('packet_buying_store', {
src/Network/Receive.pm:9671:	Plugins::callHook('packet_buying_store2', {
src/Network/Receive.pm:9722:	Plugins::callHook('packet_buyer', {ID => $ID});
src/Network/Receive.pm:9742:	Plugins::callHook('buyer_shop_closed');
src/Network/Receive.pm:9794:	Plugins::callHook('packet_special_item_obtain', {
src/Network/Receive.pm:9821:	Plugins::callHook('packet_sentPM', {
src/Network/Receive.pm:9954:	Plugins::callHook('memo_fail', {field => $field->baseName});
src/Network/Receive.pm:9957:	Plugins::callHook('memo_success', {field => $field->baseName});
src/Network/Receive.pm:10324:	Plugins::callHook('instance_ready');
src/Network/Receive.pm:10473:	Plugins::callHook('equipped_item', {slot => $equipSlot_lut{$_}, item => $item});
src/Network/Receive.pm:10501:	Plugins::callHook('equipped_item_sw', {slot => $equipSlot_lut{$_}, item => $item});
src/Network/Receive.pm:10679:	Plugins::callHook('packet_item_removed', {index => $item->{binID}});
src/Network/Receive.pm:11040:	Plugins::callHook('parseMsg/addPrivMsgUser', {
src/Network/Receive.pm:11052:	Plugins::callHook('packet_privMsg', {
src/Network/Receive.pm:11225:	Plugins::callHook('packet_selfChat', {
src/Network/Receive.pm:11332:	Plugins::callHook('is_casting', {
src/Network/Receive.pm:11403:	Plugins::callHook('packet_castCancelled', {
src/Network/Receive.pm:11451:	Plugins::callHook('unequipped_item', {
src/Network/Receive.pm:11482:	Plugins::callHook('unequipped_item_sw', {
src/Network/Receive.pm:11518:	Plugins::callHook('packet_vender', {
src/Network/Receive.pm:11554:	Plugins::callHook('packet_charSkills', {
src/Network/Receive.pm:11635:	Plugins::callHook('packet_skillfail', {
src/Network/Receive.pm:11648:	Plugins::callHook('open_store_success');
src/Network/Receive.pm:11652:	Plugins::callHook('open_store_fail', { flag => $args->{flag} });
src/Network/Receive.pm:11790:	Plugins::callHook('banking_opened');
src/Network/Receive.pm:11806:	Plugins::callHook('banking_deposit_success');
src/Network/Receive.pm:11815:	Plugins::callHook('banking_deposit_failed', {'reason' => $args->{reason}});
src/Network/Receive.pm:11830:	Plugins::callHook('banking_withdraw_success');
src/Network/Receive.pm:11837:	Plugins::callHook('banking_withdraw_failed', {'reason' => $args->{reason}});
src/Network/Receive.pm:11856:	Plugins::callHook('navigate_to', $args);
src/Network/Receive.pm:12094:	Plugins::callHook ('captcha_image', $hookArgs);
src/Network/Send/ServerType1.pm:37:	Plugins::callHook('packet_pre/sendAttack', \%args)
src/Network/Send/ServerType1.pm:38:	Plugins::callHook('packet_pre/sendSit', \%args)
src/Network/Send/ServerType1.pm:56:	Plugins::callHook('packet_pre/sendSit', \%args);
src/Network/Send/ServerType1.pm:74:	Plugins::callHook('packet_pre/sendStand', \%args);
src/Network/Send/ServerType1.pm:151:	Plugins::callHook('packet_pre/sendSkillUse', \%args);
src/Network/Send/ServerType10.pm:39:	Plugins::callHook('packet_pre/sendAttack', \%args)
src/Network/Send/ServerType10.pm:40:	Plugins::callHook('packet_pre/sendSit', \%args)
src/Network/Send/ServerType10.pm:59:	Plugins::callHook('packet_pre/sendAttack', \%args);
src/Network/Send/ServerType2.pm:44:	Plugins::callHook('packet_pre/sendAttack', \%args)
src/Network/Send/ServerType2.pm:45:	Plugins::callHook('packet_pre/sendSit', \%args)
src/Network/Send/ServerType3.pm:59:	Plugins::callHook('packet_pre/sendAttack', \%args)
src/Network/Send/ServerType3.pm:60:	Plugins::callHook('packet_pre/sendSit', \%args)
src/Network/Send/ServerType4.pm:45:	Plugins::callHook('packet_pre/sendAttack', \%args)
src/Network/Send/ServerType4.pm:46:	Plugins::callHook('packet_pre/sendSit', \%args)
src/Network/Send/ServerType5.pm:57:	Plugins::callHook('packet_pre/sendAttack', \%args)
src/Network/Send/ServerType5.pm:58:	Plugins::callHook('packet_pre/sendSit', \%args)
src/Network/Send/ServerType6.pm:36:	Plugins::callHook('packet_pre/sendAttack', \%args)
src/Network/Send/ServerType6.pm:37:	Plugins::callHook('packet_pre/sendSit', \%args)
src/Network/Send/ServerType7.pm:35:	Plugins::callHook('packet_pre/sendAttack', \%args);
src/Network/Send/ServerType7.pm:55:	Plugins::callHook('packet_pre/sendSit', \%args);
src/Network/Send/ServerType7.pm:73:	Plugins::callHook('packet_pre/sendStand', \%args);
src/Network/Send/ServerType7.pm:96:	Plugins::callHook('packet_pre/sendSkillUse', \%args);
src/Network/Send/ServerType8.pm:65:	Plugins::callHook('packet_pre/sendAttack', \%args)
src/Network/Send/ServerType8.pm:66:	Plugins::callHook('packet_pre/sendSit', \%args)
src/Network/Send/ServerType8.pm:85:	Plugins::callHook('packet_pre/sendAttack', \%args);
src/Network/Send/ServerType8.pm:103:	Plugins::callHook('packet_pre/sendStand', \%args);
src/Network/Send/ServerType8.pm:120:	Plugins::callHook('packet_pre/sendSit', \%args);
src/Network/Send/ServerType8.pm:140:	Plugins::callHook('packet_pre/sendSkillUse', \%args);
src/Network/Send/ServerType8_1.pm:54:	Plugins::callHook('packet_pre/sendAttack', \%args);
src/Network/Send/ServerType8_1.pm:141:	Plugins::callHook('packet_pre/sendSit', \%args);
src/Network/Send/ServerType8_1.pm:160:	Plugins::callHook('packet_pre/sendStand', \%args);
src/Network/Send/ServerType8_1.pm:182:	Plugins::callHook('packet_pre/sendSkillUse', \%args);
src/Network/Send/ServerType8_3.pm:48:	Plugins::callHook('packet_pre/sendSit', \%args);
src/Network/Send/ServerType8_3.pm:66:	Plugins::callHook('packet_pre/sendAttack', \%args);
src/Network/Send/ServerType8_3.pm:94:	Plugins::callHook('packet_pre/sendStand', \%args);
src/Network/Send/ServerType8_5.pm:46:	Plugins::callHook('packet_pre/sendSkillUse', \%args);
src/Network/Send/ServerType8_5.pm:180:	Plugins::callHook('packet_pre/sendAttack', \%args);
src/Network/Send.pm:245:	Plugins::callHook($hookName, \%args);
src/Network/Send.pm:487:	Plugins::callHook('packet/sendMapLoaded');
src/Network/Send.pm:536:	Plugins::callHook('packet_pre/sendAttack', \%args)
src/Network/Send.pm:537:	Plugins::callHook('packet_pre/sendSit', \%args)
src/Network/Send.pm:826:	Plugins::callHook('packet_pre/sendSkillUse', \%args);
src/Network/XKore.pm:120:	Plugins::callHook('Network::serverSend/pre', {msg => \$msg});
src/Network/XKore.pm:140:	Plugins::callHook('Network::stateChanged');
src/Network/XKore.pm:243:	Plugins::callHook('disconnected');
src/Network/XKore.pm:264:	Plugins::callHook('XKore_start');
src/Poseidon/Client.pm:82:	Plugins::callHook('Poseidon/client_authenticate', {
src/Poseidon/QueryServer.pm:78:	Plugins::callHook('Poseidon/server_authenticate', {
src/Settings.pm:344:	Plugins::callHook( usage => $data );
src/Settings.pm:498:	Plugins::callHook('pre_load_'.$internalFilename, $pre_load);
src/Settings.pm:546:	Plugins::callHook('load_'.$internalFilename, $load);
src/Settings.pm:551:	Plugins::callHook('pos_load_'.$internalFilename, $pos_load);
src/Settings.pm:553:	Plugins::callHook('load_'.$internalFilename, $load);
src/Settings.pm:557:	Plugins::callHook('pos_load_'.$internalFilename, $pos_load);
src/Settings.pm:599:	Plugins::callHook('preloadfiles', {files => $files});
src/Settings.pm:603:	Plugins::callHook('loadfiles', {
src/Settings.pm:611:	Plugins::callHook('postloadfiles', {files => $files});
src/Task/MapRoute.pm:193:	Plugins::callHook('npc_teleport_missing' => \%plugin_args );
src/Task/MapRoute.pm:406:	Plugins::callHook('Task::MapRoute::iterate::missing_portal', \%plugin_args);
src/Task/MapRoute.pm:483:	Plugins::callHook('Task::MapRoute::iterate::route_portal_near', \%plugin_args);
src/Task/Route.pm:313:	Plugins::callHook('route', {status => 'success'});
src/Task/Route.pm:414:	Plugins::callHook('route', {status => 'success'});
src/Task/Route.pm:426:	Plugins::callHook('route', {status => 'success'});
src/Task/Route.pm:469:	Plugins::callHook('route', {status => 'stuck'});
src/Task/Route.pm:599:	Plugins::callHook('getRoute' => \%plugin_args);
src/Utils/PathFinding.pm:103:	Plugins::callHook('PathFindingReset', \%hookArgs);