mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-01-13 09:17:18 +00:00
feat(Core/PlayerScript): Add Unequip hook (#23248)
Co-authored-by: Munzeria <Munzeria@dontemailme.lol> Co-authored-by: sudlud <sudlud@users.noreply.github.com>
This commit is contained in:
@@ -3540,6 +3540,8 @@ void Player::SwapItem(uint16 src, uint16 dst)
|
||||
Item* pSrcItem = GetItemByPos(srcbag, srcslot);
|
||||
Item* pDstItem = GetItemByPos(dstbag, dstslot);
|
||||
|
||||
bool isUnequipingItem = false;
|
||||
|
||||
if (!pSrcItem)
|
||||
return;
|
||||
|
||||
@@ -3570,6 +3572,7 @@ void Player::SwapItem(uint16 src, uint16 dst)
|
||||
SendEquipError(msg, pSrcItem, pDstItem);
|
||||
return;
|
||||
}
|
||||
isUnequipingItem = true;
|
||||
}
|
||||
|
||||
// anti-wpe
|
||||
@@ -3670,6 +3673,9 @@ void Player::SwapItem(uint16 src, uint16 dst)
|
||||
AutoUnequipOffhandIfNeed();
|
||||
}
|
||||
|
||||
if (isUnequipingItem)
|
||||
sScriptMgr->OnPlayerUnequip(this, pSrcItem);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -329,6 +329,11 @@ void ScriptMgr::OnPlayerEquip(Player* player, Item* it, uint8 bag, uint8 slot, b
|
||||
CALL_ENABLED_HOOKS(PlayerScript, PLAYERHOOK_ON_EQUIP, script->OnPlayerEquip(player, it, bag, slot, update));
|
||||
}
|
||||
|
||||
void ScriptMgr::OnPlayerUnequip(Player* player, Item* it)
|
||||
{
|
||||
CALL_ENABLED_HOOKS(PlayerScript, PLAYERHOOK_ON_UNEQUIP_ITEM, script->OnPlayerUnequip(player, it));
|
||||
}
|
||||
|
||||
void ScriptMgr::OnPlayerJoinBG(Player* player)
|
||||
{
|
||||
CALL_ENABLED_HOOKS(PlayerScript, PLAYERHOOK_ON_PLAYER_JOIN_BG, script->OnPlayerJoinBG(player));
|
||||
|
||||
@@ -88,6 +88,7 @@ enum PlayerHook
|
||||
PLAYERHOOK_ON_AFTER_SET_VISIBLE_ITEM_SLOT,
|
||||
PLAYERHOOK_ON_AFTER_MOVE_ITEM_FROM_INVENTORY,
|
||||
PLAYERHOOK_ON_EQUIP,
|
||||
PLAYERHOOK_ON_UNEQUIP_ITEM,
|
||||
PLAYERHOOK_ON_PLAYER_JOIN_BG,
|
||||
PLAYERHOOK_ON_PLAYER_JOIN_ARENA,
|
||||
PLAYERHOOK_GET_CUSTOM_GET_ARENA_TEAM_ID,
|
||||
@@ -395,6 +396,9 @@ public:
|
||||
// After an item has been equipped
|
||||
virtual void OnPlayerEquip(Player* /*player*/, Item* /*it*/, uint8 /*bag*/, uint8 /*slot*/, bool /*update*/) { }
|
||||
|
||||
// After an item has been unequipped
|
||||
virtual void OnPlayerUnequip(Player* /*player*/, Item* /*it*/) { }
|
||||
|
||||
// After player enters queue for BG
|
||||
virtual void OnPlayerJoinBG(Player* /*player*/) { }
|
||||
|
||||
|
||||
@@ -351,6 +351,7 @@ public: /* PlayerScript */
|
||||
void OnPlayerAfterSetVisibleItemSlot(Player* player, uint8 slot, Item* item);
|
||||
void OnPlayerAfterMoveItemFromInventory(Player* player, Item* it, uint8 bag, uint8 slot, bool update);
|
||||
void OnPlayerEquip(Player* player, Item* it, uint8 bag, uint8 slot, bool update);
|
||||
void OnPlayerUnequip(Player* player, Item* it);
|
||||
void OnPlayerJoinBG(Player* player);
|
||||
void OnPlayerJoinArena(Player* player);
|
||||
void OnPlayerGetMaxPersonalArenaRatingRequirement(Player const* player, uint32 minSlot, uint32& maxArenaRating) const;
|
||||
|
||||
Reference in New Issue
Block a user