diff --git a/lua_scripts/MWPremium/mwpremium.lua b/lua_scripts/MWPremium/mwpremium.lua index a4d0ec7c2..5acf763ec 100644 --- a/lua_scripts/MWPremium/mwpremium.lua +++ b/lua_scripts/MWPremium/mwpremium.lua @@ -2,11 +2,13 @@ local PLAYER_EVENT_ON_LOGIN = 3 local PLAYER_EVENT_ON_SPELL_CAST = 5 local PLAYER_EVENT_ON_LOGOUT = 4 local PLAYER_EVENT_ON_COMMAND = 42 +local PLAYER_EVENT_ON_BEFORE_TELEPORT = 67 local ACCOUNT_FLAG_RECURRING_BILLING = 8192 local SUMMON_SQUIRE_SPELL_ID = 80000 +local HEARTHSTONE_SPELL_ID = 8690 local SQUIRE_CREATURE_TEMPLATE_ID = 9000001 @@ -184,9 +186,18 @@ local function OnLogout(event, player) squires_table[player:GetGUID()] = nil end +local function OnBeforeTeleport(player, mapid, x, y, z, orientation, options, target) + if not IsPremium(player) then return end + + if player:FindCurrentSpellBySpellId(HEARTHSTONE_SPELL_ID) then + player:ResetSpellCooldown(HEARTHSTONE_SPELL_ID, true) + end +end + RegisterCreatureGossipEvent(SQUIRE_CREATURE_TEMPLATE_ID, 1, OnGossipHello) RegisterCreatureGossipEvent(SQUIRE_CREATURE_TEMPLATE_ID, 2, OnGossipSelect) RegisterPlayerEvent(PLAYER_EVENT_ON_LOGIN, OnLogin) RegisterPlayerEvent(PLAYER_EVENT_ON_LOGOUT, OnLogout) RegisterPlayerEvent(PLAYER_EVENT_ON_COMMAND, OnCommand) RegisterPlayerEvent(PLAYER_EVENT_ON_SPELL_CAST, OnSpellCast) +RegisterPlayerEvent(PLAYER_EVENT_ON_BEFORE_TELEPORT, OnBeforeTeleport) diff --git a/modules/mod-eluna/src/ElunaLuaEngine_SC.cpp b/modules/mod-eluna/src/ElunaLuaEngine_SC.cpp index 811038d2c..c4e5d42ec 100644 --- a/modules/mod-eluna/src/ElunaLuaEngine_SC.cpp +++ b/modules/mod-eluna/src/ElunaLuaEngine_SC.cpp @@ -28,10 +28,10 @@ class Eluna_AllCreatureScript : public AllCreatureScript { public: - Eluna_AllCreatureScript() : AllCreatureScript("Eluna_AllCreatureScript") { } + Eluna_AllCreatureScript() : AllCreatureScript("Eluna_AllCreatureScript") {} // Creature - bool CanCreatureGossipHello(Player* player, Creature* creature) override + bool CanCreatureGossipHello(Player *player, Creature *creature) override { if (sEluna->OnGossipHello(player, creature)) return true; @@ -39,7 +39,7 @@ public: return false; } - bool CanCreatureGossipSelect(Player* player, Creature* creature, uint32 sender, uint32 action) override + bool CanCreatureGossipSelect(Player *player, Creature *creature, uint32 sender, uint32 action) override { if (sEluna->OnGossipSelect(player, creature, sender, action)) return true; @@ -47,7 +47,7 @@ public: return false; } - bool CanCreatureGossipSelectCode(Player* player, Creature* creature, uint32 sender, uint32 action, const char* code) override + bool CanCreatureGossipSelectCode(Player *player, Creature *creature, uint32 sender, uint32 action, const char *code) override { if (sEluna->OnGossipSelectCode(player, creature, sender, action, code)) return true; @@ -55,7 +55,7 @@ public: return false; } - void OnCreatureAddWorld(Creature* creature) override + void OnCreatureAddWorld(Creature *creature) override { sEluna->OnAddToWorld(creature); @@ -63,19 +63,19 @@ public: sEluna->OnPetAddedToWorld(creature->ToTempSummon()->GetSummonerUnit()->ToPlayer(), creature); } - void OnCreatureRemoveWorld(Creature* creature) override + void OnCreatureRemoveWorld(Creature *creature) override { sEluna->OnRemoveFromWorld(creature); } - bool CanCreatureQuestAccept(Player* player, Creature* creature, Quest const* quest) override + bool CanCreatureQuestAccept(Player *player, Creature *creature, Quest const *quest) override { sEluna->OnPlayerQuestAccept(player, quest); sEluna->OnQuestAccept(player, creature, quest); return false; } - bool CanCreatureQuestReward(Player* player, Creature* creature, Quest const* quest, uint32 opt) override + bool CanCreatureQuestReward(Player *player, Creature *creature, Quest const *quest, uint32 opt) override { if (sEluna->OnQuestReward(player, creature, quest, opt)) { @@ -86,9 +86,9 @@ public: return false; } - CreatureAI* GetCreatureAI(Creature* creature) const override + CreatureAI *GetCreatureAI(Creature *creature) const override { - if (CreatureAI* luaAI = sEluna->GetAI(creature)) + if (CreatureAI *luaAI = sEluna->GetAI(creature)) return luaAI; return nullptr; @@ -98,24 +98,24 @@ public: class Eluna_AllGameObjectScript : public AllGameObjectScript { public: - Eluna_AllGameObjectScript() : AllGameObjectScript("Eluna_AllGameObjectScript") { } + Eluna_AllGameObjectScript() : AllGameObjectScript("Eluna_AllGameObjectScript") {} - void OnGameObjectAddWorld(GameObject* go) override + void OnGameObjectAddWorld(GameObject *go) override { sEluna->OnAddToWorld(go); } - void OnGameObjectRemoveWorld(GameObject* go) override + void OnGameObjectRemoveWorld(GameObject *go) override { sEluna->OnRemoveFromWorld(go); } - void OnGameObjectUpdate(GameObject* go, uint32 diff) override + void OnGameObjectUpdate(GameObject *go, uint32 diff) override { sEluna->UpdateAI(go, diff); } - bool CanGameObjectGossipHello(Player* player, GameObject* go) override + bool CanGameObjectGossipHello(Player *player, GameObject *go) override { if (sEluna->OnGossipHello(player, go)) return true; @@ -126,34 +126,34 @@ public: return false; } - void OnGameObjectDamaged(GameObject* go, Player* player) override + void OnGameObjectDamaged(GameObject *go, Player *player) override { sEluna->OnDamaged(go, player); } - void OnGameObjectDestroyed(GameObject* go, Player* player) override + void OnGameObjectDestroyed(GameObject *go, Player *player) override { sEluna->OnDestroyed(go, player); } - void OnGameObjectLootStateChanged(GameObject* go, uint32 state, Unit* /*unit*/) override + void OnGameObjectLootStateChanged(GameObject *go, uint32 state, Unit * /*unit*/) override { sEluna->OnLootStateChanged(go, state); } - void OnGameObjectStateChanged(GameObject* go, uint32 state) override + void OnGameObjectStateChanged(GameObject *go, uint32 state) override { sEluna->OnGameObjectStateChanged(go, state); } - bool CanGameObjectQuestAccept(Player* player, GameObject* go, Quest const* quest) override + bool CanGameObjectQuestAccept(Player *player, GameObject *go, Quest const *quest) override { sEluna->OnPlayerQuestAccept(player, quest); sEluna->OnQuestAccept(player, go, quest); return false; } - bool CanGameObjectGossipSelect(Player* player, GameObject* go, uint32 sender, uint32 action) override + bool CanGameObjectGossipSelect(Player *player, GameObject *go, uint32 sender, uint32 action) override { if (sEluna->OnGossipSelect(player, go, sender, action)) return true; @@ -161,7 +161,7 @@ public: return false; } - bool CanGameObjectGossipSelectCode(Player* player, GameObject* go, uint32 sender, uint32 action, const char* code) override + bool CanGameObjectGossipSelectCode(Player *player, GameObject *go, uint32 sender, uint32 action, const char *code) override { if (sEluna->OnGossipSelectCode(player, go, sender, action, code)) return true; @@ -169,7 +169,7 @@ public: return false; } - bool CanGameObjectQuestReward(Player* player, GameObject* go, Quest const* quest, uint32 opt) override + bool CanGameObjectQuestReward(Player *player, GameObject *go, Quest const *quest, uint32 opt) override { if (sEluna->OnQuestAccept(player, go, quest)) { @@ -183,7 +183,7 @@ public: return true; } - GameObjectAI* GetGameObjectAI(GameObject* go) const override + GameObjectAI *GetGameObjectAI(GameObject *go) const override { sEluna->OnSpawn(go); return nullptr; @@ -193,9 +193,9 @@ public: class Eluna_AllItemScript : public AllItemScript { public: - Eluna_AllItemScript() : AllItemScript("Eluna_AllItemScript") { } + Eluna_AllItemScript() : AllItemScript("Eluna_AllItemScript") {} - bool CanItemQuestAccept(Player* player, Item* item, Quest const* quest) override + bool CanItemQuestAccept(Player *player, Item *item, Quest const *quest) override { if (sEluna->OnQuestAccept(player, item, quest)) { @@ -206,7 +206,7 @@ public: return true; } - bool CanItemUse(Player* player, Item* item, SpellCastTargets const& targets) override + bool CanItemUse(Player *player, Item *item, SpellCastTargets const &targets) override { if (!sEluna->OnUse(player, item, targets)) return true; @@ -214,7 +214,7 @@ public: return false; } - bool CanItemExpire(Player* player, ItemTemplate const* proto) override + bool CanItemExpire(Player *player, ItemTemplate const *proto) override { if (sEluna->OnExpire(player, proto)) return false; @@ -222,7 +222,7 @@ public: return true; } - bool CanItemRemove(Player* player, Item* item) override + bool CanItemRemove(Player *player, Item *item) override { if (sEluna->OnRemove(player, item)) return false; @@ -230,12 +230,12 @@ public: return true; } - void OnItemGossipSelect(Player* player, Item* item, uint32 sender, uint32 action) override + void OnItemGossipSelect(Player *player, Item *item, uint32 sender, uint32 action) override { sEluna->HandleGossipSelectOption(player, item, sender, action, ""); } - void OnItemGossipSelectCode(Player* player, Item* item, uint32 sender, uint32 action, const char* code) override + void OnItemGossipSelectCode(Player *player, Item *item, uint32 sender, uint32 action, const char *code) override { sEluna->HandleGossipSelectOption(player, item, sender, action, code); } @@ -244,48 +244,46 @@ public: class Eluna_AllMapScript : public AllMapScript { public: - Eluna_AllMapScript() : AllMapScript("Eluna_AllMapScript", { - ALLMAPHOOK_ON_BEFORE_CREATE_INSTANCE_SCRIPT, - ALLMAPHOOK_ON_DESTROY_INSTANCE, - ALLMAPHOOK_ON_CREATE_MAP, - ALLMAPHOOK_ON_DESTROY_MAP, - ALLMAPHOOK_ON_PLAYER_ENTER_ALL, - ALLMAPHOOK_ON_PLAYER_LEAVE_ALL, - ALLMAPHOOK_ON_MAP_UPDATE - }) { } + Eluna_AllMapScript() : AllMapScript("Eluna_AllMapScript", {ALLMAPHOOK_ON_BEFORE_CREATE_INSTANCE_SCRIPT, + ALLMAPHOOK_ON_DESTROY_INSTANCE, + ALLMAPHOOK_ON_CREATE_MAP, + ALLMAPHOOK_ON_DESTROY_MAP, + ALLMAPHOOK_ON_PLAYER_ENTER_ALL, + ALLMAPHOOK_ON_PLAYER_LEAVE_ALL, + ALLMAPHOOK_ON_MAP_UPDATE}) {} - void OnBeforeCreateInstanceScript(InstanceMap* instanceMap, InstanceScript** instanceData, bool /*load*/, std::string /*data*/, uint32 /*completedEncounterMask*/) override + void OnBeforeCreateInstanceScript(InstanceMap *instanceMap, InstanceScript **instanceData, bool /*load*/, std::string /*data*/, uint32 /*completedEncounterMask*/) override { if (instanceData) *instanceData = sEluna->GetInstanceData(instanceMap); } - void OnDestroyInstance(MapInstanced* /*mapInstanced*/, Map* map) override + void OnDestroyInstance(MapInstanced * /*mapInstanced*/, Map *map) override { sEluna->FreeInstanceId(map->GetInstanceId()); } - void OnCreateMap(Map* map) override + void OnCreateMap(Map *map) override { sEluna->OnCreate(map); } - void OnDestroyMap(Map* map) override + void OnDestroyMap(Map *map) override { sEluna->OnDestroy(map); } - void OnPlayerEnterAll(Map* map, Player* player) override + void OnPlayerEnterAll(Map *map, Player *player) override { sEluna->OnPlayerEnter(map, player); } - void OnPlayerLeaveAll(Map* map, Player* player) override + void OnPlayerLeaveAll(Map *map, Player *player) override { sEluna->OnPlayerLeave(map, player); } - void OnMapUpdate(Map* map, uint32 diff) override + void OnMapUpdate(Map *map, uint32 diff) override { sEluna->OnUpdate(map, diff); } @@ -294,29 +292,27 @@ public: class Eluna_AuctionHouseScript : public AuctionHouseScript { public: - Eluna_AuctionHouseScript() : AuctionHouseScript("Eluna_AuctionHouseScript", { - AUCTIONHOUSEHOOK_ON_AUCTION_ADD, - AUCTIONHOUSEHOOK_ON_AUCTION_REMOVE, - AUCTIONHOUSEHOOK_ON_AUCTION_SUCCESSFUL, - AUCTIONHOUSEHOOK_ON_AUCTION_EXPIRE - }) { } + Eluna_AuctionHouseScript() : AuctionHouseScript("Eluna_AuctionHouseScript", {AUCTIONHOUSEHOOK_ON_AUCTION_ADD, + AUCTIONHOUSEHOOK_ON_AUCTION_REMOVE, + AUCTIONHOUSEHOOK_ON_AUCTION_SUCCESSFUL, + AUCTIONHOUSEHOOK_ON_AUCTION_EXPIRE}) {} - void OnAuctionAdd(AuctionHouseObject* ah, AuctionEntry* entry) override + void OnAuctionAdd(AuctionHouseObject *ah, AuctionEntry *entry) override { sEluna->OnAdd(ah, entry); } - void OnAuctionRemove(AuctionHouseObject* ah, AuctionEntry* entry) override + void OnAuctionRemove(AuctionHouseObject *ah, AuctionEntry *entry) override { sEluna->OnRemove(ah, entry); } - void OnAuctionSuccessful(AuctionHouseObject* ah, AuctionEntry* entry) override + void OnAuctionSuccessful(AuctionHouseObject *ah, AuctionEntry *entry) override { sEluna->OnSuccessful(ah, entry); } - void OnAuctionExpire(AuctionHouseObject* ah, AuctionEntry* entry) override + void OnAuctionExpire(AuctionHouseObject *ah, AuctionEntry *entry) override { sEluna->OnExpire(ah, entry); } @@ -325,29 +321,27 @@ public: class Eluna_BGScript : public BGScript { public: - Eluna_BGScript() : BGScript("Eluna_BGScript", { - ALLBATTLEGROUNDHOOK_ON_BATTLEGROUND_START, - ALLBATTLEGROUNDHOOK_ON_BATTLEGROUND_END, - ALLBATTLEGROUNDHOOK_ON_BATTLEGROUND_DESTROY, - ALLBATTLEGROUNDHOOK_ON_BATTLEGROUND_CREATE - }) { } + Eluna_BGScript() : BGScript("Eluna_BGScript", {ALLBATTLEGROUNDHOOK_ON_BATTLEGROUND_START, + ALLBATTLEGROUNDHOOK_ON_BATTLEGROUND_END, + ALLBATTLEGROUNDHOOK_ON_BATTLEGROUND_DESTROY, + ALLBATTLEGROUNDHOOK_ON_BATTLEGROUND_CREATE}) {} - void OnBattlegroundStart(Battleground* bg) override + void OnBattlegroundStart(Battleground *bg) override { sEluna->OnBGStart(bg, bg->GetBgTypeID(), bg->GetInstanceID()); } - void OnBattlegroundEnd(Battleground* bg, TeamId winnerTeam) override + void OnBattlegroundEnd(Battleground *bg, TeamId winnerTeam) override { sEluna->OnBGEnd(bg, bg->GetBgTypeID(), bg->GetInstanceID(), winnerTeam); } - void OnBattlegroundDestroy(Battleground* bg) override + void OnBattlegroundDestroy(Battleground *bg) override { sEluna->OnBGDestroy(bg, bg->GetBgTypeID(), bg->GetInstanceID()); } - void OnBattlegroundCreate(Battleground* bg) override + void OnBattlegroundCreate(Battleground *bg) override { sEluna->OnBGCreate(bg, bg->GetBgTypeID(), bg->GetInstanceID()); } @@ -356,11 +350,9 @@ public: class Eluna_CommandSC : public CommandSC { public: - Eluna_CommandSC() : CommandSC("Eluna_CommandSC", { - ALLCOMMANDHOOK_ON_TRY_EXECUTE_COMMAND - }) { } + Eluna_CommandSC() : CommandSC("Eluna_CommandSC", {ALLCOMMANDHOOK_ON_TRY_EXECUTE_COMMAND}) {} - bool OnTryExecuteCommand(ChatHandler& handler, std::string_view cmdStr) override + bool OnTryExecuteCommand(ChatHandler &handler, std::string_view cmdStr) override { if (!sEluna->OnCommand(handler, std::string(cmdStr).c_str())) { @@ -374,16 +366,16 @@ public: class Eluna_ElunaScript : public ElunaScript { public: - Eluna_ElunaScript() : ElunaScript("Eluna_ElunaScript") { } + Eluna_ElunaScript() : ElunaScript("Eluna_ElunaScript") {} // Weather - void OnWeatherChange(Weather* weather, WeatherState state, float grade) override + void OnWeatherChange(Weather *weather, WeatherState state, float grade) override { sEluna->OnChange(weather, weather->GetZone(), state, grade); } // AreaTriger - bool CanAreaTrigger(Player* player, AreaTrigger const* trigger) override + bool CanAreaTrigger(Player *player, AreaTrigger const *trigger) override { if (sEluna->OnAreaTrigger(player, trigger)) return true; @@ -395,10 +387,8 @@ public: class Eluna_GameEventScript : public GameEventScript { public: - Eluna_GameEventScript() : GameEventScript("Eluna_GameEventScript", { - GAMEEVENTHOOK_ON_START, - GAMEEVENTHOOK_ON_STOP - }) { } + Eluna_GameEventScript() : GameEventScript("Eluna_GameEventScript", {GAMEEVENTHOOK_ON_START, + GAMEEVENTHOOK_ON_STOP}) {} void OnStart(uint16 eventID) override { @@ -414,41 +404,39 @@ public: class Eluna_GroupScript : public GroupScript { public: - Eluna_GroupScript() : GroupScript("Eluna_GroupScript", { - GROUPHOOK_ON_ADD_MEMBER, - GROUPHOOK_ON_INVITE_MEMBER, - GROUPHOOK_ON_REMOVE_MEMBER, - GROUPHOOK_ON_CHANGE_LEADER, - GROUPHOOK_ON_DISBAND, - GROUPHOOK_ON_CREATE - }) { } + Eluna_GroupScript() : GroupScript("Eluna_GroupScript", {GROUPHOOK_ON_ADD_MEMBER, + GROUPHOOK_ON_INVITE_MEMBER, + GROUPHOOK_ON_REMOVE_MEMBER, + GROUPHOOK_ON_CHANGE_LEADER, + GROUPHOOK_ON_DISBAND, + GROUPHOOK_ON_CREATE}) {} - void OnAddMember(Group* group, ObjectGuid guid) override + void OnAddMember(Group *group, ObjectGuid guid) override { sEluna->OnAddMember(group, guid); } - void OnInviteMember(Group* group, ObjectGuid guid) override + void OnInviteMember(Group *group, ObjectGuid guid) override { sEluna->OnInviteMember(group, guid); } - void OnRemoveMember(Group* group, ObjectGuid guid, RemoveMethod method, ObjectGuid /* kicker */, const char* /* reason */) override + void OnRemoveMember(Group *group, ObjectGuid guid, RemoveMethod method, ObjectGuid /* kicker */, const char * /* reason */) override { sEluna->OnRemoveMember(group, guid, method); } - void OnChangeLeader(Group* group, ObjectGuid newLeaderGuid, ObjectGuid oldLeaderGuid) override + void OnChangeLeader(Group *group, ObjectGuid newLeaderGuid, ObjectGuid oldLeaderGuid) override { sEluna->OnChangeLeader(group, newLeaderGuid, oldLeaderGuid); } - void OnDisband(Group* group) override + void OnDisband(Group *group) override { sEluna->OnDisband(group); } - void OnCreate(Group* group, Player* leader) override + void OnCreate(Group *group, Player *leader) override { sEluna->OnCreate(group, leader->GetGUID(), group->GetGroupType()); } @@ -457,72 +445,70 @@ public: class Eluna_GuildScript : public GuildScript { public: - Eluna_GuildScript() : GuildScript("Eluna_GuildScript", { - GUILDHOOK_ON_ADD_MEMBER, - GUILDHOOK_ON_REMOVE_MEMBER, - GUILDHOOK_ON_MOTD_CHANGED, - GUILDHOOK_ON_INFO_CHANGED, - GUILDHOOK_ON_CREATE, - GUILDHOOK_ON_DISBAND, - GUILDHOOK_ON_MEMBER_WITDRAW_MONEY, - GUILDHOOK_ON_MEMBER_DEPOSIT_MONEY, - GUILDHOOK_ON_ITEM_MOVE, - GUILDHOOK_ON_EVENT, - GUILDHOOK_ON_BANK_EVENT - }) { } + Eluna_GuildScript() : GuildScript("Eluna_GuildScript", {GUILDHOOK_ON_ADD_MEMBER, + GUILDHOOK_ON_REMOVE_MEMBER, + GUILDHOOK_ON_MOTD_CHANGED, + GUILDHOOK_ON_INFO_CHANGED, + GUILDHOOK_ON_CREATE, + GUILDHOOK_ON_DISBAND, + GUILDHOOK_ON_MEMBER_WITDRAW_MONEY, + GUILDHOOK_ON_MEMBER_DEPOSIT_MONEY, + GUILDHOOK_ON_ITEM_MOVE, + GUILDHOOK_ON_EVENT, + GUILDHOOK_ON_BANK_EVENT}) {} - void OnAddMember(Guild* guild, Player* player, uint8& plRank) override + void OnAddMember(Guild *guild, Player *player, uint8 &plRank) override { sEluna->OnAddMember(guild, player, plRank); } - void OnRemoveMember(Guild* guild, Player* player, bool isDisbanding, bool /*isKicked*/) override + void OnRemoveMember(Guild *guild, Player *player, bool isDisbanding, bool /*isKicked*/) override { sEluna->OnRemoveMember(guild, player, isDisbanding); } - void OnMOTDChanged(Guild* guild, const std::string& newMotd) override + void OnMOTDChanged(Guild *guild, const std::string &newMotd) override { sEluna->OnMOTDChanged(guild, newMotd); } - void OnInfoChanged(Guild* guild, const std::string& newInfo) override + void OnInfoChanged(Guild *guild, const std::string &newInfo) override { sEluna->OnInfoChanged(guild, newInfo); } - void OnCreate(Guild* guild, Player* leader, const std::string& name) override + void OnCreate(Guild *guild, Player *leader, const std::string &name) override { sEluna->OnCreate(guild, leader, name); } - void OnDisband(Guild* guild) override + void OnDisband(Guild *guild) override { sEluna->OnDisband(guild); } - void OnMemberWitdrawMoney(Guild* guild, Player* player, uint32& amount, bool isRepair) override + void OnMemberWitdrawMoney(Guild *guild, Player *player, uint32 &amount, bool isRepair) override { sEluna->OnMemberWitdrawMoney(guild, player, amount, isRepair); } - void OnMemberDepositMoney(Guild* guild, Player* player, uint32& amount) override + void OnMemberDepositMoney(Guild *guild, Player *player, uint32 &amount) override { sEluna->OnMemberDepositMoney(guild, player, amount); } - void OnItemMove(Guild* guild, Player* player, Item* pItem, bool isSrcBank, uint8 srcContainer, uint8 srcSlotId, - bool isDestBank, uint8 destContainer, uint8 destSlotId) override + void OnItemMove(Guild *guild, Player *player, Item *pItem, bool isSrcBank, uint8 srcContainer, uint8 srcSlotId, + bool isDestBank, uint8 destContainer, uint8 destSlotId) override { sEluna->OnItemMove(guild, player, pItem, isSrcBank, srcContainer, srcSlotId, isDestBank, destContainer, destSlotId); } - void OnEvent(Guild* guild, uint8 eventType, ObjectGuid::LowType playerGuid1, ObjectGuid::LowType playerGuid2, uint8 newRank) override + void OnEvent(Guild *guild, uint8 eventType, ObjectGuid::LowType playerGuid1, ObjectGuid::LowType playerGuid2, uint8 newRank) override { sEluna->OnEvent(guild, eventType, playerGuid1, playerGuid2, newRank); } - void OnBankEvent(Guild* guild, uint8 eventType, uint8 tabId, ObjectGuid::LowType playerGuid, uint32 itemOrMoney, uint16 itemStackCount, uint8 destTabId) override + void OnBankEvent(Guild *guild, uint8 eventType, uint8 tabId, ObjectGuid::LowType playerGuid, uint32 itemOrMoney, uint16 itemStackCount, uint8 destTabId) override { sEluna->OnBankEvent(guild, eventType, tabId, playerGuid, itemOrMoney, itemStackCount, destTabId); } @@ -531,11 +517,9 @@ public: class Eluna_LootScript : public LootScript { public: - Eluna_LootScript() : LootScript("Eluna_LootScript", { - LOOTHOOK_ON_LOOT_MONEY - }) { } + Eluna_LootScript() : LootScript("Eluna_LootScript", {LOOTHOOK_ON_LOOT_MONEY}) {} - void OnLootMoney(Player* player, uint32 gold) override + void OnLootMoney(Player *player, uint32 gold) override { sEluna->OnLootMoney(player, gold); } @@ -544,11 +528,9 @@ public: class Eluna_MiscScript : public MiscScript { public: - Eluna_MiscScript() : MiscScript("Eluna_MiscScript", { - MISCHOOK_GET_DIALOG_STATUS - }) { } + Eluna_MiscScript() : MiscScript("Eluna_MiscScript", {MISCHOOK_GET_DIALOG_STATUS}) {} - void GetDialogStatus(Player* player, Object* questgiver) override + void GetDialogStatus(Player *player, Object *questgiver) override { if (questgiver->GetTypeId() == TYPEID_GAMEOBJECT) sEluna->GetDialogStatus(player, questgiver->ToGameObject()); @@ -560,11 +542,9 @@ public: class Eluna_PetScript : public PetScript { public: - Eluna_PetScript() : PetScript("Eluna_PetScript", { - PETHOOK_ON_PET_ADD_TO_WORLD - }) { } + Eluna_PetScript() : PetScript("Eluna_PetScript", {PETHOOK_ON_PET_ADD_TO_WORLD}) {} - void OnPetAddToWorld(Pet* pet) override + void OnPetAddToWorld(Pet *pet) override { sEluna->OnPetAddedToWorld(pet->GetOwner(), pet); } @@ -573,74 +553,73 @@ public: class Eluna_PlayerScript : public PlayerScript { public: - Eluna_PlayerScript() : PlayerScript("Eluna_PlayerScript", { - PLAYERHOOK_ON_PLAYER_RESURRECT, - PLAYERHOOK_CAN_PLAYER_USE_CHAT, - PLAYERHOOK_CAN_PLAYER_USE_PRIVATE_CHAT, - PLAYERHOOK_CAN_PLAYER_USE_GROUP_CHAT, - PLAYERHOOK_CAN_PLAYER_USE_GUILD_CHAT, - PLAYERHOOK_CAN_PLAYER_USE_CHANNEL_CHAT, - PLAYERHOOK_ON_LOOT_ITEM, - PLAYERHOOK_ON_PLAYER_LEARN_TALENTS, - PLAYERHOOK_CAN_USE_ITEM, - PLAYERHOOK_ON_EQUIP, - PLAYERHOOK_ON_PLAYER_ENTER_COMBAT, - PLAYERHOOK_ON_PLAYER_LEAVE_COMBAT, - PLAYERHOOK_CAN_REPOP_AT_GRAVEYARD, - PLAYERHOOK_ON_QUEST_ABANDON, - PLAYERHOOK_ON_MAP_CHANGED, - PLAYERHOOK_ON_GOSSIP_SELECT, - PLAYERHOOK_ON_GOSSIP_SELECT_CODE, - PLAYERHOOK_ON_PVP_KILL, - PLAYERHOOK_ON_CREATURE_KILL, - PLAYERHOOK_ON_PLAYER_KILLED_BY_CREATURE, - PLAYERHOOK_ON_LEVEL_CHANGED, - PLAYERHOOK_ON_FREE_TALENT_POINTS_CHANGED, - PLAYERHOOK_ON_TALENTS_RESET, - PLAYERHOOK_ON_MONEY_CHANGED, - PLAYERHOOK_ON_GIVE_EXP, - PLAYERHOOK_ON_REPUTATION_CHANGE, - PLAYERHOOK_ON_DUEL_REQUEST, - PLAYERHOOK_ON_DUEL_START, - PLAYERHOOK_ON_DUEL_END, - PLAYERHOOK_ON_EMOTE, - PLAYERHOOK_ON_TEXT_EMOTE, - PLAYERHOOK_ON_SPELL_CAST, - PLAYERHOOK_ON_LOGIN, - PLAYERHOOK_ON_LOGOUT, - PLAYERHOOK_ON_CREATE, - PLAYERHOOK_ON_SAVE, - PLAYERHOOK_ON_DELETE, - PLAYERHOOK_ON_BIND_TO_INSTANCE, - PLAYERHOOK_ON_UPDATE_AREA, - PLAYERHOOK_ON_UPDATE_ZONE, - PLAYERHOOK_ON_FIRST_LOGIN, - PLAYERHOOK_ON_LEARN_SPELL, - PLAYERHOOK_ON_ACHI_COMPLETE, - PLAYERHOOK_ON_FFA_PVP_STATE_UPDATE, - PLAYERHOOK_CAN_INIT_TRADE, - PLAYERHOOK_CAN_SEND_MAIL, - PLAYERHOOK_CAN_JOIN_LFG, - PLAYERHOOK_ON_QUEST_REWARD_ITEM, - PLAYERHOOK_ON_GROUP_ROLL_REWARD_ITEM, - PLAYERHOOK_ON_CREATE_ITEM, - PLAYERHOOK_ON_STORE_NEW_ITEM, - PLAYERHOOK_ON_PLAYER_COMPLETE_QUEST, - PLAYERHOOK_CAN_GROUP_INVITE, - PLAYERHOOK_ON_BATTLEGROUND_DESERTION, - PLAYERHOOK_ON_CREATURE_KILLED_BY_PET, - PLAYERHOOK_ON_CAN_UPDATE_SKILL, - PLAYERHOOK_ON_BEFORE_UPDATE_SKILL, - PLAYERHOOK_ON_UPDATE_SKILL, - PLAYERHOOK_CAN_RESURRECT - }) { } + Eluna_PlayerScript() : PlayerScript("Eluna_PlayerScript", {PLAYERHOOK_ON_PLAYER_RESURRECT, + PLAYERHOOK_CAN_PLAYER_USE_CHAT, + PLAYERHOOK_CAN_PLAYER_USE_PRIVATE_CHAT, + PLAYERHOOK_CAN_PLAYER_USE_GROUP_CHAT, + PLAYERHOOK_CAN_PLAYER_USE_GUILD_CHAT, + PLAYERHOOK_CAN_PLAYER_USE_CHANNEL_CHAT, + PLAYERHOOK_ON_LOOT_ITEM, + PLAYERHOOK_ON_PLAYER_LEARN_TALENTS, + PLAYERHOOK_CAN_USE_ITEM, + PLAYERHOOK_ON_EQUIP, + PLAYERHOOK_ON_PLAYER_ENTER_COMBAT, + PLAYERHOOK_ON_PLAYER_LEAVE_COMBAT, + PLAYERHOOK_CAN_REPOP_AT_GRAVEYARD, + PLAYERHOOK_ON_QUEST_ABANDON, + PLAYERHOOK_ON_MAP_CHANGED, + PLAYERHOOK_ON_GOSSIP_SELECT, + PLAYERHOOK_ON_GOSSIP_SELECT_CODE, + PLAYERHOOK_ON_PVP_KILL, + PLAYERHOOK_ON_CREATURE_KILL, + PLAYERHOOK_ON_PLAYER_KILLED_BY_CREATURE, + PLAYERHOOK_ON_LEVEL_CHANGED, + PLAYERHOOK_ON_FREE_TALENT_POINTS_CHANGED, + PLAYERHOOK_ON_TALENTS_RESET, + PLAYERHOOK_ON_MONEY_CHANGED, + PLAYERHOOK_ON_GIVE_EXP, + PLAYERHOOK_ON_REPUTATION_CHANGE, + PLAYERHOOK_ON_DUEL_REQUEST, + PLAYERHOOK_ON_DUEL_START, + PLAYERHOOK_ON_DUEL_END, + PLAYERHOOK_ON_EMOTE, + PLAYERHOOK_ON_TEXT_EMOTE, + PLAYERHOOK_ON_SPELL_CAST, + PLAYERHOOK_ON_LOGIN, + PLAYERHOOK_ON_LOGOUT, + PLAYERHOOK_ON_CREATE, + PLAYERHOOK_ON_SAVE, + PLAYERHOOK_ON_DELETE, + PLAYERHOOK_ON_BIND_TO_INSTANCE, + PLAYERHOOK_ON_UPDATE_AREA, + PLAYERHOOK_ON_UPDATE_ZONE, + PLAYERHOOK_ON_FIRST_LOGIN, + PLAYERHOOK_ON_LEARN_SPELL, + PLAYERHOOK_ON_ACHI_COMPLETE, + PLAYERHOOK_ON_FFA_PVP_STATE_UPDATE, + PLAYERHOOK_CAN_INIT_TRADE, + PLAYERHOOK_CAN_SEND_MAIL, + PLAYERHOOK_CAN_JOIN_LFG, + PLAYERHOOK_ON_QUEST_REWARD_ITEM, + PLAYERHOOK_ON_GROUP_ROLL_REWARD_ITEM, + PLAYERHOOK_ON_CREATE_ITEM, + PLAYERHOOK_ON_STORE_NEW_ITEM, + PLAYERHOOK_ON_PLAYER_COMPLETE_QUEST, + PLAYERHOOK_CAN_GROUP_INVITE, + PLAYERHOOK_ON_BATTLEGROUND_DESERTION, + PLAYERHOOK_ON_CREATURE_KILLED_BY_PET, + PLAYERHOOK_ON_CAN_UPDATE_SKILL, + PLAYERHOOK_ON_BEFORE_UPDATE_SKILL, + PLAYERHOOK_ON_UPDATE_SKILL, + PLAYERHOOK_CAN_RESURRECT, + PLAYERHOOK_ON_BEFORE_TELEPORT}) {} - void OnPlayerResurrect(Player* player, float /*restore_percent*/, bool& /*applySickness*/) override + void OnPlayerResurrect(Player *player, float /*restore_percent*/, bool & /*applySickness*/) override { sEluna->OnResurrect(player); } - bool OnPlayerCanUseChat(Player* player, uint32 type, uint32 lang, std::string& msg) override + bool OnPlayerCanUseChat(Player *player, uint32 type, uint32 lang, std::string &msg) override { if (type != CHAT_MSG_SAY && type != CHAT_MSG_YELL && type != CHAT_MSG_EMOTE) return true; @@ -651,7 +630,7 @@ public: return true; } - bool OnPlayerCanUseChat(Player* player, uint32 type, uint32 lang, std::string& msg, Player* target) override + bool OnPlayerCanUseChat(Player *player, uint32 type, uint32 lang, std::string &msg, Player *target) override { if (!sEluna->OnChat(player, type, lang, msg, target)) return false; @@ -659,7 +638,7 @@ public: return true; } - bool OnPlayerCanUseChat(Player* player, uint32 type, uint32 lang, std::string& msg, Group* group) override + bool OnPlayerCanUseChat(Player *player, uint32 type, uint32 lang, std::string &msg, Group *group) override { if (!sEluna->OnChat(player, type, lang, msg, group)) return false; @@ -667,7 +646,7 @@ public: return true; } - bool OnPlayerCanUseChat(Player* player, uint32 type, uint32 lang, std::string& msg, Guild* guild) override + bool OnPlayerCanUseChat(Player *player, uint32 type, uint32 lang, std::string &msg, Guild *guild) override { if (!sEluna->OnChat(player, type, lang, msg, guild)) return false; @@ -675,7 +654,7 @@ public: return true; } - bool OnPlayerCanUseChat(Player* player, uint32 type, uint32 lang, std::string& msg, Channel* channel) override + bool OnPlayerCanUseChat(Player *player, uint32 type, uint32 lang, std::string &msg, Channel *channel) override { if (!sEluna->OnChat(player, type, lang, msg, channel)) return false; @@ -683,154 +662,154 @@ public: return true; } - void OnPlayerLootItem(Player* player, Item* item, uint32 count, ObjectGuid lootguid) override + void OnPlayerLootItem(Player *player, Item *item, uint32 count, ObjectGuid lootguid) override { sEluna->OnLootItem(player, item, count, lootguid); } - void OnPlayerLearnTalents(Player* player, uint32 talentId, uint32 talentRank, uint32 spellid) override + void OnPlayerLearnTalents(Player *player, uint32 talentId, uint32 talentRank, uint32 spellid) override { sEluna->OnLearnTalents(player, talentId, talentRank, spellid); } - bool OnPlayerCanUseItem(Player* player, ItemTemplate const* proto, InventoryResult& result) override + bool OnPlayerCanUseItem(Player *player, ItemTemplate const *proto, InventoryResult &result) override { result = sEluna->OnCanUseItem(player, proto->ItemId); return result != EQUIP_ERR_OK ? false : true; } - void OnPlayerEquip(Player* player, Item* it, uint8 bag, uint8 slot, bool /*update*/) override + void OnPlayerEquip(Player *player, Item *it, uint8 bag, uint8 slot, bool /*update*/) override { sEluna->OnEquip(player, it, bag, slot); } - void OnPlayerEnterCombat(Player* player, Unit* enemy) override + void OnPlayerEnterCombat(Player *player, Unit *enemy) override { sEluna->OnPlayerEnterCombat(player, enemy); } - void OnPlayerLeaveCombat(Player* player) override + void OnPlayerLeaveCombat(Player *player) override { sEluna->OnPlayerLeaveCombat(player); } - bool OnPlayerCanRepopAtGraveyard(Player* player) override + bool OnPlayerCanRepopAtGraveyard(Player *player) override { sEluna->OnRepop(player); return true; } - void OnPlayerQuestAbandon(Player* player, uint32 questId) override + void OnPlayerQuestAbandon(Player *player, uint32 questId) override { sEluna->OnQuestAbandon(player, questId); } - void OnPlayerMapChanged(Player* player) override + void OnPlayerMapChanged(Player *player) override { sEluna->OnMapChanged(player); } - void OnPlayerGossipSelect(Player* player, uint32 menu_id, uint32 sender, uint32 action) override + void OnPlayerGossipSelect(Player *player, uint32 menu_id, uint32 sender, uint32 action) override { sEluna->HandleGossipSelectOption(player, menu_id, sender, action, ""); } - void OnPlayerGossipSelectCode(Player* player, uint32 menu_id, uint32 sender, uint32 action, const char* code) override + void OnPlayerGossipSelectCode(Player *player, uint32 menu_id, uint32 sender, uint32 action, const char *code) override { sEluna->HandleGossipSelectOption(player, menu_id, sender, action, code); } - void OnPlayerPVPKill(Player* killer, Player* killed) override + void OnPlayerPVPKill(Player *killer, Player *killed) override { sEluna->OnPVPKill(killer, killed); } - void OnPlayerCreatureKill(Player* killer, Creature* killed) override + void OnPlayerCreatureKill(Player *killer, Creature *killed) override { sEluna->OnCreatureKill(killer, killed); } - void OnPlayerKilledByCreature(Creature* killer, Player* killed) override + void OnPlayerKilledByCreature(Creature *killer, Player *killed) override { sEluna->OnPlayerKilledByCreature(killer, killed); } - void OnPlayerLevelChanged(Player* player, uint8 oldLevel) override + void OnPlayerLevelChanged(Player *player, uint8 oldLevel) override { sEluna->OnLevelChanged(player, oldLevel); } - void OnPlayerFreeTalentPointsChanged(Player* player, uint32 points) override + void OnPlayerFreeTalentPointsChanged(Player *player, uint32 points) override { sEluna->OnFreeTalentPointsChanged(player, points); } - void OnPlayerTalentsReset(Player* player, bool noCost) override + void OnPlayerTalentsReset(Player *player, bool noCost) override { sEluna->OnTalentsReset(player, noCost); } - void OnPlayerMoneyChanged(Player* player, int32& amount) override + void OnPlayerMoneyChanged(Player *player, int32 &amount) override { sEluna->OnMoneyChanged(player, amount); } - void OnPlayerGiveXP(Player* player, uint32& amount, Unit* victim, uint8 xpSource) override + void OnPlayerGiveXP(Player *player, uint32 &amount, Unit *victim, uint8 xpSource) override { sEluna->OnGiveXP(player, amount, victim, xpSource); } - bool OnPlayerReputationChange(Player* player, uint32 factionID, int32& standing, bool incremental) override + bool OnPlayerReputationChange(Player *player, uint32 factionID, int32 &standing, bool incremental) override { return sEluna->OnReputationChange(player, factionID, standing, incremental); } - void OnPlayerDuelRequest(Player* target, Player* challenger) override + void OnPlayerDuelRequest(Player *target, Player *challenger) override { sEluna->OnDuelRequest(target, challenger); } - void OnPlayerDuelStart(Player* player1, Player* player2) override + void OnPlayerDuelStart(Player *player1, Player *player2) override { sEluna->OnDuelStart(player1, player2); } - void OnPlayerDuelEnd(Player* winner, Player* loser, DuelCompleteType type) override + void OnPlayerDuelEnd(Player *winner, Player *loser, DuelCompleteType type) override { sEluna->OnDuelEnd(winner, loser, type); } - void OnPlayerEmote(Player* player, uint32 emote) override + void OnPlayerEmote(Player *player, uint32 emote) override { sEluna->OnEmote(player, emote); } - void OnPlayerTextEmote(Player* player, uint32 textEmote, uint32 emoteNum, ObjectGuid guid) override + void OnPlayerTextEmote(Player *player, uint32 textEmote, uint32 emoteNum, ObjectGuid guid) override { sEluna->OnTextEmote(player, textEmote, emoteNum, guid); } - void OnPlayerSpellCast(Player* player, Spell* spell, bool skipCheck) override + void OnPlayerSpellCast(Player *player, Spell *spell, bool skipCheck) override { sEluna->OnPlayerSpellCast(player, spell, skipCheck); } - void OnPlayerLogin(Player* player) override + void OnPlayerLogin(Player *player) override { sEluna->OnLogin(player); } - void OnPlayerLogout(Player* player) override + void OnPlayerLogout(Player *player) override { sEluna->OnLogout(player); } - void OnPlayerCreate(Player* player) override + void OnPlayerCreate(Player *player) override { sEluna->OnCreate(player); } - void OnPlayerSave(Player* player) override + void OnPlayerSave(Player *player) override { sEluna->OnSave(player); } @@ -840,126 +819,129 @@ public: sEluna->OnDelete(guid.GetCounter()); } - void OnPlayerBindToInstance(Player* player, Difficulty difficulty, uint32 mapid, bool permanent) override + void OnPlayerBindToInstance(Player *player, Difficulty difficulty, uint32 mapid, bool permanent) override { sEluna->OnBindToInstance(player, difficulty, mapid, permanent); } - void OnPlayerUpdateArea(Player* player, uint32 oldArea, uint32 newArea) override + void OnPlayerUpdateArea(Player *player, uint32 oldArea, uint32 newArea) override { sEluna->OnUpdateArea(player, oldArea, newArea); } - void OnPlayerUpdateZone(Player* player, uint32 newZone, uint32 newArea) override + void OnPlayerUpdateZone(Player *player, uint32 newZone, uint32 newArea) override { sEluna->OnUpdateZone(player, newZone, newArea); } - void OnPlayerFirstLogin(Player* player) override + void OnPlayerFirstLogin(Player *player) override { sEluna->OnFirstLogin(player); } - void OnPlayerLearnSpell(Player* player, uint32 spellId) override + void OnPlayerLearnSpell(Player *player, uint32 spellId) override { sEluna->OnLearnSpell(player, spellId); } - void OnPlayerAchievementComplete(Player* player, AchievementEntry const* achievement) override + void OnPlayerAchievementComplete(Player *player, AchievementEntry const *achievement) override { sEluna->OnAchiComplete(player, achievement); } - void OnPlayerFfaPvpStateUpdate(Player* player, bool IsFlaggedForFfaPvp) override + void OnPlayerFfaPvpStateUpdate(Player *player, bool IsFlaggedForFfaPvp) override { sEluna->OnFfaPvpStateUpdate(player, IsFlaggedForFfaPvp); } - bool OnPlayerCanInitTrade(Player* player, Player* target) override + bool OnPlayerCanInitTrade(Player *player, Player *target) override { return sEluna->OnCanInitTrade(player, target); } - bool OnPlayerCanSendMail(Player* player, ObjectGuid receiverGuid, ObjectGuid mailbox, std::string& subject, std::string& body, uint32 money, uint32 cod, Item* item) override + bool OnPlayerCanSendMail(Player *player, ObjectGuid receiverGuid, ObjectGuid mailbox, std::string &subject, std::string &body, uint32 money, uint32 cod, Item *item) override { return sEluna->OnCanSendMail(player, receiverGuid, mailbox, subject, body, money, cod, item); } - bool OnPlayerCanJoinLfg(Player* player, uint8 roles, lfg::LfgDungeonSet& dungeons, const std::string& comment) override + bool OnPlayerCanJoinLfg(Player *player, uint8 roles, lfg::LfgDungeonSet &dungeons, const std::string &comment) override { return sEluna->OnCanJoinLfg(player, roles, dungeons, comment); } - void OnPlayerQuestRewardItem(Player* player, Item* item, uint32 count) override + void OnPlayerQuestRewardItem(Player *player, Item *item, uint32 count) override { sEluna->OnQuestRewardItem(player, item, count); } - void OnPlayerGroupRollRewardItem(Player* player, Item* item, uint32 count, RollVote voteType, Roll* roll) override + void OnPlayerGroupRollRewardItem(Player *player, Item *item, uint32 count, RollVote voteType, Roll *roll) override { sEluna->OnGroupRollRewardItem(player, item, count, voteType, roll); } - void OnPlayerCreateItem(Player* player, Item* item, uint32 count) override + void OnPlayerCreateItem(Player *player, Item *item, uint32 count) override { sEluna->OnCreateItem(player, item, count); } - void OnPlayerStoreNewItem(Player* player, Item* item, uint32 count) override + void OnPlayerStoreNewItem(Player *player, Item *item, uint32 count) override { sEluna->OnStoreNewItem(player, item, count); } - void OnPlayerCompleteQuest(Player* player, Quest const* quest) override + void OnPlayerCompleteQuest(Player *player, Quest const *quest) override { sEluna->OnPlayerCompleteQuest(player, quest); } - bool OnPlayerCanGroupInvite(Player* player, std::string& memberName) override + bool OnPlayerCanGroupInvite(Player *player, std::string &memberName) override { return sEluna->OnCanGroupInvite(player, memberName); } - void OnPlayerBattlegroundDesertion(Player* player, const BattlegroundDesertionType type) override + void OnPlayerBattlegroundDesertion(Player *player, const BattlegroundDesertionType type) override { sEluna->OnBattlegroundDesertion(player, type); } - void OnPlayerCreatureKilledByPet(Player* player, Creature* killed) override + void OnPlayerCreatureKilledByPet(Player *player, Creature *killed) override { sEluna->OnCreatureKilledByPet(player, killed); } - bool OnPlayerCanUpdateSkill(Player* player, uint32 skill_id) override + bool OnPlayerCanUpdateSkill(Player *player, uint32 skill_id) override { return sEluna->OnPlayerCanUpdateSkill(player, skill_id); } - void OnPlayerBeforeUpdateSkill(Player* player, uint32 skill_id, uint32& value, uint32 max, uint32 step) override + void OnPlayerBeforeUpdateSkill(Player *player, uint32 skill_id, uint32 &value, uint32 max, uint32 step) override { sEluna->OnPlayerBeforeUpdateSkill(player, skill_id, value, max, step); } - void OnPlayerUpdateSkill(Player* player, uint32 skill_id, uint32 value, uint32 max, uint32 step, uint32 new_value) override + void OnPlayerUpdateSkill(Player *player, uint32 skill_id, uint32 value, uint32 max, uint32 step, uint32 new_value) override { sEluna->OnPlayerUpdateSkill(player, skill_id, value, max, step, new_value); } - - bool OnPlayerCanResurrect(Player* player) override + + bool OnPlayerCanResurrect(Player *player) override { return sEluna->CanPlayerResurrect(player); } + + bool OnPlayerBeforeTeleport(Player *player, uint32 mapid, float x, float y, float z, float orientation, uint32 options, Unit *target) + { + return sEluna->OnPlayerBeforeTeleport(player, mapid, x, y, z, orientation, options, target); + } }; class Eluna_ServerScript : public ServerScript { public: - Eluna_ServerScript() : ServerScript("Eluna_ServerScript", { - SERVERHOOK_CAN_PACKET_SEND, - SERVERHOOK_CAN_PACKET_RECEIVE - }) { } + Eluna_ServerScript() : ServerScript("Eluna_ServerScript", {SERVERHOOK_CAN_PACKET_SEND, + SERVERHOOK_CAN_PACKET_RECEIVE}) {} - bool CanPacketSend(WorldSession* session, WorldPacket const& packet) override + bool CanPacketSend(WorldSession *session, WorldPacket const &packet) override { if (!sEluna->OnPacketSend(session, packet)) return false; @@ -967,7 +949,7 @@ public: return true; } - bool CanPacketReceive(WorldSession* session, WorldPacket& packet) override + bool CanPacketReceive(WorldSession *session, WorldPacket &packet) override { if (!sEluna->OnPacketReceive(session, packet)) return false; @@ -979,41 +961,39 @@ public: class Eluna_SpellSC : public SpellSC { public: - Eluna_SpellSC() : SpellSC("Eluna_SpellSC", { - ALLSPELLHOOK_ON_DUMMY_EFFECT_GAMEOBJECT, - ALLSPELLHOOK_ON_DUMMY_EFFECT_CREATURE, - ALLSPELLHOOK_ON_DUMMY_EFFECT_ITEM, - ALLSPELLHOOK_ON_CAST_CANCEL, - ALLSPELLHOOK_ON_CAST, - ALLSPELLHOOK_ON_PREPARE - }) { } + Eluna_SpellSC() : SpellSC("Eluna_SpellSC", {ALLSPELLHOOK_ON_DUMMY_EFFECT_GAMEOBJECT, + ALLSPELLHOOK_ON_DUMMY_EFFECT_CREATURE, + ALLSPELLHOOK_ON_DUMMY_EFFECT_ITEM, + ALLSPELLHOOK_ON_CAST_CANCEL, + ALLSPELLHOOK_ON_CAST, + ALLSPELLHOOK_ON_PREPARE}) {} - void OnDummyEffect(WorldObject* caster, uint32 spellID, SpellEffIndex effIndex, GameObject* gameObjTarget) override + void OnDummyEffect(WorldObject *caster, uint32 spellID, SpellEffIndex effIndex, GameObject *gameObjTarget) override { sEluna->OnDummyEffect(caster, spellID, effIndex, gameObjTarget); } - void OnDummyEffect(WorldObject* caster, uint32 spellID, SpellEffIndex effIndex, Creature* creatureTarget) override + void OnDummyEffect(WorldObject *caster, uint32 spellID, SpellEffIndex effIndex, Creature *creatureTarget) override { sEluna->OnDummyEffect(caster, spellID, effIndex, creatureTarget); } - void OnDummyEffect(WorldObject* caster, uint32 spellID, SpellEffIndex effIndex, Item* itemTarget) override + void OnDummyEffect(WorldObject *caster, uint32 spellID, SpellEffIndex effIndex, Item *itemTarget) override { sEluna->OnDummyEffect(caster, spellID, effIndex, itemTarget); } - void OnSpellCastCancel(Spell* spell, Unit* caster, SpellInfo const* spellInfo, bool bySelf) override + void OnSpellCastCancel(Spell *spell, Unit *caster, SpellInfo const *spellInfo, bool bySelf) override { sEluna->OnSpellCastCancel(caster, spell, spellInfo, bySelf); } - void OnSpellCast(Spell* spell, Unit* caster, SpellInfo const* spellInfo, bool skipCheck) override + void OnSpellCast(Spell *spell, Unit *caster, SpellInfo const *spellInfo, bool skipCheck) override { sEluna->OnSpellCast(caster, spell, spellInfo, skipCheck); } - void OnSpellPrepare(Spell* spell, Unit* caster, SpellInfo const* spellInfo) override + void OnSpellPrepare(Spell *spell, Unit *caster, SpellInfo const *spellInfo) override { sEluna->OnSpellPrepare(caster, spell, spellInfo); } @@ -1022,29 +1002,29 @@ public: class Eluna_VehicleScript : public VehicleScript { public: - Eluna_VehicleScript() : VehicleScript("Eluna_VehicleScript") { } + Eluna_VehicleScript() : VehicleScript("Eluna_VehicleScript") {} - void OnInstall(Vehicle* veh) override + void OnInstall(Vehicle *veh) override { sEluna->OnInstall(veh); } - void OnUninstall(Vehicle* veh) override + void OnUninstall(Vehicle *veh) override { sEluna->OnUninstall(veh); } - void OnInstallAccessory(Vehicle* veh, Creature* accessory) override + void OnInstallAccessory(Vehicle *veh, Creature *accessory) override { sEluna->OnInstallAccessory(veh, accessory); } - void OnAddPassenger(Vehicle* veh, Unit* passenger, int8 seatId) override + void OnAddPassenger(Vehicle *veh, Unit *passenger, int8 seatId) override { sEluna->OnAddPassenger(veh, passenger, seatId); } - void OnRemovePassenger(Vehicle* veh, Unit* passenger) override + void OnRemovePassenger(Vehicle *veh, Unit *passenger) override { sEluna->OnRemovePassenger(veh, passenger); } @@ -1053,31 +1033,29 @@ public: class Eluna_WorldObjectScript : public WorldObjectScript { public: - Eluna_WorldObjectScript() : WorldObjectScript("Eluna_WorldObjectScript", { - WORLDOBJECTHOOK_ON_WORLD_OBJECT_DESTROY, - WORLDOBJECTHOOK_ON_WORLD_OBJECT_CREATE, - WORLDOBJECTHOOK_ON_WORLD_OBJECT_SET_MAP, - WORLDOBJECTHOOK_ON_WORLD_OBJECT_UPDATE - }) { } + Eluna_WorldObjectScript() : WorldObjectScript("Eluna_WorldObjectScript", {WORLDOBJECTHOOK_ON_WORLD_OBJECT_DESTROY, + WORLDOBJECTHOOK_ON_WORLD_OBJECT_CREATE, + WORLDOBJECTHOOK_ON_WORLD_OBJECT_SET_MAP, + WORLDOBJECTHOOK_ON_WORLD_OBJECT_UPDATE}) {} - void OnWorldObjectDestroy(WorldObject* object) override + void OnWorldObjectDestroy(WorldObject *object) override { ResetElunaEventProcessor(object); } - void OnWorldObjectCreate(WorldObject* object) override + void OnWorldObjectCreate(WorldObject *object) override { ResetElunaEventProcessor(object); } - void OnWorldObjectSetMap(WorldObject* object, Map* /*map*/) override + void OnWorldObjectSetMap(WorldObject *object, Map * /*map*/) override { EnsureElunaEventProcessor(object, &Eluna::GEluna); } - void OnWorldObjectUpdate(WorldObject* object, uint32 diff) override + void OnWorldObjectUpdate(WorldObject *object, uint32 diff) override { - if (ElunaEventProcessor* processor = GetElunaEventProcessor(object)) + if (ElunaEventProcessor *processor = GetElunaEventProcessor(object)) processor->Update(diff); } }; @@ -1085,18 +1063,16 @@ public: class Eluna_WorldScript : public WorldScript { public: - Eluna_WorldScript() : WorldScript("Eluna_WorldScript", { - WORLDHOOK_ON_OPEN_STATE_CHANGE, - WORLDHOOK_ON_BEFORE_CONFIG_LOAD, - WORLDHOOK_ON_AFTER_CONFIG_LOAD, - WORLDHOOK_ON_SHUTDOWN_INITIATE, - WORLDHOOK_ON_SHUTDOWN_CANCEL, - WORLDHOOK_ON_UPDATE, - WORLDHOOK_ON_STARTUP, - WORLDHOOK_ON_SHUTDOWN, - WORLDHOOK_ON_AFTER_UNLOAD_ALL_MAPS, - WORLDHOOK_ON_BEFORE_WORLD_INITIALIZED - }) { } + Eluna_WorldScript() : WorldScript("Eluna_WorldScript", {WORLDHOOK_ON_OPEN_STATE_CHANGE, + WORLDHOOK_ON_BEFORE_CONFIG_LOAD, + WORLDHOOK_ON_AFTER_CONFIG_LOAD, + WORLDHOOK_ON_SHUTDOWN_INITIATE, + WORLDHOOK_ON_SHUTDOWN_CANCEL, + WORLDHOOK_ON_UPDATE, + WORLDHOOK_ON_STARTUP, + WORLDHOOK_ON_SHUTDOWN, + WORLDHOOK_ON_AFTER_UNLOAD_ALL_MAPS, + WORLDHOOK_ON_BEFORE_WORLD_INITIALIZED}) {} void OnOpenStateChange(bool open) override { @@ -1112,7 +1088,7 @@ public: LOG_INFO("eluna", "Initialize Eluna Lua Engine..."); Eluna::Initialize(); - if(sEluna->IsInitialized()) + if (sEluna->IsInitialized()) sEluna->RunScripts(); } @@ -1163,29 +1139,27 @@ public: class Eluna_TicketScript : public TicketScript { public: - Eluna_TicketScript() : TicketScript("Eluna_TicketScript", { - TICKETHOOK_ON_TICKET_CREATE, - TICKETHOOK_ON_TICKET_UPDATE_LAST_CHANGE, - TICKETHOOK_ON_TICKET_CLOSE, - TICKETHOOK_ON_TICKET_RESOLVE - }) { } + Eluna_TicketScript() : TicketScript("Eluna_TicketScript", {TICKETHOOK_ON_TICKET_CREATE, + TICKETHOOK_ON_TICKET_UPDATE_LAST_CHANGE, + TICKETHOOK_ON_TICKET_CLOSE, + TICKETHOOK_ON_TICKET_RESOLVE}) {} - void OnTicketCreate(GmTicket* ticket) override + void OnTicketCreate(GmTicket *ticket) override { sEluna->OnTicketCreate(ticket); } - void OnTicketUpdateLastChange(GmTicket* ticket) override + void OnTicketUpdateLastChange(GmTicket *ticket) override { sEluna->OnTicketUpdateLastChange(ticket); } - void OnTicketClose(GmTicket* ticket) override + void OnTicketClose(GmTicket *ticket) override { sEluna->OnTicketClose(ticket); } - void OnTicketResolve(GmTicket* ticket) override + void OnTicketResolve(GmTicket *ticket) override { sEluna->OnTicketResolve(ticket); } @@ -1194,9 +1168,9 @@ public: class Eluna_UnitScript : public UnitScript { public: - Eluna_UnitScript() : UnitScript("Eluna_UnitScript") { } + Eluna_UnitScript() : UnitScript("Eluna_UnitScript") {} - void OnAuraApply(Unit* unit, Aura* aura) override + void OnAuraApply(Unit *unit, Aura *aura) override { if (unit->IsPlayer()) sEluna->OnPlayerAuraApply(unit->ToPlayer(), aura); @@ -1205,7 +1179,7 @@ public: sEluna->OnCreatureAuraApply(unit->ToCreature(), aura); } - void OnHeal(Unit* healer, Unit* receiver, uint32& gain) override + void OnHeal(Unit *healer, Unit *receiver, uint32 &gain) override { if (!healer) return; @@ -1217,7 +1191,7 @@ public: sEluna->OnCreatureHeal(healer->ToCreature(), receiver, gain); } - void OnDamage(Unit* attacker, Unit* receiver, uint32& damage) override + void OnDamage(Unit *attacker, Unit *receiver, uint32 &damage) override { if (!attacker) return; diff --git a/modules/mod-eluna/src/LuaEngine/Hooks.h b/modules/mod-eluna/src/LuaEngine/Hooks.h index 553c4951b..25e60437b 100644 --- a/modules/mod-eluna/src/LuaEngine/Hooks.h +++ b/modules/mod-eluna/src/LuaEngine/Hooks.h @@ -233,6 +233,7 @@ namespace Hooks PLAYER_EVENT_ON_AURA_APPLY = 64, // (event, player, aura) PLAYER_EVENT_ON_HEAL = 65, // (event, player, target, gain) - Can return new heal amount PLAYER_EVENT_ON_DAMAGE = 66, // (event, player, target, damage) - Can return new damage amount + PLAYER_EVENT_ON_BEFORE_TELEPORT = 67, // (event, player, mapid, x, y, z, orientation, options, target) PLAYER_EVENT_COUNT }; diff --git a/modules/mod-eluna/src/LuaEngine/LuaEngine.h b/modules/mod-eluna/src/LuaEngine/LuaEngine.h index 4f385637b..dfda5e511 100644 --- a/modules/mod-eluna/src/LuaEngine/LuaEngine.h +++ b/modules/mod-eluna/src/LuaEngine/LuaEngine.h @@ -497,6 +497,7 @@ public: void OnPlayerAuraApply(Player* player, Aura* aura); void OnPlayerHeal(Player* player, Unit* target, uint32& gain); void OnPlayerDamage(Player* player, Unit* target, uint32& gain); + void OnBeforeTeleport(Player* player, uint32 mapid, float x, float y, float z, float orientation, uint32 options, Unit* target); /* Vehicle */ void OnInstall(Vehicle* vehicle); diff --git a/modules/mod-eluna/src/LuaEngine/hooks/PlayerHooks.cpp b/modules/mod-eluna/src/LuaEngine/hooks/PlayerHooks.cpp index 198c75f7b..7566c2215 100644 --- a/modules/mod-eluna/src/LuaEngine/hooks/PlayerHooks.cpp +++ b/modules/mod-eluna/src/LuaEngine/hooks/PlayerHooks.cpp @@ -825,4 +825,20 @@ void Eluna::OnPlayerDamage(Player* player, Unit* target, uint32& damage) } CleanUpStack(3); -} \ No newline at end of file +} + +void Eluna::OnPlayerBeforeTeleport(Player* player, uint32 mapid, float x, float y, float z, float orientation, uint32 options, Unit* target) +{ + START_HOOK(PLAYER_EVENT_ON_BEFORE_TELEPORT); + + Push(player); + Push(mapid); + Push(x); + Push(y); + Push(z); + Push(orientation); + Push(options); + Push(target); + + return CallAllFunctionsBool(PlayerEventBindings, key); +}