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)