#pragma once #include #include #include #include #include "Item.h" #include "minecraft/world/item/ItemInstance.h" class EnchantmentInstance; class CompoundTag; class Enchantment; class Random; class WeighedTreasure; template class ListTag; class EnchantedBookItem : public Item { public: static const std::string TAG_STORED_ENCHANTMENTS; EnchantedBookItem(int id); bool isFoil(std::shared_ptr itemInstance); bool isEnchantable(std::shared_ptr itemInstance); const Rarity* getRarity(std::shared_ptr itemInstance); ListTag* getEnchantments(std::shared_ptr item); void appendHoverText(std::shared_ptr itemInstance, std::shared_ptr player, std::vector* lines, bool advanced); void addEnchantment(std::shared_ptr item, EnchantmentInstance* enchantment); std::shared_ptr createForEnchantment( EnchantmentInstance* enchant); void createForEnchantment( Enchantment* enchant, std::vector >* items); std::shared_ptr createForRandomLoot(Random* random); WeighedTreasure* createForRandomTreasure(Random* random); WeighedTreasure* createForRandomTreasure(Random* random, int minCount, int maxCount, int weight); };