32        private int $slotFlags,
 
   33        private array $equipActivatedEnchantments,
 
   34        private array $heldActivatedEnchantments,
 
   35        private array $selfActivatedEnchantments,
 
 
   40    public function getCost() : int{ return $this->cost; }
 
   42    public function getSlotFlags() : int{ return $this->slotFlags; }
 
   53    public function getName() : string{ return $this->name; }
 
   55    public function getOptionId() : int{ return $this->optionId; }
 
   60    private static function readEnchantList(ByteBufferReader $in) : array{
 
   62        for($i = 0, $len = VarInt::readUnsignedInt($in); $i < $len; ++$i){
 
   63            $result[] = Enchant::read($in);
 
   71    private static function writeEnchantList(ByteBufferWriter $out, array $list) : void{
 
   72        VarInt::writeUnsignedInt($out, count($list));
 
   73        foreach($list as $item){
 
   78    public static function read(ByteBufferReader $in) : self{
 
   79        $cost = VarInt::readUnsignedInt($in);
 
   81        $slotFlags = LE::readUnsignedInt($in);
 
   82        $equipActivatedEnchants = self::readEnchantList($in);
 
   83        $heldActivatedEnchants = self::readEnchantList($in);
 
   84        $selfActivatedEnchants = self::readEnchantList($in);
 
   86        $name = CommonTypes::getString($in);
 
   87        $optionId = CommonTypes::readRecipeNetId($in);
 
   89        return new self($cost, $slotFlags, $equipActivatedEnchants, $heldActivatedEnchants, $selfActivatedEnchants, $name, $optionId);
 
   92    public function write(ByteBufferWriter $out) : void{
 
   93        VarInt::writeUnsignedInt($out, $this->cost);
 
   95        LE::writeUnsignedInt($out, $this->slotFlags);
 
   96        self::writeEnchantList($out, $this->equipActivatedEnchantments);
 
   97        self::writeEnchantList($out, $this->heldActivatedEnchantments);
 
   98        self::writeEnchantList($out, $this->selfActivatedEnchantments);
 
  100        CommonTypes::putString($out, $this->name);
 
  101        CommonTypes::writeRecipeNetId($out, $this->optionId);
 
 
__construct(private int $cost, private int $slotFlags, private array $equipActivatedEnchantments, private array $heldActivatedEnchantments, private array $selfActivatedEnchantments, private string $name, private int $optionId)