aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorModoX <moardox@gmail.com>2023-08-29 08:39:41 +0200
committerModoX <moardox@gmail.com>2023-08-29 08:47:02 +0200
commitbb5eab4c369326a27c2b4a80d178b9a13780f7a3 (patch)
treed25d6c95c14fb77c34be843cd2324b7b71c7a147 /src
parent72b9aace54e44d30c323bd1acda630125e8a574d (diff)
Core/GameObjects: Added some checks to GAMEOBJECT_TYPE_NEW_FLAG and GAMEOBJECT_TYPE_NEW_FLAG_DROP to prevent exploits
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Entities/GameObject/GameObject.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/server/game/Entities/GameObject/GameObject.cpp b/src/server/game/Entities/GameObject/GameObject.cpp
index ad7e9c68127..420c20f90fc 100644
--- a/src/server/game/Entities/GameObject/GameObject.cpp
+++ b/src/server/game/Entities/GameObject/GameObject.cpp
@@ -2966,7 +2966,11 @@ void GameObject::Use(Unit* user)
if (!info)
return;
- if (user->GetTypeId() != TYPEID_PLAYER)
+ Player* player = user->ToPlayer();
+ if (!player)
+ return;
+
+ if (!player->CanUseBattlegroundObject(this))
return;
GameObjectType::NewFlag const* newFlag = dynamic_cast<GameObjectType::NewFlag const*>(m_goTypeImpl.get());
@@ -2989,6 +2993,9 @@ void GameObject::Use(Unit* user)
if (user->GetTypeId() != TYPEID_PLAYER)
return;
+ if (!user->IsAlive())
+ return;
+
if (GameObject* owner = GetMap()->GetGameObject(GetOwnerGUID()))
{
if (owner->GetGoType() == GAMEOBJECT_TYPE_NEW_FLAG)