336 use CloningRegistryTrait;
338 private function __construct(){
342 protected static function register(
string $name,
Item $item) :
void{
343 self::_registryRegister($name, $item);
353 $result = self::_registryGetAll();
357 protected static function setup() : void{
358 self::registerArmorItems();
359 self::registerSpawnEggs();
360 self::registerTierToolItems();
361 self::registerSmithingTemplates();
363 self::register(
"air", Blocks::AIR()->asItem()->setCount(0));
365 self::register(
"acacia_sign",
new ItemBlockWallOrFloor(
new IID(Ids::ACACIA_SIGN), Blocks::ACACIA_SIGN(), Blocks::ACACIA_WALL_SIGN()));
366 self::register(
"amethyst_shard",
new Item(
new IID(Ids::AMETHYST_SHARD),
"Amethyst Shard"));
367 self::register(
"apple",
new Apple(
new IID(Ids::APPLE),
"Apple"));
368 self::register(
"arrow",
new Arrow(
new IID(Ids::ARROW),
"Arrow"));
369 self::register(
"baked_potato",
new BakedPotato(
new IID(Ids::BAKED_POTATO),
"Baked Potato"));
370 self::register(
"bamboo",
new Bamboo(
new IID(Ids::BAMBOO),
"Bamboo"));
371 self::register(
"banner",
new Banner(
new IID(Ids::BANNER), Blocks::BANNER(), Blocks::WALL_BANNER()));
372 self::register(
"beetroot",
new Beetroot(
new IID(Ids::BEETROOT),
"Beetroot"));
373 self::register(
"beetroot_seeds",
new BeetrootSeeds(
new IID(Ids::BEETROOT_SEEDS),
"Beetroot Seeds"));
374 self::register(
"beetroot_soup",
new BeetrootSoup(
new IID(Ids::BEETROOT_SOUP),
"Beetroot Soup"));
375 self::register(
"birch_sign",
new ItemBlockWallOrFloor(
new IID(Ids::BIRCH_SIGN), Blocks::BIRCH_SIGN(), Blocks::BIRCH_WALL_SIGN()));
376 self::register(
"blaze_powder",
new Item(
new IID(Ids::BLAZE_POWDER),
"Blaze Powder"));
377 self::register(
"blaze_rod",
new BlazeRod(
new IID(Ids::BLAZE_ROD),
"Blaze Rod"));
378 self::register(
"bleach",
new Item(
new IID(Ids::BLEACH),
"Bleach"));
379 self::register(
"bone",
new Item(
new IID(Ids::BONE),
"Bone"));
380 self::register(
"bone_meal",
new Fertilizer(
new IID(Ids::BONE_MEAL),
"Bone Meal"));
381 self::register(
"book",
new Book(
new IID(Ids::BOOK),
"Book", [EnchantmentTags::ALL]));
382 self::register(
"bow",
new Bow(
new IID(Ids::BOW),
"Bow", [EnchantmentTags::BOW]));
383 self::register(
"bowl",
new Bowl(
new IID(Ids::BOWL),
"Bowl"));
384 self::register(
"bread",
new Bread(
new IID(Ids::BREAD),
"Bread"));
385 self::register(
"brick",
new Item(
new IID(Ids::BRICK),
"Brick"));
386 self::register(
"bucket",
new Bucket(
new IID(Ids::BUCKET),
"Bucket"));
387 self::register(
"carrot",
new Carrot(
new IID(Ids::CARROT),
"Carrot"));
388 self::register(
"charcoal",
new Coal(
new IID(Ids::CHARCOAL),
"Charcoal"));
389 self::register(
"cherry_sign",
new ItemBlockWallOrFloor(
new IID(Ids::CHERRY_SIGN), Blocks::CHERRY_SIGN(), Blocks::CHERRY_WALL_SIGN()));
390 self::register(
"chemical_aluminium_oxide",
new Item(
new IID(Ids::CHEMICAL_ALUMINIUM_OXIDE),
"Aluminium Oxide"));
391 self::register(
"chemical_ammonia",
new Item(
new IID(Ids::CHEMICAL_AMMONIA),
"Ammonia"));
392 self::register(
"chemical_barium_sulphate",
new Item(
new IID(Ids::CHEMICAL_BARIUM_SULPHATE),
"Barium Sulphate"));
393 self::register(
"chemical_benzene",
new Item(
new IID(Ids::CHEMICAL_BENZENE),
"Benzene"));
394 self::register(
"chemical_boron_trioxide",
new Item(
new IID(Ids::CHEMICAL_BORON_TRIOXIDE),
"Boron Trioxide"));
395 self::register(
"chemical_calcium_bromide",
new Item(
new IID(Ids::CHEMICAL_CALCIUM_BROMIDE),
"Calcium Bromide"));
396 self::register(
"chemical_calcium_chloride",
new Item(
new IID(Ids::CHEMICAL_CALCIUM_CHLORIDE),
"Calcium Chloride"));
397 self::register(
"chemical_cerium_chloride",
new Item(
new IID(Ids::CHEMICAL_CERIUM_CHLORIDE),
"Cerium Chloride"));
398 self::register(
"chemical_charcoal",
new Item(
new IID(Ids::CHEMICAL_CHARCOAL),
"Charcoal"));
399 self::register(
"chemical_crude_oil",
new Item(
new IID(Ids::CHEMICAL_CRUDE_OIL),
"Crude Oil"));
400 self::register(
"chemical_glue",
new Item(
new IID(Ids::CHEMICAL_GLUE),
"Glue"));
401 self::register(
"chemical_hydrogen_peroxide",
new Item(
new IID(Ids::CHEMICAL_HYDROGEN_PEROXIDE),
"Hydrogen Peroxide"));
402 self::register(
"chemical_hypochlorite",
new Item(
new IID(Ids::CHEMICAL_HYPOCHLORITE),
"Hypochlorite"));
403 self::register(
"chemical_ink",
new Item(
new IID(Ids::CHEMICAL_INK),
"Ink"));
404 self::register(
"chemical_iron_sulphide",
new Item(
new IID(Ids::CHEMICAL_IRON_SULPHIDE),
"Iron Sulphide"));
405 self::register(
"chemical_latex",
new Item(
new IID(Ids::CHEMICAL_LATEX),
"Latex"));
406 self::register(
"chemical_lithium_hydride",
new Item(
new IID(Ids::CHEMICAL_LITHIUM_HYDRIDE),
"Lithium Hydride"));
407 self::register(
"chemical_luminol",
new Item(
new IID(Ids::CHEMICAL_LUMINOL),
"Luminol"));
408 self::register(
"chemical_magnesium_nitrate",
new Item(
new IID(Ids::CHEMICAL_MAGNESIUM_NITRATE),
"Magnesium Nitrate"));
409 self::register(
"chemical_magnesium_oxide",
new Item(
new IID(Ids::CHEMICAL_MAGNESIUM_OXIDE),
"Magnesium Oxide"));
410 self::register(
"chemical_magnesium_salts",
new Item(
new IID(Ids::CHEMICAL_MAGNESIUM_SALTS),
"Magnesium Salts"));
411 self::register(
"chemical_mercuric_chloride",
new Item(
new IID(Ids::CHEMICAL_MERCURIC_CHLORIDE),
"Mercuric Chloride"));
412 self::register(
"chemical_polyethylene",
new Item(
new IID(Ids::CHEMICAL_POLYETHYLENE),
"Polyethylene"));
413 self::register(
"chemical_potassium_chloride",
new Item(
new IID(Ids::CHEMICAL_POTASSIUM_CHLORIDE),
"Potassium Chloride"));
414 self::register(
"chemical_potassium_iodide",
new Item(
new IID(Ids::CHEMICAL_POTASSIUM_IODIDE),
"Potassium Iodide"));
415 self::register(
"chemical_rubbish",
new Item(
new IID(Ids::CHEMICAL_RUBBISH),
"Rubbish"));
416 self::register(
"chemical_salt",
new Item(
new IID(Ids::CHEMICAL_SALT),
"Salt"));
417 self::register(
"chemical_soap",
new Item(
new IID(Ids::CHEMICAL_SOAP),
"Soap"));
418 self::register(
"chemical_sodium_acetate",
new Item(
new IID(Ids::CHEMICAL_SODIUM_ACETATE),
"Sodium Acetate"));
419 self::register(
"chemical_sodium_fluoride",
new Item(
new IID(Ids::CHEMICAL_SODIUM_FLUORIDE),
"Sodium Fluoride"));
420 self::register(
"chemical_sodium_hydride",
new Item(
new IID(Ids::CHEMICAL_SODIUM_HYDRIDE),
"Sodium Hydride"));
421 self::register(
"chemical_sodium_hydroxide",
new Item(
new IID(Ids::CHEMICAL_SODIUM_HYDROXIDE),
"Sodium Hydroxide"));
422 self::register(
"chemical_sodium_hypochlorite",
new Item(
new IID(Ids::CHEMICAL_SODIUM_HYPOCHLORITE),
"Sodium Hypochlorite"));
423 self::register(
"chemical_sodium_oxide",
new Item(
new IID(Ids::CHEMICAL_SODIUM_OXIDE),
"Sodium Oxide"));
424 self::register(
"chemical_sugar",
new Item(
new IID(Ids::CHEMICAL_SUGAR),
"Sugar"));
425 self::register(
"chemical_sulphate",
new Item(
new IID(Ids::CHEMICAL_SULPHATE),
"Sulphate"));
426 self::register(
"chemical_tungsten_chloride",
new Item(
new IID(Ids::CHEMICAL_TUNGSTEN_CHLORIDE),
"Tungsten Chloride"));
427 self::register(
"chemical_water",
new Item(
new IID(Ids::CHEMICAL_WATER),
"Water"));
428 self::register(
"chorus_fruit",
new ChorusFruit(
new IID(Ids::CHORUS_FRUIT),
"Chorus Fruit"));
429 self::register(
"clay",
new Item(
new IID(Ids::CLAY),
"Clay"));
430 self::register(
"clock",
new Clock(
new IID(Ids::CLOCK),
"Clock"));
431 self::register(
"clownfish",
new Clownfish(
new IID(Ids::CLOWNFISH),
"Clownfish"));
432 self::register(
"coal",
new Coal(
new IID(Ids::COAL),
"Coal"));
433 self::register(
"cocoa_beans",
new CocoaBeans(
new IID(Ids::COCOA_BEANS),
"Cocoa Beans"));
434 self::register(
"compass",
new Compass(
new IID(Ids::COMPASS),
"Compass", [EnchantmentTags::COMPASS]));
435 self::register(
"cooked_chicken",
new CookedChicken(
new IID(Ids::COOKED_CHICKEN),
"Cooked Chicken"));
436 self::register(
"cooked_fish",
new CookedFish(
new IID(Ids::COOKED_FISH),
"Cooked Fish"));
437 self::register(
"cooked_mutton",
new CookedMutton(
new IID(Ids::COOKED_MUTTON),
"Cooked Mutton"));
438 self::register(
"cooked_porkchop",
new CookedPorkchop(
new IID(Ids::COOKED_PORKCHOP),
"Cooked Porkchop"));
439 self::register(
"cooked_rabbit",
new CookedRabbit(
new IID(Ids::COOKED_RABBIT),
"Cooked Rabbit"));
440 self::register(
"cooked_salmon",
new CookedSalmon(
new IID(Ids::COOKED_SALMON),
"Cooked Salmon"));
441 self::register(
"cookie",
new Cookie(
new IID(Ids::COOKIE),
"Cookie"));
442 self::register(
"copper_ingot",
new Item(
new IID(Ids::COPPER_INGOT),
"Copper Ingot"));
443 self::register(
"coral_fan",
new CoralFan(
new IID(Ids::CORAL_FAN)));
444 self::register(
"crimson_sign",
new ItemBlockWallOrFloor(
new IID(Ids::CRIMSON_SIGN), Blocks::CRIMSON_SIGN(), Blocks::CRIMSON_WALL_SIGN()));
445 self::register(
"dark_oak_sign",
new ItemBlockWallOrFloor(
new IID(Ids::DARK_OAK_SIGN), Blocks::DARK_OAK_SIGN(), Blocks::DARK_OAK_WALL_SIGN()));
446 self::register(
"diamond",
new Item(
new IID(Ids::DIAMOND),
"Diamond"));
447 self::register(
"disc_fragment_5",
new Item(
new IID(Ids::DISC_FRAGMENT_5),
"Disc Fragment (5)"));
448 self::register(
"dragon_breath",
new Item(
new IID(Ids::DRAGON_BREATH),
"Dragon's Breath"));
449 self::register(
"dried_kelp",
new DriedKelp(
new IID(Ids::DRIED_KELP),
"Dried Kelp"));
451 self::register(
"dye",
new Dye(
new IID(Ids::DYE),
"Dye"));
452 self::register(
"echo_shard",
new Item(
new IID(Ids::ECHO_SHARD),
"Echo Shard"));
453 self::register(
"egg",
new Egg(
new IID(Ids::EGG),
"Egg"));
454 self::register(
"emerald",
new Item(
new IID(Ids::EMERALD),
"Emerald"));
455 self::register(
"enchanted_book",
new EnchantedBook(
new IID(Ids::ENCHANTED_BOOK),
"Enchanted Book", [EnchantmentTags::ALL]));
456 self::register(
"enchanted_golden_apple",
new GoldenAppleEnchanted(
new IID(Ids::ENCHANTED_GOLDEN_APPLE),
"Enchanted Golden Apple"));
457 self::register(
"ender_pearl",
new EnderPearl(
new IID(Ids::ENDER_PEARL),
"Ender Pearl"));
458 self::register(
"experience_bottle",
new ExperienceBottle(
new IID(Ids::EXPERIENCE_BOTTLE),
"Bottle o' Enchanting"));
459 self::register(
"feather",
new Item(
new IID(Ids::FEATHER),
"Feather"));
460 self::register(
"fermented_spider_eye",
new Item(
new IID(Ids::FERMENTED_SPIDER_EYE),
"Fermented Spider Eye"));
461 self::register(
"fire_charge",
new FireCharge(
new IID(Ids::FIRE_CHARGE),
"Fire Charge"));
462 self::register(
"fishing_rod",
new FishingRod(
new IID(Ids::FISHING_ROD),
"Fishing Rod", [EnchantmentTags::FISHING_ROD]));
463 self::register(
"flint",
new Item(
new IID(Ids::FLINT),
"Flint"));
464 self::register(
"flint_and_steel",
new FlintSteel(
new IID(Ids::FLINT_AND_STEEL),
"Flint and Steel", [EnchantmentTags::FLINT_AND_STEEL]));
465 self::register(
"ghast_tear",
new Item(
new IID(Ids::GHAST_TEAR),
"Ghast Tear"));
466 self::register(
"glass_bottle",
new GlassBottle(
new IID(Ids::GLASS_BOTTLE),
"Glass Bottle"));
467 self::register(
"glistering_melon",
new Item(
new IID(Ids::GLISTERING_MELON),
"Glistering Melon"));
468 self::register(
"glow_berries",
new GlowBerries(
new IID(Ids::GLOW_BERRIES),
"Glow Berries"));
469 self::register(
"glow_ink_sac",
new Item(
new IID(Ids::GLOW_INK_SAC),
"Glow Ink Sac"));
470 self::register(
"glowstone_dust",
new Item(
new IID(Ids::GLOWSTONE_DUST),
"Glowstone Dust"));
471 self::register(
"gold_ingot",
new Item(
new IID(Ids::GOLD_INGOT),
"Gold Ingot"));
472 self::register(
"gold_nugget",
new Item(
new IID(Ids::GOLD_NUGGET),
"Gold Nugget"));
473 self::register(
"golden_apple",
new GoldenApple(
new IID(Ids::GOLDEN_APPLE),
"Golden Apple"));
474 self::register(
"golden_carrot",
new GoldenCarrot(
new IID(Ids::GOLDEN_CARROT),
"Golden Carrot"));
475 self::register(
"gunpowder",
new Item(
new IID(Ids::GUNPOWDER),
"Gunpowder"));
476 self::register(
"heart_of_the_sea",
new Item(
new IID(Ids::HEART_OF_THE_SEA),
"Heart of the Sea"));
477 self::register(
"honey_bottle",
new HoneyBottle(
new IID(Ids::HONEY_BOTTLE),
"Honey Bottle"));
478 self::register(
"honeycomb",
new Item(
new IID(Ids::HONEYCOMB),
"Honeycomb"));
479 self::register(
"ink_sac",
new Item(
new IID(Ids::INK_SAC),
"Ink Sac"));
480 self::register(
"iron_ingot",
new Item(
new IID(Ids::IRON_INGOT),
"Iron Ingot"));
481 self::register(
"iron_nugget",
new Item(
new IID(Ids::IRON_NUGGET),
"Iron Nugget"));
482 self::register(
"jungle_sign",
new ItemBlockWallOrFloor(
new IID(Ids::JUNGLE_SIGN), Blocks::JUNGLE_SIGN(), Blocks::JUNGLE_WALL_SIGN()));
483 self::register(
"lapis_lazuli",
new Item(
new IID(Ids::LAPIS_LAZULI),
"Lapis Lazuli"));
484 self::register(
"lava_bucket",
new LiquidBucket(
new IID(Ids::LAVA_BUCKET),
"Lava Bucket", Blocks::LAVA()));
485 self::register(
"leather",
new Item(
new IID(Ids::LEATHER),
"Leather"));
486 self::register(
"magma_cream",
new Item(
new IID(Ids::MAGMA_CREAM),
"Magma Cream"));
487 self::register(
"mangrove_sign",
new ItemBlockWallOrFloor(
new IID(Ids::MANGROVE_SIGN), Blocks::MANGROVE_SIGN(), Blocks::MANGROVE_WALL_SIGN()));
488 self::register(
"medicine",
new Medicine(
new IID(Ids::MEDICINE),
"Medicine"));
489 self::register(
"melon",
new Melon(
new IID(Ids::MELON),
"Melon"));
490 self::register(
"melon_seeds",
new MelonSeeds(
new IID(Ids::MELON_SEEDS),
"Melon Seeds"));
491 self::register(
"milk_bucket",
new MilkBucket(
new IID(Ids::MILK_BUCKET),
"Milk Bucket"));
492 self::register(
"minecart",
new Minecart(
new IID(Ids::MINECART),
"Minecart"));
493 self::register(
"mushroom_stew",
new MushroomStew(
new IID(Ids::MUSHROOM_STEW),
"Mushroom Stew"));
494 self::register(
"name_tag",
new NameTag(
new IID(Ids::NAME_TAG),
"Name Tag"));
495 self::register(
"nautilus_shell",
new Item(
new IID(Ids::NAUTILUS_SHELL),
"Nautilus Shell"));
496 self::register(
"nether_brick",
new Item(
new IID(Ids::NETHER_BRICK),
"Nether Brick"));
497 self::register(
"nether_quartz",
new Item(
new IID(Ids::NETHER_QUARTZ),
"Nether Quartz"));
498 self::register(
"nether_star",
new Item(
new IID(Ids::NETHER_STAR),
"Nether Star"));
499 self::register(
"netherite_ingot",
new class(
new IID(Ids::NETHERITE_INGOT),
"Netherite Ingot") extends
Item{
500 public function isFireProof() : bool{ return true; }
502 self::register(
"netherite_scrap",
new class(
new IID(Ids::NETHERITE_SCRAP),
"Netherite Scrap") extends Item{
503 public function isFireProof() : bool{ return true; }
505 self::register(
"oak_sign",
new ItemBlockWallOrFloor(
new IID(Ids::OAK_SIGN), Blocks::OAK_SIGN(), Blocks::OAK_WALL_SIGN()));
506 self::register(
"painting",
new PaintingItem(
new IID(Ids::PAINTING),
"Painting"));
507 self::register(
"paper",
new Item(
new IID(Ids::PAPER),
"Paper"));
508 self::register(
"phantom_membrane",
new Item(
new IID(Ids::PHANTOM_MEMBRANE),
"Phantom Membrane"));
509 self::register(
"pitcher_pod",
new PitcherPod(
new IID(Ids::PITCHER_POD),
"Pitcher Pod"));
510 self::register(
"poisonous_potato",
new PoisonousPotato(
new IID(Ids::POISONOUS_POTATO),
"Poisonous Potato"));
511 self::register(
"popped_chorus_fruit",
new Item(
new IID(Ids::POPPED_CHORUS_FRUIT),
"Popped Chorus Fruit"));
512 self::register(
"potato",
new Potato(
new IID(Ids::POTATO),
"Potato"));
513 self::register(
"potion",
new Potion(
new IID(Ids::POTION),
"Potion"));
514 self::register(
"prismarine_crystals",
new Item(
new IID(Ids::PRISMARINE_CRYSTALS),
"Prismarine Crystals"));
515 self::register(
"prismarine_shard",
new Item(
new IID(Ids::PRISMARINE_SHARD),
"Prismarine Shard"));
516 self::register(
"pufferfish",
new Pufferfish(
new IID(Ids::PUFFERFISH),
"Pufferfish"));
517 self::register(
"pumpkin_pie",
new PumpkinPie(
new IID(Ids::PUMPKIN_PIE),
"Pumpkin Pie"));
518 self::register(
"pumpkin_seeds",
new PumpkinSeeds(
new IID(Ids::PUMPKIN_SEEDS),
"Pumpkin Seeds"));
519 self::register(
"rabbit_foot",
new Item(
new IID(Ids::RABBIT_FOOT),
"Rabbit's Foot"));
520 self::register(
"rabbit_hide",
new Item(
new IID(Ids::RABBIT_HIDE),
"Rabbit Hide"));
521 self::register(
"rabbit_stew",
new RabbitStew(
new IID(Ids::RABBIT_STEW),
"Rabbit Stew"));
522 self::register(
"raw_beef",
new RawBeef(
new IID(Ids::RAW_BEEF),
"Raw Beef"));
523 self::register(
"raw_chicken",
new RawChicken(
new IID(Ids::RAW_CHICKEN),
"Raw Chicken"));
524 self::register(
"raw_copper",
new Item(
new IID(Ids::RAW_COPPER),
"Raw Copper"));
525 self::register(
"raw_fish",
new RawFish(
new IID(Ids::RAW_FISH),
"Raw Fish"));
526 self::register(
"raw_gold",
new Item(
new IID(Ids::RAW_GOLD),
"Raw Gold"));
527 self::register(
"raw_iron",
new Item(
new IID(Ids::RAW_IRON),
"Raw Iron"));
528 self::register(
"raw_mutton",
new RawMutton(
new IID(Ids::RAW_MUTTON),
"Raw Mutton"));
529 self::register(
"raw_porkchop",
new RawPorkchop(
new IID(Ids::RAW_PORKCHOP),
"Raw Porkchop"));
530 self::register(
"raw_rabbit",
new RawRabbit(
new IID(Ids::RAW_RABBIT),
"Raw Rabbit"));
531 self::register(
"raw_salmon",
new RawSalmon(
new IID(Ids::RAW_SALMON),
"Raw Salmon"));
532 self::register(
"record_11",
new Record(
new IID(Ids::RECORD_11), RecordType::DISK_11,
"Record 11"));
533 self::register(
"record_13",
new Record(
new IID(Ids::RECORD_13), RecordType::DISK_13,
"Record 13"));
534 self::register(
"record_5",
new Record(
new IID(Ids::RECORD_5), RecordType::DISK_5,
"Record 5"));
535 self::register(
"record_blocks",
new Record(
new IID(Ids::RECORD_BLOCKS), RecordType::DISK_BLOCKS,
"Record Blocks"));
536 self::register(
"record_cat",
new Record(
new IID(Ids::RECORD_CAT), RecordType::DISK_CAT,
"Record Cat"));
537 self::register(
"record_chirp",
new Record(
new IID(Ids::RECORD_CHIRP), RecordType::DISK_CHIRP,
"Record Chirp"));
538 self::register(
"record_far",
new Record(
new IID(Ids::RECORD_FAR), RecordType::DISK_FAR,
"Record Far"));
539 self::register(
"record_mall",
new Record(
new IID(Ids::RECORD_MALL), RecordType::DISK_MALL,
"Record Mall"));
540 self::register(
"record_mellohi",
new Record(
new IID(Ids::RECORD_MELLOHI), RecordType::DISK_MELLOHI,
"Record Mellohi"));
541 self::register(
"record_otherside",
new Record(
new IID(Ids::RECORD_OTHERSIDE), RecordType::DISK_OTHERSIDE,
"Record Otherside"));
542 self::register(
"record_pigstep",
new Record(
new IID(Ids::RECORD_PIGSTEP), RecordType::DISK_PIGSTEP,
"Record Pigstep"));
543 self::register(
"record_stal",
new Record(
new IID(Ids::RECORD_STAL), RecordType::DISK_STAL,
"Record Stal"));
544 self::register(
"record_strad",
new Record(
new IID(Ids::RECORD_STRAD), RecordType::DISK_STRAD,
"Record Strad"));
545 self::register(
"record_wait",
new Record(
new IID(Ids::RECORD_WAIT), RecordType::DISK_WAIT,
"Record Wait"));
546 self::register(
"record_ward",
new Record(
new IID(Ids::RECORD_WARD), RecordType::DISK_WARD,
"Record Ward"));
547 self::register(
"redstone_dust",
new Redstone(
new IID(Ids::REDSTONE_DUST),
"Redstone"));
548 self::register(
"rotten_flesh",
new RottenFlesh(
new IID(Ids::ROTTEN_FLESH),
"Rotten Flesh"));
549 self::register(
"scute",
new Item(
new IID(Ids::SCUTE),
"Scute"));
550 self::register(
"shears",
new Shears(
new IID(Ids::SHEARS),
"Shears", [EnchantmentTags::SHEARS]));
551 self::register(
"shulker_shell",
new Item(
new IID(Ids::SHULKER_SHELL),
"Shulker Shell"));
552 self::register(
"slimeball",
new Item(
new IID(Ids::SLIMEBALL),
"Slimeball"));
553 self::register(
"snowball",
new Snowball(
new IID(Ids::SNOWBALL),
"Snowball"));
554 self::register(
"spider_eye",
new SpiderEye(
new IID(Ids::SPIDER_EYE),
"Spider Eye"));
555 self::register(
"splash_potion",
new SplashPotion(
new IID(Ids::SPLASH_POTION),
"Splash Potion"));
556 self::register(
"spruce_sign",
new ItemBlockWallOrFloor(
new IID(Ids::SPRUCE_SIGN), Blocks::SPRUCE_SIGN(), Blocks::SPRUCE_WALL_SIGN()));
557 self::register(
"spyglass",
new Spyglass(
new IID(Ids::SPYGLASS),
"Spyglass"));
558 self::register(
"steak",
new Steak(
new IID(Ids::STEAK),
"Steak"));
559 self::register(
"stick",
new Stick(
new IID(Ids::STICK),
"Stick"));
560 self::register(
"string",
new StringItem(
new IID(Ids::STRING),
"String"));
561 self::register(
"sugar",
new Item(
new IID(Ids::SUGAR),
"Sugar"));
562 self::register(
"suspicious_stew",
new SuspiciousStew(
new IID(Ids::SUSPICIOUS_STEW),
"Suspicious Stew"));
563 self::register(
"sweet_berries",
new SweetBerries(
new IID(Ids::SWEET_BERRIES),
"Sweet Berries"));
564 self::register(
"torchflower_seeds",
new TorchflowerSeeds(
new IID(Ids::TORCHFLOWER_SEEDS),
"Torchflower Seeds"));
565 self::register(
"totem",
new Totem(
new IID(Ids::TOTEM),
"Totem of Undying"));
566 self::register(
"warped_sign",
new ItemBlockWallOrFloor(
new IID(Ids::WARPED_SIGN), Blocks::WARPED_SIGN(), Blocks::WARPED_WALL_SIGN()));
567 self::register(
"water_bucket",
new LiquidBucket(
new IID(Ids::WATER_BUCKET),
"Water Bucket", Blocks::WATER()));
568 self::register(
"wheat",
new Item(
new IID(Ids::WHEAT),
"Wheat"));
569 self::register(
"wheat_seeds",
new WheatSeeds(
new IID(Ids::WHEAT_SEEDS),
"Wheat Seeds"));
570 self::register(
"writable_book",
new WritableBook(
new IID(Ids::WRITABLE_BOOK),
"Book & Quill"));
571 self::register(
"written_book",
new WrittenBook(
new IID(Ids::WRITTEN_BOOK),
"Written Book"));
573 foreach(BoatType::cases() as $type){
575 self::register(strtolower($type->name) .
"_boat",
new Boat(
new IID(match($type){
576 BoatType::OAK => Ids::OAK_BOAT,
577 BoatType::SPRUCE => Ids::SPRUCE_BOAT,
578 BoatType::BIRCH => Ids::BIRCH_BOAT,
579 BoatType::JUNGLE => Ids::JUNGLE_BOAT,
580 BoatType::ACACIA => Ids::ACACIA_BOAT,
581 BoatType::DARK_OAK => Ids::DARK_OAK_BOAT,
582 BoatType::MANGROVE => Ids::MANGROVE_BOAT,
583 }), $type->getDisplayName() .
" Boat", $type));
587 private static function registerSpawnEggs() : void{
588 self::register(
"zombie_spawn_egg", new class(new IID(Ids::ZOMBIE_SPAWN_EGG),
"Zombie Spawn Egg") extends SpawnEgg{
589 protected function createEntity(World $world, Vector3 $pos, float $yaw, float $pitch) : Entity{
590 return new Zombie(Location::fromObject($pos, $world, $yaw, $pitch));
593 self::register(
"squid_spawn_egg",
new class(
new IID(Ids::SQUID_SPAWN_EGG),
"Squid Spawn Egg") extends SpawnEgg{
594 protected function createEntity(World $world, Vector3 $pos,
float $yaw,
float $pitch) : Entity{
595 return new Squid(Location::fromObject($pos, $world, $yaw, $pitch));
598 self::register(
"villager_spawn_egg",
new class(
new IID(Ids::VILLAGER_SPAWN_EGG),
"Villager Spawn Egg") extends SpawnEgg{
599 protected function createEntity(World $world, Vector3 $pos,
float $yaw,
float $pitch) : Entity{
600 return new Villager(Location::fromObject($pos, $world, $yaw, $pitch));
605 private static function registerTierToolItems() : void{
606 self::register(
"diamond_axe", new Axe(new IID(Ids::DIAMOND_AXE),
"Diamond Axe",
ToolTier::DIAMOND, [EnchantmentTags::AXE]));
607 self::register(
"golden_axe",
new Axe(
new IID(Ids::GOLDEN_AXE),
"Golden Axe", ToolTier::GOLD, [EnchantmentTags::AXE]));
608 self::register(
"iron_axe",
new Axe(
new IID(Ids::IRON_AXE),
"Iron Axe", ToolTier::IRON, [EnchantmentTags::AXE]));
609 self::register(
"netherite_axe",
new Axe(
new IID(Ids::NETHERITE_AXE),
"Netherite Axe", ToolTier::NETHERITE, [EnchantmentTags::AXE]));
610 self::register(
"stone_axe",
new Axe(
new IID(Ids::STONE_AXE),
"Stone Axe", ToolTier::STONE, [EnchantmentTags::AXE]));
611 self::register(
"wooden_axe",
new Axe(
new IID(Ids::WOODEN_AXE),
"Wooden Axe", ToolTier::WOOD, [EnchantmentTags::AXE]));
612 self::register(
"diamond_hoe",
new Hoe(
new IID(Ids::DIAMOND_HOE),
"Diamond Hoe", ToolTier::DIAMOND, [EnchantmentTags::HOE]));
613 self::register(
"golden_hoe",
new Hoe(
new IID(Ids::GOLDEN_HOE),
"Golden Hoe", ToolTier::GOLD, [EnchantmentTags::HOE]));
614 self::register(
"iron_hoe",
new Hoe(
new IID(Ids::IRON_HOE),
"Iron Hoe", ToolTier::IRON, [EnchantmentTags::HOE]));
615 self::register(
"netherite_hoe",
new Hoe(
new IID(Ids::NETHERITE_HOE),
"Netherite Hoe", ToolTier::NETHERITE, [EnchantmentTags::HOE]));
616 self::register(
"stone_hoe",
new Hoe(
new IID(Ids::STONE_HOE),
"Stone Hoe", ToolTier::STONE, [EnchantmentTags::HOE]));
617 self::register(
"wooden_hoe",
new Hoe(
new IID(Ids::WOODEN_HOE),
"Wooden Hoe", ToolTier::WOOD, [EnchantmentTags::HOE]));
618 self::register(
"diamond_pickaxe",
new Pickaxe(
new IID(Ids::DIAMOND_PICKAXE),
"Diamond Pickaxe", ToolTier::DIAMOND, [EnchantmentTags::PICKAXE]));
619 self::register(
"golden_pickaxe",
new Pickaxe(
new IID(Ids::GOLDEN_PICKAXE),
"Golden Pickaxe", ToolTier::GOLD, [EnchantmentTags::PICKAXE]));
620 self::register(
"iron_pickaxe",
new Pickaxe(
new IID(Ids::IRON_PICKAXE),
"Iron Pickaxe", ToolTier::IRON, [EnchantmentTags::PICKAXE]));
621 self::register(
"netherite_pickaxe",
new Pickaxe(
new IID(Ids::NETHERITE_PICKAXE),
"Netherite Pickaxe", ToolTier::NETHERITE, [EnchantmentTags::PICKAXE]));
622 self::register(
"stone_pickaxe",
new Pickaxe(
new IID(Ids::STONE_PICKAXE),
"Stone Pickaxe", ToolTier::STONE, [EnchantmentTags::PICKAXE]));
623 self::register(
"wooden_pickaxe",
new Pickaxe(
new IID(Ids::WOODEN_PICKAXE),
"Wooden Pickaxe", ToolTier::WOOD, [EnchantmentTags::PICKAXE]));
624 self::register(
"diamond_shovel",
new Shovel(
new IID(Ids::DIAMOND_SHOVEL),
"Diamond Shovel", ToolTier::DIAMOND, [EnchantmentTags::SHOVEL]));
625 self::register(
"golden_shovel",
new Shovel(
new IID(Ids::GOLDEN_SHOVEL),
"Golden Shovel", ToolTier::GOLD, [EnchantmentTags::SHOVEL]));
626 self::register(
"iron_shovel",
new Shovel(
new IID(Ids::IRON_SHOVEL),
"Iron Shovel", ToolTier::IRON, [EnchantmentTags::SHOVEL]));
627 self::register(
"netherite_shovel",
new Shovel(
new IID(Ids::NETHERITE_SHOVEL),
"Netherite Shovel", ToolTier::NETHERITE, [EnchantmentTags::SHOVEL]));
628 self::register(
"stone_shovel",
new Shovel(
new IID(Ids::STONE_SHOVEL),
"Stone Shovel", ToolTier::STONE, [EnchantmentTags::SHOVEL]));
629 self::register(
"wooden_shovel",
new Shovel(
new IID(Ids::WOODEN_SHOVEL),
"Wooden Shovel", ToolTier::WOOD, [EnchantmentTags::SHOVEL]));
630 self::register(
"diamond_sword",
new Sword(
new IID(Ids::DIAMOND_SWORD),
"Diamond Sword", ToolTier::DIAMOND, [EnchantmentTags::SWORD]));
631 self::register(
"golden_sword",
new Sword(
new IID(Ids::GOLDEN_SWORD),
"Golden Sword", ToolTier::GOLD, [EnchantmentTags::SWORD]));
632 self::register(
"iron_sword",
new Sword(
new IID(Ids::IRON_SWORD),
"Iron Sword", ToolTier::IRON, [EnchantmentTags::SWORD]));
633 self::register(
"netherite_sword",
new Sword(
new IID(Ids::NETHERITE_SWORD),
"Netherite Sword", ToolTier::NETHERITE, [EnchantmentTags::SWORD]));
634 self::register(
"stone_sword",
new Sword(
new IID(Ids::STONE_SWORD),
"Stone Sword", ToolTier::STONE, [EnchantmentTags::SWORD]));
635 self::register(
"wooden_sword",
new Sword(
new IID(Ids::WOODEN_SWORD),
"Wooden Sword", ToolTier::WOOD, [EnchantmentTags::SWORD]));
638 private static function registerArmorItems() : void{
639 self::register(
"chainmail_boots", new Armor(new IID(Ids::CHAINMAIL_BOOTS),
"Chainmail Boots", new ArmorTypeInfo(1, 196, ArmorInventory::SLOT_FEET, material: ArmorMaterials::CHAINMAIL()), [EnchantmentTags::BOOTS]));
640 self::register(
"diamond_boots",
new Armor(
new IID(Ids::DIAMOND_BOOTS),
"Diamond Boots",
new ArmorTypeInfo(3, 430, ArmorInventory::SLOT_FEET, 2, material: ArmorMaterials::DIAMOND()), [EnchantmentTags::BOOTS]));
641 self::register(
"golden_boots",
new Armor(
new IID(Ids::GOLDEN_BOOTS),
"Golden Boots",
new ArmorTypeInfo(1, 92, ArmorInventory::SLOT_FEET, material: ArmorMaterials::GOLD()), [EnchantmentTags::BOOTS]));
642 self::register(
"iron_boots",
new Armor(
new IID(Ids::IRON_BOOTS),
"Iron Boots",
new ArmorTypeInfo(2, 196, ArmorInventory::SLOT_FEET, material: ArmorMaterials::IRON()), [EnchantmentTags::BOOTS]));
643 self::register(
"leather_boots",
new Armor(
new IID(Ids::LEATHER_BOOTS),
"Leather Boots",
new ArmorTypeInfo(1, 66, ArmorInventory::SLOT_FEET, material: ArmorMaterials::LEATHER()), [EnchantmentTags::BOOTS]));
644 self::register(
"netherite_boots",
new Armor(
new IID(Ids::NETHERITE_BOOTS),
"Netherite Boots",
new ArmorTypeInfo(3, 482, ArmorInventory::SLOT_FEET, 3,
true, material: ArmorMaterials::NETHERITE()), [EnchantmentTags::BOOTS]));
646 self::register(
"chainmail_chestplate",
new Armor(
new IID(Ids::CHAINMAIL_CHESTPLATE),
"Chainmail Chestplate",
new ArmorTypeInfo(5, 241, ArmorInventory::SLOT_CHEST, material: ArmorMaterials::CHAINMAIL()), [EnchantmentTags::CHESTPLATE]));
647 self::register(
"diamond_chestplate",
new Armor(
new IID(Ids::DIAMOND_CHESTPLATE),
"Diamond Chestplate",
new ArmorTypeInfo(8, 529, ArmorInventory::SLOT_CHEST, 2, material: ArmorMaterials::DIAMOND()), [EnchantmentTags::CHESTPLATE]));
648 self::register(
"golden_chestplate",
new Armor(
new IID(Ids::GOLDEN_CHESTPLATE),
"Golden Chestplate",
new ArmorTypeInfo(5, 113, ArmorInventory::SLOT_CHEST, material: ArmorMaterials::GOLD()), [EnchantmentTags::CHESTPLATE]));
649 self::register(
"iron_chestplate",
new Armor(
new IID(Ids::IRON_CHESTPLATE),
"Iron Chestplate",
new ArmorTypeInfo(6, 241, ArmorInventory::SLOT_CHEST, material: ArmorMaterials::IRON()), [EnchantmentTags::CHESTPLATE]));
650 self::register(
"leather_tunic",
new Armor(
new IID(Ids::LEATHER_TUNIC),
"Leather Tunic",
new ArmorTypeInfo(3, 81, ArmorInventory::SLOT_CHEST, material: ArmorMaterials::LEATHER()), [EnchantmentTags::CHESTPLATE]));
651 self::register(
"netherite_chestplate",
new Armor(
new IID(Ids::NETHERITE_CHESTPLATE),
"Netherite Chestplate",
new ArmorTypeInfo(8, 593, ArmorInventory::SLOT_CHEST, 3,
true, material: ArmorMaterials::NETHERITE()), [EnchantmentTags::CHESTPLATE]));
653 self::register(
"chainmail_helmet",
new Armor(
new IID(Ids::CHAINMAIL_HELMET),
"Chainmail Helmet",
new ArmorTypeInfo(2, 166, ArmorInventory::SLOT_HEAD, material: ArmorMaterials::CHAINMAIL()), [EnchantmentTags::HELMET]));
654 self::register(
"diamond_helmet",
new Armor(
new IID(Ids::DIAMOND_HELMET),
"Diamond Helmet",
new ArmorTypeInfo(3, 364, ArmorInventory::SLOT_HEAD, 2, material: ArmorMaterials::DIAMOND()), [EnchantmentTags::HELMET]));
655 self::register(
"golden_helmet",
new Armor(
new IID(Ids::GOLDEN_HELMET),
"Golden Helmet",
new ArmorTypeInfo(2, 78, ArmorInventory::SLOT_HEAD, material: ArmorMaterials::GOLD()), [EnchantmentTags::HELMET]));
656 self::register(
"iron_helmet",
new Armor(
new IID(Ids::IRON_HELMET),
"Iron Helmet",
new ArmorTypeInfo(2, 166, ArmorInventory::SLOT_HEAD, material: ArmorMaterials::IRON()), [EnchantmentTags::HELMET]));
657 self::register(
"leather_cap",
new Armor(
new IID(Ids::LEATHER_CAP),
"Leather Cap",
new ArmorTypeInfo(1, 56, ArmorInventory::SLOT_HEAD, material: ArmorMaterials::LEATHER()), [EnchantmentTags::HELMET]));
658 self::register(
"netherite_helmet",
new Armor(
new IID(Ids::NETHERITE_HELMET),
"Netherite Helmet",
new ArmorTypeInfo(3, 408, ArmorInventory::SLOT_HEAD, 3,
true, material: ArmorMaterials::NETHERITE()), [EnchantmentTags::HELMET]));
659 self::register(
"turtle_helmet",
new TurtleHelmet(
new IID(Ids::TURTLE_HELMET),
"Turtle Shell",
new ArmorTypeInfo(2, 276, ArmorInventory::SLOT_HEAD, material: ArmorMaterials::TURTLE()), [EnchantmentTags::HELMET]));
661 self::register(
"chainmail_leggings",
new Armor(
new IID(Ids::CHAINMAIL_LEGGINGS),
"Chainmail Leggings",
new ArmorTypeInfo(4, 226, ArmorInventory::SLOT_LEGS, material: ArmorMaterials::CHAINMAIL()), [EnchantmentTags::LEGGINGS]));
662 self::register(
"diamond_leggings",
new Armor(
new IID(Ids::DIAMOND_LEGGINGS),
"Diamond Leggings",
new ArmorTypeInfo(6, 496, ArmorInventory::SLOT_LEGS, 2, material: ArmorMaterials::DIAMOND()), [EnchantmentTags::LEGGINGS]));
663 self::register(
"golden_leggings",
new Armor(
new IID(Ids::GOLDEN_LEGGINGS),
"Golden Leggings",
new ArmorTypeInfo(3, 106, ArmorInventory::SLOT_LEGS, material: ArmorMaterials::GOLD()), [EnchantmentTags::LEGGINGS]));
664 self::register(
"iron_leggings",
new Armor(
new IID(Ids::IRON_LEGGINGS),
"Iron Leggings",
new ArmorTypeInfo(5, 226, ArmorInventory::SLOT_LEGS, material: ArmorMaterials::IRON()), [EnchantmentTags::LEGGINGS]));
665 self::register(
"leather_pants",
new Armor(
new IID(Ids::LEATHER_PANTS),
"Leather Pants",
new ArmorTypeInfo(2, 76, ArmorInventory::SLOT_LEGS, material: ArmorMaterials::LEATHER()), [EnchantmentTags::LEGGINGS]));
666 self::register(
"netherite_leggings",
new Armor(
new IID(Ids::NETHERITE_LEGGINGS),
"Netherite Leggings",
new ArmorTypeInfo(6, 556, ArmorInventory::SLOT_LEGS, 3,
true, material: ArmorMaterials::NETHERITE()), [EnchantmentTags::LEGGINGS]));
669 private static function registerSmithingTemplates() : void{
670 self::register(
"netherite_upgrade_smithing_template", new Item(new IID(Ids::NETHERITE_UPGRADE_SMITHING_TEMPLATE),
"Netherite Upgrade Smithing Template"));
671 self::register(
"coast_armor_trim_smithing_template",
new Item(
new IID(Ids::COAST_ARMOR_TRIM_SMITHING_TEMPLATE),
"Coast Armor Trim Smithing Template"));
672 self::register(
"dune_armor_trim_smithing_template",
new Item(
new IID(Ids::DUNE_ARMOR_TRIM_SMITHING_TEMPLATE),
"Dune Armor Trim Smithing Template"));
673 self::register(
"eye_armor_trim_smithing_template",
new Item(
new IID(Ids::EYE_ARMOR_TRIM_SMITHING_TEMPLATE),
"Eye Armor Trim Smithing Template"));
674 self::register(
"host_armor_trim_smithing_template",
new Item(
new IID(Ids::HOST_ARMOR_TRIM_SMITHING_TEMPLATE),
"Host Armor Trim Smithing Template"));
675 self::register(
"raiser_armor_trim_smithing_template",
new Item(
new IID(Ids::RAISER_ARMOR_TRIM_SMITHING_TEMPLATE),
"Raiser Armor Trim Smithing Template"));
676 self::register(
"rib_armor_trim_smithing_template",
new Item(
new IID(Ids::RIB_ARMOR_TRIM_SMITHING_TEMPLATE),
"Rib Armor Trim Smithing Template"));
677 self::register(
"sentry_armor_trim_smithing_template",
new Item(
new IID(Ids::SENTRY_ARMOR_TRIM_SMITHING_TEMPLATE),
"Sentry Armor Trim Smithing Template"));
678 self::register(
"shaper_armor_trim_smithing_template",
new Item(
new IID(Ids::SHAPER_ARMOR_TRIM_SMITHING_TEMPLATE),
"Shaper Armor Trim Smithing Template"));
679 self::register(
"silence_armor_trim_smithing_template",
new Item(
new IID(Ids::SILENCE_ARMOR_TRIM_SMITHING_TEMPLATE),
"Silence Armor Trim Smithing Template"));
680 self::register(
"snout_armor_trim_smithing_template",
new Item(
new IID(Ids::SNOUT_ARMOR_TRIM_SMITHING_TEMPLATE),
"Snout Armor Trim Smithing Template"));
681 self::register(
"spire_armor_trim_smithing_template",
new Item(
new IID(Ids::SPIRE_ARMOR_TRIM_SMITHING_TEMPLATE),
"Spire Armor Trim Smithing Template"));
682 self::register(
"tide_armor_trim_smithing_template",
new Item(
new IID(Ids::TIDE_ARMOR_TRIM_SMITHING_TEMPLATE),
"Tide Armor Trim Smithing Template"));
683 self::register(
"vex_armor_trim_smithing_template",
new Item(
new IID(Ids::VEX_ARMOR_TRIM_SMITHING_TEMPLATE),
"Vex Armor Trim Smithing Template"));
684 self::register(
"ward_armor_trim_smithing_template",
new Item(
new IID(Ids::WARD_ARMOR_TRIM_SMITHING_TEMPLATE),
"Ward Armor Trim Smithing Template"));
685 self::register(
"wayfinder_armor_trim_smithing_template",
new Item(
new IID(Ids::WAYFINDER_ARMOR_TRIM_SMITHING_TEMPLATE),
"Wayfinder Armor Trim Smithing Template"));
686 self::register(
"wild_armor_trim_smithing_template",
new Item(
new IID(Ids::WILD_ARMOR_TRIM_SMITHING_TEMPLATE),
"Wild Armor Trim Smithing Template"));