PocketMine-MP 5.18.1 git-9381fc4172e5dce4cada1cb356050c8a2ab57b94
MolangItemDescriptor.php
1<?php
2
3/*
4 * This file is part of BedrockProtocol.
5 * Copyright (C) 2014-2022 PocketMine Team <https://github.com/pmmp/BedrockProtocol>
6 *
7 * BedrockProtocol is free software: you can redistribute it and/or modify
8 * it under the terms of the GNU Lesser General Public License as published by
9 * the Free Software Foundation, either version 3 of the License, or
10 * (at your option) any later version.
11 */
12
13declare(strict_types=1);
14
15namespace pocketmine\network\mcpe\protocol\types\recipe;
16
18use pocketmine\network\mcpe\protocol\types\GetTypeIdFromConstTrait;
19
20final class MolangItemDescriptor implements ItemDescriptor{
21 use GetTypeIdFromConstTrait;
22
23 public const ID = ItemDescriptorType::MOLANG;
24
25 public function __construct(
26 private string $molangExpression,
27 private int $molangVersion
28 ){}
29
30 public function getMolangExpression() : string{ return $this->molangExpression; }
31
32 public function getMolangVersion() : int{ return $this->molangVersion; }
33
34 public static function read(PacketSerializer $in) : self{
35 $expression = $in->getString();
36 $version = $in->getByte();
37
38 return new self($expression, $version);
39 }
40
41 public function write(PacketSerializer $out) : void{
42 $out->putString($this->molangExpression);
43 $out->putByte($this->molangVersion);
44 }
45}