33 private int $slotFlags,
34 private array $equipActivatedEnchantments,
35 private array $heldActivatedEnchantments,
36 private array $selfActivatedEnchantments,
41 public function getCost() : int{ return $this->cost; }
43 public function getSlotFlags() : int{ return $this->slotFlags; }
54 public function getName() : string{ return $this->name; }
56 public function getOptionId() : int{ return $this->optionId; }
61 private static function readEnchantList(ByteBufferReader $in) : array{
63 for($i = 0, $len = VarInt::readUnsignedInt($in); $i < $len; ++$i){
64 $result[] = Enchant::read($in);
72 private static function writeEnchantList(ByteBufferWriter $out, array $list) : void{
73 VarInt::writeUnsignedInt($out, count($list));
74 foreach($list as $item){
79 public static function read(ByteBufferReader $in) : self{
80 $cost = Byte::readUnsigned($in);
82 $slotFlags = LE::readUnsignedInt($in);
83 $equipActivatedEnchants = self::readEnchantList($in);
84 $heldActivatedEnchants = self::readEnchantList($in);
85 $selfActivatedEnchants = self::readEnchantList($in);
87 $name = CommonTypes::getString($in);
88 $optionId = CommonTypes::readRecipeNetId($in);
90 return new self($cost, $slotFlags, $equipActivatedEnchants, $heldActivatedEnchants, $selfActivatedEnchants, $name, $optionId);
93 public function write(ByteBufferWriter $out) : void{
94 Byte::writeUnsigned($out, $this->cost);
96 LE::writeUnsignedInt($out, $this->slotFlags);
97 self::writeEnchantList($out, $this->equipActivatedEnchantments);
98 self::writeEnchantList($out, $this->heldActivatedEnchantments);
99 self::writeEnchantList($out, $this->selfActivatedEnchantments);
101 CommonTypes::putString($out, $this->name);
102 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)