diff --git a/src/server/game/Entities/Player/PlayerStorage.cpp b/src/server/game/Entities/Player/PlayerStorage.cpp index a568772cf..a4f5d9b6f 100644 --- a/src/server/game/Entities/Player/PlayerStorage.cpp +++ b/src/server/game/Entities/Player/PlayerStorage.cpp @@ -2391,10 +2391,37 @@ InventoryResult Player::CanRollForItemInLFG(ItemTemplate const* proto, WorldObje if (proto->Class == ITEM_CLASS_WEAPON && GetSkillValue(item_weapon_skills[proto->SubClass]) == 0) return EQUIP_ERR_NO_REQUIRED_PROFICIENCY; - // check for shields - if ((proto->SubClass == ITEM_SUBCLASS_ARMOR_SHIELD) && !(_class == CLASS_PALADIN || _class == CLASS_WARRIOR || _class == CLASS_SHAMAN)) + if (proto->Class == ITEM_CLASS_ARMOR) { - return EQUIP_ERR_NO_REQUIRED_PROFICIENCY; + // Check for shields + if (proto->SubClass == ITEM_SUBCLASS_ARMOR_SHIELD && !(_class == CLASS_PALADIN || _class == CLASS_WARRIOR || _class == CLASS_SHAMAN)) + { + return EQUIP_ERR_NO_REQUIRED_PROFICIENCY; + } + + // Check for librams. + if (proto->SubClass == ITEM_SUBCLASS_ARMOR_LIBRAM && _class != CLASS_PALADIN) + { + return EQUIP_ERR_YOU_CAN_NEVER_USE_THAT_ITEM; + } + + // CHeck for idols. + if (proto->SubClass == ITEM_SUBCLASS_ARMOR_IDOL && _class != CLASS_DRUID) + { + return EQUIP_ERR_YOU_CAN_NEVER_USE_THAT_ITEM; + } + + // Check for totems. + if (proto->SubClass == ITEM_SUBCLASS_ARMOR_TOTEM && _class != CLASS_SHAMAN) + { + return EQUIP_ERR_YOU_CAN_NEVER_USE_THAT_ITEM; + } + + // Check for sigils. + if (proto->SubClass == ITEM_SUBCLASS_ARMOR_SIGIL && _class != CLASS_DEATH_KNIGHT) + { + return EQUIP_ERR_YOU_CAN_NEVER_USE_THAT_ITEM; + } } if (proto->Class == ITEM_CLASS_ARMOR && proto->SubClass > ITEM_SUBCLASS_ARMOR_MISC && proto->SubClass < ITEM_SUBCLASS_ARMOR_BUCKLER &&