diff options
-rw-r--r-- | src/server/game/Handlers/ItemHandler.cpp | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/server/game/Handlers/ItemHandler.cpp b/src/server/game/Handlers/ItemHandler.cpp index 9ab11be9858..168d45cecca 100644 --- a/src/server/game/Handlers/ItemHandler.cpp +++ b/src/server/game/Handlers/ItemHandler.cpp @@ -1581,6 +1581,13 @@ void WorldSession::HandleReforgeItemOpcode(WorldPacket& recvData) if (!reforgeEntry) { + if (!item->GetEnchantmentId(REFORGE_ENCHANTMENT_SLOT)) + { + TC_LOG_ERROR("network", "WORLD: HandleReforgeItemOpcode - Player (Guid: %u Name: %s) tried to remove reforge from non-reforged item (Entry: %u)", player->GetGUIDLow(), player->GetName().c_str(), item->GetEntry()); + SendReforgeResult(false); + return; + } + // Reset the item if (item->IsEquipped()) player->ApplyReforgeEnchantment(item, false); @@ -1589,6 +1596,13 @@ void WorldSession::HandleReforgeItemOpcode(WorldPacket& recvData) return; } + if (item->GetEnchantmentId(REFORGE_ENCHANTMENT_SLOT)) + { + TC_LOG_ERROR("network", "WORLD: HandleReforgeItemOpcode - Player (Guid: %u Name: %s) tried to reforge an already reforged item (Entry: %u)", player->GetGUIDLow(), player->GetName().c_str(), item->GetEntry()); + SendReforgeResult(false); + return; + } + ItemReforgeEntry const* stats = sItemReforgeStore.LookupEntry(reforgeEntry); if (!stats) { |