mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-04-21 08:17:34 +00:00
Convert ItemFactory to singleton
This commit is contained in:
parent
13d784cd0c
commit
5a94af40e2
@ -41,7 +41,6 @@ use pocketmine\event\server\DataPacketSendEvent;
|
||||
use pocketmine\event\server\QueryRegenerateEvent;
|
||||
use pocketmine\inventory\CreativeInventory;
|
||||
use pocketmine\item\enchantment\Enchantment;
|
||||
use pocketmine\item\ItemFactory;
|
||||
use pocketmine\lang\Language;
|
||||
use pocketmine\lang\LanguageNotFoundException;
|
||||
use pocketmine\lang\TranslationContainer;
|
||||
@ -985,7 +984,6 @@ class Server{
|
||||
|
||||
EntityFactory::init();
|
||||
Enchantment::init();
|
||||
ItemFactory::init();
|
||||
CreativeInventory::init();
|
||||
Biome::init();
|
||||
|
||||
|
@ -176,7 +176,7 @@ class Banner extends Transparent{
|
||||
}
|
||||
|
||||
public function asItem() : Item{
|
||||
return ItemFactory::get(ItemIds::BANNER, $this->baseColor->getInvertedMagicNumber());
|
||||
return ItemFactory::getInstance()->get(ItemIds::BANNER, $this->baseColor->getInvertedMagicNumber());
|
||||
}
|
||||
|
||||
public function getDropsForCompatibleTool(Item $item) : array{
|
||||
|
@ -193,7 +193,7 @@ class Bed extends Transparent{
|
||||
}
|
||||
|
||||
public function asItem() : Item{
|
||||
return ItemFactory::get($this->idInfo->getItemId(), $this->color->getMagicNumber());
|
||||
return ItemFactory::getInstance()->get($this->idInfo->getItemId(), $this->color->getMagicNumber());
|
||||
}
|
||||
|
||||
public function getAffectedBlocks() : array{
|
||||
|
@ -104,7 +104,7 @@ class Block{
|
||||
}
|
||||
|
||||
public function asItem() : Item{
|
||||
return ItemFactory::get($this->idInfo->getItemId(), $this->idInfo->getVariant());
|
||||
return ItemFactory::getInstance()->get($this->idInfo->getItemId(), $this->idInfo->getVariant());
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -130,7 +130,7 @@ class Leaves extends Transparent{
|
||||
|
||||
$drops = [];
|
||||
if(mt_rand(1, 20) === 1){ //Saplings
|
||||
$drops[] = ItemFactory::get(ItemIds::SAPLING, $this->treeType->getMagicNumber());
|
||||
$drops[] = ItemFactory::getInstance()->get(ItemIds::SAPLING, $this->treeType->getMagicNumber());
|
||||
}
|
||||
if(($this->treeType->equals(TreeType::OAK()) or $this->treeType->equals(TreeType::DARK_OAK())) and mt_rand(1, 200) === 1){ //Apples
|
||||
$drops[] = VanillaItems::APPLE();
|
||||
|
@ -111,6 +111,6 @@ class Skull extends Flowable{
|
||||
}
|
||||
|
||||
public function asItem() : Item{
|
||||
return ItemFactory::get(ItemIds::SKULL, $this->skullType->getMagicNumber());
|
||||
return ItemFactory::getInstance()->get(ItemIds::SKULL, $this->skullType->getMagicNumber());
|
||||
}
|
||||
}
|
||||
|
@ -169,7 +169,7 @@ class Furnace extends Spawnable implements Container, Nameable{
|
||||
++$this->cookTime;
|
||||
|
||||
if($this->cookTime >= 200){ //10 seconds
|
||||
$product = ItemFactory::get($smelt->getResult()->getId(), $smelt->getResult()->getMeta(), $product->getCount() + 1);
|
||||
$product = ItemFactory::getInstance()->get($smelt->getResult()->getId(), $smelt->getResult()->getMeta(), $product->getCount() + 1);
|
||||
|
||||
$ev = new FurnaceSmeltEvent($this, $raw, $product);
|
||||
$ev->call();
|
||||
|
@ -62,7 +62,7 @@ class GiveCommand extends VanillaCommand{
|
||||
}
|
||||
|
||||
try{
|
||||
$item = ItemFactory::fromString($args[1]);
|
||||
$item = ItemFactory::getInstance()->fromString($args[1]);
|
||||
}catch(\InvalidArgumentException $e){
|
||||
$sender->sendMessage(new TranslationContainer(TextFormat::RED . "%commands.give.item.notFound", [$args[1]]));
|
||||
return true;
|
||||
|
@ -180,7 +180,7 @@ class ParticleCommand extends VanillaCommand{
|
||||
return new ItemBreakParticle(VanillaItems::SLIMEBALL());
|
||||
case "itembreak":
|
||||
if($data !== null and $data !== 0){
|
||||
return new ItemBreakParticle(ItemFactory::get($data));
|
||||
return new ItemBreakParticle(ItemFactory::getInstance()->get($data));
|
||||
}
|
||||
break;
|
||||
case "terrain":
|
||||
@ -208,7 +208,7 @@ class ParticleCommand extends VanillaCommand{
|
||||
if(strpos($name, "iconcrack_") === 0){
|
||||
$d = explode("_", $name);
|
||||
if(count($d) === 3){
|
||||
return new ItemBreakParticle(ItemFactory::get((int) $d[1], (int) $d[2]));
|
||||
return new ItemBreakParticle(ItemFactory::getInstance()->get((int) $d[1], (int) $d[2]));
|
||||
}
|
||||
}elseif(strpos($name, "blockcrack_") === 0){
|
||||
$d = explode("_", $name);
|
||||
|
@ -42,7 +42,7 @@ class Bucket extends Item{
|
||||
$stack = clone $this;
|
||||
$stack->pop();
|
||||
|
||||
$resultItem = ItemFactory::get(ItemIds::BUCKET, $blockClicked->getFlowingForm()->getId());
|
||||
$resultItem = ItemFactory::getInstance()->get(ItemIds::BUCKET, $blockClicked->getFlowingForm()->getId());
|
||||
$ev = new PlayerBucketFillEvent($player, $blockReplace, $face, $this, $resultItem);
|
||||
$ev->call();
|
||||
if(!$ev->isCancelled()){
|
||||
|
@ -624,7 +624,7 @@ class Item implements \JsonSerializable{
|
||||
}elseif(isset($data["nbt_b64"])){
|
||||
$nbt = base64_decode($data["nbt_b64"], true);
|
||||
}
|
||||
return ItemFactory::get(
|
||||
return ItemFactory::getInstance()->get(
|
||||
(int) $data["id"], (int) ($data["damage"] ?? 0), (int) ($data["count"] ?? 1), $nbt !== "" ? (new LittleEndianNbtSerializer())->read($nbt)->mustGetCompoundTag() : null
|
||||
);
|
||||
}
|
||||
@ -656,7 +656,7 @@ class Item implements \JsonSerializable{
|
||||
*/
|
||||
public static function nbtDeserialize(CompoundTag $tag) : Item{
|
||||
if(!$tag->hasTag("id") or !$tag->hasTag("Count")){
|
||||
return ItemFactory::get(0);
|
||||
return ItemFactory::getInstance()->get(0);
|
||||
}
|
||||
|
||||
$count = Binary::unsignByte($tag->getByte("Count"));
|
||||
@ -664,10 +664,10 @@ class Item implements \JsonSerializable{
|
||||
|
||||
$idTag = $tag->getTag("id");
|
||||
if($idTag instanceof ShortTag){
|
||||
$item = ItemFactory::get($idTag->getValue(), $meta, $count);
|
||||
$item = ItemFactory::getInstance()->get($idTag->getValue(), $meta, $count);
|
||||
}elseif($idTag instanceof StringTag){ //PC item save format
|
||||
try{
|
||||
$item = ItemFactory::fromString($idTag->getValue() . ":$meta");
|
||||
$item = ItemFactory::getInstance()->fromString($idTag->getValue() . ":$meta");
|
||||
}catch(\InvalidArgumentException $e){
|
||||
//TODO: improve error handling
|
||||
return ItemFactory::air();
|
||||
|
@ -46,196 +46,203 @@ use function trim;
|
||||
* Manages Item instance creation and registration
|
||||
*/
|
||||
class ItemFactory{
|
||||
/** @var self|null */
|
||||
private static $instance = null;
|
||||
|
||||
public static function getInstance() : self{
|
||||
if(self::$instance === null){
|
||||
self::$instance = new self;
|
||||
}
|
||||
return self::$instance;
|
||||
}
|
||||
|
||||
/** @var Item[] */
|
||||
private static $list = [];
|
||||
private $list = [];
|
||||
|
||||
/** @var Item|null */
|
||||
private static $air = null;
|
||||
|
||||
public static function init() : void{
|
||||
self::$list = []; //in case of re-initializing
|
||||
public function __construct(){
|
||||
$this->registerArmorItems();
|
||||
$this->registerTierToolItems();
|
||||
|
||||
self::registerArmorItems();
|
||||
self::registerTierToolItems();
|
||||
$this->register(new Apple(ItemIds::APPLE, 0, "Apple"));
|
||||
$this->register(new Arrow(ItemIds::ARROW, 0, "Arrow"));
|
||||
|
||||
self::register(new Apple(ItemIds::APPLE, 0, "Apple"));
|
||||
self::register(new Arrow(ItemIds::ARROW, 0, "Arrow"));
|
||||
|
||||
self::register(new BakedPotato(ItemIds::BAKED_POTATO, 0, "Baked Potato"));
|
||||
self::register(new Beetroot(ItemIds::BEETROOT, 0, "Beetroot"));
|
||||
self::register(new BeetrootSeeds(ItemIds::BEETROOT_SEEDS, 0, "Beetroot Seeds"));
|
||||
self::register(new BeetrootSoup(ItemIds::BEETROOT_SOUP, 0, "Beetroot Soup"));
|
||||
self::register(new BlazeRod(ItemIds::BLAZE_ROD, 0, "Blaze Rod"));
|
||||
self::register(new Book(ItemIds::BOOK, 0, "Book"));
|
||||
self::register(new Bow(ItemIds::BOW, 0, "Bow"));
|
||||
self::register(new Bowl(ItemIds::BOWL, 0, "Bowl"));
|
||||
self::register(new Bread(ItemIds::BREAD, 0, "Bread"));
|
||||
self::register(new Bucket(ItemIds::BUCKET, 0, "Bucket"));
|
||||
self::register(new Carrot(ItemIds::CARROT, 0, "Carrot"));
|
||||
self::register(new ChorusFruit(ItemIds::CHORUS_FRUIT, 0, "Chorus Fruit"));
|
||||
self::register(new Clock(ItemIds::CLOCK, 0, "Clock"));
|
||||
self::register(new Clownfish(ItemIds::CLOWNFISH, 0, "Clownfish"));
|
||||
self::register(new Coal(ItemIds::COAL, 0, "Coal"));
|
||||
self::register(new Coal(ItemIds::COAL, 1, "Charcoal"));
|
||||
self::register(new CocoaBeans(ItemIds::DYE, 3, "Cocoa Beans"));
|
||||
self::register(new Compass(ItemIds::COMPASS, 0, "Compass"));
|
||||
self::register(new CookedChicken(ItemIds::COOKED_CHICKEN, 0, "Cooked Chicken"));
|
||||
self::register(new CookedFish(ItemIds::COOKED_FISH, 0, "Cooked Fish"));
|
||||
self::register(new CookedMutton(ItemIds::COOKED_MUTTON, 0, "Cooked Mutton"));
|
||||
self::register(new CookedPorkchop(ItemIds::COOKED_PORKCHOP, 0, "Cooked Porkchop"));
|
||||
self::register(new CookedRabbit(ItemIds::COOKED_RABBIT, 0, "Cooked Rabbit"));
|
||||
self::register(new CookedSalmon(ItemIds::COOKED_SALMON, 0, "Cooked Salmon"));
|
||||
self::register(new Cookie(ItemIds::COOKIE, 0, "Cookie"));
|
||||
self::register(new DriedKelp(ItemIds::DRIED_KELP, 0, "Dried Kelp"));
|
||||
self::register(new Egg(ItemIds::EGG, 0, "Egg"));
|
||||
self::register(new EnderPearl(ItemIds::ENDER_PEARL, 0, "Ender Pearl"));
|
||||
self::register(new ExperienceBottle(ItemIds::EXPERIENCE_BOTTLE, 0, "Bottle o' Enchanting"));
|
||||
self::register(new Fertilizer(ItemIds::DYE, 15, "Bone Meal"));
|
||||
self::register(new FishingRod(ItemIds::FISHING_ROD, 0, "Fishing Rod"));
|
||||
self::register(new FlintSteel(ItemIds::FLINT_STEEL, 0, "Flint and Steel"));
|
||||
self::register(new GlassBottle(ItemIds::GLASS_BOTTLE, 0, "Glass Bottle"));
|
||||
self::register(new GoldenApple(ItemIds::GOLDEN_APPLE, 0, "Golden Apple"));
|
||||
self::register(new GoldenAppleEnchanted(ItemIds::ENCHANTED_GOLDEN_APPLE, 0, "Enchanted Golden Apple"));
|
||||
self::register(new GoldenCarrot(ItemIds::GOLDEN_CARROT, 0, "Golden Carrot"));
|
||||
self::register(new Item(ItemIds::BLAZE_POWDER, 0, "Blaze Powder"));
|
||||
self::register(new Item(ItemIds::BLEACH, 0, "Bleach")); //EDU
|
||||
self::register(new Item(ItemIds::BONE, 0, "Bone"));
|
||||
self::register(new Item(ItemIds::BRICK, 0, "Brick"));
|
||||
self::register(new Item(ItemIds::CHORUS_FRUIT_POPPED, 0, "Popped Chorus Fruit"));
|
||||
self::register(new Item(ItemIds::CLAY_BALL, 0, "Clay"));
|
||||
self::register(new Item(ItemIds::COMPOUND, 0, "Salt"));
|
||||
self::register(new Item(ItemIds::COMPOUND, 1, "Sodium Oxide"));
|
||||
self::register(new Item(ItemIds::COMPOUND, 2, "Sodium Hydroxide"));
|
||||
self::register(new Item(ItemIds::COMPOUND, 3, "Magnesium Nitrate"));
|
||||
self::register(new Item(ItemIds::COMPOUND, 4, "Iron Sulphide"));
|
||||
self::register(new Item(ItemIds::COMPOUND, 5, "Lithium Hydride"));
|
||||
self::register(new Item(ItemIds::COMPOUND, 6, "Sodium Hydride"));
|
||||
self::register(new Item(ItemIds::COMPOUND, 7, "Calcium Bromide"));
|
||||
self::register(new Item(ItemIds::COMPOUND, 8, "Magnesium Oxide"));
|
||||
self::register(new Item(ItemIds::COMPOUND, 9, "Sodium Acetate"));
|
||||
self::register(new Item(ItemIds::COMPOUND, 10, "Luminol"));
|
||||
self::register(new Item(ItemIds::COMPOUND, 11, "Charcoal")); //??? maybe bug
|
||||
self::register(new Item(ItemIds::COMPOUND, 12, "Sugar")); //??? maybe bug
|
||||
self::register(new Item(ItemIds::COMPOUND, 13, "Aluminium Oxide"));
|
||||
self::register(new Item(ItemIds::COMPOUND, 14, "Boron Trioxide"));
|
||||
self::register(new Item(ItemIds::COMPOUND, 15, "Soap"));
|
||||
self::register(new Item(ItemIds::COMPOUND, 16, "Polyethylene"));
|
||||
self::register(new Item(ItemIds::COMPOUND, 17, "Rubbish"));
|
||||
self::register(new Item(ItemIds::COMPOUND, 18, "Magnesium Salts"));
|
||||
self::register(new Item(ItemIds::COMPOUND, 19, "Sulphate"));
|
||||
self::register(new Item(ItemIds::COMPOUND, 20, "Barium Sulphate"));
|
||||
self::register(new Item(ItemIds::COMPOUND, 21, "Potassium Chloride"));
|
||||
self::register(new Item(ItemIds::COMPOUND, 22, "Mercuric Chloride"));
|
||||
self::register(new Item(ItemIds::COMPOUND, 23, "Cerium Chloride"));
|
||||
self::register(new Item(ItemIds::COMPOUND, 24, "Tungsten Chloride"));
|
||||
self::register(new Item(ItemIds::COMPOUND, 25, "Calcium Chloride"));
|
||||
self::register(new Item(ItemIds::COMPOUND, 26, "Water")); //???
|
||||
self::register(new Item(ItemIds::COMPOUND, 27, "Glue"));
|
||||
self::register(new Item(ItemIds::COMPOUND, 28, "Hypochlorite"));
|
||||
self::register(new Item(ItemIds::COMPOUND, 29, "Crude Oil"));
|
||||
self::register(new Item(ItemIds::COMPOUND, 30, "Latex"));
|
||||
self::register(new Item(ItemIds::COMPOUND, 31, "Potassium Iodide"));
|
||||
self::register(new Item(ItemIds::COMPOUND, 32, "Sodium Fluoride"));
|
||||
self::register(new Item(ItemIds::COMPOUND, 33, "Benzene"));
|
||||
self::register(new Item(ItemIds::COMPOUND, 34, "Ink"));
|
||||
self::register(new Item(ItemIds::COMPOUND, 35, "Hydrogen Peroxide"));
|
||||
self::register(new Item(ItemIds::COMPOUND, 36, "Ammonia"));
|
||||
self::register(new Item(ItemIds::COMPOUND, 37, "Sodium Hypochlorite"));
|
||||
self::register(new Item(ItemIds::DIAMOND, 0, "Diamond"));
|
||||
self::register(new Item(ItemIds::DRAGON_BREATH, 0, "Dragon's Breath"));
|
||||
self::register(new Item(ItemIds::DYE, 0, "Ink Sac"));
|
||||
self::register(new Item(ItemIds::DYE, 4, "Lapis Lazuli"));
|
||||
self::register(new Item(ItemIds::EMERALD, 0, "Emerald"));
|
||||
self::register(new Item(ItemIds::FEATHER, 0, "Feather"));
|
||||
self::register(new Item(ItemIds::FERMENTED_SPIDER_EYE, 0, "Fermented Spider Eye"));
|
||||
self::register(new Item(ItemIds::FLINT, 0, "Flint"));
|
||||
self::register(new Item(ItemIds::GHAST_TEAR, 0, "Ghast Tear"));
|
||||
self::register(new Item(ItemIds::GLISTERING_MELON, 0, "Glistering Melon"));
|
||||
self::register(new Item(ItemIds::GLOWSTONE_DUST, 0, "Glowstone Dust"));
|
||||
self::register(new Item(ItemIds::GOLD_INGOT, 0, "Gold Ingot"));
|
||||
self::register(new Item(ItemIds::GOLD_NUGGET, 0, "Gold Nugget"));
|
||||
self::register(new Item(ItemIds::GUNPOWDER, 0, "Gunpowder"));
|
||||
self::register(new Item(ItemIds::HEART_OF_THE_SEA, 0, "Heart of the Sea"));
|
||||
self::register(new Item(ItemIds::IRON_INGOT, 0, "Iron Ingot"));
|
||||
self::register(new Item(ItemIds::IRON_NUGGET, 0, "Iron Nugget"));
|
||||
self::register(new Item(ItemIds::LEATHER, 0, "Leather"));
|
||||
self::register(new Item(ItemIds::MAGMA_CREAM, 0, "Magma Cream"));
|
||||
self::register(new Item(ItemIds::NAUTILUS_SHELL, 0, "Nautilus Shell"));
|
||||
self::register(new Item(ItemIds::NETHER_BRICK, 0, "Nether Brick"));
|
||||
self::register(new Item(ItemIds::NETHER_QUARTZ, 0, "Nether Quartz"));
|
||||
self::register(new Item(ItemIds::NETHER_STAR, 0, "Nether Star"));
|
||||
self::register(new Item(ItemIds::PAPER, 0, "Paper"));
|
||||
self::register(new Item(ItemIds::PRISMARINE_CRYSTALS, 0, "Prismarine Crystals"));
|
||||
self::register(new Item(ItemIds::PRISMARINE_SHARD, 0, "Prismarine Shard"));
|
||||
self::register(new Item(ItemIds::RABBIT_FOOT, 0, "Rabbit's Foot"));
|
||||
self::register(new Item(ItemIds::RABBIT_HIDE, 0, "Rabbit Hide"));
|
||||
self::register(new Item(ItemIds::SHULKER_SHELL, 0, "Shulker Shell"));
|
||||
self::register(new Item(ItemIds::SLIME_BALL, 0, "Slimeball"));
|
||||
self::register(new Item(ItemIds::SUGAR, 0, "Sugar"));
|
||||
self::register(new Item(ItemIds::TURTLE_SHELL_PIECE, 0, "Scute"));
|
||||
self::register(new Item(ItemIds::WHEAT, 0, "Wheat"));
|
||||
self::register(new ItemBlock(BlockLegacyIds::ACACIA_DOOR_BLOCK, 0, ItemIds::ACACIA_DOOR));
|
||||
self::register(new ItemBlock(BlockLegacyIds::BIRCH_DOOR_BLOCK, 0, ItemIds::BIRCH_DOOR));
|
||||
self::register(new ItemBlock(BlockLegacyIds::BREWING_STAND_BLOCK, 0, ItemIds::BREWING_STAND));
|
||||
self::register(new ItemBlock(BlockLegacyIds::CAKE_BLOCK, 0, ItemIds::CAKE));
|
||||
self::register(new ItemBlock(BlockLegacyIds::CAULDRON_BLOCK, 0, ItemIds::CAULDRON));
|
||||
self::register(new ItemBlock(BlockLegacyIds::COMPARATOR_BLOCK, 0, ItemIds::COMPARATOR));
|
||||
self::register(new ItemBlock(BlockLegacyIds::DARK_OAK_DOOR_BLOCK, 0, ItemIds::DARK_OAK_DOOR));
|
||||
self::register(new ItemBlock(BlockLegacyIds::FLOWER_POT_BLOCK, 0, ItemIds::FLOWER_POT));
|
||||
self::register(new ItemBlock(BlockLegacyIds::HOPPER_BLOCK, 0, ItemIds::HOPPER));
|
||||
self::register(new ItemBlock(BlockLegacyIds::IRON_DOOR_BLOCK, 0, ItemIds::IRON_DOOR));
|
||||
self::register(new ItemBlock(BlockLegacyIds::ITEM_FRAME_BLOCK, 0, ItemIds::ITEM_FRAME));
|
||||
self::register(new ItemBlock(BlockLegacyIds::JUNGLE_DOOR_BLOCK, 0, ItemIds::JUNGLE_DOOR));
|
||||
self::register(new ItemBlock(BlockLegacyIds::NETHER_WART_PLANT, 0, ItemIds::NETHER_WART));
|
||||
self::register(new ItemBlock(BlockLegacyIds::OAK_DOOR_BLOCK, 0, ItemIds::OAK_DOOR));
|
||||
self::register(new ItemBlock(BlockLegacyIds::REPEATER_BLOCK, 0, ItemIds::REPEATER));
|
||||
self::register(new ItemBlock(BlockLegacyIds::SPRUCE_DOOR_BLOCK, 0, ItemIds::SPRUCE_DOOR));
|
||||
self::register(new ItemBlock(BlockLegacyIds::SUGARCANE_BLOCK, 0, ItemIds::SUGARCANE));
|
||||
$this->register(new BakedPotato(ItemIds::BAKED_POTATO, 0, "Baked Potato"));
|
||||
$this->register(new Beetroot(ItemIds::BEETROOT, 0, "Beetroot"));
|
||||
$this->register(new BeetrootSeeds(ItemIds::BEETROOT_SEEDS, 0, "Beetroot Seeds"));
|
||||
$this->register(new BeetrootSoup(ItemIds::BEETROOT_SOUP, 0, "Beetroot Soup"));
|
||||
$this->register(new BlazeRod(ItemIds::BLAZE_ROD, 0, "Blaze Rod"));
|
||||
$this->register(new Book(ItemIds::BOOK, 0, "Book"));
|
||||
$this->register(new Bow(ItemIds::BOW, 0, "Bow"));
|
||||
$this->register(new Bowl(ItemIds::BOWL, 0, "Bowl"));
|
||||
$this->register(new Bread(ItemIds::BREAD, 0, "Bread"));
|
||||
$this->register(new Bucket(ItemIds::BUCKET, 0, "Bucket"));
|
||||
$this->register(new Carrot(ItemIds::CARROT, 0, "Carrot"));
|
||||
$this->register(new ChorusFruit(ItemIds::CHORUS_FRUIT, 0, "Chorus Fruit"));
|
||||
$this->register(new Clock(ItemIds::CLOCK, 0, "Clock"));
|
||||
$this->register(new Clownfish(ItemIds::CLOWNFISH, 0, "Clownfish"));
|
||||
$this->register(new Coal(ItemIds::COAL, 0, "Coal"));
|
||||
$this->register(new Coal(ItemIds::COAL, 1, "Charcoal"));
|
||||
$this->register(new CocoaBeans(ItemIds::DYE, 3, "Cocoa Beans"));
|
||||
$this->register(new Compass(ItemIds::COMPASS, 0, "Compass"));
|
||||
$this->register(new CookedChicken(ItemIds::COOKED_CHICKEN, 0, "Cooked Chicken"));
|
||||
$this->register(new CookedFish(ItemIds::COOKED_FISH, 0, "Cooked Fish"));
|
||||
$this->register(new CookedMutton(ItemIds::COOKED_MUTTON, 0, "Cooked Mutton"));
|
||||
$this->register(new CookedPorkchop(ItemIds::COOKED_PORKCHOP, 0, "Cooked Porkchop"));
|
||||
$this->register(new CookedRabbit(ItemIds::COOKED_RABBIT, 0, "Cooked Rabbit"));
|
||||
$this->register(new CookedSalmon(ItemIds::COOKED_SALMON, 0, "Cooked Salmon"));
|
||||
$this->register(new Cookie(ItemIds::COOKIE, 0, "Cookie"));
|
||||
$this->register(new DriedKelp(ItemIds::DRIED_KELP, 0, "Dried Kelp"));
|
||||
$this->register(new Egg(ItemIds::EGG, 0, "Egg"));
|
||||
$this->register(new EnderPearl(ItemIds::ENDER_PEARL, 0, "Ender Pearl"));
|
||||
$this->register(new ExperienceBottle(ItemIds::EXPERIENCE_BOTTLE, 0, "Bottle o' Enchanting"));
|
||||
$this->register(new Fertilizer(ItemIds::DYE, 15, "Bone Meal"));
|
||||
$this->register(new FishingRod(ItemIds::FISHING_ROD, 0, "Fishing Rod"));
|
||||
$this->register(new FlintSteel(ItemIds::FLINT_STEEL, 0, "Flint and Steel"));
|
||||
$this->register(new GlassBottle(ItemIds::GLASS_BOTTLE, 0, "Glass Bottle"));
|
||||
$this->register(new GoldenApple(ItemIds::GOLDEN_APPLE, 0, "Golden Apple"));
|
||||
$this->register(new GoldenAppleEnchanted(ItemIds::ENCHANTED_GOLDEN_APPLE, 0, "Enchanted Golden Apple"));
|
||||
$this->register(new GoldenCarrot(ItemIds::GOLDEN_CARROT, 0, "Golden Carrot"));
|
||||
$this->register(new Item(ItemIds::BLAZE_POWDER, 0, "Blaze Powder"));
|
||||
$this->register(new Item(ItemIds::BLEACH, 0, "Bleach")); //EDU
|
||||
$this->register(new Item(ItemIds::BONE, 0, "Bone"));
|
||||
$this->register(new Item(ItemIds::BRICK, 0, "Brick"));
|
||||
$this->register(new Item(ItemIds::CHORUS_FRUIT_POPPED, 0, "Popped Chorus Fruit"));
|
||||
$this->register(new Item(ItemIds::CLAY_BALL, 0, "Clay"));
|
||||
$this->register(new Item(ItemIds::COMPOUND, 0, "Salt"));
|
||||
$this->register(new Item(ItemIds::COMPOUND, 1, "Sodium Oxide"));
|
||||
$this->register(new Item(ItemIds::COMPOUND, 2, "Sodium Hydroxide"));
|
||||
$this->register(new Item(ItemIds::COMPOUND, 3, "Magnesium Nitrate"));
|
||||
$this->register(new Item(ItemIds::COMPOUND, 4, "Iron Sulphide"));
|
||||
$this->register(new Item(ItemIds::COMPOUND, 5, "Lithium Hydride"));
|
||||
$this->register(new Item(ItemIds::COMPOUND, 6, "Sodium Hydride"));
|
||||
$this->register(new Item(ItemIds::COMPOUND, 7, "Calcium Bromide"));
|
||||
$this->register(new Item(ItemIds::COMPOUND, 8, "Magnesium Oxide"));
|
||||
$this->register(new Item(ItemIds::COMPOUND, 9, "Sodium Acetate"));
|
||||
$this->register(new Item(ItemIds::COMPOUND, 10, "Luminol"));
|
||||
$this->register(new Item(ItemIds::COMPOUND, 11, "Charcoal")); //??? maybe bug
|
||||
$this->register(new Item(ItemIds::COMPOUND, 12, "Sugar")); //??? maybe bug
|
||||
$this->register(new Item(ItemIds::COMPOUND, 13, "Aluminium Oxide"));
|
||||
$this->register(new Item(ItemIds::COMPOUND, 14, "Boron Trioxide"));
|
||||
$this->register(new Item(ItemIds::COMPOUND, 15, "Soap"));
|
||||
$this->register(new Item(ItemIds::COMPOUND, 16, "Polyethylene"));
|
||||
$this->register(new Item(ItemIds::COMPOUND, 17, "Rubbish"));
|
||||
$this->register(new Item(ItemIds::COMPOUND, 18, "Magnesium Salts"));
|
||||
$this->register(new Item(ItemIds::COMPOUND, 19, "Sulphate"));
|
||||
$this->register(new Item(ItemIds::COMPOUND, 20, "Barium Sulphate"));
|
||||
$this->register(new Item(ItemIds::COMPOUND, 21, "Potassium Chloride"));
|
||||
$this->register(new Item(ItemIds::COMPOUND, 22, "Mercuric Chloride"));
|
||||
$this->register(new Item(ItemIds::COMPOUND, 23, "Cerium Chloride"));
|
||||
$this->register(new Item(ItemIds::COMPOUND, 24, "Tungsten Chloride"));
|
||||
$this->register(new Item(ItemIds::COMPOUND, 25, "Calcium Chloride"));
|
||||
$this->register(new Item(ItemIds::COMPOUND, 26, "Water")); //???
|
||||
$this->register(new Item(ItemIds::COMPOUND, 27, "Glue"));
|
||||
$this->register(new Item(ItemIds::COMPOUND, 28, "Hypochlorite"));
|
||||
$this->register(new Item(ItemIds::COMPOUND, 29, "Crude Oil"));
|
||||
$this->register(new Item(ItemIds::COMPOUND, 30, "Latex"));
|
||||
$this->register(new Item(ItemIds::COMPOUND, 31, "Potassium Iodide"));
|
||||
$this->register(new Item(ItemIds::COMPOUND, 32, "Sodium Fluoride"));
|
||||
$this->register(new Item(ItemIds::COMPOUND, 33, "Benzene"));
|
||||
$this->register(new Item(ItemIds::COMPOUND, 34, "Ink"));
|
||||
$this->register(new Item(ItemIds::COMPOUND, 35, "Hydrogen Peroxide"));
|
||||
$this->register(new Item(ItemIds::COMPOUND, 36, "Ammonia"));
|
||||
$this->register(new Item(ItemIds::COMPOUND, 37, "Sodium Hypochlorite"));
|
||||
$this->register(new Item(ItemIds::DIAMOND, 0, "Diamond"));
|
||||
$this->register(new Item(ItemIds::DRAGON_BREATH, 0, "Dragon's Breath"));
|
||||
$this->register(new Item(ItemIds::DYE, 0, "Ink Sac"));
|
||||
$this->register(new Item(ItemIds::DYE, 4, "Lapis Lazuli"));
|
||||
$this->register(new Item(ItemIds::EMERALD, 0, "Emerald"));
|
||||
$this->register(new Item(ItemIds::FEATHER, 0, "Feather"));
|
||||
$this->register(new Item(ItemIds::FERMENTED_SPIDER_EYE, 0, "Fermented Spider Eye"));
|
||||
$this->register(new Item(ItemIds::FLINT, 0, "Flint"));
|
||||
$this->register(new Item(ItemIds::GHAST_TEAR, 0, "Ghast Tear"));
|
||||
$this->register(new Item(ItemIds::GLISTERING_MELON, 0, "Glistering Melon"));
|
||||
$this->register(new Item(ItemIds::GLOWSTONE_DUST, 0, "Glowstone Dust"));
|
||||
$this->register(new Item(ItemIds::GOLD_INGOT, 0, "Gold Ingot"));
|
||||
$this->register(new Item(ItemIds::GOLD_NUGGET, 0, "Gold Nugget"));
|
||||
$this->register(new Item(ItemIds::GUNPOWDER, 0, "Gunpowder"));
|
||||
$this->register(new Item(ItemIds::HEART_OF_THE_SEA, 0, "Heart of the Sea"));
|
||||
$this->register(new Item(ItemIds::IRON_INGOT, 0, "Iron Ingot"));
|
||||
$this->register(new Item(ItemIds::IRON_NUGGET, 0, "Iron Nugget"));
|
||||
$this->register(new Item(ItemIds::LEATHER, 0, "Leather"));
|
||||
$this->register(new Item(ItemIds::MAGMA_CREAM, 0, "Magma Cream"));
|
||||
$this->register(new Item(ItemIds::NAUTILUS_SHELL, 0, "Nautilus Shell"));
|
||||
$this->register(new Item(ItemIds::NETHER_BRICK, 0, "Nether Brick"));
|
||||
$this->register(new Item(ItemIds::NETHER_QUARTZ, 0, "Nether Quartz"));
|
||||
$this->register(new Item(ItemIds::NETHER_STAR, 0, "Nether Star"));
|
||||
$this->register(new Item(ItemIds::PAPER, 0, "Paper"));
|
||||
$this->register(new Item(ItemIds::PRISMARINE_CRYSTALS, 0, "Prismarine Crystals"));
|
||||
$this->register(new Item(ItemIds::PRISMARINE_SHARD, 0, "Prismarine Shard"));
|
||||
$this->register(new Item(ItemIds::RABBIT_FOOT, 0, "Rabbit's Foot"));
|
||||
$this->register(new Item(ItemIds::RABBIT_HIDE, 0, "Rabbit Hide"));
|
||||
$this->register(new Item(ItemIds::SHULKER_SHELL, 0, "Shulker Shell"));
|
||||
$this->register(new Item(ItemIds::SLIME_BALL, 0, "Slimeball"));
|
||||
$this->register(new Item(ItemIds::SUGAR, 0, "Sugar"));
|
||||
$this->register(new Item(ItemIds::TURTLE_SHELL_PIECE, 0, "Scute"));
|
||||
$this->register(new Item(ItemIds::WHEAT, 0, "Wheat"));
|
||||
$this->register(new ItemBlock(BlockLegacyIds::ACACIA_DOOR_BLOCK, 0, ItemIds::ACACIA_DOOR));
|
||||
$this->register(new ItemBlock(BlockLegacyIds::BIRCH_DOOR_BLOCK, 0, ItemIds::BIRCH_DOOR));
|
||||
$this->register(new ItemBlock(BlockLegacyIds::BREWING_STAND_BLOCK, 0, ItemIds::BREWING_STAND));
|
||||
$this->register(new ItemBlock(BlockLegacyIds::CAKE_BLOCK, 0, ItemIds::CAKE));
|
||||
$this->register(new ItemBlock(BlockLegacyIds::CAULDRON_BLOCK, 0, ItemIds::CAULDRON));
|
||||
$this->register(new ItemBlock(BlockLegacyIds::COMPARATOR_BLOCK, 0, ItemIds::COMPARATOR));
|
||||
$this->register(new ItemBlock(BlockLegacyIds::DARK_OAK_DOOR_BLOCK, 0, ItemIds::DARK_OAK_DOOR));
|
||||
$this->register(new ItemBlock(BlockLegacyIds::FLOWER_POT_BLOCK, 0, ItemIds::FLOWER_POT));
|
||||
$this->register(new ItemBlock(BlockLegacyIds::HOPPER_BLOCK, 0, ItemIds::HOPPER));
|
||||
$this->register(new ItemBlock(BlockLegacyIds::IRON_DOOR_BLOCK, 0, ItemIds::IRON_DOOR));
|
||||
$this->register(new ItemBlock(BlockLegacyIds::ITEM_FRAME_BLOCK, 0, ItemIds::ITEM_FRAME));
|
||||
$this->register(new ItemBlock(BlockLegacyIds::JUNGLE_DOOR_BLOCK, 0, ItemIds::JUNGLE_DOOR));
|
||||
$this->register(new ItemBlock(BlockLegacyIds::NETHER_WART_PLANT, 0, ItemIds::NETHER_WART));
|
||||
$this->register(new ItemBlock(BlockLegacyIds::OAK_DOOR_BLOCK, 0, ItemIds::OAK_DOOR));
|
||||
$this->register(new ItemBlock(BlockLegacyIds::REPEATER_BLOCK, 0, ItemIds::REPEATER));
|
||||
$this->register(new ItemBlock(BlockLegacyIds::SPRUCE_DOOR_BLOCK, 0, ItemIds::SPRUCE_DOOR));
|
||||
$this->register(new ItemBlock(BlockLegacyIds::SUGARCANE_BLOCK, 0, ItemIds::SUGARCANE));
|
||||
//TODO: fix metadata for buckets with still liquid in them
|
||||
//the meta values are intentionally hardcoded because block IDs will change in the future
|
||||
self::register(new LiquidBucket(ItemIds::BUCKET, 8, "Water Bucket", VanillaBlocks::WATER()));
|
||||
self::register(new LiquidBucket(ItemIds::BUCKET, 10, "Lava Bucket", VanillaBlocks::LAVA()));
|
||||
self::register(new Melon(ItemIds::MELON, 0, "Melon"));
|
||||
self::register(new MelonSeeds(ItemIds::MELON_SEEDS, 0, "Melon Seeds"));
|
||||
self::register(new MilkBucket(ItemIds::BUCKET, 1, "Milk Bucket"));
|
||||
self::register(new Minecart(ItemIds::MINECART, 0, "Minecart"));
|
||||
self::register(new MushroomStew(ItemIds::MUSHROOM_STEW, 0, "Mushroom Stew"));
|
||||
self::register(new PaintingItem(ItemIds::PAINTING, 0, "Painting"));
|
||||
self::register(new PoisonousPotato(ItemIds::POISONOUS_POTATO, 0, "Poisonous Potato"));
|
||||
self::register(new Potato(ItemIds::POTATO, 0, "Potato"));
|
||||
self::register(new Pufferfish(ItemIds::PUFFERFISH, 0, "Pufferfish"));
|
||||
self::register(new PumpkinPie(ItemIds::PUMPKIN_PIE, 0, "Pumpkin Pie"));
|
||||
self::register(new PumpkinSeeds(ItemIds::PUMPKIN_SEEDS, 0, "Pumpkin Seeds"));
|
||||
self::register(new RabbitStew(ItemIds::RABBIT_STEW, 0, "Rabbit Stew"));
|
||||
self::register(new RawBeef(ItemIds::RAW_BEEF, 0, "Raw Beef"));
|
||||
self::register(new RawChicken(ItemIds::RAW_CHICKEN, 0, "Raw Chicken"));
|
||||
self::register(new RawFish(ItemIds::RAW_FISH, 0, "Raw Fish"));
|
||||
self::register(new RawMutton(ItemIds::RAW_MUTTON, 0, "Raw Mutton"));
|
||||
self::register(new RawPorkchop(ItemIds::RAW_PORKCHOP, 0, "Raw Porkchop"));
|
||||
self::register(new RawRabbit(ItemIds::RAW_RABBIT, 0, "Raw Rabbit"));
|
||||
self::register(new RawSalmon(ItemIds::RAW_SALMON, 0, "Raw Salmon"));
|
||||
self::register(new Redstone(ItemIds::REDSTONE, 0, "Redstone"));
|
||||
self::register(new RottenFlesh(ItemIds::ROTTEN_FLESH, 0, "Rotten Flesh"));
|
||||
self::register(new Shears(ItemIds::SHEARS, 0, "Shears"));
|
||||
self::register(new Sign(BlockLegacyIds::STANDING_SIGN, 0, ItemIds::SIGN));
|
||||
self::register(new Sign(BlockLegacyIds::SPRUCE_STANDING_SIGN, 0, ItemIds::SPRUCE_SIGN));
|
||||
self::register(new Sign(BlockLegacyIds::BIRCH_STANDING_SIGN, 0, ItemIds::BIRCH_SIGN));
|
||||
self::register(new Sign(BlockLegacyIds::JUNGLE_STANDING_SIGN, 0, ItemIds::JUNGLE_SIGN));
|
||||
self::register(new Sign(BlockLegacyIds::ACACIA_STANDING_SIGN, 0, ItemIds::ACACIA_SIGN));
|
||||
self::register(new Sign(BlockLegacyIds::DARKOAK_STANDING_SIGN, 0, ItemIds::DARKOAK_SIGN));
|
||||
self::register(new Snowball(ItemIds::SNOWBALL, 0, "Snowball"));
|
||||
self::register(new SpiderEye(ItemIds::SPIDER_EYE, 0, "Spider Eye"));
|
||||
self::register(new Steak(ItemIds::STEAK, 0, "Steak"));
|
||||
self::register(new Stick(ItemIds::STICK, 0, "Stick"));
|
||||
self::register(new StringItem(ItemIds::STRING, 0, "String"));
|
||||
self::register(new Totem(ItemIds::TOTEM, 0, "Totem of Undying"));
|
||||
self::register(new WheatSeeds(ItemIds::WHEAT_SEEDS, 0, "Wheat Seeds"));
|
||||
self::register(new WritableBook(ItemIds::WRITABLE_BOOK, 0, "Book & Quill"));
|
||||
self::register(new WrittenBook(ItemIds::WRITTEN_BOOK, 0, "Written Book"));
|
||||
$this->register(new LiquidBucket(ItemIds::BUCKET, 8, "Water Bucket", VanillaBlocks::WATER()));
|
||||
$this->register(new LiquidBucket(ItemIds::BUCKET, 10, "Lava Bucket", VanillaBlocks::LAVA()));
|
||||
$this->register(new Melon(ItemIds::MELON, 0, "Melon"));
|
||||
$this->register(new MelonSeeds(ItemIds::MELON_SEEDS, 0, "Melon Seeds"));
|
||||
$this->register(new MilkBucket(ItemIds::BUCKET, 1, "Milk Bucket"));
|
||||
$this->register(new Minecart(ItemIds::MINECART, 0, "Minecart"));
|
||||
$this->register(new MushroomStew(ItemIds::MUSHROOM_STEW, 0, "Mushroom Stew"));
|
||||
$this->register(new PaintingItem(ItemIds::PAINTING, 0, "Painting"));
|
||||
$this->register(new PoisonousPotato(ItemIds::POISONOUS_POTATO, 0, "Poisonous Potato"));
|
||||
$this->register(new Potato(ItemIds::POTATO, 0, "Potato"));
|
||||
$this->register(new Pufferfish(ItemIds::PUFFERFISH, 0, "Pufferfish"));
|
||||
$this->register(new PumpkinPie(ItemIds::PUMPKIN_PIE, 0, "Pumpkin Pie"));
|
||||
$this->register(new PumpkinSeeds(ItemIds::PUMPKIN_SEEDS, 0, "Pumpkin Seeds"));
|
||||
$this->register(new RabbitStew(ItemIds::RABBIT_STEW, 0, "Rabbit Stew"));
|
||||
$this->register(new RawBeef(ItemIds::RAW_BEEF, 0, "Raw Beef"));
|
||||
$this->register(new RawChicken(ItemIds::RAW_CHICKEN, 0, "Raw Chicken"));
|
||||
$this->register(new RawFish(ItemIds::RAW_FISH, 0, "Raw Fish"));
|
||||
$this->register(new RawMutton(ItemIds::RAW_MUTTON, 0, "Raw Mutton"));
|
||||
$this->register(new RawPorkchop(ItemIds::RAW_PORKCHOP, 0, "Raw Porkchop"));
|
||||
$this->register(new RawRabbit(ItemIds::RAW_RABBIT, 0, "Raw Rabbit"));
|
||||
$this->register(new RawSalmon(ItemIds::RAW_SALMON, 0, "Raw Salmon"));
|
||||
$this->register(new Redstone(ItemIds::REDSTONE, 0, "Redstone"));
|
||||
$this->register(new RottenFlesh(ItemIds::ROTTEN_FLESH, 0, "Rotten Flesh"));
|
||||
$this->register(new Shears(ItemIds::SHEARS, 0, "Shears"));
|
||||
$this->register(new Sign(BlockLegacyIds::STANDING_SIGN, 0, ItemIds::SIGN));
|
||||
$this->register(new Sign(BlockLegacyIds::SPRUCE_STANDING_SIGN, 0, ItemIds::SPRUCE_SIGN));
|
||||
$this->register(new Sign(BlockLegacyIds::BIRCH_STANDING_SIGN, 0, ItemIds::BIRCH_SIGN));
|
||||
$this->register(new Sign(BlockLegacyIds::JUNGLE_STANDING_SIGN, 0, ItemIds::JUNGLE_SIGN));
|
||||
$this->register(new Sign(BlockLegacyIds::ACACIA_STANDING_SIGN, 0, ItemIds::ACACIA_SIGN));
|
||||
$this->register(new Sign(BlockLegacyIds::DARKOAK_STANDING_SIGN, 0, ItemIds::DARKOAK_SIGN));
|
||||
$this->register(new Snowball(ItemIds::SNOWBALL, 0, "Snowball"));
|
||||
$this->register(new SpiderEye(ItemIds::SPIDER_EYE, 0, "Spider Eye"));
|
||||
$this->register(new Steak(ItemIds::STEAK, 0, "Steak"));
|
||||
$this->register(new Stick(ItemIds::STICK, 0, "Stick"));
|
||||
$this->register(new StringItem(ItemIds::STRING, 0, "String"));
|
||||
$this->register(new Totem(ItemIds::TOTEM, 0, "Totem of Undying"));
|
||||
$this->register(new WheatSeeds(ItemIds::WHEAT_SEEDS, 0, "Wheat Seeds"));
|
||||
$this->register(new WritableBook(ItemIds::WRITABLE_BOOK, 0, "Book & Quill"));
|
||||
$this->register(new WrittenBook(ItemIds::WRITTEN_BOOK, 0, "Written Book"));
|
||||
|
||||
foreach(SkullType::getAll() as $skullType){
|
||||
self::register(new Skull(ItemIds::SKULL, $skullType->getMagicNumber(), $skullType->getDisplayName(), $skullType));
|
||||
$this->register(new Skull(ItemIds::SKULL, $skullType->getMagicNumber(), $skullType->getDisplayName(), $skullType));
|
||||
}
|
||||
|
||||
$dyeMap = [
|
||||
@ -247,25 +254,25 @@ class ItemFactory{
|
||||
foreach(DyeColor::getAll() as $color){
|
||||
//TODO: use colour object directly
|
||||
//TODO: add interface to dye-colour objects
|
||||
self::register(new Dye(ItemIds::DYE, $dyeMap[$color->id()] ?? $color->getInvertedMagicNumber(), $color->getDisplayName() . " Dye", $color));
|
||||
self::register(new Bed(ItemIds::BED, $color->getMagicNumber(), $color->getDisplayName() . " Bed", $color));
|
||||
self::register(new Banner(ItemIds::BANNER, $color->getInvertedMagicNumber(), $color->getDisplayName() . " Banner", $color));
|
||||
$this->register(new Dye(ItemIds::DYE, $dyeMap[$color->id()] ?? $color->getInvertedMagicNumber(), $color->getDisplayName() . " Dye", $color));
|
||||
$this->register(new Bed(ItemIds::BED, $color->getMagicNumber(), $color->getDisplayName() . " Bed", $color));
|
||||
$this->register(new Banner(ItemIds::BANNER, $color->getInvertedMagicNumber(), $color->getDisplayName() . " Banner", $color));
|
||||
}
|
||||
|
||||
foreach(Potion::ALL as $type){
|
||||
self::register(new Potion(ItemIds::POTION, $type, "Potion"));
|
||||
self::register(new SplashPotion(ItemIds::SPLASH_POTION, $type, "Splash Potion"));
|
||||
$this->register(new Potion(ItemIds::POTION, $type, "Potion"));
|
||||
$this->register(new SplashPotion(ItemIds::SPLASH_POTION, $type, "Splash Potion"));
|
||||
}
|
||||
|
||||
foreach(EntityFactory::getKnownTypes() as $className){
|
||||
/** @var Living|string $className */
|
||||
if(is_a($className, Living::class, true) and $className::NETWORK_ID !== -1){
|
||||
self::register(new SpawnEgg(ItemIds::SPAWN_EGG, $className::NETWORK_ID, "Spawn Egg", $className));
|
||||
$this->register(new SpawnEgg(ItemIds::SPAWN_EGG, $className::NETWORK_ID, "Spawn Egg", $className));
|
||||
}
|
||||
}
|
||||
|
||||
foreach(TreeType::getAll() as $type){
|
||||
self::register(new Boat(ItemIds::BOAT, $type->getMagicNumber(), $type->getDisplayName() . " Boat", $type));
|
||||
$this->register(new Boat(ItemIds::BOAT, $type->getMagicNumber(), $type->getDisplayName() . " Boat", $type));
|
||||
}
|
||||
|
||||
//region --- auto-generated TODOs ---
|
||||
@ -323,55 +330,55 @@ class ItemFactory{
|
||||
//endregion
|
||||
}
|
||||
|
||||
private static function registerTierToolItems() : void{
|
||||
self::register(new Axe(ItemIds::DIAMOND_AXE, "Diamond Axe", ToolTier::DIAMOND()));
|
||||
self::register(new Axe(ItemIds::GOLDEN_AXE, "Golden Axe", ToolTier::GOLD()));
|
||||
self::register(new Axe(ItemIds::IRON_AXE, "Iron Axe", ToolTier::IRON()));
|
||||
self::register(new Axe(ItemIds::STONE_AXE, "Stone Axe", ToolTier::STONE()));
|
||||
self::register(new Axe(ItemIds::WOODEN_AXE, "Wooden Axe", ToolTier::WOOD()));
|
||||
self::register(new Hoe(ItemIds::DIAMOND_HOE, "Diamond Hoe", ToolTier::DIAMOND()));
|
||||
self::register(new Hoe(ItemIds::GOLDEN_HOE, "Golden Hoe", ToolTier::GOLD()));
|
||||
self::register(new Hoe(ItemIds::IRON_HOE, "Iron Hoe", ToolTier::IRON()));
|
||||
self::register(new Hoe(ItemIds::STONE_HOE, "Stone Hoe", ToolTier::STONE()));
|
||||
self::register(new Hoe(ItemIds::WOODEN_HOE, "Wooden Hoe", ToolTier::WOOD()));
|
||||
self::register(new Pickaxe(ItemIds::DIAMOND_PICKAXE, "Diamond Pickaxe", ToolTier::DIAMOND()));
|
||||
self::register(new Pickaxe(ItemIds::GOLDEN_PICKAXE, "Golden Pickaxe", ToolTier::GOLD()));
|
||||
self::register(new Pickaxe(ItemIds::IRON_PICKAXE, "Iron Pickaxe", ToolTier::IRON()));
|
||||
self::register(new Pickaxe(ItemIds::STONE_PICKAXE, "Stone Pickaxe", ToolTier::STONE()));
|
||||
self::register(new Pickaxe(ItemIds::WOODEN_PICKAXE, "Wooden Pickaxe", ToolTier::WOOD()));
|
||||
self::register(new Shovel(ItemIds::DIAMOND_SHOVEL, "Diamond Shovel", ToolTier::DIAMOND()));
|
||||
self::register(new Shovel(ItemIds::GOLDEN_SHOVEL, "Golden Shovel", ToolTier::GOLD()));
|
||||
self::register(new Shovel(ItemIds::IRON_SHOVEL, "Iron Shovel", ToolTier::IRON()));
|
||||
self::register(new Shovel(ItemIds::STONE_SHOVEL, "Stone Shovel", ToolTier::STONE()));
|
||||
self::register(new Shovel(ItemIds::WOODEN_SHOVEL, "Wooden Shovel", ToolTier::WOOD()));
|
||||
self::register(new Sword(ItemIds::DIAMOND_SWORD, "Diamond Sword", ToolTier::DIAMOND()));
|
||||
self::register(new Sword(ItemIds::GOLDEN_SWORD, "Golden Sword", ToolTier::GOLD()));
|
||||
self::register(new Sword(ItemIds::IRON_SWORD, "Iron Sword", ToolTier::IRON()));
|
||||
self::register(new Sword(ItemIds::STONE_SWORD, "Stone Sword", ToolTier::STONE()));
|
||||
self::register(new Sword(ItemIds::WOODEN_SWORD, "Wooden Sword", ToolTier::WOOD()));
|
||||
private function registerTierToolItems() : void{
|
||||
$this->register(new Axe(ItemIds::DIAMOND_AXE, "Diamond Axe", ToolTier::DIAMOND()));
|
||||
$this->register(new Axe(ItemIds::GOLDEN_AXE, "Golden Axe", ToolTier::GOLD()));
|
||||
$this->register(new Axe(ItemIds::IRON_AXE, "Iron Axe", ToolTier::IRON()));
|
||||
$this->register(new Axe(ItemIds::STONE_AXE, "Stone Axe", ToolTier::STONE()));
|
||||
$this->register(new Axe(ItemIds::WOODEN_AXE, "Wooden Axe", ToolTier::WOOD()));
|
||||
$this->register(new Hoe(ItemIds::DIAMOND_HOE, "Diamond Hoe", ToolTier::DIAMOND()));
|
||||
$this->register(new Hoe(ItemIds::GOLDEN_HOE, "Golden Hoe", ToolTier::GOLD()));
|
||||
$this->register(new Hoe(ItemIds::IRON_HOE, "Iron Hoe", ToolTier::IRON()));
|
||||
$this->register(new Hoe(ItemIds::STONE_HOE, "Stone Hoe", ToolTier::STONE()));
|
||||
$this->register(new Hoe(ItemIds::WOODEN_HOE, "Wooden Hoe", ToolTier::WOOD()));
|
||||
$this->register(new Pickaxe(ItemIds::DIAMOND_PICKAXE, "Diamond Pickaxe", ToolTier::DIAMOND()));
|
||||
$this->register(new Pickaxe(ItemIds::GOLDEN_PICKAXE, "Golden Pickaxe", ToolTier::GOLD()));
|
||||
$this->register(new Pickaxe(ItemIds::IRON_PICKAXE, "Iron Pickaxe", ToolTier::IRON()));
|
||||
$this->register(new Pickaxe(ItemIds::STONE_PICKAXE, "Stone Pickaxe", ToolTier::STONE()));
|
||||
$this->register(new Pickaxe(ItemIds::WOODEN_PICKAXE, "Wooden Pickaxe", ToolTier::WOOD()));
|
||||
$this->register(new Shovel(ItemIds::DIAMOND_SHOVEL, "Diamond Shovel", ToolTier::DIAMOND()));
|
||||
$this->register(new Shovel(ItemIds::GOLDEN_SHOVEL, "Golden Shovel", ToolTier::GOLD()));
|
||||
$this->register(new Shovel(ItemIds::IRON_SHOVEL, "Iron Shovel", ToolTier::IRON()));
|
||||
$this->register(new Shovel(ItemIds::STONE_SHOVEL, "Stone Shovel", ToolTier::STONE()));
|
||||
$this->register(new Shovel(ItemIds::WOODEN_SHOVEL, "Wooden Shovel", ToolTier::WOOD()));
|
||||
$this->register(new Sword(ItemIds::DIAMOND_SWORD, "Diamond Sword", ToolTier::DIAMOND()));
|
||||
$this->register(new Sword(ItemIds::GOLDEN_SWORD, "Golden Sword", ToolTier::GOLD()));
|
||||
$this->register(new Sword(ItemIds::IRON_SWORD, "Iron Sword", ToolTier::IRON()));
|
||||
$this->register(new Sword(ItemIds::STONE_SWORD, "Stone Sword", ToolTier::STONE()));
|
||||
$this->register(new Sword(ItemIds::WOODEN_SWORD, "Wooden Sword", ToolTier::WOOD()));
|
||||
}
|
||||
|
||||
private static function registerArmorItems() : void{
|
||||
self::register(new Armor(ItemIds::CHAIN_BOOTS, 0, "Chainmail Boots", new ArmorTypeInfo(1, 196, ArmorInventory::SLOT_FEET)));
|
||||
self::register(new Armor(ItemIds::DIAMOND_BOOTS, 0, "Diamond Boots", new ArmorTypeInfo(3, 430, ArmorInventory::SLOT_FEET)));
|
||||
self::register(new Armor(ItemIds::GOLDEN_BOOTS, 0, "Golden Boots", new ArmorTypeInfo(1, 92, ArmorInventory::SLOT_FEET)));
|
||||
self::register(new Armor(ItemIds::IRON_BOOTS, 0, "Iron Boots", new ArmorTypeInfo(2, 196, ArmorInventory::SLOT_FEET)));
|
||||
self::register(new Armor(ItemIds::LEATHER_BOOTS, 0, "Leather Boots", new ArmorTypeInfo(1, 66, ArmorInventory::SLOT_FEET)));
|
||||
self::register(new Armor(ItemIds::CHAIN_CHESTPLATE, 0, "Chainmail Chestplate", new ArmorTypeInfo(5, 241, ArmorInventory::SLOT_CHEST)));
|
||||
self::register(new Armor(ItemIds::DIAMOND_CHESTPLATE, 0, "Diamond Chestplate", new ArmorTypeInfo(8, 529, ArmorInventory::SLOT_CHEST)));
|
||||
self::register(new Armor(ItemIds::GOLDEN_CHESTPLATE, 0, "Golden Chestplate", new ArmorTypeInfo(5, 113, ArmorInventory::SLOT_CHEST)));
|
||||
self::register(new Armor(ItemIds::IRON_CHESTPLATE, 0, "Iron Chestplate", new ArmorTypeInfo(6, 241, ArmorInventory::SLOT_CHEST)));
|
||||
self::register(new Armor(ItemIds::LEATHER_CHESTPLATE, 0, "Leather Tunic", new ArmorTypeInfo(3, 81, ArmorInventory::SLOT_CHEST)));
|
||||
self::register(new Armor(ItemIds::CHAIN_HELMET, 0, "Chainmail Helmet", new ArmorTypeInfo(2, 166, ArmorInventory::SLOT_HEAD)));
|
||||
self::register(new Armor(ItemIds::DIAMOND_HELMET, 0, "Diamond Helmet", new ArmorTypeInfo(3, 364, ArmorInventory::SLOT_HEAD)));
|
||||
self::register(new Armor(ItemIds::GOLDEN_HELMET, 0, "Golden Helmet", new ArmorTypeInfo(2, 78, ArmorInventory::SLOT_HEAD)));
|
||||
self::register(new Armor(ItemIds::IRON_HELMET, 0, "Iron Helmet", new ArmorTypeInfo(2, 166, ArmorInventory::SLOT_HEAD)));
|
||||
self::register(new Armor(ItemIds::LEATHER_HELMET, 0, "Leather Cap", new ArmorTypeInfo(1, 56, ArmorInventory::SLOT_HEAD)));
|
||||
self::register(new Armor(ItemIds::CHAIN_LEGGINGS, 0, "Chainmail Leggings", new ArmorTypeInfo(4, 226, ArmorInventory::SLOT_LEGS)));
|
||||
self::register(new Armor(ItemIds::DIAMOND_LEGGINGS, 0, "Diamond Leggings", new ArmorTypeInfo(6, 496, ArmorInventory::SLOT_LEGS)));
|
||||
self::register(new Armor(ItemIds::GOLDEN_LEGGINGS, 0, "Golden Leggings", new ArmorTypeInfo(3, 106, ArmorInventory::SLOT_LEGS)));
|
||||
self::register(new Armor(ItemIds::IRON_LEGGINGS, 0, "Iron Leggings", new ArmorTypeInfo(5, 226, ArmorInventory::SLOT_LEGS)));
|
||||
self::register(new Armor(ItemIds::LEATHER_LEGGINGS, 0, "Leather Pants", new ArmorTypeInfo(2, 76, ArmorInventory::SLOT_LEGS)));
|
||||
private function registerArmorItems() : void{
|
||||
$this->register(new Armor(ItemIds::CHAIN_BOOTS, 0, "Chainmail Boots", new ArmorTypeInfo(1, 196, ArmorInventory::SLOT_FEET)));
|
||||
$this->register(new Armor(ItemIds::DIAMOND_BOOTS, 0, "Diamond Boots", new ArmorTypeInfo(3, 430, ArmorInventory::SLOT_FEET)));
|
||||
$this->register(new Armor(ItemIds::GOLDEN_BOOTS, 0, "Golden Boots", new ArmorTypeInfo(1, 92, ArmorInventory::SLOT_FEET)));
|
||||
$this->register(new Armor(ItemIds::IRON_BOOTS, 0, "Iron Boots", new ArmorTypeInfo(2, 196, ArmorInventory::SLOT_FEET)));
|
||||
$this->register(new Armor(ItemIds::LEATHER_BOOTS, 0, "Leather Boots", new ArmorTypeInfo(1, 66, ArmorInventory::SLOT_FEET)));
|
||||
$this->register(new Armor(ItemIds::CHAIN_CHESTPLATE, 0, "Chainmail Chestplate", new ArmorTypeInfo(5, 241, ArmorInventory::SLOT_CHEST)));
|
||||
$this->register(new Armor(ItemIds::DIAMOND_CHESTPLATE, 0, "Diamond Chestplate", new ArmorTypeInfo(8, 529, ArmorInventory::SLOT_CHEST)));
|
||||
$this->register(new Armor(ItemIds::GOLDEN_CHESTPLATE, 0, "Golden Chestplate", new ArmorTypeInfo(5, 113, ArmorInventory::SLOT_CHEST)));
|
||||
$this->register(new Armor(ItemIds::IRON_CHESTPLATE, 0, "Iron Chestplate", new ArmorTypeInfo(6, 241, ArmorInventory::SLOT_CHEST)));
|
||||
$this->register(new Armor(ItemIds::LEATHER_CHESTPLATE, 0, "Leather Tunic", new ArmorTypeInfo(3, 81, ArmorInventory::SLOT_CHEST)));
|
||||
$this->register(new Armor(ItemIds::CHAIN_HELMET, 0, "Chainmail Helmet", new ArmorTypeInfo(2, 166, ArmorInventory::SLOT_HEAD)));
|
||||
$this->register(new Armor(ItemIds::DIAMOND_HELMET, 0, "Diamond Helmet", new ArmorTypeInfo(3, 364, ArmorInventory::SLOT_HEAD)));
|
||||
$this->register(new Armor(ItemIds::GOLDEN_HELMET, 0, "Golden Helmet", new ArmorTypeInfo(2, 78, ArmorInventory::SLOT_HEAD)));
|
||||
$this->register(new Armor(ItemIds::IRON_HELMET, 0, "Iron Helmet", new ArmorTypeInfo(2, 166, ArmorInventory::SLOT_HEAD)));
|
||||
$this->register(new Armor(ItemIds::LEATHER_HELMET, 0, "Leather Cap", new ArmorTypeInfo(1, 56, ArmorInventory::SLOT_HEAD)));
|
||||
$this->register(new Armor(ItemIds::CHAIN_LEGGINGS, 0, "Chainmail Leggings", new ArmorTypeInfo(4, 226, ArmorInventory::SLOT_LEGS)));
|
||||
$this->register(new Armor(ItemIds::DIAMOND_LEGGINGS, 0, "Diamond Leggings", new ArmorTypeInfo(6, 496, ArmorInventory::SLOT_LEGS)));
|
||||
$this->register(new Armor(ItemIds::GOLDEN_LEGGINGS, 0, "Golden Leggings", new ArmorTypeInfo(3, 106, ArmorInventory::SLOT_LEGS)));
|
||||
$this->register(new Armor(ItemIds::IRON_LEGGINGS, 0, "Iron Leggings", new ArmorTypeInfo(5, 226, ArmorInventory::SLOT_LEGS)));
|
||||
$this->register(new Armor(ItemIds::LEATHER_LEGGINGS, 0, "Leather Pants", new ArmorTypeInfo(2, 76, ArmorInventory::SLOT_LEGS)));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -384,15 +391,15 @@ class ItemFactory{
|
||||
* @throws \RuntimeException if something attempted to override an already-registered item without specifying the
|
||||
* $override parameter.
|
||||
*/
|
||||
public static function register(Item $item, bool $override = false) : void{
|
||||
public function register(Item $item, bool $override = false) : void{
|
||||
$id = $item->getId();
|
||||
$variant = $item->getMeta();
|
||||
|
||||
if(!$override and self::isRegistered($id, $variant)){
|
||||
if(!$override and $this->isRegistered($id, $variant)){
|
||||
throw new \RuntimeException("Trying to overwrite an already registered item");
|
||||
}
|
||||
|
||||
self::$list[self::getListOffset($id, $variant)] = clone $item;
|
||||
$this->list[self::getListOffset($id, $variant)] = clone $item;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -400,15 +407,15 @@ class ItemFactory{
|
||||
*
|
||||
* @throws \InvalidArgumentException
|
||||
*/
|
||||
public static function get(int $id, int $meta = 0, int $count = 1, ?CompoundTag $tags = null) : Item{
|
||||
public function get(int $id, int $meta = 0, int $count = 1, ?CompoundTag $tags = null) : Item{
|
||||
/** @var Item|null $item */
|
||||
$item = null;
|
||||
if($meta !== -1){
|
||||
if(isset(self::$list[$offset = self::getListOffset($id, $meta)])){
|
||||
$item = clone self::$list[$offset];
|
||||
}elseif(isset(self::$list[$zero = self::getListOffset($id, 0)]) and self::$list[$zero] instanceof Durable){
|
||||
if(isset($this->list[$offset = self::getListOffset($id, $meta)])){
|
||||
$item = clone $this->list[$offset];
|
||||
}elseif(isset($this->list[$zero = self::getListOffset($id, 0)]) and $this->list[$zero] instanceof Durable){
|
||||
/** @var Durable $item */
|
||||
$item = clone self::$list[$zero];
|
||||
$item = clone $this->list[$zero];
|
||||
$item->setDamage($meta);
|
||||
}elseif($id < 256){ //intentionally includes negatives, for extended block IDs
|
||||
$item = new ItemBlock($id, $meta);
|
||||
@ -437,7 +444,7 @@ class ItemFactory{
|
||||
*
|
||||
* @throws \InvalidArgumentException if the given string cannot be parsed as an item identifier
|
||||
*/
|
||||
public static function fromString(string $str) : Item{
|
||||
public function fromString(string $str) : Item{
|
||||
$b = explode(":", str_replace([" ", "minecraft:"], ["_", ""], trim($str)));
|
||||
if(!isset($b[1])){
|
||||
$meta = 0;
|
||||
@ -448,9 +455,9 @@ class ItemFactory{
|
||||
}
|
||||
|
||||
if(is_numeric($b[0])){
|
||||
$item = self::get((int) $b[0], $meta);
|
||||
$item = $this->get((int) $b[0], $meta);
|
||||
}elseif(defined(ItemIds::class . "::" . strtoupper($b[0]))){
|
||||
$item = self::get(constant(ItemIds::class . "::" . strtoupper($b[0])), $meta);
|
||||
$item = $this->get(constant(ItemIds::class . "::" . strtoupper($b[0])), $meta);
|
||||
}else{
|
||||
throw new \InvalidArgumentException("Unable to resolve \"" . $str . "\" to a valid item");
|
||||
}
|
||||
@ -459,18 +466,18 @@ class ItemFactory{
|
||||
}
|
||||
|
||||
public static function air() : Item{
|
||||
return self::$air ?? (self::$air = self::get(ItemIds::AIR, 0, 0));
|
||||
return self::$air ?? (self::$air = self::getInstance()->get(ItemIds::AIR, 0, 0));
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns whether the specified item ID is already registered in the item factory.
|
||||
*/
|
||||
public static function isRegistered(int $id, int $variant = 0) : bool{
|
||||
public function isRegistered(int $id, int $variant = 0) : bool{
|
||||
if($id < 256){
|
||||
return BlockFactory::getInstance()->isRegistered($id);
|
||||
}
|
||||
|
||||
return isset(self::$list[self::getListOffset($id, $variant)]);
|
||||
return isset($this->list[self::getListOffset($id, $variant)]);
|
||||
}
|
||||
|
||||
private static function getListOffset(int $id, int $variant) : int{
|
||||
@ -483,7 +490,7 @@ class ItemFactory{
|
||||
/**
|
||||
* @return Item[]
|
||||
*/
|
||||
public static function getAllRegistered() : array{
|
||||
return self::$list;
|
||||
public function getAllRegistered() : array{
|
||||
return $this->list;
|
||||
}
|
||||
}
|
||||
|
@ -316,263 +316,264 @@ final class VanillaItems{
|
||||
}
|
||||
|
||||
protected static function setup() : void{
|
||||
self::register("acacia_boat", ItemFactory::get(333, 4));
|
||||
self::register("apple", ItemFactory::get(260));
|
||||
self::register("arrow", ItemFactory::get(262));
|
||||
self::register("baked_potato", ItemFactory::get(393));
|
||||
self::register("beetroot", ItemFactory::get(457));
|
||||
self::register("beetroot_seeds", ItemFactory::get(458));
|
||||
self::register("beetroot_soup", ItemFactory::get(459));
|
||||
self::register("birch_boat", ItemFactory::get(333, 2));
|
||||
self::register("black_banner", ItemFactory::get(446));
|
||||
self::register("black_bed", ItemFactory::get(355, 15));
|
||||
self::register("black_dye", ItemFactory::get(351, 16));
|
||||
self::register("blaze_powder", ItemFactory::get(377));
|
||||
self::register("blaze_rod", ItemFactory::get(369));
|
||||
self::register("bleach", ItemFactory::get(451));
|
||||
self::register("blue_banner", ItemFactory::get(446, 4));
|
||||
self::register("blue_bed", ItemFactory::get(355, 11));
|
||||
self::register("blue_dye", ItemFactory::get(351, 18));
|
||||
self::register("bone", ItemFactory::get(352));
|
||||
self::register("bone_meal", ItemFactory::get(351, 15));
|
||||
self::register("book", ItemFactory::get(340));
|
||||
self::register("bow", ItemFactory::get(261));
|
||||
self::register("bowl", ItemFactory::get(281));
|
||||
self::register("bread", ItemFactory::get(297));
|
||||
self::register("brick", ItemFactory::get(336));
|
||||
self::register("brown_banner", ItemFactory::get(446, 3));
|
||||
self::register("brown_bed", ItemFactory::get(355, 12));
|
||||
self::register("brown_dye", ItemFactory::get(351, 17));
|
||||
self::register("bucket", ItemFactory::get(325));
|
||||
self::register("cake", ItemFactory::get(354));
|
||||
self::register("carrot", ItemFactory::get(391));
|
||||
self::register("chainmail_boots", ItemFactory::get(305));
|
||||
self::register("chainmail_chestplate", ItemFactory::get(303));
|
||||
self::register("chainmail_helmet", ItemFactory::get(302));
|
||||
self::register("chainmail_leggings", ItemFactory::get(304));
|
||||
self::register("charcoal", ItemFactory::get(263, 1));
|
||||
self::register("chemical_aluminium_oxide", ItemFactory::get(499, 13));
|
||||
self::register("chemical_ammonia", ItemFactory::get(499, 36));
|
||||
self::register("chemical_barium_sulphate", ItemFactory::get(499, 20));
|
||||
self::register("chemical_benzene", ItemFactory::get(499, 33));
|
||||
self::register("chemical_boron_trioxide", ItemFactory::get(499, 14));
|
||||
self::register("chemical_calcium_bromide", ItemFactory::get(499, 7));
|
||||
self::register("chemical_calcium_chloride", ItemFactory::get(499, 25));
|
||||
self::register("chemical_cerium_chloride", ItemFactory::get(499, 23));
|
||||
self::register("chemical_charcoal", ItemFactory::get(499, 11));
|
||||
self::register("chemical_crude_oil", ItemFactory::get(499, 29));
|
||||
self::register("chemical_glue", ItemFactory::get(499, 27));
|
||||
self::register("chemical_hydrogen_peroxide", ItemFactory::get(499, 35));
|
||||
self::register("chemical_hypochlorite", ItemFactory::get(499, 28));
|
||||
self::register("chemical_ink", ItemFactory::get(499, 34));
|
||||
self::register("chemical_iron_sulphide", ItemFactory::get(499, 4));
|
||||
self::register("chemical_latex", ItemFactory::get(499, 30));
|
||||
self::register("chemical_lithium_hydride", ItemFactory::get(499, 5));
|
||||
self::register("chemical_luminol", ItemFactory::get(499, 10));
|
||||
self::register("chemical_magnesium_nitrate", ItemFactory::get(499, 3));
|
||||
self::register("chemical_magnesium_oxide", ItemFactory::get(499, 8));
|
||||
self::register("chemical_magnesium_salts", ItemFactory::get(499, 18));
|
||||
self::register("chemical_mercuric_chloride", ItemFactory::get(499, 22));
|
||||
self::register("chemical_polyethylene", ItemFactory::get(499, 16));
|
||||
self::register("chemical_potassium_chloride", ItemFactory::get(499, 21));
|
||||
self::register("chemical_potassium_iodide", ItemFactory::get(499, 31));
|
||||
self::register("chemical_rubbish", ItemFactory::get(499, 17));
|
||||
self::register("chemical_salt", ItemFactory::get(499));
|
||||
self::register("chemical_soap", ItemFactory::get(499, 15));
|
||||
self::register("chemical_sodium_acetate", ItemFactory::get(499, 9));
|
||||
self::register("chemical_sodium_fluoride", ItemFactory::get(499, 32));
|
||||
self::register("chemical_sodium_hydride", ItemFactory::get(499, 6));
|
||||
self::register("chemical_sodium_hydroxide", ItemFactory::get(499, 2));
|
||||
self::register("chemical_sodium_hypochlorite", ItemFactory::get(499, 37));
|
||||
self::register("chemical_sodium_oxide", ItemFactory::get(499, 1));
|
||||
self::register("chemical_sugar", ItemFactory::get(499, 12));
|
||||
self::register("chemical_sulphate", ItemFactory::get(499, 19));
|
||||
self::register("chemical_tungsten_chloride", ItemFactory::get(499, 24));
|
||||
self::register("chemical_water", ItemFactory::get(499, 26));
|
||||
self::register("chorus_fruit", ItemFactory::get(432));
|
||||
self::register("clay", ItemFactory::get(337));
|
||||
self::register("clock", ItemFactory::get(347));
|
||||
self::register("clownfish", ItemFactory::get(461));
|
||||
self::register("coal", ItemFactory::get(263));
|
||||
self::register("cocoa_beans", ItemFactory::get(351, 3));
|
||||
self::register("compass", ItemFactory::get(345));
|
||||
self::register("cooked_chicken", ItemFactory::get(366));
|
||||
self::register("cooked_fish", ItemFactory::get(350));
|
||||
self::register("cooked_mutton", ItemFactory::get(424));
|
||||
self::register("cooked_porkchop", ItemFactory::get(320));
|
||||
self::register("cooked_rabbit", ItemFactory::get(412));
|
||||
self::register("cooked_salmon", ItemFactory::get(463));
|
||||
self::register("cookie", ItemFactory::get(357));
|
||||
self::register("creeper_head", ItemFactory::get(397, 4));
|
||||
self::register("cyan_banner", ItemFactory::get(446, 6));
|
||||
self::register("cyan_bed", ItemFactory::get(355, 9));
|
||||
self::register("cyan_dye", ItemFactory::get(351, 6));
|
||||
self::register("dark_oak_boat", ItemFactory::get(333, 5));
|
||||
self::register("diamond", ItemFactory::get(264));
|
||||
self::register("diamond_axe", ItemFactory::get(279));
|
||||
self::register("diamond_boots", ItemFactory::get(313));
|
||||
self::register("diamond_chestplate", ItemFactory::get(311));
|
||||
self::register("diamond_helmet", ItemFactory::get(310));
|
||||
self::register("diamond_hoe", ItemFactory::get(293));
|
||||
self::register("diamond_leggings", ItemFactory::get(312));
|
||||
self::register("diamond_pickaxe", ItemFactory::get(278));
|
||||
self::register("diamond_shovel", ItemFactory::get(277));
|
||||
self::register("diamond_sword", ItemFactory::get(276));
|
||||
self::register("dragon_breath", ItemFactory::get(437));
|
||||
self::register("dragon_head", ItemFactory::get(397, 5));
|
||||
self::register("dried_kelp", ItemFactory::get(464));
|
||||
self::register("egg", ItemFactory::get(344));
|
||||
self::register("emerald", ItemFactory::get(388));
|
||||
self::register("enchanted_golden_apple", ItemFactory::get(466));
|
||||
self::register("ender_pearl", ItemFactory::get(368));
|
||||
self::register("experience_bottle", ItemFactory::get(384));
|
||||
self::register("feather", ItemFactory::get(288));
|
||||
self::register("fermented_spider_eye", ItemFactory::get(376));
|
||||
self::register("fishing_rod", ItemFactory::get(346));
|
||||
self::register("flint", ItemFactory::get(318));
|
||||
self::register("flint_and_steel", ItemFactory::get(259));
|
||||
self::register("ghast_tear", ItemFactory::get(370));
|
||||
self::register("glass_bottle", ItemFactory::get(374));
|
||||
self::register("glistering_melon", ItemFactory::get(382));
|
||||
self::register("glowstone_dust", ItemFactory::get(348));
|
||||
self::register("gold_ingot", ItemFactory::get(266));
|
||||
self::register("gold_nugget", ItemFactory::get(371));
|
||||
self::register("golden_apple", ItemFactory::get(322));
|
||||
self::register("golden_axe", ItemFactory::get(286));
|
||||
self::register("golden_boots", ItemFactory::get(317));
|
||||
self::register("golden_carrot", ItemFactory::get(396));
|
||||
self::register("golden_chestplate", ItemFactory::get(315));
|
||||
self::register("golden_helmet", ItemFactory::get(314));
|
||||
self::register("golden_hoe", ItemFactory::get(294));
|
||||
self::register("golden_leggings", ItemFactory::get(316));
|
||||
self::register("golden_pickaxe", ItemFactory::get(285));
|
||||
self::register("golden_shovel", ItemFactory::get(284));
|
||||
self::register("golden_sword", ItemFactory::get(283));
|
||||
self::register("gray_banner", ItemFactory::get(446, 8));
|
||||
self::register("gray_bed", ItemFactory::get(355, 7));
|
||||
self::register("gray_dye", ItemFactory::get(351, 8));
|
||||
self::register("green_banner", ItemFactory::get(446, 2));
|
||||
self::register("green_bed", ItemFactory::get(355, 13));
|
||||
self::register("green_dye", ItemFactory::get(351, 2));
|
||||
self::register("gunpowder", ItemFactory::get(289));
|
||||
self::register("heart_of_the_sea", ItemFactory::get(467));
|
||||
self::register("ink_sac", ItemFactory::get(351));
|
||||
self::register("iron_axe", ItemFactory::get(258));
|
||||
self::register("iron_boots", ItemFactory::get(309));
|
||||
self::register("iron_chestplate", ItemFactory::get(307));
|
||||
self::register("iron_helmet", ItemFactory::get(306));
|
||||
self::register("iron_hoe", ItemFactory::get(292));
|
||||
self::register("iron_ingot", ItemFactory::get(265));
|
||||
self::register("iron_leggings", ItemFactory::get(308));
|
||||
self::register("iron_nugget", ItemFactory::get(452));
|
||||
self::register("iron_pickaxe", ItemFactory::get(257));
|
||||
self::register("iron_shovel", ItemFactory::get(256));
|
||||
self::register("iron_sword", ItemFactory::get(267));
|
||||
self::register("jungle_boat", ItemFactory::get(333, 3));
|
||||
self::register("lapis_lazuli", ItemFactory::get(351, 4));
|
||||
self::register("lava_bucket", ItemFactory::get(325, 10));
|
||||
self::register("leather", ItemFactory::get(334));
|
||||
self::register("leather_boots", ItemFactory::get(301));
|
||||
self::register("leather_cap", ItemFactory::get(298));
|
||||
self::register("leather_pants", ItemFactory::get(300));
|
||||
self::register("leather_tunic", ItemFactory::get(299));
|
||||
self::register("light_blue_banner", ItemFactory::get(446, 12));
|
||||
self::register("light_blue_bed", ItemFactory::get(355, 3));
|
||||
self::register("light_blue_dye", ItemFactory::get(351, 12));
|
||||
self::register("light_gray_banner", ItemFactory::get(446, 7));
|
||||
self::register("light_gray_bed", ItemFactory::get(355, 8));
|
||||
self::register("light_gray_dye", ItemFactory::get(351, 7));
|
||||
self::register("lime_banner", ItemFactory::get(446, 10));
|
||||
self::register("lime_bed", ItemFactory::get(355, 5));
|
||||
self::register("lime_dye", ItemFactory::get(351, 10));
|
||||
self::register("magenta_banner", ItemFactory::get(446, 13));
|
||||
self::register("magenta_bed", ItemFactory::get(355, 2));
|
||||
self::register("magenta_dye", ItemFactory::get(351, 13));
|
||||
self::register("magma_cream", ItemFactory::get(378));
|
||||
self::register("melon", ItemFactory::get(360));
|
||||
self::register("melon_seeds", ItemFactory::get(362));
|
||||
self::register("milk_bucket", ItemFactory::get(325, 1));
|
||||
self::register("minecart", ItemFactory::get(328));
|
||||
self::register("mushroom_stew", ItemFactory::get(282));
|
||||
self::register("nautilus_shell", ItemFactory::get(465));
|
||||
self::register("nether_brick", ItemFactory::get(405));
|
||||
self::register("nether_quartz", ItemFactory::get(406));
|
||||
self::register("nether_star", ItemFactory::get(399));
|
||||
self::register("nether_wart", ItemFactory::get(372));
|
||||
self::register("oak_boat", ItemFactory::get(333));
|
||||
self::register("orange_banner", ItemFactory::get(446, 14));
|
||||
self::register("orange_bed", ItemFactory::get(355, 1));
|
||||
self::register("orange_dye", ItemFactory::get(351, 14));
|
||||
self::register("painting", ItemFactory::get(321));
|
||||
self::register("paper", ItemFactory::get(339));
|
||||
self::register("pink_banner", ItemFactory::get(446, 9));
|
||||
self::register("pink_bed", ItemFactory::get(355, 6));
|
||||
self::register("pink_dye", ItemFactory::get(351, 9));
|
||||
self::register("player_head", ItemFactory::get(397, 3));
|
||||
self::register("poisonous_potato", ItemFactory::get(394));
|
||||
self::register("popped_chorus_fruit", ItemFactory::get(433));
|
||||
self::register("potato", ItemFactory::get(392));
|
||||
self::register("potion", ItemFactory::get(373));
|
||||
self::register("prismarine_crystals", ItemFactory::get(422));
|
||||
self::register("prismarine_shard", ItemFactory::get(409));
|
||||
self::register("pufferfish", ItemFactory::get(462));
|
||||
self::register("pumpkin_pie", ItemFactory::get(400));
|
||||
self::register("pumpkin_seeds", ItemFactory::get(361));
|
||||
self::register("purple_banner", ItemFactory::get(446, 5));
|
||||
self::register("purple_bed", ItemFactory::get(355, 10));
|
||||
self::register("purple_dye", ItemFactory::get(351, 5));
|
||||
self::register("rabbit_foot", ItemFactory::get(414));
|
||||
self::register("rabbit_hide", ItemFactory::get(415));
|
||||
self::register("rabbit_stew", ItemFactory::get(413));
|
||||
self::register("raw_beef", ItemFactory::get(363));
|
||||
self::register("raw_chicken", ItemFactory::get(365));
|
||||
self::register("raw_fish", ItemFactory::get(349));
|
||||
self::register("raw_mutton", ItemFactory::get(423));
|
||||
self::register("raw_porkchop", ItemFactory::get(319));
|
||||
self::register("raw_rabbit", ItemFactory::get(411));
|
||||
self::register("raw_salmon", ItemFactory::get(460));
|
||||
self::register("red_banner", ItemFactory::get(446, 1));
|
||||
self::register("red_bed", ItemFactory::get(355, 14));
|
||||
self::register("red_dye", ItemFactory::get(351, 1));
|
||||
self::register("redstone_dust", ItemFactory::get(331));
|
||||
self::register("rotten_flesh", ItemFactory::get(367));
|
||||
self::register("scute", ItemFactory::get(468));
|
||||
self::register("shears", ItemFactory::get(359));
|
||||
self::register("shulker_shell", ItemFactory::get(445));
|
||||
self::register("skeleton_skull", ItemFactory::get(397));
|
||||
self::register("slimeball", ItemFactory::get(341));
|
||||
self::register("snowball", ItemFactory::get(332));
|
||||
self::register("spider_eye", ItemFactory::get(375));
|
||||
self::register("splash_potion", ItemFactory::get(438));
|
||||
self::register("spruce_boat", ItemFactory::get(333, 1));
|
||||
self::register("steak", ItemFactory::get(364));
|
||||
self::register("stick", ItemFactory::get(280));
|
||||
self::register("stone_axe", ItemFactory::get(275));
|
||||
self::register("stone_hoe", ItemFactory::get(291));
|
||||
self::register("stone_pickaxe", ItemFactory::get(274));
|
||||
self::register("stone_shovel", ItemFactory::get(273));
|
||||
self::register("stone_sword", ItemFactory::get(272));
|
||||
self::register("string", ItemFactory::get(287));
|
||||
self::register("sugar", ItemFactory::get(353));
|
||||
self::register("sugarcane", ItemFactory::get(338));
|
||||
self::register("totem", ItemFactory::get(450));
|
||||
self::register("water_bucket", ItemFactory::get(325, 8));
|
||||
self::register("wheat", ItemFactory::get(296));
|
||||
self::register("wheat_seeds", ItemFactory::get(295));
|
||||
self::register("white_banner", ItemFactory::get(446, 15));
|
||||
self::register("white_bed", ItemFactory::get(355));
|
||||
self::register("white_dye", ItemFactory::get(351, 19));
|
||||
self::register("wither_skeleton_skull", ItemFactory::get(397, 1));
|
||||
self::register("wooden_axe", ItemFactory::get(271));
|
||||
self::register("wooden_hoe", ItemFactory::get(290));
|
||||
self::register("wooden_pickaxe", ItemFactory::get(270));
|
||||
self::register("wooden_shovel", ItemFactory::get(269));
|
||||
self::register("wooden_sword", ItemFactory::get(268));
|
||||
self::register("writable_book", ItemFactory::get(386));
|
||||
self::register("written_book", ItemFactory::get(387));
|
||||
self::register("yellow_banner", ItemFactory::get(446, 11));
|
||||
self::register("yellow_bed", ItemFactory::get(355, 4));
|
||||
self::register("yellow_dye", ItemFactory::get(351, 11));
|
||||
self::register("zombie_head", ItemFactory::get(397, 2));
|
||||
$factory = ItemFactory::getInstance();
|
||||
self::register("acacia_boat", $factory->get(333, 4));
|
||||
self::register("apple", $factory->get(260));
|
||||
self::register("arrow", $factory->get(262));
|
||||
self::register("baked_potato", $factory->get(393));
|
||||
self::register("beetroot", $factory->get(457));
|
||||
self::register("beetroot_seeds", $factory->get(458));
|
||||
self::register("beetroot_soup", $factory->get(459));
|
||||
self::register("birch_boat", $factory->get(333, 2));
|
||||
self::register("black_banner", $factory->get(446));
|
||||
self::register("black_bed", $factory->get(355, 15));
|
||||
self::register("black_dye", $factory->get(351, 16));
|
||||
self::register("blaze_powder", $factory->get(377));
|
||||
self::register("blaze_rod", $factory->get(369));
|
||||
self::register("bleach", $factory->get(451));
|
||||
self::register("blue_banner", $factory->get(446, 4));
|
||||
self::register("blue_bed", $factory->get(355, 11));
|
||||
self::register("blue_dye", $factory->get(351, 18));
|
||||
self::register("bone", $factory->get(352));
|
||||
self::register("bone_meal", $factory->get(351, 15));
|
||||
self::register("book", $factory->get(340));
|
||||
self::register("bow", $factory->get(261));
|
||||
self::register("bowl", $factory->get(281));
|
||||
self::register("bread", $factory->get(297));
|
||||
self::register("brick", $factory->get(336));
|
||||
self::register("brown_banner", $factory->get(446, 3));
|
||||
self::register("brown_bed", $factory->get(355, 12));
|
||||
self::register("brown_dye", $factory->get(351, 17));
|
||||
self::register("bucket", $factory->get(325));
|
||||
self::register("cake", $factory->get(354));
|
||||
self::register("carrot", $factory->get(391));
|
||||
self::register("chainmail_boots", $factory->get(305));
|
||||
self::register("chainmail_chestplate", $factory->get(303));
|
||||
self::register("chainmail_helmet", $factory->get(302));
|
||||
self::register("chainmail_leggings", $factory->get(304));
|
||||
self::register("charcoal", $factory->get(263, 1));
|
||||
self::register("chemical_aluminium_oxide", $factory->get(499, 13));
|
||||
self::register("chemical_ammonia", $factory->get(499, 36));
|
||||
self::register("chemical_barium_sulphate", $factory->get(499, 20));
|
||||
self::register("chemical_benzene", $factory->get(499, 33));
|
||||
self::register("chemical_boron_trioxide", $factory->get(499, 14));
|
||||
self::register("chemical_calcium_bromide", $factory->get(499, 7));
|
||||
self::register("chemical_calcium_chloride", $factory->get(499, 25));
|
||||
self::register("chemical_cerium_chloride", $factory->get(499, 23));
|
||||
self::register("chemical_charcoal", $factory->get(499, 11));
|
||||
self::register("chemical_crude_oil", $factory->get(499, 29));
|
||||
self::register("chemical_glue", $factory->get(499, 27));
|
||||
self::register("chemical_hydrogen_peroxide", $factory->get(499, 35));
|
||||
self::register("chemical_hypochlorite", $factory->get(499, 28));
|
||||
self::register("chemical_ink", $factory->get(499, 34));
|
||||
self::register("chemical_iron_sulphide", $factory->get(499, 4));
|
||||
self::register("chemical_latex", $factory->get(499, 30));
|
||||
self::register("chemical_lithium_hydride", $factory->get(499, 5));
|
||||
self::register("chemical_luminol", $factory->get(499, 10));
|
||||
self::register("chemical_magnesium_nitrate", $factory->get(499, 3));
|
||||
self::register("chemical_magnesium_oxide", $factory->get(499, 8));
|
||||
self::register("chemical_magnesium_salts", $factory->get(499, 18));
|
||||
self::register("chemical_mercuric_chloride", $factory->get(499, 22));
|
||||
self::register("chemical_polyethylene", $factory->get(499, 16));
|
||||
self::register("chemical_potassium_chloride", $factory->get(499, 21));
|
||||
self::register("chemical_potassium_iodide", $factory->get(499, 31));
|
||||
self::register("chemical_rubbish", $factory->get(499, 17));
|
||||
self::register("chemical_salt", $factory->get(499));
|
||||
self::register("chemical_soap", $factory->get(499, 15));
|
||||
self::register("chemical_sodium_acetate", $factory->get(499, 9));
|
||||
self::register("chemical_sodium_fluoride", $factory->get(499, 32));
|
||||
self::register("chemical_sodium_hydride", $factory->get(499, 6));
|
||||
self::register("chemical_sodium_hydroxide", $factory->get(499, 2));
|
||||
self::register("chemical_sodium_hypochlorite", $factory->get(499, 37));
|
||||
self::register("chemical_sodium_oxide", $factory->get(499, 1));
|
||||
self::register("chemical_sugar", $factory->get(499, 12));
|
||||
self::register("chemical_sulphate", $factory->get(499, 19));
|
||||
self::register("chemical_tungsten_chloride", $factory->get(499, 24));
|
||||
self::register("chemical_water", $factory->get(499, 26));
|
||||
self::register("chorus_fruit", $factory->get(432));
|
||||
self::register("clay", $factory->get(337));
|
||||
self::register("clock", $factory->get(347));
|
||||
self::register("clownfish", $factory->get(461));
|
||||
self::register("coal", $factory->get(263));
|
||||
self::register("cocoa_beans", $factory->get(351, 3));
|
||||
self::register("compass", $factory->get(345));
|
||||
self::register("cooked_chicken", $factory->get(366));
|
||||
self::register("cooked_fish", $factory->get(350));
|
||||
self::register("cooked_mutton", $factory->get(424));
|
||||
self::register("cooked_porkchop", $factory->get(320));
|
||||
self::register("cooked_rabbit", $factory->get(412));
|
||||
self::register("cooked_salmon", $factory->get(463));
|
||||
self::register("cookie", $factory->get(357));
|
||||
self::register("creeper_head", $factory->get(397, 4));
|
||||
self::register("cyan_banner", $factory->get(446, 6));
|
||||
self::register("cyan_bed", $factory->get(355, 9));
|
||||
self::register("cyan_dye", $factory->get(351, 6));
|
||||
self::register("dark_oak_boat", $factory->get(333, 5));
|
||||
self::register("diamond", $factory->get(264));
|
||||
self::register("diamond_axe", $factory->get(279));
|
||||
self::register("diamond_boots", $factory->get(313));
|
||||
self::register("diamond_chestplate", $factory->get(311));
|
||||
self::register("diamond_helmet", $factory->get(310));
|
||||
self::register("diamond_hoe", $factory->get(293));
|
||||
self::register("diamond_leggings", $factory->get(312));
|
||||
self::register("diamond_pickaxe", $factory->get(278));
|
||||
self::register("diamond_shovel", $factory->get(277));
|
||||
self::register("diamond_sword", $factory->get(276));
|
||||
self::register("dragon_breath", $factory->get(437));
|
||||
self::register("dragon_head", $factory->get(397, 5));
|
||||
self::register("dried_kelp", $factory->get(464));
|
||||
self::register("egg", $factory->get(344));
|
||||
self::register("emerald", $factory->get(388));
|
||||
self::register("enchanted_golden_apple", $factory->get(466));
|
||||
self::register("ender_pearl", $factory->get(368));
|
||||
self::register("experience_bottle", $factory->get(384));
|
||||
self::register("feather", $factory->get(288));
|
||||
self::register("fermented_spider_eye", $factory->get(376));
|
||||
self::register("fishing_rod", $factory->get(346));
|
||||
self::register("flint", $factory->get(318));
|
||||
self::register("flint_and_steel", $factory->get(259));
|
||||
self::register("ghast_tear", $factory->get(370));
|
||||
self::register("glass_bottle", $factory->get(374));
|
||||
self::register("glistering_melon", $factory->get(382));
|
||||
self::register("glowstone_dust", $factory->get(348));
|
||||
self::register("gold_ingot", $factory->get(266));
|
||||
self::register("gold_nugget", $factory->get(371));
|
||||
self::register("golden_apple", $factory->get(322));
|
||||
self::register("golden_axe", $factory->get(286));
|
||||
self::register("golden_boots", $factory->get(317));
|
||||
self::register("golden_carrot", $factory->get(396));
|
||||
self::register("golden_chestplate", $factory->get(315));
|
||||
self::register("golden_helmet", $factory->get(314));
|
||||
self::register("golden_hoe", $factory->get(294));
|
||||
self::register("golden_leggings", $factory->get(316));
|
||||
self::register("golden_pickaxe", $factory->get(285));
|
||||
self::register("golden_shovel", $factory->get(284));
|
||||
self::register("golden_sword", $factory->get(283));
|
||||
self::register("gray_banner", $factory->get(446, 8));
|
||||
self::register("gray_bed", $factory->get(355, 7));
|
||||
self::register("gray_dye", $factory->get(351, 8));
|
||||
self::register("green_banner", $factory->get(446, 2));
|
||||
self::register("green_bed", $factory->get(355, 13));
|
||||
self::register("green_dye", $factory->get(351, 2));
|
||||
self::register("gunpowder", $factory->get(289));
|
||||
self::register("heart_of_the_sea", $factory->get(467));
|
||||
self::register("ink_sac", $factory->get(351));
|
||||
self::register("iron_axe", $factory->get(258));
|
||||
self::register("iron_boots", $factory->get(309));
|
||||
self::register("iron_chestplate", $factory->get(307));
|
||||
self::register("iron_helmet", $factory->get(306));
|
||||
self::register("iron_hoe", $factory->get(292));
|
||||
self::register("iron_ingot", $factory->get(265));
|
||||
self::register("iron_leggings", $factory->get(308));
|
||||
self::register("iron_nugget", $factory->get(452));
|
||||
self::register("iron_pickaxe", $factory->get(257));
|
||||
self::register("iron_shovel", $factory->get(256));
|
||||
self::register("iron_sword", $factory->get(267));
|
||||
self::register("jungle_boat", $factory->get(333, 3));
|
||||
self::register("lapis_lazuli", $factory->get(351, 4));
|
||||
self::register("lava_bucket", $factory->get(325, 10));
|
||||
self::register("leather", $factory->get(334));
|
||||
self::register("leather_boots", $factory->get(301));
|
||||
self::register("leather_cap", $factory->get(298));
|
||||
self::register("leather_pants", $factory->get(300));
|
||||
self::register("leather_tunic", $factory->get(299));
|
||||
self::register("light_blue_banner", $factory->get(446, 12));
|
||||
self::register("light_blue_bed", $factory->get(355, 3));
|
||||
self::register("light_blue_dye", $factory->get(351, 12));
|
||||
self::register("light_gray_banner", $factory->get(446, 7));
|
||||
self::register("light_gray_bed", $factory->get(355, 8));
|
||||
self::register("light_gray_dye", $factory->get(351, 7));
|
||||
self::register("lime_banner", $factory->get(446, 10));
|
||||
self::register("lime_bed", $factory->get(355, 5));
|
||||
self::register("lime_dye", $factory->get(351, 10));
|
||||
self::register("magenta_banner", $factory->get(446, 13));
|
||||
self::register("magenta_bed", $factory->get(355, 2));
|
||||
self::register("magenta_dye", $factory->get(351, 13));
|
||||
self::register("magma_cream", $factory->get(378));
|
||||
self::register("melon", $factory->get(360));
|
||||
self::register("melon_seeds", $factory->get(362));
|
||||
self::register("milk_bucket", $factory->get(325, 1));
|
||||
self::register("minecart", $factory->get(328));
|
||||
self::register("mushroom_stew", $factory->get(282));
|
||||
self::register("nautilus_shell", $factory->get(465));
|
||||
self::register("nether_brick", $factory->get(405));
|
||||
self::register("nether_quartz", $factory->get(406));
|
||||
self::register("nether_star", $factory->get(399));
|
||||
self::register("nether_wart", $factory->get(372));
|
||||
self::register("oak_boat", $factory->get(333));
|
||||
self::register("orange_banner", $factory->get(446, 14));
|
||||
self::register("orange_bed", $factory->get(355, 1));
|
||||
self::register("orange_dye", $factory->get(351, 14));
|
||||
self::register("painting", $factory->get(321));
|
||||
self::register("paper", $factory->get(339));
|
||||
self::register("pink_banner", $factory->get(446, 9));
|
||||
self::register("pink_bed", $factory->get(355, 6));
|
||||
self::register("pink_dye", $factory->get(351, 9));
|
||||
self::register("player_head", $factory->get(397, 3));
|
||||
self::register("poisonous_potato", $factory->get(394));
|
||||
self::register("popped_chorus_fruit", $factory->get(433));
|
||||
self::register("potato", $factory->get(392));
|
||||
self::register("potion", $factory->get(373));
|
||||
self::register("prismarine_crystals", $factory->get(422));
|
||||
self::register("prismarine_shard", $factory->get(409));
|
||||
self::register("pufferfish", $factory->get(462));
|
||||
self::register("pumpkin_pie", $factory->get(400));
|
||||
self::register("pumpkin_seeds", $factory->get(361));
|
||||
self::register("purple_banner", $factory->get(446, 5));
|
||||
self::register("purple_bed", $factory->get(355, 10));
|
||||
self::register("purple_dye", $factory->get(351, 5));
|
||||
self::register("rabbit_foot", $factory->get(414));
|
||||
self::register("rabbit_hide", $factory->get(415));
|
||||
self::register("rabbit_stew", $factory->get(413));
|
||||
self::register("raw_beef", $factory->get(363));
|
||||
self::register("raw_chicken", $factory->get(365));
|
||||
self::register("raw_fish", $factory->get(349));
|
||||
self::register("raw_mutton", $factory->get(423));
|
||||
self::register("raw_porkchop", $factory->get(319));
|
||||
self::register("raw_rabbit", $factory->get(411));
|
||||
self::register("raw_salmon", $factory->get(460));
|
||||
self::register("red_banner", $factory->get(446, 1));
|
||||
self::register("red_bed", $factory->get(355, 14));
|
||||
self::register("red_dye", $factory->get(351, 1));
|
||||
self::register("redstone_dust", $factory->get(331));
|
||||
self::register("rotten_flesh", $factory->get(367));
|
||||
self::register("scute", $factory->get(468));
|
||||
self::register("shears", $factory->get(359));
|
||||
self::register("shulker_shell", $factory->get(445));
|
||||
self::register("skeleton_skull", $factory->get(397));
|
||||
self::register("slimeball", $factory->get(341));
|
||||
self::register("snowball", $factory->get(332));
|
||||
self::register("spider_eye", $factory->get(375));
|
||||
self::register("splash_potion", $factory->get(438));
|
||||
self::register("spruce_boat", $factory->get(333, 1));
|
||||
self::register("steak", $factory->get(364));
|
||||
self::register("stick", $factory->get(280));
|
||||
self::register("stone_axe", $factory->get(275));
|
||||
self::register("stone_hoe", $factory->get(291));
|
||||
self::register("stone_pickaxe", $factory->get(274));
|
||||
self::register("stone_shovel", $factory->get(273));
|
||||
self::register("stone_sword", $factory->get(272));
|
||||
self::register("string", $factory->get(287));
|
||||
self::register("sugar", $factory->get(353));
|
||||
self::register("sugarcane", $factory->get(338));
|
||||
self::register("totem", $factory->get(450));
|
||||
self::register("water_bucket", $factory->get(325, 8));
|
||||
self::register("wheat", $factory->get(296));
|
||||
self::register("wheat_seeds", $factory->get(295));
|
||||
self::register("white_banner", $factory->get(446, 15));
|
||||
self::register("white_bed", $factory->get(355));
|
||||
self::register("white_dye", $factory->get(351, 19));
|
||||
self::register("wither_skeleton_skull", $factory->get(397, 1));
|
||||
self::register("wooden_axe", $factory->get(271));
|
||||
self::register("wooden_hoe", $factory->get(290));
|
||||
self::register("wooden_pickaxe", $factory->get(270));
|
||||
self::register("wooden_shovel", $factory->get(269));
|
||||
self::register("wooden_sword", $factory->get(268));
|
||||
self::register("writable_book", $factory->get(386));
|
||||
self::register("written_book", $factory->get(387));
|
||||
self::register("yellow_banner", $factory->get(446, 11));
|
||||
self::register("yellow_bed", $factory->get(355, 4));
|
||||
self::register("yellow_dye", $factory->get(351, 11));
|
||||
self::register("zombie_head", $factory->get(397, 2));
|
||||
}
|
||||
}
|
||||
|
@ -70,7 +70,7 @@ class TypeConverter{
|
||||
|
||||
public function recipeIngredientToCoreItemStack(RecipeIngredient $ingredient) : Item{
|
||||
$meta = $ingredient->getMeta();
|
||||
return ItemFactory::get($ingredient->getId(), $meta === 0x7fff ? -1 : $meta, $ingredient->getCount());
|
||||
return ItemFactory::getInstance()->get($ingredient->getId(), $meta === 0x7fff ? -1 : $meta, $ingredient->getCount());
|
||||
}
|
||||
|
||||
public function coreItemStackToNet(Item $itemStack) : ItemStack{
|
||||
@ -124,7 +124,7 @@ class TypeConverter{
|
||||
}
|
||||
|
||||
end:
|
||||
return ItemFactory::get(
|
||||
return ItemFactory::getInstance()->get(
|
||||
$itemStack->getId(),
|
||||
$meta !== 0x7fff ? $meta : -1,
|
||||
$itemStack->getCount(),
|
||||
|
@ -1464,8 +1464,9 @@ class World implements ChunkManager{
|
||||
|
||||
if($player->isAdventure(true) and !$ev->isCancelled()){
|
||||
$canBreak = false;
|
||||
$itemFactory = ItemFactory::getInstance();
|
||||
foreach($item->getCanDestroy() as $v){
|
||||
$entry = ItemFactory::fromString($v);
|
||||
$entry = $itemFactory->fromString($v);
|
||||
if($entry->getBlock()->isSameType($target)){
|
||||
$canBreak = true;
|
||||
break;
|
||||
@ -1599,8 +1600,9 @@ class World implements ChunkManager{
|
||||
$ev = new BlockPlaceEvent($player, $hand, $blockReplace, $blockClicked, $item);
|
||||
if($player->isAdventure(true) and !$ev->isCancelled()){
|
||||
$canPlace = false;
|
||||
$itemFactory = ItemFactory::getInstance();
|
||||
foreach($item->getCanPlaceOn() as $v){
|
||||
$entry = ItemFactory::fromString($v);
|
||||
$entry = $itemFactory->fromString($v);
|
||||
if($entry->getBlock()->isSameType($blockClicked)){
|
||||
$canPlace = true;
|
||||
break;
|
||||
|
@ -99,6 +99,7 @@ class Flat extends Generator{
|
||||
$result = [];
|
||||
$split = array_map('\trim', explode(',', $layers));
|
||||
$y = 0;
|
||||
$itemFactory = ItemFactory::getInstance();
|
||||
foreach($split as $line){
|
||||
preg_match('#^(?:(\d+)[x|*])?(.+)$#', $line, $matches);
|
||||
if(count($matches) !== 3){
|
||||
@ -107,7 +108,7 @@ class Flat extends Generator{
|
||||
|
||||
$cnt = $matches[1] !== "" ? (int) $matches[1] : 1;
|
||||
try{
|
||||
$b = ItemFactory::fromString($matches[2])->getBlock();
|
||||
$b = $itemFactory->fromString($matches[2])->getBlock();
|
||||
}catch(\InvalidArgumentException $e){
|
||||
throw new InvalidGeneratorOptionsException("Invalid preset layer \"$line\": " . $e->getMessage(), 0, $e);
|
||||
}
|
||||
|
@ -29,16 +29,12 @@ use pocketmine\item\ItemIds;
|
||||
|
||||
class BaseInventoryTest extends TestCase{
|
||||
|
||||
public static function setUpBeforeClass() : void{
|
||||
ItemFactory::init();
|
||||
}
|
||||
|
||||
public function testAddItemDifferentUserData() : void{
|
||||
$inv = new class(1) extends BaseInventory{
|
||||
|
||||
};
|
||||
$item1 = ItemFactory::get(ItemIds::ARROW, 0, 1);
|
||||
$item2 = ItemFactory::get(ItemIds::ARROW, 0, 1)->setCustomName("TEST");
|
||||
$item1 = ItemFactory::getInstance()->get(ItemIds::ARROW, 0, 1);
|
||||
$item2 = ItemFactory::getInstance()->get(ItemIds::ARROW, 0, 1)->setCustomName("TEST");
|
||||
|
||||
$inv->addItem(clone $item1);
|
||||
self::assertFalse($inv->canAddItem($item2), "Item WITHOUT userdata should not stack with item WITH userdata");
|
||||
|
@ -28,16 +28,12 @@ use pocketmine\block\BlockFactory;
|
||||
|
||||
class ItemFactoryTest extends TestCase{
|
||||
|
||||
public function setUp() : void{
|
||||
ItemFactory::init();
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests that blocks are considered to be valid registered items
|
||||
*/
|
||||
public function testItemBlockRegistered() : void{
|
||||
for($id = 0; $id < 256; ++$id){
|
||||
self::assertEquals(BlockFactory::getInstance()->isRegistered($id), ItemFactory::isRegistered($id));
|
||||
self::assertEquals(BlockFactory::getInstance()->isRegistered($id), ItemFactory::getInstance()->isRegistered($id));
|
||||
}
|
||||
}
|
||||
|
||||
@ -64,7 +60,7 @@ class ItemFactoryTest extends TestCase{
|
||||
* @param int $meta
|
||||
*/
|
||||
public function testFromStringSingle(string $string, int $id, int $meta) : void{
|
||||
$item = ItemFactory::fromString($string);
|
||||
$item = ItemFactory::getInstance()->fromString($string);
|
||||
|
||||
self::assertEquals($id, $item->getId());
|
||||
self::assertEquals($meta, $item->getMeta());
|
||||
@ -74,10 +70,10 @@ 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::get(ItemIds::WOODEN_SWORD));
|
||||
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::get(ItemIds::WOODEN_SWORD, 1));
|
||||
self::assertInstanceOf(Sword::class, $i2 = ItemFactory::getInstance()->get(ItemIds::WOODEN_SWORD, 1));
|
||||
/** @var Sword $i2 */
|
||||
self::assertSame(1, $i2->getDamage());
|
||||
}
|
||||
|
@ -30,7 +30,6 @@ use pocketmine\item\enchantment\EnchantmentInstance;
|
||||
class ItemTest extends TestCase{
|
||||
|
||||
public static function setUpBeforeClass() : void{
|
||||
ItemFactory::init();
|
||||
Enchantment::init();
|
||||
}
|
||||
|
||||
@ -38,14 +37,14 @@ class ItemTest extends TestCase{
|
||||
private $item;
|
||||
|
||||
public function setUp() : void{
|
||||
$this->item = ItemFactory::get(ItemIds::DIAMOND_SWORD);
|
||||
$this->item = ItemFactory::getInstance()->get(ItemIds::DIAMOND_SWORD);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test for issue #1145 (items aren't considered equal after NBT serializing and deserializing
|
||||
*/
|
||||
public function testItemEquals() : void{
|
||||
$item = ItemFactory::get(ItemIds::STONE)->setCustomName("HI");
|
||||
$item = ItemFactory::getInstance()->get(ItemIds::STONE)->setCustomName("HI");
|
||||
$item2 = Item::nbtDeserialize($item->nbtSerialize());
|
||||
self::assertTrue($item2->equals($item));
|
||||
self::assertTrue($item->equals($item2));
|
||||
@ -55,7 +54,7 @@ class ItemTest extends TestCase{
|
||||
* Test that same items without NBT are considered equal
|
||||
*/
|
||||
public function testItemEqualsNoNbt() : void{
|
||||
$item1 = ItemFactory::get(ItemIds::DIAMOND_SWORD);
|
||||
$item1 = ItemFactory::getInstance()->get(ItemIds::DIAMOND_SWORD);
|
||||
$item2 = clone $item1;
|
||||
self::assertTrue($item1->equals($item2));
|
||||
}
|
||||
@ -67,7 +66,7 @@ class ItemTest extends TestCase{
|
||||
public function testItemPersistsDisplayProperties() : void{
|
||||
$lore = ["Line A", "Line B"];
|
||||
$name = "HI";
|
||||
$item = ItemFactory::get(ItemIds::DIAMOND_SWORD);
|
||||
$item = ItemFactory::getInstance()->get(ItemIds::DIAMOND_SWORD);
|
||||
$item->setCustomName($name);
|
||||
$item->setLore($lore);
|
||||
$item = Item::nbtDeserialize($item->nbtSerialize());
|
||||
|
Loading…
x
Reference in New Issue
Block a user