feat: add PLAYER_EVENT_ON_CAN_INIT_TRADE (#83)

This commit is contained in:
Axel Cocat
2022-12-31 00:35:58 +01:00
committed by GitHub
parent f40b9c07f0
commit 1e57b45c40
6 changed files with 17 additions and 1 deletions

View File

@@ -82,6 +82,7 @@ Eluna API for AC:
- Added `RegisterPlayerEvent` `45` (`PLAYER_ON_ACHIEVEMENT_COMPLETE`): https://github.com/azerothcore/mod-eluna/pull/47
- Added `RegisterPlayerEvent` `46` (`PLAYER_EVENT_ON_FFAPVP_CHANGE`): https://github.com/azerothcore/mod-eluna/pull/63
- Added `RegisterPlayerEvent` `47` (`PLAYER_EVENT_ON_UPDATE_AREA`): https://github.com/azerothcore/mod-eluna/pull/65
- Added `RegisterPlayerEvent` `48` (`PLAYER_EVENT_ON_CAN_INIT_TRADE`): https://github.com/azerothcore/mod-eluna/pull/83
- Added `Player:GetMailCount()`: https://github.com/azerothcore/mod-eluna/pull/76
- Added `Player:GetXP()`: https://github.com/azerothcore/mod-eluna/pull/77
- Added `Player:GetAchievementCriteriaProgress()`: https://github.com/azerothcore/mod-eluna/pull/78

View File

@@ -756,6 +756,11 @@ public:
{
sEluna->OnFfaPvpStateUpdate(player, IsFlaggedForFfaPvp);
}
bool CanInitTrade(Player* player, Player* target) override
{
return sEluna->OnCanInitTrade(player, target);
}
};
class Eluna_ServerScript : public ServerScript

View File

@@ -720,6 +720,7 @@ namespace LuaGlobalFunctions
* PLAYER_EVENT_ON_ACHIEVEMENT_COMPLETE = 45, // (event, player, achievement)
* PLAYER_EVENT_ON_FFAPVP_CHANGE = 46, // (event, player, hasFfaPvp)
* PLAYER_EVENT_ON_UPDATE_AREA = 47, // (event, player, oldArea, newArea)
* PLAYER_EVENT_ON_CAN_INIT_TRADE = 48, // (event, player, target) - Can return false to prevent the trade
* };
* </pre>
*

View File

@@ -209,6 +209,7 @@ namespace Hooks
PLAYER_EVENT_ON_ACHIEVEMENT_COMPLETE = 45, // (event, player, achievement)
PLAYER_EVENT_ON_FFAPVP_CHANGE = 46, // (event, player, hasFfaPvp)
PLAYER_EVENT_ON_UPDATE_AREA = 47, // (event, player, oldArea, newArea)
PLAYER_EVENT_ON_CAN_INIT_TRADE = 48, // (event, player, target) - Can return false to prevent the trade
PLAYER_EVENT_COUNT
};

View File

@@ -476,6 +476,7 @@ public:
void OnLearnSpell(Player* player, uint32 spellId);
void OnAchiComplete(Player* player, AchievementEntry const* achievement);
void OnFfaPvpStateUpdate(Player* player, bool hasFfaPvp);
bool OnCanInitTrade(Player* player, Player* target);
#ifndef CLASSIC
#ifndef TBC

View File

@@ -584,7 +584,6 @@ void Eluna::OnAchiComplete(Player* player, AchievementEntry const* achievement)
CallAllFunctions(PlayerEventBindings, key);
}
void Eluna::OnFfaPvpStateUpdate(Player* player, bool hasFfaPvp)
{
START_HOOK(PLAYER_EVENT_ON_FFAPVP_CHANGE);
@@ -592,3 +591,11 @@ void Eluna::OnFfaPvpStateUpdate(Player* player, bool hasFfaPvp)
Push(hasFfaPvp);
CallAllFunctions(PlayerEventBindings, key);
}
bool Eluna::OnCanInitTrade(Player* player, Player* target)
{
START_HOOK_WITH_RETVAL(PLAYER_EVENT_ON_CAN_INIT_TRADE, true);
Push(player);
Push(target);
return CallAllFunctionsBool(PlayerEventBindings, key);
}