Skip to content

Commit 1ebb51f

Browse files
authored
add enabled hook lists for performance improvement (azerothcore#263)
1 parent cbe1621 commit 1ebb51f

File tree

1 file changed

+158
-17
lines changed

1 file changed

+158
-17
lines changed

src/ElunaLuaEngine_SC.cpp

Lines changed: 158 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -235,7 +235,15 @@ class Eluna_AllItemScript : public AllItemScript
235235
class Eluna_AllMapScript : public AllMapScript
236236
{
237237
public:
238-
Eluna_AllMapScript() : AllMapScript("Eluna_AllMapScript") { }
238+
Eluna_AllMapScript() : AllMapScript("Eluna_AllMapScript", {
239+
ALLMAPHOOK_ON_BEFORE_CREATE_INSTANCE_SCRIPT,
240+
ALLMAPHOOK_ON_DESTROY_INSTANCE,
241+
ALLMAPHOOK_ON_CREATE_MAP,
242+
ALLMAPHOOK_ON_DESTROY_MAP,
243+
ALLMAPHOOK_ON_PLAYER_ENTER_ALL,
244+
ALLMAPHOOK_ON_PLAYER_LEAVE_ALL,
245+
ALLMAPHOOK_ON_MAP_UPDATE
246+
}) { }
239247

240248
void OnBeforeCreateInstanceScript(InstanceMap* instanceMap, InstanceScript** instanceData, bool /*load*/, std::string /*data*/, uint32 /*completedEncounterMask*/) override
241249
{
@@ -277,7 +285,12 @@ class Eluna_AllMapScript : public AllMapScript
277285
class Eluna_AuctionHouseScript : public AuctionHouseScript
278286
{
279287
public:
280-
Eluna_AuctionHouseScript() : AuctionHouseScript("Eluna_AuctionHouseScript") { }
288+
Eluna_AuctionHouseScript() : AuctionHouseScript("Eluna_AuctionHouseScript", {
289+
AUCTIONHOUSEHOOK_ON_AUCTION_ADD,
290+
AUCTIONHOUSEHOOK_ON_AUCTION_REMOVE,
291+
AUCTIONHOUSEHOOK_ON_AUCTION_SUCCESSFUL,
292+
AUCTIONHOUSEHOOK_ON_AUCTION_EXPIRE
293+
}) { }
281294

282295
void OnAuctionAdd(AuctionHouseObject* ah, AuctionEntry* entry) override
283296
{
@@ -303,7 +316,12 @@ class Eluna_AuctionHouseScript : public AuctionHouseScript
303316
class Eluna_BGScript : public BGScript
304317
{
305318
public:
306-
Eluna_BGScript() : BGScript("Eluna_BGScript") { }
319+
Eluna_BGScript() : BGScript("Eluna_BGScript", {
320+
ALLBATTLEGROUNDHOOK_ON_BATTLEGROUND_START,
321+
ALLBATTLEGROUNDHOOK_ON_BATTLEGROUND_END,
322+
ALLBATTLEGROUNDHOOK_ON_BATTLEGROUND_DESTROY,
323+
ALLBATTLEGROUNDHOOK_ON_BATTLEGROUND_CREATE
324+
}) { }
307325

308326
void OnBattlegroundStart(Battleground* bg) override
309327
{
@@ -329,7 +347,9 @@ class Eluna_BGScript : public BGScript
329347
class Eluna_CommandSC : public CommandSC
330348
{
331349
public:
332-
Eluna_CommandSC() : CommandSC("Eluna_CommandSC") { }
350+
Eluna_CommandSC() : CommandSC("Eluna_CommandSC", {
351+
ALLCOMMANDHOOK_ON_TRY_EXECUTE_COMMAND
352+
}) { }
333353

334354
bool OnTryExecuteCommand(ChatHandler& handler, std::string_view cmdStr) override
335355
{
@@ -366,7 +386,10 @@ class Eluna_ElunaScript : public ElunaScript
366386
class Eluna_GameEventScript : public GameEventScript
367387
{
368388
public:
369-
Eluna_GameEventScript() : GameEventScript("Eluna_GameEventScript") { }
389+
Eluna_GameEventScript() : GameEventScript("Eluna_GameEventScript", {
390+
GAMEEVENTHOOK_ON_START,
391+
GAMEEVENTHOOK_ON_STOP
392+
}) { }
370393

371394
void OnStart(uint16 eventID) override
372395
{
@@ -382,7 +405,14 @@ class Eluna_GameEventScript : public GameEventScript
382405
class Eluna_GroupScript : public GroupScript
383406
{
384407
public:
385-
Eluna_GroupScript() : GroupScript("Eluna_GroupScript") { }
408+
Eluna_GroupScript() : GroupScript("Eluna_GroupScript", {
409+
GROUPHOOK_ON_ADD_MEMBER,
410+
GROUPHOOK_ON_INVITE_MEMBER,
411+
GROUPHOOK_ON_REMOVE_MEMBER,
412+
GROUPHOOK_ON_CHANGE_LEADER,
413+
GROUPHOOK_ON_DISBAND,
414+
GROUPHOOK_ON_CREATE
415+
}) { }
386416

387417
void OnAddMember(Group* group, ObjectGuid guid) override
388418
{
@@ -418,7 +448,19 @@ class Eluna_GroupScript : public GroupScript
418448
class Eluna_GuildScript : public GuildScript
419449
{
420450
public:
421-
Eluna_GuildScript() : GuildScript("Eluna_GuildScript") { }
451+
Eluna_GuildScript() : GuildScript("Eluna_GuildScript", {
452+
GUILDHOOK_ON_ADD_MEMBER,
453+
GUILDHOOK_ON_REMOVE_MEMBER,
454+
GUILDHOOK_ON_MOTD_CHANGED,
455+
GUILDHOOK_ON_INFO_CHANGED,
456+
GUILDHOOK_ON_CREATE,
457+
GUILDHOOK_ON_DISBAND,
458+
GUILDHOOK_ON_MEMBER_WITDRAW_MONEY,
459+
GUILDHOOK_ON_MEMBER_DEPOSIT_MONEY,
460+
GUILDHOOK_ON_ITEM_MOVE,
461+
GUILDHOOK_ON_EVENT,
462+
GUILDHOOK_ON_BANK_EVENT
463+
}) { }
422464

423465
void OnAddMember(Guild* guild, Player* player, uint8& plRank) override
424466
{
@@ -480,7 +522,9 @@ class Eluna_GuildScript : public GuildScript
480522
class Eluna_LootScript : public LootScript
481523
{
482524
public:
483-
Eluna_LootScript() : LootScript("Eluna_LootScript") { }
525+
Eluna_LootScript() : LootScript("Eluna_LootScript", {
526+
LOOTHOOK_ON_LOOT_MONEY
527+
}) { }
484528

485529
void OnLootMoney(Player* player, uint32 gold) override
486530
{
@@ -491,7 +535,9 @@ class Eluna_LootScript : public LootScript
491535
class Eluna_MiscScript : public MiscScript
492536
{
493537
public:
494-
Eluna_MiscScript() : MiscScript("Eluna_MiscScript") { }
538+
Eluna_MiscScript() : MiscScript("Eluna_MiscScript", {
539+
MISCHOOK_GET_DIALOG_STATUS
540+
}) { }
495541

496542
void GetDialogStatus(Player* player, Object* questgiver) override
497543
{
@@ -505,7 +551,9 @@ class Eluna_MiscScript : public MiscScript
505551
class Eluna_PetScript : public PetScript
506552
{
507553
public:
508-
Eluna_PetScript() : PetScript("Eluna_PetScript") { }
554+
Eluna_PetScript() : PetScript("Eluna_PetScript", {
555+
PETHOOK_ON_PET_ADD_TO_WORLD
556+
}) { }
509557

510558
void OnPetAddToWorld(Pet* pet) override
511559
{
@@ -516,7 +564,67 @@ class Eluna_PetScript : public PetScript
516564
class Eluna_PlayerScript : public PlayerScript
517565
{
518566
public:
519-
Eluna_PlayerScript() : PlayerScript("Eluna_PlayerScript") { }
567+
Eluna_PlayerScript() : PlayerScript("Eluna_PlayerScript", {
568+
PLAYERHOOK_ON_PLAYER_RESURRECT,
569+
PLAYERHOOK_CAN_PLAYER_USE_CHAT,
570+
PLAYERHOOK_CAN_PLAYER_USE_PRIVATE_CHAT,
571+
PLAYERHOOK_CAN_PLAYER_USE_GROUP_CHAT,
572+
PLAYERHOOK_CAN_PLAYER_USE_GUILD_CHAT,
573+
PLAYERHOOK_CAN_PLAYER_USE_CHANNEL_CHAT,
574+
PLAYERHOOK_ON_LOOT_ITEM,
575+
PLAYERHOOK_ON_PLAYER_LEARN_TALENTS,
576+
PLAYERHOOK_CAN_USE_ITEM,
577+
PLAYERHOOK_ON_EQUIP,
578+
PLAYERHOOK_ON_PLAYER_ENTER_COMBAT,
579+
PLAYERHOOK_ON_PLAYER_LEAVE_COMBAT,
580+
PLAYERHOOK_CAN_REPOP_AT_GRAVEYARD,
581+
PLAYERHOOK_ON_QUEST_ABANDON,
582+
PLAYERHOOK_ON_MAP_CHANGED,
583+
PLAYERHOOK_ON_GOSSIP_SELECT,
584+
PLAYERHOOK_ON_GOSSIP_SELECT_CODE,
585+
PLAYERHOOK_ON_PVP_KILL,
586+
PLAYERHOOK_ON_CREATURE_KILL,
587+
PLAYERHOOK_ON_PLAYER_KILLED_BY_CREATURE,
588+
PLAYERHOOK_ON_LEVEL_CHANGED,
589+
PLAYERHOOK_ON_FREE_TALENT_POINTS_CHANGED,
590+
PLAYERHOOK_ON_TALENTS_RESET,
591+
PLAYERHOOK_ON_MONEY_CHANGED,
592+
PLAYERHOOK_ON_GIVE_EXP,
593+
PLAYERHOOK_ON_REPUTATION_CHANGE,
594+
PLAYERHOOK_ON_DUEL_REQUEST,
595+
PLAYERHOOK_ON_DUEL_START,
596+
PLAYERHOOK_ON_DUEL_END,
597+
PLAYERHOOK_ON_EMOTE,
598+
PLAYERHOOK_ON_TEXT_EMOTE,
599+
PLAYERHOOK_ON_SPELL_CAST,
600+
PLAYERHOOK_ON_LOGIN,
601+
PLAYERHOOK_ON_LOGOUT,
602+
PLAYERHOOK_ON_CREATE,
603+
PLAYERHOOK_ON_SAVE,
604+
PLAYERHOOK_ON_DELETE,
605+
PLAYERHOOK_ON_BIND_TO_INSTANCE,
606+
PLAYERHOOK_ON_UPDATE_AREA,
607+
PLAYERHOOK_ON_UPDATE_ZONE,
608+
PLAYERHOOK_ON_FIRST_LOGIN,
609+
PLAYERHOOK_ON_LEARN_SPELL,
610+
PLAYERHOOK_ON_ACHI_COMPLETE,
611+
PLAYERHOOK_ON_FFA_PVP_STATE_UPDATE,
612+
PLAYERHOOK_CAN_INIT_TRADE,
613+
PLAYERHOOK_CAN_SEND_MAIL,
614+
PLAYERHOOK_CAN_JOIN_LFG,
615+
PLAYERHOOK_ON_QUEST_REWARD_ITEM,
616+
PLAYERHOOK_ON_GROUP_ROLL_REWARD_ITEM,
617+
PLAYERHOOK_ON_CREATE_ITEM,
618+
PLAYERHOOK_ON_STORE_NEW_ITEM,
619+
PLAYERHOOK_ON_PLAYER_COMPLETE_QUEST,
620+
PLAYERHOOK_CAN_GROUP_INVITE,
621+
PLAYERHOOK_ON_BATTLEGROUND_DESERTION,
622+
PLAYERHOOK_ON_CREATURE_KILLED_BY_PET,
623+
PLAYERHOOK_ON_CAN_UPDATE_SKILL,
624+
PLAYERHOOK_ON_BEFORE_UPDATE_SKILL,
625+
PLAYERHOOK_ON_UPDATE_SKILL,
626+
PLAYERHOOK_CAN_RESURRECT
627+
}) { }
520628

521629
void OnPlayerResurrect(Player* player, float /*restore_percent*/, bool /*applySickness*/) override
522630
{
@@ -837,7 +945,10 @@ class Eluna_PlayerScript : public PlayerScript
837945
class Eluna_ServerScript : public ServerScript
838946
{
839947
public:
840-
Eluna_ServerScript() : ServerScript("Eluna_ServerScript") { }
948+
Eluna_ServerScript() : ServerScript("Eluna_ServerScript", {
949+
SERVERHOOK_CAN_PACKET_SEND,
950+
SERVERHOOK_CAN_PACKET_RECEIVE
951+
}) { }
841952

842953
bool CanPacketSend(WorldSession* session, WorldPacket& packet) override
843954
{
@@ -859,7 +970,14 @@ class Eluna_ServerScript : public ServerScript
859970
class Eluna_SpellSC : public SpellSC
860971
{
861972
public:
862-
Eluna_SpellSC() : SpellSC("Eluna_SpellSC") { }
973+
Eluna_SpellSC() : SpellSC("Eluna_SpellSC", {
974+
ALLSPELLHOOK_ON_DUMMY_EFFECT_GAMEOBJECT,
975+
ALLSPELLHOOK_ON_DUMMY_EFFECT_CREATURE,
976+
ALLSPELLHOOK_ON_DUMMY_EFFECT_ITEM,
977+
ALLSPELLHOOK_ON_CAST_CANCEL,
978+
ALLSPELLHOOK_ON_CAST,
979+
ALLSPELLHOOK_ON_PREPARE
980+
}) { }
863981

864982
void OnDummyEffect(WorldObject* caster, uint32 spellID, SpellEffIndex effIndex, GameObject* gameObjTarget) override
865983
{
@@ -895,7 +1013,9 @@ class Eluna_SpellSC : public SpellSC
8951013
class Eluna_UnitScript : public UnitScript
8961014
{
8971015
public:
898-
Eluna_UnitScript() : UnitScript("Eluna_UnitScript") { }
1016+
Eluna_UnitScript() : UnitScript("Eluna_UnitScript", true, {
1017+
UNITHOOK_ON_UNIT_UPDATE
1018+
}) { }
8991019

9001020
void OnUnitUpdate(Unit* unit, uint32 diff) override
9011021
{
@@ -937,7 +1057,12 @@ class Eluna_VehicleScript : public VehicleScript
9371057
class Eluna_WorldObjectScript : public WorldObjectScript
9381058
{
9391059
public:
940-
Eluna_WorldObjectScript() : WorldObjectScript("Eluna_WorldObjectScript") { }
1060+
Eluna_WorldObjectScript() : WorldObjectScript("Eluna_WorldObjectScript", {
1061+
WORLDOBJECTHOOK_ON_WORLD_OBJECT_DESTROY,
1062+
WORLDOBJECTHOOK_ON_WORLD_OBJECT_CREATE,
1063+
WORLDOBJECTHOOK_ON_WORLD_OBJECT_SET_MAP,
1064+
WORLDOBJECTHOOK_ON_WORLD_OBJECT_UPDATE
1065+
}) { }
9411066

9421067
void OnWorldObjectDestroy(WorldObject* object) override
9431068
{
@@ -965,7 +1090,18 @@ class Eluna_WorldObjectScript : public WorldObjectScript
9651090
class Eluna_WorldScript : public WorldScript
9661091
{
9671092
public:
968-
Eluna_WorldScript() : WorldScript("Eluna_WorldScript") { }
1093+
Eluna_WorldScript() : WorldScript("Eluna_WorldScript", {
1094+
WORLDHOOK_ON_OPEN_STATE_CHANGE,
1095+
WORLDHOOK_ON_BEFORE_CONFIG_LOAD,
1096+
WORLDHOOK_ON_AFTER_CONFIG_LOAD,
1097+
WORLDHOOK_ON_SHUTDOWN_INITIATE,
1098+
WORLDHOOK_ON_SHUTDOWN_CANCEL,
1099+
WORLDHOOK_ON_UPDATE,
1100+
WORLDHOOK_ON_STARTUP,
1101+
WORLDHOOK_ON_SHUTDOWN,
1102+
WORLDHOOK_ON_AFTER_UNLOAD_ALL_MAPS,
1103+
WORLDHOOK_ON_BEFORE_WORLD_INITIALIZED
1104+
}) { }
9691105

9701106
void OnOpenStateChange(bool open) override
9711107
{
@@ -1031,7 +1167,12 @@ class Eluna_WorldScript : public WorldScript
10311167
class Eluna_TicketScript : public TicketScript
10321168
{
10331169
public:
1034-
Eluna_TicketScript() : TicketScript("Eluna_TicketScript") { }
1170+
Eluna_TicketScript() : TicketScript("Eluna_TicketScript", {
1171+
TICKETHOOK_ON_TICKET_CREATE,
1172+
TICKETHOOK_ON_TICKET_UPDATE_LAST_CHANGE,
1173+
TICKETHOOK_ON_TICKET_CLOSE,
1174+
TICKETHOOK_ON_TICKET_RESOLVE
1175+
}) { }
10351176

10361177
void OnTicketCreate(GmTicket* ticket) override
10371178
{

0 commit comments

Comments
 (0)