From bb5eab4c369326a27c2b4a80d178b9a13780f7a3 Mon Sep 17 00:00:00 2001 From: ModoX Date: Tue, 29 Aug 2023 08:39:41 +0200 Subject: Core/GameObjects: Added some checks to GAMEOBJECT_TYPE_NEW_FLAG and GAMEOBJECT_TYPE_NEW_FLAG_DROP to prevent exploits --- src/server/game/Entities/GameObject/GameObject.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'src') 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(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) -- cgit v1.2.3