mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-04-20 16:00:20 +00:00
Remove ItemFactory::get(), use ItemFactory::fromTypeId() for VanillaItems
soon we'll invert the dependency and set up all this stuff in VanillaItems directly, rendering ItemFactory (mostly) unnecessary.
This commit is contained in:
parent
6be92ea6f7
commit
4e71cc7d79
@ -24,15 +24,11 @@ declare(strict_types=1);
|
||||
namespace pocketmine\item;
|
||||
|
||||
use pocketmine\block\BlockFactory;
|
||||
use pocketmine\block\utils\CoralType;
|
||||
use pocketmine\block\utils\DyeColor;
|
||||
use pocketmine\block\utils\RecordType;
|
||||
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\EntityLegacyIds;
|
||||
use pocketmine\data\SavedDataLoadingException;
|
||||
use pocketmine\entity\Entity;
|
||||
use pocketmine\entity\Location;
|
||||
use pocketmine\entity\Squid;
|
||||
@ -43,13 +39,9 @@ use pocketmine\item\ItemIdentifier as IID;
|
||||
use pocketmine\item\ItemIds as LegacyIds;
|
||||
use pocketmine\item\ItemTypeIds as Ids;
|
||||
use pocketmine\math\Vector3;
|
||||
use pocketmine\nbt\NbtException;
|
||||
use pocketmine\nbt\tag\CompoundTag;
|
||||
use pocketmine\utils\AssumptionFailedError;
|
||||
use pocketmine\utils\SingletonTrait;
|
||||
use pocketmine\world\format\io\GlobalBlockStateHandlers;
|
||||
use pocketmine\world\World;
|
||||
use function min;
|
||||
|
||||
/**
|
||||
* Manages deserializing item types from their legacy ID/metadata.
|
||||
@ -86,11 +78,7 @@ class ItemFactory{
|
||||
$this->register(new Clownfish(new IID(Ids::CLOWNFISH, LegacyIds::CLOWNFISH, 0), "Clownfish"));
|
||||
$this->register(new Coal(new IID(Ids::COAL, LegacyIds::COAL, 0), "Coal"));
|
||||
|
||||
$identifier = new ItemIdentifierFlattened(Ids::CORAL_FAN, LegacyIds::CORAL_FAN, 0, [LegacyIds::CORAL_FAN_DEAD]);
|
||||
foreach(CoralType::getAll() as $coralType){
|
||||
$this->register((new CoralFan($identifier))->setCoralType($coralType)->setDead(false), true);
|
||||
$this->register((new CoralFan($identifier))->setCoralType($coralType)->setDead(true), true);
|
||||
}
|
||||
$this->register(new CoralFan(new ItemIdentifierFlattened(Ids::CORAL_FAN, LegacyIds::CORAL_FAN, 0, [LegacyIds::CORAL_FAN_DEAD])));
|
||||
|
||||
$this->register(new Coal(new IID(Ids::CHARCOAL, LegacyIds::COAL, 1), "Charcoal"));
|
||||
$this->register(new CocoaBeans(new IID(Ids::COCOA_BEANS, LegacyIds::DYE, 3), "Cocoa Beans"));
|
||||
@ -191,31 +179,9 @@ class ItemFactory{
|
||||
$this->register(new Item(new IID(Ids::SCUTE, LegacyIds::TURTLE_SHELL_PIECE, 0), "Scute"));
|
||||
$this->register(new Item(new IID(Ids::WHEAT, LegacyIds::WHEAT, 0), "Wheat"));
|
||||
|
||||
//these blocks have special legacy item IDs, so they need to be registered explicitly
|
||||
$this->register(new ItemBlock(Blocks::ACACIA_DOOR()));
|
||||
$this->register(new ItemBlock(Blocks::BIRCH_DOOR()));
|
||||
$this->register(new ItemBlock(Blocks::BREWING_STAND()));
|
||||
$this->register(new ItemBlock(Blocks::CAKE()));
|
||||
$this->register(new ItemBlock(Blocks::REDSTONE_COMPARATOR()));
|
||||
$this->register(new ItemBlock(Blocks::DARK_OAK_DOOR()));
|
||||
$this->register(new ItemBlock(Blocks::FLOWER_POT()));
|
||||
$this->register(new ItemBlock(Blocks::HOPPER()));
|
||||
$this->register(new ItemBlock(Blocks::IRON_DOOR()));
|
||||
$this->register(new ItemBlock(Blocks::ITEM_FRAME()));
|
||||
$this->register(new ItemBlock(Blocks::JUNGLE_DOOR()));
|
||||
$this->register(new ItemBlock(Blocks::NETHER_WART()));
|
||||
$this->register(new ItemBlock(Blocks::OAK_DOOR()));
|
||||
$this->register(new ItemBlock(Blocks::REDSTONE_REPEATER()));
|
||||
$this->register(new ItemBlock(Blocks::SPRUCE_DOOR()));
|
||||
$this->register(new ItemBlock(Blocks::SUGARCANE()));
|
||||
|
||||
//the meta values for buckets are intentionally hardcoded because block IDs will change in the future
|
||||
$waterBucket = new LiquidBucket(new IID(Ids::WATER_BUCKET, LegacyIds::BUCKET, 8), "Water Bucket", Blocks::WATER());
|
||||
$this->register($waterBucket);
|
||||
$this->remap(LegacyIds::BUCKET, 9, $waterBucket);
|
||||
$lavaBucket = new LiquidBucket(new IID(Ids::LAVA_BUCKET, LegacyIds::BUCKET, 10), "Lava Bucket", Blocks::LAVA());
|
||||
$this->register($lavaBucket);
|
||||
$this->remap(LegacyIds::BUCKET, 11, $lavaBucket);
|
||||
$this->register(new LiquidBucket(new IID(Ids::WATER_BUCKET, LegacyIds::BUCKET, 8), "Water Bucket", Blocks::WATER()));
|
||||
$this->register(new LiquidBucket(new IID(Ids::LAVA_BUCKET, LegacyIds::BUCKET, 10), "Lava Bucket", Blocks::LAVA()));
|
||||
$this->register(new Melon(new IID(Ids::MELON, LegacyIds::MELON, 0), "Melon"));
|
||||
$this->register(new MelonSeeds(new IID(Ids::MELON_SEEDS, LegacyIds::MELON_SEEDS, 0), "Melon Seeds"));
|
||||
$this->register(new MilkBucket(new IID(Ids::MILK_BUCKET, LegacyIds::BUCKET, 1), "Milk Bucket"));
|
||||
@ -267,21 +233,16 @@ class ItemFactory{
|
||||
$this->register(new WritableBook(new IID(Ids::WRITABLE_BOOK, LegacyIds::WRITABLE_BOOK, 0), "Book & Quill"));
|
||||
$this->register(new WrittenBook(new IID(Ids::WRITTEN_BOOK, LegacyIds::WRITTEN_BOOK, 0), "Written Book"));
|
||||
|
||||
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, LegacyIds::DYE, 0), "Dye"))->setColor($color));
|
||||
$this->register((new Banner(
|
||||
new IID(Ids::BANNER, LegacyIds::BANNER, 0),
|
||||
Blocks::BANNER(),
|
||||
Blocks::WALL_BANNER()
|
||||
))->setColor($color));
|
||||
}
|
||||
//TODO: add interface to dye-colour objects
|
||||
$this->register(new Dye(new IID(Ids::DYE, LegacyIds::DYE, 0), "Dye"));
|
||||
$this->register(new Banner(
|
||||
new IID(Ids::BANNER, LegacyIds::BANNER, 0),
|
||||
Blocks::BANNER(),
|
||||
Blocks::WALL_BANNER()
|
||||
));
|
||||
|
||||
foreach(PotionType::getAll() as $type){
|
||||
$this->register((new Potion(new IID(Ids::POTION, LegacyIds::POTION, 0), "Potion"))->setType($type));
|
||||
$this->register((new SplashPotion(new IID(Ids::SPLASH_POTION, LegacyIds::SPLASH_POTION, 0), "Splash Potion"))->setType($type));
|
||||
}
|
||||
$this->register(new Potion(new IID(Ids::POTION, LegacyIds::POTION, 0), "Potion"));
|
||||
$this->register(new SplashPotion(new IID(Ids::SPLASH_POTION, LegacyIds::SPLASH_POTION, 0), "Splash Potion"));
|
||||
|
||||
foreach(TreeType::getAll() as $type){
|
||||
//TODO: tree type should be dynamic in the future, but we're staying static for now for the sake of consistency
|
||||
@ -420,112 +381,51 @@ class ItemFactory{
|
||||
* $override parameter.
|
||||
*/
|
||||
public function register(Item $item, bool $override = false) : void{
|
||||
$id = $item->getId();
|
||||
$variant = $item->getMeta();
|
||||
$id = $item->getTypeId();
|
||||
|
||||
if(!$override && $this->isRegistered($id, $variant)){
|
||||
if(!$override && $this->isRegistered($id)){
|
||||
throw new \RuntimeException("Trying to overwrite an already registered item");
|
||||
}
|
||||
|
||||
$this->list[self::getListOffset($id, $variant)] = clone $item;
|
||||
}
|
||||
|
||||
public function remap(int $legacyId, int $legacyMeta, Item $item, bool $override = false) : void{
|
||||
if(!$override && $this->isRegistered($legacyId, $legacyMeta)){
|
||||
throw new \RuntimeException("Trying to overwrite an already registered item");
|
||||
}
|
||||
|
||||
$this->list[self::getListOffset($legacyId, $legacyMeta)] = clone $item;
|
||||
$this->list[$id] = clone $item;
|
||||
}
|
||||
|
||||
private static function itemToBlockId(int $id) : int{
|
||||
return $id < 0 ? 255 - $id : $id;
|
||||
if($id > 0){
|
||||
throw new \InvalidArgumentException("ID $id is not a block ID");
|
||||
}
|
||||
return -$id;
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated This method should ONLY be used for deserializing data, e.g. from a config or database. For all other
|
||||
* purposes, use VanillaItems.
|
||||
* @see VanillaItems
|
||||
*
|
||||
* Deserializes an item from the provided legacy ID, legacy meta, count and NBT.
|
||||
*
|
||||
* @throws SavedDataLoadingException
|
||||
* @internal
|
||||
*/
|
||||
public function get(int $id, int $meta = 0, int $count = 1, ?CompoundTag $tags = null) : Item{
|
||||
/** @var Item|null $item */
|
||||
$item = null;
|
||||
|
||||
if($id < -0x8000 || $id > 0x7fff){
|
||||
throw new SavedDataLoadingException("Legacy ID must be in the range " . -0x8000 . " ... " . 0x7fff);
|
||||
public function fromTypeId(int $typeId) : Item{
|
||||
if(isset($this->list[$typeId])){
|
||||
return clone $this->list[$typeId];
|
||||
}
|
||||
if($meta < 0 || $meta > 0x7ffe){ //0x7fff would cause problems with recipe wildcards
|
||||
throw new SavedDataLoadingException("Meta cannot be negative or larger than " . 0x7ffe);
|
||||
if($typeId <= 0){
|
||||
return BlockFactory::getInstance()->fromTypeId(self::itemToBlockId($typeId))->asItem();
|
||||
}
|
||||
|
||||
if(isset($this->list[$offset = self::getListOffset($id, $meta)])){
|
||||
$item = clone $this->list[$offset];
|
||||
}elseif(isset($this->list[$zero = self::getListOffset($id, 0)]) && $this->list[$zero] instanceof Durable){
|
||||
$item = clone $this->list[$zero];
|
||||
$item->setDamage(min($meta, $this->list[$zero]->getMaxDurability()));
|
||||
}elseif($id < 256){ //intentionally includes negatives, for extended block IDs
|
||||
//TODO: do not assume that item IDs and block IDs are the same or related
|
||||
$blockStateData = GlobalBlockStateHandlers::getUpgrader()->upgradeIntIdMeta(self::itemToBlockId($id), $meta & 0xf);
|
||||
if($blockStateData !== null){
|
||||
try{
|
||||
$blockStateId = GlobalBlockStateHandlers::getDeserializer()->deserialize($blockStateData);
|
||||
$item = new ItemBlock(BlockFactory::getInstance()->fromStateId($blockStateId));
|
||||
}catch(BlockStateDeserializeException $e){
|
||||
throw new SavedDataLoadingException("Failed to deserialize itemblock: " . $e->getMessage(), 0, $e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if($item === null){
|
||||
throw new SavedDataLoadingException("No registered item is associated with this ID and meta");
|
||||
}
|
||||
|
||||
$item->setCount($count);
|
||||
if($tags !== null){
|
||||
try{
|
||||
$item->setNamedTag($tags);
|
||||
}catch(NbtException $e){
|
||||
throw new SavedDataLoadingException("Invalid item NBT: " . $e->getMessage(), 0, $e);
|
||||
}
|
||||
}
|
||||
return $item;
|
||||
throw new \InvalidArgumentException("No item with type ID $typeId is registered");
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns whether the specified item ID is already registered in the item factory.
|
||||
*/
|
||||
public function isRegistered(int $id, int $variant = 0) : bool{
|
||||
if($id < 256){
|
||||
$blockStateData = GlobalBlockStateHandlers::getUpgrader()->upgradeIntIdMeta(self::itemToBlockId($id), $variant & 0xf);
|
||||
if($blockStateData === null){
|
||||
return false;
|
||||
}
|
||||
try{
|
||||
GlobalBlockStateHandlers::getDeserializer()->deserialize($blockStateData);
|
||||
return true;
|
||||
}catch(BlockStateDeserializeException){
|
||||
return false;
|
||||
}
|
||||
public function isRegistered(int $id) : bool{
|
||||
if($id <= 0){
|
||||
return BlockFactory::getInstance()->isRegistered(self::itemToBlockId($id));
|
||||
}
|
||||
|
||||
return isset($this->list[self::getListOffset($id, $variant)]);
|
||||
}
|
||||
|
||||
private static function getListOffset(int $id, int $variant) : int{
|
||||
if($id < -0x8000 || $id > 0x7fff){
|
||||
throw new \InvalidArgumentException("ID must be in range " . -0x8000 . " - " . 0x7fff);
|
||||
}
|
||||
return (($id & 0xffff) << 16) | ($variant & 0xffff);
|
||||
return isset($this->list[$id]);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return Item[]
|
||||
*/
|
||||
public function getAllRegistered() : array{
|
||||
public function getAllKnownTypes() : array{
|
||||
return $this->list;
|
||||
}
|
||||
}
|
||||
|
@ -23,7 +23,8 @@ declare(strict_types=1);
|
||||
|
||||
namespace pocketmine\item;
|
||||
|
||||
use pocketmine\item\ItemIds as Ids;
|
||||
use pocketmine\block\VanillaBlocks;
|
||||
use pocketmine\item\ItemTypeIds as Ids;
|
||||
use pocketmine\utils\CloningRegistryTrait;
|
||||
|
||||
/**
|
||||
@ -284,233 +285,234 @@ final class VanillaItems{
|
||||
|
||||
protected static function setup() : void{
|
||||
$factory = ItemFactory::getInstance();
|
||||
self::register("acacia_boat", $factory->get(Ids::BOAT, 4));
|
||||
self::register("acacia_sign", $factory->get(Ids::ACACIA_SIGN));
|
||||
self::register("air", $factory->get(Ids::AIR, 0, 0));
|
||||
self::register("apple", $factory->get(Ids::APPLE));
|
||||
self::register("arrow", $factory->get(Ids::ARROW));
|
||||
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("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("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("bone", $factory->get(Ids::BONE));
|
||||
self::register("bone_meal", $factory->get(Ids::DYE, 15));
|
||||
self::register("book", $factory->get(Ids::BOOK));
|
||||
self::register("bow", $factory->get(Ids::BOW));
|
||||
self::register("bowl", $factory->get(Ids::BOWL));
|
||||
self::register("bread", $factory->get(Ids::BREAD));
|
||||
self::register("brick", $factory->get(Ids::BRICK));
|
||||
self::register("bucket", $factory->get(Ids::BUCKET));
|
||||
self::register("carrot", $factory->get(Ids::CARROT));
|
||||
self::register("chainmail_boots", $factory->get(Ids::CHAINMAIL_BOOTS));
|
||||
self::register("chainmail_chestplate", $factory->get(Ids::CHAINMAIL_CHESTPLATE));
|
||||
self::register("chainmail_helmet", $factory->get(Ids::CHAINMAIL_HELMET));
|
||||
self::register("chainmail_leggings", $factory->get(Ids::CHAINMAIL_LEGGINGS));
|
||||
self::register("charcoal", $factory->get(Ids::COAL, 1));
|
||||
self::register("chemical_aluminium_oxide", $factory->get(Ids::COMPOUND, 13));
|
||||
self::register("chemical_ammonia", $factory->get(Ids::COMPOUND, 36));
|
||||
self::register("chemical_barium_sulphate", $factory->get(Ids::COMPOUND, 20));
|
||||
self::register("chemical_benzene", $factory->get(Ids::COMPOUND, 33));
|
||||
self::register("chemical_boron_trioxide", $factory->get(Ids::COMPOUND, 14));
|
||||
self::register("chemical_calcium_bromide", $factory->get(Ids::COMPOUND, 7));
|
||||
self::register("chemical_calcium_chloride", $factory->get(Ids::COMPOUND, 25));
|
||||
self::register("chemical_cerium_chloride", $factory->get(Ids::COMPOUND, 23));
|
||||
self::register("chemical_charcoal", $factory->get(Ids::COMPOUND, 11));
|
||||
self::register("chemical_crude_oil", $factory->get(Ids::COMPOUND, 29));
|
||||
self::register("chemical_glue", $factory->get(Ids::COMPOUND, 27));
|
||||
self::register("chemical_hydrogen_peroxide", $factory->get(Ids::COMPOUND, 35));
|
||||
self::register("chemical_hypochlorite", $factory->get(Ids::COMPOUND, 28));
|
||||
self::register("chemical_ink", $factory->get(Ids::COMPOUND, 34));
|
||||
self::register("chemical_iron_sulphide", $factory->get(Ids::COMPOUND, 4));
|
||||
self::register("chemical_latex", $factory->get(Ids::COMPOUND, 30));
|
||||
self::register("chemical_lithium_hydride", $factory->get(Ids::COMPOUND, 5));
|
||||
self::register("chemical_luminol", $factory->get(Ids::COMPOUND, 10));
|
||||
self::register("chemical_magnesium_nitrate", $factory->get(Ids::COMPOUND, 3));
|
||||
self::register("chemical_magnesium_oxide", $factory->get(Ids::COMPOUND, 8));
|
||||
self::register("chemical_magnesium_salts", $factory->get(Ids::COMPOUND, 18));
|
||||
self::register("chemical_mercuric_chloride", $factory->get(Ids::COMPOUND, 22));
|
||||
self::register("chemical_polyethylene", $factory->get(Ids::COMPOUND, 16));
|
||||
self::register("chemical_potassium_chloride", $factory->get(Ids::COMPOUND, 21));
|
||||
self::register("chemical_potassium_iodide", $factory->get(Ids::COMPOUND, 31));
|
||||
self::register("chemical_rubbish", $factory->get(Ids::COMPOUND, 17));
|
||||
self::register("chemical_salt", $factory->get(Ids::COMPOUND));
|
||||
self::register("chemical_soap", $factory->get(Ids::COMPOUND, 15));
|
||||
self::register("chemical_sodium_acetate", $factory->get(Ids::COMPOUND, 9));
|
||||
self::register("chemical_sodium_fluoride", $factory->get(Ids::COMPOUND, 32));
|
||||
self::register("chemical_sodium_hydride", $factory->get(Ids::COMPOUND, 6));
|
||||
self::register("chemical_sodium_hydroxide", $factory->get(Ids::COMPOUND, 2));
|
||||
self::register("chemical_sodium_hypochlorite", $factory->get(Ids::COMPOUND, 37));
|
||||
self::register("chemical_sodium_oxide", $factory->get(Ids::COMPOUND, 1));
|
||||
self::register("chemical_sugar", $factory->get(Ids::COMPOUND, 12));
|
||||
self::register("chemical_sulphate", $factory->get(Ids::COMPOUND, 19));
|
||||
self::register("chemical_tungsten_chloride", $factory->get(Ids::COMPOUND, 24));
|
||||
self::register("chemical_water", $factory->get(Ids::COMPOUND, 26));
|
||||
self::register("chorus_fruit", $factory->get(Ids::CHORUS_FRUIT));
|
||||
self::register("clay", $factory->get(Ids::CLAY));
|
||||
self::register("clock", $factory->get(Ids::CLOCK));
|
||||
self::register("clownfish", $factory->get(Ids::CLOWNFISH));
|
||||
self::register("coal", $factory->get(Ids::COAL));
|
||||
self::register("cocoa_beans", $factory->get(Ids::DYE, 3));
|
||||
self::register("compass", $factory->get(Ids::COMPASS));
|
||||
self::register("cooked_chicken", $factory->get(Ids::COOKED_CHICKEN));
|
||||
self::register("cooked_fish", $factory->get(Ids::COOKED_FISH));
|
||||
self::register("cooked_mutton", $factory->get(Ids::COOKED_MUTTON));
|
||||
self::register("cooked_porkchop", $factory->get(Ids::COOKED_PORKCHOP));
|
||||
self::register("cooked_rabbit", $factory->get(Ids::COOKED_RABBIT));
|
||||
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("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));
|
||||
self::register("diamond_axe", $factory->get(Ids::DIAMOND_AXE));
|
||||
self::register("diamond_boots", $factory->get(Ids::DIAMOND_BOOTS));
|
||||
self::register("diamond_chestplate", $factory->get(Ids::DIAMOND_CHESTPLATE));
|
||||
self::register("diamond_helmet", $factory->get(Ids::DIAMOND_HELMET));
|
||||
self::register("diamond_hoe", $factory->get(Ids::DIAMOND_HOE));
|
||||
self::register("diamond_leggings", $factory->get(Ids::DIAMOND_LEGGINGS));
|
||||
self::register("diamond_pickaxe", $factory->get(Ids::DIAMOND_PICKAXE));
|
||||
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("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));
|
||||
self::register("ender_pearl", $factory->get(Ids::ENDER_PEARL));
|
||||
self::register("experience_bottle", $factory->get(Ids::BOTTLE_O_ENCHANTING));
|
||||
self::register("feather", $factory->get(Ids::FEATHER));
|
||||
self::register("fermented_spider_eye", $factory->get(Ids::FERMENTED_SPIDER_EYE));
|
||||
self::register("fishing_rod", $factory->get(Ids::FISHING_ROD));
|
||||
self::register("flint", $factory->get(Ids::FLINT));
|
||||
self::register("flint_and_steel", $factory->get(Ids::FLINT_AND_STEEL));
|
||||
self::register("ghast_tear", $factory->get(Ids::GHAST_TEAR));
|
||||
self::register("glass_bottle", $factory->get(Ids::GLASS_BOTTLE));
|
||||
self::register("glistering_melon", $factory->get(Ids::GLISTERING_MELON));
|
||||
self::register("glowstone_dust", $factory->get(Ids::GLOWSTONE_DUST));
|
||||
self::register("gold_ingot", $factory->get(Ids::GOLD_INGOT));
|
||||
self::register("gold_nugget", $factory->get(Ids::GOLDEN_NUGGET));
|
||||
self::register("golden_apple", $factory->get(Ids::GOLDEN_APPLE));
|
||||
self::register("golden_axe", $factory->get(Ids::GOLDEN_AXE));
|
||||
self::register("golden_boots", $factory->get(Ids::GOLDEN_BOOTS));
|
||||
self::register("golden_carrot", $factory->get(Ids::GOLDEN_CARROT));
|
||||
self::register("golden_chestplate", $factory->get(Ids::GOLDEN_CHESTPLATE));
|
||||
self::register("golden_helmet", $factory->get(Ids::GOLDEN_HELMET));
|
||||
self::register("golden_hoe", $factory->get(Ids::GOLDEN_HOE));
|
||||
self::register("golden_leggings", $factory->get(Ids::GOLDEN_LEGGINGS));
|
||||
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("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));
|
||||
self::register("iron_axe", $factory->get(Ids::IRON_AXE));
|
||||
self::register("iron_boots", $factory->get(Ids::IRON_BOOTS));
|
||||
self::register("iron_chestplate", $factory->get(Ids::IRON_CHESTPLATE));
|
||||
self::register("iron_helmet", $factory->get(Ids::IRON_HELMET));
|
||||
self::register("iron_hoe", $factory->get(Ids::IRON_HOE));
|
||||
self::register("iron_ingot", $factory->get(Ids::IRON_INGOT));
|
||||
self::register("iron_leggings", $factory->get(Ids::IRON_LEGGINGS));
|
||||
self::register("iron_nugget", $factory->get(Ids::IRON_NUGGET));
|
||||
self::register("iron_pickaxe", $factory->get(Ids::IRON_PICKAXE));
|
||||
self::register("iron_shovel", $factory->get(Ids::IRON_SHOVEL));
|
||||
self::register("iron_sword", $factory->get(Ids::IRON_SWORD));
|
||||
self::register("jungle_boat", $factory->get(Ids::BOAT, 3));
|
||||
self::register("jungle_sign", $factory->get(Ids::JUNGLE_SIGN));
|
||||
self::register("lapis_lazuli", $factory->get(Ids::DYE, 4));
|
||||
self::register("lava_bucket", $factory->get(Ids::BUCKET, 10));
|
||||
self::register("leather", $factory->get(Ids::LEATHER));
|
||||
self::register("leather_boots", $factory->get(Ids::LEATHER_BOOTS));
|
||||
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("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("mushroom_stew", $factory->get(Ids::MUSHROOM_STEW));
|
||||
self::register("nautilus_shell", $factory->get(Ids::NAUTILUS_SHELL));
|
||||
self::register("nether_brick", $factory->get(Ids::NETHERBRICK));
|
||||
self::register("nether_quartz", $factory->get(Ids::NETHER_QUARTZ));
|
||||
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("painting", $factory->get(Ids::PAINTING));
|
||||
self::register("paper", $factory->get(Ids::PAPER));
|
||||
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));
|
||||
self::register("potion", $factory->get(Ids::POTION));
|
||||
self::register("prismarine_crystals", $factory->get(Ids::PRISMARINE_CRYSTALS));
|
||||
self::register("prismarine_shard", $factory->get(Ids::PRISMARINE_SHARD));
|
||||
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("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));
|
||||
self::register("raw_beef", $factory->get(Ids::BEEF));
|
||||
self::register("raw_chicken", $factory->get(Ids::CHICKEN));
|
||||
self::register("raw_fish", $factory->get(Ids::FISH));
|
||||
self::register("raw_mutton", $factory->get(Ids::MUTTON));
|
||||
self::register("raw_porkchop", $factory->get(Ids::PORKCHOP));
|
||||
self::register("raw_rabbit", $factory->get(Ids::RABBIT));
|
||||
self::register("raw_salmon", $factory->get(Ids::RAW_SALMON));
|
||||
self::register("record_11", $factory->get(Ids::RECORD_11));
|
||||
self::register("record_13", $factory->get(Ids::RECORD_13));
|
||||
self::register("record_blocks", $factory->get(Ids::RECORD_BLOCKS));
|
||||
self::register("record_cat", $factory->get(Ids::RECORD_CAT));
|
||||
self::register("record_chirp", $factory->get(Ids::RECORD_CHIRP));
|
||||
self::register("record_far", $factory->get(Ids::RECORD_FAR));
|
||||
self::register("record_mall", $factory->get(Ids::RECORD_MALL));
|
||||
self::register("record_mellohi", $factory->get(Ids::RECORD_MELLOHI));
|
||||
self::register("record_stal", $factory->get(Ids::RECORD_STAL));
|
||||
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("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("slimeball", $factory->get(Ids::SLIMEBALL));
|
||||
self::register("snowball", $factory->get(Ids::SNOWBALL));
|
||||
self::register("spider_eye", $factory->get(Ids::SPIDER_EYE));
|
||||
self::register("splash_potion", $factory->get(Ids::SPLASH_POTION));
|
||||
self::register("spruce_boat", $factory->get(Ids::BOAT, 1));
|
||||
self::register("spruce_sign", $factory->get(Ids::SPRUCE_SIGN));
|
||||
self::register("squid_spawn_egg", $factory->get(Ids::SPAWN_EGG, 17));
|
||||
self::register("steak", $factory->get(Ids::COOKED_BEEF));
|
||||
self::register("stick", $factory->get(Ids::STICK));
|
||||
self::register("stone_axe", $factory->get(Ids::STONE_AXE));
|
||||
self::register("stone_hoe", $factory->get(Ids::STONE_HOE));
|
||||
self::register("stone_pickaxe", $factory->get(Ids::STONE_PICKAXE));
|
||||
self::register("stone_shovel", $factory->get(Ids::STONE_SHOVEL));
|
||||
self::register("stone_sword", $factory->get(Ids::STONE_SWORD));
|
||||
self::register("string", $factory->get(Ids::STRING));
|
||||
self::register("sugar", $factory->get(Ids::SUGAR));
|
||||
self::register("sweet_berries", $factory->get(Ids::SWEET_BERRIES));
|
||||
self::register("totem", $factory->get(Ids::TOTEM));
|
||||
self::register("villager_spawn_egg", $factory->get(Ids::SPAWN_EGG, 15));
|
||||
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("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));
|
||||
self::register("wooden_shovel", $factory->get(Ids::WOODEN_SHOVEL));
|
||||
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("zombie_spawn_egg", $factory->get(Ids::SPAWN_EGG, 32));
|
||||
self::register("air", VanillaBlocks::AIR()->asItem()->setCount(0));
|
||||
|
||||
self::register("acacia_boat", $factory->fromTypeId(Ids::ACACIA_BOAT));
|
||||
self::register("acacia_sign", $factory->fromTypeId(Ids::ACACIA_SIGN));
|
||||
self::register("apple", $factory->fromTypeId(Ids::APPLE));
|
||||
self::register("arrow", $factory->fromTypeId(Ids::ARROW));
|
||||
self::register("baked_potato", $factory->fromTypeId(Ids::BAKED_POTATO));
|
||||
self::register("bamboo", $factory->fromTypeId(Ids::BAMBOO));
|
||||
self::register("banner", $factory->fromTypeId(Ids::BANNER));
|
||||
self::register("beetroot", $factory->fromTypeId(Ids::BEETROOT));
|
||||
self::register("beetroot_seeds", $factory->fromTypeId(Ids::BEETROOT_SEEDS));
|
||||
self::register("beetroot_soup", $factory->fromTypeId(Ids::BEETROOT_SOUP));
|
||||
self::register("birch_boat", $factory->fromTypeId(Ids::BIRCH_BOAT));
|
||||
self::register("birch_sign", $factory->fromTypeId(Ids::BIRCH_SIGN));
|
||||
self::register("blaze_powder", $factory->fromTypeId(Ids::BLAZE_POWDER));
|
||||
self::register("blaze_rod", $factory->fromTypeId(Ids::BLAZE_ROD));
|
||||
self::register("bleach", $factory->fromTypeId(Ids::BLEACH));
|
||||
self::register("bone", $factory->fromTypeId(Ids::BONE));
|
||||
self::register("bone_meal", $factory->fromTypeId(Ids::BONE_MEAL));
|
||||
self::register("book", $factory->fromTypeId(Ids::BOOK));
|
||||
self::register("bow", $factory->fromTypeId(Ids::BOW));
|
||||
self::register("bowl", $factory->fromTypeId(Ids::BOWL));
|
||||
self::register("bread", $factory->fromTypeId(Ids::BREAD));
|
||||
self::register("brick", $factory->fromTypeId(Ids::BRICK));
|
||||
self::register("bucket", $factory->fromTypeId(Ids::BUCKET));
|
||||
self::register("carrot", $factory->fromTypeId(Ids::CARROT));
|
||||
self::register("chainmail_boots", $factory->fromTypeId(Ids::CHAINMAIL_BOOTS));
|
||||
self::register("chainmail_chestplate", $factory->fromTypeId(Ids::CHAINMAIL_CHESTPLATE));
|
||||
self::register("chainmail_helmet", $factory->fromTypeId(Ids::CHAINMAIL_HELMET));
|
||||
self::register("chainmail_leggings", $factory->fromTypeId(Ids::CHAINMAIL_LEGGINGS));
|
||||
self::register("charcoal", $factory->fromTypeId(Ids::CHARCOAL));
|
||||
self::register("chemical_aluminium_oxide", $factory->fromTypeId(Ids::CHEMICAL_ALUMINIUM_OXIDE));
|
||||
self::register("chemical_ammonia", $factory->fromTypeId(Ids::CHEMICAL_AMMONIA));
|
||||
self::register("chemical_barium_sulphate", $factory->fromTypeId(Ids::CHEMICAL_BARIUM_SULPHATE));
|
||||
self::register("chemical_benzene", $factory->fromTypeId(Ids::CHEMICAL_BENZENE));
|
||||
self::register("chemical_boron_trioxide", $factory->fromTypeId(Ids::CHEMICAL_BORON_TRIOXIDE));
|
||||
self::register("chemical_calcium_bromide", $factory->fromTypeId(Ids::CHEMICAL_CALCIUM_BROMIDE));
|
||||
self::register("chemical_calcium_chloride", $factory->fromTypeId(Ids::CHEMICAL_CALCIUM_CHLORIDE));
|
||||
self::register("chemical_cerium_chloride", $factory->fromTypeId(Ids::CHEMICAL_CERIUM_CHLORIDE));
|
||||
self::register("chemical_charcoal", $factory->fromTypeId(Ids::CHEMICAL_CHARCOAL));
|
||||
self::register("chemical_crude_oil", $factory->fromTypeId(Ids::CHEMICAL_CRUDE_OIL));
|
||||
self::register("chemical_glue", $factory->fromTypeId(Ids::CHEMICAL_GLUE));
|
||||
self::register("chemical_hydrogen_peroxide", $factory->fromTypeId(Ids::CHEMICAL_HYDROGEN_PEROXIDE));
|
||||
self::register("chemical_hypochlorite", $factory->fromTypeId(Ids::CHEMICAL_HYPOCHLORITE));
|
||||
self::register("chemical_ink", $factory->fromTypeId(Ids::CHEMICAL_INK));
|
||||
self::register("chemical_iron_sulphide", $factory->fromTypeId(Ids::CHEMICAL_IRON_SULPHIDE));
|
||||
self::register("chemical_latex", $factory->fromTypeId(Ids::CHEMICAL_LATEX));
|
||||
self::register("chemical_lithium_hydride", $factory->fromTypeId(Ids::CHEMICAL_LITHIUM_HYDRIDE));
|
||||
self::register("chemical_luminol", $factory->fromTypeId(Ids::CHEMICAL_LUMINOL));
|
||||
self::register("chemical_magnesium_nitrate", $factory->fromTypeId(Ids::CHEMICAL_MAGNESIUM_NITRATE));
|
||||
self::register("chemical_magnesium_oxide", $factory->fromTypeId(Ids::CHEMICAL_MAGNESIUM_OXIDE));
|
||||
self::register("chemical_magnesium_salts", $factory->fromTypeId(Ids::CHEMICAL_MAGNESIUM_SALTS));
|
||||
self::register("chemical_mercuric_chloride", $factory->fromTypeId(Ids::CHEMICAL_MERCURIC_CHLORIDE));
|
||||
self::register("chemical_polyethylene", $factory->fromTypeId(Ids::CHEMICAL_POLYETHYLENE));
|
||||
self::register("chemical_potassium_chloride", $factory->fromTypeId(Ids::CHEMICAL_POTASSIUM_CHLORIDE));
|
||||
self::register("chemical_potassium_iodide", $factory->fromTypeId(Ids::CHEMICAL_POTASSIUM_IODIDE));
|
||||
self::register("chemical_rubbish", $factory->fromTypeId(Ids::CHEMICAL_RUBBISH));
|
||||
self::register("chemical_salt", $factory->fromTypeId(Ids::CHEMICAL_SALT));
|
||||
self::register("chemical_soap", $factory->fromTypeId(Ids::CHEMICAL_SOAP));
|
||||
self::register("chemical_sodium_acetate", $factory->fromTypeId(Ids::CHEMICAL_SODIUM_ACETATE));
|
||||
self::register("chemical_sodium_fluoride", $factory->fromTypeId(Ids::CHEMICAL_SODIUM_FLUORIDE));
|
||||
self::register("chemical_sodium_hydride", $factory->fromTypeId(Ids::CHEMICAL_SODIUM_HYDRIDE));
|
||||
self::register("chemical_sodium_hydroxide", $factory->fromTypeId(Ids::CHEMICAL_SODIUM_HYDROXIDE));
|
||||
self::register("chemical_sodium_hypochlorite", $factory->fromTypeId(Ids::CHEMICAL_SODIUM_HYPOCHLORITE));
|
||||
self::register("chemical_sodium_oxide", $factory->fromTypeId(Ids::CHEMICAL_SODIUM_OXIDE));
|
||||
self::register("chemical_sugar", $factory->fromTypeId(Ids::CHEMICAL_SUGAR));
|
||||
self::register("chemical_sulphate", $factory->fromTypeId(Ids::CHEMICAL_SULPHATE));
|
||||
self::register("chemical_tungsten_chloride", $factory->fromTypeId(Ids::CHEMICAL_TUNGSTEN_CHLORIDE));
|
||||
self::register("chemical_water", $factory->fromTypeId(Ids::CHEMICAL_WATER));
|
||||
self::register("chorus_fruit", $factory->fromTypeId(Ids::CHORUS_FRUIT));
|
||||
self::register("clay", $factory->fromTypeId(Ids::CLAY));
|
||||
self::register("clock", $factory->fromTypeId(Ids::CLOCK));
|
||||
self::register("clownfish", $factory->fromTypeId(Ids::CLOWNFISH));
|
||||
self::register("coal", $factory->fromTypeId(Ids::COAL));
|
||||
self::register("cocoa_beans", $factory->fromTypeId(Ids::COCOA_BEANS));
|
||||
self::register("compass", $factory->fromTypeId(Ids::COMPASS));
|
||||
self::register("cooked_chicken", $factory->fromTypeId(Ids::COOKED_CHICKEN));
|
||||
self::register("cooked_fish", $factory->fromTypeId(Ids::COOKED_FISH));
|
||||
self::register("cooked_mutton", $factory->fromTypeId(Ids::COOKED_MUTTON));
|
||||
self::register("cooked_porkchop", $factory->fromTypeId(Ids::COOKED_PORKCHOP));
|
||||
self::register("cooked_rabbit", $factory->fromTypeId(Ids::COOKED_RABBIT));
|
||||
self::register("cooked_salmon", $factory->fromTypeId(Ids::COOKED_SALMON));
|
||||
self::register("cookie", $factory->fromTypeId(Ids::COOKIE));
|
||||
self::register("coral_fan", $factory->fromTypeId(Ids::CORAL_FAN));
|
||||
self::register("dark_oak_boat", $factory->fromTypeId(Ids::DARK_OAK_BOAT));
|
||||
self::register("dark_oak_sign", $factory->fromTypeId(Ids::DARK_OAK_SIGN));
|
||||
self::register("diamond", $factory->fromTypeId(Ids::DIAMOND));
|
||||
self::register("diamond_axe", $factory->fromTypeId(Ids::DIAMOND_AXE));
|
||||
self::register("diamond_boots", $factory->fromTypeId(Ids::DIAMOND_BOOTS));
|
||||
self::register("diamond_chestplate", $factory->fromTypeId(Ids::DIAMOND_CHESTPLATE));
|
||||
self::register("diamond_helmet", $factory->fromTypeId(Ids::DIAMOND_HELMET));
|
||||
self::register("diamond_hoe", $factory->fromTypeId(Ids::DIAMOND_HOE));
|
||||
self::register("diamond_leggings", $factory->fromTypeId(Ids::DIAMOND_LEGGINGS));
|
||||
self::register("diamond_pickaxe", $factory->fromTypeId(Ids::DIAMOND_PICKAXE));
|
||||
self::register("diamond_shovel", $factory->fromTypeId(Ids::DIAMOND_SHOVEL));
|
||||
self::register("diamond_sword", $factory->fromTypeId(Ids::DIAMOND_SWORD));
|
||||
self::register("dragon_breath", $factory->fromTypeId(Ids::DRAGON_BREATH));
|
||||
self::register("dried_kelp", $factory->fromTypeId(Ids::DRIED_KELP));
|
||||
self::register("dye", $factory->fromTypeId(Ids::DYE));
|
||||
self::register("egg", $factory->fromTypeId(Ids::EGG));
|
||||
self::register("emerald", $factory->fromTypeId(Ids::EMERALD));
|
||||
self::register("enchanted_golden_apple", $factory->fromTypeId(Ids::ENCHANTED_GOLDEN_APPLE));
|
||||
self::register("ender_pearl", $factory->fromTypeId(Ids::ENDER_PEARL));
|
||||
self::register("experience_bottle", $factory->fromTypeId(Ids::EXPERIENCE_BOTTLE));
|
||||
self::register("feather", $factory->fromTypeId(Ids::FEATHER));
|
||||
self::register("fermented_spider_eye", $factory->fromTypeId(Ids::FERMENTED_SPIDER_EYE));
|
||||
self::register("fishing_rod", $factory->fromTypeId(Ids::FISHING_ROD));
|
||||
self::register("flint", $factory->fromTypeId(Ids::FLINT));
|
||||
self::register("flint_and_steel", $factory->fromTypeId(Ids::FLINT_AND_STEEL));
|
||||
self::register("ghast_tear", $factory->fromTypeId(Ids::GHAST_TEAR));
|
||||
self::register("glass_bottle", $factory->fromTypeId(Ids::GLASS_BOTTLE));
|
||||
self::register("glistering_melon", $factory->fromTypeId(Ids::GLISTERING_MELON));
|
||||
self::register("glowstone_dust", $factory->fromTypeId(Ids::GLOWSTONE_DUST));
|
||||
self::register("gold_ingot", $factory->fromTypeId(Ids::GOLD_INGOT));
|
||||
self::register("gold_nugget", $factory->fromTypeId(Ids::GOLD_NUGGET));
|
||||
self::register("golden_apple", $factory->fromTypeId(Ids::GOLDEN_APPLE));
|
||||
self::register("golden_axe", $factory->fromTypeId(Ids::GOLDEN_AXE));
|
||||
self::register("golden_boots", $factory->fromTypeId(Ids::GOLDEN_BOOTS));
|
||||
self::register("golden_carrot", $factory->fromTypeId(Ids::GOLDEN_CARROT));
|
||||
self::register("golden_chestplate", $factory->fromTypeId(Ids::GOLDEN_CHESTPLATE));
|
||||
self::register("golden_helmet", $factory->fromTypeId(Ids::GOLDEN_HELMET));
|
||||
self::register("golden_hoe", $factory->fromTypeId(Ids::GOLDEN_HOE));
|
||||
self::register("golden_leggings", $factory->fromTypeId(Ids::GOLDEN_LEGGINGS));
|
||||
self::register("golden_pickaxe", $factory->fromTypeId(Ids::GOLDEN_PICKAXE));
|
||||
self::register("golden_shovel", $factory->fromTypeId(Ids::GOLDEN_SHOVEL));
|
||||
self::register("golden_sword", $factory->fromTypeId(Ids::GOLDEN_SWORD));
|
||||
self::register("gunpowder", $factory->fromTypeId(Ids::GUNPOWDER));
|
||||
self::register("heart_of_the_sea", $factory->fromTypeId(Ids::HEART_OF_THE_SEA));
|
||||
self::register("ink_sac", $factory->fromTypeId(Ids::INK_SAC));
|
||||
self::register("iron_axe", $factory->fromTypeId(Ids::IRON_AXE));
|
||||
self::register("iron_boots", $factory->fromTypeId(Ids::IRON_BOOTS));
|
||||
self::register("iron_chestplate", $factory->fromTypeId(Ids::IRON_CHESTPLATE));
|
||||
self::register("iron_helmet", $factory->fromTypeId(Ids::IRON_HELMET));
|
||||
self::register("iron_hoe", $factory->fromTypeId(Ids::IRON_HOE));
|
||||
self::register("iron_ingot", $factory->fromTypeId(Ids::IRON_INGOT));
|
||||
self::register("iron_leggings", $factory->fromTypeId(Ids::IRON_LEGGINGS));
|
||||
self::register("iron_nugget", $factory->fromTypeId(Ids::IRON_NUGGET));
|
||||
self::register("iron_pickaxe", $factory->fromTypeId(Ids::IRON_PICKAXE));
|
||||
self::register("iron_shovel", $factory->fromTypeId(Ids::IRON_SHOVEL));
|
||||
self::register("iron_sword", $factory->fromTypeId(Ids::IRON_SWORD));
|
||||
self::register("jungle_boat", $factory->fromTypeId(Ids::JUNGLE_BOAT));
|
||||
self::register("jungle_sign", $factory->fromTypeId(Ids::JUNGLE_SIGN));
|
||||
self::register("lapis_lazuli", $factory->fromTypeId(Ids::LAPIS_LAZULI));
|
||||
self::register("lava_bucket", $factory->fromTypeId(Ids::LAVA_BUCKET));
|
||||
self::register("leather", $factory->fromTypeId(Ids::LEATHER));
|
||||
self::register("leather_boots", $factory->fromTypeId(Ids::LEATHER_BOOTS));
|
||||
self::register("leather_cap", $factory->fromTypeId(Ids::LEATHER_CAP));
|
||||
self::register("leather_pants", $factory->fromTypeId(Ids::LEATHER_PANTS));
|
||||
self::register("leather_tunic", $factory->fromTypeId(Ids::LEATHER_TUNIC));
|
||||
self::register("magma_cream", $factory->fromTypeId(Ids::MAGMA_CREAM));
|
||||
self::register("melon", $factory->fromTypeId(Ids::MELON));
|
||||
self::register("melon_seeds", $factory->fromTypeId(Ids::MELON_SEEDS));
|
||||
self::register("milk_bucket", $factory->fromTypeId(Ids::MILK_BUCKET));
|
||||
self::register("minecart", $factory->fromTypeId(Ids::MINECART));
|
||||
self::register("mushroom_stew", $factory->fromTypeId(Ids::MUSHROOM_STEW));
|
||||
self::register("nautilus_shell", $factory->fromTypeId(Ids::NAUTILUS_SHELL));
|
||||
self::register("nether_brick", $factory->fromTypeId(Ids::NETHER_BRICK));
|
||||
self::register("nether_quartz", $factory->fromTypeId(Ids::NETHER_QUARTZ));
|
||||
self::register("nether_star", $factory->fromTypeId(Ids::NETHER_STAR));
|
||||
self::register("oak_boat", $factory->fromTypeId(Ids::OAK_BOAT));
|
||||
self::register("oak_sign", $factory->fromTypeId(Ids::OAK_SIGN));
|
||||
self::register("painting", $factory->fromTypeId(Ids::PAINTING));
|
||||
self::register("paper", $factory->fromTypeId(Ids::PAPER));
|
||||
self::register("poisonous_potato", $factory->fromTypeId(Ids::POISONOUS_POTATO));
|
||||
self::register("popped_chorus_fruit", $factory->fromTypeId(Ids::POPPED_CHORUS_FRUIT));
|
||||
self::register("potato", $factory->fromTypeId(Ids::POTATO));
|
||||
self::register("potion", $factory->fromTypeId(Ids::POTION));
|
||||
self::register("prismarine_crystals", $factory->fromTypeId(Ids::PRISMARINE_CRYSTALS));
|
||||
self::register("prismarine_shard", $factory->fromTypeId(Ids::PRISMARINE_SHARD));
|
||||
self::register("pufferfish", $factory->fromTypeId(Ids::PUFFERFISH));
|
||||
self::register("pumpkin_pie", $factory->fromTypeId(Ids::PUMPKIN_PIE));
|
||||
self::register("pumpkin_seeds", $factory->fromTypeId(Ids::PUMPKIN_SEEDS));
|
||||
self::register("rabbit_foot", $factory->fromTypeId(Ids::RABBIT_FOOT));
|
||||
self::register("rabbit_hide", $factory->fromTypeId(Ids::RABBIT_HIDE));
|
||||
self::register("rabbit_stew", $factory->fromTypeId(Ids::RABBIT_STEW));
|
||||
self::register("raw_beef", $factory->fromTypeId(Ids::RAW_BEEF));
|
||||
self::register("raw_chicken", $factory->fromTypeId(Ids::RAW_CHICKEN));
|
||||
self::register("raw_fish", $factory->fromTypeId(Ids::RAW_FISH));
|
||||
self::register("raw_mutton", $factory->fromTypeId(Ids::RAW_MUTTON));
|
||||
self::register("raw_porkchop", $factory->fromTypeId(Ids::RAW_PORKCHOP));
|
||||
self::register("raw_rabbit", $factory->fromTypeId(Ids::RAW_RABBIT));
|
||||
self::register("raw_salmon", $factory->fromTypeId(Ids::RAW_SALMON));
|
||||
self::register("record_11", $factory->fromTypeId(Ids::RECORD_11));
|
||||
self::register("record_13", $factory->fromTypeId(Ids::RECORD_13));
|
||||
self::register("record_blocks", $factory->fromTypeId(Ids::RECORD_BLOCKS));
|
||||
self::register("record_cat", $factory->fromTypeId(Ids::RECORD_CAT));
|
||||
self::register("record_chirp", $factory->fromTypeId(Ids::RECORD_CHIRP));
|
||||
self::register("record_far", $factory->fromTypeId(Ids::RECORD_FAR));
|
||||
self::register("record_mall", $factory->fromTypeId(Ids::RECORD_MALL));
|
||||
self::register("record_mellohi", $factory->fromTypeId(Ids::RECORD_MELLOHI));
|
||||
self::register("record_stal", $factory->fromTypeId(Ids::RECORD_STAL));
|
||||
self::register("record_strad", $factory->fromTypeId(Ids::RECORD_STRAD));
|
||||
self::register("record_wait", $factory->fromTypeId(Ids::RECORD_WAIT));
|
||||
self::register("record_ward", $factory->fromTypeId(Ids::RECORD_WARD));
|
||||
self::register("redstone_dust", $factory->fromTypeId(Ids::REDSTONE_DUST));
|
||||
self::register("rotten_flesh", $factory->fromTypeId(Ids::ROTTEN_FLESH));
|
||||
self::register("scute", $factory->fromTypeId(Ids::SCUTE));
|
||||
self::register("shears", $factory->fromTypeId(Ids::SHEARS));
|
||||
self::register("shulker_shell", $factory->fromTypeId(Ids::SHULKER_SHELL));
|
||||
self::register("slimeball", $factory->fromTypeId(Ids::SLIMEBALL));
|
||||
self::register("snowball", $factory->fromTypeId(Ids::SNOWBALL));
|
||||
self::register("spider_eye", $factory->fromTypeId(Ids::SPIDER_EYE));
|
||||
self::register("splash_potion", $factory->fromTypeId(Ids::SPLASH_POTION));
|
||||
self::register("spruce_boat", $factory->fromTypeId(Ids::SPRUCE_BOAT));
|
||||
self::register("spruce_sign", $factory->fromTypeId(Ids::SPRUCE_SIGN));
|
||||
self::register("squid_spawn_egg", $factory->fromTypeId(Ids::SQUID_SPAWN_EGG));
|
||||
self::register("steak", $factory->fromTypeId(Ids::STEAK));
|
||||
self::register("stick", $factory->fromTypeId(Ids::STICK));
|
||||
self::register("stone_axe", $factory->fromTypeId(Ids::STONE_AXE));
|
||||
self::register("stone_hoe", $factory->fromTypeId(Ids::STONE_HOE));
|
||||
self::register("stone_pickaxe", $factory->fromTypeId(Ids::STONE_PICKAXE));
|
||||
self::register("stone_shovel", $factory->fromTypeId(Ids::STONE_SHOVEL));
|
||||
self::register("stone_sword", $factory->fromTypeId(Ids::STONE_SWORD));
|
||||
self::register("string", $factory->fromTypeId(Ids::STRING));
|
||||
self::register("sugar", $factory->fromTypeId(Ids::SUGAR));
|
||||
self::register("sweet_berries", $factory->fromTypeId(Ids::SWEET_BERRIES));
|
||||
self::register("totem", $factory->fromTypeId(Ids::TOTEM));
|
||||
self::register("villager_spawn_egg", $factory->fromTypeId(Ids::VILLAGER_SPAWN_EGG));
|
||||
self::register("water_bucket", $factory->fromTypeId(Ids::WATER_BUCKET));
|
||||
self::register("wheat", $factory->fromTypeId(Ids::WHEAT));
|
||||
self::register("wheat_seeds", $factory->fromTypeId(Ids::WHEAT_SEEDS));
|
||||
self::register("wooden_axe", $factory->fromTypeId(Ids::WOODEN_AXE));
|
||||
self::register("wooden_hoe", $factory->fromTypeId(Ids::WOODEN_HOE));
|
||||
self::register("wooden_pickaxe", $factory->fromTypeId(Ids::WOODEN_PICKAXE));
|
||||
self::register("wooden_shovel", $factory->fromTypeId(Ids::WOODEN_SHOVEL));
|
||||
self::register("wooden_sword", $factory->fromTypeId(Ids::WOODEN_SWORD));
|
||||
self::register("writable_book", $factory->fromTypeId(Ids::WRITABLE_BOOK));
|
||||
self::register("written_book", $factory->fromTypeId(Ids::WRITTEN_BOOK));
|
||||
self::register("zombie_spawn_egg", $factory->fromTypeId(Ids::ZOMBIE_SPAWN_EGG));
|
||||
}
|
||||
}
|
||||
|
@ -39,7 +39,7 @@ final class ItemSerializerDeserializerTest extends TestCase{
|
||||
}
|
||||
|
||||
public function testAllVanillaItemsSerializableAndDeserializable() : void{
|
||||
foreach(ItemFactory::getInstance()->getAllRegistered() as $item){
|
||||
foreach(ItemFactory::getInstance()->getAllKnownTypes() as $item){
|
||||
if($item->isNull()){
|
||||
continue;
|
||||
}
|
||||
|
@ -1,46 +0,0 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
*
|
||||
* ____ _ _ __ __ _ __ __ ____
|
||||
* | _ \ ___ ___| | _____| |_| \/ (_)_ __ ___ | \/ | _ \
|
||||
* | |_) / _ \ / __| |/ / _ \ __| |\/| | | '_ \ / _ \_____| |\/| | |_) |
|
||||
* | __/ (_) | (__| < __/ |_| | | | | | | | __/_____| | | | __/
|
||||
* |_| \___/ \___|_|\_\___|\__|_| |_|_|_| |_|\___| |_| |_|_|
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Lesser General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* @author PocketMine Team
|
||||
* @link http://www.pocketmine.net/
|
||||
*
|
||||
*
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace pocketmine\item;
|
||||
|
||||
use PHPUnit\Framework\TestCase;
|
||||
|
||||
class ItemFactoryTest extends TestCase{
|
||||
|
||||
/**
|
||||
* Test that durable items are correctly created by the item factory
|
||||
*/
|
||||
public function testGetDurableItem() : void{
|
||||
self::assertInstanceOf(Sword::class, $i1 = ItemFactory::getInstance()->get(ItemIds::WOODEN_SWORD));
|
||||
/** @var Sword $i1 */
|
||||
self::assertSame(0, $i1->getDamage());
|
||||
self::assertInstanceOf(Sword::class, $i2 = ItemFactory::getInstance()->get(ItemIds::WOODEN_SWORD, 1));
|
||||
/** @var Sword $i2 */
|
||||
self::assertSame(1, $i2->getDamage());
|
||||
}
|
||||
|
||||
public function testGetDurableItemWithTooLargeDurability() : void{
|
||||
self::assertInstanceOf(Sword::class, ItemFactory::getInstance()->get(ItemIds::WOODEN_SWORD, ToolTier::WOOD()->getMaxDurability()));
|
||||
ItemFactory::getInstance()->get(ItemIds::WOODEN_SWORD, ToolTier::WOOD()->getMaxDurability() + 1);
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user