From 51e2d7f99797478c0ed367f493bd8ae88d767108 Mon Sep 17 00:00:00 2001 From: Shauren Date: Wed, 13 Apr 2016 17:35:03 +0200 Subject: Core/Toys: Check whether player has the toy he is attempting to use and if that toy has the spell that player is trying to cast --- src/server/game/Handlers/ToyHandler.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'src/server/game/Handlers/ToyHandler.cpp') diff --git a/src/server/game/Handlers/ToyHandler.cpp b/src/server/game/Handlers/ToyHandler.cpp index 0d8ce1cb0d8..6c41ceadd8b 100644 --- a/src/server/game/Handlers/ToyHandler.cpp +++ b/src/server/game/Handlers/ToyHandler.cpp @@ -51,6 +51,17 @@ void WorldSession::HandleUseToy(WorldPackets::Toy::UseToy& packet) if (!item) return; + if (!_collectionMgr->HasToy(packet.ItemID)) + return; + + auto effect = std::find_if(item->Effects.begin(), item->Effects.end(), [&packet](ItemEffectEntry const* effect) + { + return packet.Cast.SpellID = effect->SpellID; + }); + + if (effect == item->Effects.end()) + return; + SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(packet.Cast.SpellID); if (!spellInfo) { -- cgit v1.2.3