RuntimeEnum(De)SerializerTrait no longer uses legacy accessors for enum members

This commit is contained in:
Dylan K. Taylor 2023-09-07 19:40:14 +01:00
parent c168818311
commit 6887fcd590
No known key found for this signature in database
GPG Key ID: 8927471A91CAFD3D
3 changed files with 269 additions and 269 deletions

View File

@ -38,7 +38,6 @@ use pocketmine\item\MedicineType;
use pocketmine\item\PotionType;
use pocketmine\item\SuspiciousStewType;
use function array_key_first;
use function array_keys;
use function array_map;
use function ceil;
use function count;
@ -50,6 +49,7 @@ use function lcfirst;
use function log;
use function ob_get_clean;
use function ob_start;
use function usort;
use const SORT_STRING;
require dirname(__DIR__) . '/vendor/autoload.php';
@ -130,32 +130,32 @@ function getBitsRequired(array $members) : int{
}
/**
* @param object[] $members
* @phpstan-param array<string, object> $members
* @param \UnitEnum[] $members
* @phpstan-param list<\UnitEnum> $members
*
* @return string[]
* @phpstan-return list<string>
*/
function stringifyEnumMembers(array $members, string $enumClass) : array{
ksort($members, SORT_STRING);
return array_map(fn(string $enumCaseName) => "\\$enumClass::$enumCaseName()", array_keys($members));
usort($members, fn(\UnitEnum $a, \UnitEnum $b) => $a->name <=> $b->name);
return array_map(fn(\UnitEnum $case) => "\\$enumClass::$case->name", $members);
}
$enumsUsed = [
BellAttachmentType::getAll(),
CopperOxidation::getAll(),
CoralType::getAll(),
DirtType::getAll(),
DripleafState::getAll(),
DyeColor::getAll(),
FroglightType::getAll(),
LeverFacing::getAll(),
MedicineType::getAll(),
MushroomBlockType::getAll(),
MobHeadType::getAll(),
SlabType::getAll(),
SuspiciousStewType::getAll(),
PotionType::getAll()
BellAttachmentType::cases(),
CopperOxidation::cases(),
CoralType::cases(),
DirtType::cases(),
DripleafState::cases(),
DyeColor::cases(),
FroglightType::cases(),
LeverFacing::cases(),
MedicineType::cases(),
MushroomBlockType::cases(),
MobHeadType::cases(),
SlabType::cases(),
SuspiciousStewType::cases(),
PotionType::cases()
];
$readerFuncs = [

View File

@ -33,209 +33,209 @@ trait RuntimeEnumDeserializerTrait{
public function bellAttachmentType(\pocketmine\block\utils\BellAttachmentType &$value) : void{
$value = match($this->readInt(2)){
0 => \pocketmine\block\utils\BellAttachmentType::CEILING(),
1 => \pocketmine\block\utils\BellAttachmentType::FLOOR(),
2 => \pocketmine\block\utils\BellAttachmentType::ONE_WALL(),
3 => \pocketmine\block\utils\BellAttachmentType::TWO_WALLS(),
0 => \pocketmine\block\utils\BellAttachmentType::CEILING,
1 => \pocketmine\block\utils\BellAttachmentType::FLOOR,
2 => \pocketmine\block\utils\BellAttachmentType::ONE_WALL,
3 => \pocketmine\block\utils\BellAttachmentType::TWO_WALLS,
default => throw new InvalidSerializedRuntimeDataException("Invalid serialized value for BellAttachmentType")
};
}
public function copperOxidation(\pocketmine\block\utils\CopperOxidation &$value) : void{
$value = match($this->readInt(2)){
0 => \pocketmine\block\utils\CopperOxidation::EXPOSED(),
1 => \pocketmine\block\utils\CopperOxidation::NONE(),
2 => \pocketmine\block\utils\CopperOxidation::OXIDIZED(),
3 => \pocketmine\block\utils\CopperOxidation::WEATHERED(),
0 => \pocketmine\block\utils\CopperOxidation::EXPOSED,
1 => \pocketmine\block\utils\CopperOxidation::NONE,
2 => \pocketmine\block\utils\CopperOxidation::OXIDIZED,
3 => \pocketmine\block\utils\CopperOxidation::WEATHERED,
default => throw new InvalidSerializedRuntimeDataException("Invalid serialized value for CopperOxidation")
};
}
public function coralType(\pocketmine\block\utils\CoralType &$value) : void{
$value = match($this->readInt(3)){
0 => \pocketmine\block\utils\CoralType::BRAIN(),
1 => \pocketmine\block\utils\CoralType::BUBBLE(),
2 => \pocketmine\block\utils\CoralType::FIRE(),
3 => \pocketmine\block\utils\CoralType::HORN(),
4 => \pocketmine\block\utils\CoralType::TUBE(),
0 => \pocketmine\block\utils\CoralType::BRAIN,
1 => \pocketmine\block\utils\CoralType::BUBBLE,
2 => \pocketmine\block\utils\CoralType::FIRE,
3 => \pocketmine\block\utils\CoralType::HORN,
4 => \pocketmine\block\utils\CoralType::TUBE,
default => throw new InvalidSerializedRuntimeDataException("Invalid serialized value for CoralType")
};
}
public function dirtType(\pocketmine\block\utils\DirtType &$value) : void{
$value = match($this->readInt(2)){
0 => \pocketmine\block\utils\DirtType::COARSE(),
1 => \pocketmine\block\utils\DirtType::NORMAL(),
2 => \pocketmine\block\utils\DirtType::ROOTED(),
0 => \pocketmine\block\utils\DirtType::COARSE,
1 => \pocketmine\block\utils\DirtType::NORMAL,
2 => \pocketmine\block\utils\DirtType::ROOTED,
default => throw new InvalidSerializedRuntimeDataException("Invalid serialized value for DirtType")
};
}
public function dripleafState(\pocketmine\block\utils\DripleafState &$value) : void{
$value = match($this->readInt(2)){
0 => \pocketmine\block\utils\DripleafState::FULL_TILT(),
1 => \pocketmine\block\utils\DripleafState::PARTIAL_TILT(),
2 => \pocketmine\block\utils\DripleafState::STABLE(),
3 => \pocketmine\block\utils\DripleafState::UNSTABLE(),
0 => \pocketmine\block\utils\DripleafState::FULL_TILT,
1 => \pocketmine\block\utils\DripleafState::PARTIAL_TILT,
2 => \pocketmine\block\utils\DripleafState::STABLE,
3 => \pocketmine\block\utils\DripleafState::UNSTABLE,
default => throw new InvalidSerializedRuntimeDataException("Invalid serialized value for DripleafState")
};
}
public function dyeColor(\pocketmine\block\utils\DyeColor &$value) : void{
$value = match($this->readInt(4)){
0 => \pocketmine\block\utils\DyeColor::BLACK(),
1 => \pocketmine\block\utils\DyeColor::BLUE(),
2 => \pocketmine\block\utils\DyeColor::BROWN(),
3 => \pocketmine\block\utils\DyeColor::CYAN(),
4 => \pocketmine\block\utils\DyeColor::GRAY(),
5 => \pocketmine\block\utils\DyeColor::GREEN(),
6 => \pocketmine\block\utils\DyeColor::LIGHT_BLUE(),
7 => \pocketmine\block\utils\DyeColor::LIGHT_GRAY(),
8 => \pocketmine\block\utils\DyeColor::LIME(),
9 => \pocketmine\block\utils\DyeColor::MAGENTA(),
10 => \pocketmine\block\utils\DyeColor::ORANGE(),
11 => \pocketmine\block\utils\DyeColor::PINK(),
12 => \pocketmine\block\utils\DyeColor::PURPLE(),
13 => \pocketmine\block\utils\DyeColor::RED(),
14 => \pocketmine\block\utils\DyeColor::WHITE(),
15 => \pocketmine\block\utils\DyeColor::YELLOW(),
0 => \pocketmine\block\utils\DyeColor::BLACK,
1 => \pocketmine\block\utils\DyeColor::BLUE,
2 => \pocketmine\block\utils\DyeColor::BROWN,
3 => \pocketmine\block\utils\DyeColor::CYAN,
4 => \pocketmine\block\utils\DyeColor::GRAY,
5 => \pocketmine\block\utils\DyeColor::GREEN,
6 => \pocketmine\block\utils\DyeColor::LIGHT_BLUE,
7 => \pocketmine\block\utils\DyeColor::LIGHT_GRAY,
8 => \pocketmine\block\utils\DyeColor::LIME,
9 => \pocketmine\block\utils\DyeColor::MAGENTA,
10 => \pocketmine\block\utils\DyeColor::ORANGE,
11 => \pocketmine\block\utils\DyeColor::PINK,
12 => \pocketmine\block\utils\DyeColor::PURPLE,
13 => \pocketmine\block\utils\DyeColor::RED,
14 => \pocketmine\block\utils\DyeColor::WHITE,
15 => \pocketmine\block\utils\DyeColor::YELLOW,
default => throw new InvalidSerializedRuntimeDataException("Invalid serialized value for DyeColor")
};
}
public function froglightType(\pocketmine\block\utils\FroglightType &$value) : void{
$value = match($this->readInt(2)){
0 => \pocketmine\block\utils\FroglightType::OCHRE(),
1 => \pocketmine\block\utils\FroglightType::PEARLESCENT(),
2 => \pocketmine\block\utils\FroglightType::VERDANT(),
0 => \pocketmine\block\utils\FroglightType::OCHRE,
1 => \pocketmine\block\utils\FroglightType::PEARLESCENT,
2 => \pocketmine\block\utils\FroglightType::VERDANT,
default => throw new InvalidSerializedRuntimeDataException("Invalid serialized value for FroglightType")
};
}
public function leverFacing(\pocketmine\block\utils\LeverFacing &$value) : void{
$value = match($this->readInt(3)){
0 => \pocketmine\block\utils\LeverFacing::DOWN_AXIS_X(),
1 => \pocketmine\block\utils\LeverFacing::DOWN_AXIS_Z(),
2 => \pocketmine\block\utils\LeverFacing::EAST(),
3 => \pocketmine\block\utils\LeverFacing::NORTH(),
4 => \pocketmine\block\utils\LeverFacing::SOUTH(),
5 => \pocketmine\block\utils\LeverFacing::UP_AXIS_X(),
6 => \pocketmine\block\utils\LeverFacing::UP_AXIS_Z(),
7 => \pocketmine\block\utils\LeverFacing::WEST(),
0 => \pocketmine\block\utils\LeverFacing::DOWN_AXIS_X,
1 => \pocketmine\block\utils\LeverFacing::DOWN_AXIS_Z,
2 => \pocketmine\block\utils\LeverFacing::EAST,
3 => \pocketmine\block\utils\LeverFacing::NORTH,
4 => \pocketmine\block\utils\LeverFacing::SOUTH,
5 => \pocketmine\block\utils\LeverFacing::UP_AXIS_X,
6 => \pocketmine\block\utils\LeverFacing::UP_AXIS_Z,
7 => \pocketmine\block\utils\LeverFacing::WEST,
default => throw new InvalidSerializedRuntimeDataException("Invalid serialized value for LeverFacing")
};
}
public function medicineType(\pocketmine\item\MedicineType &$value) : void{
$value = match($this->readInt(2)){
0 => \pocketmine\item\MedicineType::ANTIDOTE(),
1 => \pocketmine\item\MedicineType::ELIXIR(),
2 => \pocketmine\item\MedicineType::EYE_DROPS(),
3 => \pocketmine\item\MedicineType::TONIC(),
0 => \pocketmine\item\MedicineType::ANTIDOTE,
1 => \pocketmine\item\MedicineType::ELIXIR,
2 => \pocketmine\item\MedicineType::EYE_DROPS,
3 => \pocketmine\item\MedicineType::TONIC,
default => throw new InvalidSerializedRuntimeDataException("Invalid serialized value for MedicineType")
};
}
public function mobHeadType(\pocketmine\block\utils\MobHeadType &$value) : void{
$value = match($this->readInt(3)){
0 => \pocketmine\block\utils\MobHeadType::CREEPER(),
1 => \pocketmine\block\utils\MobHeadType::DRAGON(),
2 => \pocketmine\block\utils\MobHeadType::PIGLIN(),
3 => \pocketmine\block\utils\MobHeadType::PLAYER(),
4 => \pocketmine\block\utils\MobHeadType::SKELETON(),
5 => \pocketmine\block\utils\MobHeadType::WITHER_SKELETON(),
6 => \pocketmine\block\utils\MobHeadType::ZOMBIE(),
0 => \pocketmine\block\utils\MobHeadType::CREEPER,
1 => \pocketmine\block\utils\MobHeadType::DRAGON,
2 => \pocketmine\block\utils\MobHeadType::PIGLIN,
3 => \pocketmine\block\utils\MobHeadType::PLAYER,
4 => \pocketmine\block\utils\MobHeadType::SKELETON,
5 => \pocketmine\block\utils\MobHeadType::WITHER_SKELETON,
6 => \pocketmine\block\utils\MobHeadType::ZOMBIE,
default => throw new InvalidSerializedRuntimeDataException("Invalid serialized value for MobHeadType")
};
}
public function mushroomBlockType(\pocketmine\block\utils\MushroomBlockType &$value) : void{
$value = match($this->readInt(4)){
0 => \pocketmine\block\utils\MushroomBlockType::ALL_CAP(),
1 => \pocketmine\block\utils\MushroomBlockType::CAP_EAST(),
2 => \pocketmine\block\utils\MushroomBlockType::CAP_MIDDLE(),
3 => \pocketmine\block\utils\MushroomBlockType::CAP_NORTH(),
4 => \pocketmine\block\utils\MushroomBlockType::CAP_NORTHEAST(),
5 => \pocketmine\block\utils\MushroomBlockType::CAP_NORTHWEST(),
6 => \pocketmine\block\utils\MushroomBlockType::CAP_SOUTH(),
7 => \pocketmine\block\utils\MushroomBlockType::CAP_SOUTHEAST(),
8 => \pocketmine\block\utils\MushroomBlockType::CAP_SOUTHWEST(),
9 => \pocketmine\block\utils\MushroomBlockType::CAP_WEST(),
10 => \pocketmine\block\utils\MushroomBlockType::PORES(),
0 => \pocketmine\block\utils\MushroomBlockType::ALL_CAP,
1 => \pocketmine\block\utils\MushroomBlockType::CAP_EAST,
2 => \pocketmine\block\utils\MushroomBlockType::CAP_MIDDLE,
3 => \pocketmine\block\utils\MushroomBlockType::CAP_NORTH,
4 => \pocketmine\block\utils\MushroomBlockType::CAP_NORTHEAST,
5 => \pocketmine\block\utils\MushroomBlockType::CAP_NORTHWEST,
6 => \pocketmine\block\utils\MushroomBlockType::CAP_SOUTH,
7 => \pocketmine\block\utils\MushroomBlockType::CAP_SOUTHEAST,
8 => \pocketmine\block\utils\MushroomBlockType::CAP_SOUTHWEST,
9 => \pocketmine\block\utils\MushroomBlockType::CAP_WEST,
10 => \pocketmine\block\utils\MushroomBlockType::PORES,
default => throw new InvalidSerializedRuntimeDataException("Invalid serialized value for MushroomBlockType")
};
}
public function potionType(\pocketmine\item\PotionType &$value) : void{
$value = match($this->readInt(6)){
0 => \pocketmine\item\PotionType::AWKWARD(),
1 => \pocketmine\item\PotionType::FIRE_RESISTANCE(),
2 => \pocketmine\item\PotionType::HARMING(),
3 => \pocketmine\item\PotionType::HEALING(),
4 => \pocketmine\item\PotionType::INVISIBILITY(),
5 => \pocketmine\item\PotionType::LEAPING(),
6 => \pocketmine\item\PotionType::LONG_FIRE_RESISTANCE(),
7 => \pocketmine\item\PotionType::LONG_INVISIBILITY(),
8 => \pocketmine\item\PotionType::LONG_LEAPING(),
9 => \pocketmine\item\PotionType::LONG_MUNDANE(),
10 => \pocketmine\item\PotionType::LONG_NIGHT_VISION(),
11 => \pocketmine\item\PotionType::LONG_POISON(),
12 => \pocketmine\item\PotionType::LONG_REGENERATION(),
13 => \pocketmine\item\PotionType::LONG_SLOWNESS(),
14 => \pocketmine\item\PotionType::LONG_SLOW_FALLING(),
15 => \pocketmine\item\PotionType::LONG_STRENGTH(),
16 => \pocketmine\item\PotionType::LONG_SWIFTNESS(),
17 => \pocketmine\item\PotionType::LONG_TURTLE_MASTER(),
18 => \pocketmine\item\PotionType::LONG_WATER_BREATHING(),
19 => \pocketmine\item\PotionType::LONG_WEAKNESS(),
20 => \pocketmine\item\PotionType::MUNDANE(),
21 => \pocketmine\item\PotionType::NIGHT_VISION(),
22 => \pocketmine\item\PotionType::POISON(),
23 => \pocketmine\item\PotionType::REGENERATION(),
24 => \pocketmine\item\PotionType::SLOWNESS(),
25 => \pocketmine\item\PotionType::SLOW_FALLING(),
26 => \pocketmine\item\PotionType::STRENGTH(),
27 => \pocketmine\item\PotionType::STRONG_HARMING(),
28 => \pocketmine\item\PotionType::STRONG_HEALING(),
29 => \pocketmine\item\PotionType::STRONG_LEAPING(),
30 => \pocketmine\item\PotionType::STRONG_POISON(),
31 => \pocketmine\item\PotionType::STRONG_REGENERATION(),
32 => \pocketmine\item\PotionType::STRONG_SLOWNESS(),
33 => \pocketmine\item\PotionType::STRONG_STRENGTH(),
34 => \pocketmine\item\PotionType::STRONG_SWIFTNESS(),
35 => \pocketmine\item\PotionType::STRONG_TURTLE_MASTER(),
36 => \pocketmine\item\PotionType::SWIFTNESS(),
37 => \pocketmine\item\PotionType::THICK(),
38 => \pocketmine\item\PotionType::TURTLE_MASTER(),
39 => \pocketmine\item\PotionType::WATER(),
40 => \pocketmine\item\PotionType::WATER_BREATHING(),
41 => \pocketmine\item\PotionType::WEAKNESS(),
42 => \pocketmine\item\PotionType::WITHER(),
0 => \pocketmine\item\PotionType::AWKWARD,
1 => \pocketmine\item\PotionType::FIRE_RESISTANCE,
2 => \pocketmine\item\PotionType::HARMING,
3 => \pocketmine\item\PotionType::HEALING,
4 => \pocketmine\item\PotionType::INVISIBILITY,
5 => \pocketmine\item\PotionType::LEAPING,
6 => \pocketmine\item\PotionType::LONG_FIRE_RESISTANCE,
7 => \pocketmine\item\PotionType::LONG_INVISIBILITY,
8 => \pocketmine\item\PotionType::LONG_LEAPING,
9 => \pocketmine\item\PotionType::LONG_MUNDANE,
10 => \pocketmine\item\PotionType::LONG_NIGHT_VISION,
11 => \pocketmine\item\PotionType::LONG_POISON,
12 => \pocketmine\item\PotionType::LONG_REGENERATION,
13 => \pocketmine\item\PotionType::LONG_SLOWNESS,
14 => \pocketmine\item\PotionType::LONG_SLOW_FALLING,
15 => \pocketmine\item\PotionType::LONG_STRENGTH,
16 => \pocketmine\item\PotionType::LONG_SWIFTNESS,
17 => \pocketmine\item\PotionType::LONG_TURTLE_MASTER,
18 => \pocketmine\item\PotionType::LONG_WATER_BREATHING,
19 => \pocketmine\item\PotionType::LONG_WEAKNESS,
20 => \pocketmine\item\PotionType::MUNDANE,
21 => \pocketmine\item\PotionType::NIGHT_VISION,
22 => \pocketmine\item\PotionType::POISON,
23 => \pocketmine\item\PotionType::REGENERATION,
24 => \pocketmine\item\PotionType::SLOWNESS,
25 => \pocketmine\item\PotionType::SLOW_FALLING,
26 => \pocketmine\item\PotionType::STRENGTH,
27 => \pocketmine\item\PotionType::STRONG_HARMING,
28 => \pocketmine\item\PotionType::STRONG_HEALING,
29 => \pocketmine\item\PotionType::STRONG_LEAPING,
30 => \pocketmine\item\PotionType::STRONG_POISON,
31 => \pocketmine\item\PotionType::STRONG_REGENERATION,
32 => \pocketmine\item\PotionType::STRONG_SLOWNESS,
33 => \pocketmine\item\PotionType::STRONG_STRENGTH,
34 => \pocketmine\item\PotionType::STRONG_SWIFTNESS,
35 => \pocketmine\item\PotionType::STRONG_TURTLE_MASTER,
36 => \pocketmine\item\PotionType::SWIFTNESS,
37 => \pocketmine\item\PotionType::THICK,
38 => \pocketmine\item\PotionType::TURTLE_MASTER,
39 => \pocketmine\item\PotionType::WATER,
40 => \pocketmine\item\PotionType::WATER_BREATHING,
41 => \pocketmine\item\PotionType::WEAKNESS,
42 => \pocketmine\item\PotionType::WITHER,
default => throw new InvalidSerializedRuntimeDataException("Invalid serialized value for PotionType")
};
}
public function slabType(\pocketmine\block\utils\SlabType &$value) : void{
$value = match($this->readInt(2)){
0 => \pocketmine\block\utils\SlabType::BOTTOM(),
1 => \pocketmine\block\utils\SlabType::DOUBLE(),
2 => \pocketmine\block\utils\SlabType::TOP(),
0 => \pocketmine\block\utils\SlabType::BOTTOM,
1 => \pocketmine\block\utils\SlabType::DOUBLE,
2 => \pocketmine\block\utils\SlabType::TOP,
default => throw new InvalidSerializedRuntimeDataException("Invalid serialized value for SlabType")
};
}
public function suspiciousStewType(\pocketmine\item\SuspiciousStewType &$value) : void{
$value = match($this->readInt(4)){
0 => \pocketmine\item\SuspiciousStewType::ALLIUM(),
1 => \pocketmine\item\SuspiciousStewType::AZURE_BLUET(),
2 => \pocketmine\item\SuspiciousStewType::BLUE_ORCHID(),
3 => \pocketmine\item\SuspiciousStewType::CORNFLOWER(),
4 => \pocketmine\item\SuspiciousStewType::DANDELION(),
5 => \pocketmine\item\SuspiciousStewType::LILY_OF_THE_VALLEY(),
6 => \pocketmine\item\SuspiciousStewType::OXEYE_DAISY(),
7 => \pocketmine\item\SuspiciousStewType::POPPY(),
8 => \pocketmine\item\SuspiciousStewType::TULIP(),
9 => \pocketmine\item\SuspiciousStewType::WITHER_ROSE(),
0 => \pocketmine\item\SuspiciousStewType::ALLIUM,
1 => \pocketmine\item\SuspiciousStewType::AZURE_BLUET,
2 => \pocketmine\item\SuspiciousStewType::BLUE_ORCHID,
3 => \pocketmine\item\SuspiciousStewType::CORNFLOWER,
4 => \pocketmine\item\SuspiciousStewType::DANDELION,
5 => \pocketmine\item\SuspiciousStewType::LILY_OF_THE_VALLEY,
6 => \pocketmine\item\SuspiciousStewType::OXEYE_DAISY,
7 => \pocketmine\item\SuspiciousStewType::POPPY,
8 => \pocketmine\item\SuspiciousStewType::TULIP,
9 => \pocketmine\item\SuspiciousStewType::WITHER_ROSE,
default => throw new InvalidSerializedRuntimeDataException("Invalid serialized value for SuspiciousStewType")
};
}

View File

@ -33,209 +33,209 @@ trait RuntimeEnumSerializerTrait{
public function bellAttachmentType(\pocketmine\block\utils\BellAttachmentType &$value) : void{
$this->writeInt(2, match($value){
\pocketmine\block\utils\BellAttachmentType::CEILING() => 0,
\pocketmine\block\utils\BellAttachmentType::FLOOR() => 1,
\pocketmine\block\utils\BellAttachmentType::ONE_WALL() => 2,
\pocketmine\block\utils\BellAttachmentType::TWO_WALLS() => 3,
\pocketmine\block\utils\BellAttachmentType::CEILING => 0,
\pocketmine\block\utils\BellAttachmentType::FLOOR => 1,
\pocketmine\block\utils\BellAttachmentType::ONE_WALL => 2,
\pocketmine\block\utils\BellAttachmentType::TWO_WALLS => 3,
default => throw new \pocketmine\utils\AssumptionFailedError("All BellAttachmentType cases should be covered")
});
}
public function copperOxidation(\pocketmine\block\utils\CopperOxidation &$value) : void{
$this->writeInt(2, match($value){
\pocketmine\block\utils\CopperOxidation::EXPOSED() => 0,
\pocketmine\block\utils\CopperOxidation::NONE() => 1,
\pocketmine\block\utils\CopperOxidation::OXIDIZED() => 2,
\pocketmine\block\utils\CopperOxidation::WEATHERED() => 3,
\pocketmine\block\utils\CopperOxidation::EXPOSED => 0,
\pocketmine\block\utils\CopperOxidation::NONE => 1,
\pocketmine\block\utils\CopperOxidation::OXIDIZED => 2,
\pocketmine\block\utils\CopperOxidation::WEATHERED => 3,
default => throw new \pocketmine\utils\AssumptionFailedError("All CopperOxidation cases should be covered")
});
}
public function coralType(\pocketmine\block\utils\CoralType &$value) : void{
$this->writeInt(3, match($value){
\pocketmine\block\utils\CoralType::BRAIN() => 0,
\pocketmine\block\utils\CoralType::BUBBLE() => 1,
\pocketmine\block\utils\CoralType::FIRE() => 2,
\pocketmine\block\utils\CoralType::HORN() => 3,
\pocketmine\block\utils\CoralType::TUBE() => 4,
\pocketmine\block\utils\CoralType::BRAIN => 0,
\pocketmine\block\utils\CoralType::BUBBLE => 1,
\pocketmine\block\utils\CoralType::FIRE => 2,
\pocketmine\block\utils\CoralType::HORN => 3,
\pocketmine\block\utils\CoralType::TUBE => 4,
default => throw new \pocketmine\utils\AssumptionFailedError("All CoralType cases should be covered")
});
}
public function dirtType(\pocketmine\block\utils\DirtType &$value) : void{
$this->writeInt(2, match($value){
\pocketmine\block\utils\DirtType::COARSE() => 0,
\pocketmine\block\utils\DirtType::NORMAL() => 1,
\pocketmine\block\utils\DirtType::ROOTED() => 2,
\pocketmine\block\utils\DirtType::COARSE => 0,
\pocketmine\block\utils\DirtType::NORMAL => 1,
\pocketmine\block\utils\DirtType::ROOTED => 2,
default => throw new \pocketmine\utils\AssumptionFailedError("All DirtType cases should be covered")
});
}
public function dripleafState(\pocketmine\block\utils\DripleafState &$value) : void{
$this->writeInt(2, match($value){
\pocketmine\block\utils\DripleafState::FULL_TILT() => 0,
\pocketmine\block\utils\DripleafState::PARTIAL_TILT() => 1,
\pocketmine\block\utils\DripleafState::STABLE() => 2,
\pocketmine\block\utils\DripleafState::UNSTABLE() => 3,
\pocketmine\block\utils\DripleafState::FULL_TILT => 0,
\pocketmine\block\utils\DripleafState::PARTIAL_TILT => 1,
\pocketmine\block\utils\DripleafState::STABLE => 2,
\pocketmine\block\utils\DripleafState::UNSTABLE => 3,
default => throw new \pocketmine\utils\AssumptionFailedError("All DripleafState cases should be covered")
});
}
public function dyeColor(\pocketmine\block\utils\DyeColor &$value) : void{
$this->writeInt(4, match($value){
\pocketmine\block\utils\DyeColor::BLACK() => 0,
\pocketmine\block\utils\DyeColor::BLUE() => 1,
\pocketmine\block\utils\DyeColor::BROWN() => 2,
\pocketmine\block\utils\DyeColor::CYAN() => 3,
\pocketmine\block\utils\DyeColor::GRAY() => 4,
\pocketmine\block\utils\DyeColor::GREEN() => 5,
\pocketmine\block\utils\DyeColor::LIGHT_BLUE() => 6,
\pocketmine\block\utils\DyeColor::LIGHT_GRAY() => 7,
\pocketmine\block\utils\DyeColor::LIME() => 8,
\pocketmine\block\utils\DyeColor::MAGENTA() => 9,
\pocketmine\block\utils\DyeColor::ORANGE() => 10,
\pocketmine\block\utils\DyeColor::PINK() => 11,
\pocketmine\block\utils\DyeColor::PURPLE() => 12,
\pocketmine\block\utils\DyeColor::RED() => 13,
\pocketmine\block\utils\DyeColor::WHITE() => 14,
\pocketmine\block\utils\DyeColor::YELLOW() => 15,
\pocketmine\block\utils\DyeColor::BLACK => 0,
\pocketmine\block\utils\DyeColor::BLUE => 1,
\pocketmine\block\utils\DyeColor::BROWN => 2,
\pocketmine\block\utils\DyeColor::CYAN => 3,
\pocketmine\block\utils\DyeColor::GRAY => 4,
\pocketmine\block\utils\DyeColor::GREEN => 5,
\pocketmine\block\utils\DyeColor::LIGHT_BLUE => 6,
\pocketmine\block\utils\DyeColor::LIGHT_GRAY => 7,
\pocketmine\block\utils\DyeColor::LIME => 8,
\pocketmine\block\utils\DyeColor::MAGENTA => 9,
\pocketmine\block\utils\DyeColor::ORANGE => 10,
\pocketmine\block\utils\DyeColor::PINK => 11,
\pocketmine\block\utils\DyeColor::PURPLE => 12,
\pocketmine\block\utils\DyeColor::RED => 13,
\pocketmine\block\utils\DyeColor::WHITE => 14,
\pocketmine\block\utils\DyeColor::YELLOW => 15,
default => throw new \pocketmine\utils\AssumptionFailedError("All DyeColor cases should be covered")
});
}
public function froglightType(\pocketmine\block\utils\FroglightType &$value) : void{
$this->writeInt(2, match($value){
\pocketmine\block\utils\FroglightType::OCHRE() => 0,
\pocketmine\block\utils\FroglightType::PEARLESCENT() => 1,
\pocketmine\block\utils\FroglightType::VERDANT() => 2,
\pocketmine\block\utils\FroglightType::OCHRE => 0,
\pocketmine\block\utils\FroglightType::PEARLESCENT => 1,
\pocketmine\block\utils\FroglightType::VERDANT => 2,
default => throw new \pocketmine\utils\AssumptionFailedError("All FroglightType cases should be covered")
});
}
public function leverFacing(\pocketmine\block\utils\LeverFacing &$value) : void{
$this->writeInt(3, match($value){
\pocketmine\block\utils\LeverFacing::DOWN_AXIS_X() => 0,
\pocketmine\block\utils\LeverFacing::DOWN_AXIS_Z() => 1,
\pocketmine\block\utils\LeverFacing::EAST() => 2,
\pocketmine\block\utils\LeverFacing::NORTH() => 3,
\pocketmine\block\utils\LeverFacing::SOUTH() => 4,
\pocketmine\block\utils\LeverFacing::UP_AXIS_X() => 5,
\pocketmine\block\utils\LeverFacing::UP_AXIS_Z() => 6,
\pocketmine\block\utils\LeverFacing::WEST() => 7,
\pocketmine\block\utils\LeverFacing::DOWN_AXIS_X => 0,
\pocketmine\block\utils\LeverFacing::DOWN_AXIS_Z => 1,
\pocketmine\block\utils\LeverFacing::EAST => 2,
\pocketmine\block\utils\LeverFacing::NORTH => 3,
\pocketmine\block\utils\LeverFacing::SOUTH => 4,
\pocketmine\block\utils\LeverFacing::UP_AXIS_X => 5,
\pocketmine\block\utils\LeverFacing::UP_AXIS_Z => 6,
\pocketmine\block\utils\LeverFacing::WEST => 7,
default => throw new \pocketmine\utils\AssumptionFailedError("All LeverFacing cases should be covered")
});
}
public function medicineType(\pocketmine\item\MedicineType &$value) : void{
$this->writeInt(2, match($value){
\pocketmine\item\MedicineType::ANTIDOTE() => 0,
\pocketmine\item\MedicineType::ELIXIR() => 1,
\pocketmine\item\MedicineType::EYE_DROPS() => 2,
\pocketmine\item\MedicineType::TONIC() => 3,
\pocketmine\item\MedicineType::ANTIDOTE => 0,
\pocketmine\item\MedicineType::ELIXIR => 1,
\pocketmine\item\MedicineType::EYE_DROPS => 2,
\pocketmine\item\MedicineType::TONIC => 3,
default => throw new \pocketmine\utils\AssumptionFailedError("All MedicineType cases should be covered")
});
}
public function mobHeadType(\pocketmine\block\utils\MobHeadType &$value) : void{
$this->writeInt(3, match($value){
\pocketmine\block\utils\MobHeadType::CREEPER() => 0,
\pocketmine\block\utils\MobHeadType::DRAGON() => 1,
\pocketmine\block\utils\MobHeadType::PIGLIN() => 2,
\pocketmine\block\utils\MobHeadType::PLAYER() => 3,
\pocketmine\block\utils\MobHeadType::SKELETON() => 4,
\pocketmine\block\utils\MobHeadType::WITHER_SKELETON() => 5,
\pocketmine\block\utils\MobHeadType::ZOMBIE() => 6,
\pocketmine\block\utils\MobHeadType::CREEPER => 0,
\pocketmine\block\utils\MobHeadType::DRAGON => 1,
\pocketmine\block\utils\MobHeadType::PIGLIN => 2,
\pocketmine\block\utils\MobHeadType::PLAYER => 3,
\pocketmine\block\utils\MobHeadType::SKELETON => 4,
\pocketmine\block\utils\MobHeadType::WITHER_SKELETON => 5,
\pocketmine\block\utils\MobHeadType::ZOMBIE => 6,
default => throw new \pocketmine\utils\AssumptionFailedError("All MobHeadType cases should be covered")
});
}
public function mushroomBlockType(\pocketmine\block\utils\MushroomBlockType &$value) : void{
$this->writeInt(4, match($value){
\pocketmine\block\utils\MushroomBlockType::ALL_CAP() => 0,
\pocketmine\block\utils\MushroomBlockType::CAP_EAST() => 1,
\pocketmine\block\utils\MushroomBlockType::CAP_MIDDLE() => 2,
\pocketmine\block\utils\MushroomBlockType::CAP_NORTH() => 3,
\pocketmine\block\utils\MushroomBlockType::CAP_NORTHEAST() => 4,
\pocketmine\block\utils\MushroomBlockType::CAP_NORTHWEST() => 5,
\pocketmine\block\utils\MushroomBlockType::CAP_SOUTH() => 6,
\pocketmine\block\utils\MushroomBlockType::CAP_SOUTHEAST() => 7,
\pocketmine\block\utils\MushroomBlockType::CAP_SOUTHWEST() => 8,
\pocketmine\block\utils\MushroomBlockType::CAP_WEST() => 9,
\pocketmine\block\utils\MushroomBlockType::PORES() => 10,
\pocketmine\block\utils\MushroomBlockType::ALL_CAP => 0,
\pocketmine\block\utils\MushroomBlockType::CAP_EAST => 1,
\pocketmine\block\utils\MushroomBlockType::CAP_MIDDLE => 2,
\pocketmine\block\utils\MushroomBlockType::CAP_NORTH => 3,
\pocketmine\block\utils\MushroomBlockType::CAP_NORTHEAST => 4,
\pocketmine\block\utils\MushroomBlockType::CAP_NORTHWEST => 5,
\pocketmine\block\utils\MushroomBlockType::CAP_SOUTH => 6,
\pocketmine\block\utils\MushroomBlockType::CAP_SOUTHEAST => 7,
\pocketmine\block\utils\MushroomBlockType::CAP_SOUTHWEST => 8,
\pocketmine\block\utils\MushroomBlockType::CAP_WEST => 9,
\pocketmine\block\utils\MushroomBlockType::PORES => 10,
default => throw new \pocketmine\utils\AssumptionFailedError("All MushroomBlockType cases should be covered")
});
}
public function potionType(\pocketmine\item\PotionType &$value) : void{
$this->writeInt(6, match($value){
\pocketmine\item\PotionType::AWKWARD() => 0,
\pocketmine\item\PotionType::FIRE_RESISTANCE() => 1,
\pocketmine\item\PotionType::HARMING() => 2,
\pocketmine\item\PotionType::HEALING() => 3,
\pocketmine\item\PotionType::INVISIBILITY() => 4,
\pocketmine\item\PotionType::LEAPING() => 5,
\pocketmine\item\PotionType::LONG_FIRE_RESISTANCE() => 6,
\pocketmine\item\PotionType::LONG_INVISIBILITY() => 7,
\pocketmine\item\PotionType::LONG_LEAPING() => 8,
\pocketmine\item\PotionType::LONG_MUNDANE() => 9,
\pocketmine\item\PotionType::LONG_NIGHT_VISION() => 10,
\pocketmine\item\PotionType::LONG_POISON() => 11,
\pocketmine\item\PotionType::LONG_REGENERATION() => 12,
\pocketmine\item\PotionType::LONG_SLOWNESS() => 13,
\pocketmine\item\PotionType::LONG_SLOW_FALLING() => 14,
\pocketmine\item\PotionType::LONG_STRENGTH() => 15,
\pocketmine\item\PotionType::LONG_SWIFTNESS() => 16,
\pocketmine\item\PotionType::LONG_TURTLE_MASTER() => 17,
\pocketmine\item\PotionType::LONG_WATER_BREATHING() => 18,
\pocketmine\item\PotionType::LONG_WEAKNESS() => 19,
\pocketmine\item\PotionType::MUNDANE() => 20,
\pocketmine\item\PotionType::NIGHT_VISION() => 21,
\pocketmine\item\PotionType::POISON() => 22,
\pocketmine\item\PotionType::REGENERATION() => 23,
\pocketmine\item\PotionType::SLOWNESS() => 24,
\pocketmine\item\PotionType::SLOW_FALLING() => 25,
\pocketmine\item\PotionType::STRENGTH() => 26,
\pocketmine\item\PotionType::STRONG_HARMING() => 27,
\pocketmine\item\PotionType::STRONG_HEALING() => 28,
\pocketmine\item\PotionType::STRONG_LEAPING() => 29,
\pocketmine\item\PotionType::STRONG_POISON() => 30,
\pocketmine\item\PotionType::STRONG_REGENERATION() => 31,
\pocketmine\item\PotionType::STRONG_SLOWNESS() => 32,
\pocketmine\item\PotionType::STRONG_STRENGTH() => 33,
\pocketmine\item\PotionType::STRONG_SWIFTNESS() => 34,
\pocketmine\item\PotionType::STRONG_TURTLE_MASTER() => 35,
\pocketmine\item\PotionType::SWIFTNESS() => 36,
\pocketmine\item\PotionType::THICK() => 37,
\pocketmine\item\PotionType::TURTLE_MASTER() => 38,
\pocketmine\item\PotionType::WATER() => 39,
\pocketmine\item\PotionType::WATER_BREATHING() => 40,
\pocketmine\item\PotionType::WEAKNESS() => 41,
\pocketmine\item\PotionType::WITHER() => 42,
\pocketmine\item\PotionType::AWKWARD => 0,
\pocketmine\item\PotionType::FIRE_RESISTANCE => 1,
\pocketmine\item\PotionType::HARMING => 2,
\pocketmine\item\PotionType::HEALING => 3,
\pocketmine\item\PotionType::INVISIBILITY => 4,
\pocketmine\item\PotionType::LEAPING => 5,
\pocketmine\item\PotionType::LONG_FIRE_RESISTANCE => 6,
\pocketmine\item\PotionType::LONG_INVISIBILITY => 7,
\pocketmine\item\PotionType::LONG_LEAPING => 8,
\pocketmine\item\PotionType::LONG_MUNDANE => 9,
\pocketmine\item\PotionType::LONG_NIGHT_VISION => 10,
\pocketmine\item\PotionType::LONG_POISON => 11,
\pocketmine\item\PotionType::LONG_REGENERATION => 12,
\pocketmine\item\PotionType::LONG_SLOWNESS => 13,
\pocketmine\item\PotionType::LONG_SLOW_FALLING => 14,
\pocketmine\item\PotionType::LONG_STRENGTH => 15,
\pocketmine\item\PotionType::LONG_SWIFTNESS => 16,
\pocketmine\item\PotionType::LONG_TURTLE_MASTER => 17,
\pocketmine\item\PotionType::LONG_WATER_BREATHING => 18,
\pocketmine\item\PotionType::LONG_WEAKNESS => 19,
\pocketmine\item\PotionType::MUNDANE => 20,
\pocketmine\item\PotionType::NIGHT_VISION => 21,
\pocketmine\item\PotionType::POISON => 22,
\pocketmine\item\PotionType::REGENERATION => 23,
\pocketmine\item\PotionType::SLOWNESS => 24,
\pocketmine\item\PotionType::SLOW_FALLING => 25,
\pocketmine\item\PotionType::STRENGTH => 26,
\pocketmine\item\PotionType::STRONG_HARMING => 27,
\pocketmine\item\PotionType::STRONG_HEALING => 28,
\pocketmine\item\PotionType::STRONG_LEAPING => 29,
\pocketmine\item\PotionType::STRONG_POISON => 30,
\pocketmine\item\PotionType::STRONG_REGENERATION => 31,
\pocketmine\item\PotionType::STRONG_SLOWNESS => 32,
\pocketmine\item\PotionType::STRONG_STRENGTH => 33,
\pocketmine\item\PotionType::STRONG_SWIFTNESS => 34,
\pocketmine\item\PotionType::STRONG_TURTLE_MASTER => 35,
\pocketmine\item\PotionType::SWIFTNESS => 36,
\pocketmine\item\PotionType::THICK => 37,
\pocketmine\item\PotionType::TURTLE_MASTER => 38,
\pocketmine\item\PotionType::WATER => 39,
\pocketmine\item\PotionType::WATER_BREATHING => 40,
\pocketmine\item\PotionType::WEAKNESS => 41,
\pocketmine\item\PotionType::WITHER => 42,
default => throw new \pocketmine\utils\AssumptionFailedError("All PotionType cases should be covered")
});
}
public function slabType(\pocketmine\block\utils\SlabType &$value) : void{
$this->writeInt(2, match($value){
\pocketmine\block\utils\SlabType::BOTTOM() => 0,
\pocketmine\block\utils\SlabType::DOUBLE() => 1,
\pocketmine\block\utils\SlabType::TOP() => 2,
\pocketmine\block\utils\SlabType::BOTTOM => 0,
\pocketmine\block\utils\SlabType::DOUBLE => 1,
\pocketmine\block\utils\SlabType::TOP => 2,
default => throw new \pocketmine\utils\AssumptionFailedError("All SlabType cases should be covered")
});
}
public function suspiciousStewType(\pocketmine\item\SuspiciousStewType &$value) : void{
$this->writeInt(4, match($value){
\pocketmine\item\SuspiciousStewType::ALLIUM() => 0,
\pocketmine\item\SuspiciousStewType::AZURE_BLUET() => 1,
\pocketmine\item\SuspiciousStewType::BLUE_ORCHID() => 2,
\pocketmine\item\SuspiciousStewType::CORNFLOWER() => 3,
\pocketmine\item\SuspiciousStewType::DANDELION() => 4,
\pocketmine\item\SuspiciousStewType::LILY_OF_THE_VALLEY() => 5,
\pocketmine\item\SuspiciousStewType::OXEYE_DAISY() => 6,
\pocketmine\item\SuspiciousStewType::POPPY() => 7,
\pocketmine\item\SuspiciousStewType::TULIP() => 8,
\pocketmine\item\SuspiciousStewType::WITHER_ROSE() => 9,
\pocketmine\item\SuspiciousStewType::ALLIUM => 0,
\pocketmine\item\SuspiciousStewType::AZURE_BLUET => 1,
\pocketmine\item\SuspiciousStewType::BLUE_ORCHID => 2,
\pocketmine\item\SuspiciousStewType::CORNFLOWER => 3,
\pocketmine\item\SuspiciousStewType::DANDELION => 4,
\pocketmine\item\SuspiciousStewType::LILY_OF_THE_VALLEY => 5,
\pocketmine\item\SuspiciousStewType::OXEYE_DAISY => 6,
\pocketmine\item\SuspiciousStewType::POPPY => 7,
\pocketmine\item\SuspiciousStewType::TULIP => 8,
\pocketmine\item\SuspiciousStewType::WITHER_ROSE => 9,
default => throw new \pocketmine\utils\AssumptionFailedError("All SuspiciousStewType cases should be covered")
});
}