mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-04-21 00:07:30 +00:00
Make more item stuff dynamic
This commit is contained in:
parent
6058032807
commit
56428e8a4e
@ -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
|
||||
|
@ -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));
|
||||
}
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
@ -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(),
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
@ -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;
|
||||
|
@ -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));
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user