hooks: Difference between revisions

From OpenKore Wiki
Jump to navigation Jump to search
m (4epT moved page hook to hooks without leaving a redirect)
Line 52: Line 52:
functions.pl:83:                Plugins::callHook('start');
functions.pl:83:                Plugins::callHook('start');
functions.pl:136:      Plugins::callHook( 'parse_command_line' );
functions.pl:136:      Plugins::callHook( 'parse_command_line' );
functions.pl:281:      Plugins::callHook('start2');
functions.pl:378:      Plugins::callHook('start2');
functions.pl:305:      Plugins::callHook('start3');
functions.pl:402:      Plugins::callHook('start3');
functions.pl:551:      Plugins::callHook('initialized');
functions.pl:645:      Plugins::callHook('initialized');
functions.pl:702:      Plugins::callHook('packet_mapChange');
functions.pl:804:      Plugins::callHook('packet_mapChange');
functions.pl:911:       Plugins::callHook('mainLoop::setTitle',\%args);
functions.pl:1013:     Plugins::callHook('mainLoop::setTitle',\%args);
Actor\Item.pm:483:      Plugins::callHook( 'get_item_weight', $self ) if !defined $self->{weight};
Actor\Item.pm:520:      Plugins::callHook( 'get_item_weight', $self ) if !defined $self->{weight};
Actor\You.pm:262:      Plugins::callHook('attack_start', {ID => $targetID});
Actor\You.pm:262:      Plugins::callHook('attack_start', {ID => $targetID});
Actor.pm:596:  Plugins::callHook('Actor::setStatus::change', {
Actor.pm:579:  Plugins::callHook('Actor::setStatus::change', {
AI\Attack.pm:167:              Plugins::callHook("target_died", {monster => $monsters_old{$ID}});
AI\Attack.pm:181:              Plugins::callHook("target_died", {monster => $monsters_old{$ID}});
AI\Attack.pm:208:      Plugins::callHook('attack_end', {ID => $ID})
AI\Attack.pm:222:      Plugins::callHook('attack_end', {ID => $ID})
AI\Attack.pm:628:      Plugins::callHook('AI::Attack::main', {target => $target})
AI\Attack.pm:592:      Plugins::callHook('AI::Attack::main', {target => $target})
AI\CoreLogic.pm:57:    Plugins::callHook('AI_start', {state => AI::state});
AI\CoreLogic.pm:57:    Plugins::callHook('AI_start', {state => AI::state});
AI\CoreLogic.pm:68:    Plugins::callHook('AI_pre/manual');
AI\CoreLogic.pm:68:    Plugins::callHook('AI_pre/manual');
AI\CoreLogic.pm:117:    Plugins::callHook('AI_pre');
AI\CoreLogic.pm:118:    Plugins::callHook('AI_pre');
AI\CoreLogic.pm:212:    Plugins::callHook('AI_post');
AI\CoreLogic.pm:218:    Plugins::callHook('AI_post');
AI\CoreLogic.pm:538:            Plugins::callHook('portal_exist2', {
AI\CoreLogic.pm:548:            Plugins::callHook('portal_exist2', {
AI\CoreLogic.pm:563:            Plugins::callHook('portal_exist2', {
AI\CoreLogic.pm:573:            Plugins::callHook('portal_exist2', {
AI\CoreLogic.pm:1373:                  Plugins::callHook("AI_storage_open", \%pluginArgs); # we can hook here to perform actions BEFORE any storage function
AI\CoreLogic.pm:1227:                                          Plugins::callHook("AI_storage_item_out_of_stock",  {
AI\CoreLogic.pm:1456:                                  Plugins::callHook("AI_storage_done", \%hookArgs);
AI\CoreLogic.pm:1404:                  Plugins::callHook("AI_storage_open", \%pluginArgs); # we can hook here to perform actions BEFORE any storage function
AI\CoreLogic.pm:1710:                  Plugins::callHook("AI_sell_auto");
AI\CoreLogic.pm:1419:                                  Plugins::callHook("AI_storage_full", \%pluginArgs);
AI\CoreLogic.pm:1739:                  Plugins::callHook('AI_sell_auto_done');
AI\CoreLogic.pm:1443:                                                  Plugins::callHook("AI_storage_item_full", {
AI\CoreLogic.pm:1789:          Plugins::callHook('AI_buy_auto_done');
AI\CoreLogic.pm:1504:                                  Plugins::callHook("AI_storage_done", \%hookArgs);
AI\CoreLogic.pm:1798:          Plugins::callHook('AI_buy_auto');
AI\CoreLogic.pm:1588:                                          Plugins::callHook("AI_storage_item_out_of_stock",  {
AI\CoreLogic.pm:2087:                  Plugins::callHook("AI/lockMap", \%args);
AI\CoreLogic.pm:1785:                  Plugins::callHook("AI_sell_auto");
AI\CoreLogic.pm:2430:  Plugins::callHook("ai_follow", $args);
AI\CoreLogic.pm:1814:                  Plugins::callHook('AI_sell_auto_done');
AI\CoreLogic.pm:2934:                                  Plugins::callHook("checkMonsterAutoAttack", \%hookArgs);
AI\CoreLogic.pm:1871:          Plugins::callHook('AI_buy_auto_done');
AI\Slave.pm:333:                        Plugins::callHook("homonulus_target_died");
AI\CoreLogic.pm:1880:          Plugins::callHook('AI_buy_auto');
AI.pm:96:              Plugins::callHook('AI_state_change', {old => $AI, new => $_[0]});
AI\CoreLogic.pm:2191:                  Plugins::callHook("AI/lockMap", \%args);
AI\CoreLogic.pm:2587:  Plugins::callHook("ai_follow", $args);
AI\CoreLogic.pm:3082:                                  Plugins::callHook("checkMonsterAutoAttack", \%hookArgs);
AI\Slave.pm:367:                        Plugins::callHook("homonulus_target_died");
AI.pm:97:              Plugins::callHook('AI_state_change', {old => $AI, new => $_[0]});
ChatQueue.pm:64:        Plugins::callHook('ChatQueue::add', \%item);
ChatQueue.pm:64:        Plugins::callHook('ChatQueue::add', \%item);
ChatQueue.pm:616:      Plugins::callHook('ChatQueue::processChatResponse', $cmd);
ChatQueue.pm:616:      Plugins::callHook('ChatQueue::processChatResponse', $cmd);
Commands.pm:311:                        Plugins::callHook("Commands::run/pre", \%params);
Commands.pm:857:                        Plugins::callHook("Commands::run/pre", \%params);
Commands.pm:313:                        Plugins::callHook("Commands::run/post", \%params);
Commands.pm:859:                        Plugins::callHook("Commands::run/post", \%params);
Commands.pm:317:                        Plugins::callHook('Command_post', \%params);
Commands.pm:863:                        Plugins::callHook('Command_post', \%params);
Commands.pm:1430:              Plugins::callHook('Commands::cmdConf', {
Commands.pm:2078:              Plugins::callHook('Commands::cmdConf', {
FileParsers.pm:693:    Plugins::callHook("FileParsers::ROLUT", \%ret);
FileParsers.pm:784:    Plugins::callHook("FileParsers::ROLUT", \%ret);
FileParsers.pm:720:    Plugins::callHook("FileParsers::RODescLUT", \%ret);
FileParsers.pm:811:    Plugins::callHook("FileParsers::RODescLUT", \%ret);
FileParsers.pm:770:    Plugins::callHook ('FileParsers::ROQuestsLUT', \%ret);
FileParsers.pm:861:    Plugins::callHook ('FileParsers::ROQuestsLUT', \%ret);
FileParsers.pm:1305:    Plugins::callHook('updatePortalLUT', $plugin_args);
FileParsers.pm:1480:    Plugins::callHook('updatePortalLUT', $plugin_args);
FileParsers.pm:1319:    Plugins::callHook('updatePortalLUT2', $plugin_args);
FileParsers.pm:1494:    Plugins::callHook('updatePortalLUT2', $plugin_args);
Interface\Console\Curses.pm:683:        Plugins::callHook( 'curses/updateStatus' );
Interface\Console\Curses.pm:683:        Plugins::callHook( 'curses/updateStatus' );
Interface\Console\Curses.pm:808:        Plugins::callHook( 'curses/updateObjects' );
Interface\Console\Curses.pm:808:        Plugins::callHook( 'curses/updateObjects' );
InventoryList\Cart.pm:33:              Plugins::callHook('cart_ready');
InventoryList\Cart.pm:41:              Plugins::callHook('cart_ready');
InventoryList\Cart.pm:35:              Plugins::callHook('cart_info_updated');
InventoryList\Cart.pm:43:              Plugins::callHook('cart_info_updated');
InventoryList\Inventory.pm:34:          Plugins::callHook('inventory_ready');
InventoryList\Cart.pm:102:              Plugins::callHook('cart_ready');
InventoryList\Storage.pm:36:                    Plugins::callHook('storage_first_session_openning');
InventoryList\Inventory.pm:41:          Plugins::callHook('inventory_ready');
InventoryList\Storage.pm:38:            Plugins::callHook('packet_storage_open');
InventoryList\Inventory.pm:71:                  Plugins::callHook('inventory_ready');
InventoryList\Storage.pm:45:    Plugins::callHook('packet_storage_close');
InventoryList\Storage.pm:44:                    Plugins::callHook('storage_first_session_openning');
Misc.pm:297:   Plugins::callHook('configModify', {
InventoryList\Storage.pm:46:            Plugins::callHook('packet_storage_open');
Misc.pm:348:           Plugins::callHook('configModify', {
InventoryList\Storage.pm:53:    Plugins::callHook('packet_storage_close');
Misc.pm:388:   Plugins::callHook('setTimeout', {
InventoryList\Storage.pm:89:           Plugins::callHook('storage_ready');
Misc.pm:1136:           Plugins::callHook('avoidGM_talk', \%args);
Misc.pm:312:   Plugins::callHook('configModify', {
Misc.pm:1259:  Plugins::callHook('charSelectScreen', \%plugin_args);
Misc.pm:363:           Plugins::callHook('configModify', {
Misc.pm:1892:  Plugins::callHook('inventory_item_removed', {item => $item, index => $binID, amount => $amount, remaining => ($item->{amount} <= 0 ? 0 : $item->{amount})});
Misc.pm:403:   Plugins::callHook('setTimeout', {
Misc.pm:1911:  Plugins::callHook('storage_item_removed', {item => $item, index => $binID, amount => $amount, remaining => ($item->{amount} <= 0 ? 0 : $item->{amount})});
Misc.pm:1530:  Plugins::callHook('charSelectScreen', \%plugin_args);
Misc.pm:1930:  Plugins::callHook('cart_item_removed', {item => $item, index => $binID, amount => $amount, remaining => ($item->{amount} <= 0 ? 0 : $item->{amount})});
Misc.pm:2274:  Plugins::callHook('inventory_item_removed', {item => $item, index => $binID, amount => $amount, remaining => ($item->{amount} <= 0 ? 0 : $item->{amount})});
Misc.pm:2308:  Plugins::callHook('objectAdded', {
Misc.pm:2293:  Plugins::callHook('storage_item_removed', {item => $item, index => $binID, amount => $amount, remaining => ($item->{amount} <= 0 ? 0 : $item->{amount})});
Misc.pm:2325:  Plugins::callHook('objectRemoved', {
Misc.pm:2312:  Plugins::callHook('cart_item_removed', {item => $item, index => $binID, amount => $amount, remaining => ($item->{amount} <= 0 ? 0 : $item->{amount})});
Misc.pm:2692:  Plugins::callHook('changed_status',{actor => $actor, changed => $changed});
Misc.pm:2941:  Plugins::callHook('objectAdded', {
Misc.pm:2701:                  # Plugins::callHook('perfect_hidden_player',undef);
Misc.pm:2958:  Plugins::callHook('objectRemoved', {
Misc.pm:2702:                  Plugins::callHook('perfect_hidden_player',{actor => $actor, changed => $changed});
Misc.pm:3350:  Plugins::callHook('changed_status',{actor => $actor, changed => $changed});
Misc.pm:2714:                  Plugins::callHook('perfect_hidden_npc',{actor => $actor, changed => $changed});
Misc.pm:3359:                  # Plugins::callHook('perfect_hidden_player',undef);
Misc.pm:3167:          Plugins::callHook('teleport_sent', \%args);
Misc.pm:3360:                  Plugins::callHook('perfect_hidden_player',{actor => $actor, changed => $changed});
Misc.pm:3173:          Plugins::callHook('teleport_sent', \%args);
Misc.pm:3372:                  Plugins::callHook('perfect_hidden_npc',{actor => $actor, changed => $changed});
Misc.pm:3205:                          Plugins::callHook('teleport_sent', \%args);
Misc.pm:3833:          Plugins::callHook('teleport_sent', \%args);
Misc.pm:3214:                          Plugins::callHook('teleport_sent', \%args);
Misc.pm:3839:          Plugins::callHook('teleport_sent', \%args);
Misc.pm:3224:                  Plugins::callHook('teleport_sent', \%args);
Misc.pm:3871:                          Plugins::callHook('teleport_sent', \%args);
Misc.pm:3236:                  Plugins::callHook('teleport_sent', \%args);
Misc.pm:3880:                          Plugins::callHook('teleport_sent', \%args);
Misc.pm:3287:                  Plugins::callHook('teleport_sent', \%args);
Misc.pm:3890:                  Plugins::callHook('teleport_sent', \%args);
Misc.pm:3688:          Plugins::callHook('avoidGM_near', \%args);
Misc.pm:3902:                  Plugins::callHook('teleport_sent', \%args);
Misc.pm:4299:  Plugins::callHook("checkSelfCondition", \%hookArgs);
Misc.pm:3961:                  Plugins::callHook('teleport_sent', \%args);
Misc.pm:4451:  Plugins::callHook('checkPlayerCondition', \%args);
Misc.pm:4349:          Plugins::callHook('avoidGM_near', \%args);
Misc.pm:4526:  Plugins::callHook('checkMonsterCondition', \%args);
Misc.pm:4401:  Plugins::callHook('avoidGM_talk', \%args);
Misc.pm:4613:  Plugins::callHook ('open_shop', {title => $shop{title}, items => \@items});
Misc.pm:4440:          Plugins::callHook('avoidList_near', \%args);
Misc.pm:4630:  Plugins::callHook("shop_closed");
Misc.pm:5088:  Plugins::callHook("checkSelfCondition", \%hookArgs);
Misc.pm:5240:  Plugins::callHook('checkPlayerCondition', \%args);
Misc.pm:5315:  Plugins::callHook('checkMonsterCondition', \%args);
Misc.pm:5405:  Plugins::callHook ('open_shop', {title => $shop{title}, items => \@items});
Misc.pm:5419:  Plugins::callHook("shop_closed");
Misc.pm:5514:  Plugins::callHook ('buyer_open_shop', {title => $buyer_shop{title}, limitZeny=> $limitZeny, items => \@items});
Misc.pm:5531:  Plugins::callHook("buyer_shop_closed");
Network\ClientReceive.pm:75:    Plugins::callHook('map_loaded');
Network\ClientReceive.pm:75:    Plugins::callHook('map_loaded');
Network\DirectConnection.pm:140:        Plugins::callHook('Network::connectTo', {
Network\DirectConnection.pm:140:        Plugins::callHook('Network::connectTo', {
Line 138: Line 148:
Network\DirectConnection.pm:301:                Plugins::callHook('Network::clientRecv', \%args);
Network\DirectConnection.pm:301:                Plugins::callHook('Network::clientRecv', \%args);
Network\DirectConnection.pm:355:                        Plugins::callHook("Network::serverConnect/master");
Network\DirectConnection.pm:355:                        Plugins::callHook("Network::serverConnect/master");
Network\DirectConnection.pm:490:                Plugins::callHook("Network::serverConnect/special");
Network\DirectConnection.pm:486:                Plugins::callHook("Network::serverConnect/special");
Network\DirectConnection.pm:530:                                Plugins::callHook("Network::serverConnect/char");
Network\DirectConnection.pm:526:                                Plugins::callHook("Network::serverConnect/char");
Network\DirectConnection.pm:566:                                Plugins::callHook("Network::serverConnect/charselect");
Network\DirectConnection.pm:562:                                Plugins::callHook("Network::serverConnect/charselect");
Network\DirectConnection.pm:603:                                Plugins::callHook("Network::serverConnect/mapserver");
Network\DirectConnection.pm:600:                                Plugins::callHook("Network::serverConnect/mapserver");
Network\DirectConnection.pm:621:                        Plugins::callHook('disconnected');
Network\DirectConnection.pm:618:                        Plugins::callHook('disconnected');
Network\DirectConnection.pm:636:                        Plugins::callHook('disconnected');
Network\DirectConnection.pm:633:                        Plugins::callHook('disconnected');
Network\PacketParser.pm:269:                    Plugins::callHook("packet_pre/$handler->[0]", \%args);
Network\PacketParser.pm:272:                    Plugins::callHook("packet_pre/$handler->[0]", \%args);
Network\PacketParser.pm:271:                    Plugins::callHook("$self->{hook_prefix}/packet_pre/$handler->[0]", \%args);
Network\PacketParser.pm:274:                    Plugins::callHook("$self->{hook_prefix}/packet_pre/$handler->[0]", \%args);
Network\PacketParser.pm:286:            Plugins::callHook("packet/$handler->[0]", \%args);
Network\PacketParser.pm:289:            Plugins::callHook("packet/$handler->[0]", \%args);
Network\PacketParser.pm:288:            Plugins::callHook("$self->{hook_prefix}/packet/$handler->[0]", \%args);
Network\PacketParser.pm:291:            Plugins::callHook("$self->{hook_prefix}/packet/$handler->[0]", \%args);
Network\PacketParser.pm:365:            Plugins::callHook("$self->{hook_prefix}/willMangle", \%args);
Network\PacketParser.pm:368:            Plugins::callHook("$self->{hook_prefix}/willMangle", \%args);
Network\PacketParser.pm:387:    Plugins::callHook("$self->{hook_prefix}/mangle", \%hook_args);
Network\PacketParser.pm:390:    Plugins::callHook("$self->{hook_prefix}/mangle", \%hook_args);
Network\PacketParser.pm:491:    Plugins::callHook($hook, {switch => $switch, msg => $msg, msg_size => length($msg), realMsg => \$msg});
Network\PacketParser.pm:494:    Plugins::callHook($hook, {switch => $switch, msg => $msg, msg_size => length($msg), realMsg => \$msg});
Network\Receive\kRO\RagexeRE_2009_09_22a.pm:57: Plugins::callHook ('captcha_image', $hookArgs);
Network\Receive\kRO\Sakexe_0.pm:972:           Plugins::callHook($args->{hook}, {index => $index, item => $local_item});
Network\Receive\kRO\RagexeRE_2009_09_22a.pm:66: Plugins::callHook ('captcha_file', $hookArgs);
Network\Receive\kRO\Sakexe_0.pm:1019:   Plugins::callHook('packet_guildMsg', {
Network\Receive\kRO\RagexeRE_2009_09_22a.pm:80: Plugins::callHook ('captcha_answer', {flag => $args->{flag}});
Network\Receive\kRO\Sakexe_0.pm:1072:   Plugins::callHook('item_skill', {
Network\Receive\kRO\RagexeRE_2010_03_09a.pm:69:         Plugins::callHook('packet_open_buying_store', {
Network\Receive\kRO\Sakexe_0.pm:1123:   Plugins::callHook('packet_pubMsg', {
Network\Receive\kRO\RagexeRE_2010_03_09a.pm:120:               Plugins::callHook('packet_buying_store', {
Network\Receive\kRO\Sakexe_0.pm:1139:           Plugins::callHook('packet_sentPM', {
Network\Receive\kRO\RagexeRE_2010_03_09a.pm:138:       Plugins::callHook('packet_buying_store2', {
Network\Receive\kRO\Sakexe_0.pm:1172:           Plugins::callHook('pvp_mode', {
Network\Receive\kRO\RagexeRE_2010_04_20a.pm:53:         Plugins::callHook('packet_buying', {ID => unpack 'V', $ID});
Network\Receive\kRO\Sakexe_0.pm:1188:           Plugins::callHook('pvp_mode', {
Network\Receive\kRO\RagexeRE_2013_03_20.pm:125:                                 Plugins::callHook('equipped_item', {slot => $equipSlot_lut{$_}, item => $item});
Network\Receive\kRO\Sakexe_0.pm:1263:   Plugins::callHook('packet_skilluse', {
Network\Receive\kRO\Sakexe_0.pm:810:           Plugins::callHook($args->{hook}, {index => $index, item => $local_item});
Network\Receive\kRO\Sakexe_0.pm:1302:   Plugins::callHook('packet_skilluse', {
Network\Receive\kRO\Sakexe_0.pm:841:           Plugins::callHook('in_game');
Network\Receive\kRO\Sakexe_0.pm:1380:   Plugins::callHook('packet_skilluse', {
Network\Receive\kRO\Sakexe_0.pm:884:   Plugins::callHook('packet_areaSpell', {
Network\Receive\kRO\Sakexe_0.pm:1432:           Plugins::callHook($hook, {
Network\Receive\kRO\Sakexe_0.pm:1166:   Plugins::callHook('chat_joined', {
Network\Receive\ServerType0.pm:1011:           Plugins::callHook($args->{hook}, {index => $index, item => $local_item});
Network\Receive\kRO\Sakexe_0.pm:1183:   Plugins::callHook('packet_castCancelled', {
Network\Receive\ServerType0.pm:1060:   Plugins::callHook('packet_guildMsg', {
Network\Receive\kRO\Sakexe_0.pm:1204:                                   Plugins::callHook('equipped_item', {slot => $equipSlot_lut{$_}, item => $item});
Network\Receive\ServerType0.pm:1113:   Plugins::callHook('item_skill', {
Network\Receive\kRO\Sakexe_0.pm:1380:   Plugins::callHook('packet_guildMsg', {
Network\Receive\ServerType0.pm:1164:    Plugins::callHook('packet_pubMsg', {
Network\Receive\kRO\Sakexe_0.pm:1505:           Plugins::callHook('item_gathered',{item => $item->{name}});
Network\Receive\ServerType0.pm:1194:           Plugins::callHook('pvp_mode', {
Network\Receive\kRO\Sakexe_0.pm:1571:           Plugins::callHook('packet_inventory', {index => $local_item->{binID}});
Network\Receive\ServerType0.pm:1211:           Plugins::callHook('pvp_mode', {
Network\Receive\kRO\Sakexe_0.pm:1610:           Plugins::callHook('packet_inventory', {index => $item->{binID}});
Network\Receive\ServerType0.pm:1291:   Plugins::callHook('packet_skilluse', {
Network\Receive\kRO\Sakexe_0.pm:1634:   Plugins::callHook('item_skill', {
Network\Receive\ServerType0.pm:1338:   Plugins::callHook('packet_skilluse', {
Network\Receive\kRO\Sakexe_0.pm:1734:   Plugins::callHook('Network::Receive::map_changed', {
Network\Receive\ServerType0.pm:1423:   Plugins::callHook('packet_skilluse', {
Network\Receive\kRO\Sakexe_0.pm:1777:           Plugins::callHook('in_game');
Network\Receive\ServerType0.pm:1467:           Plugins::callHook($hook, {
Network\Receive\kRO\Sakexe_0.pm:1919:           Plugins::callHook('npc_autotalk', {
Network\Receive\twRO.pm:97:             Plugins::callHook($hook, {
Network\Receive\kRO\Sakexe_0.pm:1935:   Plugins::callHook('npc_talk', {
Network\Receive.pm:770: Plugins::callHook('parseMsg/recvChars', $args->{options});
Network\Receive\kRO\Sakexe_0.pm:2081:   Plugins::callHook('packet_pubMsg', {
Network\Receive.pm:918: Plugins::callHook('char_created', {     char => $character });
Network\Receive\kRO\Sakexe_0.pm:2101:           Plugins::callHook('parseMsg/addPrivMsgUser', {
Network\Receive.pm:1205:       Plugins::callHook('in_game');
Network\Receive\kRO\Sakexe_0.pm:2113:   Plugins::callHook('packet_privMsg', {
Network\Receive.pm:1247:       Plugins::callHook('disconnected');
Network\Receive\kRO\Sakexe_0.pm:2134:           Plugins::callHook('packet_sentPM', {
Network\Receive.pm:1347:               Plugins::callHook('exp_gained');
Network\Receive\kRO\Sakexe_0.pm:2167:   Plugins::callHook('parseMsg/recvChars', $args->{options});
Network\Receive.pm:1403:               Plugins::callHook('base_level_changed', {
Network\Receive\kRO\Sakexe_0.pm:2335:   Plugins::callHook('packet_selfChat', {
Network\Receive.pm:1436:               Plugins::callHook('zeny_change', {
Network\Receive\kRO\Sakexe_0.pm:2424:           Plugins::callHook('pvp_mode', {
Network\Receive.pm:1507:               Plugins::callHook('job_level_changed', {
Network\Receive\kRO\Sakexe_0.pm:2440:           Plugins::callHook('pvp_mode', {
Network\Receive.pm:1625:       Plugins::callHook('packet_charStats', {
Network\Receive\kRO\Sakexe_0.pm:2543:   Plugins::callHook('is_casting', {
Network\Receive.pm:1725:       Plugins::callHook('packet_pre/actor_display', $args);
Network\Receive\kRO\Sakexe_0.pm:2615:   Plugins::callHook('packet_charSkills', {
Network\Receive.pm:1727:       Plugins::callHook('packet/actor_display', $args);
Network\Receive\kRO\Sakexe_0.pm:2694:   Plugins::callHook('packet_skilluse', {
Network\Receive.pm:2076:                       Plugins::callHook('add_player_list', $actor);
Network\Receive\kRO\Sakexe_0.pm:2746:   Plugins::callHook('packet_skillfail', {
Network\Receive.pm:2080:                       Plugins::callHook('add_monster_list', $actor);
Network\Receive\kRO\Sakexe_0.pm:2775:   Plugins::callHook('packet_skilluse', {
Network\Receive.pm:2084:                       Plugins::callHook('add_pet_list', $actor);
Network\Receive\kRO\Sakexe_0.pm:2853:   Plugins::callHook('packet_skilluse', {
Network\Receive.pm:2088:                       Plugins::callHook('add_portal_list', $actor);
Network\Receive\kRO\Sakexe_0.pm:2905:           Plugins::callHook($hook, {
Network\Receive.pm:2097:                       Plugins::callHook('add_npc_list', $actor);
Network\Receive\kRO\Sakexe_0.pm:2933:   Plugins::callHook('packet_charSkills', {
Network\Receive.pm:2101:                       Plugins::callHook('add_slave_list', $actor);
Network\Receive\kRO\Sakexe_0.pm:3147:                           Plugins::callHook('unequipped_item', {slot => $equipSlot_lut{$_}, item => $item});
Network\Receive.pm:2104:                       Plugins::callHook('add_elemental_list', $actor);
Network\Receive\kRO\Sakexe_0.pm:3166:           Plugins::callHook('base_level', {name => $name});
Network\Receive.pm:2125:                       Plugins::callHook('player', {player => $actor}); #backwards compatibility
Network\Receive\kRO\Sakexe_0.pm:3169:           Plugins::callHook('job_level', {name => $name});
Network\Receive.pm:2127:                       Plugins::callHook('player_exist', {player => $actor});
Network\Receive\kRO\Sakexe_0.pm:3199:           Plugins::callHook('packet_vender', {ID => $ID});
Network\Receive.pm:2131:                       Plugins::callHook('npc_exist', {npc => $actor});
Network\Receive\kRO\Sakexe_0.pm:3239:           Plugins::callHook('packet_vender_store', { item => $item });
Network\Receive.pm:2135:                       Plugins::callHook('portal_exist', {portal => $actor});
Network\Receive\kRO\Sakexe_0.pm:3248:   Plugins::callHook('packet_vender_store2', {
Network\Receive.pm:2170:                       Plugins::callHook('player', {player => $actor}); #backwards compatibailty
Network\Receive\pRO.pm:90:     Plugins::callHook('parseMsg/recvChars', $args->{options});
Network\Receive.pm:2172:                       Plugins::callHook('player_connected', {player => $actor});
Network\Receive\ServerType0.pm:907:             Plugins::callHook($args->{hook}, {index => $index, item => $local_item});
Network\Receive.pm:2200:                       Plugins::callHook('player_moved', $actor);
Network\Receive\ServerType0.pm:944:             Plugins::callHook('in_game');
Network\Receive.pm:2203:                       Plugins::callHook('monster_moved', $actor);
Network\Receive\ServerType0.pm:996:     Plugins::callHook('packet_areaSpell', {
Network\Receive.pm:2206:                       Plugins::callHook('pet_moved', $actor);
Network\Receive\ServerType0.pm:1290:   Plugins::callHook('chat_joined', {
Network\Receive.pm:2209:                       Plugins::callHook('slave_moved', $actor);
Network\Receive\ServerType0.pm:1307:   Plugins::callHook('packet_castCancelled', {
Network\Receive.pm:2213:                       Plugins::callHook('portal_moved', $actor);
Network\Receive\ServerType0.pm:1328:                                   Plugins::callHook('equipped_item', {slot => $equipSlot_lut{$_}, item => $item});
Network\Receive.pm:2217:                       Plugins::callHook('npc_moved', $actor);
Network\Receive\ServerType0.pm:1514:   Plugins::callHook('packet_guildMsg', {
Network\Receive.pm:2220:                       Plugins::callHook('pet_moved', $actor);
Network\Receive\ServerType0.pm:1661:           Plugins::callHook('item_gathered',{item => $item->{name}});
Network\Receive.pm:2268:               Plugins::callHook('self_died');
Network\Receive\ServerType0.pm:1737:   Plugins::callHook('item_skill', {
Network\Receive.pm:2307:               Plugins::callHook('monster_disappeared', {monster => $monster});
Network\Receive\ServerType0.pm:1848:   Plugins::callHook('Network::Receive::map_changed', {
Network\Receive.pm:2343:                       Plugins::callHook('player_disappeared', {player => $player});
Network\Receive\ServerType0.pm:1986:           Plugins::callHook('npc_autotalk', {
Network\Receive.pm:2363:               Plugins::callHook('portal_disappeared', {portal => $portal});
Network\Receive\ServerType0.pm:2007:   Plugins::callHook('npc_talk', {
Network\Receive.pm:2372:               Plugins::callHook('npc_disappeared', {npc => $npc});
Network\Receive\ServerType0.pm:2153:   Plugins::callHook('packet_pubMsg', {
Network\Receive.pm:2380:               Plugins::callHook('pet_disappeared', {pet => $pet});
Network\Receive\ServerType0.pm:2173:           Plugins::callHook('parseMsg/addPrivMsgUser', {
Network\Receive.pm:2404:                       Plugins::callHook('slave_disappeared', {slave => $slave});
Network\Receive\ServerType0.pm:2185:   Plugins::callHook('packet_privMsg', {
Network\Receive.pm:2420:               Plugins::callHook('elemental_disappeared', {elemental => $elemental});
Network\Receive\ServerType0.pm:2206:            Plugins::callHook('packet_sentPM', {
Network\Receive.pm:2508:               Plugins::callHook('packet_attack', {sourceID => $args->{sourceID}, targetID => $args->{targetID}, msg => \$msg, dmg => $totalDamage, type => $args->{type}});
Network\Receive\ServerType0.pm:2253:    Plugins::callHook('parseMsg/recvChars', $args->{options});
Network\Receive.pm:2573:               Plugins::callHook('charNameUpdate', {player => $player});
Network\Receive\ServerType0.pm:2454:   Plugins::callHook('packet_selfChat', {
Network\Receive.pm:2585:                       Plugins::callHook('mobNameUpdate', {monster => $monster});
Network\Receive\ServerType0.pm:2547:           Plugins::callHook('pvp_mode', {
Network\Receive.pm:2603:               Plugins::callHook('npcNameUpdate', {npc => $npc});
Network\Receive\ServerType0.pm:2564:           Plugins::callHook('pvp_mode', {
Network\Receive.pm:2615:               Plugins::callHook('petNameUpdate', {pet => $pet});
Network\Receive\ServerType0.pm:2669:   Plugins::callHook('is_casting', {
Network\Receive.pm:2626:               Plugins::callHook('slaveNameUpdate', {slave => $slave});
Network\Receive\ServerType0.pm:2742:   Plugins::callHook('packet_charSkills', {
Network\Receive.pm:2638:               Plugins::callHook('elementalNameUpdate', {elemental => $elemental});
Network\Receive\ServerType0.pm:2826:   Plugins::callHook('packet_skilluse', {
Network\Receive.pm:2665:               Plugins::callHook('base_level', {name => $actor});
Network\Receive\ServerType0.pm:2881:   Plugins::callHook('packet_skillfail', {
Network\Receive.pm:2668:               Plugins::callHook('job_level', {name => $actor});
Network\Receive\ServerType0.pm:2918:   Plugins::callHook('packet_skilluse', {
Network\Receive.pm:2929:       Plugins::callHook('packet_localBroadcast', {
Network\Receive\ServerType0.pm:3003:   Plugins::callHook('packet_skilluse', {
Network\Receive.pm:3167:               Plugins::callHook('show_script', {
Network\Receive\ServerType0.pm:3047:           Plugins::callHook($hook, {
Network\Receive.pm:3298:       Plugins::callHook('packet_sysMsg', {
Network\Receive\ServerType0.pm:3075:   Plugins::callHook('packet_charSkills', {
Network\Receive.pm:3450:               Plugins::callHook('equipped_item', {slot => 'arrow', item => $item});
Network\Receive\ServerType0.pm:3321:                           Plugins::callHook('unequipped_item', {slot => $equipSlot_lut{$_}, item => $item});
Network\Receive.pm:3502:               Plugins::callHook('item_gathered',{item => $item->{name}, amount => $amount});
Network\Receive\ServerType0.pm:3340:           Plugins::callHook('base_level', {name => $actor});
Network\Receive.pm:3563:               Plugins::callHook('packet_item_removed', {index => $item->{binID}});
Network\Receive\ServerType0.pm:3343:           Plugins::callHook('job_level', {name => $actor});
Network\Receive.pm:3575:               Plugins::callHook('rental_expired', {
Network\Receive\ServerType0.pm:3382:           Plugins::callHook('packet_vender', {ID => $ID, title => bytesToString($args->{title})});
Network\Receive.pm:3616:        Plugins::callHook(
Network\Receive\ServerType0.pm:3422:           Plugins::callHook('packet_vender_store', { item => $item });
Network\Receive.pm:3631:               Plugins::callHook(
Network\Receive\ServerType0.pm:3431:   Plugins::callHook('packet_vender_store2', {
Network\Receive.pm:3666:        Plugins::callHook(
Network\Receive\ServerType0.pm:3595:                                   Plugins::callHook('packet_item_removed', {index => $item->{binID}});
Network\Receive.pm:3683:               Plugins::callHook(
Network\Receive\ServerType0.pm:4248:   Plugins::callHook ('captcha_image', $hookArgs);
Network\Receive.pm:3761:               Plugins::callHook('packet_vender_store', { item => $item });
Network\Receive\ServerType0.pm:4257:   Plugins::callHook ('captcha_file', $hookArgs);
Network\Receive.pm:3776:       Plugins::callHook('packet_vender_store2', {
Network\Receive\ServerType0.pm:4271:   Plugins::callHook ('captcha_answer', {flag => $args->{flag}});
Network\Receive.pm:4060:               Plugins::callHook('pvp_mode', {
Network\Receive\ServerType0.pm:4376:           Plugins::callHook('packet_open_buying_store', {
Network\Receive.pm:4104:       Plugins::callHook('packet_areaSpell', {
Network\Receive\ServerType0.pm:4394:           Plugins::callHook('packet_buying', {ID => unpack 'V', $ID});
Network\Receive.pm:4151:       Plugins::callHook('packet_areaSpell', {
Network\Receive\ServerType0.pm:4439:            Plugins::callHook('packet_buying_store', {
Network\Receive.pm:4200:       Plugins::callHook('packet_areaSpell', {
Network\Receive\ServerType0.pm:4457:   Plugins::callHook('packet_buying_store2', {
Network\Receive.pm:4472:            Plugins::callHook('quest_mission_added', {
Network\Receive\ServerType0.pm:4509:            Plugins::callHook('packet_buyer', {ID => $ID});
Network\Receive.pm:4479:       Plugins::callHook('quest_list');
Network\Receive\ServerType15.pm:47:             Plugins::callHook('in_game');
Network\Receive.pm:4532:            Plugins::callHook('quest_mission_added', {
Network\Receive\ServerType19.pm:47:             Plugins::callHook('in_game');
Network\Receive.pm:4600:               Plugins::callHook('quest_mission_added', {
Network\Receive\ServerType20.pm:47:             Plugins::callHook('in_game');
Network\Receive.pm:4606:   Plugins::callHook('quest_added', {
Network\Receive\Zero.pm:79:             Plugins::callHook('in_game');
Network\Receive.pm:4701:               Plugins::callHook('quest_mission_updated', {
Network\Receive.pm:837:         Plugins::callHook('exp_gained');
Network\Receive.pm:4794:       Plugins::callHook('makable_item_list', {
Network\Receive.pm:895:         Plugins::callHook('base_level_changed', {
Network\Receive.pm:5130:               Plugins::callHook('invalid_password');
Network\Receive.pm:928:         Plugins::callHook('zeny_change', {
Network\Receive.pm:5158:               Plugins::callHook('dial');
Network\Receive.pm:1000:               Plugins::callHook('job_level_changed', {
Network\Receive.pm:5177:               Plugins::callHook('invalid_password');
Network\Receive.pm:1093:        Plugins::callHook('packet_charStats', {
Network\Receive.pm:5342:       Plugins::callHook('chat_created', {
Network\Receive.pm:1186:        Plugins::callHook('packet_pre/actor_display', $args);
Network\Receive.pm:5371:        Plugins::callHook('packet_chatinfo', {
Network\Receive.pm:1188:        Plugins::callHook('packet/actor_display', $args);
Network\Receive.pm:5415:        Plugins::callHook('chat_joined', {
Network\Receive.pm:1526:                       Plugins::callHook('add_player_list', $actor);
Network\Receive.pm:5482:        Plugins::callHook('chat_modified', {
Network\Receive.pm:1530:                       Plugins::callHook('add_monster_list', $actor);
Network\Receive.pm:5557:               Plugins::callHook('chat_leave');
Network\Receive.pm:1534:                       Plugins::callHook('add_pet_list', $actor);
Network\Receive.pm:5571:       Plugins::callHook('chat_removed', {
Network\Receive.pm:1538:                       Plugins::callHook('add_portal_list', $actor);
Network\Receive.pm:5603:               Plugins::callHook("error_deal", { type =>$args->{type}} );
Network\Receive.pm:1547:                       Plugins::callHook('add_npc_list', $actor);
Network\Receive.pm:5606:               Plugins::callHook("error_deal", { type =>$args->{type}} );
Network\Receive.pm:1551:                       Plugins::callHook('add_slave_list', $actor);
Network\Receive.pm:5624:               Plugins::callHook("engaged_deal", {name => $currentDeal{name}});
Network\Receive.pm:1554:                       Plugins::callHook('add_elemental_list', $actor);
Network\Receive.pm:5627:               Plugins::callHook("error_deal", { type =>$args->{type}} );
Network\Receive.pm:1575:                       Plugins::callHook('player', {player => $actor});  #backwards compatibility
Network\Receive.pm:5630:               Plugins::callHook("error_deal", { type =>$args->{type}} );
Network\Receive.pm:1577:                       Plugins::callHook('player_exist', {player => $actor});
Network\Receive.pm:5639:       Plugins::callHook("cancelled_deal");
Network\Receive.pm:1581:                       Plugins::callHook('npc_exist', {npc => $actor});
Network\Receive.pm:5647:       Plugins::callHook("complete_deal");
Network\Receive.pm:1585:                       Plugins::callHook('portal_exist', {portal => $actor});
Network\Receive.pm:5655:               Plugins::callHook("finalized_deal", {name => $currentDeal{name}});
Network\Receive.pm:1619:                       Plugins::callHook('player', {player => $actor});  #backwards compatibailty
Network\Receive.pm:5674:       Plugins::callHook("incoming_deal", {
Network\Receive.pm:1621:                       Plugins::callHook('player_connected', {player => $actor});
Network\Receive.pm:5772:       Plugins::callHook('packet_emotion', {
Network\Receive.pm:1648:                       Plugins::callHook('player_moved', $actor);
Network\Receive.pm:5815:       Plugins::callHook('disconnected') if ($net->getState() == Network::IN_GAME);
Network\Receive.pm:1651:                       Plugins::callHook('monster_moved', $actor);
Network\Receive.pm:5955:       Plugins::callHook("friend_request", {
Network\Receive.pm:1654:                       Plugins::callHook('pet_moved', $actor);
Network\Receive.pm:6677:       Plugins::callHook('packet_useitem', \%hook_args);
Network\Receive.pm:1657:                       Plugins::callHook('slave_moved', $actor);
Network\Receive.pm:6724:       Plugins::callHook('item_appeared', {
Network\Receive.pm:1661:                       Plugins::callHook('portal_moved', $actor);
Network\Receive.pm:6754:       Plugins::callHook('item_exists', {
Network\Receive.pm:1665:                       Plugins::callHook('npc_moved', $actor);
Network\Receive.pm:6973:       Plugins::callHook('Network::Receive::map_changed', {
Network\Receive.pm:1668:                       Plugins::callHook('pet_moved', $actor);
Network\Receive.pm:7087:       Plugins::callHook('Network::Receive::map_changed', {
Network\Receive.pm:1708:               Plugins::callHook('self_died');
Network\Receive.pm:7153:               Plugins::callHook('npc_autotalk', {
Network\Receive.pm:1747:               Plugins::callHook('monster_disappeared', {monster => $monster});
Network\Receive.pm:7174:       Plugins::callHook('npc_talk', {
Network\Receive.pm:1778:                       Plugins::callHook('player_disappeared', {player => $player});
Network\Receive.pm:7198:       Plugins::callHook('npc_talk_done', {ID => $ID});
Network\Receive.pm:1798:               Plugins::callHook('portal_disappeared', {portal => $portal});
Network\Receive.pm:7246:               Plugins::callHook('npc_autotalk', {
Network\Receive.pm:1807:               Plugins::callHook('npc_disappeared', {npc => $npc});
Network\Receive.pm:7277:       Plugins::callHook('npc_talk_responses', {
Network\Receive.pm:1815:                Plugins::callHook('pet_disappeared', {pet => $pet});
Network\Receive.pm:7571:       Plugins::callHook("deal_you_added", {id => $id, item => $item});
Network\Receive.pm:1839:                       Plugins::callHook('slave_disappeared', {slave => $slave});
Network\Receive.pm:7697:                Plugins::callHook('add_player_list', $actor);
Network\Receive.pm:1855:                Plugins::callHook('elemental_disappeared', {elemental => $elemental});
Network\Receive.pm:7698:               Plugins::callHook('player', {player => $actor}); #backwards compatibility
Network\Receive.pm:1943:                Plugins::callHook('packet_attack', {sourceID => $args->{sourceID}, targetID => $args->{targetID}, msg => \$msg, dmg => $totalDamage, type => $args->{type}});
Network\Receive.pm:7699:                Plugins::callHook('player_exist', {player => $actor});
Network\Receive.pm:2007:               Plugins::callHook('charNameUpdate', {player => $player});
Network\Receive.pm:7712:                Plugins::callHook('player_disappeared', {player => $player});
Network\Receive.pm:2021:                       Plugins::callHook('mobNameUpdate', {monster => $monster});
Network\Receive.pm:7907:                       Plugins::callHook('packet_partyJoin', { partyName => bytesToString($info->{name}) });
Network\Receive.pm:2039:               Plugins::callHook('npcNameUpdate', {npc => $npc});
Network\Receive.pm:7960:       Plugins::callHook('packet_partyMsg', {
Network\Receive.pm:2052:               Plugins::callHook('petNameUpdate', {pet => $pet});
Network\Receive.pm:8027:       Plugins::callHook("party_invite", {
Network\Receive.pm:2064:               Plugins::callHook('slaveNameUpdate', {slave => $slave});
Network\Receive.pm:8176:       Plugins::callHook('party_users_info_ready');
Network\Receive.pm:2077:               Plugins::callHook('elementalNameUpdate', {elemental => $elemental});
Network\Receive.pm:8273:       Plugins::callHook('rodex_mail_list', {
Network\Receive.pm:2236:        Plugins::callHook('packet_localBroadcast', {
Network\Receive.pm:8346:       Plugins::callHook('rodex_mail', {
Network\Receive.pm:2425:        Plugins::callHook('packet_sysMsg', {
Network\Receive.pm:8360:        Plugins::callHook('rodex_unread_mail');
Network\Receive.pm:2577:               Plugins::callHook('equipped_item', {slot => 'arrow', item => $item});
Network\Receive.pm:8502:        Plugins::callHook('rodex_mail_deleted', {
Network\Receive.pm:2610:               Plugins::callHook('packet_item_removed', {index => $item->{binID}});
Network\Receive.pm:8636:       Plugins::callHook('packet_clanMsg', {
Network\Receive.pm:2648:       Plugins::callHook(
Network\Receive.pm:8832:       Plugins::callHook('cooking_list', {
Network\Receive.pm:2663:               Plugins::callHook(
Network\Receive.pm:8947:               Plugins::callHook("search_store", $universalCatalogInfo);
Network\Receive.pm:2698:        Plugins::callHook(
Network\Receive.pm:8995:       Plugins::callHook('packet_message_string', {
Network\Receive.pm:2715:               Plugins::callHook(
Network\Receive.pm:9017:        Plugins::callHook('packet_charSkills', {
Network\Receive.pm:2958:               Plugins::callHook('pvp_mode', {
Network\Receive.pm:9243:       Plugins::callHook ('captcha_image', $hookArgs);
Network\Receive.pm:2998:        Plugins::callHook('packet_areaSpell', {
Network\Receive.pm:9252:       Plugins::callHook ('captcha_file', $hookArgs);
Network\Receive.pm:3041:       Plugins::callHook('packet_areaSpell', {
Network\Receive.pm:9266:        Plugins::callHook ('captcha_answer', {flag => $args->{flag}});
Network\Receive.pm:3234:                       Plugins::callHook('quest_mission_added', {
Network\Receive.pm:9328:               Plugins::callHook('packet_open_buying_store', {
Network\Receive.pm:3273:                Plugins::callHook('quest_mission_added', {
Network\Receive.pm:9346:               Plugins::callHook('packet_buying', {ID => $ID});
Network\Receive.pm:3327:               Plugins::callHook('quest_mission_updated', {
Network\Receive.pm:9393:                Plugins::callHook('packet_buying_store', {
Network\Receive.pm:3411:       Plugins::callHook('makable_item_list', {
Network\Receive.pm:9418:       Plugins::callHook('packet_buying_store2', {
Network\Receive.pm:3671:                Plugins::callHook('dial');
Network\Receive.pm:9469:               Plugins::callHook('packet_buyer', {ID => $ID});
Network\Receive.pm:3792:        Plugins::callHook('chat_created', {
Network\Receive.pm:9489:                Plugins::callHook("buyer_shop_closed");
Network\Receive.pm:3814:       Plugins::callHook('packet_chatinfo', {
Network\Receive.pm:9541:        Plugins::callHook('packet_special_item_obtain', {
Network\Receive.pm:3854:       Plugins::callHook('chat_modified', {
Network\Receive.pm:9568:               Plugins::callHook('packet_sentPM', {
Network\Receive.pm:3917:                Plugins::callHook('chat_leave');
Network\Receive.pm:9701:               Plugins::callHook('memo_fail', { "field" => $field->baseName });
Network\Receive.pm:3929:       Plugins::callHook('chat_removed', {
Network\Receive.pm:9704:                Plugins::callHook('memo_success', { "field" => $field->baseName });
Network\Receive.pm:3961:               Plugins::callHook("error_deal", { type =>$args->{type}} );
Network\Receive.pm:10201:                                       Plugins::callHook('equipped_item', {slot => $equipSlot_lut{$_}, item => $item});
Network\Receive.pm:3964:               Plugins::callHook("error_deal", { type =>$args->{type}} );
Network\Receive.pm:10229:                                       Plugins::callHook('equipped_item_sw', {slot => $equipSlot_lut{$_}, item => $item});
Network\Receive.pm:3982:               Plugins::callHook("engaged_deal", {name => $currentDeal{name}});
Network\Receive.pm:10407:                               Plugins::callHook('packet_item_removed', {index => $item->{binID}});
Network\Receive.pm:3985:               Plugins::callHook("error_deal", { type =>$args->{type}} );
Network\Receive.pm:10765:               Plugins::callHook('parseMsg/addPrivMsgUser', {
Network\Receive.pm:3988:               Plugins::callHook("error_deal", { type =>$args->{type}} );
Network\Receive.pm:10777:       Plugins::callHook('packet_privMsg', {
Network\Receive.pm:3997:       Plugins::callHook("cancelled_deal");
Network\Receive.pm:10940:       Plugins::callHook('packet_selfChat', {
Network\Receive.pm:4005:       Plugins::callHook("complete_deal");
Network\Receive.pm:11047:       Plugins::callHook('is_casting', {
Network\Receive.pm:4013:               Plugins::callHook("finalized_deal", {name => $currentDeal{name}});
Network\Receive.pm:11118:       Plugins::callHook('packet_castCancelled', {
Network\Receive.pm:4032:       Plugins::callHook("incoming_deal", {name => $user});
Network\Receive.pm:11166:                               Plugins::callHook('unequipped_item', {slot => $equipSlot_lut{$_}, item => $item});
Network\Receive.pm:4126:       Plugins::callHook('packet_emotion', {
Network\Receive.pm:11194:                               Plugins::callHook('unequipped_item_sw', {slot => $equipSlot_lut{$_}, item => $item});
Network\Receive.pm:4135:        Plugins::callHook('disconnected') if ($net->getState() == Network::IN_GAME);
Network\Receive.pm:11227:               Plugins::callHook('packet_vender', {ID => $ID, title => bytesToString($args->{title})});
Network\Receive.pm:4604:       Plugins::callHook('packet_useitem', \%hook_args);
Network\Receive.pm:11260:       Plugins::callHook('packet_charSkills', {
Network\Receive.pm:4874:       Plugins::callHook('Network::Receive::map_changed', {
Network\Receive.pm:11325:       Plugins::callHook('packet_skillfail', {
Network\Receive.pm:4937:       Plugins::callHook('npc_talk_done', {ID => $ID});
Network\Receive.pm:11338:               Plugins::callHook('open_store_success');
Network\Receive.pm:4979:               Plugins::callHook('npc_autotalk', {
Network\Receive.pm:11342:               Plugins::callHook('open_store_fail', { flag => $args->{flag} });
Network\Receive.pm:5010:       Plugins::callHook('npc_talk_responses', {
Network\Receive.pm:11480:       Plugins::callHook("banking_opened");
Network\Receive.pm:5199:               Plugins::callHook('packet_vender', {ID => $ID, title => bytesToString($args->{title})});
Network\Receive.pm:11496:               Plugins::callHook("banking_deposit_success");
Network\Receive.pm:5225:               Plugins::callHook('add_player_list', $actor);
Network\Receive.pm:11505:      Plugins::callHook("banking_deposit_failed", {'reason' => $args->{reason}});
Network\Receive.pm:5246:               Plugins::callHook('player_disappeared', {player => $player});
Network\Receive.pm:11520:               Plugins::callHook("banking_withdraw_success");
Network\Receive.pm:5416:                        Plugins::callHook('packet_partyJoin', { partyName => $info->{name} });
Network\Receive.pm:11527:       Plugins::callHook("banking_withdraw_failed", {'reason' => $args->{reason}});
Network\Receive.pm:5467:       Plugins::callHook('packet_partyMsg', {
Network\Receive.pm:11546:       Plugins::callHook('navigate_to', $args);
Network\Receive.pm:6068:        Plugins::callHook('packet_clanMsg', {
Network\Receive.pm:6164:        Plugins::callHook('cooking_list', {
Network\Send\ServerType1.pm:37: Plugins::callHook('packet_pre/sendAttack', \%args) if ($flag == 0 || $flag == 7);
Network\Send\ServerType1.pm:37: Plugins::callHook('packet_pre/sendAttack', \%args) if ($flag == 0 || $flag == 7);
Network\Send\ServerType1.pm:38: Plugins::callHook('packet_pre/sendSit', \%args) if ($flag == 2 || $flag == 3);
Network\Send\ServerType1.pm:38: Plugins::callHook('packet_pre/sendSit', \%args) if ($flag == 2 || $flag == 3);
Line 340: Line 348:
Network\Send\ServerType2.pm:44: Plugins::callHook('packet_pre/sendAttack', \%args) if ($flag == 0 || $flag == 7);
Network\Send\ServerType2.pm:44: Plugins::callHook('packet_pre/sendAttack', \%args) if ($flag == 0 || $flag == 7);
Network\Send\ServerType2.pm:45: Plugins::callHook('packet_pre/sendSit', \%args) if ($flag == 2 || $flag == 3);
Network\Send\ServerType2.pm:45: Plugins::callHook('packet_pre/sendSit', \%args) if ($flag == 2 || $flag == 3);
Network\Send\ServerType3.pm:44: Plugins::callHook('packet_pre/sendAttack', \%args) if ($flag == 0 || $flag == 7);
Network\Send\ServerType3.pm:59: Plugins::callHook('packet_pre/sendAttack', \%args) if ($flag == 0 || $flag == 7);
Network\Send\ServerType3.pm:45: Plugins::callHook('packet_pre/sendSit', \%args) if ($flag == 2 || $flag == 3);
Network\Send\ServerType3.pm:60: Plugins::callHook('packet_pre/sendSit', \%args) if ($flag == 2 || $flag == 3);
Network\Send\ServerType4.pm:44: Plugins::callHook('packet_pre/sendAttack', \%args) if ($flag == 0 || $flag == 7);
Network\Send\ServerType4.pm:45: Plugins::callHook('packet_pre/sendAttack', \%args) if ($flag == 0 || $flag == 7);
Network\Send\ServerType4.pm:45: Plugins::callHook('packet_pre/sendSit', \%args) if ($flag == 2 || $flag == 3);
Network\Send\ServerType4.pm:46: Plugins::callHook('packet_pre/sendSit', \%args) if ($flag == 2 || $flag == 3);
Network\Send\ServerType5.pm:43: Plugins::callHook('packet_pre/sendAttack', \%args) if ($flag == 0 || $flag == 7);
Network\Send\ServerType5.pm:57: Plugins::callHook('packet_pre/sendAttack', \%args) if ($flag == 0 || $flag == 7);
Network\Send\ServerType5.pm:44: Plugins::callHook('packet_pre/sendSit', \%args) if ($flag == 2 || $flag == 3);
Network\Send\ServerType5.pm:58: Plugins::callHook('packet_pre/sendSit', \%args) if ($flag == 2 || $flag == 3);
Network\Send\ServerType6.pm:36: Plugins::callHook('packet_pre/sendAttack', \%args) if ($flag == 0 || $flag == 7);
Network\Send\ServerType6.pm:36: Plugins::callHook('packet_pre/sendAttack', \%args) if ($flag == 0 || $flag == 7);
Network\Send\ServerType6.pm:37: Plugins::callHook('packet_pre/sendSit', \%args) if ($flag == 2 || $flag == 3);
Network\Send\ServerType6.pm:37: Plugins::callHook('packet_pre/sendSit', \%args) if ($flag == 2 || $flag == 3);
Line 352: Line 360:
Network\Send\ServerType7.pm:73: Plugins::callHook('packet_pre/sendStand', \%args);
Network\Send\ServerType7.pm:73: Plugins::callHook('packet_pre/sendStand', \%args);
Network\Send\ServerType7.pm:96: Plugins::callHook('packet_pre/sendSkillUse', \%args);
Network\Send\ServerType7.pm:96: Plugins::callHook('packet_pre/sendSkillUse', \%args);
Network\Send\ServerType8.pm:50: Plugins::callHook('packet_pre/sendAttack', \%args) if ($flag == 0 || $flag == 7);
Network\Send\ServerType8.pm:65: Plugins::callHook('packet_pre/sendAttack', \%args) if ($flag == 0 || $flag == 7);
Network\Send\ServerType8.pm:51: Plugins::callHook('packet_pre/sendSit', \%args) if ($flag == 2 || $flag == 3);
Network\Send\ServerType8.pm:66: Plugins::callHook('packet_pre/sendSit', \%args) if ($flag == 2 || $flag == 3);
Network\Send\ServerType8.pm:70: Plugins::callHook('packet_pre/sendAttack', \%args);
Network\Send\ServerType8.pm:85: Plugins::callHook('packet_pre/sendAttack', \%args);
Network\Send\ServerType8.pm:88: Plugins::callHook('packet_pre/sendStand', \%args);
Network\Send\ServerType8.pm:103:       Plugins::callHook('packet_pre/sendStand', \%args);
Network\Send\ServerType8.pm:105:        Plugins::callHook('packet_pre/sendSit', \%args);
Network\Send\ServerType8.pm:120:        Plugins::callHook('packet_pre/sendSit', \%args);
Network\Send\ServerType8.pm:125:        Plugins::callHook('packet_pre/sendSkillUse', \%args);
Network\Send\ServerType8.pm:140:        Plugins::callHook('packet_pre/sendSkillUse', \%args);
Network\Send\ServerType8_1.pm:39:      Plugins::callHook('packet_pre/sendAttack', \%args);
Network\Send\ServerType8_1.pm:54:      Plugins::callHook('packet_pre/sendAttack', \%args);
Network\Send\ServerType8_1.pm:126:      Plugins::callHook('packet_pre/sendSit', \%args);
Network\Send\ServerType8_1.pm:141:      Plugins::callHook('packet_pre/sendSit', \%args);
Network\Send\ServerType8_1.pm:145:      Plugins::callHook('packet_pre/sendStand', \%args);
Network\Send\ServerType8_1.pm:160:      Plugins::callHook('packet_pre/sendStand', \%args);
Network\Send\ServerType8_1.pm:167:      Plugins::callHook('packet_pre/sendSkillUse', \%args);
Network\Send\ServerType8_1.pm:182:      Plugins::callHook('packet_pre/sendSkillUse', \%args);
Network\Send\ServerType8_3.pm:48:      Plugins::callHook('packet_pre/sendSit', \%args);
Network\Send\ServerType8_3.pm:48:      Plugins::callHook('packet_pre/sendSit', \%args);
Network\Send\ServerType8_3.pm:66:      Plugins::callHook('packet_pre/sendAttack', \%args);
Network\Send\ServerType8_3.pm:66:      Plugins::callHook('packet_pre/sendAttack', \%args);
Network\Send\ServerType8_3.pm:94:      Plugins::callHook('packet_pre/sendStand', \%args);
Network\Send\ServerType8_3.pm:94:      Plugins::callHook('packet_pre/sendStand', \%args);
Network\Send\ServerType8_5.pm:42:      Plugins::callHook('packet_pre/sendSkillUse', \%args);
Network\Send\ServerType8_5.pm:46:      Plugins::callHook('packet_pre/sendSkillUse', \%args);
Network\Send\ServerType8_5.pm:176:      Plugins::callHook('packet_pre/sendAttack', \%args);
Network\Send\ServerType8_5.pm:180:      Plugins::callHook('packet_pre/sendAttack', \%args);
Network\Send.pm:241:            Plugins::callHook($hookName, \%args);
Network\Send.pm:245:            Plugins::callHook($hookName, \%args);
Network\Send.pm:461:    Plugins::callHook('packet/sendMapLoaded');
Network\Send.pm:487:    Plugins::callHook('packet/sendMapLoaded');
Network\Send.pm:501:    Plugins::callHook('packet_pre/sendAttack', \%args) if $flag == ACTION_ATTACK || $flag == ACTION_ATTACK_REPEAT;
Network\Send.pm:536:    Plugins::callHook('packet_pre/sendAttack', \%args) if $flag == ACTION_ATTACK || $flag == ACTION_ATTACK_REPEAT;
Network\Send.pm:502:    Plugins::callHook('packet_pre/sendSit', \%args) if $flag == ACTION_SIT || $flag == ACTION_STAND;
Network\Send.pm:537:    Plugins::callHook('packet_pre/sendSit', \%args) if $flag == ACTION_SIT || $flag == ACTION_STAND;
Network\Send.pm:753:    Plugins::callHook('packet_pre/sendSkillUse', \%args);
Network\Send.pm:819:    Plugins::callHook('packet_pre/sendSkillUse', \%args);
Network\XKore.pm:123:  Plugins::callHook("Network::serverSend/pre", { msg => \$msg });
Network\XKore.pm:120:  Plugins::callHook("Network::serverSend/pre", { msg => \$msg });
Network\XKore.pm:143:          Plugins::callHook('Network::stateChanged');
Network\XKore.pm:140:          Plugins::callHook('Network::stateChanged');
Network\XKore.pm:246:          Plugins::callHook('disconnected');
Network\XKore.pm:243:          Plugins::callHook('disconnected');
Network\XKore.pm:267:  Plugins::callHook('XKore_start');
Network\XKore.pm:264:  Plugins::callHook('XKore_start');
Plugins.pm:288:# Add a hook for $hookname. Whenever Kore calls Plugins::callHook('foo'),
Plugins.pm:291:# See also Plugins::callHook() for information about how callback is called.
Plugins.pm:307:#    Plugins::callHook('AI_pre');  # <-- ai_called() is now also called.
Plugins.pm:415:# void Plugins::callHook(String hookName, [argument])
Plugins.pm:420:# Adding or removing callbacks during callHook will not affect the current call.
Plugins.pm:428:sub callHook {
Plugins.pm:428:sub callHook {
Poseidon\Client.pm:82:  Plugins::callHook('Poseidon/client_authenticate', {
Poseidon\Client.pm:82:  Plugins::callHook('Poseidon/client_authenticate', {
Poseidon\QueryServer.pm:77:    Plugins::callHook('Poseidon/server_authenticate', {
Poseidon\QueryServer.pm:77:    Plugins::callHook('Poseidon/server_authenticate', {
Settings.pm:341:        Plugins::callHook( usage => $data );
Settings.pm:344:        Plugins::callHook( usage => $data );
Settings.pm:495:        Plugins::callHook('pre_load_'.$internalFilename, $pre_load);
Settings.pm:498:        Plugins::callHook('pre_load_'.$internalFilename, $pre_load);
Settings.pm:543:                Plugins::callHook('load_'.$internalFilename, $load);
Settings.pm:546:                Plugins::callHook('load_'.$internalFilename, $load);
Settings.pm:548:                Plugins::callHook('pos_load_'.$internalFilename, $pos_load);
Settings.pm:551:                Plugins::callHook('pos_load_'.$internalFilename, $pos_load);
Settings.pm:550:                Plugins::callHook('load_'.$internalFilename, $load);
Settings.pm:553:                Plugins::callHook('load_'.$internalFilename, $load);
Settings.pm:554:                Plugins::callHook('pos_load_'.$internalFilename, $pos_load);
Settings.pm:557:                Plugins::callHook('pos_load_'.$internalFilename, $pos_load);
Settings.pm:595:    Plugins::callHook('preloadfiles', {files => $files});
Settings.pm:599:    Plugins::callHook('preloadfiles', {files => $files});
Settings.pm:599:        Plugins::callHook('loadfiles', {files => $files, current => $i});
Settings.pm:603:        Plugins::callHook('loadfiles', {files => $files, current => $i});
Settings.pm:604:    Plugins::callHook('postloadfiles', {files => $files});
Settings.pm:608:    Plugins::callHook('postloadfiles', {files => $files});
Task\MapRoute.pm:358:                          Plugins::callHook('Task::MapRoute::iterate::missing_portal', \%plugin_args);
Task\MapRoute.pm:369:                          Plugins::callHook('Task::MapRoute::iterate::missing_portal', \%plugin_args);
Task\MapRoute.pm:435:                                  Plugins::callHook('Task::MapRoute::iterate::route_portal_near', \%plugin_args);
Task\MapRoute.pm:446:                                  Plugins::callHook('Task::MapRoute::iterate::route_portal_near', \%plugin_args);
Task\Route.pm:236:                      Plugins::callHook('route', {status => 'success'});
Task\Route.pm:299:                      Plugins::callHook('route', {status => 'success'});
Task\Route.pm:274:                             Plugins::callHook('route', {status => 'stuck'});
Task\Route.pm:400:                      Plugins::callHook('route', {status => 'success'});
Task\Route.pm:350:                              Plugins::callHook('route', {status => 'success'});
Task\Route.pm:412:                     Plugins::callHook('route', {status => 'success'});
Task\Route.pm:455:                              Plugins::callHook('route', {status => 'stuck'});
test\PluginsHookTest.pm:29:    Plugins::callHook('hook2');
test\PluginsHookTest.pm:29:    Plugins::callHook('hook2');
test\PluginsHookTest.pm:31:    Plugins::callHook('hook1');
test\PluginsHookTest.pm:31:    Plugins::callHook('hook1');
Line 416: Line 430:
test\PluginsHookTest.pm:171:    Plugins::callHook( 'del_during_call' );
test\PluginsHookTest.pm:171:    Plugins::callHook( 'del_during_call' );
test\PluginsHookTest.pm:176:    Plugins::callHook( 'del_during_call' );
test\PluginsHookTest.pm:176:    Plugins::callHook( 'del_during_call' );
Utils\PathFinding.pm:101:      Plugins::callHook("PathFindingReset", \%hookArgs);
Utils\PathFinding.pm:103:      Plugins::callHook("PathFindingReset", \%hookArgs);</pre>
</pre>


[[Category:Development]]
[[Category:Development]]

Revision as of 16:38, 23 July 2021

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

openkore/trunk$ find src -name .svn -prune -o -exec grep -Hn "^[^#]*callHook" {} \;

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.

functions.pl:74:                Plugins::callHook('mainLoop_pre');
functions.pl:76:                Plugins::callHook('mainLoop_post');
functions.pl:83:                Plugins::callHook('start');
functions.pl:136:       Plugins::callHook( 'parse_command_line' );
functions.pl:378:       Plugins::callHook('start2');
functions.pl:402:       Plugins::callHook('start3');
functions.pl:645:       Plugins::callHook('initialized');
functions.pl:804:       Plugins::callHook('packet_mapChange');
functions.pl:1013:      Plugins::callHook('mainLoop::setTitle',\%args);
Actor\Item.pm:520:      Plugins::callHook( 'get_item_weight', $self ) if !defined $self->{weight};
Actor\You.pm:262:       Plugins::callHook('attack_start', {ID => $targetID});
Actor.pm:579:   Plugins::callHook('Actor::setStatus::change', {
AI\Attack.pm:181:               Plugins::callHook("target_died", {monster => $monsters_old{$ID}});
AI\Attack.pm:222:       Plugins::callHook('attack_end', {ID => $ID})
AI\Attack.pm:592:       Plugins::callHook('AI::Attack::main', {target => $target})
AI\CoreLogic.pm:57:     Plugins::callHook('AI_start', {state => AI::state});
AI\CoreLogic.pm:68:     Plugins::callHook('AI_pre/manual');
AI\CoreLogic.pm:118:    Plugins::callHook('AI_pre');
AI\CoreLogic.pm:218:    Plugins::callHook('AI_post');
AI\CoreLogic.pm:548:            Plugins::callHook('portal_exist2', {
AI\CoreLogic.pm:573:            Plugins::callHook('portal_exist2', {
AI\CoreLogic.pm:1227:                                           Plugins::callHook("AI_storage_item_out_of_stock",  {
AI\CoreLogic.pm:1404:                   Plugins::callHook("AI_storage_open", \%pluginArgs); # we can hook here to perform actions BEFORE any storage function
AI\CoreLogic.pm:1419:                                   Plugins::callHook("AI_storage_full", \%pluginArgs);
AI\CoreLogic.pm:1443:                                                   Plugins::callHook("AI_storage_item_full", {
AI\CoreLogic.pm:1504:                                   Plugins::callHook("AI_storage_done", \%hookArgs);
AI\CoreLogic.pm:1588:                                           Plugins::callHook("AI_storage_item_out_of_stock",  {
AI\CoreLogic.pm:1785:                   Plugins::callHook("AI_sell_auto");
AI\CoreLogic.pm:1814:                   Plugins::callHook('AI_sell_auto_done');
AI\CoreLogic.pm:1871:           Plugins::callHook('AI_buy_auto_done');
AI\CoreLogic.pm:1880:           Plugins::callHook('AI_buy_auto');
AI\CoreLogic.pm:2191:                   Plugins::callHook("AI/lockMap", \%args);
AI\CoreLogic.pm:2587:   Plugins::callHook("ai_follow", $args);
AI\CoreLogic.pm:3082:                                   Plugins::callHook("checkMonsterAutoAttack", \%hookArgs);
AI\Slave.pm:367:                        Plugins::callHook("homonulus_target_died");
AI.pm:97:               Plugins::callHook('AI_state_change', {old => $AI, new => $_[0]});
ChatQueue.pm:64:        Plugins::callHook('ChatQueue::add', \%item);
ChatQueue.pm:616:       Plugins::callHook('ChatQueue::processChatResponse', $cmd);
Commands.pm:857:                        Plugins::callHook("Commands::run/pre", \%params);
Commands.pm:859:                        Plugins::callHook("Commands::run/post", \%params);
Commands.pm:863:                        Plugins::callHook('Command_post', \%params);
Commands.pm:2078:               Plugins::callHook('Commands::cmdConf', {
FileParsers.pm:784:     Plugins::callHook("FileParsers::ROLUT", \%ret);
FileParsers.pm:811:     Plugins::callHook("FileParsers::RODescLUT", \%ret);
FileParsers.pm:861:     Plugins::callHook ('FileParsers::ROQuestsLUT', \%ret);
FileParsers.pm:1480:    Plugins::callHook('updatePortalLUT', $plugin_args);
FileParsers.pm:1494:    Plugins::callHook('updatePortalLUT2', $plugin_args);
Interface\Console\Curses.pm:683:        Plugins::callHook( 'curses/updateStatus' );
Interface\Console\Curses.pm:808:        Plugins::callHook( 'curses/updateObjects' );
InventoryList\Cart.pm:41:               Plugins::callHook('cart_ready');
InventoryList\Cart.pm:43:               Plugins::callHook('cart_info_updated');
InventoryList\Cart.pm:102:              Plugins::callHook('cart_ready');
InventoryList\Inventory.pm:41:          Plugins::callHook('inventory_ready');
InventoryList\Inventory.pm:71:                  Plugins::callHook('inventory_ready');
InventoryList\Storage.pm:44:                    Plugins::callHook('storage_first_session_openning');
InventoryList\Storage.pm:46:            Plugins::callHook('packet_storage_open');
InventoryList\Storage.pm:53:    Plugins::callHook('packet_storage_close');
InventoryList\Storage.pm:89:            Plugins::callHook('storage_ready');
Misc.pm:312:    Plugins::callHook('configModify', {
Misc.pm:363:            Plugins::callHook('configModify', {
Misc.pm:403:    Plugins::callHook('setTimeout', {
Misc.pm:1530:   Plugins::callHook('charSelectScreen', \%plugin_args);
Misc.pm:2274:   Plugins::callHook('inventory_item_removed', {item => $item, index => $binID, amount => $amount, remaining => ($item->{amount} <= 0 ? 0 : $item->{amount})});
Misc.pm:2293:   Plugins::callHook('storage_item_removed', {item => $item, index => $binID, amount => $amount, remaining => ($item->{amount} <= 0 ? 0 : $item->{amount})});
Misc.pm:2312:   Plugins::callHook('cart_item_removed', {item => $item, index => $binID, amount => $amount, remaining => ($item->{amount} <= 0 ? 0 : $item->{amount})});
Misc.pm:2941:   Plugins::callHook('objectAdded', {
Misc.pm:2958:   Plugins::callHook('objectRemoved', {
Misc.pm:3350:   Plugins::callHook('changed_status',{actor => $actor, changed => $changed});
Misc.pm:3359:                   # Plugins::callHook('perfect_hidden_player',undef);
Misc.pm:3360:                   Plugins::callHook('perfect_hidden_player',{actor => $actor, changed => $changed});
Misc.pm:3372:                   Plugins::callHook('perfect_hidden_npc',{actor => $actor, changed => $changed});
Misc.pm:3833:           Plugins::callHook('teleport_sent', \%args);
Misc.pm:3839:           Plugins::callHook('teleport_sent', \%args);
Misc.pm:3871:                           Plugins::callHook('teleport_sent', \%args);
Misc.pm:3880:                           Plugins::callHook('teleport_sent', \%args);
Misc.pm:3890:                   Plugins::callHook('teleport_sent', \%args);
Misc.pm:3902:                   Plugins::callHook('teleport_sent', \%args);
Misc.pm:3961:                   Plugins::callHook('teleport_sent', \%args);
Misc.pm:4349:           Plugins::callHook('avoidGM_near', \%args);
Misc.pm:4401:   Plugins::callHook('avoidGM_talk', \%args);
Misc.pm:4440:           Plugins::callHook('avoidList_near', \%args);
Misc.pm:5088:   Plugins::callHook("checkSelfCondition", \%hookArgs);
Misc.pm:5240:   Plugins::callHook('checkPlayerCondition', \%args);
Misc.pm:5315:   Plugins::callHook('checkMonsterCondition', \%args);
Misc.pm:5405:   Plugins::callHook ('open_shop', {title => $shop{title}, items => \@items});
Misc.pm:5419:   Plugins::callHook("shop_closed");
Misc.pm:5514:   Plugins::callHook ('buyer_open_shop', {title => $buyer_shop{title}, limitZeny=> $limitZeny, items => \@items});
Misc.pm:5531:   Plugins::callHook("buyer_shop_closed");
Network\ClientReceive.pm:75:    Plugins::callHook('map_loaded');
Network\DirectConnection.pm:140:        Plugins::callHook('Network::connectTo', {
Network\DirectConnection.pm:173:                        Plugins::callHook("Network::serverSend/pre", { msg => \$msg });
Network\DirectConnection.pm:178:                                Plugins::callHook("Network::serverSend", { msg => $msg });
Network\DirectConnection.pm:196:                Plugins::callHook("Network::serverRecv", { msg => \$msg });
Network\DirectConnection.pm:245:                        Plugins::callHook("serverDisconnect/fail");
Network\DirectConnection.pm:248:                        Plugins::callHook("serverDisconnect/success");
Network\DirectConnection.pm:260:        Plugins::callHook('Network::stateChanged');
Network\DirectConnection.pm:274:        Plugins::callHook('Network::clientAlive', \%args);
Network\DirectConnection.pm:286:                Plugins::callHook('Network::clientSend', \%args);
Network\DirectConnection.pm:301:                Plugins::callHook('Network::clientRecv', \%args);
Network\DirectConnection.pm:355:                        Plugins::callHook("Network::serverConnect/master");
Network\DirectConnection.pm:486:                Plugins::callHook("Network::serverConnect/special");
Network\DirectConnection.pm:526:                                Plugins::callHook("Network::serverConnect/char");
Network\DirectConnection.pm:562:                                Plugins::callHook("Network::serverConnect/charselect");
Network\DirectConnection.pm:600:                                Plugins::callHook("Network::serverConnect/mapserver");
Network\DirectConnection.pm:618:                        Plugins::callHook('disconnected');
Network\DirectConnection.pm:633:                        Plugins::callHook('disconnected');
Network\PacketParser.pm:272:                    Plugins::callHook("packet_pre/$handler->[0]", \%args);
Network\PacketParser.pm:274:                    Plugins::callHook("$self->{hook_prefix}/packet_pre/$handler->[0]", \%args);
Network\PacketParser.pm:289:            Plugins::callHook("packet/$handler->[0]", \%args);
Network\PacketParser.pm:291:            Plugins::callHook("$self->{hook_prefix}/packet/$handler->[0]", \%args);
Network\PacketParser.pm:368:            Plugins::callHook("$self->{hook_prefix}/willMangle", \%args);
Network\PacketParser.pm:390:    Plugins::callHook("$self->{hook_prefix}/mangle", \%hook_args);
Network\PacketParser.pm:494:    Plugins::callHook($hook, {switch => $switch, msg => $msg, msg_size => length($msg), realMsg => \$msg});
Network\Receive\kRO\Sakexe_0.pm:972:            Plugins::callHook($args->{hook}, {index => $index, item => $local_item});
Network\Receive\kRO\Sakexe_0.pm:1019:   Plugins::callHook('packet_guildMsg', {
Network\Receive\kRO\Sakexe_0.pm:1072:   Plugins::callHook('item_skill', {
Network\Receive\kRO\Sakexe_0.pm:1123:   Plugins::callHook('packet_pubMsg', {
Network\Receive\kRO\Sakexe_0.pm:1139:           Plugins::callHook('packet_sentPM', {
Network\Receive\kRO\Sakexe_0.pm:1172:           Plugins::callHook('pvp_mode', {
Network\Receive\kRO\Sakexe_0.pm:1188:           Plugins::callHook('pvp_mode', {
Network\Receive\kRO\Sakexe_0.pm:1263:   Plugins::callHook('packet_skilluse', {
Network\Receive\kRO\Sakexe_0.pm:1302:   Plugins::callHook('packet_skilluse', {
Network\Receive\kRO\Sakexe_0.pm:1380:   Plugins::callHook('packet_skilluse', {
Network\Receive\kRO\Sakexe_0.pm:1432:           Plugins::callHook($hook, {
Network\Receive\ServerType0.pm:1011:            Plugins::callHook($args->{hook}, {index => $index, item => $local_item});
Network\Receive\ServerType0.pm:1060:    Plugins::callHook('packet_guildMsg', {
Network\Receive\ServerType0.pm:1113:    Plugins::callHook('item_skill', {
Network\Receive\ServerType0.pm:1164:    Plugins::callHook('packet_pubMsg', {
Network\Receive\ServerType0.pm:1194:            Plugins::callHook('pvp_mode', {
Network\Receive\ServerType0.pm:1211:            Plugins::callHook('pvp_mode', {
Network\Receive\ServerType0.pm:1291:    Plugins::callHook('packet_skilluse', {
Network\Receive\ServerType0.pm:1338:    Plugins::callHook('packet_skilluse', {
Network\Receive\ServerType0.pm:1423:    Plugins::callHook('packet_skilluse', {
Network\Receive\ServerType0.pm:1467:            Plugins::callHook($hook, {
Network\Receive\twRO.pm:97:             Plugins::callHook($hook, {
Network\Receive.pm:770: Plugins::callHook('parseMsg/recvChars', $args->{options});
Network\Receive.pm:918: Plugins::callHook('char_created', {     char => $character });
Network\Receive.pm:1205:        Plugins::callHook('in_game');
Network\Receive.pm:1247:        Plugins::callHook('disconnected');
Network\Receive.pm:1347:                Plugins::callHook('exp_gained');
Network\Receive.pm:1403:                Plugins::callHook('base_level_changed', {
Network\Receive.pm:1436:                Plugins::callHook('zeny_change', {
Network\Receive.pm:1507:                Plugins::callHook('job_level_changed', {
Network\Receive.pm:1625:        Plugins::callHook('packet_charStats', {
Network\Receive.pm:1725:        Plugins::callHook('packet_pre/actor_display', $args);
Network\Receive.pm:1727:        Plugins::callHook('packet/actor_display', $args);
Network\Receive.pm:2076:                        Plugins::callHook('add_player_list', $actor);
Network\Receive.pm:2080:                        Plugins::callHook('add_monster_list', $actor);
Network\Receive.pm:2084:                        Plugins::callHook('add_pet_list', $actor);
Network\Receive.pm:2088:                        Plugins::callHook('add_portal_list', $actor);
Network\Receive.pm:2097:                        Plugins::callHook('add_npc_list', $actor);
Network\Receive.pm:2101:                        Plugins::callHook('add_slave_list', $actor);
Network\Receive.pm:2104:                        Plugins::callHook('add_elemental_list', $actor);
Network\Receive.pm:2125:                        Plugins::callHook('player', {player => $actor});  #backwards compatibility
Network\Receive.pm:2127:                        Plugins::callHook('player_exist', {player => $actor});
Network\Receive.pm:2131:                        Plugins::callHook('npc_exist', {npc => $actor});
Network\Receive.pm:2135:                        Plugins::callHook('portal_exist', {portal => $actor});
Network\Receive.pm:2170:                        Plugins::callHook('player', {player => $actor});  #backwards compatibailty
Network\Receive.pm:2172:                        Plugins::callHook('player_connected', {player => $actor});
Network\Receive.pm:2200:                        Plugins::callHook('player_moved', $actor);
Network\Receive.pm:2203:                        Plugins::callHook('monster_moved', $actor);
Network\Receive.pm:2206:                        Plugins::callHook('pet_moved', $actor);
Network\Receive.pm:2209:                        Plugins::callHook('slave_moved', $actor);
Network\Receive.pm:2213:                        Plugins::callHook('portal_moved', $actor);
Network\Receive.pm:2217:                        Plugins::callHook('npc_moved', $actor);
Network\Receive.pm:2220:                        Plugins::callHook('pet_moved', $actor);
Network\Receive.pm:2268:                Plugins::callHook('self_died');
Network\Receive.pm:2307:                Plugins::callHook('monster_disappeared', {monster => $monster});
Network\Receive.pm:2343:                        Plugins::callHook('player_disappeared', {player => $player});
Network\Receive.pm:2363:                Plugins::callHook('portal_disappeared', {portal => $portal});
Network\Receive.pm:2372:                Plugins::callHook('npc_disappeared', {npc => $npc});
Network\Receive.pm:2380:                Plugins::callHook('pet_disappeared', {pet => $pet});
Network\Receive.pm:2404:                        Plugins::callHook('slave_disappeared', {slave => $slave});
Network\Receive.pm:2420:                Plugins::callHook('elemental_disappeared', {elemental => $elemental});
Network\Receive.pm:2508:                Plugins::callHook('packet_attack', {sourceID => $args->{sourceID}, targetID => $args->{targetID}, msg => \$msg, dmg => $totalDamage, type => $args->{type}});
Network\Receive.pm:2573:                Plugins::callHook('charNameUpdate', {player => $player});
Network\Receive.pm:2585:                        Plugins::callHook('mobNameUpdate', {monster => $monster});
Network\Receive.pm:2603:                Plugins::callHook('npcNameUpdate', {npc => $npc});
Network\Receive.pm:2615:                Plugins::callHook('petNameUpdate', {pet => $pet});
Network\Receive.pm:2626:                Plugins::callHook('slaveNameUpdate', {slave => $slave});
Network\Receive.pm:2638:                Plugins::callHook('elementalNameUpdate', {elemental => $elemental});
Network\Receive.pm:2665:                Plugins::callHook('base_level', {name => $actor});
Network\Receive.pm:2668:                Plugins::callHook('job_level', {name => $actor});
Network\Receive.pm:2929:        Plugins::callHook('packet_localBroadcast', {
Network\Receive.pm:3167:                Plugins::callHook('show_script', {
Network\Receive.pm:3298:        Plugins::callHook('packet_sysMsg', {
Network\Receive.pm:3450:                Plugins::callHook('equipped_item', {slot => 'arrow', item => $item});
Network\Receive.pm:3502:                Plugins::callHook('item_gathered',{item => $item->{name}, amount => $amount});
Network\Receive.pm:3563:                Plugins::callHook('packet_item_removed', {index => $item->{binID}});
Network\Receive.pm:3575:                Plugins::callHook('rental_expired', {
Network\Receive.pm:3616:        Plugins::callHook(
Network\Receive.pm:3631:                Plugins::callHook(
Network\Receive.pm:3666:        Plugins::callHook(
Network\Receive.pm:3683:                Plugins::callHook(
Network\Receive.pm:3761:                Plugins::callHook('packet_vender_store', { item => $item });
Network\Receive.pm:3776:        Plugins::callHook('packet_vender_store2', {
Network\Receive.pm:4060:                Plugins::callHook('pvp_mode', {
Network\Receive.pm:4104:        Plugins::callHook('packet_areaSpell', {
Network\Receive.pm:4151:        Plugins::callHook('packet_areaSpell', {
Network\Receive.pm:4200:        Plugins::callHook('packet_areaSpell', {
Network\Receive.pm:4472:            Plugins::callHook('quest_mission_added', {
Network\Receive.pm:4479:        Plugins::callHook('quest_list');
Network\Receive.pm:4532:            Plugins::callHook('quest_mission_added', {
Network\Receive.pm:4600:                Plugins::callHook('quest_mission_added', {
Network\Receive.pm:4606:    Plugins::callHook('quest_added', {
Network\Receive.pm:4701:                Plugins::callHook('quest_mission_updated', {
Network\Receive.pm:4794:        Plugins::callHook('makable_item_list', {
Network\Receive.pm:5130:                Plugins::callHook('invalid_password');
Network\Receive.pm:5158:                Plugins::callHook('dial');
Network\Receive.pm:5177:                Plugins::callHook('invalid_password');
Network\Receive.pm:5342:        Plugins::callHook('chat_created', {
Network\Receive.pm:5371:        Plugins::callHook('packet_chatinfo', {
Network\Receive.pm:5415:        Plugins::callHook('chat_joined', {
Network\Receive.pm:5482:        Plugins::callHook('chat_modified', {
Network\Receive.pm:5557:                Plugins::callHook('chat_leave');
Network\Receive.pm:5571:        Plugins::callHook('chat_removed', {
Network\Receive.pm:5603:                Plugins::callHook("error_deal", { type =>$args->{type}} );
Network\Receive.pm:5606:                Plugins::callHook("error_deal", { type =>$args->{type}} );
Network\Receive.pm:5624:                Plugins::callHook("engaged_deal", {name => $currentDeal{name}});
Network\Receive.pm:5627:                Plugins::callHook("error_deal", { type =>$args->{type}} );
Network\Receive.pm:5630:                Plugins::callHook("error_deal", { type =>$args->{type}} );
Network\Receive.pm:5639:        Plugins::callHook("cancelled_deal");
Network\Receive.pm:5647:        Plugins::callHook("complete_deal");
Network\Receive.pm:5655:                Plugins::callHook("finalized_deal", {name => $currentDeal{name}});
Network\Receive.pm:5674:        Plugins::callHook("incoming_deal", {
Network\Receive.pm:5772:        Plugins::callHook('packet_emotion', {
Network\Receive.pm:5815:        Plugins::callHook('disconnected') if ($net->getState() == Network::IN_GAME);
Network\Receive.pm:5955:        Plugins::callHook("friend_request", {
Network\Receive.pm:6677:        Plugins::callHook('packet_useitem', \%hook_args);
Network\Receive.pm:6724:        Plugins::callHook('item_appeared', {
Network\Receive.pm:6754:        Plugins::callHook('item_exists', {
Network\Receive.pm:6973:        Plugins::callHook('Network::Receive::map_changed', {
Network\Receive.pm:7087:        Plugins::callHook('Network::Receive::map_changed', {
Network\Receive.pm:7153:                Plugins::callHook('npc_autotalk', {
Network\Receive.pm:7174:        Plugins::callHook('npc_talk', {
Network\Receive.pm:7198:        Plugins::callHook('npc_talk_done', {ID => $ID});
Network\Receive.pm:7246:                Plugins::callHook('npc_autotalk', {
Network\Receive.pm:7277:        Plugins::callHook('npc_talk_responses', {
Network\Receive.pm:7571:        Plugins::callHook("deal_you_added", {id => $id, item => $item});
Network\Receive.pm:7697:                Plugins::callHook('add_player_list', $actor);
Network\Receive.pm:7698:                Plugins::callHook('player', {player => $actor});  #backwards compatibility
Network\Receive.pm:7699:                Plugins::callHook('player_exist', {player => $actor});
Network\Receive.pm:7712:                Plugins::callHook('player_disappeared', {player => $player});
Network\Receive.pm:7907:                        Plugins::callHook('packet_partyJoin', { partyName => bytesToString($info->{name}) });
Network\Receive.pm:7960:        Plugins::callHook('packet_partyMsg', {
Network\Receive.pm:8027:        Plugins::callHook("party_invite", {
Network\Receive.pm:8176:        Plugins::callHook('party_users_info_ready');
Network\Receive.pm:8273:        Plugins::callHook('rodex_mail_list', {
Network\Receive.pm:8346:        Plugins::callHook('rodex_mail', {
Network\Receive.pm:8360:        Plugins::callHook('rodex_unread_mail');
Network\Receive.pm:8502:        Plugins::callHook('rodex_mail_deleted', {
Network\Receive.pm:8636:        Plugins::callHook('packet_clanMsg', {
Network\Receive.pm:8832:        Plugins::callHook('cooking_list', {
Network\Receive.pm:8947:                Plugins::callHook("search_store", $universalCatalogInfo);
Network\Receive.pm:8995:        Plugins::callHook('packet_message_string', {
Network\Receive.pm:9017:        Plugins::callHook('packet_charSkills', {
Network\Receive.pm:9243:        Plugins::callHook ('captcha_image', $hookArgs);
Network\Receive.pm:9252:        Plugins::callHook ('captcha_file', $hookArgs);
Network\Receive.pm:9266:        Plugins::callHook ('captcha_answer', {flag => $args->{flag}});
Network\Receive.pm:9328:                Plugins::callHook('packet_open_buying_store', {
Network\Receive.pm:9346:                Plugins::callHook('packet_buying', {ID => $ID});
Network\Receive.pm:9393:                Plugins::callHook('packet_buying_store', {
Network\Receive.pm:9418:        Plugins::callHook('packet_buying_store2', {
Network\Receive.pm:9469:                Plugins::callHook('packet_buyer', {ID => $ID});
Network\Receive.pm:9489:                Plugins::callHook("buyer_shop_closed");
Network\Receive.pm:9541:        Plugins::callHook('packet_special_item_obtain', {
Network\Receive.pm:9568:                Plugins::callHook('packet_sentPM', {
Network\Receive.pm:9701:                Plugins::callHook('memo_fail', { "field" => $field->baseName });
Network\Receive.pm:9704:                Plugins::callHook('memo_success', { "field" => $field->baseName });
Network\Receive.pm:10201:                                       Plugins::callHook('equipped_item', {slot => $equipSlot_lut{$_}, item => $item});
Network\Receive.pm:10229:                                       Plugins::callHook('equipped_item_sw', {slot => $equipSlot_lut{$_}, item => $item});
Network\Receive.pm:10407:                               Plugins::callHook('packet_item_removed', {index => $item->{binID}});
Network\Receive.pm:10765:               Plugins::callHook('parseMsg/addPrivMsgUser', {
Network\Receive.pm:10777:       Plugins::callHook('packet_privMsg', {
Network\Receive.pm:10940:       Plugins::callHook('packet_selfChat', {
Network\Receive.pm:11047:       Plugins::callHook('is_casting', {
Network\Receive.pm:11118:       Plugins::callHook('packet_castCancelled', {
Network\Receive.pm:11166:                               Plugins::callHook('unequipped_item', {slot => $equipSlot_lut{$_}, item => $item});
Network\Receive.pm:11194:                               Plugins::callHook('unequipped_item_sw', {slot => $equipSlot_lut{$_}, item => $item});
Network\Receive.pm:11227:               Plugins::callHook('packet_vender', {ID => $ID, title => bytesToString($args->{title})});
Network\Receive.pm:11260:       Plugins::callHook('packet_charSkills', {
Network\Receive.pm:11325:       Plugins::callHook('packet_skillfail', {
Network\Receive.pm:11338:               Plugins::callHook('open_store_success');
Network\Receive.pm:11342:               Plugins::callHook('open_store_fail', { flag => $args->{flag} });
Network\Receive.pm:11480:       Plugins::callHook("banking_opened");
Network\Receive.pm:11496:               Plugins::callHook("banking_deposit_success");
Network\Receive.pm:11505:       Plugins::callHook("banking_deposit_failed", {'reason' => $args->{reason}});
Network\Receive.pm:11520:               Plugins::callHook("banking_withdraw_success");
Network\Receive.pm:11527:       Plugins::callHook("banking_withdraw_failed", {'reason' => $args->{reason}});
Network\Receive.pm:11546:       Plugins::callHook('navigate_to', $args);
Network\Send\ServerType1.pm:37: Plugins::callHook('packet_pre/sendAttack', \%args) if ($flag == 0 || $flag == 7);
Network\Send\ServerType1.pm:38: Plugins::callHook('packet_pre/sendSit', \%args) if ($flag == 2 || $flag == 3);
Network\Send\ServerType1.pm:56: Plugins::callHook('packet_pre/sendSit', \%args);
Network\Send\ServerType1.pm:74: Plugins::callHook('packet_pre/sendStand', \%args);
Network\Send\ServerType1.pm:151:        Plugins::callHook('packet_pre/sendSkillUse', \%args);
Network\Send\ServerType10.pm:39:        Plugins::callHook('packet_pre/sendAttack', \%args) if ($flag == 0 || $flag == 7);
Network\Send\ServerType10.pm:40:        Plugins::callHook('packet_pre/sendSit', \%args) if ($flag == 2 || $flag == 3);
Network\Send\ServerType10.pm:59:        Plugins::callHook('packet_pre/sendAttack', \%args);
Network\Send\ServerType2.pm:44: Plugins::callHook('packet_pre/sendAttack', \%args) if ($flag == 0 || $flag == 7);
Network\Send\ServerType2.pm:45: Plugins::callHook('packet_pre/sendSit', \%args) if ($flag == 2 || $flag == 3);
Network\Send\ServerType3.pm:59: Plugins::callHook('packet_pre/sendAttack', \%args) if ($flag == 0 || $flag == 7);
Network\Send\ServerType3.pm:60: Plugins::callHook('packet_pre/sendSit', \%args) if ($flag == 2 || $flag == 3);
Network\Send\ServerType4.pm:45: Plugins::callHook('packet_pre/sendAttack', \%args) if ($flag == 0 || $flag == 7);
Network\Send\ServerType4.pm:46: Plugins::callHook('packet_pre/sendSit', \%args) if ($flag == 2 || $flag == 3);
Network\Send\ServerType5.pm:57: Plugins::callHook('packet_pre/sendAttack', \%args) if ($flag == 0 || $flag == 7);
Network\Send\ServerType5.pm:58: Plugins::callHook('packet_pre/sendSit', \%args) if ($flag == 2 || $flag == 3);
Network\Send\ServerType6.pm:36: Plugins::callHook('packet_pre/sendAttack', \%args) if ($flag == 0 || $flag == 7);
Network\Send\ServerType6.pm:37: Plugins::callHook('packet_pre/sendSit', \%args) if ($flag == 2 || $flag == 3);
Network\Send\ServerType7.pm:35: Plugins::callHook('packet_pre/sendAttack', \%args);
Network\Send\ServerType7.pm:55: Plugins::callHook('packet_pre/sendSit', \%args);
Network\Send\ServerType7.pm:73: Plugins::callHook('packet_pre/sendStand', \%args);
Network\Send\ServerType7.pm:96: Plugins::callHook('packet_pre/sendSkillUse', \%args);
Network\Send\ServerType8.pm:65: Plugins::callHook('packet_pre/sendAttack', \%args) if ($flag == 0 || $flag == 7);
Network\Send\ServerType8.pm:66: Plugins::callHook('packet_pre/sendSit', \%args) if ($flag == 2 || $flag == 3);
Network\Send\ServerType8.pm:85: Plugins::callHook('packet_pre/sendAttack', \%args);
Network\Send\ServerType8.pm:103:        Plugins::callHook('packet_pre/sendStand', \%args);
Network\Send\ServerType8.pm:120:        Plugins::callHook('packet_pre/sendSit', \%args);
Network\Send\ServerType8.pm:140:        Plugins::callHook('packet_pre/sendSkillUse', \%args);
Network\Send\ServerType8_1.pm:54:       Plugins::callHook('packet_pre/sendAttack', \%args);
Network\Send\ServerType8_1.pm:141:      Plugins::callHook('packet_pre/sendSit', \%args);
Network\Send\ServerType8_1.pm:160:      Plugins::callHook('packet_pre/sendStand', \%args);
Network\Send\ServerType8_1.pm:182:      Plugins::callHook('packet_pre/sendSkillUse', \%args);
Network\Send\ServerType8_3.pm:48:       Plugins::callHook('packet_pre/sendSit', \%args);
Network\Send\ServerType8_3.pm:66:       Plugins::callHook('packet_pre/sendAttack', \%args);
Network\Send\ServerType8_3.pm:94:       Plugins::callHook('packet_pre/sendStand', \%args);
Network\Send\ServerType8_5.pm:46:       Plugins::callHook('packet_pre/sendSkillUse', \%args);
Network\Send\ServerType8_5.pm:180:      Plugins::callHook('packet_pre/sendAttack', \%args);
Network\Send.pm:245:            Plugins::callHook($hookName, \%args);
Network\Send.pm:487:    Plugins::callHook('packet/sendMapLoaded');
Network\Send.pm:536:    Plugins::callHook('packet_pre/sendAttack', \%args) if $flag == ACTION_ATTACK || $flag == ACTION_ATTACK_REPEAT;
Network\Send.pm:537:    Plugins::callHook('packet_pre/sendSit', \%args) if $flag == ACTION_SIT || $flag == ACTION_STAND;
Network\Send.pm:819:    Plugins::callHook('packet_pre/sendSkillUse', \%args);
Network\XKore.pm:120:   Plugins::callHook("Network::serverSend/pre", { msg => \$msg });
Network\XKore.pm:140:           Plugins::callHook('Network::stateChanged');
Network\XKore.pm:243:           Plugins::callHook('disconnected');
Network\XKore.pm:264:   Plugins::callHook('XKore_start');
Plugins.pm:288:# Add a hook for $hookname. Whenever Kore calls Plugins::callHook('foo'),
Plugins.pm:291:# See also Plugins::callHook() for information about how callback is called.
Plugins.pm:307:#     Plugins::callHook('AI_pre');   # <-- ai_called() is now also called.
Plugins.pm:415:# void Plugins::callHook(String hookName, [argument])
Plugins.pm:420:# Adding or removing callbacks during callHook will not affect the current call.
Plugins.pm:428:sub callHook {
Poseidon\Client.pm:82:  Plugins::callHook('Poseidon/client_authenticate', {
Poseidon\QueryServer.pm:77:     Plugins::callHook('Poseidon/server_authenticate', {
Settings.pm:344:        Plugins::callHook( usage => $data );
Settings.pm:498:        Plugins::callHook('pre_load_'.$internalFilename, $pre_load);
Settings.pm:546:                Plugins::callHook('load_'.$internalFilename, $load);
Settings.pm:551:                Plugins::callHook('pos_load_'.$internalFilename, $pos_load);
Settings.pm:553:                Plugins::callHook('load_'.$internalFilename, $load);
Settings.pm:557:                Plugins::callHook('pos_load_'.$internalFilename, $pos_load);
Settings.pm:599:    Plugins::callHook('preloadfiles', {files => $files});
Settings.pm:603:        Plugins::callHook('loadfiles', {files => $files, current => $i});
Settings.pm:608:    Plugins::callHook('postloadfiles', {files => $files});
Task\MapRoute.pm:369:                           Plugins::callHook('Task::MapRoute::iterate::missing_portal', \%plugin_args);
Task\MapRoute.pm:446:                                   Plugins::callHook('Task::MapRoute::iterate::route_portal_near', \%plugin_args);
Task\Route.pm:299:                      Plugins::callHook('route', {status => 'success'});
Task\Route.pm:400:                      Plugins::callHook('route', {status => 'success'});
Task\Route.pm:412:                      Plugins::callHook('route', {status => 'success'});
Task\Route.pm:455:                              Plugins::callHook('route', {status => 'stuck'});
test\PluginsHookTest.pm:29:     Plugins::callHook('hook2');
test\PluginsHookTest.pm:31:     Plugins::callHook('hook1');
test\PluginsHookTest.pm:39:     Plugins::callHook('hook1');
test\PluginsHookTest.pm:41:     Plugins::callHook('hook2');
test\PluginsHookTest.pm:43:     Plugins::callHook('hook3');
test\PluginsHookTest.pm:51:     Plugins::callHook('hook1');
test\PluginsHookTest.pm:53:     Plugins::callHook('hook2');
test\PluginsHookTest.pm:61:     Plugins::callHook('hook2');
test\PluginsHookTest.pm:63:     Plugins::callHook('hook1');
test\PluginsHookTest.pm:71:     Plugins::callHook('hook2');
test\PluginsHookTest.pm:73:     Plugins::callHook('hook1');
test\PluginsHookTest.pm:93:     Plugins::callHook('hook1');
test\PluginsHookTest.pm:95:     Plugins::callHook('hook2');
test\PluginsHookTest.pm:102:    Plugins::callHook('hook1');
test\PluginsHookTest.pm:124:    Plugins::callHook( 'add_during_call' );
test\PluginsHookTest.pm:129:    Plugins::callHook( 'add_during_call' );
test\PluginsHookTest.pm:134:    Plugins::callHook( 'add_during_call' );
test\PluginsHookTest.pm:139:    Plugins::callHook( 'add_during_call' );
test\PluginsHookTest.pm:156:    Plugins::callHook( 'del_during_call' );
test\PluginsHookTest.pm:161:    Plugins::callHook( 'del_during_call' );
test\PluginsHookTest.pm:166:    Plugins::callHook( 'del_during_call' );
test\PluginsHookTest.pm:171:    Plugins::callHook( 'del_during_call' );
test\PluginsHookTest.pm:176:    Plugins::callHook( 'del_during_call' );
Utils\PathFinding.pm:103:       Plugins::callHook("PathFindingReset", \%hookArgs);