PocketMine-MP
5.15.1 git-5ef247620a7c6301a849b54e5ef1009217729fc8
StringIdMetaItemDescriptor.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
13
declare(strict_types=1);
14
15
namespace
pocketmine\network\mcpe\protocol\types\recipe;
16
17
use
pocketmine\network\mcpe\protocol\serializer\PacketSerializer
;
18
use pocketmine\network\mcpe\protocol\types\GetTypeIdFromConstTrait;
19
20
final
class
StringIdMetaItemDescriptor
implements
ItemDescriptor
{
21
use GetTypeIdFromConstTrait;
22
23
public
const
ID = ItemDescriptorType::STRING_ID_META;
24
25
public
function
__construct(
26
private
string
$id,
27
private
int
$meta
28
){
29
if
($meta < 0){
30
throw
new \InvalidArgumentException(
"Meta cannot be negative"
);
31
}
32
}
33
34
public
function
getId() :
string
{
return
$this->id; }
35
36
public
function
getMeta() :
int
{
return
$this->meta; }
37
38
public
static
function
read(
PacketSerializer
$in) :
self
{
39
$stringId = $in->
getString
();
40
$meta = $in->
getLShort
();
41
42
return
new
self
($stringId, $meta);
43
}
44
45
public
function
write(
PacketSerializer
$out) :
void
{
46
$out->putString($this->
id
);
47
$out->putLShort($this->meta);
48
}
49
}
pocketmine\network\mcpe\protocol\serializer\PacketSerializer
Definition:
bedrock-protocol/src/serializer/PacketSerializer.php:67
pocketmine\network\mcpe\protocol\serializer\PacketSerializer\getString
getString()
Definition:
bedrock-protocol/src/serializer/PacketSerializer.php:84
pocketmine\network\mcpe\protocol\types\recipe\StringIdMetaItemDescriptor
Definition:
StringIdMetaItemDescriptor.php:20
pocketmine\utils\BinaryStream\getLShort
getLShort()
Definition:
BinaryStream.php:149
pocketmine\network\mcpe\protocol\types\recipe\ItemDescriptor
Definition:
ItemDescriptor.php:22
vendor
pocketmine
bedrock-protocol
src
types
recipe
StringIdMetaItemDescriptor.php
Generated by
1.9.3