Make more item stuff dynamic

This commit is contained in:
Dylan K. Taylor 2022-06-29 00:26:16 +01:00
parent 6058032807
commit 56428e8a4e
No known key found for this signature in database
GPG Key ID: 8927471A91CAFD3D
8 changed files with 116 additions and 217 deletions

View File

@ -144,12 +144,12 @@ final class ItemDeserializer{
$this->map(Ids::BIRCH_BOAT, fn() => Items::BIRCH_BOAT());
$this->map(Ids::BIRCH_DOOR, fn() => Blocks::BIRCH_DOOR()->asItem());
$this->map(Ids::BIRCH_SIGN, fn() => Blocks::BIRCH_SIGN()->asItem());
$this->map(Ids::BLACK_DYE, fn() => Items::BLACK_DYE());
$this->map(Ids::BLACK_DYE, fn() => Items::DYE()->setColor(DyeColor::BLACK()));
$this->map(Ids::BLAZE_POWDER, fn() => Items::BLAZE_POWDER());
$this->map(Ids::BLAZE_ROD, fn() => Items::BLAZE_ROD());
//TODO: minecraft:blaze_spawn_egg
$this->map(Ids::BLEACH, fn() => Items::BLEACH());
$this->map(Ids::BLUE_DYE, fn() => Items::BLUE_DYE());
$this->map(Ids::BLUE_DYE, fn() => Items::DYE()->setColor(DyeColor::BLUE()));
$this->map(Ids::BOAT, function(Data $data) : Item{
try{
$treeType = TreeType::fromMagicNumber($data->getMeta());
@ -175,7 +175,7 @@ final class ItemDeserializer{
$this->map(Ids::BREAD, fn() => Items::BREAD());
$this->map(Ids::BREWING_STAND, fn() => Blocks::BREWING_STAND()->asItem());
$this->map(Ids::BRICK, fn() => Items::BRICK());
$this->map(Ids::BROWN_DYE, fn() => Items::BROWN_DYE());
$this->map(Ids::BROWN_DYE, fn() => Items::DYE()->setColor(DyeColor::BROWN()));
$this->map(Ids::BUCKET, fn() => Items::BUCKET());
$this->map(Ids::CAKE, fn() => Blocks::CAKE()->asItem());
//TODO: minecraft:camera
@ -261,7 +261,7 @@ final class ItemDeserializer{
//TODO: minecraft:crimson_door
//TODO: minecraft:crimson_sign
//TODO: minecraft:crossbow
$this->map(Ids::CYAN_DYE, fn() => Items::CYAN_DYE());
$this->map(Ids::CYAN_DYE, fn() => Items::DYE()->setColor(DyeColor::CYAN()));
$this->map(Ids::DARK_OAK_BOAT, fn() => Items::DARK_OAK_BOAT());
$this->map(Ids::DARK_OAK_DOOR, fn() => Blocks::DARK_OAK_DOOR()->asItem());
$this->map(Ids::DARK_OAK_SIGN, fn() => Blocks::DARK_OAK_SIGN()->asItem());
@ -288,10 +288,10 @@ final class ItemDeserializer{
3 => Items::COCOA_BEANS(),
4 => Items::LAPIS_LAZULI(),
15 => Items::BONE_MEAL(),
16 => Items::BLACK_DYE(),
17 => Items::BROWN_DYE(),
18 => Items::BLUE_DYE(),
19 => Items::WHITE_DYE(),
16 => Items::DYE()->setColor(DyeColor::BLACK()),
17 => Items::DYE()->setColor(DyeColor::BROWN()),
18 => Items::DYE()->setColor(DyeColor::BLUE()),
19 => Items::DYE()->setColor(DyeColor::WHITE()),
default => null
};
if($item !== null){
@ -301,21 +301,7 @@ final class ItemDeserializer{
if($dyeColor === null){
throw new ItemTypeDeserializeException("Unknown dye meta $meta");
}
return match($dyeColor->id()){
DyeColor::CYAN()->id() => Items::CYAN_DYE(),
DyeColor::GRAY()->id() => Items::GRAY_DYE(),
DyeColor::GREEN()->id() => Items::GREEN_DYE(),
DyeColor::LIGHT_BLUE()->id() => Items::LIGHT_BLUE_DYE(),
DyeColor::LIGHT_GRAY()->id() => Items::LIGHT_GRAY_DYE(),
DyeColor::LIME()->id() => Items::LIME_DYE(),
DyeColor::MAGENTA()->id() => Items::MAGENTA_DYE(),
DyeColor::ORANGE()->id() => Items::ORANGE_DYE(),
DyeColor::PINK()->id() => Items::PINK_DYE(),
DyeColor::PURPLE()->id() => Items::PURPLE_DYE(),
DyeColor::RED()->id() => Items::RED_DYE(),
DyeColor::YELLOW()->id() => Items::YELLOW_DYE(),
default => throw new AssumptionFailedError("Unhandled dye color " . $dyeColor->name())
};
return Items::DYE()->setColor($dyeColor);
});
$this->map(Ids::EGG, fn() => Items::EGG());
//TODO: minecraft:elder_guardian_spawn_egg
@ -374,8 +360,8 @@ final class ItemDeserializer{
$this->map(Ids::GOLDEN_PICKAXE, fn() => Items::GOLDEN_PICKAXE());
$this->map(Ids::GOLDEN_SHOVEL, fn() => Items::GOLDEN_SHOVEL());
$this->map(Ids::GOLDEN_SWORD, fn() => Items::GOLDEN_SWORD());
$this->map(Ids::GRAY_DYE, fn() => Items::GRAY_DYE());
$this->map(Ids::GREEN_DYE, fn() => Items::GREEN_DYE());
$this->map(Ids::GRAY_DYE, fn() => Items::DYE()->setColor(DyeColor::GRAY()));
$this->map(Ids::GREEN_DYE, fn() => Items::DYE()->setColor(DyeColor::GREEN()));
//TODO: minecraft:guardian_spawn_egg
$this->map(Ids::GUNPOWDER, fn() => Items::GUNPOWDER());
$this->map(Ids::HEART_OF_THE_SEA, fn() => Items::HEART_OF_THE_SEA());
@ -414,13 +400,13 @@ final class ItemDeserializer{
$this->map(Ids::LEATHER_HELMET, fn() => Items::LEATHER_CAP());
//TODO: minecraft:leather_horse_armor
$this->map(Ids::LEATHER_LEGGINGS, fn() => Items::LEATHER_PANTS());
$this->map(Ids::LIGHT_BLUE_DYE, fn() => Items::LIGHT_BLUE_DYE());
$this->map(Ids::LIGHT_GRAY_DYE, fn() => Items::LIGHT_GRAY_DYE());
$this->map(Ids::LIME_DYE, fn() => Items::LIME_DYE());
$this->map(Ids::LIGHT_BLUE_DYE, fn() => Items::DYE()->setColor(DyeColor::LIGHT_BLUE()));
$this->map(Ids::LIGHT_GRAY_DYE, fn() => Items::DYE()->setColor(DyeColor::LIGHT_GRAY()));
$this->map(Ids::LIME_DYE, fn() => Items::DYE()->setColor(DyeColor::LIME()));
//TODO: minecraft:lingering_potion
//TODO: minecraft:llama_spawn_egg
//TODO: minecraft:lodestone_compass
$this->map(Ids::MAGENTA_DYE, fn() => Items::MAGENTA_DYE());
$this->map(Ids::MAGENTA_DYE, fn() => Items::DYE()->setColor(DyeColor::MAGENTA()));
$this->map(Ids::MAGMA_CREAM, fn() => Items::MAGMA_CREAM());
//TODO: minecraft:magma_cube_spawn_egg
//TODO: minecraft:medicine
@ -468,7 +454,7 @@ final class ItemDeserializer{
$this->map(Ids::OAK_BOAT, fn() => Items::OAK_BOAT());
$this->map(Ids::OAK_SIGN, fn() => Blocks::OAK_SIGN()->asItem());
//TODO: minecraft:ocelot_spawn_egg
$this->map(Ids::ORANGE_DYE, fn() => Items::ORANGE_DYE());
$this->map(Ids::ORANGE_DYE, fn() => Items::DYE()->setColor(DyeColor::ORANGE()));
$this->map(Ids::PAINTING, fn() => Items::PAINTING());
//TODO: minecraft:panda_spawn_egg
$this->map(Ids::PAPER, fn() => Items::PAPER());
@ -480,7 +466,7 @@ final class ItemDeserializer{
//TODO: minecraft:piglin_brute_spawn_egg
//TODO: minecraft:piglin_spawn_egg
//TODO: minecraft:pillager_spawn_egg
$this->map(Ids::PINK_DYE, fn() => Items::PINK_DYE());
$this->map(Ids::PINK_DYE, fn() => Items::DYE()->setColor(DyeColor::PINK()));
$this->map(Ids::POISONOUS_POTATO, fn() => Items::POISONOUS_POTATO());
//TODO: minecraft:polar_bear_spawn_egg
$this->map(Ids::POPPED_CHORUS_FRUIT, fn() => Items::POPPED_CHORUS_FRUIT());
@ -502,7 +488,7 @@ final class ItemDeserializer{
//TODO: minecraft:pufferfish_spawn_egg
$this->map(Ids::PUMPKIN_PIE, fn() => Items::PUMPKIN_PIE());
$this->map(Ids::PUMPKIN_SEEDS, fn() => Items::PUMPKIN_SEEDS());
$this->map(Ids::PURPLE_DYE, fn() => Items::PURPLE_DYE());
$this->map(Ids::PURPLE_DYE, fn() => Items::DYE()->setColor(DyeColor::PURPLE()));
$this->map(Ids::QUARTZ, fn() => Items::NETHER_QUARTZ());
$this->map(Ids::RABBIT, fn() => Items::RAW_RABBIT());
$this->map(Ids::RABBIT_FOOT, fn() => Items::RABBIT_FOOT());
@ -514,7 +500,7 @@ final class ItemDeserializer{
//TODO: minecraft:raw_copper
//TODO: minecraft:raw_gold
//TODO: minecraft:raw_iron
$this->map(Ids::RED_DYE, fn() => Items::RED_DYE());
$this->map(Ids::RED_DYE, fn() => Items::DYE()->setColor(DyeColor::RED()));
$this->map(Ids::REDSTONE, fn() => Items::REDSTONE_DUST());
$this->map(Ids::REPEATER, fn() => Blocks::REDSTONE_REPEATER()->asItem());
$this->map(Ids::ROTTEN_FLESH, fn() => Items::ROTTEN_FLESH());
@ -538,15 +524,7 @@ final class ItemDeserializer{
}catch(\InvalidArgumentException $e){
throw new ItemTypeDeserializeException($e->getMessage(), 0, $e);
}
return match($skullType->id()) {
SkullType::SKELETON()->id() => Items::SKELETON_SKULL(),
SkullType::WITHER_SKELETON()->id() => Items::WITHER_SKELETON_SKULL(),
SkullType::ZOMBIE()->id() => Items::ZOMBIE_HEAD(),
SkullType::CREEPER()->id() => Items::CREEPER_HEAD(),
SkullType::PLAYER()->id() => Items::PLAYER_HEAD(),
SkullType::DRAGON()->id() => Items::DRAGON_HEAD(),
default => throw new ItemTypeDeserializeException("Unexpected skull type " . $skullType->getDisplayName())
};
return Items::MOB_HEAD()->setSkullType($skullType);
});
//TODO: minecraft:skull_banner_pattern
$this->map(Ids::SLIME_BALL, fn() => Items::SLIMEBALL());
@ -608,7 +586,7 @@ final class ItemDeserializer{
$this->map(Ids::WATER_BUCKET, fn() => Items::WATER_BUCKET());
$this->map(Ids::WHEAT, fn() => Items::WHEAT());
$this->map(Ids::WHEAT_SEEDS, fn() => Items::WHEAT_SEEDS());
$this->map(Ids::WHITE_DYE, fn() => Items::WHITE_DYE());
$this->map(Ids::WHITE_DYE, fn() => Items::DYE()->setColor(DyeColor::WHITE()));
//TODO: minecraft:witch_spawn_egg
//TODO: minecraft:wither_skeleton_spawn_egg
//TODO: minecraft:wolf_spawn_egg
@ -620,7 +598,7 @@ final class ItemDeserializer{
$this->map(Ids::WOODEN_SWORD, fn() => Items::WOODEN_SWORD());
$this->map(Ids::WRITABLE_BOOK, fn() => Items::WRITABLE_BOOK());
$this->map(Ids::WRITTEN_BOOK, fn() => Items::WRITTEN_BOOK());
$this->map(Ids::YELLOW_DYE, fn() => Items::YELLOW_DYE());
$this->map(Ids::YELLOW_DYE, fn() => Items::DYE()->setColor(DyeColor::YELLOW()));
//TODO: minecraft:zoglin_spawn_egg
//TODO: minecraft:zombie_horse_spawn_egg
//TODO: minecraft:zombie_pigman_spawn_egg

View File

@ -25,7 +25,6 @@ namespace pocketmine\data\bedrock\item;
use pocketmine\block\Block;
use pocketmine\block\utils\DyeColor;
use pocketmine\block\utils\SkullType;
use pocketmine\block\VanillaBlocks as Blocks;
use pocketmine\data\bedrock\block\BlockStateSerializeException;
use pocketmine\data\bedrock\block\BlockStateSerializer;
@ -35,10 +34,13 @@ use pocketmine\data\bedrock\item\ItemTypeIds as Ids;
use pocketmine\data\bedrock\item\SavedItemData as Data;
use pocketmine\data\bedrock\PotionTypeIdMap;
use pocketmine\item\Banner;
use pocketmine\item\Bed;
use pocketmine\item\CoralFan;
use pocketmine\item\Dye;
use pocketmine\item\Item;
use pocketmine\item\ItemBlock;
use pocketmine\item\Potion;
use pocketmine\item\Skull;
use pocketmine\item\SplashPotion;
use pocketmine\item\VanillaItems as Items;
use pocketmine\utils\AssumptionFailedError;
@ -214,22 +216,6 @@ final class ItemSerializer{
return fn() => new Data($id);
}
/**
* @phpstan-return \Closure() : Data
*/
private static function bed(DyeColor $color) : \Closure{
$meta = DyeColorIdMap::getInstance()->toId($color);
return fn() => new Data(Ids::BED, $meta);
}
/**
* @phpstan-return \Closure() : Data
*/
private static function skull(SkullType $skullType) : \Closure{
$meta = $skullType->getMagicNumber();
return fn() => new Data(Ids::SKULL, $meta);
}
/**
* @phpstan-return \Closure() : Data
*/
@ -270,18 +256,15 @@ final class ItemSerializer{
$this->map(Items::ARROW(), self::id(Ids::ARROW));
$this->map(Items::BAKED_POTATO(), self::id(Ids::BAKED_POTATO));
$this->map(Items::BANNER(), fn(Banner $item) => new Data(Ids::BANNER, DyeColorIdMap::getInstance()->toInvertedId($item->getColor())));
$this->map(Items::BED(), fn(Bed $item) => new Data(Ids::BED, DyeColorIdMap::getInstance()->toId($item->getColor())));
$this->map(Items::BEETROOT(), self::id(Ids::BEETROOT));
$this->map(Items::BEETROOT_SEEDS(), self::id(Ids::BEETROOT_SEEDS));
$this->map(Items::BEETROOT_SOUP(), self::id(Ids::BEETROOT_SOUP));
$this->map(Items::BIRCH_BOAT(), self::id(Ids::BIRCH_BOAT));
$this->map(Items::BIRCH_SIGN(), self::id(Ids::BIRCH_SIGN));
$this->map(Items::BLACK_BED(), self::bed(DyeColor::BLACK()));
$this->map(Items::BLACK_DYE(), self::id(Ids::BLACK_DYE));
$this->map(Items::BLAZE_POWDER(), self::id(Ids::BLAZE_POWDER));
$this->map(Items::BLAZE_ROD(), self::id(Ids::BLAZE_ROD));
$this->map(Items::BLEACH(), self::id(Ids::BLEACH));
$this->map(Items::BLUE_BED(), self::bed(DyeColor::BLUE()));
$this->map(Items::BLUE_DYE(), self::id(Ids::BLUE_DYE));
$this->map(Items::BONE(), self::id(Ids::BONE));
$this->map(Items::BONE_MEAL(), self::id(Ids::BONE_MEAL));
$this->map(Items::BOOK(), self::id(Ids::BOOK));
@ -289,8 +272,6 @@ final class ItemSerializer{
$this->map(Items::BOWL(), self::id(Ids::BOWL));
$this->map(Items::BREAD(), self::id(Ids::BREAD));
$this->map(Items::BRICK(), self::id(Ids::BRICK));
$this->map(Items::BROWN_BED(), self::bed(DyeColor::BROWN()));
$this->map(Items::BROWN_DYE(), self::id(Ids::BROWN_DYE));
$this->map(Items::BUCKET(), self::id(Ids::BUCKET));
$this->map(Items::CARROT(), self::id(Ids::CARROT));
$this->map(Items::CHAINMAIL_BOOTS(), self::id(Ids::CHAINMAIL_BOOTS));
@ -350,9 +331,6 @@ final class ItemSerializer{
$this->map(Items::COOKED_RABBIT(), self::id(Ids::COOKED_RABBIT));
$this->map(Items::COOKED_SALMON(), self::id(Ids::COOKED_SALMON));
$this->map(Items::COOKIE(), self::id(Ids::COOKIE));
$this->map(Items::CREEPER_HEAD(), self::skull(SkullType::CREEPER()));
$this->map(Items::CYAN_BED(), self::bed(DyeColor::CYAN()));
$this->map(Items::CYAN_DYE(), self::id(Ids::CYAN_DYE));
$this->map(Items::DARK_OAK_BOAT(), self::id(Ids::DARK_OAK_BOAT));
$this->map(Items::DARK_OAK_SIGN(), self::id(Ids::DARK_OAK_SIGN));
$this->map(Items::DIAMOND(), self::id(Ids::DIAMOND));
@ -366,8 +344,26 @@ final class ItemSerializer{
$this->map(Items::DIAMOND_SHOVEL(), self::id(Ids::DIAMOND_SHOVEL));
$this->map(Items::DIAMOND_SWORD(), self::id(Ids::DIAMOND_SWORD));
$this->map(Items::DRAGON_BREATH(), self::id(Ids::DRAGON_BREATH));
$this->map(Items::DRAGON_HEAD(), self::skull(SkullType::DRAGON()));
$this->map(Items::DRIED_KELP(), self::id(Ids::DRIED_KELP));
$this->map(Items::DYE(), fn(Dye $item) => new Data(match($item->getColor()){
DyeColor::BLACK() => Ids::BLACK_DYE,
DyeColor::BLUE() => Ids::BLUE_DYE,
DyeColor::BROWN() => Ids::BROWN_DYE,
DyeColor::CYAN() => Ids::CYAN_DYE,
DyeColor::GRAY() => Ids::GRAY_DYE,
DyeColor::GREEN() => Ids::GREEN_DYE,
DyeColor::LIGHT_BLUE() => Ids::LIGHT_BLUE_DYE,
DyeColor::LIGHT_GRAY() => Ids::LIGHT_GRAY_DYE,
DyeColor::LIME() => Ids::LIME_DYE,
DyeColor::MAGENTA() => Ids::MAGENTA_DYE,
DyeColor::ORANGE() => Ids::ORANGE_DYE,
DyeColor::PINK() => Ids::PINK_DYE,
DyeColor::PURPLE() => Ids::PURPLE_DYE,
DyeColor::RED() => Ids::RED_DYE,
DyeColor::WHITE() => Ids::WHITE_DYE,
DyeColor::YELLOW() => Ids::YELLOW_DYE,
default => throw new AssumptionFailedError("Unhandled dye color " . $item->getColor()->name()),
}));
$this->map(Items::EGG(), self::id(Ids::EGG));
$this->map(Items::EMERALD(), self::id(Ids::EMERALD));
$this->map(Items::ENCHANTED_GOLDEN_APPLE(), self::id(Ids::ENCHANTED_GOLDEN_APPLE));
@ -395,10 +391,6 @@ final class ItemSerializer{
$this->map(Items::GOLDEN_SWORD(), self::id(Ids::GOLDEN_SWORD));
$this->map(Items::GOLD_INGOT(), self::id(Ids::GOLD_INGOT));
$this->map(Items::GOLD_NUGGET(), self::id(Ids::GOLD_NUGGET));
$this->map(Items::GRAY_BED(), self::bed(DyeColor::GRAY()));
$this->map(Items::GRAY_DYE(), self::id(Ids::GRAY_DYE));
$this->map(Items::GREEN_BED(), self::bed(DyeColor::GREEN()));
$this->map(Items::GREEN_DYE(), self::id(Ids::GREEN_DYE));
$this->map(Items::GUNPOWDER(), self::id(Ids::GUNPOWDER));
$this->map(Items::HEART_OF_THE_SEA(), self::id(Ids::HEART_OF_THE_SEA));
$this->map(Items::INK_SAC(), self::id(Ids::INK_SAC));
@ -422,19 +414,12 @@ final class ItemSerializer{
$this->map(Items::LEATHER_CAP(), self::id(Ids::LEATHER_HELMET));
$this->map(Items::LEATHER_PANTS(), self::id(Ids::LEATHER_LEGGINGS));
$this->map(Items::LEATHER_TUNIC(), self::id(Ids::LEATHER_CHESTPLATE));
$this->map(Items::LIGHT_BLUE_BED(), self::bed(DyeColor::LIGHT_BLUE()));
$this->map(Items::LIGHT_BLUE_DYE(), self::id(Ids::LIGHT_BLUE_DYE));
$this->map(Items::LIGHT_GRAY_BED(), self::bed(DyeColor::LIGHT_GRAY()));
$this->map(Items::LIGHT_GRAY_DYE(), self::id(Ids::LIGHT_GRAY_DYE));
$this->map(Items::LIME_BED(), self::bed(DyeColor::LIME()));
$this->map(Items::LIME_DYE(), self::id(Ids::LIME_DYE));
$this->map(Items::MAGENTA_BED(), self::bed(DyeColor::MAGENTA()));
$this->map(Items::MAGENTA_DYE(), self::id(Ids::MAGENTA_DYE));
$this->map(Items::MAGMA_CREAM(), self::id(Ids::MAGMA_CREAM));
$this->map(Items::MELON(), self::id(Ids::MELON_SLICE));
$this->map(Items::MELON_SEEDS(), self::id(Ids::MELON_SEEDS));
$this->map(Items::MILK_BUCKET(), self::id(Ids::MILK_BUCKET));
$this->map(Items::MINECART(), self::id(Ids::MINECART));
$this->map(Items::MOB_HEAD(), fn(Skull $item) => new Data(Ids::SKULL, $item->getSkullType()->getMagicNumber()));
$this->map(Items::MUSHROOM_STEW(), self::id(Ids::MUSHROOM_STEW));
$this->map(Items::NAUTILUS_SHELL(), self::id(Ids::NAUTILUS_SHELL));
$this->map(Items::NETHER_BRICK(), self::id(Ids::NETHERBRICK));
@ -442,13 +427,8 @@ final class ItemSerializer{
$this->map(Items::NETHER_STAR(), self::id(Ids::NETHER_STAR));
$this->map(Items::OAK_BOAT(), self::id(Ids::OAK_BOAT));
$this->map(Items::OAK_SIGN(), self::id(Ids::OAK_SIGN));
$this->map(Items::ORANGE_BED(), self::bed(DyeColor::ORANGE()));
$this->map(Items::ORANGE_DYE(), self::id(Ids::ORANGE_DYE));
$this->map(Items::PAINTING(), self::id(Ids::PAINTING));
$this->map(Items::PAPER(), self::id(Ids::PAPER));
$this->map(Items::PINK_BED(), self::bed(DyeColor::PINK()));
$this->map(Items::PINK_DYE(), self::id(Ids::PINK_DYE));
$this->map(Items::PLAYER_HEAD(), self::skull(SkullType::PLAYER()));
$this->map(Items::POISONOUS_POTATO(), self::id(Ids::POISONOUS_POTATO));
$this->map(Items::POPPED_CHORUS_FRUIT(), self::id(Ids::POPPED_CHORUS_FRUIT));
$this->map(Items::POTATO(), self::id(Ids::POTATO));
@ -458,8 +438,6 @@ final class ItemSerializer{
$this->map(Items::PUFFERFISH(), self::id(Ids::PUFFERFISH));
$this->map(Items::PUMPKIN_PIE(), self::id(Ids::PUMPKIN_PIE));
$this->map(Items::PUMPKIN_SEEDS(), self::id(Ids::PUMPKIN_SEEDS));
$this->map(Items::PURPLE_BED(), self::bed(DyeColor::PURPLE()));
$this->map(Items::PURPLE_DYE(), self::id(Ids::PURPLE_DYE));
$this->map(Items::RABBIT_FOOT(), self::id(Ids::RABBIT_FOOT));
$this->map(Items::RABBIT_HIDE(), self::id(Ids::RABBIT_HIDE));
$this->map(Items::RABBIT_STEW(), self::id(Ids::RABBIT_STEW));
@ -483,13 +461,10 @@ final class ItemSerializer{
$this->map(Items::RECORD_WAIT(), self::id(Ids::MUSIC_DISC_WAIT));
$this->map(Items::RECORD_WARD(), self::id(Ids::MUSIC_DISC_WARD));
$this->map(Items::REDSTONE_DUST(), self::id(Ids::REDSTONE));
$this->map(Items::RED_BED(), self::bed(DyeColor::RED()));
$this->map(Items::RED_DYE(), self::id(Ids::RED_DYE));
$this->map(Items::ROTTEN_FLESH(), self::id(Ids::ROTTEN_FLESH));
$this->map(Items::SCUTE(), self::id(Ids::SCUTE));
$this->map(Items::SHEARS(), self::id(Ids::SHEARS));
$this->map(Items::SHULKER_SHELL(), self::id(Ids::SHULKER_SHELL));
$this->map(Items::SKELETON_SKULL(), self::skull(SkullType::SKELETON()));
$this->map(Items::SLIMEBALL(), self::id(Ids::SLIME_BALL));
$this->map(Items::SNOWBALL(), self::id(Ids::SNOWBALL));
$this->map(Items::SPIDER_EYE(), self::id(Ids::SPIDER_EYE));
@ -512,9 +487,6 @@ final class ItemSerializer{
$this->map(Items::WATER_BUCKET(), self::id(Ids::WATER_BUCKET));
$this->map(Items::WHEAT(), self::id(Ids::WHEAT));
$this->map(Items::WHEAT_SEEDS(), self::id(Ids::WHEAT_SEEDS));
$this->map(Items::WHITE_BED(), self::bed(DyeColor::WHITE()));
$this->map(Items::WHITE_DYE(), self::id(Ids::WHITE_DYE));
$this->map(Items::WITHER_SKELETON_SKULL(), self::skull(SkullType::WITHER_SKELETON()));
$this->map(Items::WOODEN_AXE(), self::id(Ids::WOODEN_AXE));
$this->map(Items::WOODEN_HOE(), self::id(Ids::WOODEN_HOE));
$this->map(Items::WOODEN_PICKAXE(), self::id(Ids::WOODEN_PICKAXE));
@ -522,9 +494,6 @@ final class ItemSerializer{
$this->map(Items::WOODEN_SWORD(), self::id(Ids::WOODEN_SWORD));
$this->map(Items::WRITABLE_BOOK(), self::id(Ids::WRITABLE_BOOK));
$this->map(Items::WRITTEN_BOOK(), self::id(Ids::WRITTEN_BOOK));
$this->map(Items::YELLOW_BED(), self::bed(DyeColor::YELLOW()));
$this->map(Items::YELLOW_DYE(), self::id(Ids::YELLOW_DYE));
$this->map(Items::ZOMBIE_HEAD(), self::skull(SkullType::ZOMBIE()));
$this->map(Items::ZOMBIE_SPAWN_EGG(), self::id(Ids::ZOMBIE_SPAWN_EGG));
}
}

View File

@ -26,19 +26,32 @@ namespace pocketmine\item;
use pocketmine\block\Block;
use pocketmine\block\utils\DyeColor;
use pocketmine\block\VanillaBlocks;
use pocketmine\data\bedrock\DyeColorIdMap;
class Bed extends Item{
private DyeColor $color;
public function __construct(ItemIdentifier $identifier, string $name, DyeColor $color){
public function __construct(ItemIdentifier $identifier, string $name){
$this->color = DyeColor::WHITE();
parent::__construct($identifier, $name);
$this->color = $color;
}
public function getMeta() : int{
return DyeColorIdMap::getInstance()->toId($this->color);
}
public function getColor() : DyeColor{
return $this->color;
}
/**
* @return $this
*/
public function setColor(DyeColor $color) : self{
$this->color = $color;
return $this;
}
public function getBlock(?int $clickedFace = null) : Block{
return VanillaBlocks::BED()->setColor($this->color);
}

View File

@ -24,16 +24,35 @@ declare(strict_types=1);
namespace pocketmine\item;
use pocketmine\block\utils\DyeColor;
use pocketmine\data\bedrock\DyeColorIdMap;
class Dye extends Item{
private DyeColor $color;
public function __construct(ItemIdentifier $identifier, string $name, DyeColor $color){
public function __construct(ItemIdentifier $identifier, string $name){
$this->color = DyeColor::BLACK();
parent::__construct($identifier, $name);
$this->color = $color;
}
public function getMeta() : int{
return match($this->color->id()){
DyeColor::BLACK()->id() => 16,
DyeColor::BROWN()->id() => 17,
DyeColor::BLUE()->id() => 18,
DyeColor::WHITE()->id() => 19,
default => DyeColorIdMap::getInstance()->toInvertedId($this->color)
};
}
public function getColor() : DyeColor{
return $this->color;
}
/**
* @return $this
*/
public function setColor(DyeColor $color) : self{
$this->color = $color;
return $this;
}
}

View File

@ -33,7 +33,6 @@ use pocketmine\block\utils\TreeType;
use pocketmine\block\VanillaBlocks as Blocks;
use pocketmine\data\bedrock\block\BlockStateDeserializeException;
use pocketmine\data\bedrock\CompoundTypeIds;
use pocketmine\data\bedrock\DyeColorIdMap;
use pocketmine\data\bedrock\EntityLegacyIds;
use pocketmine\data\SavedDataLoadingException;
use pocketmine\entity\Entity;
@ -267,21 +266,15 @@ class ItemFactory{
$this->register(new WrittenBook(new IID(Ids::WRITTEN_BOOK, 0), "Written Book"));
foreach(SkullType::getAll() as $skullType){
$this->register(new Skull(new IID(Ids::SKULL, $skullType->getMagicNumber()), $skullType->getDisplayName(), $skullType));
$this->register((new Skull(new IID(Ids::SKULL, 0), "Mob Head"))->setSkullType($skullType));
}
$dyeMap = [
DyeColor::BLACK()->id() => 16,
DyeColor::BROWN()->id() => 17,
DyeColor::BLUE()->id() => 18,
DyeColor::WHITE()->id() => 19
];
$colorIdMap = DyeColorIdMap::getInstance();
foreach(DyeColor::getAll() as $color){
//TODO: use colour object directly
//TODO: add interface to dye-colour objects
$this->register(new Dye(new IID(Ids::DYE, $dyeMap[$color->id()] ?? $colorIdMap->toInvertedId($color)), $color->getDisplayName() . " Dye", $color));
$this->register(new Bed(new IID(Ids::BED, $colorIdMap->toId($color)), $color->getDisplayName() . " Bed", $color));
//1000 isn't the real variant for dye, but it needs to not conflict with INK_SAC
$this->register((new Dye(new IID(Ids::DYE, 1000), "Dye"))->setColor($color));
$this->register((new Bed(new IID(Ids::BED, 0), "Bed"))->setColor($color));
$this->register((new Banner(
new IID(Ids::BANNER, 0),
Blocks::BANNER(),

View File

@ -30,9 +30,13 @@ use pocketmine\block\VanillaBlocks;
class Skull extends Item{
private SkullType $skullType;
public function __construct(ItemIdentifier $identifier, string $name, SkullType $skullType){
public function __construct(ItemIdentifier $identifier, string $name){
$this->skullType = SkullType::SKELETON();
parent::__construct($identifier, $name);
$this->skullType = $skullType;
}
public function getMeta() : int{
return $this->skullType->getMagicNumber();
}
public function getBlock(?int $clickedFace = null) : Block{
@ -44,4 +48,10 @@ class Skull extends Item{
public function getSkullType() : SkullType{
return $this->skullType;
}
/** @return $this */
public function setSkullType(SkullType $skullType) : self{
$this->skullType = $skullType;
return $this;
}
}

View File

@ -26,6 +26,7 @@ namespace pocketmine\item;
use pocketmine\block\Block;
use pocketmine\block\utils\CoralType;
use pocketmine\block\utils\DyeColor;
use pocketmine\block\utils\SkullType;
use pocketmine\block\utils\SlabType;
use pocketmine\block\VanillaBlocks as Blocks;
use pocketmine\item\VanillaItems as Items;
@ -58,6 +59,8 @@ final class StringToItemParser extends StringToTParser{
$result->registerBlock($prefix("stained_hardened_glass_pane"), fn() => Blocks::STAINED_HARDENED_GLASS_PANE()->setColor($color));
$result->registerBlock($prefix("wool"), fn() => Blocks::WOOL()->setColor($color));
$result->registerBlock($prefix("shulker_box"), fn() => Blocks::DYED_SHULKER_BOX()->setColor($color));
$result->register($prefix("dye"), fn() => Items::DYE()->setColor($color));
}
foreach(CoralType::getAll() as $coralType){
$prefix = fn(string $name) => $coralType->name() . "_" . $name;
@ -954,18 +957,16 @@ final class StringToItemParser extends StringToTParser{
$result->register("awkward_splash_potion", fn() => Items::SPLASH_POTION()->setType(PotionType::AWKWARD()));
$result->register("baked_potato", fn() => Items::BAKED_POTATO());
$result->register("baked_potatoes", fn() => Items::BAKED_POTATO());
$result->register("bed", fn() => Items::WHITE_BED());
$result->register("bed", fn() => Items::BED());
$result->register("beef", fn() => Items::RAW_BEEF());
$result->register("beetroot", fn() => Items::BEETROOT());
$result->register("beetroot_seed", fn() => Items::BEETROOT_SEEDS());
$result->register("beetroot_seeds", fn() => Items::BEETROOT_SEEDS());
$result->register("beetroot_soup", fn() => Items::BEETROOT_SOUP());
$result->register("birch_boat", fn() => Items::BIRCH_BOAT());
$result->register("black_dye", fn() => Items::BLACK_DYE());
$result->register("blaze_powder", fn() => Items::BLAZE_POWDER());
$result->register("blaze_rod", fn() => Items::BLAZE_ROD());
$result->register("bleach", fn() => Items::BLEACH());
$result->register("blue_dye", fn() => Items::BLUE_DYE());
$result->register("boat", fn() => Items::OAK_BOAT());
$result->register("bone", fn() => Items::BONE());
$result->register("bone_meal", fn() => Items::BONE_MEAL());
@ -975,7 +976,6 @@ final class StringToItemParser extends StringToTParser{
$result->register("bowl", fn() => Items::BOWL());
$result->register("bread", fn() => Items::BREAD());
$result->register("brick", fn() => Items::BRICK());
$result->register("brown_dye", fn() => Items::BROWN_DYE());
$result->register("bucket", fn() => Items::BUCKET());
$result->register("carrot", fn() => Items::CARROT());
$result->register("chain_boots", fn() => Items::CHAINMAIL_BOOTS());
@ -1047,8 +1047,7 @@ final class StringToItemParser extends StringToTParser{
$result->register("cooked_rabbit", fn() => Items::COOKED_RABBIT());
$result->register("cooked_salmon", fn() => Items::COOKED_SALMON());
$result->register("cookie", fn() => Items::COOKIE());
$result->register("creeper_head", fn() => Items::CREEPER_HEAD());
$result->register("cyan_dye", fn() => Items::CYAN_DYE());
$result->register("creeper_head", fn() => Items::MOB_HEAD()->setSkullType(SkullType::CREEPER()));
$result->register("dark_oak_boat", fn() => Items::DARK_OAK_BOAT());
$result->register("diamond", fn() => Items::DIAMOND());
$result->register("diamond_axe", fn() => Items::DIAMOND_AXE());
@ -1061,7 +1060,7 @@ final class StringToItemParser extends StringToTParser{
$result->register("diamond_shovel", fn() => Items::DIAMOND_SHOVEL());
$result->register("diamond_sword", fn() => Items::DIAMOND_SWORD());
$result->register("dragon_breath", fn() => Items::DRAGON_BREATH());
$result->register("dragon_head", fn() => Items::DRAGON_HEAD());
$result->register("dragon_head", fn() => Items::MOB_HEAD()->setSkullType(SkullType::DRAGON()));
$result->register("dried_kelp", fn() => Items::DRIED_KELP());
$result->register("dye", fn() => Items::INK_SAC());
$result->register("egg", fn() => Items::EGG());
@ -1106,8 +1105,6 @@ final class StringToItemParser extends StringToTParser{
$result->register("golden_pickaxe", fn() => Items::GOLDEN_PICKAXE());
$result->register("golden_shovel", fn() => Items::GOLDEN_SHOVEL());
$result->register("golden_sword", fn() => Items::GOLDEN_SWORD());
$result->register("gray_dye", fn() => Items::GRAY_DYE());
$result->register("green_dye", fn() => Items::GREEN_DYE());
$result->register("gunpowder", fn() => Items::GUNPOWDER());
$result->register("harming_potion", fn() => Items::POTION()->setType(PotionType::HARMING()));
$result->register("harming_splash_potion", fn() => Items::SPLASH_POTION()->setType(PotionType::HARMING()));
@ -1141,9 +1138,6 @@ final class StringToItemParser extends StringToTParser{
$result->register("leather_leggings", fn() => Items::LEATHER_PANTS());
$result->register("leather_pants", fn() => Items::LEATHER_PANTS());
$result->register("leather_tunic", fn() => Items::LEATHER_TUNIC());
$result->register("light_blue_dye", fn() => Items::LIGHT_BLUE_DYE());
$result->register("light_gray_dye", fn() => Items::LIGHT_GRAY_DYE());
$result->register("lime_dye", fn() => Items::LIME_DYE());
$result->register("long_fire_resistance_potion", fn() => Items::POTION()->setType(PotionType::LONG_FIRE_RESISTANCE()));
$result->register("long_fire_resistance_splash_potion", fn() => Items::SPLASH_POTION()->setType(PotionType::LONG_FIRE_RESISTANCE()));
$result->register("long_invisibility_potion", fn() => Items::POTION()->setType(PotionType::LONG_INVISIBILITY()));
@ -1172,14 +1166,13 @@ final class StringToItemParser extends StringToTParser{
$result->register("long_water_breathing_splash_potion", fn() => Items::SPLASH_POTION()->setType(PotionType::LONG_WATER_BREATHING()));
$result->register("long_weakness_potion", fn() => Items::POTION()->setType(PotionType::LONG_WEAKNESS()));
$result->register("long_weakness_splash_potion", fn() => Items::SPLASH_POTION()->setType(PotionType::LONG_WEAKNESS()));
$result->register("magenta_dye", fn() => Items::MAGENTA_DYE());
$result->register("magma_cream", fn() => Items::MAGMA_CREAM());
$result->register("melon", fn() => Items::MELON());
$result->register("melon_seeds", fn() => Items::MELON_SEEDS());
$result->register("melon_slice", fn() => Items::MELON());
$result->register("milk_bucket", fn() => Items::MILK_BUCKET());
$result->register("minecart", fn() => Items::MINECART());
$result->register("mob_head", fn() => Items::SKELETON_SKULL());
$result->register("mob_head", fn() => Items::MOB_HEAD());
$result->register("mundane_potion", fn() => Items::POTION()->setType(PotionType::MUNDANE()));
$result->register("mundane_splash_potion", fn() => Items::SPLASH_POTION()->setType(PotionType::MUNDANE()));
$result->register("mushroom_stew", fn() => Items::MUSHROOM_STEW());
@ -1197,11 +1190,9 @@ final class StringToItemParser extends StringToTParser{
$result->register("night_vision_potion", fn() => Items::POTION()->setType(PotionType::NIGHT_VISION()));
$result->register("night_vision_splash_potion", fn() => Items::SPLASH_POTION()->setType(PotionType::NIGHT_VISION()));
$result->register("oak_boat", fn() => Items::OAK_BOAT());
$result->register("orange_dye", fn() => Items::ORANGE_DYE());
$result->register("painting", fn() => Items::PAINTING());
$result->register("paper", fn() => Items::PAPER());
$result->register("pink_dye", fn() => Items::PINK_DYE());
$result->register("player_head", fn() => Items::PLAYER_HEAD());
$result->register("player_head", fn() => Items::MOB_HEAD()->setSkullType(SkullType::PLAYER()));
$result->register("poison_potion", fn() => Items::POTION()->setType(PotionType::POISON()));
$result->register("poison_splash_potion", fn() => Items::SPLASH_POTION()->setType(PotionType::POISON()));
$result->register("poisonous_potato", fn() => Items::POISONOUS_POTATO());
@ -1215,7 +1206,6 @@ final class StringToItemParser extends StringToTParser{
$result->register("pufferfish", fn() => Items::PUFFERFISH());
$result->register("pumpkin_pie", fn() => Items::PUMPKIN_PIE());
$result->register("pumpkin_seeds", fn() => Items::PUMPKIN_SEEDS());
$result->register("purple_dye", fn() => Items::PURPLE_DYE());
$result->register("quartz", fn() => Items::NETHER_QUARTZ());
$result->register("rabbit", fn() => Items::RAW_RABBIT());
$result->register("rabbit_foot", fn() => Items::RABBIT_FOOT());
@ -1241,7 +1231,6 @@ final class StringToItemParser extends StringToTParser{
$result->register("record_strad", fn() => Items::RECORD_STRAD());
$result->register("record_wait", fn() => Items::RECORD_WAIT());
$result->register("record_ward", fn() => Items::RECORD_WARD());
$result->register("red_dye", fn() => Items::RED_DYE());
$result->register("redstone", fn() => Items::REDSTONE_DUST());
$result->register("redstone_dust", fn() => Items::REDSTONE_DUST());
$result->register("regeneration_potion", fn() => Items::POTION()->setType(PotionType::REGENERATION()));
@ -1252,8 +1241,8 @@ final class StringToItemParser extends StringToTParser{
$result->register("seeds", fn() => Items::WHEAT_SEEDS());
$result->register("shears", fn() => Items::SHEARS());
$result->register("shulker_shell", fn() => Items::SHULKER_SHELL());
$result->register("skeleton_skull", fn() => Items::SKELETON_SKULL());
$result->register("skull", fn() => Items::SKELETON_SKULL());
$result->register("skeleton_skull", fn() => Items::MOB_HEAD()->setSkullType(SkullType::SKELETON()));
$result->register("skull", fn() => Items::MOB_HEAD()->setSkullType(SkullType::SKELETON()));
$result->register("slime_ball", fn() => Items::SLIMEBALL());
$result->register("slimeball", fn() => Items::SLIMEBALL());
$result->register("slow_falling_potion", fn() => Items::POTION()->setType(PotionType::SLOW_FALLING()));
@ -1313,9 +1302,8 @@ final class StringToItemParser extends StringToTParser{
$result->register("weakness_splash_potion", fn() => Items::SPLASH_POTION()->setType(PotionType::WEAKNESS()));
$result->register("wheat", fn() => Items::WHEAT());
$result->register("wheat_seeds", fn() => Items::WHEAT_SEEDS());
$result->register("white_dye", fn() => Items::WHITE_DYE());
$result->register("wither_potion", fn() => Items::POTION()->setType(PotionType::WITHER()));
$result->register("wither_skeleton_skull", fn() => Items::WITHER_SKELETON_SKULL());
$result->register("wither_skeleton_skull", fn() => Items::MOB_HEAD()->setSkullType(SkullType::WITHER_SKELETON()));
$result->register("wither_splash_potion", fn() => Items::SPLASH_POTION()->setType(PotionType::WITHER()));
$result->register("wooden_axe", fn() => Items::WOODEN_AXE());
$result->register("wooden_hoe", fn() => Items::WOODEN_HOE());
@ -1324,8 +1312,7 @@ final class StringToItemParser extends StringToTParser{
$result->register("wooden_sword", fn() => Items::WOODEN_SWORD());
$result->register("writable_book", fn() => Items::WRITABLE_BOOK());
$result->register("written_book", fn() => Items::WRITTEN_BOOK());
$result->register("yellow_dye", fn() => Items::YELLOW_DYE());
$result->register("zombie_head", fn() => Items::ZOMBIE_HEAD());
$result->register("zombie_head", fn() => Items::MOB_HEAD()->setSkullType(SkullType::ZOMBIE()));
$result->register("zombie_spawn_egg", fn() => Items::ZOMBIE_SPAWN_EGG());
return $result;

View File

@ -40,18 +40,15 @@ use pocketmine\utils\CloningRegistryTrait;
* @method static BakedPotato BAKED_POTATO()
* @method static Bamboo BAMBOO()
* @method static Banner BANNER()
* @method static Bed BED()
* @method static Beetroot BEETROOT()
* @method static BeetrootSeeds BEETROOT_SEEDS()
* @method static BeetrootSoup BEETROOT_SOUP()
* @method static Boat BIRCH_BOAT()
* @method static ItemBlockWallOrFloor BIRCH_SIGN()
* @method static Bed BLACK_BED()
* @method static Dye BLACK_DYE()
* @method static Item BLAZE_POWDER()
* @method static BlazeRod BLAZE_ROD()
* @method static Item BLEACH()
* @method static Bed BLUE_BED()
* @method static Dye BLUE_DYE()
* @method static Item BONE()
* @method static Fertilizer BONE_MEAL()
* @method static Book BOOK()
@ -59,8 +56,6 @@ use pocketmine\utils\CloningRegistryTrait;
* @method static Bowl BOWL()
* @method static Bread BREAD()
* @method static Item BRICK()
* @method static Bed BROWN_BED()
* @method static Dye BROWN_DYE()
* @method static Bucket BUCKET()
* @method static Carrot CARROT()
* @method static Armor CHAINMAIL_BOOTS()
@ -121,9 +116,6 @@ use pocketmine\utils\CloningRegistryTrait;
* @method static CookedSalmon COOKED_SALMON()
* @method static Cookie COOKIE()
* @method static CoralFan CORAL_FAN()
* @method static Skull CREEPER_HEAD()
* @method static Bed CYAN_BED()
* @method static Dye CYAN_DYE()
* @method static Boat DARK_OAK_BOAT()
* @method static ItemBlockWallOrFloor DARK_OAK_SIGN()
* @method static Item DIAMOND()
@ -137,8 +129,8 @@ use pocketmine\utils\CloningRegistryTrait;
* @method static Shovel DIAMOND_SHOVEL()
* @method static Sword DIAMOND_SWORD()
* @method static Item DRAGON_BREATH()
* @method static Skull DRAGON_HEAD()
* @method static DriedKelp DRIED_KELP()
* @method static Dye DYE()
* @method static Egg EGG()
* @method static Item EMERALD()
* @method static GoldenAppleEnchanted ENCHANTED_GOLDEN_APPLE()
@ -166,10 +158,6 @@ use pocketmine\utils\CloningRegistryTrait;
* @method static Sword GOLDEN_SWORD()
* @method static Item GOLD_INGOT()
* @method static Item GOLD_NUGGET()
* @method static Bed GRAY_BED()
* @method static Dye GRAY_DYE()
* @method static Bed GREEN_BED()
* @method static Dye GREEN_DYE()
* @method static Item GUNPOWDER()
* @method static Item HEART_OF_THE_SEA()
* @method static Item INK_SAC()
@ -193,19 +181,12 @@ use pocketmine\utils\CloningRegistryTrait;
* @method static Armor LEATHER_CAP()
* @method static Armor LEATHER_PANTS()
* @method static Armor LEATHER_TUNIC()
* @method static Bed LIGHT_BLUE_BED()
* @method static Dye LIGHT_BLUE_DYE()
* @method static Bed LIGHT_GRAY_BED()
* @method static Dye LIGHT_GRAY_DYE()
* @method static Bed LIME_BED()
* @method static Dye LIME_DYE()
* @method static Bed MAGENTA_BED()
* @method static Dye MAGENTA_DYE()
* @method static Item MAGMA_CREAM()
* @method static Melon MELON()
* @method static MelonSeeds MELON_SEEDS()
* @method static MilkBucket MILK_BUCKET()
* @method static Minecart MINECART()
* @method static Skull MOB_HEAD()
* @method static MushroomStew MUSHROOM_STEW()
* @method static Item NAUTILUS_SHELL()
* @method static Item NETHER_BRICK()
@ -213,13 +194,8 @@ use pocketmine\utils\CloningRegistryTrait;
* @method static Item NETHER_STAR()
* @method static Boat OAK_BOAT()
* @method static ItemBlockWallOrFloor OAK_SIGN()
* @method static Bed ORANGE_BED()
* @method static Dye ORANGE_DYE()
* @method static PaintingItem PAINTING()
* @method static Item PAPER()
* @method static Bed PINK_BED()
* @method static Dye PINK_DYE()
* @method static Skull PLAYER_HEAD()
* @method static PoisonousPotato POISONOUS_POTATO()
* @method static Item POPPED_CHORUS_FRUIT()
* @method static Potato POTATO()
@ -229,8 +205,6 @@ use pocketmine\utils\CloningRegistryTrait;
* @method static Pufferfish PUFFERFISH()
* @method static PumpkinPie PUMPKIN_PIE()
* @method static PumpkinSeeds PUMPKIN_SEEDS()
* @method static Bed PURPLE_BED()
* @method static Dye PURPLE_DYE()
* @method static Item RABBIT_FOOT()
* @method static Item RABBIT_HIDE()
* @method static RabbitStew RABBIT_STEW()
@ -254,13 +228,10 @@ use pocketmine\utils\CloningRegistryTrait;
* @method static Record RECORD_WAIT()
* @method static Record RECORD_WARD()
* @method static Redstone REDSTONE_DUST()
* @method static Bed RED_BED()
* @method static Dye RED_DYE()
* @method static RottenFlesh ROTTEN_FLESH()
* @method static Item SCUTE()
* @method static Shears SHEARS()
* @method static Item SHULKER_SHELL()
* @method static Skull SKELETON_SKULL()
* @method static Item SLIMEBALL()
* @method static Snowball SNOWBALL()
* @method static SpiderEye SPIDER_EYE()
@ -283,9 +254,6 @@ use pocketmine\utils\CloningRegistryTrait;
* @method static LiquidBucket WATER_BUCKET()
* @method static Item WHEAT()
* @method static WheatSeeds WHEAT_SEEDS()
* @method static Bed WHITE_BED()
* @method static Dye WHITE_DYE()
* @method static Skull WITHER_SKELETON_SKULL()
* @method static Axe WOODEN_AXE()
* @method static Hoe WOODEN_HOE()
* @method static Pickaxe WOODEN_PICKAXE()
@ -293,9 +261,6 @@ use pocketmine\utils\CloningRegistryTrait;
* @method static Sword WOODEN_SWORD()
* @method static WritableBook WRITABLE_BOOK()
* @method static WrittenBook WRITTEN_BOOK()
* @method static Bed YELLOW_BED()
* @method static Dye YELLOW_DYE()
* @method static Skull ZOMBIE_HEAD()
* @method static SpawnEgg ZOMBIE_SPAWN_EGG()
*/
final class VanillaItems{
@ -329,18 +294,15 @@ final class VanillaItems{
self::register("baked_potato", $factory->get(Ids::BAKED_POTATO));
self::register("bamboo", $factory->get(Ids::BAMBOO));
self::register("banner", $factory->get(Ids::BANNER));
self::register("bed", $factory->get(Ids::BED));
self::register("beetroot", $factory->get(Ids::BEETROOT));
self::register("beetroot_seeds", $factory->get(Ids::BEETROOT_SEEDS));
self::register("beetroot_soup", $factory->get(Ids::BEETROOT_SOUP));
self::register("birch_boat", $factory->get(Ids::BOAT, 2));
self::register("birch_sign", $factory->get(Ids::BIRCH_SIGN));
self::register("black_bed", $factory->get(Ids::BED, 15));
self::register("black_dye", $factory->get(Ids::DYE, 16));
self::register("blaze_powder", $factory->get(Ids::BLAZE_POWDER));
self::register("blaze_rod", $factory->get(Ids::BLAZE_ROD));
self::register("bleach", $factory->get(Ids::BLEACH));
self::register("blue_bed", $factory->get(Ids::BED, 11));
self::register("blue_dye", $factory->get(Ids::DYE, 18));
self::register("bone", $factory->get(Ids::BONE));
self::register("bone_meal", $factory->get(Ids::DYE, 15));
self::register("book", $factory->get(Ids::BOOK));
@ -348,8 +310,6 @@ final class VanillaItems{
self::register("bowl", $factory->get(Ids::BOWL));
self::register("bread", $factory->get(Ids::BREAD));
self::register("brick", $factory->get(Ids::BRICK));
self::register("brown_bed", $factory->get(Ids::BED, 12));
self::register("brown_dye", $factory->get(Ids::DYE, 17));
self::register("bucket", $factory->get(Ids::BUCKET));
self::register("carrot", $factory->get(Ids::CARROT));
self::register("chainmail_boots", $factory->get(Ids::CHAINMAIL_BOOTS));
@ -410,9 +370,6 @@ final class VanillaItems{
self::register("cooked_salmon", $factory->get(Ids::COOKED_SALMON));
self::register("cookie", $factory->get(Ids::COOKIE));
self::register("coral_fan", $factory->get(Ids::CORAL_FAN));
self::register("creeper_head", $factory->get(Ids::MOB_HEAD, 4));
self::register("cyan_bed", $factory->get(Ids::BED, 9));
self::register("cyan_dye", $factory->get(Ids::DYE, 6));
self::register("dark_oak_boat", $factory->get(Ids::BOAT, 5));
self::register("dark_oak_sign", $factory->get(Ids::DARKOAK_SIGN));
self::register("diamond", $factory->get(Ids::DIAMOND));
@ -426,8 +383,8 @@ final class VanillaItems{
self::register("diamond_shovel", $factory->get(Ids::DIAMOND_SHOVEL));
self::register("diamond_sword", $factory->get(Ids::DIAMOND_SWORD));
self::register("dragon_breath", $factory->get(Ids::DRAGON_BREATH));
self::register("dragon_head", $factory->get(Ids::MOB_HEAD, 5));
self::register("dried_kelp", $factory->get(Ids::DRIED_KELP));
self::register("dye", $factory->get(Ids::DYE, 1));
self::register("egg", $factory->get(Ids::EGG));
self::register("emerald", $factory->get(Ids::EMERALD));
self::register("enchanted_golden_apple", $factory->get(Ids::APPLEENCHANTED));
@ -455,10 +412,6 @@ final class VanillaItems{
self::register("golden_pickaxe", $factory->get(Ids::GOLDEN_PICKAXE));
self::register("golden_shovel", $factory->get(Ids::GOLDEN_SHOVEL));
self::register("golden_sword", $factory->get(Ids::GOLDEN_SWORD));
self::register("gray_bed", $factory->get(Ids::BED, 7));
self::register("gray_dye", $factory->get(Ids::DYE, 8));
self::register("green_bed", $factory->get(Ids::BED, 13));
self::register("green_dye", $factory->get(Ids::DYE, 2));
self::register("gunpowder", $factory->get(Ids::GUNPOWDER));
self::register("heart_of_the_sea", $factory->get(Ids::HEART_OF_THE_SEA));
self::register("ink_sac", $factory->get(Ids::DYE));
@ -482,19 +435,12 @@ final class VanillaItems{
self::register("leather_cap", $factory->get(Ids::LEATHER_CAP));
self::register("leather_pants", $factory->get(Ids::LEATHER_LEGGINGS));
self::register("leather_tunic", $factory->get(Ids::LEATHER_CHESTPLATE));
self::register("light_blue_bed", $factory->get(Ids::BED, 3));
self::register("light_blue_dye", $factory->get(Ids::DYE, 12));
self::register("light_gray_bed", $factory->get(Ids::BED, 8));
self::register("light_gray_dye", $factory->get(Ids::DYE, 7));
self::register("lime_bed", $factory->get(Ids::BED, 5));
self::register("lime_dye", $factory->get(Ids::DYE, 10));
self::register("magenta_bed", $factory->get(Ids::BED, 2));
self::register("magenta_dye", $factory->get(Ids::DYE, 13));
self::register("magma_cream", $factory->get(Ids::MAGMA_CREAM));
self::register("melon", $factory->get(Ids::MELON));
self::register("melon_seeds", $factory->get(Ids::MELON_SEEDS));
self::register("milk_bucket", $factory->get(Ids::BUCKET, 1));
self::register("minecart", $factory->get(Ids::MINECART));
self::register("mob_head", $factory->get(Ids::MOB_HEAD));
self::register("mushroom_stew", $factory->get(Ids::MUSHROOM_STEW));
self::register("nautilus_shell", $factory->get(Ids::NAUTILUS_SHELL));
self::register("nether_brick", $factory->get(Ids::NETHERBRICK));
@ -502,13 +448,8 @@ final class VanillaItems{
self::register("nether_star", $factory->get(Ids::NETHERSTAR));
self::register("oak_boat", $factory->get(Ids::BOAT));
self::register("oak_sign", $factory->get(Ids::SIGN));
self::register("orange_bed", $factory->get(Ids::BED, 1));
self::register("orange_dye", $factory->get(Ids::DYE, 14));
self::register("painting", $factory->get(Ids::PAINTING));
self::register("paper", $factory->get(Ids::PAPER));
self::register("pink_bed", $factory->get(Ids::BED, 6));
self::register("pink_dye", $factory->get(Ids::DYE, 9));
self::register("player_head", $factory->get(Ids::MOB_HEAD, 3));
self::register("poisonous_potato", $factory->get(Ids::POISONOUS_POTATO));
self::register("popped_chorus_fruit", $factory->get(Ids::CHORUS_FRUIT_POPPED));
self::register("potato", $factory->get(Ids::POTATO));
@ -518,8 +459,6 @@ final class VanillaItems{
self::register("pufferfish", $factory->get(Ids::PUFFERFISH));
self::register("pumpkin_pie", $factory->get(Ids::PUMPKIN_PIE));
self::register("pumpkin_seeds", $factory->get(Ids::PUMPKIN_SEEDS));
self::register("purple_bed", $factory->get(Ids::BED, 10));
self::register("purple_dye", $factory->get(Ids::DYE, 5));
self::register("rabbit_foot", $factory->get(Ids::RABBIT_FOOT));
self::register("rabbit_hide", $factory->get(Ids::RABBIT_HIDE));
self::register("rabbit_stew", $factory->get(Ids::RABBIT_STEW));
@ -542,14 +481,11 @@ final class VanillaItems{
self::register("record_strad", $factory->get(Ids::RECORD_STRAD));
self::register("record_wait", $factory->get(Ids::RECORD_WAIT));
self::register("record_ward", $factory->get(Ids::RECORD_WARD));
self::register("red_bed", $factory->get(Ids::BED, 14));
self::register("red_dye", $factory->get(Ids::DYE, 1));
self::register("redstone_dust", $factory->get(Ids::REDSTONE));
self::register("rotten_flesh", $factory->get(Ids::ROTTEN_FLESH));
self::register("scute", $factory->get(Ids::TURTLE_SHELL_PIECE));
self::register("shears", $factory->get(Ids::SHEARS));
self::register("shulker_shell", $factory->get(Ids::SHULKER_SHELL));
self::register("skeleton_skull", $factory->get(Ids::MOB_HEAD));
self::register("slimeball", $factory->get(Ids::SLIMEBALL));
self::register("snowball", $factory->get(Ids::SNOWBALL));
self::register("spider_eye", $factory->get(Ids::SPIDER_EYE));
@ -572,9 +508,6 @@ final class VanillaItems{
self::register("water_bucket", $factory->get(Ids::BUCKET, 8));
self::register("wheat", $factory->get(Ids::WHEAT));
self::register("wheat_seeds", $factory->get(Ids::SEEDS));
self::register("white_bed", $factory->get(Ids::BED));
self::register("white_dye", $factory->get(Ids::DYE, 19));
self::register("wither_skeleton_skull", $factory->get(Ids::MOB_HEAD, 1));
self::register("wooden_axe", $factory->get(Ids::WOODEN_AXE));
self::register("wooden_hoe", $factory->get(Ids::WOODEN_HOE));
self::register("wooden_pickaxe", $factory->get(Ids::WOODEN_PICKAXE));
@ -582,9 +515,6 @@ final class VanillaItems{
self::register("wooden_sword", $factory->get(Ids::WOODEN_SWORD));
self::register("writable_book", $factory->get(Ids::WRITABLE_BOOK));
self::register("written_book", $factory->get(Ids::WRITTEN_BOOK));
self::register("yellow_bed", $factory->get(Ids::BED, 4));
self::register("yellow_dye", $factory->get(Ids::DYE, 11));
self::register("zombie_head", $factory->get(Ids::MOB_HEAD, 2));
self::register("zombie_spawn_egg", $factory->get(Ids::SPAWN_EGG, 32));
}
}