From ba2baba7ccb38b4e88aa6adc48cd36cbe23894bd Mon Sep 17 00:00:00 2001 From: "Dylan K. Taylor" Date: Thu, 14 Jul 2022 20:39:09 +0100 Subject: [PATCH] Added netherite blocks and items --- src/block/Block.php | 4 ++ src/block/BlockTypeIds.php | 3 +- src/block/VanillaBlocks.php | 5 +++ .../BlockObjectToBlockStateSerializer.php | 1 + .../BlockStateToBlockObjectDeserializer.php | 1 + src/data/bedrock/item/ItemDeserializer.php | 22 +++++------ src/data/bedrock/item/ItemSerializer.php | 11 ++++++ src/entity/object/ItemEntity.php | 4 ++ src/item/Armor.php | 4 ++ src/item/ArmorTypeInfo.php | 12 +++++- src/item/Item.php | 7 ++++ src/item/ItemBlock.php | 4 ++ src/item/ItemTypeIds.php | 3 +- src/item/StringToItemParser.php | 12 ++++++ src/item/TieredTool.php | 4 ++ src/item/ToolTier.php | 4 +- src/item/VanillaItems.php | 37 +++++++++++++++++-- 17 files changed, 119 insertions(+), 19 deletions(-) diff --git a/src/block/Block.php b/src/block/Block.php index 591f54922..20f77c8f1 100644 --- a/src/block/Block.php +++ b/src/block/Block.php @@ -504,6 +504,10 @@ class Block{ return 64; } + public function isFireProofAsItem() : bool{ + return false; + } + /** * Returns the chance that the block will catch fire from nearby fire sources. Higher values lead to faster catching * fire. diff --git a/src/block/BlockTypeIds.php b/src/block/BlockTypeIds.php index 6958efb54..8ef7a2ee2 100644 --- a/src/block/BlockTypeIds.php +++ b/src/block/BlockTypeIds.php @@ -692,6 +692,7 @@ final class BlockTypeIds{ public const HANGING_ROOTS = 10665; public const CARTOGRAPHY_TABLE = 10666; public const SMITHING_TABLE = 10667; + public const NETHERITE = 10668; - public const FIRST_UNUSED_BLOCK_ID = 10668; + public const FIRST_UNUSED_BLOCK_ID = 10669; } diff --git a/src/block/VanillaBlocks.php b/src/block/VanillaBlocks.php index 3939bb3b7..c3a76bbeb 100644 --- a/src/block/VanillaBlocks.php +++ b/src/block/VanillaBlocks.php @@ -496,6 +496,7 @@ use function mb_strtolower; * @method static Wall MUD_BRICK_WALL() * @method static MushroomStem MUSHROOM_STEM() * @method static Mycelium MYCELIUM() + * @method static Opaque NETHERITE() * @method static Netherrack NETHERRACK() * @method static Opaque NETHER_BRICKS() * @method static Fence NETHER_BRICK_FENCE() @@ -1380,6 +1381,10 @@ final class VanillaBlocks{ $slabBreakInfo = new BreakInfo(2.0, ToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel(), 30.0); self::register("ancient_debris", new Opaque(new BID(Ids::ANCIENT_DEBRIS), "Ancient Debris", new BreakInfo(30, ToolType::PICKAXE, ToolTier::DIAMOND()->getHarvestLevel(), 3600.0))); + $netheriteBreakInfo = new BreakInfo(50, ToolType::PICKAXE, ToolTier::DIAMOND()->getHarvestLevel(), 3600.0); + self::register("netherite", new class(new BID(Ids::NETHERITE), "Netherite Block", $netheriteBreakInfo) extends Opaque{ + public function isFireProofAsItem() : bool{ return true; } + }); $basaltBreakInfo = new BreakInfo(1.25, ToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel(), 21.0); self::register("basalt", new SimplePillar(new BID(Ids::BASALT), "Basalt", $basaltBreakInfo)); diff --git a/src/data/bedrock/block/convert/BlockObjectToBlockStateSerializer.php b/src/data/bedrock/block/convert/BlockObjectToBlockStateSerializer.php index 039b4aab1..71487e461 100644 --- a/src/data/bedrock/block/convert/BlockObjectToBlockStateSerializer.php +++ b/src/data/bedrock/block/convert/BlockObjectToBlockStateSerializer.php @@ -1033,6 +1033,7 @@ final class BlockObjectToBlockStateSerializer implements BlockStateSerializer{ $this->map(Blocks::MUSHROOM_STEM(), fn() => Writer::create(Ids::BROWN_MUSHROOM_BLOCK) ->writeInt(StateNames::HUGE_MUSHROOM_BITS, BlockLegacyMetadata::MUSHROOM_BLOCK_STEM)); $this->mapSimple(Blocks::MYCELIUM(), Ids::MYCELIUM); + $this->mapSimple(Blocks::NETHERITE(), Ids::NETHERITE_BLOCK); $this->mapSimple(Blocks::NETHERRACK(), Ids::NETHERRACK); $this->mapSimple(Blocks::NETHER_BRICKS(), Ids::NETHER_BRICK); $this->mapSimple(Blocks::NETHER_BRICK_FENCE(), Ids::NETHER_BRICK_FENCE); diff --git a/src/data/bedrock/block/convert/BlockStateToBlockObjectDeserializer.php b/src/data/bedrock/block/convert/BlockStateToBlockObjectDeserializer.php index 27fa0da74..8923008df 100644 --- a/src/data/bedrock/block/convert/BlockStateToBlockObjectDeserializer.php +++ b/src/data/bedrock/block/convert/BlockStateToBlockObjectDeserializer.php @@ -840,6 +840,7 @@ final class BlockStateToBlockObjectDeserializer implements BlockStateDeserialize ->setAge($in->readBoundedInt(StateNames::AGE, 0, 3)); }); $this->map(Ids::NETHER_WART_BLOCK, fn() => Blocks::NETHER_WART_BLOCK()); + $this->map(Ids::NETHERITE_BLOCK, fn() => Blocks::NETHERITE()); $this->map(Ids::NETHERRACK, fn() => Blocks::NETHERRACK()); $this->map(Ids::NETHERREACTOR, fn() => Blocks::NETHER_REACTOR_CORE()); $this->mapStairs(Ids::NORMAL_STONE_STAIRS, fn() => Blocks::STONE_STAIRS()); diff --git a/src/data/bedrock/item/ItemDeserializer.php b/src/data/bedrock/item/ItemDeserializer.php index fce02de48..dfa463bc8 100644 --- a/src/data/bedrock/item/ItemDeserializer.php +++ b/src/data/bedrock/item/ItemDeserializer.php @@ -458,17 +458,17 @@ final class ItemDeserializer{ $this->map(Ids::NETHER_STAR, fn() => Items::NETHER_STAR()); $this->map(Ids::NETHER_WART, fn() => Blocks::NETHER_WART()->asItem()); $this->map(Ids::NETHERBRICK, fn() => Items::NETHER_BRICK()); - //TODO: minecraft:netherite_axe - //TODO: minecraft:netherite_boots - //TODO: minecraft:netherite_chestplate - //TODO: minecraft:netherite_helmet - //TODO: minecraft:netherite_hoe - //TODO: minecraft:netherite_ingot - //TODO: minecraft:netherite_leggings - //TODO: minecraft:netherite_pickaxe - //TODO: minecraft:netherite_scrap - //TODO: minecraft:netherite_shovel - //TODO: minecraft:netherite_sword + $this->map(Ids::NETHERITE_AXE, fn() => Items::NETHERITE_AXE()); + $this->map(Ids::NETHERITE_BOOTS, fn() => Items::NETHERITE_BOOTS()); + $this->map(Ids::NETHERITE_CHESTPLATE, fn() => Items::NETHERITE_CHESTPLATE()); + $this->map(Ids::NETHERITE_HELMET, fn() => Items::NETHERITE_HELMET()); + $this->map(Ids::NETHERITE_HOE, fn() => Items::NETHERITE_HOE()); + $this->map(Ids::NETHERITE_INGOT, fn() => Items::NETHERITE_INGOT()); + $this->map(Ids::NETHERITE_LEGGINGS, fn() => Items::NETHERITE_LEGGINGS()); + $this->map(Ids::NETHERITE_PICKAXE, fn() => Items::NETHERITE_PICKAXE()); + $this->map(Ids::NETHERITE_SCRAP, fn() => Items::NETHERITE_SCRAP()); + $this->map(Ids::NETHERITE_SHOVEL, fn() => Items::NETHERITE_SHOVEL()); + $this->map(Ids::NETHERITE_SWORD, fn() => Items::NETHERITE_SWORD()); //TODO: minecraft:npc_spawn_egg $this->map(Ids::OAK_BOAT, fn() => Items::OAK_BOAT()); $this->map(Ids::OAK_SIGN, fn() => Blocks::OAK_SIGN()->asItem()); diff --git a/src/data/bedrock/item/ItemSerializer.php b/src/data/bedrock/item/ItemSerializer.php index 1da1395c6..b652d3a3a 100644 --- a/src/data/bedrock/item/ItemSerializer.php +++ b/src/data/bedrock/item/ItemSerializer.php @@ -436,6 +436,17 @@ final class ItemSerializer{ $this->map(Items::MINECART(), self::id(Ids::MINECART)); $this->map(Items::MUSHROOM_STEW(), self::id(Ids::MUSHROOM_STEW)); $this->map(Items::NAUTILUS_SHELL(), self::id(Ids::NAUTILUS_SHELL)); + $this->map(Items::NETHERITE_AXE(), self::id(Ids::NETHERITE_AXE)); + $this->map(Items::NETHERITE_BOOTS(), self::id(Ids::NETHERITE_BOOTS)); + $this->map(Items::NETHERITE_CHESTPLATE(), self::id(Ids::NETHERITE_CHESTPLATE)); + $this->map(Items::NETHERITE_HELMET(), self::id(Ids::NETHERITE_HELMET)); + $this->map(Items::NETHERITE_HOE(), self::id(Ids::NETHERITE_HOE)); + $this->map(Items::NETHERITE_INGOT(), self::id(Ids::NETHERITE_INGOT)); + $this->map(Items::NETHERITE_LEGGINGS(), self::id(Ids::NETHERITE_LEGGINGS)); + $this->map(Items::NETHERITE_PICKAXE(), self::id(Ids::NETHERITE_PICKAXE)); + $this->map(Items::NETHERITE_SCRAP(), self::id(Ids::NETHERITE_SCRAP)); + $this->map(Items::NETHERITE_SHOVEL(), self::id(Ids::NETHERITE_SHOVEL)); + $this->map(Items::NETHERITE_SWORD(), self::id(Ids::NETHERITE_SWORD)); $this->map(Items::NETHER_BRICK(), self::id(Ids::NETHERBRICK)); $this->map(Items::NETHER_QUARTZ(), self::id(Ids::QUARTZ)); $this->map(Items::NETHER_STAR(), self::id(Ids::NETHER_STAR)); diff --git a/src/entity/object/ItemEntity.php b/src/entity/object/ItemEntity.php index b6b77ead9..1c6f0ae13 100644 --- a/src/entity/object/ItemEntity.php +++ b/src/entity/object/ItemEntity.php @@ -200,6 +200,10 @@ class ItemEntity extends Entity{ return $this->item; } + public function isFireProof() : bool{ + return $this->item->isFireProof(); + } + public function canCollideWith(Entity $entity) : bool{ return false; } diff --git a/src/item/Armor.php b/src/item/Armor.php index 19947dd45..5304309e3 100644 --- a/src/item/Armor.php +++ b/src/item/Armor.php @@ -68,6 +68,10 @@ class Armor extends Durable{ return 1; } + public function isFireProof() : bool{ + return $this->armorInfo->isFireProof(); + } + /** * Returns the dyed colour of this armour piece. This generally only applies to leather armour. */ diff --git a/src/item/ArmorTypeInfo.php b/src/item/ArmorTypeInfo.php index c6b25bd6a..580b73df3 100644 --- a/src/item/ArmorTypeInfo.php +++ b/src/item/ArmorTypeInfo.php @@ -27,7 +27,9 @@ class ArmorTypeInfo{ public function __construct( private int $defensePoints, private int $maxDurability, - private int $armorSlot + private int $armorSlot, + private int $toughness = 0, + private bool $fireProof = false ){} public function getDefensePoints() : int{ @@ -41,4 +43,12 @@ class ArmorTypeInfo{ public function getArmorSlot() : int{ return $this->armorSlot; } + + public function getToughness() : int{ + return $this->toughness; + } + + public function isFireProof() : bool{ + return $this->fireProof; + } } diff --git a/src/item/Item.php b/src/item/Item.php index 9dbc1a4ab..4f0b814bf 100644 --- a/src/item/Item.php +++ b/src/item/Item.php @@ -467,6 +467,13 @@ class Item implements \JsonSerializable{ return $item; } + /** + * Returns whether this item can survive being dropped into lava, or fire. + */ + public function isFireProof() : bool{ + return false; + } + /** * Returns how many points of damage this item will deal to an entity when used as a weapon. */ diff --git a/src/item/ItemBlock.php b/src/item/ItemBlock.php index 8eb46cbdd..4ce6c2947 100644 --- a/src/item/ItemBlock.php +++ b/src/item/ItemBlock.php @@ -63,6 +63,10 @@ final class ItemBlock extends Item{ return $this->getBlock()->getFuelTime(); } + public function isFireProof() : bool{ + return $this->getBlock()->isFireProofAsItem(); + } + public function getMaxStackSize() : int{ return $this->getBlock()->getMaxStackSize(); } diff --git a/src/item/ItemTypeIds.php b/src/item/ItemTypeIds.php index 6db7f7536..ff6ef0a04 100644 --- a/src/item/ItemTypeIds.php +++ b/src/item/ItemTypeIds.php @@ -293,6 +293,7 @@ final class ItemTypeIds{ public const RAW_IRON = 20254; public const RAW_GOLD = 20255; public const SPYGLASS = 20256; + public const NETHERITE_SCRAP = 20257; - public const FIRST_UNUSED_ITEM_ID = 20257; + public const FIRST_UNUSED_ITEM_ID = 20258; } diff --git a/src/item/StringToItemParser.php b/src/item/StringToItemParser.php index fb034e109..c96f2ead0 100644 --- a/src/item/StringToItemParser.php +++ b/src/item/StringToItemParser.php @@ -780,6 +780,7 @@ final class StringToItemParser extends StringToTParser{ $result->registerBlock("nether_wart", fn() => Blocks::NETHER_WART()); $result->registerBlock("nether_wart_block", fn() => Blocks::NETHER_WART_BLOCK()); $result->registerBlock("nether_wart_plant", fn() => Blocks::NETHER_WART()); + $result->registerBlock("netherite_block", fn() => Blocks::NETHERITE()); $result->registerBlock("netherrack", fn() => Blocks::NETHERRACK()); $result->registerBlock("netherreactor", fn() => Blocks::NETHER_REACTOR_CORE()); $result->registerBlock("normal_stone_stairs", fn() => Blocks::STONE_STAIRS()); @@ -1325,6 +1326,17 @@ final class StringToItemParser extends StringToTParser{ $result->register("nether_quartz", fn() => Items::NETHER_QUARTZ()); $result->register("nether_star", fn() => Items::NETHER_STAR()); $result->register("netherbrick", fn() => Items::NETHER_BRICK()); + $result->register("netherite_axe", fn() => Items::NETHERITE_AXE()); + $result->register("netherite_boots", fn() => Items::NETHERITE_BOOTS()); + $result->register("netherite_chestplate", fn() => Items::NETHERITE_CHESTPLATE()); + $result->register("netherite_helmet", fn() => Items::NETHERITE_HELMET()); + $result->register("netherite_hoe", fn() => Items::NETHERITE_HOE()); + $result->register("netherite_ingot", fn() => Items::NETHERITE_INGOT()); + $result->register("netherite_leggings", fn() => Items::NETHERITE_LEGGINGS()); + $result->register("netherite_pickaxe", fn() => Items::NETHERITE_PICKAXE()); + $result->register("netherite_scrap", fn() => Items::NETHERITE_SCRAP()); + $result->register("netherite_shovel", fn() => Items::NETHERITE_SHOVEL()); + $result->register("netherite_sword", fn() => Items::NETHERITE_SWORD()); $result->register("netherstar", fn() => Items::NETHER_STAR()); $result->register("night_vision_potion", fn() => Items::POTION()->setType(PotionType::NIGHT_VISION())); $result->register("night_vision_splash_potion", fn() => Items::SPLASH_POTION()->setType(PotionType::NIGHT_VISION())); diff --git a/src/item/TieredTool.php b/src/item/TieredTool.php index 0975d68d5..e7d4f2201 100644 --- a/src/item/TieredTool.php +++ b/src/item/TieredTool.php @@ -50,4 +50,8 @@ abstract class TieredTool extends Tool{ return 0; } + + public function isFireProof() : bool{ + return $this->tier->equals(ToolTier::NETHERITE()); + } } diff --git a/src/item/ToolTier.php b/src/item/ToolTier.php index 08d7c52b6..231e233c3 100644 --- a/src/item/ToolTier.php +++ b/src/item/ToolTier.php @@ -34,6 +34,7 @@ use pocketmine\utils\EnumTrait; * @method static ToolTier DIAMOND() * @method static ToolTier GOLD() * @method static ToolTier IRON() + * @method static ToolTier NETHERITE() * @method static ToolTier STONE() * @method static ToolTier WOOD() */ @@ -48,7 +49,8 @@ final class ToolTier{ new self("gold", 2, 33, 5, 12), new self("stone", 3, 132, 6, 4), new self("iron", 4, 251, 7, 6), - new self("diamond", 5, 1562, 8, 8) + new self("diamond", 5, 1562, 8, 8), + new self("netherite", 6, 2032, 9, 9) ); } diff --git a/src/item/VanillaItems.php b/src/item/VanillaItems.php index ffdab1910..b229039ec 100644 --- a/src/item/VanillaItems.php +++ b/src/item/VanillaItems.php @@ -210,6 +210,17 @@ use pocketmine\world\World; * @method static Minecart MINECART() * @method static MushroomStew MUSHROOM_STEW() * @method static Item NAUTILUS_SHELL() + * @method static Axe NETHERITE_AXE() + * @method static Armor NETHERITE_BOOTS() + * @method static Armor NETHERITE_CHESTPLATE() + * @method static Armor NETHERITE_HELMET() + * @method static Hoe NETHERITE_HOE() + * @method static Item NETHERITE_INGOT() + * @method static Armor NETHERITE_LEGGINGS() + * @method static Pickaxe NETHERITE_PICKAXE() + * @method static Item NETHERITE_SCRAP() + * @method static Shovel NETHERITE_SHOVEL() + * @method static Sword NETHERITE_SWORD() * @method static Item NETHER_BRICK() * @method static Item NETHER_QUARTZ() * @method static Item NETHER_STAR() @@ -446,6 +457,12 @@ final class VanillaItems{ self::register("nether_brick", new Item(new IID(Ids::NETHER_BRICK), "Nether Brick")); self::register("nether_quartz", new Item(new IID(Ids::NETHER_QUARTZ), "Nether Quartz")); self::register("nether_star", new Item(new IID(Ids::NETHER_STAR), "Nether Star")); + self::register("netherite_ingot", new class(new IID(Ids::NETHERITE_INGOT), "Netherite Ingot") extends Item{ + public function isFireProof() : bool{ return true; } + }); + self::register("netherite_scrap", new class(new IID(Ids::NETHERITE_SCRAP), "Netherite Scrap") extends Item{ + public function isFireProof() : bool{ return true; } + }); self::register("oak_sign", new ItemBlockWallOrFloor(new IID(Ids::OAK_SIGN), Blocks::OAK_SIGN(), Blocks::OAK_WALL_SIGN())); self::register("painting", new PaintingItem(new IID(Ids::PAINTING), "Painting")); self::register("paper", new Item(new IID(Ids::PAPER), "Paper")); @@ -544,51 +561,63 @@ final class VanillaItems{ self::register("diamond_axe", new Axe(new IID(Ids::DIAMOND_AXE), "Diamond Axe", ToolTier::DIAMOND())); self::register("golden_axe", new Axe(new IID(Ids::GOLDEN_AXE), "Golden Axe", ToolTier::GOLD())); self::register("iron_axe", new Axe(new IID(Ids::IRON_AXE), "Iron Axe", ToolTier::IRON())); + self::register("netherite_axe", new Axe(new IID(Ids::NETHERITE_AXE), "Netherite Axe", ToolTier::NETHERITE())); self::register("stone_axe", new Axe(new IID(Ids::STONE_AXE), "Stone Axe", ToolTier::STONE())); self::register("wooden_axe", new Axe(new IID(Ids::WOODEN_AXE), "Wooden Axe", ToolTier::WOOD())); self::register("diamond_hoe", new Hoe(new IID(Ids::DIAMOND_HOE), "Diamond Hoe", ToolTier::DIAMOND())); self::register("golden_hoe", new Hoe(new IID(Ids::GOLDEN_HOE), "Golden Hoe", ToolTier::GOLD())); self::register("iron_hoe", new Hoe(new IID(Ids::IRON_HOE), "Iron Hoe", ToolTier::IRON())); + self::register("netherite_hoe", new Hoe(new IID(Ids::NETHERITE_HOE), "Netherite Hoe", ToolTier::NETHERITE())); self::register("stone_hoe", new Hoe(new IID(Ids::STONE_HOE), "Stone Hoe", ToolTier::STONE())); self::register("wooden_hoe", new Hoe(new IID(Ids::WOODEN_HOE), "Wooden Hoe", ToolTier::WOOD())); self::register("diamond_pickaxe", new Pickaxe(new IID(Ids::DIAMOND_PICKAXE), "Diamond Pickaxe", ToolTier::DIAMOND())); self::register("golden_pickaxe", new Pickaxe(new IID(Ids::GOLDEN_PICKAXE), "Golden Pickaxe", ToolTier::GOLD())); self::register("iron_pickaxe", new Pickaxe(new IID(Ids::IRON_PICKAXE), "Iron Pickaxe", ToolTier::IRON())); + self::register("netherite_pickaxe", new Pickaxe(new IID(Ids::NETHERITE_PICKAXE), "Netherite Pickaxe", ToolTier::NETHERITE())); self::register("stone_pickaxe", new Pickaxe(new IID(Ids::STONE_PICKAXE), "Stone Pickaxe", ToolTier::STONE())); self::register("wooden_pickaxe", new Pickaxe(new IID(Ids::WOODEN_PICKAXE), "Wooden Pickaxe", ToolTier::WOOD())); self::register("diamond_shovel", new Shovel(new IID(Ids::DIAMOND_SHOVEL), "Diamond Shovel", ToolTier::DIAMOND())); self::register("golden_shovel", new Shovel(new IID(Ids::GOLDEN_SHOVEL), "Golden Shovel", ToolTier::GOLD())); self::register("iron_shovel", new Shovel(new IID(Ids::IRON_SHOVEL), "Iron Shovel", ToolTier::IRON())); + self::register("netherite_shovel", new Shovel(new IID(Ids::NETHERITE_SHOVEL), "Netherite Shovel", ToolTier::NETHERITE())); self::register("stone_shovel", new Shovel(new IID(Ids::STONE_SHOVEL), "Stone Shovel", ToolTier::STONE())); self::register("wooden_shovel", new Shovel(new IID(Ids::WOODEN_SHOVEL), "Wooden Shovel", ToolTier::WOOD())); self::register("diamond_sword", new Sword(new IID(Ids::DIAMOND_SWORD), "Diamond Sword", ToolTier::DIAMOND())); self::register("golden_sword", new Sword(new IID(Ids::GOLDEN_SWORD), "Golden Sword", ToolTier::GOLD())); self::register("iron_sword", new Sword(new IID(Ids::IRON_SWORD), "Iron Sword", ToolTier::IRON())); + self::register("netherite_sword", new Sword(new IID(Ids::NETHERITE_SWORD), "Netherite Sword", ToolTier::NETHERITE())); self::register("stone_sword", new Sword(new IID(Ids::STONE_SWORD), "Stone Sword", ToolTier::STONE())); self::register("wooden_sword", new Sword(new IID(Ids::WOODEN_SWORD), "Wooden Sword", ToolTier::WOOD())); } private static function registerArmorItems() : void{ self::register("chainmail_boots", new Armor(new IID(Ids::CHAINMAIL_BOOTS), "Chainmail Boots", new ArmorTypeInfo(1, 196, ArmorInventory::SLOT_FEET))); - self::register("diamond_boots", new Armor(new IID(Ids::DIAMOND_BOOTS), "Diamond Boots", new ArmorTypeInfo(3, 430, ArmorInventory::SLOT_FEET))); + self::register("diamond_boots", new Armor(new IID(Ids::DIAMOND_BOOTS), "Diamond Boots", new ArmorTypeInfo(3, 430, ArmorInventory::SLOT_FEET, 2))); self::register("golden_boots", new Armor(new IID(Ids::GOLDEN_BOOTS), "Golden Boots", new ArmorTypeInfo(1, 92, ArmorInventory::SLOT_FEET))); self::register("iron_boots", new Armor(new IID(Ids::IRON_BOOTS), "Iron Boots", new ArmorTypeInfo(2, 196, ArmorInventory::SLOT_FEET))); self::register("leather_boots", new Armor(new IID(Ids::LEATHER_BOOTS), "Leather Boots", new ArmorTypeInfo(1, 66, ArmorInventory::SLOT_FEET))); + self::register("netherite_boots", new Armor(new IID(Ids::NETHERITE_BOOTS), "Netherite Boots", new ArmorTypeInfo(3, 482, ArmorInventory::SLOT_FEET, 3, true))); + self::register("chainmail_chestplate", new Armor(new IID(Ids::CHAINMAIL_CHESTPLATE), "Chainmail Chestplate", new ArmorTypeInfo(5, 241, ArmorInventory::SLOT_CHEST))); - self::register("diamond_chestplate", new Armor(new IID(Ids::DIAMOND_CHESTPLATE), "Diamond Chestplate", new ArmorTypeInfo(8, 529, ArmorInventory::SLOT_CHEST))); + self::register("diamond_chestplate", new Armor(new IID(Ids::DIAMOND_CHESTPLATE), "Diamond Chestplate", new ArmorTypeInfo(8, 529, ArmorInventory::SLOT_CHEST, 2))); self::register("golden_chestplate", new Armor(new IID(Ids::GOLDEN_CHESTPLATE), "Golden Chestplate", new ArmorTypeInfo(5, 113, ArmorInventory::SLOT_CHEST))); self::register("iron_chestplate", new Armor(new IID(Ids::IRON_CHESTPLATE), "Iron Chestplate", new ArmorTypeInfo(6, 241, ArmorInventory::SLOT_CHEST))); self::register("leather_tunic", new Armor(new IID(Ids::LEATHER_TUNIC), "Leather Tunic", new ArmorTypeInfo(3, 81, ArmorInventory::SLOT_CHEST))); + self::register("netherite_chestplate", new Armor(new IID(Ids::NETHERITE_CHESTPLATE), "Netherite Chestplate", new ArmorTypeInfo(8, 593, ArmorInventory::SLOT_CHEST, 3, true))); + self::register("chainmail_helmet", new Armor(new IID(Ids::CHAINMAIL_HELMET), "Chainmail Helmet", new ArmorTypeInfo(2, 166, ArmorInventory::SLOT_HEAD))); - self::register("diamond_helmet", new Armor(new IID(Ids::DIAMOND_HELMET), "Diamond Helmet", new ArmorTypeInfo(3, 364, ArmorInventory::SLOT_HEAD))); + self::register("diamond_helmet", new Armor(new IID(Ids::DIAMOND_HELMET), "Diamond Helmet", new ArmorTypeInfo(3, 364, ArmorInventory::SLOT_HEAD, 2))); self::register("golden_helmet", new Armor(new IID(Ids::GOLDEN_HELMET), "Golden Helmet", new ArmorTypeInfo(2, 78, ArmorInventory::SLOT_HEAD))); self::register("iron_helmet", new Armor(new IID(Ids::IRON_HELMET), "Iron Helmet", new ArmorTypeInfo(2, 166, ArmorInventory::SLOT_HEAD))); self::register("leather_cap", new Armor(new IID(Ids::LEATHER_CAP), "Leather Cap", new ArmorTypeInfo(1, 56, ArmorInventory::SLOT_HEAD))); + self::register("netherite_helmet", new Armor(new IID(Ids::NETHERITE_HELMET), "Netherite Helmet", new ArmorTypeInfo(3, 408, ArmorInventory::SLOT_HEAD, 3, true))); + self::register("chainmail_leggings", new Armor(new IID(Ids::CHAINMAIL_LEGGINGS), "Chainmail Leggings", new ArmorTypeInfo(4, 226, ArmorInventory::SLOT_LEGS))); - self::register("diamond_leggings", new Armor(new IID(Ids::DIAMOND_LEGGINGS), "Diamond Leggings", new ArmorTypeInfo(6, 496, ArmorInventory::SLOT_LEGS))); + self::register("diamond_leggings", new Armor(new IID(Ids::DIAMOND_LEGGINGS), "Diamond Leggings", new ArmorTypeInfo(6, 496, ArmorInventory::SLOT_LEGS, 2))); self::register("golden_leggings", new Armor(new IID(Ids::GOLDEN_LEGGINGS), "Golden Leggings", new ArmorTypeInfo(3, 106, ArmorInventory::SLOT_LEGS))); self::register("iron_leggings", new Armor(new IID(Ids::IRON_LEGGINGS), "Iron Leggings", new ArmorTypeInfo(5, 226, ArmorInventory::SLOT_LEGS))); self::register("leather_pants", new Armor(new IID(Ids::LEATHER_PANTS), "Leather Pants", new ArmorTypeInfo(2, 76, ArmorInventory::SLOT_LEGS))); + self::register("netherite_leggings", new Armor(new IID(Ids::NETHERITE_LEGGINGS), "Netherite Leggings", new ArmorTypeInfo(6, 556, ArmorInventory::SLOT_LEGS, 3, true))); } }