From d53a1a5cc44a3f838c35fed3a0df8e134858736a Mon Sep 17 00:00:00 2001 From: onebeastchris Date: Thu, 28 Nov 2024 02:17:11 +0800 Subject: [PATCH 01/31] Start on 1.21.4 support --- .../entity/vehicle/VehicleComponent.java | 6 +++++- .../java/org/geysermc/geyser/item/Items.java | 5 +++++ .../org/geysermc/geyser/item/type/Item.java | 18 ++++++------------ .../translator/item/CustomItemTranslator.java | 13 +++++++++++-- .../BedrockPlayerAuthInputTranslator.java | 5 +++-- .../java/entity/JavaMoveVehicleTranslator.java | 7 +++---- .../geysermc/geyser/util/InventoryUtils.java | 11 ++++++----- .../network/ScoreboardIssueTests.java | 2 +- gradle.properties | 2 +- gradle/libs.versions.toml | 6 +++--- settings.gradle.kts | 4 ++-- 11 files changed, 46 insertions(+), 33 deletions(-) diff --git a/core/src/main/java/org/geysermc/geyser/entity/vehicle/VehicleComponent.java b/core/src/main/java/org/geysermc/geyser/entity/vehicle/VehicleComponent.java index 91f54162b..61875ec90 100644 --- a/core/src/main/java/org/geysermc/geyser/entity/vehicle/VehicleComponent.java +++ b/core/src/main/java/org/geysermc/geyser/entity/vehicle/VehicleComponent.java @@ -105,6 +105,10 @@ public class VehicleComponent { boundingBox.setMiddleZ(z); } + public void moveAbsolute(Vector3d vec) { + moveAbsolute(vec.getX(), vec.getY(), vec.getZ()); + } + public void moveRelative(double x, double y, double z) { boundingBox.translate(x, y, z); } @@ -756,7 +760,7 @@ public class VehicleComponent { vehicle.getSession().sendUpstreamPacket(moveEntityDeltaPacket); } - ServerboundMoveVehiclePacket moveVehiclePacket = new ServerboundMoveVehiclePacket(javaPos.getX(), javaPos.getY(), javaPos.getZ(), rotation.getX(), rotation.getY()); + ServerboundMoveVehiclePacket moveVehiclePacket = new ServerboundMoveVehiclePacket(javaPos, rotation.getX(), rotation.getY(), vehicle.isOnGround()); vehicle.getSession().sendDownstreamPacket(moveVehiclePacket); } diff --git a/core/src/main/java/org/geysermc/geyser/item/Items.java b/core/src/main/java/org/geysermc/geyser/item/Items.java index 7af5aadce..c7ab076b4 100644 --- a/core/src/main/java/org/geysermc/geyser/item/Items.java +++ b/core/src/main/java/org/geysermc/geyser/item/Items.java @@ -70,6 +70,11 @@ import static org.geysermc.geyser.item.type.Item.builder; */ @SuppressWarnings("unused") public final class Items { + + static { + // Load data components here + } + public static final Item AIR = register(new Item("air", builder())); public static final Item STONE = register(new BlockItem(builder(), Blocks.STONE)); public static final Item GRANITE = register(new BlockItem(builder(), Blocks.GRANITE)); diff --git a/core/src/main/java/org/geysermc/geyser/item/type/Item.java b/core/src/main/java/org/geysermc/geyser/item/type/Item.java index 249936e5a..0155c4e35 100644 --- a/core/src/main/java/org/geysermc/geyser/item/type/Item.java +++ b/core/src/main/java/org/geysermc/geyser/item/type/Item.java @@ -62,12 +62,16 @@ public class Item { private static final Map BLOCK_TO_ITEM = new HashMap<>(); protected final Key javaIdentifier; private int javaId = -1; + + // TODO remove these private final int stackSize; private final int attackDamage; private final int maxDamage; private final Rarity rarity; private final boolean glint; + private DataComponents dataComponents; + public Item(String javaIdentifier, Builder builder) { this.javaIdentifier = MinecraftKey.key(javaIdentifier); this.stackSize = builder.stackSize; @@ -86,7 +90,7 @@ public class Item { } public int maxDamage() { - return maxDamage; + return dataComponents.getOrDefault(DataComponentType.MAX_DAMAGE, 0); } public int attackDamage() { @@ -94,7 +98,7 @@ public class Item { } public int maxStackSize() { - return stackSize; + return dataComponents.getOrDefault(DataComponentType.MAX_STACK_SIZE, 1); } public Rarity rarity() { @@ -317,16 +321,6 @@ public class Item { return this; } - public Builder rarity(Rarity rarity) { - this.rarity = rarity; - return this; - } - - public Builder glint(boolean glintOverride) { - this.glint = glintOverride; - return this; - } - private Builder() { } } diff --git a/core/src/main/java/org/geysermc/geyser/translator/item/CustomItemTranslator.java b/core/src/main/java/org/geysermc/geyser/translator/item/CustomItemTranslator.java index 91eee3895..b65b06431 100644 --- a/core/src/main/java/org/geysermc/geyser/translator/item/CustomItemTranslator.java +++ b/core/src/main/java/org/geysermc/geyser/translator/item/CustomItemTranslator.java @@ -25,6 +25,7 @@ package org.geysermc.geyser.translator.item; +import org.geysermc.mcprotocollib.protocol.data.game.item.component.CustomModelData; import org.geysermc.mcprotocollib.protocol.data.game.item.component.DataComponents; import org.geysermc.mcprotocollib.protocol.data.game.item.component.DataComponentType; import it.unimi.dsi.fastutil.Pair; @@ -52,7 +53,15 @@ public final class CustomItemTranslator { return null; } - int customModelData = components.getOrDefault(DataComponentType.CUSTOM_MODEL_DATA, 0); + // TODO 1.21.4 + float customModelDataInt = 0; + CustomModelData customModelData = components.get(DataComponentType.CUSTOM_MODEL_DATA); + if (customModelData != null) { + if (!customModelData.floats().isEmpty()) { + customModelDataInt = customModelData.floats().get(0); + } + } + boolean checkDamage = mapping.getJavaItem().maxDamage() > 0; int damage = !checkDamage ? 0 : components.getOrDefault(DataComponentType.DAMAGE, 0); boolean unbreakable = checkDamage && !isDamaged(components, damage); @@ -88,7 +97,7 @@ public final class CustomItemTranslator { } OptionalInt customModelDataOption = options.customModelData(); - if (customModelDataOption.isPresent() && customModelData < customModelDataOption.getAsInt()) { + if (customModelDataOption.isPresent() && customModelDataInt < customModelDataOption.getAsInt()) { continue; } diff --git a/core/src/main/java/org/geysermc/geyser/translator/protocol/bedrock/entity/player/input/BedrockPlayerAuthInputTranslator.java b/core/src/main/java/org/geysermc/geyser/translator/protocol/bedrock/entity/player/input/BedrockPlayerAuthInputTranslator.java index 8e2781a98..b57187018 100644 --- a/core/src/main/java/org/geysermc/geyser/translator/protocol/bedrock/entity/player/input/BedrockPlayerAuthInputTranslator.java +++ b/core/src/main/java/org/geysermc/geyser/translator/protocol/bedrock/entity/player/input/BedrockPlayerAuthInputTranslator.java @@ -312,8 +312,9 @@ public final class BedrockPlayerAuthInputTranslator extends PacketTranslator { @@ -42,9 +41,9 @@ public class JavaMoveVehicleTranslator extends PacketTranslator Date: Sun, 1 Dec 2024 03:22:34 +0800 Subject: [PATCH 02/31] More work on 1.21.4 changes --- .../updater/AnvilInventoryUpdater.java | 9 +- .../java/org/geysermc/geyser/item/Items.java | 516 +++++++++--------- .../item/type/BedrockRequiresTagItem.java | 8 +- .../geyser/item/type/FireworkRocketItem.java | 17 - .../org/geysermc/geyser/item/type/Item.java | 59 +- .../CustomItemRegistryPopulator.java | 15 +- .../populator/ItemRegistryPopulator.java | 2 +- .../translator/item/CustomItemTranslator.java | 2 +- .../translator/item/ItemTranslator.java | 67 +-- .../BedrockBlockPickRequestTranslator.java | 42 +- .../BedrockEntityPickRequestTranslator.java | 37 +- .../JavaMerchantOffersTranslator.java | 2 +- .../geysermc/geyser/util/InventoryUtils.java | 170 ------ 13 files changed, 337 insertions(+), 609 deletions(-) diff --git a/core/src/main/java/org/geysermc/geyser/inventory/updater/AnvilInventoryUpdater.java b/core/src/main/java/org/geysermc/geyser/inventory/updater/AnvilInventoryUpdater.java index 0ffb74082..00270e47a 100644 --- a/core/src/main/java/org/geysermc/geyser/inventory/updater/AnvilInventoryUpdater.java +++ b/core/src/main/java/org/geysermc/geyser/inventory/updater/AnvilInventoryUpdater.java @@ -52,7 +52,6 @@ import org.geysermc.mcprotocollib.protocol.packet.ingame.serverbound.inventory.S import java.util.List; import java.util.Map; import java.util.Objects; -import java.util.stream.IntStream; public class AnvilInventoryUpdater extends InventoryUpdater { public static final AnvilInventoryUpdater INSTANCE = new AnvilInventoryUpdater(); @@ -266,14 +265,14 @@ public class AnvilInventoryUpdater extends InventoryUpdater { */ private int calcRepairLevelCost(GeyserItemStack input, GeyserItemStack material) { int newDamage = getDamage(input); - int unitRepair = Math.min(newDamage, input.asItem().maxDamage() / 4); + int unitRepair = Math.min(newDamage, input.asItem().defaultMaxDamage() / 4); if (unitRepair <= 0) { // No damage to repair return -1; } for (int i = 0; i < material.getAmount(); i++) { newDamage -= unitRepair; - unitRepair = Math.min(newDamage, input.asItem().maxDamage() / 4); + unitRepair = Math.min(newDamage, input.asItem().defaultMaxDamage() / 4); if (unitRepair <= 0) { return i + 1; } @@ -290,7 +289,7 @@ public class AnvilInventoryUpdater extends InventoryUpdater { */ private int calcMergeRepairCost(GeyserItemStack input, GeyserItemStack material) { // If the material item is damaged 112% or more, then the input item will not be repaired - if (getDamage(input) > 0 && getDamage(material) < (material.asItem().maxDamage() * 112 / 100)) { + if (getDamage(input) > 0 && getDamage(material) < (material.asItem().defaultMaxDamage() * 112 / 100)) { return 2; } return 0; @@ -419,7 +418,7 @@ public class AnvilInventoryUpdater extends InventoryUpdater { } private boolean hasDurability(GeyserItemStack itemStack) { - if (itemStack.asItem().maxDamage() > 0) { + if (itemStack.asItem().defaultMaxDamage() > 0) { return itemStack.getComponent(DataComponentType.UNBREAKABLE, false); } return false; diff --git a/core/src/main/java/org/geysermc/geyser/item/Items.java b/core/src/main/java/org/geysermc/geyser/item/Items.java index c7ab076b4..d2ae08ec4 100644 --- a/core/src/main/java/org/geysermc/geyser/item/Items.java +++ b/core/src/main/java/org/geysermc/geyser/item/Items.java @@ -301,6 +301,8 @@ public final class Items { public static final Item RED_WOOL = register(new BlockItem(builder(), Blocks.RED_WOOL)); public static final Item BLACK_WOOL = register(new BlockItem(builder(), Blocks.BLACK_WOOL)); public static final Item DANDELION = register(new BlockItem(builder(), Blocks.DANDELION)); +// TODO public static final Item OPEN_EYEBLOSSOM = register(new BlockItem(builder(), Blocks.OPEN_EYEBLOSSOM)); +// TODO public static final Item CLOSED_EYEBLOSSOM = register(new BlockItem(builder(), Blocks.CLOSED_EYEBLOSSOM)); public static final Item POPPY = register(new BlockItem(builder(), Blocks.POPPY)); public static final Item BLUE_ORCHID = register(new BlockItem(builder(), Blocks.BLUE_ORCHID)); public static final Item ALLIUM = register(new BlockItem(builder(), Blocks.ALLIUM)); @@ -449,6 +451,13 @@ public final class Items { public static final Item MELON = register(new BlockItem(builder(), Blocks.MELON)); public static final Item VINE = register(new BlockItem(builder(), Blocks.VINE)); public static final Item GLOW_LICHEN = register(new BlockItem(builder(), Blocks.GLOW_LICHEN)); + //TODO public static final Item RESIN_CLUMP = register(new BlockItem(builder(), Blocks.RESIN_CLUMP)); + //TODO public static final Item RESIN_BLOCK = register(new BlockItem(builder(), Blocks.RESIN_BLOCK)); + //TODO public static final Item RESIN_BRICKS = register(new BlockItem(builder(), Blocks.RESIN_BRICKS)); + //TODO public static final Item RESIN_BRICK_STAIRS = register(new BlockItem(builder(), Blocks.RESIN_BRICK_STAIRS)); + //TODO public static final Item RESIN_BRICK_SLAB = register(new BlockItem(builder(), Blocks.RESIN_BRICK_SLAB)); + //TODO public static final Item RESIN_BRICK_WALL = register(new BlockItem(builder(), Blocks.RESIN_BRICK_WALL)); + //TODO public static final Item CHISELED_RESIN_BRICKS = register(new BlockItem(builder(), Blocks.CHISELED_RESIN_BRICKS)); public static final Item BRICK_STAIRS = register(new BlockItem(builder(), Blocks.BRICK_STAIRS)); public static final Item STONE_BRICK_STAIRS = register(new BlockItem(builder(), Blocks.STONE_BRICK_STAIRS)); public static final Item MUD_BRICK_STAIRS = register(new BlockItem(builder(), Blocks.MUD_BRICK_STAIRS)); @@ -533,7 +542,7 @@ public final class Items { public static final Item RED_TERRACOTTA = register(new BlockItem(builder(), Blocks.RED_TERRACOTTA)); public static final Item BLACK_TERRACOTTA = register(new BlockItem(builder(), Blocks.BLACK_TERRACOTTA)); public static final Item BARRIER = register(new BlockItem(builder(), Blocks.BARRIER)); - public static final Item LIGHT = register(new LightItem(builder(), Blocks.LIGHT)); + public static final Item LIGHT = register(new BlockItem(builder(), Blocks.LIGHT)); public static final Item HAY_BLOCK = register(new BlockItem(builder(), Blocks.HAY_BLOCK)); public static final Item WHITE_CARPET = register(new BlockItem(builder(), Blocks.WHITE_CARPET)); public static final Item ORANGE_CARPET = register(new BlockItem(builder(), Blocks.ORANGE_CARPET)); @@ -611,23 +620,23 @@ public final class Items { public static final Item RED_NETHER_BRICKS = register(new BlockItem(builder(), Blocks.RED_NETHER_BRICKS)); public static final Item BONE_BLOCK = register(new BlockItem(builder(), Blocks.BONE_BLOCK)); public static final Item STRUCTURE_VOID = register(new BlockItem(builder(), Blocks.STRUCTURE_VOID)); - public static final Item SHULKER_BOX = register(new ShulkerBoxItem(builder().stackSize(1), Blocks.SHULKER_BOX)); - public static final Item WHITE_SHULKER_BOX = register(new ShulkerBoxItem(builder().stackSize(1), Blocks.WHITE_SHULKER_BOX)); - public static final Item ORANGE_SHULKER_BOX = register(new ShulkerBoxItem(builder().stackSize(1), Blocks.ORANGE_SHULKER_BOX)); - public static final Item MAGENTA_SHULKER_BOX = register(new ShulkerBoxItem(builder().stackSize(1), Blocks.MAGENTA_SHULKER_BOX)); - public static final Item LIGHT_BLUE_SHULKER_BOX = register(new ShulkerBoxItem(builder().stackSize(1), Blocks.LIGHT_BLUE_SHULKER_BOX)); - public static final Item YELLOW_SHULKER_BOX = register(new ShulkerBoxItem(builder().stackSize(1), Blocks.YELLOW_SHULKER_BOX)); - public static final Item LIME_SHULKER_BOX = register(new ShulkerBoxItem(builder().stackSize(1), Blocks.LIME_SHULKER_BOX)); - public static final Item PINK_SHULKER_BOX = register(new ShulkerBoxItem(builder().stackSize(1), Blocks.PINK_SHULKER_BOX)); - public static final Item GRAY_SHULKER_BOX = register(new ShulkerBoxItem(builder().stackSize(1), Blocks.GRAY_SHULKER_BOX)); - public static final Item LIGHT_GRAY_SHULKER_BOX = register(new ShulkerBoxItem(builder().stackSize(1), Blocks.LIGHT_GRAY_SHULKER_BOX)); - public static final Item CYAN_SHULKER_BOX = register(new ShulkerBoxItem(builder().stackSize(1), Blocks.CYAN_SHULKER_BOX)); - public static final Item PURPLE_SHULKER_BOX = register(new ShulkerBoxItem(builder().stackSize(1), Blocks.PURPLE_SHULKER_BOX)); - public static final Item BLUE_SHULKER_BOX = register(new ShulkerBoxItem(builder().stackSize(1), Blocks.BLUE_SHULKER_BOX)); - public static final Item BROWN_SHULKER_BOX = register(new ShulkerBoxItem(builder().stackSize(1), Blocks.BROWN_SHULKER_BOX)); - public static final Item GREEN_SHULKER_BOX = register(new ShulkerBoxItem(builder().stackSize(1), Blocks.GREEN_SHULKER_BOX)); - public static final Item RED_SHULKER_BOX = register(new ShulkerBoxItem(builder().stackSize(1), Blocks.RED_SHULKER_BOX)); - public static final Item BLACK_SHULKER_BOX = register(new ShulkerBoxItem(builder().stackSize(1), Blocks.BLACK_SHULKER_BOX)); + public static final Item SHULKER_BOX = register(new ShulkerBoxItem(builder(), Blocks.SHULKER_BOX)); + public static final Item WHITE_SHULKER_BOX = register(new ShulkerBoxItem(builder(), Blocks.WHITE_SHULKER_BOX)); + public static final Item ORANGE_SHULKER_BOX = register(new ShulkerBoxItem(builder(), Blocks.ORANGE_SHULKER_BOX)); + public static final Item MAGENTA_SHULKER_BOX = register(new ShulkerBoxItem(builder(), Blocks.MAGENTA_SHULKER_BOX)); + public static final Item LIGHT_BLUE_SHULKER_BOX = register(new ShulkerBoxItem(builder(), Blocks.LIGHT_BLUE_SHULKER_BOX)); + public static final Item YELLOW_SHULKER_BOX = register(new ShulkerBoxItem(builder(), Blocks.YELLOW_SHULKER_BOX)); + public static final Item LIME_SHULKER_BOX = register(new ShulkerBoxItem(builder(), Blocks.LIME_SHULKER_BOX)); + public static final Item PINK_SHULKER_BOX = register(new ShulkerBoxItem(builder(), Blocks.PINK_SHULKER_BOX)); + public static final Item GRAY_SHULKER_BOX = register(new ShulkerBoxItem(builder(), Blocks.GRAY_SHULKER_BOX)); + public static final Item LIGHT_GRAY_SHULKER_BOX = register(new ShulkerBoxItem(builder(), Blocks.LIGHT_GRAY_SHULKER_BOX)); + public static final Item CYAN_SHULKER_BOX = register(new ShulkerBoxItem(builder(), Blocks.CYAN_SHULKER_BOX)); + public static final Item PURPLE_SHULKER_BOX = register(new ShulkerBoxItem(builder(), Blocks.PURPLE_SHULKER_BOX)); + public static final Item BLUE_SHULKER_BOX = register(new ShulkerBoxItem(builder(), Blocks.BLUE_SHULKER_BOX)); + public static final Item BROWN_SHULKER_BOX = register(new ShulkerBoxItem(builder(), Blocks.BROWN_SHULKER_BOX)); + public static final Item GREEN_SHULKER_BOX = register(new ShulkerBoxItem(builder(), Blocks.GREEN_SHULKER_BOX)); + public static final Item RED_SHULKER_BOX = register(new ShulkerBoxItem(builder(), Blocks.RED_SHULKER_BOX)); + public static final Item BLACK_SHULKER_BOX = register(new ShulkerBoxItem(builder(), Blocks.BLACK_SHULKER_BOX)); public static final Item WHITE_GLAZED_TERRACOTTA = register(new BlockItem(builder(), Blocks.WHITE_GLAZED_TERRACOTTA)); public static final Item ORANGE_GLAZED_TERRACOTTA = register(new BlockItem(builder(), Blocks.ORANGE_GLAZED_TERRACOTTA)); public static final Item MAGENTA_GLAZED_TERRACOTTA = register(new BlockItem(builder(), Blocks.MAGENTA_GLAZED_TERRACOTTA)); @@ -859,46 +868,46 @@ public final class Items { public static final Item DETECTOR_RAIL = register(new BlockItem(builder(), Blocks.DETECTOR_RAIL)); public static final Item RAIL = register(new BlockItem(builder(), Blocks.RAIL)); public static final Item ACTIVATOR_RAIL = register(new BlockItem(builder(), Blocks.ACTIVATOR_RAIL)); - public static final Item SADDLE = register(new Item("saddle", builder().stackSize(1))); - public static final Item MINECART = register(new Item("minecart", builder().stackSize(1))); - public static final Item CHEST_MINECART = register(new Item("chest_minecart", builder().stackSize(1))); - public static final Item FURNACE_MINECART = register(new Item("furnace_minecart", builder().stackSize(1))); - public static final Item TNT_MINECART = register(new Item("tnt_minecart", builder().stackSize(1))); - public static final Item HOPPER_MINECART = register(new Item("hopper_minecart", builder().stackSize(1))); - public static final Item CARROT_ON_A_STICK = register(new Item("carrot_on_a_stick", builder().stackSize(1).maxDamage(25))); - public static final Item WARPED_FUNGUS_ON_A_STICK = register(new Item("warped_fungus_on_a_stick", builder().stackSize(1).maxDamage(100))); + public static final Item SADDLE = register(new Item("saddle", builder())); + public static final Item MINECART = register(new Item("minecart", builder())); + public static final Item CHEST_MINECART = register(new Item("chest_minecart", builder())); + public static final Item FURNACE_MINECART = register(new Item("furnace_minecart", builder())); + public static final Item TNT_MINECART = register(new Item("tnt_minecart", builder())); + public static final Item HOPPER_MINECART = register(new Item("hopper_minecart", builder())); + public static final Item CARROT_ON_A_STICK = register(new Item("carrot_on_a_stick", builder())); + public static final Item WARPED_FUNGUS_ON_A_STICK = register(new Item("warped_fungus_on_a_stick", builder())); public static final Item PHANTOM_MEMBRANE = register(new Item("phantom_membrane", builder())); - public static final Item ELYTRA = register(new ElytraItem("elytra", builder().stackSize(1).maxDamage(432))); - public static final Item OAK_BOAT = register(new BoatItem("oak_boat", builder().stackSize(1))); - public static final Item OAK_CHEST_BOAT = register(new BoatItem("oak_chest_boat", builder().stackSize(1))); - public static final Item SPRUCE_BOAT = register(new BoatItem("spruce_boat", builder().stackSize(1))); - public static final Item SPRUCE_CHEST_BOAT = register(new BoatItem("spruce_chest_boat", builder().stackSize(1))); - public static final Item BIRCH_BOAT = register(new BoatItem("birch_boat", builder().stackSize(1))); - public static final Item BIRCH_CHEST_BOAT = register(new BoatItem("birch_chest_boat", builder().stackSize(1))); - public static final Item JUNGLE_BOAT = register(new BoatItem("jungle_boat", builder().stackSize(1))); - public static final Item JUNGLE_CHEST_BOAT = register(new BoatItem("jungle_chest_boat", builder().stackSize(1))); - public static final Item ACACIA_BOAT = register(new BoatItem("acacia_boat", builder().stackSize(1))); - public static final Item ACACIA_CHEST_BOAT = register(new BoatItem("acacia_chest_boat", builder().stackSize(1))); - public static final Item CHERRY_BOAT = register(new BoatItem("cherry_boat", builder().stackSize(1))); - public static final Item CHERRY_CHEST_BOAT = register(new BoatItem("cherry_chest_boat", builder().stackSize(1))); - public static final Item DARK_OAK_BOAT = register(new BoatItem("dark_oak_boat", builder().stackSize(1))); - public static final Item DARK_OAK_CHEST_BOAT = register(new BoatItem("dark_oak_chest_boat", builder().stackSize(1))); - public static final Item PALE_OAK_BOAT = register(new BoatItem("pale_oak_boat", builder().stackSize(1))); - public static final Item PALE_OAK_CHEST_BOAT = register(new BoatItem("pale_oak_chest_boat", builder().stackSize(1))); - public static final Item MANGROVE_BOAT = register(new BoatItem("mangrove_boat", builder().stackSize(1))); - public static final Item MANGROVE_CHEST_BOAT = register(new BoatItem("mangrove_chest_boat", builder().stackSize(1))); - public static final Item BAMBOO_RAFT = register(new BoatItem("bamboo_raft", builder().stackSize(1))); - public static final Item BAMBOO_CHEST_RAFT = register(new BoatItem("bamboo_chest_raft", builder().stackSize(1))); + public static final Item ELYTRA = register(new ElytraItem("elytra", builder())); + public static final Item OAK_BOAT = register(new BoatItem("oak_boat", builder())); + public static final Item OAK_CHEST_BOAT = register(new BoatItem("oak_chest_boat", builder())); + public static final Item SPRUCE_BOAT = register(new BoatItem("spruce_boat", builder())); + public static final Item SPRUCE_CHEST_BOAT = register(new BoatItem("spruce_chest_boat", builder())); + public static final Item BIRCH_BOAT = register(new BoatItem("birch_boat", builder())); + public static final Item BIRCH_CHEST_BOAT = register(new BoatItem("birch_chest_boat", builder())); + public static final Item JUNGLE_BOAT = register(new BoatItem("jungle_boat", builder())); + public static final Item JUNGLE_CHEST_BOAT = register(new BoatItem("jungle_chest_boat", builder())); + public static final Item ACACIA_BOAT = register(new BoatItem("acacia_boat", builder())); + public static final Item ACACIA_CHEST_BOAT = register(new BoatItem("acacia_chest_boat", builder())); + public static final Item CHERRY_BOAT = register(new BoatItem("cherry_boat", builder())); + public static final Item CHERRY_CHEST_BOAT = register(new BoatItem("cherry_chest_boat", builder())); + public static final Item DARK_OAK_BOAT = register(new BoatItem("dark_oak_boat", builder())); + public static final Item DARK_OAK_CHEST_BOAT = register(new BoatItem("dark_oak_chest_boat", builder())); + public static final Item PALE_OAK_BOAT = register(new BoatItem("pale_oak_boat", builder())); + public static final Item PALE_OAK_CHEST_BOAT = register(new BoatItem("pale_oak_chest_boat", builder())); + public static final Item MANGROVE_BOAT = register(new BoatItem("mangrove_boat", builder())); + public static final Item MANGROVE_CHEST_BOAT = register(new BoatItem("mangrove_chest_boat", builder())); + public static final Item BAMBOO_RAFT = register(new BoatItem("bamboo_raft", builder())); + public static final Item BAMBOO_CHEST_RAFT = register(new BoatItem("bamboo_chest_raft", builder())); public static final Item STRUCTURE_BLOCK = register(new BlockItem(builder(), Blocks.STRUCTURE_BLOCK)); public static final Item JIGSAW = register(new BlockItem(builder(), Blocks.JIGSAW)); - public static final Item TURTLE_HELMET = register(new ArmorItem("turtle_helmet", ArmorMaterial.TURTLE, builder().stackSize(1).maxDamage(275))); + public static final Item TURTLE_HELMET = register(new ArmorItem("turtle_helmet", ArmorMaterial.TURTLE, builder())); public static final Item TURTLE_SCUTE = register(new Item("turtle_scute", builder())); public static final Item ARMADILLO_SCUTE = register(new Item("armadillo_scute", builder())); - public static final Item WOLF_ARMOR = register(new WolfArmorItem("wolf_armor", ArmorMaterial.ARMADILLO, builder().stackSize(1).maxDamage(64))); - public static final Item FLINT_AND_STEEL = register(new Item("flint_and_steel", builder().stackSize(1).maxDamage(64))); + public static final Item WOLF_ARMOR = register(new WolfArmorItem("wolf_armor", ArmorMaterial.ARMADILLO, builder())); + public static final Item FLINT_AND_STEEL = register(new Item("flint_and_steel", builder())); public static final Item BOWL = register(new Item("bowl", builder())); public static final Item APPLE = register(new Item("apple", builder())); - public static final Item BOW = register(new Item("bow", builder().stackSize(1).maxDamage(384))); + public static final Item BOW = register(new Item("bow", builder())); public static final Item ARROW = register(new ArrowItem("arrow", builder())); public static final Item COAL = register(new Item("coal", builder())); public static final Item CHARCOAL = register(new Item("charcoal", builder())); @@ -915,140 +924,140 @@ public final class Items { public static final Item GOLD_INGOT = register(new Item("gold_ingot", builder())); public static final Item NETHERITE_INGOT = register(new Item("netherite_ingot", builder())); public static final Item NETHERITE_SCRAP = register(new Item("netherite_scrap", builder())); - public static final Item WOODEN_SWORD = register(new TieredItem("wooden_sword", ToolTier.WOODEN, builder().stackSize(1).maxDamage(59).attackDamage(4.0))); - public static final Item WOODEN_SHOVEL = register(new TieredItem("wooden_shovel", ToolTier.WOODEN, builder().stackSize(1).maxDamage(59).attackDamage(2.5))); - public static final Item WOODEN_PICKAXE = register(new TieredItem("wooden_pickaxe", ToolTier.WOODEN, builder().stackSize(1).maxDamage(59).attackDamage(2.0))); - public static final Item WOODEN_AXE = register(new TieredItem("wooden_axe", ToolTier.WOODEN, builder().stackSize(1).maxDamage(59).attackDamage(7.0))); - public static final Item WOODEN_HOE = register(new TieredItem("wooden_hoe", ToolTier.WOODEN, builder().stackSize(1).maxDamage(59).attackDamage(1.0))); - public static final Item STONE_SWORD = register(new TieredItem("stone_sword", ToolTier.STONE, builder().stackSize(1).maxDamage(131).attackDamage(5.0))); - public static final Item STONE_SHOVEL = register(new TieredItem("stone_shovel", ToolTier.STONE, builder().stackSize(1).maxDamage(131).attackDamage(3.5))); - public static final Item STONE_PICKAXE = register(new TieredItem("stone_pickaxe", ToolTier.STONE, builder().stackSize(1).maxDamage(131).attackDamage(3.0))); - public static final Item STONE_AXE = register(new TieredItem("stone_axe", ToolTier.STONE, builder().stackSize(1).maxDamage(131).attackDamage(9.0))); - public static final Item STONE_HOE = register(new TieredItem("stone_hoe", ToolTier.STONE, builder().stackSize(1).maxDamage(131).attackDamage(1.0))); - public static final Item GOLDEN_SWORD = register(new TieredItem("golden_sword", ToolTier.GOLDEN, builder().stackSize(1).maxDamage(32).attackDamage(4.0))); - public static final Item GOLDEN_SHOVEL = register(new TieredItem("golden_shovel", ToolTier.GOLDEN, builder().stackSize(1).maxDamage(32).attackDamage(2.5))); - public static final Item GOLDEN_PICKAXE = register(new TieredItem("golden_pickaxe", ToolTier.GOLDEN, builder().stackSize(1).maxDamage(32).attackDamage(2.0))); - public static final Item GOLDEN_AXE = register(new TieredItem("golden_axe", ToolTier.GOLDEN, builder().stackSize(1).maxDamage(32).attackDamage(7.0))); - public static final Item GOLDEN_HOE = register(new TieredItem("golden_hoe", ToolTier.GOLDEN, builder().stackSize(1).maxDamage(32).attackDamage(1.0))); - public static final Item IRON_SWORD = register(new TieredItem("iron_sword", ToolTier.IRON, builder().stackSize(1).maxDamage(250).attackDamage(6.0))); - public static final Item IRON_SHOVEL = register(new TieredItem("iron_shovel", ToolTier.IRON, builder().stackSize(1).maxDamage(250).attackDamage(4.5))); - public static final Item IRON_PICKAXE = register(new TieredItem("iron_pickaxe", ToolTier.IRON, builder().stackSize(1).maxDamage(250).attackDamage(4.0))); - public static final Item IRON_AXE = register(new TieredItem("iron_axe", ToolTier.IRON, builder().stackSize(1).maxDamage(250).attackDamage(9.0))); - public static final Item IRON_HOE = register(new TieredItem("iron_hoe", ToolTier.IRON, builder().stackSize(1).maxDamage(250).attackDamage(1.0))); - public static final Item DIAMOND_SWORD = register(new TieredItem("diamond_sword", ToolTier.DIAMOND, builder().stackSize(1).maxDamage(1561).attackDamage(7.0))); - public static final Item DIAMOND_SHOVEL = register(new TieredItem("diamond_shovel", ToolTier.DIAMOND, builder().stackSize(1).maxDamage(1561).attackDamage(5.5))); - public static final Item DIAMOND_PICKAXE = register(new TieredItem("diamond_pickaxe", ToolTier.DIAMOND, builder().stackSize(1).maxDamage(1561).attackDamage(5.0))); - public static final Item DIAMOND_AXE = register(new TieredItem("diamond_axe", ToolTier.DIAMOND, builder().stackSize(1).maxDamage(1561).attackDamage(9.0))); - public static final Item DIAMOND_HOE = register(new TieredItem("diamond_hoe", ToolTier.DIAMOND, builder().stackSize(1).maxDamage(1561).attackDamage(1.0))); - public static final Item NETHERITE_SWORD = register(new TieredItem("netherite_sword", ToolTier.NETHERITE, builder().stackSize(1).maxDamage(2031).attackDamage(8.0))); - public static final Item NETHERITE_SHOVEL = register(new TieredItem("netherite_shovel", ToolTier.NETHERITE, builder().stackSize(1).maxDamage(2031).attackDamage(6.5))); - public static final Item NETHERITE_PICKAXE = register(new TieredItem("netherite_pickaxe", ToolTier.NETHERITE, builder().stackSize(1).maxDamage(2031).attackDamage(6.0))); - public static final Item NETHERITE_AXE = register(new TieredItem("netherite_axe", ToolTier.NETHERITE, builder().stackSize(1).maxDamage(2031).attackDamage(10.0))); - public static final Item NETHERITE_HOE = register(new TieredItem("netherite_hoe", ToolTier.NETHERITE, builder().stackSize(1).maxDamage(2031).attackDamage(1.0))); + public static final Item WOODEN_SWORD = register(new Item("wooden_sword", builder().attackDamage(4.0))); + public static final Item WOODEN_SHOVEL = register(new Item("wooden_shovel", builder().attackDamage(2.5))); + public static final Item WOODEN_PICKAXE = register(new Item("wooden_pickaxe", builder().attackDamage(2.0))); + public static final Item WOODEN_AXE = register(new Item("wooden_axe", builder().attackDamage(7.0))); + public static final Item WOODEN_HOE = register(new Item("wooden_hoe", builder().attackDamage(1.0))); + public static final Item STONE_SWORD = register(new Item("stone_sword", builder().attackDamage(5.0))); + public static final Item STONE_SHOVEL = register(new Item("stone_shovel", builder().attackDamage(3.5))); + public static final Item STONE_PICKAXE = register(new Item("stone_pickaxe", builder().attackDamage(3.0))); + public static final Item STONE_AXE = register(new Item("stone_axe", builder().attackDamage(9.0))); + public static final Item STONE_HOE = register(new Item("stone_hoe", builder().attackDamage(1.0))); + public static final Item GOLDEN_SWORD = register(new Item("golden_sword", builder().attackDamage(4.0))); + public static final Item GOLDEN_SHOVEL = register(new Item("golden_shovel", builder().attackDamage(2.5))); + public static final Item GOLDEN_PICKAXE = register(new Item("golden_pickaxe", builder().attackDamage(2.0))); + public static final Item GOLDEN_AXE = register(new Item("golden_axe", builder().attackDamage(7.0))); + public static final Item GOLDEN_HOE = register(new Item("golden_hoe", builder().attackDamage(1.0))); + public static final Item IRON_SWORD = register(new Item("iron_sword", builder().attackDamage(6.0))); + public static final Item IRON_SHOVEL = register(new Item("iron_shovel", builder().attackDamage(4.5))); + public static final Item IRON_PICKAXE = register(new Item("iron_pickaxe", builder().attackDamage(4.0))); + public static final Item IRON_AXE = register(new Item("iron_axe", builder().attackDamage(9.0))); + public static final Item IRON_HOE = register(new Item("iron_hoe", builder().attackDamage(1.0))); + public static final Item DIAMOND_SWORD = register(new Item("diamond_sword", builder().attackDamage(7.0))); + public static final Item DIAMOND_SHOVEL = register(new Item("diamond_shovel", builder().attackDamage(5.5))); + public static final Item DIAMOND_PICKAXE = register(new Item("diamond_pickaxe", builder().attackDamage(5.0))); + public static final Item DIAMOND_AXE = register(new Item("diamond_axe", builder().attackDamage(9.0))); + public static final Item DIAMOND_HOE = register(new Item("diamond_hoe", builder().attackDamage(1.0))); + public static final Item NETHERITE_SWORD = register(new Item("netherite_sword", builder().attackDamage(8.0))); + public static final Item NETHERITE_SHOVEL = register(new Item("netherite_shovel", builder().attackDamage(6.5))); + public static final Item NETHERITE_PICKAXE = register(new Item("netherite_pickaxe", builder().attackDamage(6.0))); + public static final Item NETHERITE_AXE = register(new Item("netherite_axe", builder().attackDamage(10.0))); + public static final Item NETHERITE_HOE = register(new Item("netherite_hoe", builder().attackDamage(1.0))); public static final Item STICK = register(new Item("stick", builder())); - public static final Item MUSHROOM_STEW = register(new Item("mushroom_stew", builder().stackSize(1))); + public static final Item MUSHROOM_STEW = register(new Item("mushroom_stew", builder())); public static final Item STRING = register(new BlockItem("string", builder(), Blocks.TRIPWIRE)); public static final Item FEATHER = register(new Item("feather", builder())); public static final Item GUNPOWDER = register(new Item("gunpowder", builder())); public static final Item WHEAT_SEEDS = register(new BlockItem("wheat_seeds", builder(), Blocks.WHEAT)); public static final Item WHEAT = register(new Item("wheat", builder())); public static final Item BREAD = register(new Item("bread", builder())); - public static final Item LEATHER_HELMET = register(new DyeableArmorItem("leather_helmet", ArmorMaterial.LEATHER, builder().stackSize(1).maxDamage(55))); - public static final Item LEATHER_CHESTPLATE = register(new DyeableArmorItem("leather_chestplate", ArmorMaterial.LEATHER, builder().stackSize(1).maxDamage(80))); - public static final Item LEATHER_LEGGINGS = register(new DyeableArmorItem("leather_leggings", ArmorMaterial.LEATHER, builder().stackSize(1).maxDamage(75))); - public static final Item LEATHER_BOOTS = register(new DyeableArmorItem("leather_boots", ArmorMaterial.LEATHER, builder().stackSize(1).maxDamage(65))); - public static final Item CHAINMAIL_HELMET = register(new ArmorItem("chainmail_helmet", ArmorMaterial.CHAINMAIL, builder().stackSize(1).maxDamage(165))); - public static final Item CHAINMAIL_CHESTPLATE = register(new ArmorItem("chainmail_chestplate", ArmorMaterial.CHAINMAIL, builder().stackSize(1).maxDamage(240))); - public static final Item CHAINMAIL_LEGGINGS = register(new ArmorItem("chainmail_leggings", ArmorMaterial.CHAINMAIL, builder().stackSize(1).maxDamage(225))); - public static final Item CHAINMAIL_BOOTS = register(new ArmorItem("chainmail_boots", ArmorMaterial.CHAINMAIL, builder().stackSize(1).maxDamage(195))); - public static final Item IRON_HELMET = register(new ArmorItem("iron_helmet", ArmorMaterial.IRON, builder().stackSize(1).maxDamage(165))); - public static final Item IRON_CHESTPLATE = register(new ArmorItem("iron_chestplate", ArmorMaterial.IRON, builder().stackSize(1).maxDamage(240))); - public static final Item IRON_LEGGINGS = register(new ArmorItem("iron_leggings", ArmorMaterial.IRON, builder().stackSize(1).maxDamage(225))); - public static final Item IRON_BOOTS = register(new ArmorItem("iron_boots", ArmorMaterial.IRON, builder().stackSize(1).maxDamage(195))); - public static final Item DIAMOND_HELMET = register(new ArmorItem("diamond_helmet", ArmorMaterial.DIAMOND, builder().stackSize(1).maxDamage(363))); - public static final Item DIAMOND_CHESTPLATE = register(new ArmorItem("diamond_chestplate", ArmorMaterial.DIAMOND, builder().stackSize(1).maxDamage(528))); - public static final Item DIAMOND_LEGGINGS = register(new ArmorItem("diamond_leggings", ArmorMaterial.DIAMOND, builder().stackSize(1).maxDamage(495))); - public static final Item DIAMOND_BOOTS = register(new ArmorItem("diamond_boots", ArmorMaterial.DIAMOND, builder().stackSize(1).maxDamage(429))); - public static final Item GOLDEN_HELMET = register(new ArmorItem("golden_helmet", ArmorMaterial.GOLD, builder().stackSize(1).maxDamage(77))); - public static final Item GOLDEN_CHESTPLATE = register(new ArmorItem("golden_chestplate", ArmorMaterial.GOLD, builder().stackSize(1).maxDamage(112))); - public static final Item GOLDEN_LEGGINGS = register(new ArmorItem("golden_leggings", ArmorMaterial.GOLD, builder().stackSize(1).maxDamage(105))); - public static final Item GOLDEN_BOOTS = register(new ArmorItem("golden_boots", ArmorMaterial.GOLD, builder().stackSize(1).maxDamage(91))); - public static final Item NETHERITE_HELMET = register(new ArmorItem("netherite_helmet", ArmorMaterial.NETHERITE, builder().stackSize(1).maxDamage(407))); - public static final Item NETHERITE_CHESTPLATE = register(new ArmorItem("netherite_chestplate", ArmorMaterial.NETHERITE, builder().stackSize(1).maxDamage(592))); - public static final Item NETHERITE_LEGGINGS = register(new ArmorItem("netherite_leggings", ArmorMaterial.NETHERITE, builder().stackSize(1).maxDamage(555))); - public static final Item NETHERITE_BOOTS = register(new ArmorItem("netherite_boots", ArmorMaterial.NETHERITE, builder().stackSize(1).maxDamage(481))); + public static final Item LEATHER_HELMET = register(new DyeableArmorItem("leather_helmet", ArmorMaterial.LEATHER, builder())); + public static final Item LEATHER_CHESTPLATE = register(new DyeableArmorItem("leather_chestplate", ArmorMaterial.LEATHER, builder())); + public static final Item LEATHER_LEGGINGS = register(new DyeableArmorItem("leather_leggings", ArmorMaterial.LEATHER, builder())); + public static final Item LEATHER_BOOTS = register(new DyeableArmorItem("leather_boots", ArmorMaterial.LEATHER, builder())); + public static final Item CHAINMAIL_HELMET = register(new ArmorItem("chainmail_helmet", ArmorMaterial.CHAINMAIL, builder())); + public static final Item CHAINMAIL_CHESTPLATE = register(new ArmorItem("chainmail_chestplate", ArmorMaterial.CHAINMAIL, builder())); + public static final Item CHAINMAIL_LEGGINGS = register(new ArmorItem("chainmail_leggings", ArmorMaterial.CHAINMAIL, builder())); + public static final Item CHAINMAIL_BOOTS = register(new ArmorItem("chainmail_boots", ArmorMaterial.CHAINMAIL, builder())); + public static final Item IRON_HELMET = register(new ArmorItem("iron_helmet", ArmorMaterial.IRON, builder())); + public static final Item IRON_CHESTPLATE = register(new ArmorItem("iron_chestplate", ArmorMaterial.IRON, builder())); + public static final Item IRON_LEGGINGS = register(new ArmorItem("iron_leggings", ArmorMaterial.IRON, builder())); + public static final Item IRON_BOOTS = register(new ArmorItem("iron_boots", ArmorMaterial.IRON, builder())); + public static final Item DIAMOND_HELMET = register(new ArmorItem("diamond_helmet", ArmorMaterial.DIAMOND, builder())); + public static final Item DIAMOND_CHESTPLATE = register(new ArmorItem("diamond_chestplate", ArmorMaterial.DIAMOND, builder())); + public static final Item DIAMOND_LEGGINGS = register(new ArmorItem("diamond_leggings", ArmorMaterial.DIAMOND, builder())); + public static final Item DIAMOND_BOOTS = register(new ArmorItem("diamond_boots", ArmorMaterial.DIAMOND, builder())); + public static final Item GOLDEN_HELMET = register(new ArmorItem("golden_helmet", ArmorMaterial.GOLD, builder())); + public static final Item GOLDEN_CHESTPLATE = register(new ArmorItem("golden_chestplate", ArmorMaterial.GOLD, builder())); + public static final Item GOLDEN_LEGGINGS = register(new ArmorItem("golden_leggings", ArmorMaterial.GOLD, builder())); + public static final Item GOLDEN_BOOTS = register(new ArmorItem("golden_boots", ArmorMaterial.GOLD, builder())); + public static final Item NETHERITE_HELMET = register(new ArmorItem("netherite_helmet", ArmorMaterial.NETHERITE, builder())); + public static final Item NETHERITE_CHESTPLATE = register(new ArmorItem("netherite_chestplate", ArmorMaterial.NETHERITE, builder())); + public static final Item NETHERITE_LEGGINGS = register(new ArmorItem("netherite_leggings", ArmorMaterial.NETHERITE, builder())); + public static final Item NETHERITE_BOOTS = register(new ArmorItem("netherite_boots", ArmorMaterial.NETHERITE, builder())); public static final Item FLINT = register(new Item("flint", builder())); public static final Item PORKCHOP = register(new Item("porkchop", builder())); public static final Item COOKED_PORKCHOP = register(new Item("cooked_porkchop", builder())); public static final Item PAINTING = register(new Item("painting", builder())); public static final Item GOLDEN_APPLE = register(new Item("golden_apple", builder())); public static final Item ENCHANTED_GOLDEN_APPLE = register(new Item("enchanted_golden_apple", builder())); - public static final Item OAK_SIGN = register(new BlockItem(builder().stackSize(16), Blocks.OAK_SIGN, Blocks.OAK_WALL_SIGN)); - public static final Item SPRUCE_SIGN = register(new BlockItem(builder().stackSize(16), Blocks.SPRUCE_SIGN, Blocks.SPRUCE_WALL_SIGN)); - public static final Item BIRCH_SIGN = register(new BlockItem(builder().stackSize(16), Blocks.BIRCH_SIGN, Blocks.BIRCH_WALL_SIGN)); - public static final Item JUNGLE_SIGN = register(new BlockItem(builder().stackSize(16), Blocks.JUNGLE_SIGN, Blocks.JUNGLE_WALL_SIGN)); - public static final Item ACACIA_SIGN = register(new BlockItem(builder().stackSize(16), Blocks.ACACIA_SIGN, Blocks.ACACIA_WALL_SIGN)); - public static final Item CHERRY_SIGN = register(new BlockItem(builder().stackSize(16), Blocks.CHERRY_SIGN, Blocks.CHERRY_WALL_SIGN)); - public static final Item DARK_OAK_SIGN = register(new BlockItem(builder().stackSize(16), Blocks.DARK_OAK_SIGN, Blocks.DARK_OAK_WALL_SIGN)); - public static final Item PALE_OAK_SIGN = register(new BlockItem(builder().stackSize(16), Blocks.PALE_OAK_SIGN, Blocks.PALE_OAK_WALL_SIGN)); - public static final Item MANGROVE_SIGN = register(new BlockItem(builder().stackSize(16), Blocks.MANGROVE_SIGN, Blocks.MANGROVE_WALL_SIGN)); - public static final Item BAMBOO_SIGN = register(new BlockItem(builder().stackSize(16), Blocks.BAMBOO_SIGN, Blocks.BAMBOO_WALL_SIGN)); - public static final Item CRIMSON_SIGN = register(new BlockItem(builder().stackSize(16), Blocks.CRIMSON_SIGN, Blocks.CRIMSON_WALL_SIGN)); - public static final Item WARPED_SIGN = register(new BlockItem(builder().stackSize(16), Blocks.WARPED_SIGN, Blocks.WARPED_WALL_SIGN)); - public static final Item OAK_HANGING_SIGN = register(new BlockItem(builder().stackSize(16), Blocks.OAK_HANGING_SIGN, Blocks.OAK_WALL_HANGING_SIGN)); - public static final Item SPRUCE_HANGING_SIGN = register(new BlockItem(builder().stackSize(16), Blocks.SPRUCE_HANGING_SIGN, Blocks.SPRUCE_WALL_HANGING_SIGN)); - public static final Item BIRCH_HANGING_SIGN = register(new BlockItem(builder().stackSize(16), Blocks.BIRCH_HANGING_SIGN, Blocks.BIRCH_WALL_HANGING_SIGN)); - public static final Item JUNGLE_HANGING_SIGN = register(new BlockItem(builder().stackSize(16), Blocks.JUNGLE_HANGING_SIGN, Blocks.JUNGLE_WALL_HANGING_SIGN)); - public static final Item ACACIA_HANGING_SIGN = register(new BlockItem(builder().stackSize(16), Blocks.ACACIA_HANGING_SIGN, Blocks.ACACIA_WALL_HANGING_SIGN)); - public static final Item CHERRY_HANGING_SIGN = register(new BlockItem(builder().stackSize(16), Blocks.CHERRY_HANGING_SIGN, Blocks.CHERRY_WALL_HANGING_SIGN)); - public static final Item DARK_OAK_HANGING_SIGN = register(new BlockItem(builder().stackSize(16), Blocks.DARK_OAK_HANGING_SIGN, Blocks.DARK_OAK_WALL_HANGING_SIGN)); - public static final Item PALE_OAK_HANGING_SIGN = register(new BlockItem(builder().stackSize(16), Blocks.PALE_OAK_HANGING_SIGN, Blocks.PALE_OAK_WALL_HANGING_SIGN)); - public static final Item MANGROVE_HANGING_SIGN = register(new BlockItem(builder().stackSize(16), Blocks.MANGROVE_HANGING_SIGN, Blocks.MANGROVE_WALL_HANGING_SIGN)); - public static final Item BAMBOO_HANGING_SIGN = register(new BlockItem(builder().stackSize(16), Blocks.BAMBOO_HANGING_SIGN, Blocks.BAMBOO_WALL_HANGING_SIGN)); - public static final Item CRIMSON_HANGING_SIGN = register(new BlockItem(builder().stackSize(16), Blocks.CRIMSON_HANGING_SIGN, Blocks.CRIMSON_WALL_HANGING_SIGN)); - public static final Item WARPED_HANGING_SIGN = register(new BlockItem(builder().stackSize(16), Blocks.WARPED_HANGING_SIGN, Blocks.WARPED_WALL_HANGING_SIGN)); - public static final Item BUCKET = register(new Item("bucket", builder().stackSize(16))); - public static final Item WATER_BUCKET = register(new Item("water_bucket", builder().stackSize(1))); - public static final Item LAVA_BUCKET = register(new Item("lava_bucket", builder().stackSize(1))); - public static final Item POWDER_SNOW_BUCKET = register(new BlockItem("powder_snow_bucket", builder().stackSize(1), Blocks.POWDER_SNOW)); - public static final Item SNOWBALL = register(new Item("snowball", builder().stackSize(16))); + public static final Item OAK_SIGN = register(new BlockItem(builder(), Blocks.OAK_SIGN, Blocks.OAK_WALL_SIGN)); + public static final Item SPRUCE_SIGN = register(new BlockItem(builder(), Blocks.SPRUCE_SIGN, Blocks.SPRUCE_WALL_SIGN)); + public static final Item BIRCH_SIGN = register(new BlockItem(builder(), Blocks.BIRCH_SIGN, Blocks.BIRCH_WALL_SIGN)); + public static final Item JUNGLE_SIGN = register(new BlockItem(builder(), Blocks.JUNGLE_SIGN, Blocks.JUNGLE_WALL_SIGN)); + public static final Item ACACIA_SIGN = register(new BlockItem(builder(), Blocks.ACACIA_SIGN, Blocks.ACACIA_WALL_SIGN)); + public static final Item CHERRY_SIGN = register(new BlockItem(builder(), Blocks.CHERRY_SIGN, Blocks.CHERRY_WALL_SIGN)); + public static final Item DARK_OAK_SIGN = register(new BlockItem(builder(), Blocks.DARK_OAK_SIGN, Blocks.DARK_OAK_WALL_SIGN)); + public static final Item PALE_OAK_SIGN = register(new BlockItem(builder(), Blocks.PALE_OAK_SIGN, Blocks.PALE_OAK_WALL_SIGN)); + public static final Item MANGROVE_SIGN = register(new BlockItem(builder(), Blocks.MANGROVE_SIGN, Blocks.MANGROVE_WALL_SIGN)); + public static final Item BAMBOO_SIGN = register(new BlockItem(builder(), Blocks.BAMBOO_SIGN, Blocks.BAMBOO_WALL_SIGN)); + public static final Item CRIMSON_SIGN = register(new BlockItem(builder(), Blocks.CRIMSON_SIGN, Blocks.CRIMSON_WALL_SIGN)); + public static final Item WARPED_SIGN = register(new BlockItem(builder(), Blocks.WARPED_SIGN, Blocks.WARPED_WALL_SIGN)); + public static final Item OAK_HANGING_SIGN = register(new BlockItem(builder(), Blocks.OAK_HANGING_SIGN, Blocks.OAK_WALL_HANGING_SIGN)); + public static final Item SPRUCE_HANGING_SIGN = register(new BlockItem(builder(), Blocks.SPRUCE_HANGING_SIGN, Blocks.SPRUCE_WALL_HANGING_SIGN)); + public static final Item BIRCH_HANGING_SIGN = register(new BlockItem(builder(), Blocks.BIRCH_HANGING_SIGN, Blocks.BIRCH_WALL_HANGING_SIGN)); + public static final Item JUNGLE_HANGING_SIGN = register(new BlockItem(builder(), Blocks.JUNGLE_HANGING_SIGN, Blocks.JUNGLE_WALL_HANGING_SIGN)); + public static final Item ACACIA_HANGING_SIGN = register(new BlockItem(builder(), Blocks.ACACIA_HANGING_SIGN, Blocks.ACACIA_WALL_HANGING_SIGN)); + public static final Item CHERRY_HANGING_SIGN = register(new BlockItem(builder(), Blocks.CHERRY_HANGING_SIGN, Blocks.CHERRY_WALL_HANGING_SIGN)); + public static final Item DARK_OAK_HANGING_SIGN = register(new BlockItem(builder(), Blocks.DARK_OAK_HANGING_SIGN, Blocks.DARK_OAK_WALL_HANGING_SIGN)); + public static final Item PALE_OAK_HANGING_SIGN = register(new BlockItem(builder(), Blocks.PALE_OAK_HANGING_SIGN, Blocks.PALE_OAK_WALL_HANGING_SIGN)); + public static final Item MANGROVE_HANGING_SIGN = register(new BlockItem(builder(), Blocks.MANGROVE_HANGING_SIGN, Blocks.MANGROVE_WALL_HANGING_SIGN)); + public static final Item BAMBOO_HANGING_SIGN = register(new BlockItem(builder(), Blocks.BAMBOO_HANGING_SIGN, Blocks.BAMBOO_WALL_HANGING_SIGN)); + public static final Item CRIMSON_HANGING_SIGN = register(new BlockItem(builder(), Blocks.CRIMSON_HANGING_SIGN, Blocks.CRIMSON_WALL_HANGING_SIGN)); + public static final Item WARPED_HANGING_SIGN = register(new BlockItem(builder(), Blocks.WARPED_HANGING_SIGN, Blocks.WARPED_WALL_HANGING_SIGN)); + public static final Item BUCKET = register(new Item("bucket", builder())); + public static final Item WATER_BUCKET = register(new Item("water_bucket", builder())); + public static final Item LAVA_BUCKET = register(new Item("lava_bucket", builder())); + public static final Item POWDER_SNOW_BUCKET = register(new BlockItem("powder_snow_bucket", builder(), Blocks.POWDER_SNOW)); + public static final Item SNOWBALL = register(new Item("snowball", builder())); public static final Item LEATHER = register(new Item("leather", builder())); - public static final Item MILK_BUCKET = register(new Item("milk_bucket", builder().stackSize(1))); - public static final Item PUFFERFISH_BUCKET = register(new Item("pufferfish_bucket", builder().stackSize(1))); - public static final Item SALMON_BUCKET = register(new Item("salmon_bucket", builder().stackSize(1))); - public static final Item COD_BUCKET = register(new Item("cod_bucket", builder().stackSize(1))); - public static final Item TROPICAL_FISH_BUCKET = register(new TropicalFishBucketItem("tropical_fish_bucket", builder().stackSize(1))); - public static final Item AXOLOTL_BUCKET = register(new AxolotlBucketItem("axolotl_bucket", builder().stackSize(1))); - public static final Item TADPOLE_BUCKET = register(new Item("tadpole_bucket", builder().stackSize(1))); + public static final Item MILK_BUCKET = register(new Item("milk_bucket", builder())); + public static final Item PUFFERFISH_BUCKET = register(new Item("pufferfish_bucket", builder())); + public static final Item SALMON_BUCKET = register(new Item("salmon_bucket", builder())); + public static final Item COD_BUCKET = register(new Item("cod_bucket", builder())); + public static final Item TROPICAL_FISH_BUCKET = register(new TropicalFishBucketItem("tropical_fish_bucket", builder())); + public static final Item AXOLOTL_BUCKET = register(new AxolotlBucketItem("axolotl_bucket", builder())); + public static final Item TADPOLE_BUCKET = register(new Item("tadpole_bucket", builder())); public static final Item BRICK = register(new Item("brick", builder())); public static final Item CLAY_BALL = register(new Item("clay_ball", builder())); public static final Item DRIED_KELP_BLOCK = register(new BlockItem(builder(), Blocks.DRIED_KELP_BLOCK)); public static final Item PAPER = register(new Item("paper", builder())); public static final Item BOOK = register(new Item("book", builder())); public static final Item SLIME_BALL = register(new Item("slime_ball", builder())); - public static final Item EGG = register(new Item("egg", builder().stackSize(16))); + public static final Item EGG = register(new Item("egg", builder())); public static final Item COMPASS = register(new CompassItem("compass", builder())); public static final Item RECOVERY_COMPASS = register(new Item("recovery_compass", builder())); - public static final Item BUNDLE = register(new Item("bundle", builder().stackSize(1))); - public static final Item WHITE_BUNDLE = register(new Item("white_bundle", builder().stackSize(1))); - public static final Item ORANGE_BUNDLE = register(new Item("orange_bundle", builder().stackSize(1))); - public static final Item MAGENTA_BUNDLE = register(new Item("magenta_bundle", builder().stackSize(1))); - public static final Item LIGHT_BLUE_BUNDLE = register(new Item("light_blue_bundle", builder().stackSize(1))); - public static final Item YELLOW_BUNDLE = register(new Item("yellow_bundle", builder().stackSize(1))); - public static final Item LIME_BUNDLE = register(new Item("lime_bundle", builder().stackSize(1))); - public static final Item PINK_BUNDLE = register(new Item("pink_bundle", builder().stackSize(1))); - public static final Item GRAY_BUNDLE = register(new Item("gray_bundle", builder().stackSize(1))); - public static final Item LIGHT_GRAY_BUNDLE = register(new Item("light_gray_bundle", builder().stackSize(1))); - public static final Item CYAN_BUNDLE = register(new Item("cyan_bundle", builder().stackSize(1))); - public static final Item PURPLE_BUNDLE = register(new Item("purple_bundle", builder().stackSize(1))); - public static final Item BLUE_BUNDLE = register(new Item("blue_bundle", builder().stackSize(1))); - public static final Item BROWN_BUNDLE = register(new Item("brown_bundle", builder().stackSize(1))); - public static final Item GREEN_BUNDLE = register(new Item("green_bundle", builder().stackSize(1))); - public static final Item RED_BUNDLE = register(new Item("red_bundle", builder().stackSize(1))); - public static final Item BLACK_BUNDLE = register(new Item("black_bundle", builder().stackSize(1))); - public static final Item FISHING_ROD = register(new FishingRodItem("fishing_rod", builder().stackSize(1).maxDamage(64))); + public static final Item BUNDLE = register(new Item("bundle", builder())); + public static final Item WHITE_BUNDLE = register(new Item("white_bundle", builder())); + public static final Item ORANGE_BUNDLE = register(new Item("orange_bundle", builder())); + public static final Item MAGENTA_BUNDLE = register(new Item("magenta_bundle", builder())); + public static final Item LIGHT_BLUE_BUNDLE = register(new Item("light_blue_bundle", builder())); + public static final Item YELLOW_BUNDLE = register(new Item("yellow_bundle", builder())); + public static final Item LIME_BUNDLE = register(new Item("lime_bundle", builder())); + public static final Item PINK_BUNDLE = register(new Item("pink_bundle", builder())); + public static final Item GRAY_BUNDLE = register(new Item("gray_bundle", builder())); + public static final Item LIGHT_GRAY_BUNDLE = register(new Item("light_gray_bundle", builder())); + public static final Item CYAN_BUNDLE = register(new Item("cyan_bundle", builder())); + public static final Item PURPLE_BUNDLE = register(new Item("purple_bundle", builder())); + public static final Item BLUE_BUNDLE = register(new Item("blue_bundle", builder())); + public static final Item BROWN_BUNDLE = register(new Item("brown_bundle", builder())); + public static final Item GREEN_BUNDLE = register(new Item("green_bundle", builder())); + public static final Item RED_BUNDLE = register(new Item("red_bundle", builder())); + public static final Item BLACK_BUNDLE = register(new Item("black_bundle", builder())); + public static final Item FISHING_ROD = register(new FishingRodItem("fishing_rod", builder())); public static final Item CLOCK = register(new Item("clock", builder())); - public static final Item SPYGLASS = register(new Item("spyglass", builder().stackSize(1))); + public static final Item SPYGLASS = register(new Item("spyglass", builder())); public static final Item GLOWSTONE_DUST = register(new Item("glowstone_dust", builder())); public static final Item COD = register(new Item("cod", builder())); public static final Item SALMON = register(new Item("salmon", builder())); @@ -1078,27 +1087,27 @@ public final class Items { public static final Item BONE_MEAL = register(new Item("bone_meal", builder())); public static final Item BONE = register(new Item("bone", builder())); public static final Item SUGAR = register(new Item("sugar", builder())); - public static final Item CAKE = register(new BlockItem(builder().stackSize(1), Blocks.CAKE)); - public static final Item WHITE_BED = register(new BlockItem(builder().stackSize(1), Blocks.WHITE_BED)); - public static final Item ORANGE_BED = register(new BlockItem(builder().stackSize(1), Blocks.ORANGE_BED)); - public static final Item MAGENTA_BED = register(new BlockItem(builder().stackSize(1), Blocks.MAGENTA_BED)); - public static final Item LIGHT_BLUE_BED = register(new BlockItem(builder().stackSize(1), Blocks.LIGHT_BLUE_BED)); - public static final Item YELLOW_BED = register(new BlockItem(builder().stackSize(1), Blocks.YELLOW_BED)); - public static final Item LIME_BED = register(new BlockItem(builder().stackSize(1), Blocks.LIME_BED)); - public static final Item PINK_BED = register(new BlockItem(builder().stackSize(1), Blocks.PINK_BED)); - public static final Item GRAY_BED = register(new BlockItem(builder().stackSize(1), Blocks.GRAY_BED)); - public static final Item LIGHT_GRAY_BED = register(new BlockItem(builder().stackSize(1), Blocks.LIGHT_GRAY_BED)); - public static final Item CYAN_BED = register(new BlockItem(builder().stackSize(1), Blocks.CYAN_BED)); - public static final Item PURPLE_BED = register(new BlockItem(builder().stackSize(1), Blocks.PURPLE_BED)); - public static final Item BLUE_BED = register(new BlockItem(builder().stackSize(1), Blocks.BLUE_BED)); - public static final Item BROWN_BED = register(new BlockItem(builder().stackSize(1), Blocks.BROWN_BED)); - public static final Item GREEN_BED = register(new BlockItem(builder().stackSize(1), Blocks.GREEN_BED)); - public static final Item RED_BED = register(new BlockItem(builder().stackSize(1), Blocks.RED_BED)); - public static final Item BLACK_BED = register(new BlockItem(builder().stackSize(1), Blocks.BLACK_BED)); + public static final Item CAKE = register(new BlockItem(builder(), Blocks.CAKE)); + public static final Item WHITE_BED = register(new BlockItem(builder(), Blocks.WHITE_BED)); + public static final Item ORANGE_BED = register(new BlockItem(builder(), Blocks.ORANGE_BED)); + public static final Item MAGENTA_BED = register(new BlockItem(builder(), Blocks.MAGENTA_BED)); + public static final Item LIGHT_BLUE_BED = register(new BlockItem(builder(), Blocks.LIGHT_BLUE_BED)); + public static final Item YELLOW_BED = register(new BlockItem(builder(), Blocks.YELLOW_BED)); + public static final Item LIME_BED = register(new BlockItem(builder(), Blocks.LIME_BED)); + public static final Item PINK_BED = register(new BlockItem(builder(), Blocks.PINK_BED)); + public static final Item GRAY_BED = register(new BlockItem(builder(), Blocks.GRAY_BED)); + public static final Item LIGHT_GRAY_BED = register(new BlockItem(builder(), Blocks.LIGHT_GRAY_BED)); + public static final Item CYAN_BED = register(new BlockItem(builder(), Blocks.CYAN_BED)); + public static final Item PURPLE_BED = register(new BlockItem(builder(), Blocks.PURPLE_BED)); + public static final Item BLUE_BED = register(new BlockItem(builder(), Blocks.BLUE_BED)); + public static final Item BROWN_BED = register(new BlockItem(builder(), Blocks.BROWN_BED)); + public static final Item GREEN_BED = register(new BlockItem(builder(), Blocks.GREEN_BED)); + public static final Item RED_BED = register(new BlockItem(builder(), Blocks.RED_BED)); + public static final Item BLACK_BED = register(new BlockItem(builder(), Blocks.BLACK_BED)); public static final Item COOKIE = register(new Item("cookie", builder())); public static final Item CRAFTER = register(new BlockItem(builder(), Blocks.CRAFTER)); public static final Item FILLED_MAP = register(new FilledMapItem("filled_map", builder())); - public static final Item SHEARS = register(new Item("shears", builder().stackSize(1).maxDamage(238))); + public static final Item SHEARS = register(new Item("shears", builder())); public static final Item MELON_SLICE = register(new Item("melon_slice", builder())); public static final Item DRIED_KELP = register(new Item("dried_kelp", builder())); public static final Item PUMPKIN_SEEDS = register(new BlockItem("pumpkin_seeds", builder(), Blocks.PUMPKIN_STEM)); @@ -1108,19 +1117,19 @@ public final class Items { public static final Item CHICKEN = register(new Item("chicken", builder())); public static final Item COOKED_CHICKEN = register(new Item("cooked_chicken", builder())); public static final Item ROTTEN_FLESH = register(new Item("rotten_flesh", builder())); - public static final Item ENDER_PEARL = register(new Item("ender_pearl", builder().stackSize(16))); + public static final Item ENDER_PEARL = register(new Item("ender_pearl", builder())); public static final Item BLAZE_ROD = register(new Item("blaze_rod", builder())); public static final Item GHAST_TEAR = register(new Item("ghast_tear", builder())); public static final Item GOLD_NUGGET = register(new Item("gold_nugget", builder())); public static final Item NETHER_WART = register(new BlockItem(builder(), Blocks.NETHER_WART)); public static final Item GLASS_BOTTLE = register(new Item("glass_bottle", builder())); - public static final Item POTION = register(new PotionItem("potion", builder().stackSize(1))); + public static final Item POTION = register(new PotionItem("potion", builder())); public static final Item SPIDER_EYE = register(new Item("spider_eye", builder())); public static final Item FERMENTED_SPIDER_EYE = register(new Item("fermented_spider_eye", builder())); public static final Item BLAZE_POWDER = register(new Item("blaze_powder", builder())); public static final Item MAGMA_CREAM = register(new Item("magma_cream", builder())); public static final Item BREWING_STAND = register(new BlockItem(builder(), Blocks.BREWING_STAND)); - public static final Item CAULDRON = register(new BlockItem(builder(), Blocks.CAULDRON, Blocks.LAVA_CAULDRON, Blocks.WATER_CAULDRON, Blocks.POWDER_SNOW_CAULDRON)); + public static final Item CAULDRON = register(new BlockItem(builder(), Blocks.CAULDRON, Blocks.POWDER_SNOW_CAULDRON, Blocks.LAVA_CAULDRON, Blocks.WATER_CAULDRON)); public static final Item ENDER_EYE = register(new Item("ender_eye", builder())); public static final Item GLISTERING_MELON_SLICE = register(new Item("glistering_melon_slice", builder())); public static final Item ARMADILLO_SPAWN_EGG = register(new SpawnEggItem("armadillo_spawn_egg", builder())); @@ -1207,10 +1216,10 @@ public final class Items { public static final Item EXPERIENCE_BOTTLE = register(new Item("experience_bottle", builder())); public static final Item FIRE_CHARGE = register(new Item("fire_charge", builder())); public static final Item WIND_CHARGE = register(new Item("wind_charge", builder())); - public static final Item WRITABLE_BOOK = register(new WritableBookItem("writable_book", builder().stackSize(1))); - public static final Item WRITTEN_BOOK = register(new WrittenBookItem("written_book", builder().stackSize(16))); + public static final Item WRITABLE_BOOK = register(new WritableBookItem("writable_book", builder())); + public static final Item WRITTEN_BOOK = register(new WrittenBookItem("written_book", builder())); public static final Item BREEZE_ROD = register(new Item("breeze_rod", builder())); - public static final Item MACE = register(new MaceItem("mace", builder().stackSize(1).maxDamage(500))); + public static final Item MACE = register(new MaceItem("mace", builder())); public static final Item ITEM_FRAME = register(new Item("item_frame", builder())); public static final Item GLOW_ITEM_FRAME = register(new Item("glow_item_frame", builder())); public static final Item FLOWER_POT = register(new BlockItem(builder(), Blocks.FLOWER_POT)); @@ -1231,41 +1240,42 @@ public final class Items { public static final Item PUMPKIN_PIE = register(new Item("pumpkin_pie", builder())); public static final Item FIREWORK_ROCKET = register(new FireworkRocketItem("firework_rocket", builder())); public static final Item FIREWORK_STAR = register(new FireworkStarItem("firework_star", builder())); - public static final Item ENCHANTED_BOOK = register(new EnchantedBookItem("enchanted_book", builder().stackSize(1))); + public static final Item ENCHANTED_BOOK = register(new EnchantedBookItem("enchanted_book", builder())); public static final Item NETHER_BRICK = register(new Item("nether_brick", builder())); + public static final Item RESIN_BRICK = register(new Item("resin_brick", builder())); public static final Item PRISMARINE_SHARD = register(new Item("prismarine_shard", builder())); public static final Item PRISMARINE_CRYSTALS = register(new Item("prismarine_crystals", builder())); public static final Item RABBIT = register(new Item("rabbit", builder())); public static final Item COOKED_RABBIT = register(new Item("cooked_rabbit", builder())); - public static final Item RABBIT_STEW = register(new Item("rabbit_stew", builder().stackSize(1))); + public static final Item RABBIT_STEW = register(new Item("rabbit_stew", builder())); public static final Item RABBIT_FOOT = register(new Item("rabbit_foot", builder())); public static final Item RABBIT_HIDE = register(new Item("rabbit_hide", builder())); - public static final Item ARMOR_STAND = register(new Item("armor_stand", builder().stackSize(16))); - public static final Item IRON_HORSE_ARMOR = register(new Item("iron_horse_armor", builder().stackSize(1))); - public static final Item GOLDEN_HORSE_ARMOR = register(new Item("golden_horse_armor", builder().stackSize(1))); - public static final Item DIAMOND_HORSE_ARMOR = register(new Item("diamond_horse_armor", builder().stackSize(1))); - public static final Item LEATHER_HORSE_ARMOR = register(new DyeableArmorItem("leather_horse_armor", ArmorMaterial.LEATHER, builder().stackSize(1))); + public static final Item ARMOR_STAND = register(new Item("armor_stand", builder())); + public static final Item IRON_HORSE_ARMOR = register(new Item("iron_horse_armor", builder())); + public static final Item GOLDEN_HORSE_ARMOR = register(new Item("golden_horse_armor", builder())); + public static final Item DIAMOND_HORSE_ARMOR = register(new Item("diamond_horse_armor", builder())); + public static final Item LEATHER_HORSE_ARMOR = register(new Item("leather_horse_armor", builder())); public static final Item LEAD = register(new Item("lead", builder())); public static final Item NAME_TAG = register(new Item("name_tag", builder())); - public static final Item COMMAND_BLOCK_MINECART = register(new Item("command_block_minecart", builder().stackSize(1))); + public static final Item COMMAND_BLOCK_MINECART = register(new Item("command_block_minecart", builder())); public static final Item MUTTON = register(new Item("mutton", builder())); public static final Item COOKED_MUTTON = register(new Item("cooked_mutton", builder())); - public static final Item WHITE_BANNER = register(new BannerItem(builder().stackSize(16), Blocks.WHITE_BANNER, Blocks.WHITE_WALL_BANNER)); - public static final Item ORANGE_BANNER = register(new BannerItem(builder().stackSize(16), Blocks.ORANGE_BANNER, Blocks.ORANGE_WALL_BANNER)); - public static final Item MAGENTA_BANNER = register(new BannerItem(builder().stackSize(16), Blocks.MAGENTA_BANNER, Blocks.MAGENTA_WALL_BANNER)); - public static final Item LIGHT_BLUE_BANNER = register(new BannerItem(builder().stackSize(16), Blocks.LIGHT_BLUE_BANNER, Blocks.LIGHT_BLUE_WALL_BANNER)); - public static final Item YELLOW_BANNER = register(new BannerItem(builder().stackSize(16), Blocks.YELLOW_BANNER, Blocks.YELLOW_WALL_BANNER)); - public static final Item LIME_BANNER = register(new BannerItem(builder().stackSize(16), Blocks.LIME_BANNER, Blocks.LIME_WALL_BANNER)); - public static final Item PINK_BANNER = register(new BannerItem(builder().stackSize(16), Blocks.PINK_BANNER, Blocks.PINK_WALL_BANNER)); - public static final Item GRAY_BANNER = register(new BannerItem(builder().stackSize(16), Blocks.GRAY_BANNER, Blocks.GRAY_WALL_BANNER)); - public static final Item LIGHT_GRAY_BANNER = register(new BannerItem(builder().stackSize(16), Blocks.LIGHT_GRAY_BANNER, Blocks.LIGHT_GRAY_WALL_BANNER)); - public static final Item CYAN_BANNER = register(new BannerItem(builder().stackSize(16), Blocks.CYAN_BANNER, Blocks.CYAN_WALL_BANNER)); - public static final Item PURPLE_BANNER = register(new BannerItem(builder().stackSize(16), Blocks.PURPLE_BANNER, Blocks.PURPLE_WALL_BANNER)); - public static final Item BLUE_BANNER = register(new BannerItem(builder().stackSize(16), Blocks.BLUE_BANNER, Blocks.BLUE_WALL_BANNER)); - public static final Item BROWN_BANNER = register(new BannerItem(builder().stackSize(16), Blocks.BROWN_BANNER, Blocks.BROWN_WALL_BANNER)); - public static final Item GREEN_BANNER = register(new BannerItem(builder().stackSize(16), Blocks.GREEN_BANNER, Blocks.GREEN_WALL_BANNER)); - public static final Item RED_BANNER = register(new BannerItem(builder().stackSize(16), Blocks.RED_BANNER, Blocks.RED_WALL_BANNER)); - public static final Item BLACK_BANNER = register(new BannerItem(builder().stackSize(16), Blocks.BLACK_BANNER, Blocks.BLACK_WALL_BANNER)); + public static final Item WHITE_BANNER = register(new BannerItem(builder(), Blocks.WHITE_BANNER, Blocks.WHITE_WALL_BANNER)); + public static final Item ORANGE_BANNER = register(new BannerItem(builder(), Blocks.ORANGE_BANNER, Blocks.ORANGE_WALL_BANNER)); + public static final Item MAGENTA_BANNER = register(new BannerItem(builder(), Blocks.MAGENTA_BANNER, Blocks.MAGENTA_WALL_BANNER)); + public static final Item LIGHT_BLUE_BANNER = register(new BannerItem(builder(), Blocks.LIGHT_BLUE_BANNER, Blocks.LIGHT_BLUE_WALL_BANNER)); + public static final Item YELLOW_BANNER = register(new BannerItem(builder(), Blocks.YELLOW_BANNER, Blocks.YELLOW_WALL_BANNER)); + public static final Item LIME_BANNER = register(new BannerItem(builder(), Blocks.LIME_BANNER, Blocks.LIME_WALL_BANNER)); + public static final Item PINK_BANNER = register(new BannerItem(builder(), Blocks.PINK_BANNER, Blocks.PINK_WALL_BANNER)); + public static final Item GRAY_BANNER = register(new BannerItem(builder(), Blocks.GRAY_BANNER, Blocks.GRAY_WALL_BANNER)); + public static final Item LIGHT_GRAY_BANNER = register(new BannerItem(builder(), Blocks.LIGHT_GRAY_BANNER, Blocks.LIGHT_GRAY_WALL_BANNER)); + public static final Item CYAN_BANNER = register(new BannerItem(builder(), Blocks.CYAN_BANNER, Blocks.CYAN_WALL_BANNER)); + public static final Item PURPLE_BANNER = register(new BannerItem(builder(), Blocks.PURPLE_BANNER, Blocks.PURPLE_WALL_BANNER)); + public static final Item BLUE_BANNER = register(new BannerItem(builder(), Blocks.BLUE_BANNER, Blocks.BLUE_WALL_BANNER)); + public static final Item BROWN_BANNER = register(new BannerItem(builder(), Blocks.BROWN_BANNER, Blocks.BROWN_WALL_BANNER)); + public static final Item GREEN_BANNER = register(new BannerItem(builder(), Blocks.GREEN_BANNER, Blocks.GREEN_WALL_BANNER)); + public static final Item RED_BANNER = register(new BannerItem(builder(), Blocks.RED_BANNER, Blocks.RED_WALL_BANNER)); + public static final Item BLACK_BANNER = register(new BannerItem(builder(), Blocks.BLACK_BANNER, Blocks.BLACK_WALL_BANNER)); public static final Item END_CRYSTAL = register(new Item("end_crystal", builder())); public static final Item CHORUS_FRUIT = register(new Item("chorus_fruit", builder())); public static final Item POPPED_CHORUS_FRUIT = register(new Item("popped_chorus_fruit", builder())); @@ -1273,55 +1283,55 @@ public final class Items { public static final Item PITCHER_POD = register(new BlockItem("pitcher_pod", builder(), Blocks.PITCHER_CROP)); public static final Item BEETROOT = register(new Item("beetroot", builder())); public static final Item BEETROOT_SEEDS = register(new BlockItem("beetroot_seeds", builder(), Blocks.BEETROOTS)); - public static final Item BEETROOT_SOUP = register(new Item("beetroot_soup", builder().stackSize(1))); + public static final Item BEETROOT_SOUP = register(new Item("beetroot_soup", builder())); public static final Item DRAGON_BREATH = register(new Item("dragon_breath", builder())); - public static final Item SPLASH_POTION = register(new PotionItem("splash_potion", builder().stackSize(1))); + public static final Item SPLASH_POTION = register(new PotionItem("splash_potion", builder())); public static final Item SPECTRAL_ARROW = register(new Item("spectral_arrow", builder())); public static final Item TIPPED_ARROW = register(new TippedArrowItem("tipped_arrow", builder())); - public static final Item LINGERING_POTION = register(new PotionItem("lingering_potion", builder().stackSize(1))); - public static final Item SHIELD = register(new ShieldItem("shield", builder().stackSize(1).maxDamage(336))); - public static final Item TOTEM_OF_UNDYING = register(new Item("totem_of_undying", builder().stackSize(1))); + public static final Item LINGERING_POTION = register(new PotionItem("lingering_potion", builder())); + public static final Item SHIELD = register(new ShieldItem("shield", builder())); + public static final Item TOTEM_OF_UNDYING = register(new Item("totem_of_undying", builder())); public static final Item SHULKER_SHELL = register(new Item("shulker_shell", builder())); public static final Item IRON_NUGGET = register(new Item("iron_nugget", builder())); - public static final Item KNOWLEDGE_BOOK = register(new Item("knowledge_book", builder().stackSize(1))); - public static final Item DEBUG_STICK = register(new Item("debug_stick", builder().stackSize(1))); - public static final Item MUSIC_DISC_13 = register(new Item("music_disc_13", builder().stackSize(1))); - public static final Item MUSIC_DISC_CAT = register(new Item("music_disc_cat", builder().stackSize(1))); - public static final Item MUSIC_DISC_BLOCKS = register(new Item("music_disc_blocks", builder().stackSize(1))); - public static final Item MUSIC_DISC_CHIRP = register(new Item("music_disc_chirp", builder().stackSize(1))); - public static final Item MUSIC_DISC_CREATOR = register(new Item("music_disc_creator", builder().stackSize(1))); - public static final Item MUSIC_DISC_CREATOR_MUSIC_BOX = register(new Item("music_disc_creator_music_box", builder().stackSize(1))); - public static final Item MUSIC_DISC_FAR = register(new Item("music_disc_far", builder().stackSize(1))); - public static final Item MUSIC_DISC_MALL = register(new Item("music_disc_mall", builder().stackSize(1))); - public static final Item MUSIC_DISC_MELLOHI = register(new Item("music_disc_mellohi", builder().stackSize(1))); - public static final Item MUSIC_DISC_STAL = register(new Item("music_disc_stal", builder().stackSize(1))); - public static final Item MUSIC_DISC_STRAD = register(new Item("music_disc_strad", builder().stackSize(1))); - public static final Item MUSIC_DISC_WARD = register(new Item("music_disc_ward", builder().stackSize(1))); - public static final Item MUSIC_DISC_11 = register(new Item("music_disc_11", builder().stackSize(1))); - public static final Item MUSIC_DISC_WAIT = register(new Item("music_disc_wait", builder().stackSize(1))); - public static final Item MUSIC_DISC_OTHERSIDE = register(new Item("music_disc_otherside", builder().stackSize(1))); - public static final Item MUSIC_DISC_RELIC = register(new Item("music_disc_relic", builder().stackSize(1))); - public static final Item MUSIC_DISC_5 = register(new Item("music_disc_5", builder().stackSize(1))); - public static final Item MUSIC_DISC_PIGSTEP = register(new Item("music_disc_pigstep", builder().stackSize(1))); - public static final Item MUSIC_DISC_PRECIPICE = register(new Item("music_disc_precipice", builder().stackSize(1))); + public static final Item KNOWLEDGE_BOOK = register(new Item("knowledge_book", builder())); + public static final Item DEBUG_STICK = register(new Item("debug_stick", builder())); + public static final Item MUSIC_DISC_13 = register(new Item("music_disc_13", builder())); + public static final Item MUSIC_DISC_CAT = register(new Item("music_disc_cat", builder())); + public static final Item MUSIC_DISC_BLOCKS = register(new Item("music_disc_blocks", builder())); + public static final Item MUSIC_DISC_CHIRP = register(new Item("music_disc_chirp", builder())); + public static final Item MUSIC_DISC_CREATOR = register(new Item("music_disc_creator", builder())); + public static final Item MUSIC_DISC_CREATOR_MUSIC_BOX = register(new Item("music_disc_creator_music_box", builder())); + public static final Item MUSIC_DISC_FAR = register(new Item("music_disc_far", builder())); + public static final Item MUSIC_DISC_MALL = register(new Item("music_disc_mall", builder())); + public static final Item MUSIC_DISC_MELLOHI = register(new Item("music_disc_mellohi", builder())); + public static final Item MUSIC_DISC_STAL = register(new Item("music_disc_stal", builder())); + public static final Item MUSIC_DISC_STRAD = register(new Item("music_disc_strad", builder())); + public static final Item MUSIC_DISC_WARD = register(new Item("music_disc_ward", builder())); + public static final Item MUSIC_DISC_11 = register(new Item("music_disc_11", builder())); + public static final Item MUSIC_DISC_WAIT = register(new Item("music_disc_wait", builder())); + public static final Item MUSIC_DISC_OTHERSIDE = register(new Item("music_disc_otherside", builder())); + public static final Item MUSIC_DISC_RELIC = register(new Item("music_disc_relic", builder())); + public static final Item MUSIC_DISC_5 = register(new Item("music_disc_5", builder())); + public static final Item MUSIC_DISC_PIGSTEP = register(new Item("music_disc_pigstep", builder())); + public static final Item MUSIC_DISC_PRECIPICE = register(new Item("music_disc_precipice", builder())); public static final Item DISC_FRAGMENT_5 = register(new Item("disc_fragment_5", builder())); - public static final Item TRIDENT = register(new Item("trident", builder().stackSize(1).maxDamage(250).attackDamage(9.0))); + public static final Item TRIDENT = register(new Item("trident", builder().attackDamage(9.0))); public static final Item NAUTILUS_SHELL = register(new Item("nautilus_shell", builder())); public static final Item HEART_OF_THE_SEA = register(new Item("heart_of_the_sea", builder())); - public static final Item CROSSBOW = register(new CrossbowItem("crossbow", builder().stackSize(1).maxDamage(465))); - public static final Item SUSPICIOUS_STEW = register(new Item("suspicious_stew", builder().stackSize(1))); + public static final Item CROSSBOW = register(new CrossbowItem("crossbow", builder())); + public static final Item SUSPICIOUS_STEW = register(new Item("suspicious_stew", builder())); public static final Item LOOM = register(new BlockItem(builder(), Blocks.LOOM)); - public static final Item FLOWER_BANNER_PATTERN = register(new Item("flower_banner_pattern", builder().stackSize(1))); - public static final Item CREEPER_BANNER_PATTERN = register(new Item("creeper_banner_pattern", builder().stackSize(1))); - public static final Item SKULL_BANNER_PATTERN = register(new Item("skull_banner_pattern", builder().stackSize(1))); - public static final Item MOJANG_BANNER_PATTERN = register(new Item("mojang_banner_pattern", builder().stackSize(1))); - public static final Item GLOBE_BANNER_PATTERN = register(new Item("globe_banner_pattern", builder().stackSize(1))); - public static final Item PIGLIN_BANNER_PATTERN = register(new Item("piglin_banner_pattern", builder().stackSize(1))); - public static final Item FLOW_BANNER_PATTERN = register(new Item("flow_banner_pattern", builder().stackSize(1))); - public static final Item GUSTER_BANNER_PATTERN = register(new Item("guster_banner_pattern", builder().stackSize(1))); - public static final Item FIELD_MASONED_BANNER_PATTERN = register(new Item("field_masoned_banner_pattern", builder().stackSize(1))); - public static final Item BORDURE_INDENTED_BANNER_PATTERN = register(new Item("bordure_indented_banner_pattern", builder().stackSize(1))); - public static final Item GOAT_HORN = register(new GoatHornItem("goat_horn", builder().stackSize(1))); + public static final Item FLOWER_BANNER_PATTERN = register(new Item("flower_banner_pattern", builder())); + public static final Item CREEPER_BANNER_PATTERN = register(new Item("creeper_banner_pattern", builder())); + public static final Item SKULL_BANNER_PATTERN = register(new Item("skull_banner_pattern", builder())); + public static final Item MOJANG_BANNER_PATTERN = register(new Item("mojang_banner_pattern", builder())); + public static final Item GLOBE_BANNER_PATTERN = register(new Item("globe_banner_pattern", builder())); + public static final Item PIGLIN_BANNER_PATTERN = register(new Item("piglin_banner_pattern", builder())); + public static final Item FLOW_BANNER_PATTERN = register(new Item("flow_banner_pattern", builder())); + public static final Item GUSTER_BANNER_PATTERN = register(new Item("guster_banner_pattern", builder())); + public static final Item FIELD_MASONED_BANNER_PATTERN = register(new Item("field_masoned_banner_pattern", builder())); + public static final Item BORDURE_INDENTED_BANNER_PATTERN = register(new Item("bordure_indented_banner_pattern", builder())); + public static final Item GOAT_HORN = register(new GoatHornItem("goat_horn", builder())); public static final Item COMPOSTER = register(new BlockItem(builder(), Blocks.COMPOSTER)); public static final Item BARREL = register(new BlockItem(builder(), Blocks.BARREL)); public static final Item SMOKER = register(new BlockItem(builder(), Blocks.SMOKER)); @@ -1342,7 +1352,7 @@ public final class Items { public static final Item HONEYCOMB = register(new Item("honeycomb", builder())); public static final Item BEE_NEST = register(new BlockItem(builder(), Blocks.BEE_NEST)); public static final Item BEEHIVE = register(new BlockItem(builder(), Blocks.BEEHIVE)); - public static final Item HONEY_BOTTLE = register(new Item("honey_bottle", builder().stackSize(16))); + public static final Item HONEY_BOTTLE = register(new Item("honey_bottle", builder())); public static final Item HONEYCOMB_BLOCK = register(new BlockItem(builder(), Blocks.HONEYCOMB_BLOCK)); public static final Item LODESTONE = register(new BlockItem(builder(), Blocks.LODESTONE)); public static final Item CRYING_OBSIDIAN = register(new BlockItem(builder(), Blocks.CRYING_OBSIDIAN)); @@ -1386,7 +1396,7 @@ public final class Items { public static final Item PEARLESCENT_FROGLIGHT = register(new BlockItem(builder(), Blocks.PEARLESCENT_FROGLIGHT)); public static final Item FROGSPAWN = register(new BlockItem(builder(), Blocks.FROGSPAWN)); public static final Item ECHO_SHARD = register(new Item("echo_shard", builder())); - public static final Item BRUSH = register(new Item("brush", builder().stackSize(1).maxDamage(64))); + public static final Item BRUSH = register(new Item("brush", builder())); public static final Item NETHERITE_UPGRADE_SMITHING_TEMPLATE = register(new Item("netherite_upgrade_smithing_template", builder())); public static final Item SENTRY_ARMOR_TRIM_SMITHING_TEMPLATE = register(new Item("sentry_armor_trim_smithing_template", builder())); public static final Item DUNE_ARMOR_TRIM_SMITHING_TEMPLATE = register(new Item("dune_armor_trim_smithing_template", builder())); @@ -1449,7 +1459,7 @@ public final class Items { public static final Item TRIAL_KEY = register(new Item("trial_key", builder())); public static final Item OMINOUS_TRIAL_KEY = register(new Item("ominous_trial_key", builder())); public static final Item VAULT = register(new BlockItem(builder(), Blocks.VAULT)); - public static final Item OMINOUS_BOTTLE = register(new OminousBottleItem("ominous_bottle", builder())); + public static final Item OMINOUS_BOTTLE = register(new Item("ominous_bottle", builder())); public static final int AIR_ID = AIR.javaId(); diff --git a/core/src/main/java/org/geysermc/geyser/item/type/BedrockRequiresTagItem.java b/core/src/main/java/org/geysermc/geyser/item/type/BedrockRequiresTagItem.java index c41d14396..cd360f564 100644 --- a/core/src/main/java/org/geysermc/geyser/item/type/BedrockRequiresTagItem.java +++ b/core/src/main/java/org/geysermc/geyser/item/type/BedrockRequiresTagItem.java @@ -25,12 +25,6 @@ package org.geysermc.geyser.item.type; -import org.checkerframework.checker.nullness.qual.Nullable; -import org.geysermc.geyser.session.GeyserSession; -import org.geysermc.geyser.translator.item.BedrockItemBuilder; -import org.geysermc.mcprotocollib.protocol.data.game.item.component.DataComponents; - +// Whether this item should have its NBT data kept in the recipe book. public interface BedrockRequiresTagItem { - - void addRequiredNbt(GeyserSession session, @Nullable DataComponents components, BedrockItemBuilder builder); } diff --git a/core/src/main/java/org/geysermc/geyser/item/type/FireworkRocketItem.java b/core/src/main/java/org/geysermc/geyser/item/type/FireworkRocketItem.java index 2e7848318..862325a90 100644 --- a/core/src/main/java/org/geysermc/geyser/item/type/FireworkRocketItem.java +++ b/core/src/main/java/org/geysermc/geyser/item/type/FireworkRocketItem.java @@ -27,7 +27,6 @@ package org.geysermc.geyser.item.type; import it.unimi.dsi.fastutil.ints.IntArrays; import org.checkerframework.checker.nullness.qual.NonNull; -import org.checkerframework.checker.nullness.qual.Nullable; import org.cloudburstmc.nbt.NbtList; import org.cloudburstmc.nbt.NbtMap; import org.cloudburstmc.nbt.NbtMapBuilder; @@ -142,20 +141,4 @@ public class FireworkRocketItem extends Item implements BedrockRequiresTagItem { return null; } } - - @Override - public void addRequiredNbt(GeyserSession session, @Nullable DataComponents components, BedrockItemBuilder builder) { - if (components != null) { - Fireworks fireworks = components.get(DataComponentType.FIREWORKS); - if (fireworks != null) { - // Already translated - return; - } - } - - NbtMapBuilder fireworksNbt = NbtMap.builder(); - fireworksNbt.putByte("Flight", (byte) 1); - fireworksNbt.put("Explosions", NbtList.EMPTY); - builder.putCompound("Fireworks", fireworksNbt.build()); - } } diff --git a/core/src/main/java/org/geysermc/geyser/item/type/Item.java b/core/src/main/java/org/geysermc/geyser/item/type/Item.java index 0155c4e35..7f0d9099e 100644 --- a/core/src/main/java/org/geysermc/geyser/item/type/Item.java +++ b/core/src/main/java/org/geysermc/geyser/item/type/Item.java @@ -62,23 +62,16 @@ public class Item { private static final Map BLOCK_TO_ITEM = new HashMap<>(); protected final Key javaIdentifier; private int javaId = -1; - - // TODO remove these - private final int stackSize; private final int attackDamage; - private final int maxDamage; - private final Rarity rarity; - private final boolean glint; + private final DataComponents baseComponents; - private DataComponents dataComponents; + private final List enchantmentGlintPresent = List.of(Items.ENCHANTED_GOLDEN_APPLE, Items.EXPERIENCE_BOTTLE, Items.WRITTEN_BOOK, + Items.NETHER_STAR, Items.ENCHANTED_BOOK, Items.END_CRYSTAL); public Item(String javaIdentifier, Builder builder) { this.javaIdentifier = MinecraftKey.key(javaIdentifier); - this.stackSize = builder.stackSize; - this.maxDamage = builder.maxDamage; + this.baseComponents = builder.components; this.attackDamage = builder.attackDamage; - this.rarity = builder.rarity; - this.glint = builder.glint; } public String javaIdentifier() { @@ -89,24 +82,28 @@ public class Item { return javaId; } - public int maxDamage() { - return dataComponents.getOrDefault(DataComponentType.MAX_DAMAGE, 0); + public int defaultMaxDamage() { + return baseComponents.getOrDefault(DataComponentType.MAX_DAMAGE, 0); } - public int attackDamage() { + public int defaultAttackDamage() { return attackDamage; } - public int maxStackSize() { - return dataComponents.getOrDefault(DataComponentType.MAX_STACK_SIZE, 1); + public int defaultMaxStackSize() { + return baseComponents.getOrDefault(DataComponentType.MAX_STACK_SIZE, 1); } - public Rarity rarity() { - return rarity; + public Rarity defaultRarity() { + return Rarity.fromId(baseComponents.getOrDefault(DataComponentType.RARITY, 0)); } - public boolean glint() { - return glint; + public DataComponents gatherComponents(DataComponents others) { + if (others == null) return baseComponents.clone(); + + DataComponents components = baseComponents.clone(); + components.getDataComponents().putAll(others.getDataComponents()); + return components; } public boolean isValidRepairItem(Item other) { @@ -295,32 +292,28 @@ public class Item { } public static Builder builder() { - return new Builder(); + return new Builder().components(new DataComponents(new HashMap<>())); // TODO actually set components here } public static final class Builder { - private int stackSize = 64; - private int maxDamage; + private DataComponents components; private int attackDamage; - private Rarity rarity = Rarity.COMMON; - private boolean glint = false; - - public Builder stackSize(int stackSize) { - this.stackSize = stackSize; - return this; - } public Builder attackDamage(double attackDamage) { - // TODO properly store/send a double value once Bedrock supports it.. pls + // Bedrock edition does not support attack damage being a double this.attackDamage = (int) attackDamage; return this; } - public Builder maxDamage(int maxDamage) { - this.maxDamage = maxDamage; + public Builder components(DataComponents components) { + this.components = components; return this; } + public DataComponents components() { + return this.components; + } + private Builder() { } } diff --git a/core/src/main/java/org/geysermc/geyser/registry/populator/CustomItemRegistryPopulator.java b/core/src/main/java/org/geysermc/geyser/registry/populator/CustomItemRegistryPopulator.java index 0a9c93980..ec094ea31 100644 --- a/core/src/main/java/org/geysermc/geyser/registry/populator/CustomItemRegistryPopulator.java +++ b/core/src/main/java/org/geysermc/geyser/registry/populator/CustomItemRegistryPopulator.java @@ -48,6 +48,8 @@ import org.geysermc.geyser.registry.mappings.MappingsConfigReader; import org.geysermc.geyser.registry.type.GeyserMappingItem; import org.geysermc.geyser.registry.type.ItemMapping; import org.geysermc.geyser.registry.type.NonVanillaItemRegistration; +import org.geysermc.mcprotocollib.protocol.data.game.item.component.DataComponentType; +import org.geysermc.mcprotocollib.protocol.data.game.item.component.DataComponents; import java.util.*; @@ -129,10 +131,11 @@ public class CustomItemRegistryPopulator { Set repairMaterials = customItemData.repairMaterials(); - Item.Builder itemBuilder = Item.builder() - .stackSize(customItemData.stackSize()) - .maxDamage(customItemData.maxDamage()); - Item item = new Item(customIdentifier, itemBuilder) { + DataComponents components = new DataComponents(new HashMap<>()); + components.put(DataComponentType.MAX_STACK_SIZE, customItemData.stackSize()); + components.put(DataComponentType.MAX_DAMAGE, customItemData.maxDamage()); + + Item item = new Item(customIdentifier, Item.builder().components(components)) { @Override public boolean isValidRepairItem(Item other) { return repairMaterials != null && repairMaterials.contains(other.javaIdentifier()); @@ -167,11 +170,11 @@ public class CustomItemRegistryPopulator { NbtMapBuilder itemProperties = NbtMap.builder(); NbtMapBuilder componentBuilder = NbtMap.builder(); - setupBasicItemInfo(javaItem.maxDamage(), javaItem.maxStackSize(), mapping.getToolType() != null || customItemData.displayHandheld(), customItemData, itemProperties, componentBuilder, protocolVersion); + setupBasicItemInfo(javaItem.defaultMaxDamage(), javaItem.defaultMaxStackSize(), mapping.getToolType() != null || customItemData.displayHandheld(), customItemData, itemProperties, componentBuilder, protocolVersion); boolean canDestroyInCreative = true; if (mapping.getToolType() != null) { // This is not using the isTool boolean because it is not just a render type here. - canDestroyInCreative = computeToolProperties(mapping.getToolType(), itemProperties, componentBuilder, javaItem.attackDamage()); + canDestroyInCreative = computeToolProperties(mapping.getToolType(), itemProperties, componentBuilder, javaItem.defaultAttackDamage()); } itemProperties.putBoolean("can_destroy_in_creative", canDestroyInCreative); diff --git a/core/src/main/java/org/geysermc/geyser/registry/populator/ItemRegistryPopulator.java b/core/src/main/java/org/geysermc/geyser/registry/populator/ItemRegistryPopulator.java index 1da3b0e66..b4c963578 100644 --- a/core/src/main/java/org/geysermc/geyser/registry/populator/ItemRegistryPopulator.java +++ b/core/src/main/java/org/geysermc/geyser/registry/populator/ItemRegistryPopulator.java @@ -447,7 +447,7 @@ public class ItemRegistryPopulator { } } - if (javaOnlyItems.contains(javaItem) || javaItem.rarity() != Rarity.COMMON) { + if (javaOnlyItems.contains(javaItem) || javaItem.defaultRarity() != Rarity.COMMON) { // These items don't exist on Bedrock, so set up a variable that indicates they should have custom names // Or, ensure that we are translating these at all times to account for rarity colouring mappingBuilder = mappingBuilder.translationString((javaItem instanceof BlockItem ? "block." : "item.") + entry.getKey().replace(":", ".")); diff --git a/core/src/main/java/org/geysermc/geyser/translator/item/CustomItemTranslator.java b/core/src/main/java/org/geysermc/geyser/translator/item/CustomItemTranslator.java index b65b06431..fdc90c215 100644 --- a/core/src/main/java/org/geysermc/geyser/translator/item/CustomItemTranslator.java +++ b/core/src/main/java/org/geysermc/geyser/translator/item/CustomItemTranslator.java @@ -62,7 +62,7 @@ public final class CustomItemTranslator { } } - boolean checkDamage = mapping.getJavaItem().maxDamage() > 0; + boolean checkDamage = mapping.getJavaItem().defaultMaxDamage() > 0; int damage = !checkDamage ? 0 : components.getOrDefault(DataComponentType.DAMAGE, 0); boolean unbreakable = checkDamage && !isDamaged(components, damage); diff --git a/core/src/main/java/org/geysermc/geyser/translator/item/ItemTranslator.java b/core/src/main/java/org/geysermc/geyser/translator/item/ItemTranslator.java index 3cfd00233..062666f84 100644 --- a/core/src/main/java/org/geysermc/geyser/translator/item/ItemTranslator.java +++ b/core/src/main/java/org/geysermc/geyser/translator/item/ItemTranslator.java @@ -40,7 +40,6 @@ import org.geysermc.geyser.api.block.custom.CustomBlockData; import org.geysermc.geyser.inventory.GeyserItemStack; import org.geysermc.geyser.item.Items; import org.geysermc.geyser.item.components.Rarity; -import org.geysermc.geyser.item.type.BedrockRequiresTagItem; import org.geysermc.geyser.item.type.Item; import org.geysermc.geyser.level.block.type.Block; import org.geysermc.geyser.registry.BlockRegistries; @@ -150,42 +149,24 @@ public final class ItemTranslator { public static ItemData.@NonNull Builder translateToBedrock(GeyserSession session, Item javaItem, ItemMapping bedrockItem, int count, @Nullable DataComponents components) { BedrockItemBuilder nbtBuilder = new BedrockItemBuilder(); - boolean hideTooltips = false; - if (components != null) { - javaItem.translateComponentsToBedrock(session, components, nbtBuilder); - if (components.get(DataComponentType.HIDE_TOOLTIP) != null) hideTooltips = true; - } + // Populates default components that aren't sent over the network + components = javaItem.gatherComponents(components); - // Fixes fireworks crafting recipe: they always contain a tag - // TODO remove once all items have their default components - if (javaItem instanceof BedrockRequiresTagItem requiresTagItem) { - requiresTagItem.addRequiredNbt(session, components, nbtBuilder); - } - - Rarity rarity = javaItem.rarity(); - boolean enchantmentGlint = javaItem.glint(); - if (components != null) { - Integer rarityIndex = components.get(DataComponentType.RARITY); - if (rarityIndex != null) { - rarity = Rarity.fromId(rarityIndex); - } - Boolean enchantmentGlintOverride = components.get(DataComponentType.ENCHANTMENT_GLINT_OVERRIDE); - if (enchantmentGlintOverride != null) { - enchantmentGlint = enchantmentGlintOverride; - } - } + // Translate item-specific components + javaItem.translateComponentsToBedrock(session, components, nbtBuilder); + Rarity rarity = Rarity.fromId(components.getOrDefault(DataComponentType.RARITY, 0)); String customName = getCustomName(session, components, bedrockItem, rarity.getColor()); if (customName != null) { nbtBuilder.setCustomName(customName); } - if (components != null) { - ItemAttributeModifiers attributeModifiers = components.get(DataComponentType.ATTRIBUTE_MODIFIERS); - if (attributeModifiers != null && attributeModifiers.isShowInTooltip() && !hideTooltips) { - // only add if attribute modifiers do not indicate to hide them - addAttributeLore(attributeModifiers, nbtBuilder, session.locale()); - } + boolean hideTooltips = components.get(DataComponentType.HIDE_TOOLTIP) != null; + + ItemAttributeModifiers attributeModifiers = components.get(DataComponentType.ATTRIBUTE_MODIFIERS); + if (attributeModifiers != null && attributeModifiers.isShowInTooltip() && !hideTooltips) { + // only add if attribute modifiers do not indicate to hide them + addAttributeLore(attributeModifiers, nbtBuilder, session.locale()); } if (session.isAdvancedTooltips() && !hideTooltips) { @@ -193,7 +174,7 @@ public final class ItemTranslator { } // Add enchantment override. We can't remove it - enchantments would stop showing - but we can add it. - if (enchantmentGlint) { + if (components.getOrDefault(DataComponentType.ENCHANTMENT_GLINT_OVERRIDE, false)) { NbtMapBuilder nbtMapBuilder = nbtBuilder.getOrCreateNbt(); nbtMapBuilder.putIfAbsent("ench", NbtList.EMPTY); } @@ -217,18 +198,16 @@ public final class ItemTranslator { translateCustomItem(components, builder, bedrockItem); - if (components != null) { - // Translate the canDestroy and canPlaceOn Java components - AdventureModePredicate canDestroy = components.get(DataComponentType.CAN_BREAK); - AdventureModePredicate canPlaceOn = components.get(DataComponentType.CAN_PLACE_ON); - String[] canBreak = getCanModify(session, canDestroy); - String[] canPlace = getCanModify(session, canPlaceOn); - if (canBreak != null) { - builder.canBreak(canBreak); - } - if (canPlace != null) { - builder.canPlace(canPlace); - } + // Translate the canDestroy and canPlaceOn Java components + AdventureModePredicate canDestroy = components.get(DataComponentType.CAN_BREAK); + AdventureModePredicate canPlaceOn = components.get(DataComponentType.CAN_PLACE_ON); + String[] canBreak = getCanModify(session, canDestroy); + String[] canPlace = getCanModify(session, canPlaceOn); + if (canBreak != null) { + builder.canBreak(canBreak); + } + if (canPlace != null) { + builder.canPlace(canPlace); } return builder; @@ -325,7 +304,7 @@ public final class ItemTranslator { } private static void addAdvancedTooltips(@Nullable DataComponents components, BedrockItemBuilder builder, Item item, String language) { - int maxDurability = item.maxDamage(); + int maxDurability = item.defaultMaxDamage(); if (maxDurability != 0 && components != null) { Integer durabilityComponent = components.get(DataComponentType.DAMAGE); diff --git a/core/src/main/java/org/geysermc/geyser/translator/protocol/bedrock/BedrockBlockPickRequestTranslator.java b/core/src/main/java/org/geysermc/geyser/translator/protocol/bedrock/BedrockBlockPickRequestTranslator.java index 94368a6d4..ee4d7b3d5 100644 --- a/core/src/main/java/org/geysermc/geyser/translator/protocol/bedrock/BedrockBlockPickRequestTranslator.java +++ b/core/src/main/java/org/geysermc/geyser/translator/protocol/bedrock/BedrockBlockPickRequestTranslator.java @@ -27,18 +27,14 @@ package org.geysermc.geyser.translator.protocol.bedrock; import org.cloudburstmc.math.vector.Vector3i; import org.cloudburstmc.protocol.bedrock.packet.BlockPickRequestPacket; -import org.geysermc.geyser.entity.EntityDefinitions; import org.geysermc.geyser.entity.type.ItemFrameEntity; -import org.geysermc.geyser.item.Items; import org.geysermc.geyser.level.block.Blocks; -import org.geysermc.geyser.level.block.type.BannerBlock; import org.geysermc.geyser.level.block.type.BlockState; -import org.geysermc.geyser.level.block.type.SkullBlock; import org.geysermc.geyser.session.GeyserSession; import org.geysermc.geyser.translator.protocol.PacketTranslator; import org.geysermc.geyser.translator.protocol.Translator; -import org.geysermc.geyser.util.InventoryUtils; -import org.geysermc.mcprotocollib.protocol.data.game.item.ItemStack; +import org.geysermc.mcprotocollib.protocol.packet.ingame.serverbound.inventory.ServerboundPickItemFromBlockPacket; +import org.geysermc.mcprotocollib.protocol.packet.ingame.serverbound.inventory.ServerboundPickItemFromEntityPacket; @Translator(packet = BlockPickRequestPacket.class) public class BedrockBlockPickRequestTranslator extends PacketTranslator { @@ -52,42 +48,14 @@ public class BedrockBlockPickRequestTranslator extends PacketTranslator session.ensureInEventLoop(() -> { - if (components == null) { - pickItem(session, blockToPick); - return; - } - - ItemStack itemStack = new ItemStack(blockToPick.block().asItem().javaId(), 1, components); - InventoryUtils.findOrCreateItem(session, itemStack); - })); - return; - } - - pickItem(session, blockToPick); - } - - private void pickItem(GeyserSession session, BlockState state) { - InventoryUtils.findOrCreateItem(session, state.block().pickItem(state)); + session.sendDownstreamGamePacket(new ServerboundPickItemFromBlockPacket(vector, addExtraData)); } } diff --git a/core/src/main/java/org/geysermc/geyser/translator/protocol/bedrock/BedrockEntityPickRequestTranslator.java b/core/src/main/java/org/geysermc/geyser/translator/protocol/bedrock/BedrockEntityPickRequestTranslator.java index acb8573fb..2368e1ad7 100644 --- a/core/src/main/java/org/geysermc/geyser/translator/protocol/bedrock/BedrockEntityPickRequestTranslator.java +++ b/core/src/main/java/org/geysermc/geyser/translator/protocol/bedrock/BedrockEntityPickRequestTranslator.java @@ -26,15 +26,11 @@ package org.geysermc.geyser.translator.protocol.bedrock; import org.cloudburstmc.protocol.bedrock.packet.EntityPickRequestPacket; -import org.geysermc.geyser.entity.type.BoatEntity; import org.geysermc.geyser.entity.type.Entity; -import org.geysermc.geyser.registry.type.ItemMapping; import org.geysermc.geyser.session.GeyserSession; import org.geysermc.geyser.translator.protocol.PacketTranslator; import org.geysermc.geyser.translator.protocol.Translator; -import org.geysermc.geyser.util.InventoryUtils; - -import java.util.Locale; +import org.geysermc.mcprotocollib.protocol.packet.ingame.serverbound.inventory.ServerboundPickItemFromEntityPacket; /** * Called when the Bedrock user uses the pick block button on an entity @@ -49,35 +45,8 @@ public class BedrockEntityPickRequestTranslator extends PacketTranslator itemName = "lead"; - case CHEST_MINECART, COMMAND_BLOCK_MINECART, FURNACE_MINECART, HOPPER_MINECART, TNT_MINECART -> - // The Bedrock identifier matches the item name which moves MINECART to the end of the name - // TODO test - itemName = entity.getDefinition().identifier(); - case SPAWNER_MINECART -> itemName = "minecart"; // Turns into a normal minecart - //case ITEM_FRAME -> Not an entity in Bedrock Edition - //case GLOW_ITEM_FRAME -> - case ARMOR_STAND, END_CRYSTAL, MINECART, PAINTING -> - // No spawn egg, just an item - itemName = entity.getDefinition().entityType().toString().toLowerCase(Locale.ROOT); - default -> itemName = entity.getDefinition().entityType().toString().toLowerCase(Locale.ROOT) + "_spawn_egg"; - } - - String fullItemName = "minecraft:" + itemName; - ItemMapping mapping = session.getItemMappings().getMapping(fullItemName); - // Verify it is, indeed, an item - if (mapping == null) return; - - InventoryUtils.findOrCreateItem(session, fullItemName); } } diff --git a/core/src/main/java/org/geysermc/geyser/translator/protocol/java/inventory/JavaMerchantOffersTranslator.java b/core/src/main/java/org/geysermc/geyser/translator/protocol/java/inventory/JavaMerchantOffersTranslator.java index 970061436..e4ff0539f 100644 --- a/core/src/main/java/org/geysermc/geyser/translator/protocol/java/inventory/JavaMerchantOffersTranslator.java +++ b/core/src/main/java/org/geysermc/geyser/translator/protocol/java/inventory/JavaMerchantOffersTranslator.java @@ -173,7 +173,7 @@ public class JavaMerchantOffersTranslator extends PacketTranslator - * This attempts to mimic Java Edition behavior as best as it can. - * @param session the Bedrock client's session - * @param item the Java item to search/select for - */ - public static void findOrCreateItem(GeyserSession session, Item item) { - // Get the inventory to choose a slot to pick - PlayerInventory inventory = session.getPlayerInventory(); - - if (item == Items.AIR) { - return; - } - - // Check hotbar for item - for (int i = 36; i < 45; i++) { - GeyserItemStack geyserItem = inventory.getItem(i); - if (geyserItem.isEmpty()) { - continue; - } - // If this isn't the item we're looking for - if (!geyserItem.asItem().equals(item)) { - continue; - } - - setHotbarItem(session, i); - // Don't check inventory if item was in hotbar - return; - } - - // Check inventory for item - for (int i = 9; i < 36; i++) { - GeyserItemStack geyserItem = inventory.getItem(i); - if (geyserItem.isEmpty()) { - continue; - } - // If this isn't the item we're looking for - if (!geyserItem.asItem().equals(item)) { - continue; - } - - // TODO 1.21.4 - //ServerboundPickItemPacket packetToSend = new ServerboundPickItemPacket(i); // https://wiki.vg/Protocol#Pick_Item - //session.sendDownstreamGamePacket(packetToSend); - return; - } - - // If we still have not found the item, and we're in creative, set the item ourselves. - if (session.getGameMode() == GameMode.CREATIVE) { - GeyserItemStack itemStack = item.newItemStack(1, null); - setPickedItem(session, inventory, itemStack); - } - } - - private static void setPickedItem(GeyserSession session, PlayerInventory inventory, GeyserItemStack itemStack) { - // Try to find an empty hotbar slot. - int slot = inventory.getHeldItemSlot() + 36; - if (!inventory.getItemInHand().isEmpty()) { // Otherwise we should just use the current slot - for (int i = 36; i < 45; i++) { - if (inventory.getItem(i).isEmpty()) { - slot = i; - break; - } - } - } - GeyserItemStack existingItem = inventory.getItem(slot); - if (!existingItem.isEmpty()) { - // Try to move the item to another slot. - for (int i = 9; i < 36; i++) { - if (inventory.getItem(i).isEmpty()) { - inventory.setItem(i, existingItem, session); - InventoryTranslator.PLAYER_INVENTORY_TRANSLATOR.updateSlot(session, inventory, i); - - ServerboundSetCreativeModeSlotPacket actionPacket = new ServerboundSetCreativeModeSlotPacket((short) i, - existingItem.getItemStack()); - session.sendDownstreamGamePacket(actionPacket); - break; - } - } - } - - // As of 1.21.3 - the client does this on its own end and the server doesn't send a slot response back. - inventory.setItem(slot, itemStack, session); - InventoryTranslator.PLAYER_INVENTORY_TRANSLATOR.updateSlot(session, inventory, slot); - - ServerboundSetCreativeModeSlotPacket actionPacket = new ServerboundSetCreativeModeSlotPacket((short) slot, - itemStack.getItemStack()); - if ((slot - 36) != inventory.getHeldItemSlot()) { - setHotbarItem(session, slot); - } - session.sendDownstreamGamePacket(actionPacket); - } - - /** - * Changes the held item slot to the specified slot - * @param session GeyserSession - * @param slot inventory slot to be selected - */ - private static void setHotbarItem(GeyserSession session, int slot) { - PlayerHotbarPacket hotbarPacket = new PlayerHotbarPacket(); - hotbarPacket.setContainerId(0); - // Java inventory slot to hotbar slot ID - hotbarPacket.setSelectedHotbarSlot(slot - 36); - hotbarPacket.setSelectHotbarSlot(true); - session.sendUpstreamPacket(hotbarPacket); - // No need to send a Java packet as Bedrock sends a confirmation packet back that we translate - } - @Nullable public static Click getClickForHotbarSwap(int slot) { return switch (slot) { From 48ae28432e2e0015889844cc5c6d4001851966a8 Mon Sep 17 00:00:00 2001 From: onebeastchris Date: Mon, 2 Dec 2024 02:23:02 +0800 Subject: [PATCH 03/31] More changes - remove getPickItemComponents in WorldManager, separate additional and base component --- .../mod/world/GeyserModWorldManager.java | 72 ------------------- .../manager/GeyserSpigotWorldManager.java | 19 ----- .../living/animal/tameable/WolfEntity.java | 25 ++++--- .../geyser/inventory/AnvilContainer.java | 10 +-- .../geyser/inventory/GeyserItemStack.java | 58 ++++++++------- .../updater/AnvilInventoryUpdater.java | 37 ++++++---- .../java/org/geysermc/geyser/item/Items.java | 4 -- .../org/geysermc/geyser/item/type/Item.java | 28 ++++---- .../geyser/level/GeyserWorldManager.java | 20 ------ .../geysermc/geyser/level/WorldManager.java | 10 --- .../geyser/session/cache/TagCache.java | 6 +- .../session/cache/tags/GeyserHolderSet.java | 30 ++++++-- .../geyser/skin/FakeHeadProvider.java | 15 ++-- .../inventory/InventoryTranslator.java | 14 ++-- .../inventory/LecternInventoryTranslator.java | 7 +- .../inventory/LoomInventoryTranslator.java | 11 +-- .../inventory/PlayerInventoryTranslator.java | 9 +-- .../translator/item/ItemTranslator.java | 58 +++++++-------- .../bedrock/BedrockBookEditTranslator.java | 2 +- .../org/geysermc/geyser/util/BlockUtils.java | 5 +- .../org/geysermc/geyser/util/ItemUtils.java | 12 ---- 21 files changed, 176 insertions(+), 276 deletions(-) diff --git a/bootstrap/mod/src/main/java/org/geysermc/geyser/platform/mod/world/GeyserModWorldManager.java b/bootstrap/mod/src/main/java/org/geysermc/geyser/platform/mod/world/GeyserModWorldManager.java index f85b6e079..f791aab7a 100644 --- a/bootstrap/mod/src/main/java/org/geysermc/geyser/platform/mod/world/GeyserModWorldManager.java +++ b/bootstrap/mod/src/main/java/org/geysermc/geyser/platform/mod/world/GeyserModWorldManager.java @@ -28,37 +28,24 @@ package org.geysermc.geyser.platform.mod.world; import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer; import net.minecraft.SharedConstants; import net.minecraft.core.BlockPos; -import net.minecraft.core.RegistryAccess; -import net.minecraft.core.component.DataComponents; import net.minecraft.core.registries.BuiltInRegistries; -import net.minecraft.network.chat.Component; import net.minecraft.server.MinecraftServer; import net.minecraft.server.level.ServerChunkCache; import net.minecraft.server.level.ServerPlayer; -import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.ChunkPos; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.Block; -import net.minecraft.world.level.block.entity.BannerBlockEntity; -import net.minecraft.world.level.block.entity.BannerPatternLayers; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.entity.DecoratedPotBlockEntity; import net.minecraft.world.level.chunk.ChunkAccess; import net.minecraft.world.level.chunk.LevelChunkSection; -import org.checkerframework.checker.nullness.qual.NonNull; import org.cloudburstmc.math.vector.Vector3i; import org.geysermc.geyser.level.GeyserWorldManager; import org.geysermc.geyser.network.GameProtocol; import org.geysermc.geyser.session.GeyserSession; -import org.geysermc.geyser.util.MinecraftKey; -import org.geysermc.mcprotocollib.protocol.data.game.Holder; import org.geysermc.mcprotocollib.protocol.data.game.entity.player.GameMode; -import org.geysermc.mcprotocollib.protocol.data.game.item.component.BannerPatternLayer; -import org.geysermc.mcprotocollib.protocol.data.game.item.component.DataComponentType; -import java.util.HashMap; import java.util.List; -import java.util.concurrent.CompletableFuture; import java.util.function.Consumer; public class GeyserModWorldManager extends GeyserWorldManager { @@ -117,49 +104,6 @@ public class GeyserModWorldManager extends GeyserWorldManager { return GameMode.byId(server.getDefaultGameType().getId()); } - @NonNull - @Override - public CompletableFuture getPickItemComponents(GeyserSession session, int x, int y, int z, boolean addNbtData) { - CompletableFuture future = new CompletableFuture<>(); - server.execute(() -> { - ServerPlayer player = getPlayer(session); - if (player == null) { - future.complete(null); - return; - } - - BlockPos pos = new BlockPos(x, y, z); - // Don't create a new block entity if invalid - //noinspection resource - level() is just a getter - BlockEntity blockEntity = player.level().getChunkAt(pos).getBlockEntity(pos); - if (blockEntity instanceof BannerBlockEntity banner) { - // Potentially exposes other NBT data? But we need to get the NBT data for the banner patterns *and* - // the banner might have a custom name, both of which a Java client knows and caches - ItemStack itemStack = banner.getItem(); - - org.geysermc.mcprotocollib.protocol.data.game.item.component.DataComponents components = - new org.geysermc.mcprotocollib.protocol.data.game.item.component.DataComponents(new HashMap<>()); - - components.put(DataComponentType.DAMAGE, itemStack.getDamageValue()); - - Component customName = itemStack.getComponents().get(DataComponents.CUSTOM_NAME); - if (customName != null) { - components.put(DataComponentType.CUSTOM_NAME, toKyoriComponent(customName)); - } - - BannerPatternLayers pattern = itemStack.get(DataComponents.BANNER_PATTERNS); - if (pattern != null) { - components.put(DataComponentType.BANNER_PATTERNS, toPatternList(pattern)); - } - - future.complete(components); - return; - } - future.complete(null); - }); - return future; - } - @Override public void getDecoratedPotData(GeyserSession session, Vector3i pos, Consumer> apply) { server.execute(() -> { @@ -184,20 +128,4 @@ public class GeyserModWorldManager extends GeyserWorldManager { private ServerPlayer getPlayer(GeyserSession session) { return server.getPlayerList().getPlayer(session.getPlayerEntity().getUuid()); } - - private static net.kyori.adventure.text.Component toKyoriComponent(Component component) { - String json = Component.Serializer.toJson(component, RegistryAccess.EMPTY); - return GSON_SERIALIZER.deserializeOr(json, net.kyori.adventure.text.Component.empty()); - } - - private static List toPatternList(BannerPatternLayers patternLayers) { - return patternLayers.layers().stream() - .map(layer -> { - BannerPatternLayer.BannerPattern pattern = new BannerPatternLayer.BannerPattern( - MinecraftKey.key(layer.pattern().value().assetId().toString()), layer.pattern().value().translationKey() - ); - return new BannerPatternLayer(Holder.ofCustom(pattern), layer.color().getId()); - }) - .toList(); - } } diff --git a/bootstrap/spigot/src/main/java/org/geysermc/geyser/platform/spigot/world/manager/GeyserSpigotWorldManager.java b/bootstrap/spigot/src/main/java/org/geysermc/geyser/platform/spigot/world/manager/GeyserSpigotWorldManager.java index 6588a22a3..54b5b9178 100644 --- a/bootstrap/spigot/src/main/java/org/geysermc/geyser/platform/spigot/world/manager/GeyserSpigotWorldManager.java +++ b/bootstrap/spigot/src/main/java/org/geysermc/geyser/platform/spigot/world/manager/GeyserSpigotWorldManager.java @@ -25,18 +25,14 @@ package org.geysermc.geyser.platform.spigot.world.manager; -import it.unimi.dsi.fastutil.ints.Int2ObjectMap; import org.bukkit.Bukkit; import org.bukkit.World; import org.bukkit.block.Block; import org.bukkit.block.DecoratedPot; import org.bukkit.entity.Player; import org.bukkit.plugin.Plugin; -import org.checkerframework.checker.nullness.qual.NonNull; -import org.checkerframework.checker.nullness.qual.Nullable; import org.cloudburstmc.math.vector.Vector3i; import org.geysermc.erosion.bukkit.BukkitUtils; -import org.geysermc.erosion.bukkit.PickBlockUtils; import org.geysermc.erosion.bukkit.SchedulerUtils; import org.geysermc.geyser.GeyserImpl; import org.geysermc.geyser.level.GameRule; @@ -44,7 +40,6 @@ import org.geysermc.geyser.level.WorldManager; import org.geysermc.geyser.registry.BlockRegistries; import org.geysermc.geyser.session.GeyserSession; import org.geysermc.mcprotocollib.protocol.data.game.entity.player.GameMode; -import org.geysermc.mcprotocollib.protocol.data.game.item.component.DataComponents; import java.util.List; import java.util.Objects; @@ -128,20 +123,6 @@ public class GeyserSpigotWorldManager extends WorldManager { return GameMode.byId(Bukkit.getDefaultGameMode().ordinal()); } - @Override - public @NonNull CompletableFuture<@Nullable DataComponents> getPickItemComponents(GeyserSession session, int x, int y, int z, boolean addNbtData) { - Player bukkitPlayer; - if ((bukkitPlayer = Bukkit.getPlayer(session.getPlayerEntity().getUuid())) == null) { - return CompletableFuture.completedFuture(null); - } - CompletableFuture> future = new CompletableFuture<>(); - Block block = bukkitPlayer.getWorld().getBlockAt(x, y, z); - // Paper 1.19.3 complains about async access otherwise. - // java.lang.IllegalStateException: Tile is null, asynchronous access? - SchedulerUtils.runTask(this.plugin, () -> future.complete(PickBlockUtils.pickBlock(block)), block); - return future.thenApply(RAW_TRANSFORMER); - } - public void getDecoratedPotData(GeyserSession session, Vector3i pos, Consumer> apply) { Player bukkitPlayer; if ((bukkitPlayer = Bukkit.getPlayer(session.getPlayerEntity().getUuid())) == null) { diff --git a/core/src/main/java/org/geysermc/geyser/entity/type/living/animal/tameable/WolfEntity.java b/core/src/main/java/org/geysermc/geyser/entity/type/living/animal/tameable/WolfEntity.java index f0b554ef9..67e5788c6 100644 --- a/core/src/main/java/org/geysermc/geyser/entity/type/living/animal/tameable/WolfEntity.java +++ b/core/src/main/java/org/geysermc/geyser/entity/type/living/animal/tameable/WolfEntity.java @@ -38,6 +38,8 @@ import org.geysermc.geyser.item.enchantment.EnchantmentComponent; import org.geysermc.geyser.item.type.DyeItem; import org.geysermc.geyser.item.type.Item; import org.geysermc.geyser.session.GeyserSession; +import org.geysermc.geyser.session.cache.registry.JavaRegistries; +import org.geysermc.geyser.session.cache.tags.GeyserHolderSet; import org.geysermc.geyser.session.cache.tags.ItemTag; import org.geysermc.geyser.session.cache.tags.Tag; import org.geysermc.geyser.util.InteractionResult; @@ -51,6 +53,8 @@ import org.geysermc.mcprotocollib.protocol.data.game.entity.metadata.type.Object import org.geysermc.mcprotocollib.protocol.data.game.entity.player.GameMode; import org.geysermc.mcprotocollib.protocol.data.game.entity.player.Hand; import org.geysermc.mcprotocollib.protocol.data.game.item.ItemStack; +import org.geysermc.mcprotocollib.protocol.data.game.item.component.DataComponentType; +import org.geysermc.mcprotocollib.protocol.data.game.item.component.HolderSet; import java.util.Collections; import java.util.Locale; @@ -58,7 +62,7 @@ import java.util.UUID; public class WolfEntity extends TameableEntity { private byte collarColor = 14; // Red - default - + private GeyserHolderSet repairableItems = null; private boolean isCurseOfBinding = false; public WolfEntity(GeyserSession session, int entityId, long geyserId, UUID uuid, EntityDefinition definition, Vector3f position, Vector3f motion, float yaw, float pitch, float headYaw) { @@ -123,9 +127,11 @@ public class WolfEntity extends TameableEntity { } @Override - public void setChestplate(ItemStack stack) { - super.setChestplate(stack); - isCurseOfBinding = ItemUtils.hasEffect(session, stack, EnchantmentComponent.PREVENT_ARMOR_CHANGE); // TODO test + public void setBody(ItemStack stack) { + super.setBody(stack); + isCurseOfBinding = ItemUtils.hasEffect(session, stack, EnchantmentComponent.PREVENT_ARMOR_CHANGE); + HolderSet set = GeyserItemStack.from(stack).getComponent(DataComponentType.REPAIRABLE); + repairableItems = GeyserHolderSet.convertHolderSet(JavaRegistries.ITEM, set); } @Override @@ -152,16 +158,17 @@ public class WolfEntity extends TameableEntity { return super.testMobInteraction(hand, itemInHand); } } - if (itemInHand.asItem() == Items.WOLF_ARMOR && !this.chestplate.isValid() && !getFlag(EntityFlag.BABY)) { + if (itemInHand.asItem() == Items.WOLF_ARMOR && !this.body.isValid() && !getFlag(EntityFlag.BABY)) { return InteractiveTag.EQUIP_WOLF_ARMOR; } - if (itemInHand.asItem() == Items.SHEARS && this.chestplate.isValid() + if (itemInHand.asItem() == Items.SHEARS && this.body.isValid() && (!isCurseOfBinding || session.getGameMode().equals(GameMode.CREATIVE))) { return InteractiveTag.REMOVE_WOLF_ARMOR; } - if (Items.WOLF_ARMOR.isValidRepairItem(itemInHand.asItem()) && getFlag(EntityFlag.SITTING) && - this.chestplate.isValid() && this.chestplate.getTag() != null && - this.chestplate.getTag().getInt("Damage") > 0) { + if (getFlag(EntityFlag.SITTING) && + session.getTagCache().is(repairableItems, itemInHand.asItem()) && + this.body.isValid() && this.body.getTag() != null && + this.body.getTag().getInt("Damage") > 0) { return InteractiveTag.REPAIR_WOLF_ARMOR; } // Tamed and owned by player - can sit/stand diff --git a/core/src/main/java/org/geysermc/geyser/inventory/AnvilContainer.java b/core/src/main/java/org/geysermc/geyser/inventory/AnvilContainer.java index 45a062468..f5969efbb 100644 --- a/core/src/main/java/org/geysermc/geyser/inventory/AnvilContainer.java +++ b/core/src/main/java/org/geysermc/geyser/inventory/AnvilContainer.java @@ -25,15 +25,15 @@ package org.geysermc.geyser.inventory; -import net.kyori.adventure.text.Component; -import org.geysermc.mcprotocollib.protocol.data.game.inventory.ContainerType; -import org.geysermc.mcprotocollib.protocol.packet.ingame.serverbound.inventory.ServerboundRenameItemPacket; import lombok.Getter; import lombok.Setter; +import net.kyori.adventure.text.Component; import org.checkerframework.checker.nullness.qual.Nullable; import org.geysermc.geyser.session.GeyserSession; import org.geysermc.geyser.translator.text.MessageTranslator; -import org.geysermc.geyser.util.ItemUtils; +import org.geysermc.mcprotocollib.protocol.data.game.inventory.ContainerType; +import org.geysermc.mcprotocollib.protocol.data.game.item.component.DataComponentType; +import org.geysermc.mcprotocollib.protocol.packet.ingame.serverbound.inventory.ServerboundRenameItemPacket; /** * Used to determine if rename packets should be sent and stores @@ -73,7 +73,7 @@ public class AnvilContainer extends Container { String correctRename; newName = rename; - Component originalName = ItemUtils.getCustomName(getInput().getComponents()); + Component originalName = getInput().getComponent(DataComponentType.CUSTOM_NAME); String plainOriginalName = MessageTranslator.convertToPlainText(originalName, session.locale()); String plainNewName = MessageTranslator.convertToPlainText(rename); diff --git a/core/src/main/java/org/geysermc/geyser/inventory/GeyserItemStack.java b/core/src/main/java/org/geysermc/geyser/inventory/GeyserItemStack.java index 256de7799..c595ea1b5 100644 --- a/core/src/main/java/org/geysermc/geyser/inventory/GeyserItemStack.java +++ b/core/src/main/java/org/geysermc/geyser/inventory/GeyserItemStack.java @@ -25,7 +25,11 @@ package org.geysermc.geyser.inventory; -import lombok.*; +import lombok.AccessLevel; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.Getter; +import lombok.Setter; import org.checkerframework.checker.nullness.qual.NonNull; import org.checkerframework.checker.nullness.qual.Nullable; import org.cloudburstmc.protocol.bedrock.data.inventory.ItemData; @@ -104,10 +108,27 @@ public class GeyserItemStack { return isEmpty() ? 0 : amount; } + /** + * Returns all components of this item - base and additional components sent over the network. + * These are NOT modifiable! To add components, use {@link #getOrCreateComponents()}. + * + * @return the item's base data components and the "additional" ones that may exist. + */ + public @Nullable DataComponents getAllComponents() { + return isEmpty() ? null : asItem().gatherComponents(components); + } + + /** + * @return the {@link DataComponents} that aren't the base/default components. + */ public @Nullable DataComponents getComponents() { return isEmpty() ? null : components; } + public boolean hasNonBaseComponents() { + return components != null; + } + @NonNull public DataComponents getOrCreateComponents() { if (components == null) { @@ -119,33 +140,20 @@ public class GeyserItemStack { @Nullable public T getComponent(@NonNull DataComponentType type) { if (components == null) { - return null; + return asItem().getComponent(type); } - return components.get(type); + + T value = components.get(type); + if (value == null) { + return asItem().getComponent(type); + } + + return value; } - public boolean getComponent(@NonNull DataComponentType type, boolean def) { - if (components == null) { - return def; - } - - Boolean result = components.get(type); - if (result != null) { - return result; - } - return def; - } - - public int getComponent(@NonNull DataComponentType type, int def) { - if (components == null) { - return def; - } - - Integer result = components.get(type); - if (result != null) { - return result; - } - return def; + public T getComponentOrFallback(@NonNull DataComponentType type, T def) { + T value = getComponent(type); + return value == null ? def : value; } public int getNetId() { diff --git a/core/src/main/java/org/geysermc/geyser/inventory/updater/AnvilInventoryUpdater.java b/core/src/main/java/org/geysermc/geyser/inventory/updater/AnvilInventoryUpdater.java index 00270e47a..459d8adf8 100644 --- a/core/src/main/java/org/geysermc/geyser/inventory/updater/AnvilInventoryUpdater.java +++ b/core/src/main/java/org/geysermc/geyser/inventory/updater/AnvilInventoryUpdater.java @@ -40,12 +40,15 @@ import org.geysermc.geyser.inventory.Inventory; import org.geysermc.geyser.inventory.item.BedrockEnchantment; import org.geysermc.geyser.item.Items; import org.geysermc.geyser.item.enchantment.Enchantment; +import org.geysermc.geyser.item.type.Item; import org.geysermc.geyser.session.GeyserSession; +import org.geysermc.geyser.session.cache.registry.JavaRegistries; +import org.geysermc.geyser.session.cache.tags.GeyserHolderSet; import org.geysermc.geyser.translator.inventory.InventoryTranslator; import org.geysermc.geyser.translator.text.MessageTranslator; -import org.geysermc.geyser.util.ItemUtils; import org.geysermc.mcprotocollib.protocol.data.game.entity.player.GameMode; import org.geysermc.mcprotocollib.protocol.data.game.item.component.DataComponentType; +import org.geysermc.mcprotocollib.protocol.data.game.item.component.HolderSet; import org.geysermc.mcprotocollib.protocol.data.game.item.component.ItemEnchantments; import org.geysermc.mcprotocollib.protocol.packet.ingame.serverbound.inventory.ServerboundRenameItemPacket; @@ -63,7 +66,7 @@ public class AnvilInventoryUpdater extends InventoryUpdater { super.updateInventory(translator, session, inventory); AnvilContainer anvilContainer = (AnvilContainer) inventory; updateInventoryState(session, anvilContainer); - int targetSlot = getTargetSlot(anvilContainer); + int targetSlot = getTargetSlot(anvilContainer, session); for (int i = 0; i < translator.size; i++) { final int bedrockSlot = translator.javaSlotToBedrock(i); if (bedrockSlot == 50) @@ -88,7 +91,7 @@ public class AnvilInventoryUpdater extends InventoryUpdater { updateInventoryState(session, anvilContainer); int lastTargetSlot = anvilContainer.getLastTargetSlot(); - int targetSlot = getTargetSlot(anvilContainer); + int targetSlot = getTargetSlot(anvilContainer, session); if (targetSlot != javaSlot) { // Update the requested slot InventorySlotPacket slotPacket = new InventorySlotPacket(); @@ -117,7 +120,7 @@ public class AnvilInventoryUpdater extends InventoryUpdater { // Changing the item in the input slot resets the name field on Bedrock, but // does not result in a FilterTextPacket - String originalName = MessageTranslator.convertToPlainText(ItemUtils.getCustomName(input.getComponents()), session.locale()); + String originalName = MessageTranslator.convertToPlainText(input.getComponent(DataComponentType.CUSTOM_NAME), session.locale()); ServerboundRenameItemPacket renameItemPacket = new ServerboundRenameItemPacket(originalName); session.sendDownstreamGamePacket(renameItemPacket); @@ -135,12 +138,12 @@ public class AnvilInventoryUpdater extends InventoryUpdater { * @param anvilContainer the anvil inventory * @return the slot to change the repair cost */ - private int getTargetSlot(AnvilContainer anvilContainer) { + private int getTargetSlot(AnvilContainer anvilContainer, GeyserSession session) { GeyserItemStack input = anvilContainer.getInput(); GeyserItemStack material = anvilContainer.getMaterial(); if (!material.isEmpty()) { - if (!input.isEmpty() && isRepairing(input, material)) { + if (!input.isEmpty() && isRepairing(input, material, session)) { // Changing the repair cost on the material item makes it non-stackable return 0; } @@ -233,7 +236,7 @@ public class AnvilInventoryUpdater extends InventoryUpdater { // Can't repair or merge enchantments return -1; } - } else if (hasDurability(input) && isRepairing(input, material)) { + } else if (hasDurability(input) && isRepairing(input, material, session)) { cost = calcRepairLevelCost(input, material); if (cost == -1) { // No damage to repair @@ -394,8 +397,14 @@ public class AnvilInventoryUpdater extends InventoryUpdater { return isEnchantedBook(material) || (input.getJavaId() == material.getJavaId() && hasDurability(input)); } - private boolean isRepairing(GeyserItemStack input, GeyserItemStack material) { - return input.asItem().isValidRepairItem(material.asItem()); + private boolean isRepairing(GeyserItemStack input, GeyserItemStack material, GeyserSession session) { + HolderSet repairable = input.getComponent(DataComponentType.REPAIRABLE); + if (repairable == null) { + return false; + } + + GeyserHolderSet set = GeyserHolderSet.convertHolderSet(JavaRegistries.ITEM, repairable); + return session.getTagCache().is(set, material.asItem()); } private boolean isRenaming(GeyserSession session, AnvilContainer anvilContainer, boolean bedrock) { @@ -404,27 +413,27 @@ public class AnvilInventoryUpdater extends InventoryUpdater { } // This should really check the name field in all cases, but that requires the localized name // of the item which can change depending on NBT and Minecraft Edition - Component originalName = ItemUtils.getCustomName(anvilContainer.getInput().getComponents()); + Component originalName = anvilContainer.getInput().getComponent(DataComponentType.CUSTOM_NAME); if (bedrock && originalName != null && anvilContainer.getNewName() != null) { // Check text and formatting String legacyOriginalName = MessageTranslator.convertMessage(originalName, session.locale()); return !legacyOriginalName.equals(anvilContainer.getNewName()); } - return !Objects.equals(originalName, ItemUtils.getCustomName(anvilContainer.getResult().getComponents())); + return !Objects.equals(originalName, anvilContainer.getResult().getComponent(DataComponentType.CUSTOM_NAME)); } private int getRepairCost(GeyserItemStack itemStack) { - return itemStack.getComponent(DataComponentType.REPAIR_COST, 0); + return itemStack.getComponentOrFallback(DataComponentType.REPAIR_COST, 0); } private boolean hasDurability(GeyserItemStack itemStack) { if (itemStack.asItem().defaultMaxDamage() > 0) { - return itemStack.getComponent(DataComponentType.UNBREAKABLE, false); + return itemStack.getComponentOrFallback(DataComponentType.UNBREAKABLE, false); } return false; } private int getDamage(GeyserItemStack itemStack) { - return itemStack.getComponent(DataComponentType.DAMAGE, 0); + return itemStack.getComponentOrFallback(DataComponentType.DAMAGE, 0); } } diff --git a/core/src/main/java/org/geysermc/geyser/item/Items.java b/core/src/main/java/org/geysermc/geyser/item/Items.java index d2ae08ec4..4a2d5827a 100644 --- a/core/src/main/java/org/geysermc/geyser/item/Items.java +++ b/core/src/main/java/org/geysermc/geyser/item/Items.java @@ -25,7 +25,6 @@ package org.geysermc.geyser.item; -import org.geysermc.geyser.item.components.ToolTier; import org.geysermc.geyser.item.type.ArmorItem; import org.geysermc.geyser.item.type.ArrowItem; import org.geysermc.geyser.item.type.AxolotlBucketItem; @@ -45,16 +44,13 @@ import org.geysermc.geyser.item.type.FireworkStarItem; import org.geysermc.geyser.item.type.FishingRodItem; import org.geysermc.geyser.item.type.GoatHornItem; import org.geysermc.geyser.item.type.Item; -import org.geysermc.geyser.item.type.LightItem; import org.geysermc.geyser.item.type.MaceItem; import org.geysermc.geyser.item.type.MapItem; -import org.geysermc.geyser.item.type.OminousBottleItem; import org.geysermc.geyser.item.type.PlayerHeadItem; import org.geysermc.geyser.item.type.PotionItem; import org.geysermc.geyser.item.type.ShieldItem; import org.geysermc.geyser.item.type.ShulkerBoxItem; import org.geysermc.geyser.item.type.SpawnEggItem; -import org.geysermc.geyser.item.type.TieredItem; import org.geysermc.geyser.item.type.TippedArrowItem; import org.geysermc.geyser.item.type.TropicalFishBucketItem; import org.geysermc.geyser.item.type.WolfArmorItem; diff --git a/core/src/main/java/org/geysermc/geyser/item/type/Item.java b/core/src/main/java/org/geysermc/geyser/item/type/Item.java index 7f0d9099e..c851ee332 100644 --- a/core/src/main/java/org/geysermc/geyser/item/type/Item.java +++ b/core/src/main/java/org/geysermc/geyser/item/type/Item.java @@ -25,6 +25,7 @@ package org.geysermc.geyser.item.type; +import com.google.common.collect.ImmutableMap; import net.kyori.adventure.key.Key; import net.kyori.adventure.text.Component; import org.checkerframework.checker.nullness.qual.NonNull; @@ -45,7 +46,6 @@ import org.geysermc.geyser.session.GeyserSession; import org.geysermc.geyser.text.ChatColor; import org.geysermc.geyser.text.MinecraftLocale; import org.geysermc.geyser.translator.item.BedrockItemBuilder; -import org.geysermc.geyser.translator.item.ItemTranslator; import org.geysermc.geyser.translator.text.MessageTranslator; import org.geysermc.geyser.util.MinecraftKey; import org.geysermc.mcprotocollib.protocol.data.game.item.component.DataComponentType; @@ -98,16 +98,23 @@ public class Item { return Rarity.fromId(baseComponents.getOrDefault(DataComponentType.RARITY, 0)); } + /** + * Returns a modifiable DataComponents map. Should only be used when it must be modified. + * Otherwise, prefer using GeyserItemStack's getComponent + */ + @NonNull public DataComponents gatherComponents(DataComponents others) { - if (others == null) return baseComponents.clone(); - DataComponents components = baseComponents.clone(); + if (others == null) { + return new DataComponents(ImmutableMap.copyOf(components.getDataComponents())); + } components.getDataComponents().putAll(others.getDataComponents()); - return components; + return new DataComponents(ImmutableMap.copyOf(components.getDataComponents())); } - public boolean isValidRepairItem(Item other) { - return false; + @Nullable + public T getComponent(@NonNull DataComponentType type) { + return baseComponents.get(type); } public String translationKey() { @@ -121,14 +128,11 @@ public class Item { // Return, essentially, air return ItemData.builder(); } - ItemData.Builder builder = ItemData.builder() + + return ItemData.builder() .definition(mapping.getBedrockDefinition()) .damage(mapping.getBedrockData()) .count(count); - - ItemTranslator.translateCustomItem(components, builder, mapping); - - return builder; } public @NonNull GeyserItemStack translateToJava(GeyserSession session, @NonNull ItemData itemData, @NonNull ItemMapping mapping, @NonNull ItemMappings mappings) { @@ -292,7 +296,7 @@ public class Item { } public static Builder builder() { - return new Builder().components(new DataComponents(new HashMap<>())); // TODO actually set components here + return new Builder().components(new DataComponents(ImmutableMap.of())); // TODO actually set components here } public static final class Builder { diff --git a/core/src/main/java/org/geysermc/geyser/level/GeyserWorldManager.java b/core/src/main/java/org/geysermc/geyser/level/GeyserWorldManager.java index befcfa4b7..ca2ebcb08 100644 --- a/core/src/main/java/org/geysermc/geyser/level/GeyserWorldManager.java +++ b/core/src/main/java/org/geysermc/geyser/level/GeyserWorldManager.java @@ -25,20 +25,15 @@ package org.geysermc.geyser.level; -import it.unimi.dsi.fastutil.ints.Int2ObjectMap; import it.unimi.dsi.fastutil.objects.Object2ObjectMap; import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap; -import org.checkerframework.checker.nullness.qual.NonNull; -import org.checkerframework.checker.nullness.qual.Nullable; import org.cloudburstmc.math.vector.Vector3i; import org.geysermc.erosion.packet.backendbound.BackendboundBatchBlockRequestPacket; import org.geysermc.erosion.packet.backendbound.BackendboundBlockRequestPacket; -import org.geysermc.erosion.packet.backendbound.BackendboundPickBlockPacket; import org.geysermc.erosion.util.BlockPositionIterator; import org.geysermc.geyser.erosion.ErosionCancellationException; import org.geysermc.geyser.session.GeyserSession; import org.geysermc.mcprotocollib.protocol.data.game.entity.player.GameMode; -import org.geysermc.mcprotocollib.protocol.data.game.item.component.DataComponents; import java.util.concurrent.CompletableFuture; @@ -124,19 +119,4 @@ public class GeyserWorldManager extends WorldManager { public GameMode getDefaultGameMode(GeyserSession session) { return GameMode.SURVIVAL; } - - @NonNull - @Override - public CompletableFuture<@Nullable DataComponents> getPickItemComponents(GeyserSession session, int x, int y, int z, boolean addNbtData) { - var erosionHandler = session.getErosionHandler().getAsActive(); - if (erosionHandler == null) { - return super.getPickItemComponents(session, x, y, z, addNbtData); - } else if (session.isClosed()) { - return CompletableFuture.failedFuture(new ErosionCancellationException()); - } - CompletableFuture> future = new CompletableFuture<>(); - erosionHandler.setPickBlockLookup(future); - erosionHandler.sendPacket(new BackendboundPickBlockPacket(Vector3i.from(x, y, z))); - return future.thenApply(RAW_TRANSFORMER); - } } diff --git a/core/src/main/java/org/geysermc/geyser/level/WorldManager.java b/core/src/main/java/org/geysermc/geyser/level/WorldManager.java index 6baf9c2b4..a85462108 100644 --- a/core/src/main/java/org/geysermc/geyser/level/WorldManager.java +++ b/core/src/main/java/org/geysermc/geyser/level/WorldManager.java @@ -192,16 +192,6 @@ public abstract class WorldManager { return null; } - /** - * Used for pick block, so we don't need to cache more data than necessary. - * - * @return expected NBT for this item. - */ - @NonNull - public CompletableFuture<@Nullable DataComponents> getPickItemComponents(GeyserSession session, int x, int y, int z, boolean addExtraData) { - return CompletableFuture.completedFuture(null); - } - /** * Retrieves decorated pot sherds from the server. Used to ensure the data is not erased on animation sent * through the BlockEntityDataPacket. diff --git a/core/src/main/java/org/geysermc/geyser/session/cache/TagCache.java b/core/src/main/java/org/geysermc/geyser/session/cache/TagCache.java index 2b0f257a3..26b6aad96 100644 --- a/core/src/main/java/org/geysermc/geyser/session/cache/TagCache.java +++ b/core/src/main/java/org/geysermc/geyser/session/cache/TagCache.java @@ -28,6 +28,7 @@ package org.geysermc.geyser.session.cache; import it.unimi.dsi.fastutil.ints.IntArrays; import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap; import net.kyori.adventure.key.Key; +import org.checkerframework.checker.nullness.qual.Nullable; import org.geysermc.geyser.GeyserLogger; import org.geysermc.geyser.inventory.GeyserItemStack; import org.geysermc.geyser.item.type.Item; @@ -119,7 +120,10 @@ public final class TagCache { /** * @return true if the specified network ID is in the given holder set. */ - public boolean is(GeyserHolderSet holderSet, T object) { + public boolean is(@Nullable GeyserHolderSet holderSet, @Nullable T object) { + if (holderSet == null || object == null) { + return false; + } return contains(holderSet.resolveRaw(this), holderSet.getRegistry().toNetworkId(session, object)); } diff --git a/core/src/main/java/org/geysermc/geyser/session/cache/tags/GeyserHolderSet.java b/core/src/main/java/org/geysermc/geyser/session/cache/tags/GeyserHolderSet.java index 3c6e02e53..0e0d117a4 100644 --- a/core/src/main/java/org/geysermc/geyser/session/cache/tags/GeyserHolderSet.java +++ b/core/src/main/java/org/geysermc/geyser/session/cache/tags/GeyserHolderSet.java @@ -25,10 +25,6 @@ package org.geysermc.geyser.session.cache.tags; -import java.util.List; -import java.util.Objects; -import java.util.function.ToIntFunction; - import it.unimi.dsi.fastutil.ints.IntArrays; import lombok.Data; import net.kyori.adventure.key.Key; @@ -37,6 +33,11 @@ import org.checkerframework.checker.nullness.qual.Nullable; import org.geysermc.geyser.session.GeyserSession; import org.geysermc.geyser.session.cache.TagCache; import org.geysermc.geyser.session.cache.registry.JavaRegistryKey; +import org.geysermc.mcprotocollib.protocol.data.game.item.component.HolderSet; + +import java.util.List; +import java.util.Objects; +import java.util.function.ToIntFunction; /** * Similar to vanilla Minecraft's HolderSets, stores either a tag or a list of IDs (this list can also be represented as a single ID in vanilla HolderSets). @@ -87,6 +88,27 @@ public final class GeyserHolderSet { return tagCache.getRaw(Objects.requireNonNull(tag, "HolderSet must have a tag if it doesn't have a list of IDs")); } + /** + * Reads a MCPL {@link HolderSet} and turns it into a GeyserHolderSet. + * @param registry the registry the HolderSet contains IDs from. + * @param holderSet the HolderSet as the MCPL HolderSet object + */ + public static GeyserHolderSet convertHolderSet(@NonNull JavaRegistryKey registry, @Nullable HolderSet holderSet) { + if (holderSet == null) { + return new GeyserHolderSet<>(registry, IntArrays.EMPTY_ARRAY); + } + + if (holderSet.getHolders() != null) { + return new GeyserHolderSet<>(registry, holderSet.getHolders()); + } + + if (holderSet.getLocation() != null) { + return new GeyserHolderSet<>(registry, new Tag<>(registry, holderSet.getLocation())); + } + + throw new IllegalStateException("HolderSet must have a tag or a list of IDs! " + holderSet); + } + /** * Reads a HolderSet from an object from NBT. * diff --git a/core/src/main/java/org/geysermc/geyser/skin/FakeHeadProvider.java b/core/src/main/java/org/geysermc/geyser/skin/FakeHeadProvider.java index 22786a4ee..2434d6d91 100644 --- a/core/src/main/java/org/geysermc/geyser/skin/FakeHeadProvider.java +++ b/core/src/main/java/org/geysermc/geyser/skin/FakeHeadProvider.java @@ -25,10 +25,6 @@ package org.geysermc.geyser.skin; -import org.geysermc.mcprotocollib.auth.GameProfile; -import org.geysermc.mcprotocollib.auth.GameProfile.Texture; -import org.geysermc.mcprotocollib.auth.GameProfile.TextureModel; -import org.geysermc.mcprotocollib.auth.GameProfile.TextureType; import com.google.common.cache.CacheBuilder; import com.google.common.cache.CacheLoader; import com.google.common.cache.LoadingCache; @@ -36,6 +32,7 @@ import lombok.AllArgsConstructor; import lombok.Getter; import lombok.Setter; import org.checkerframework.checker.nullness.qual.NonNull; +import org.checkerframework.checker.nullness.qual.Nullable; import org.geysermc.geyser.GeyserImpl; import org.geysermc.geyser.api.skin.Cape; import org.geysermc.geyser.api.skin.Skin; @@ -46,8 +43,10 @@ import org.geysermc.geyser.entity.type.player.PlayerEntity; import org.geysermc.geyser.session.GeyserSession; import org.geysermc.geyser.skin.SkinManager.GameProfileData; import org.geysermc.geyser.text.GeyserLocale; -import org.geysermc.mcprotocollib.protocol.data.game.item.component.DataComponentType; -import org.geysermc.mcprotocollib.protocol.data.game.item.component.DataComponents; +import org.geysermc.mcprotocollib.auth.GameProfile; +import org.geysermc.mcprotocollib.auth.GameProfile.Texture; +import org.geysermc.mcprotocollib.auth.GameProfile.TextureModel; +import org.geysermc.mcprotocollib.auth.GameProfile.TextureType; import java.awt.*; import java.awt.image.BufferedImage; @@ -105,9 +104,7 @@ public class FakeHeadProvider { } }); - public static void setHead(GeyserSession session, PlayerEntity entity, DataComponents components) { - GameProfile profile = components.get(DataComponentType.PROFILE); - + public static void setHead(GeyserSession session, PlayerEntity entity, @Nullable GameProfile profile) { if (profile == null) { return; } diff --git a/core/src/main/java/org/geysermc/geyser/translator/inventory/InventoryTranslator.java b/core/src/main/java/org/geysermc/geyser/translator/inventory/InventoryTranslator.java index 15c19c542..ffaae13d2 100644 --- a/core/src/main/java/org/geysermc/geyser/translator/inventory/InventoryTranslator.java +++ b/core/src/main/java/org/geysermc/geyser/translator/inventory/InventoryTranslator.java @@ -76,7 +76,6 @@ import org.geysermc.geyser.util.InventoryUtils; import org.geysermc.geyser.util.ItemUtils; import org.geysermc.mcprotocollib.protocol.data.game.inventory.ContainerType; import org.geysermc.mcprotocollib.protocol.data.game.item.component.DataComponentType; -import org.geysermc.mcprotocollib.protocol.data.game.item.component.DataComponents; import org.geysermc.mcprotocollib.protocol.data.game.recipe.display.slot.EmptySlotDisplay; import org.geysermc.mcprotocollib.protocol.data.game.recipe.display.slot.SlotDisplay; @@ -252,8 +251,8 @@ public abstract class InventoryTranslator { //only set the head if the destination is the head slot GeyserItemStack javaItem = inventory.getItem(sourceSlot); if (javaItem.asItem() == Items.PLAYER_HEAD - && javaItem.getComponents() != null) { - FakeHeadProvider.setHead(session, session.getPlayerEntity(), javaItem.getComponents()); + && javaItem.hasNonBaseComponents()) { + FakeHeadProvider.setHead(session, session.getPlayerEntity(), javaItem.getComponent(DataComponentType.PROFILE)); } } else if (sourceSlot == 5) { //we are probably removing the head, so restore the original skin @@ -1020,12 +1019,9 @@ public abstract class InventoryTranslator { // As of 1.16.210: Bedrock needs confirmation on what the current item durability is. // If 0 is sent, then Bedrock thinks the item is not damaged int durability = 0; - DataComponents components = itemStack.getComponents(); - if (components != null) { - Integer damage = components.get(DataComponentType.DAMAGE); - if (damage != null) { - durability = ItemUtils.getCorrectBedrockDurability(itemStack.asItem(), damage); - } + Integer damage = itemStack.getComponent(DataComponentType.DAMAGE); + if (damage != null) { + durability = ItemUtils.getCorrectBedrockDurability(itemStack.asItem(), damage); } itemEntry = new ItemStackResponseSlot((byte) bedrockSlot, (byte) bedrockSlot, (byte) itemStack.getAmount(), itemStack.getNetId(), "", durability); diff --git a/core/src/main/java/org/geysermc/geyser/translator/inventory/LecternInventoryTranslator.java b/core/src/main/java/org/geysermc/geyser/translator/inventory/LecternInventoryTranslator.java index 3b33f5909..e72de744f 100644 --- a/core/src/main/java/org/geysermc/geyser/translator/inventory/LecternInventoryTranslator.java +++ b/core/src/main/java/org/geysermc/geyser/translator/inventory/LecternInventoryTranslator.java @@ -30,7 +30,6 @@ import org.cloudburstmc.nbt.NbtMap; import org.cloudburstmc.nbt.NbtMapBuilder; import org.cloudburstmc.protocol.bedrock.data.inventory.ItemData; import org.geysermc.erosion.util.LecternUtils; -import org.geysermc.geyser.GeyserImpl; import org.geysermc.geyser.inventory.Container; import org.geysermc.geyser.inventory.GeyserItemStack; import org.geysermc.geyser.inventory.Inventory; @@ -158,13 +157,13 @@ public class LecternInventoryTranslator extends AbstractBlockInventoryTranslator session.getLastInteractionBlockPosition() : inventory.getHolderPosition(); NbtMap blockEntityTag; - if (book.getComponents() != null) { + if (book.hasNonBaseComponents()) { int pages = 0; - WrittenBookContent writtenBookComponents = book.getComponents().get(DataComponentType.WRITTEN_BOOK_CONTENT); + WrittenBookContent writtenBookComponents = book.getComponent(DataComponentType.WRITTEN_BOOK_CONTENT); if (writtenBookComponents != null) { pages = writtenBookComponents.getPages().size(); } else { - WritableBookContent writableBookComponents = book.getComponents().get(DataComponentType.WRITABLE_BOOK_CONTENT); + WritableBookContent writableBookComponents = book.getComponent(DataComponentType.WRITABLE_BOOK_CONTENT); if (writableBookComponents != null) { pages = writableBookComponents.getPages().size(); } diff --git a/core/src/main/java/org/geysermc/geyser/translator/inventory/LoomInventoryTranslator.java b/core/src/main/java/org/geysermc/geyser/translator/inventory/LoomInventoryTranslator.java index 0694e2ac6..7cdcbe8a9 100644 --- a/core/src/main/java/org/geysermc/geyser/translator/inventory/LoomInventoryTranslator.java +++ b/core/src/main/java/org/geysermc/geyser/translator/inventory/LoomInventoryTranslator.java @@ -49,11 +49,9 @@ import org.geysermc.geyser.level.block.Blocks; import org.geysermc.geyser.session.GeyserSession; import org.geysermc.mcprotocollib.protocol.data.game.item.component.BannerPatternLayer; import org.geysermc.mcprotocollib.protocol.data.game.item.component.DataComponentType; -import org.geysermc.mcprotocollib.protocol.data.game.item.component.DataComponents; import org.geysermc.mcprotocollib.protocol.packet.ingame.serverbound.inventory.ServerboundContainerButtonClickPacket; import java.util.ArrayList; -import java.util.HashMap; import java.util.List; public class LoomInventoryTranslator extends AbstractBlockInventoryTranslator { @@ -156,16 +154,11 @@ public class LoomInventoryTranslator extends AbstractBlockInventoryTranslator { GeyserItemStack inputCopy = inventory.getItem(0).copy(1); inputCopy.setNetId(session.getNextItemNetId()); - // Add the pattern manually, for better item synchronization - if (inputCopy.getComponents() == null) { - inputCopy.setComponents(new DataComponents(new HashMap<>())); - } - BannerPatternLayer bannerPatternLayer = BannerItem.getJavaBannerPattern(session, pattern); // TODO if (bannerPatternLayer != null) { - List patternsList = inputCopy.getComponents().getOrDefault(DataComponentType.BANNER_PATTERNS, new ArrayList<>()); + List patternsList = inputCopy.getComponentOrFallback(DataComponentType.BANNER_PATTERNS, new ArrayList<>()); patternsList.add(bannerPatternLayer); - inputCopy.getComponents().put(DataComponentType.BANNER_PATTERNS, patternsList); + inputCopy.getOrCreateComponents().put(DataComponentType.BANNER_PATTERNS, patternsList); } // Set the new item as the output diff --git a/core/src/main/java/org/geysermc/geyser/translator/inventory/PlayerInventoryTranslator.java b/core/src/main/java/org/geysermc/geyser/translator/inventory/PlayerInventoryTranslator.java index 8fd365d7f..f08b90765 100644 --- a/core/src/main/java/org/geysermc/geyser/translator/inventory/PlayerInventoryTranslator.java +++ b/core/src/main/java/org/geysermc/geyser/translator/inventory/PlayerInventoryTranslator.java @@ -58,6 +58,7 @@ import org.geysermc.geyser.util.InventoryUtils; import org.geysermc.mcprotocollib.protocol.data.game.entity.player.GameMode; import org.geysermc.mcprotocollib.protocol.data.game.inventory.ContainerType; import org.geysermc.mcprotocollib.protocol.data.game.item.ItemStack; +import org.geysermc.mcprotocollib.protocol.data.game.item.component.DataComponentType; import org.geysermc.mcprotocollib.protocol.packet.ingame.serverbound.inventory.ServerboundSetCreativeModeSlotPacket; import java.util.Arrays; @@ -103,8 +104,8 @@ public class PlayerInventoryTranslator extends InventoryTranslator { contents[i - 5] = item.getItemData(session); if (i == 5 && item.asItem() == Items.PLAYER_HEAD && - item.getComponents() != null) { - FakeHeadProvider.setHead(session, session.getPlayerEntity(), item.getComponents()); + item.hasNonBaseComponents()) { + FakeHeadProvider.setHead(session, session.getPlayerEntity(), item.getComponent(DataComponentType.PROFILE)); } } armorContentPacket.setContents(Arrays.asList(contents)); @@ -147,8 +148,8 @@ public class PlayerInventoryTranslator extends InventoryTranslator { if (slot == 5) { // Check for custom skull if (javaItem.asItem() == Items.PLAYER_HEAD - && javaItem.getComponents() != null) { - FakeHeadProvider.setHead(session, session.getPlayerEntity(), javaItem.getComponents()); + && javaItem.hasNonBaseComponents()) { + FakeHeadProvider.setHead(session, session.getPlayerEntity(), javaItem.getComponent(DataComponentType.PROFILE)); } else { FakeHeadProvider.restoreOriginalSkin(session, session.getPlayerEntity()); } diff --git a/core/src/main/java/org/geysermc/geyser/translator/item/ItemTranslator.java b/core/src/main/java/org/geysermc/geyser/translator/item/ItemTranslator.java index 062666f84..284296209 100644 --- a/core/src/main/java/org/geysermc/geyser/translator/item/ItemTranslator.java +++ b/core/src/main/java/org/geysermc/geyser/translator/item/ItemTranslator.java @@ -112,7 +112,7 @@ public final class ItemTranslator { NbtMap nbt = data.getTag(); if (nbt != null && !nbt.isEmpty()) { // translateToJava may have added components - DataComponents components = itemStack.getComponents() == null ? new DataComponents(new HashMap<>()) : itemStack.getComponents(); + DataComponents components = itemStack.getOrCreateComponents(); javaItem.translateNbtToJava(session, nbt, components, bedrockItem); if (!components.getDataComponents().isEmpty()) { itemStack.setComponents(components); @@ -193,7 +193,7 @@ public final class ItemTranslator { } if (bedrockItem.getJavaItem().equals(Items.PLAYER_HEAD)) { - translatePlayerHead(session, components, builder); + translatePlayerHead(session, components.get(DataComponentType.PROFILE), builder); } translateCustomItem(components, builder, bedrockItem); @@ -391,7 +391,7 @@ public final class ItemTranslator { return ItemDefinition.AIR; } - ItemMapping mapping = itemStack.asItem().toBedrockDefinition(itemStack.getComponents(), session.getItemMappings()); + ItemMapping mapping = itemStack.asItem().toBedrockDefinition(itemStack.getAllComponents(), session.getItemMappings()); ItemDefinition itemDefinition = mapping.getBedrockDefinition(); CustomBlockData customBlockData = BlockRegistries.CUSTOM_BLOCK_ITEM_OVERRIDES.getOrDefault( @@ -401,7 +401,7 @@ public final class ItemTranslator { } if (mapping.getJavaItem().equals(Items.PLAYER_HEAD)) { - CustomSkull customSkull = getCustomSkull(itemStack.getComponents()); + CustomSkull customSkull = getCustomSkull(itemStack.getComponent(DataComponentType.PROFILE)); if (customSkull != null) { itemDefinition = session.getItemMappings().getCustomBlockItemDefinitions().get(customSkull.getCustomBlockData()); } @@ -466,39 +466,35 @@ public final class ItemTranslator { builder.blockDefinition(blockDefinition); } - private static @Nullable CustomSkull getCustomSkull(DataComponents components) { - if (components == null) { + private static @Nullable CustomSkull getCustomSkull(@Nullable GameProfile profile) { + if (profile == null) { return null; } - - GameProfile profile = components.get(DataComponentType.PROFILE); - if (profile != null) { - Map textures; - try { - textures = profile.getTextures(false); - } catch (IllegalStateException e) { - GeyserImpl.getInstance().getLogger().debug("Could not decode player head from profile %s, got: %s".formatted(profile, e.getMessage())); - return null; - } - if (textures == null || textures.isEmpty()) { - return null; - } - - Texture skinTexture = textures.get(TextureType.SKIN); - - if (skinTexture == null) { - return null; - } - - String skinHash = skinTexture.getURL().substring(skinTexture.getURL().lastIndexOf('/') + 1); - return BlockRegistries.CUSTOM_SKULLS.get(skinHash); + Map textures; + try { + textures = profile.getTextures(false); + } catch (IllegalStateException e) { + GeyserImpl.getInstance().getLogger().debug("Could not decode player head from profile %s, got: %s".formatted(profile, e.getMessage())); + return null; } - return null; + + if (textures == null || textures.isEmpty()) { + return null; + } + + Texture skinTexture = textures.get(TextureType.SKIN); + + if (skinTexture == null) { + return null; + } + + String skinHash = skinTexture.getURL().substring(skinTexture.getURL().lastIndexOf('/') + 1); + return BlockRegistries.CUSTOM_SKULLS.get(skinHash); } - private static void translatePlayerHead(GeyserSession session, DataComponents components, ItemData.Builder builder) { - CustomSkull customSkull = getCustomSkull(components); + private static void translatePlayerHead(GeyserSession session, GameProfile profile, ItemData.Builder builder) { + CustomSkull customSkull = getCustomSkull(profile); if (customSkull != null) { CustomBlockData customBlockData = customSkull.getCustomBlockData(); ItemDefinition itemDefinition = session.getItemMappings().getCustomBlockItemDefinitions().get(customBlockData); diff --git a/core/src/main/java/org/geysermc/geyser/translator/protocol/bedrock/BedrockBookEditTranslator.java b/core/src/main/java/org/geysermc/geyser/translator/protocol/bedrock/BedrockBookEditTranslator.java index 456b6507f..700ba0532 100644 --- a/core/src/main/java/org/geysermc/geyser/translator/protocol/bedrock/BedrockBookEditTranslator.java +++ b/core/src/main/java/org/geysermc/geyser/translator/protocol/bedrock/BedrockBookEditTranslator.java @@ -53,7 +53,7 @@ public class BedrockBookEditTranslator extends PacketTranslator GeyserItemStack itemStack = session.getPlayerInventory().getItemInHand(); if (itemStack != null) { - DataComponents components = itemStack.getComponents() != null ? itemStack.getComponents() : new DataComponents(new HashMap<>()); + DataComponents components = itemStack.getOrCreateComponents(); ItemStack bookItem = new ItemStack(itemStack.getJavaId(), itemStack.getAmount(), components); List pages = new LinkedList<>(); diff --git a/core/src/main/java/org/geysermc/geyser/util/BlockUtils.java b/core/src/main/java/org/geysermc/geyser/util/BlockUtils.java index 6367b2d14..1d84c169e 100644 --- a/core/src/main/java/org/geysermc/geyser/util/BlockUtils.java +++ b/core/src/main/java/org/geysermc/geyser/util/BlockUtils.java @@ -131,6 +131,7 @@ public final class BlockUtils { return 1.0 / speed; } + // TODO 1.21.4 this changed probably; no more tiers public static double getBreakTime(GeyserSession session, Block block, ItemMapping item, @Nullable DataComponents components, boolean isSessionPlayer) { boolean isShearsEffective = session.getTagCache().is(BlockTag.LEAVES, block) || session.getTagCache().is(BlockTag.WOOL, block); //TODO called twice boolean canHarvestWithHand = !block.requiresCorrectToolForDrops(); @@ -160,7 +161,7 @@ public final class BlockUtils { boolean waterInEyes = session.getCollisionManager().isWaterInEyes(); boolean insideOfWaterWithoutAquaAffinity = waterInEyes && - ItemUtils.getEnchantmentLevel(session, session.getPlayerInventory().getItem(5).getComponents(), BedrockEnchantment.AQUA_AFFINITY) < 1; + ItemUtils.getEnchantmentLevel(session, session.getPlayerInventory().getItem(5).getAllComponents(), BedrockEnchantment.AQUA_AFFINITY) < 1; return calculateBreakTime(block.destroyTime(), toolTier, canHarvestWithHand, correctTool, toolCanBreak, toolType, isShearsEffective, toolEfficiencyLevel, hasteLevel, miningFatigueLevel, insideOfWaterWithoutAquaAffinity, session.getPlayerEntity().isOnGround()); @@ -173,7 +174,7 @@ public final class BlockUtils { DataComponents components = null; if (item != null) { mapping = item.getMapping(session); - components = item.getComponents(); + components = item.getAllComponents(); } return getBreakTime(session, block, mapping, components, true); } diff --git a/core/src/main/java/org/geysermc/geyser/util/ItemUtils.java b/core/src/main/java/org/geysermc/geyser/util/ItemUtils.java index eec0d173d..eca9756e6 100644 --- a/core/src/main/java/org/geysermc/geyser/util/ItemUtils.java +++ b/core/src/main/java/org/geysermc/geyser/util/ItemUtils.java @@ -25,7 +25,6 @@ package org.geysermc.geyser.util; -import net.kyori.adventure.text.Component; import org.checkerframework.checker.nullness.qual.Nullable; import org.geysermc.geyser.inventory.item.BedrockEnchantment; import org.geysermc.geyser.item.Items; @@ -102,17 +101,6 @@ public final class ItemUtils { return original; } - /** - * @param components the data components of the item - * @return the custom name of the item - */ - public static @Nullable Component getCustomName(DataComponents components) { - if (components == null) { - return null; - } - return components.get(DataComponentType.CUSTOM_NAME); - } - private ItemUtils() { } } From 77ffb6098ea78c1f1df33199f28a98795225e40f Mon Sep 17 00:00:00 2001 From: onebeastchris Date: Mon, 2 Dec 2024 02:48:54 +0800 Subject: [PATCH 04/31] Better immutability checks --- .../main/java/org/geysermc/geyser/item/type/Item.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/core/src/main/java/org/geysermc/geyser/item/type/Item.java b/core/src/main/java/org/geysermc/geyser/item/type/Item.java index c851ee332..fde742efa 100644 --- a/core/src/main/java/org/geysermc/geyser/item/type/Item.java +++ b/core/src/main/java/org/geysermc/geyser/item/type/Item.java @@ -63,7 +63,7 @@ public class Item { protected final Key javaIdentifier; private int javaId = -1; private final int attackDamage; - private final DataComponents baseComponents; + private final DataComponents baseComponents; // unmodifiable private final List enchantmentGlintPresent = List.of(Items.ENCHANTED_GOLDEN_APPLE, Items.EXPERIENCE_BOTTLE, Items.WRITTEN_BOOK, Items.NETHER_STAR, Items.ENCHANTED_BOOK, Items.END_CRYSTAL); @@ -104,10 +104,11 @@ public class Item { */ @NonNull public DataComponents gatherComponents(DataComponents others) { - DataComponents components = baseComponents.clone(); if (others == null) { - return new DataComponents(ImmutableMap.copyOf(components.getDataComponents())); + return baseComponents; } + + DataComponents components = baseComponents.clone(); components.getDataComponents().putAll(others.getDataComponents()); return new DataComponents(ImmutableMap.copyOf(components.getDataComponents())); } @@ -315,7 +316,7 @@ public class Item { } public DataComponents components() { - return this.components; + return new DataComponents(ImmutableMap.copyOf(components.getDataComponents())); } private Builder() { From 289a74975d607312e5860f028a71b3f6022d81b8 Mon Sep 17 00:00:00 2001 From: onebeastchris Date: Tue, 3 Dec 2024 17:25:48 +0800 Subject: [PATCH 05/31] start implementing new block breaking --- .../entity/attribute/GeyserAttributeType.java | 3 + .../type/player/SessionPlayerEntity.java | 9 + .../geyser/session/GeyserSession.java | 5 + .../player/input/BedrockBlockActions.java | 5 +- .../org/geysermc/geyser/util/BlockUtils.java | 246 +++++++++--------- 5 files changed, 150 insertions(+), 118 deletions(-) diff --git a/core/src/main/java/org/geysermc/geyser/entity/attribute/GeyserAttributeType.java b/core/src/main/java/org/geysermc/geyser/entity/attribute/GeyserAttributeType.java index 1e050c840..833f2f46d 100644 --- a/core/src/main/java/org/geysermc/geyser/entity/attribute/GeyserAttributeType.java +++ b/core/src/main/java/org/geysermc/geyser/entity/attribute/GeyserAttributeType.java @@ -51,6 +51,9 @@ public enum GeyserAttributeType { MAX_HEALTH("minecraft:generic.max_health", null, 0f, 1024f, 20f), SCALE("minecraft:generic.scale", null, 0.0625f, 16f, 1f), BLOCK_INTERACTION_RANGE("minecraft:player.block_interaction_range", null, 0.0f, 64f, 4.5f), + MINING_EFFICIENCY("minecraft:mining_efficiency", null, 0f, 1024f, 0f), + BLOCK_BREAK_SPEED("minecraft:block_break_speed", null, 0f, 1024f, 1f), + SUBMERGED_MINING_SPEED("minecraft:submerged_mining_speed", null, 0f, 20f, 0.2f), // Bedrock Attributes ABSORPTION(null, "minecraft:absorption", 0f, 1024f, 0f), diff --git a/core/src/main/java/org/geysermc/geyser/entity/type/player/SessionPlayerEntity.java b/core/src/main/java/org/geysermc/geyser/entity/type/player/SessionPlayerEntity.java index 9d5bc011c..7543e05bc 100644 --- a/core/src/main/java/org/geysermc/geyser/entity/type/player/SessionPlayerEntity.java +++ b/core/src/main/java/org/geysermc/geyser/entity/type/player/SessionPlayerEntity.java @@ -286,6 +286,15 @@ public class SessionPlayerEntity extends PlayerEntity { return attributeData; } + public float attributeOrDefault(GeyserAttributeType type) { + var attribute = this.attributes.get(type); + if (attribute == null) { + return type.getDefaultValue(); + } + + return attribute.getValue(); + } + public void setLastDeathPosition(@Nullable GlobalPos pos) { if (pos != null) { dirtyMetadata.put(EntityDataTypes.PLAYER_LAST_DEATH_POS, pos.getPosition()); diff --git a/core/src/main/java/org/geysermc/geyser/session/GeyserSession.java b/core/src/main/java/org/geysermc/geyser/session/GeyserSession.java index ef6261ead..9b49b3cfc 100644 --- a/core/src/main/java/org/geysermc/geyser/session/GeyserSession.java +++ b/core/src/main/java/org/geysermc/geyser/session/GeyserSession.java @@ -523,6 +523,11 @@ public class GeyserSession implements GeyserConnection, GeyserCommandSource { @Setter private long blockBreakStartTime; + /** + * // TODO + */ + private long destroyProgress; + /** * Stores whether the player intended to place a bucket. */ diff --git a/core/src/main/java/org/geysermc/geyser/translator/protocol/bedrock/entity/player/input/BedrockBlockActions.java b/core/src/main/java/org/geysermc/geyser/translator/protocol/bedrock/entity/player/input/BedrockBlockActions.java index 061a04b77..ea386ebcf 100644 --- a/core/src/main/java/org/geysermc/geyser/translator/protocol/bedrock/entity/player/input/BedrockBlockActions.java +++ b/core/src/main/java/org/geysermc/geyser/translator/protocol/bedrock/entity/player/input/BedrockBlockActions.java @@ -32,6 +32,7 @@ import org.cloudburstmc.protocol.bedrock.data.PlayerActionType; import org.cloudburstmc.protocol.bedrock.data.PlayerBlockActionData; import org.cloudburstmc.protocol.bedrock.data.definitions.ItemDefinition; import org.cloudburstmc.protocol.bedrock.packet.LevelEventPacket; +import org.geysermc.geyser.GeyserImpl; import org.geysermc.geyser.api.block.custom.CustomBlockState; import org.geysermc.geyser.entity.type.Entity; import org.geysermc.geyser.entity.type.ItemFrameEntity; @@ -88,7 +89,7 @@ final class BedrockBlockActions { LevelEventPacket startBreak = new LevelEventPacket(); startBreak.setType(LevelEvent.BLOCK_START_BREAK); startBreak.setPosition(vector.toFloat()); - double breakTime = BlockUtils.getSessionBreakTime(session, BlockState.of(blockState).block()) * 20; + double breakTime = BlockUtils.getSessionBreakTime(session, BlockState.of(blockState).block()) * 20; // TODO afdaöwelfunöwoaenf // If the block is custom or the breaking item is custom, we must keep track of break time ourselves GeyserItemStack item = session.getPlayerInventory().getItemInHand(); @@ -169,6 +170,7 @@ final class BedrockBlockActions { if (session.getGameMode() != GameMode.CREATIVE) { // As of 1.16.210: item frame items are taken out here. // Survival also sends START_BREAK, but by attaching our process here adventure mode also works + GeyserImpl.getInstance().getLogger().warning("abort break, not creative - item frame???"); Entity itemFrameEntity = ItemFrameEntity.getItemFrameEntity(session, vector); if (itemFrameEntity != null) { ServerboundInteractPacket interactPacket = new ServerboundInteractPacket(itemFrameEntity.getEntityId(), @@ -180,6 +182,7 @@ final class BedrockBlockActions { ServerboundPlayerActionPacket abortBreakingPacket = new ServerboundPlayerActionPacket(PlayerAction.CANCEL_DIGGING, vector, Direction.DOWN, 0); session.sendDownstreamGamePacket(abortBreakingPacket); + LevelEventPacket stopBreak = new LevelEventPacket(); stopBreak.setType(LevelEvent.BLOCK_STOP_BREAK); stopBreak.setPosition(vector.toFloat()); diff --git a/core/src/main/java/org/geysermc/geyser/util/BlockUtils.java b/core/src/main/java/org/geysermc/geyser/util/BlockUtils.java index 1d84c169e..52a4a6df9 100644 --- a/core/src/main/java/org/geysermc/geyser/util/BlockUtils.java +++ b/core/src/main/java/org/geysermc/geyser/util/BlockUtils.java @@ -27,156 +27,168 @@ package org.geysermc.geyser.util; import org.checkerframework.checker.nullness.qual.Nullable; import org.cloudburstmc.math.vector.Vector3i; +import org.geysermc.geyser.entity.attribute.GeyserAttributeType; +import org.geysermc.geyser.entity.type.player.SessionPlayerEntity; import org.geysermc.geyser.inventory.GeyserItemStack; import org.geysermc.geyser.inventory.PlayerInventory; import org.geysermc.geyser.inventory.item.BedrockEnchantment; import org.geysermc.geyser.level.block.Blocks; import org.geysermc.geyser.level.block.type.Block; +import org.geysermc.geyser.level.block.type.BlockState; import org.geysermc.geyser.registry.BlockRegistries; import org.geysermc.geyser.registry.type.ItemMapping; import org.geysermc.geyser.session.GeyserSession; +import org.geysermc.geyser.session.cache.EntityEffectCache; +import org.geysermc.geyser.session.cache.registry.JavaRegistries; import org.geysermc.geyser.session.cache.tags.BlockTag; +import org.geysermc.geyser.session.cache.tags.GeyserHolderSet; import org.geysermc.geyser.translator.collision.BlockCollision; +import org.geysermc.mcprotocollib.protocol.data.game.entity.attribute.AttributeType; +import org.geysermc.mcprotocollib.protocol.data.game.item.component.DataComponentType; import org.geysermc.mcprotocollib.protocol.data.game.item.component.DataComponents; +import org.geysermc.mcprotocollib.protocol.data.game.item.component.ToolData; public final class BlockUtils { - private static boolean correctTool(GeyserSession session, Block block, String itemToolType) { - return switch (itemToolType) { - case "axe" -> session.getTagCache().is(BlockTag.MINEABLE_AXE, block); - case "hoe" -> session.getTagCache().is(BlockTag.MINEABLE_HOE, block); - case "pickaxe" -> session.getTagCache().is(BlockTag.MINEABLE_PICKAXE, block); - case "shears" -> session.getTagCache().is(BlockTag.LEAVES, block) || session.getTagCache().is(BlockTag.WOOL, block); - case "shovel" -> session.getTagCache().is(BlockTag.MINEABLE_SHOVEL, block); - case "sword" -> block == Blocks.COBWEB; - default -> { - session.getGeyser().getLogger().warning("Unknown tool type: " + itemToolType); - yield false; + public static float getBlockDestroyProgress(GeyserSession session, BlockState blockState, GeyserItemStack itemInHand) { + float destroySpeed = blockState.block().destroyTime(); + if (destroySpeed == -1) { + return 0; + } + + int speedMultiplier = hasCorrectTool(session, blockState.block(), itemInHand) ? 30 : 100; + return getPlayerDestroySpeed(session, blockState, itemInHand) / destroySpeed / speedMultiplier; + } + + private static boolean hasCorrectTool(GeyserSession session, Block block, GeyserItemStack stack) { + return !block.requiresCorrectToolForDrops() || isCorrectItemForDrops(session, block, stack); + } + + private static boolean isCorrectItemForDrops(GeyserSession session, Block block, GeyserItemStack stack) { + ToolData tool = stack.getComponent(DataComponentType.TOOL); + if (tool == null) { + return false; + } + + for (ToolData.Rule rule : tool.getRules()) { + if (rule.getCorrectForDrops() != null) { + GeyserHolderSet set = GeyserHolderSet.convertHolderSet(JavaRegistries.BLOCK, rule.getBlocks()); + if (session.getTagCache().is(set, block)) { + return rule.getCorrectForDrops(); + } } - }; + } + + return false; } - private static double toolBreakTimeBonus(String toolType, String toolTier, boolean isShearsEffective) { - if (toolType.equals("shears")) return isShearsEffective ? 5.0 : 15.0; - if (toolType.isEmpty()) return 1.0; - return switch (toolTier) { - // https://minecraft.wiki/w/Breaking#Speed - case "wooden" -> 2.0; - case "stone" -> 4.0; - case "iron" -> 6.0; - case "diamond" -> 8.0; - case "netherite" -> 9.0; - case "golden" -> 12.0; - default -> 1.0; - }; + private static float getItemDestroySpeed(GeyserSession session, Block block, GeyserItemStack stack) { + ToolData tool = stack.getComponent(DataComponentType.TOOL); + if (tool == null) { + return 1f; + } + + for (ToolData.Rule rule : tool.getRules()) { + if (rule.getSpeed() != null) { + GeyserHolderSet set = GeyserHolderSet.convertHolderSet(JavaRegistries.BLOCK, rule.getBlocks()); + if (session.getTagCache().is(set, block)) { + return rule.getSpeed(); + } + } + } + + return tool.getDefaultMiningSpeed(); } - private static boolean canToolTierBreakBlock(GeyserSession session, Block block, String toolTier) { - if (toolTier.equals("netherite") || toolTier.equals("diamond")) { - // As of 1.17, these tiers can mine everything that is mineable - return true; + private static float getPlayerDestroySpeed(GeyserSession session, BlockState blockState, GeyserItemStack itemInHand) { + float destroySpeed = getItemDestroySpeed(session, blockState.block(), itemInHand); + EntityEffectCache effectCache = session.getEffectCache(); + + if (destroySpeed > 1.0F) { + destroySpeed += session.getPlayerEntity().attributeOrDefault(GeyserAttributeType.MINING_EFFICIENCY); } - switch (toolTier) { - // Use intentional fall-throughs to check each tier with this block - default: - if (session.getTagCache().is(BlockTag.NEEDS_STONE_TOOL, block)) { - return false; - } - case "stone": - if (session.getTagCache().is(BlockTag.NEEDS_IRON_TOOL, block)) { - return false; - } - case "iron": - if (session.getTagCache().is(BlockTag.NEEDS_DIAMOND_TOOL, block)) { - return false; - } + int miningSpeedMultiplier = getMiningSpeedAmplification(effectCache); + if (miningSpeedMultiplier > 0) { + destroySpeed *= miningSpeedMultiplier * 0.2F; } - return true; + if (effectCache.getMiningFatigue() != 0) { + float slowdown = switch (effectCache.getMiningFatigue()) { + case 1 -> 0.3F; + case 2 -> 0.09F; + case 3 -> 0.0027F; + default -> 8.1E-4F; + }; + destroySpeed *= slowdown; + } + + destroySpeed *= session.getPlayerEntity().attributeOrDefault(GeyserAttributeType.BLOCK_BREAK_SPEED); + if (session.getCollisionManager().isWaterInEyes()) { + destroySpeed *= session.getPlayerEntity().attributeOrDefault(GeyserAttributeType.SUBMERGED_MINING_SPEED); + } + + if (!session.getPlayerEntity().isOnGround()) { + destroySpeed /= 5F; + } + + return destroySpeed; } - // https://minecraft.wiki/w/Breaking - private static double calculateBreakTime(double blockHardness, String toolTier, boolean canHarvestWithHand, boolean correctTool, boolean canTierMineBlock, - String toolType, boolean isShearsEffective, int toolEfficiencyLevel, int hasteLevel, int miningFatigueLevel, - boolean insideOfWaterWithoutAquaAffinity, boolean onGround) { - double baseTime = (((correctTool && canTierMineBlock) || canHarvestWithHand) ? 1.5 : 5.0) * blockHardness; - double speed = 1.0 / baseTime; + private static int getMiningSpeedAmplification(EntityEffectCache cache) { + return Math.max(cache.getHaste(), cache.getConduitPower()); + } - if (correctTool) { - speed *= toolBreakTimeBonus(toolType, toolTier, isShearsEffective); - speed += toolEfficiencyLevel == 0 ? 0 : toolEfficiencyLevel * toolEfficiencyLevel + 1; - } - speed *= 1.0 + (0.2 * hasteLevel); - - switch (miningFatigueLevel) { - case 0: - break; - case 1: - speed -= (speed * 0.7); - break; - case 2: - speed -= (speed * 0.91); - break; - case 3: - speed -= (speed * 0.9973); - break; - default: - speed -= (speed * 0.99919); - break; - } - - if (insideOfWaterWithoutAquaAffinity) speed *= 0.2; - if (!onGround) speed *= 0.2; - return 1.0 / speed; + public int getDestroyStage(GeyserSession session) { + return session.getDestroyProgress() > 0F ? (int) session.getDestroyProgress() * 10 : -1; } // TODO 1.21.4 this changed probably; no more tiers public static double getBreakTime(GeyserSession session, Block block, ItemMapping item, @Nullable DataComponents components, boolean isSessionPlayer) { - boolean isShearsEffective = session.getTagCache().is(BlockTag.LEAVES, block) || session.getTagCache().is(BlockTag.WOOL, block); //TODO called twice - boolean canHarvestWithHand = !block.requiresCorrectToolForDrops(); - String toolType = ""; - String toolTier = ""; - boolean correctTool = false; - boolean toolCanBreak = false; - if (item.isTool()) { - toolType = item.getToolType(); - toolTier = item.getToolTier(); - correctTool = correctTool(session, block, toolType); - toolCanBreak = canToolTierBreakBlock(session, block, toolTier); - } - - int toolEfficiencyLevel = ItemUtils.getEnchantmentLevel(session, components, BedrockEnchantment.EFFICIENCY); - int hasteLevel = 0; - int miningFatigueLevel = 0; - - if (!isSessionPlayer) { - // Another entity is currently mining; we have all the information we know - return calculateBreakTime(block.destroyTime(), toolTier, canHarvestWithHand, correctTool, toolCanBreak, toolType, isShearsEffective, - toolEfficiencyLevel, hasteLevel, miningFatigueLevel, false, true); - } - - hasteLevel = Math.max(session.getEffectCache().getHaste(), session.getEffectCache().getConduitPower()); - miningFatigueLevel = session.getEffectCache().getMiningFatigue(); - - boolean waterInEyes = session.getCollisionManager().isWaterInEyes(); - boolean insideOfWaterWithoutAquaAffinity = waterInEyes && - ItemUtils.getEnchantmentLevel(session, session.getPlayerInventory().getItem(5).getAllComponents(), BedrockEnchantment.AQUA_AFFINITY) < 1; - - return calculateBreakTime(block.destroyTime(), toolTier, canHarvestWithHand, correctTool, toolCanBreak, toolType, isShearsEffective, - toolEfficiencyLevel, hasteLevel, miningFatigueLevel, insideOfWaterWithoutAquaAffinity, session.getPlayerEntity().isOnGround()); +// boolean isShearsEffective = session.getTagCache().is(BlockTag.LEAVES, block) || session.getTagCache().is(BlockTag.WOOL, block); //TODO called twice +// boolean canHarvestWithHand = !block.requiresCorrectToolForDrops(); +// String toolType = ""; +// String toolTier = ""; +// boolean correctTool = false; +// boolean toolCanBreak = false; +// if (item.isTool()) { +// toolType = item.getToolType(); +// toolTier = item.getToolTier(); +// correctTool = correctTool(session, block, toolType); +// toolCanBreak = canToolTierBreakBlock(session, block, toolTier); +// } +// +// int toolEfficiencyLevel = ItemUtils.getEnchantmentLevel(session, components, BedrockEnchantment.EFFICIENCY); +// int hasteLevel = 0; +// int miningFatigueLevel = 0; +// +// if (!isSessionPlayer) { +// // Another entity is currently mining; we have all the information we know +// return calculateBreakTime(block.destroyTime(), toolTier, canHarvestWithHand, correctTool, toolCanBreak, toolType, isShearsEffective, +// toolEfficiencyLevel, hasteLevel, miningFatigueLevel, false, true); +// } +// +// hasteLevel = Math.max(session.getEffectCache().getHaste(), session.getEffectCache().getConduitPower()); +// miningFatigueLevel = session.getEffectCache().getMiningFatigue(); +// +// boolean waterInEyes = session.getCollisionManager().isWaterInEyes(); +// boolean insideOfWaterWithoutAquaAffinity = waterInEyes && +// ItemUtils.getEnchantmentLevel(session, session.getPlayerInventory().getItem(5).getAllComponents(), BedrockEnchantment.AQUA_AFFINITY) < 1; +// +// return calculateBreakTime(block.destroyTime(), toolTier, canHarvestWithHand, correctTool, toolCanBreak, toolType, isShearsEffective, +// toolEfficiencyLevel, hasteLevel, miningFatigueLevel, insideOfWaterWithoutAquaAffinity, session.getPlayerEntity().isOnGround()); } public static double getSessionBreakTime(GeyserSession session, Block block) { - PlayerInventory inventory = session.getPlayerInventory(); - GeyserItemStack item = inventory.getItemInHand(); - ItemMapping mapping = ItemMapping.AIR; - DataComponents components = null; - if (item != null) { - mapping = item.getMapping(session); - components = item.getAllComponents(); - } - return getBreakTime(session, block, mapping, components, true); +// PlayerInventory inventory = session.getPlayerInventory(); +// GeyserItemStack item = inventory.getItemInHand(); +// ItemMapping mapping = ItemMapping.AIR; +// DataComponents components = null; +// if (item != null) { +// mapping = item.getMapping(session); +// components = item.getAllComponents(); +// } +// return getBreakTime(session, block, mapping, components, true); } /** From 650cb8d4733f52fa19020a0cf4c8631e205b65fa Mon Sep 17 00:00:00 2001 From: onebeastchris Date: Tue, 3 Dec 2024 18:35:02 +0800 Subject: [PATCH 06/31] remove isValidRepairItem in favor of component, remove unneeded item tiers, deprecate repair items and tool tier in NonVanillaCustomItemData --- .../item/custom/NonVanillaCustomItemData.java | 10 ++- .../java/org/geysermc/geyser/item/Items.java | 6 +- .../geyser/item/components/ToolTier.java | 64 ------------------- .../geysermc/geyser/item/type/ArmorItem.java | 10 +-- .../geyser/item/type/DyeableArmorItem.java | 5 +- .../geysermc/geyser/item/type/ElytraItem.java | 39 ----------- .../geysermc/geyser/item/type/LightItem.java | 1 - .../geysermc/geyser/item/type/MaceItem.java | 39 ----------- .../geysermc/geyser/item/type/ShieldItem.java | 7 -- .../geysermc/geyser/item/type/TieredItem.java | 46 ------------- .../geyser/item/type/WolfArmorItem.java | 5 +- .../CustomItemRegistryPopulator.java | 18 +++--- .../geyser/registry/type/ItemMapping.java | 2 - 13 files changed, 19 insertions(+), 233 deletions(-) delete mode 100644 core/src/main/java/org/geysermc/geyser/item/components/ToolTier.java delete mode 100644 core/src/main/java/org/geysermc/geyser/item/type/ElytraItem.java delete mode 100644 core/src/main/java/org/geysermc/geyser/item/type/MaceItem.java delete mode 100644 core/src/main/java/org/geysermc/geyser/item/type/TieredItem.java diff --git a/api/src/main/java/org/geysermc/geyser/api/item/custom/NonVanillaCustomItemData.java b/api/src/main/java/org/geysermc/geyser/api/item/custom/NonVanillaCustomItemData.java index 2c283780c..2fff247a7 100644 --- a/api/src/main/java/org/geysermc/geyser/api/item/custom/NonVanillaCustomItemData.java +++ b/api/src/main/java/org/geysermc/geyser/api/item/custom/NonVanillaCustomItemData.java @@ -80,10 +80,9 @@ public interface NonVanillaCustomItemData extends CustomItemData { @Nullable String toolType(); /** - * Gets the tool tier of the item. - * - * @return the tool tier of the item + * @deprecated no longer used */ + @Deprecated(forRemoval = true) @Nullable String toolTier(); /** @@ -108,10 +107,9 @@ public interface NonVanillaCustomItemData extends CustomItemData { @Nullable String translationString(); /** - * Gets the repair materials of the item. - * - * @return the repair materials of the item + * @deprecated No longer used. */ + @Deprecated(forRemoval = true) @Nullable Set repairMaterials(); /** diff --git a/core/src/main/java/org/geysermc/geyser/item/Items.java b/core/src/main/java/org/geysermc/geyser/item/Items.java index 4a2d5827a..5cdb6c4ce 100644 --- a/core/src/main/java/org/geysermc/geyser/item/Items.java +++ b/core/src/main/java/org/geysermc/geyser/item/Items.java @@ -36,7 +36,6 @@ import org.geysermc.geyser.item.type.CrossbowItem; import org.geysermc.geyser.item.type.DecoratedPotItem; import org.geysermc.geyser.item.type.DyeItem; import org.geysermc.geyser.item.type.DyeableArmorItem; -import org.geysermc.geyser.item.type.ElytraItem; import org.geysermc.geyser.item.type.EnchantedBookItem; import org.geysermc.geyser.item.type.FilledMapItem; import org.geysermc.geyser.item.type.FireworkRocketItem; @@ -44,7 +43,6 @@ import org.geysermc.geyser.item.type.FireworkStarItem; import org.geysermc.geyser.item.type.FishingRodItem; import org.geysermc.geyser.item.type.GoatHornItem; import org.geysermc.geyser.item.type.Item; -import org.geysermc.geyser.item.type.MaceItem; import org.geysermc.geyser.item.type.MapItem; import org.geysermc.geyser.item.type.PlayerHeadItem; import org.geysermc.geyser.item.type.PotionItem; @@ -873,7 +871,7 @@ public final class Items { public static final Item CARROT_ON_A_STICK = register(new Item("carrot_on_a_stick", builder())); public static final Item WARPED_FUNGUS_ON_A_STICK = register(new Item("warped_fungus_on_a_stick", builder())); public static final Item PHANTOM_MEMBRANE = register(new Item("phantom_membrane", builder())); - public static final Item ELYTRA = register(new ElytraItem("elytra", builder())); + public static final Item ELYTRA = register(new Item("elytra", builder())); public static final Item OAK_BOAT = register(new BoatItem("oak_boat", builder())); public static final Item OAK_CHEST_BOAT = register(new BoatItem("oak_chest_boat", builder())); public static final Item SPRUCE_BOAT = register(new BoatItem("spruce_boat", builder())); @@ -1215,7 +1213,7 @@ public final class Items { public static final Item WRITABLE_BOOK = register(new WritableBookItem("writable_book", builder())); public static final Item WRITTEN_BOOK = register(new WrittenBookItem("written_book", builder())); public static final Item BREEZE_ROD = register(new Item("breeze_rod", builder())); - public static final Item MACE = register(new MaceItem("mace", builder())); + public static final Item MACE = register(new Item("mace", builder())); public static final Item ITEM_FRAME = register(new Item("item_frame", builder())); public static final Item GLOW_ITEM_FRAME = register(new Item("glow_item_frame", builder())); public static final Item FLOWER_POT = register(new BlockItem(builder(), Blocks.FLOWER_POT)); diff --git a/core/src/main/java/org/geysermc/geyser/item/components/ToolTier.java b/core/src/main/java/org/geysermc/geyser/item/components/ToolTier.java deleted file mode 100644 index a8832df1e..000000000 --- a/core/src/main/java/org/geysermc/geyser/item/components/ToolTier.java +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Copyright (c) 2019-2022 GeyserMC. http://geysermc.org - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - * - * @author GeyserMC - * @link https://github.com/GeyserMC/Geyser - */ - -package org.geysermc.geyser.item.components; - -import com.google.common.base.Suppliers; -import org.geysermc.geyser.item.Items; -import org.geysermc.geyser.item.type.Item; - -import java.util.Collections; -import java.util.Locale; -import java.util.Set; -import java.util.function.Supplier; - -public enum ToolTier { - WOODEN(2, () -> Set.of(Items.OAK_PLANKS, Items.SPRUCE_PLANKS, Items.BIRCH_PLANKS, Items.JUNGLE_PLANKS, Items.ACACIA_PLANKS, Items.DARK_OAK_PLANKS, Items.CRIMSON_PLANKS, Items.WARPED_PLANKS, Items.MANGROVE_PLANKS)), // PLANKS tag // TODO ? - STONE(4, () -> Set.of(Items.COBBLESTONE, Items.BLACKSTONE, Items.COBBLED_DEEPSLATE)), // STONE_TOOL_MATERIALS tag - IRON(6, () -> Collections.singleton(Items.IRON_INGOT)), - GOLDEN(12, () -> Collections.singleton(Items.GOLD_INGOT)), - DIAMOND(8, () -> Collections.singleton(Items.DIAMOND)), - NETHERITE(9, () -> Collections.singleton(Items.NETHERITE_INGOT)); - - private static final ToolTier[] VALUES = values(); - - private final int speed; - private final Supplier> repairIngredients; - - ToolTier(int speed, Supplier> repairIngredients) { - this.speed = speed; - // Lazily initialize as this will likely be called as items are loading - this.repairIngredients = Suppliers.memoize(repairIngredients::get); - } - - public Set getRepairIngredients() { - return repairIngredients.get(); - } - - @Override - public String toString() { - return this.name().toLowerCase(Locale.ROOT); - } -} diff --git a/core/src/main/java/org/geysermc/geyser/item/type/ArmorItem.java b/core/src/main/java/org/geysermc/geyser/item/type/ArmorItem.java index 0a25a8d4f..ec87728a9 100644 --- a/core/src/main/java/org/geysermc/geyser/item/type/ArmorItem.java +++ b/core/src/main/java/org/geysermc/geyser/item/type/ArmorItem.java @@ -30,7 +30,6 @@ import org.cloudburstmc.nbt.NbtMap; import org.cloudburstmc.nbt.NbtMapBuilder; import org.cloudburstmc.protocol.bedrock.data.TrimMaterial; import org.cloudburstmc.protocol.bedrock.data.TrimPattern; -import org.geysermc.geyser.item.ArmorMaterial; import org.geysermc.geyser.session.GeyserSession; import org.geysermc.geyser.translator.item.BedrockItemBuilder; import org.geysermc.mcprotocollib.protocol.data.game.item.component.ArmorTrim; @@ -38,11 +37,9 @@ import org.geysermc.mcprotocollib.protocol.data.game.item.component.DataComponen import org.geysermc.mcprotocollib.protocol.data.game.item.component.DataComponents; public class ArmorItem extends Item { - private final ArmorMaterial material; - public ArmorItem(String javaIdentifier, ArmorMaterial material, Builder builder) { + public ArmorItem(String javaIdentifier, Builder builder) { super(javaIdentifier, builder); - this.material = material; } @Override @@ -68,11 +65,6 @@ public class ArmorItem extends Item { } } - @Override - public boolean isValidRepairItem(Item other) { - return material.getRepairIngredient() == other; - } - // TODO maybe some kind of namespace util? private static String getNamespace(String identifier) { int i = identifier.indexOf(':'); diff --git a/core/src/main/java/org/geysermc/geyser/item/type/DyeableArmorItem.java b/core/src/main/java/org/geysermc/geyser/item/type/DyeableArmorItem.java index 8c63eaeb0..480385d07 100644 --- a/core/src/main/java/org/geysermc/geyser/item/type/DyeableArmorItem.java +++ b/core/src/main/java/org/geysermc/geyser/item/type/DyeableArmorItem.java @@ -26,14 +26,13 @@ package org.geysermc.geyser.item.type; import org.checkerframework.checker.nullness.qual.NonNull; -import org.geysermc.geyser.item.ArmorMaterial; import org.geysermc.geyser.session.GeyserSession; import org.geysermc.geyser.translator.item.BedrockItemBuilder; import org.geysermc.mcprotocollib.protocol.data.game.item.component.DataComponents; public class DyeableArmorItem extends ArmorItem { - public DyeableArmorItem(String javaIdentifier, ArmorMaterial material, Builder builder) { - super(javaIdentifier, material, builder); + public DyeableArmorItem(String javaIdentifier, Builder builder) { + super(javaIdentifier, builder); } @Override diff --git a/core/src/main/java/org/geysermc/geyser/item/type/ElytraItem.java b/core/src/main/java/org/geysermc/geyser/item/type/ElytraItem.java deleted file mode 100644 index e5d94eb8b..000000000 --- a/core/src/main/java/org/geysermc/geyser/item/type/ElytraItem.java +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Copyright (c) 2019-2022 GeyserMC. http://geysermc.org - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - * - * @author GeyserMC - * @link https://github.com/GeyserMC/Geyser - */ - -package org.geysermc.geyser.item.type; - -import org.geysermc.geyser.item.Items; - -public class ElytraItem extends Item { - public ElytraItem(String javaIdentifier, Builder builder) { - super(javaIdentifier, builder); - } - - @Override - public boolean isValidRepairItem(Item other) { - return other == Items.PHANTOM_MEMBRANE; - } -} diff --git a/core/src/main/java/org/geysermc/geyser/item/type/LightItem.java b/core/src/main/java/org/geysermc/geyser/item/type/LightItem.java index fa10b08b1..d176ff367 100644 --- a/core/src/main/java/org/geysermc/geyser/item/type/LightItem.java +++ b/core/src/main/java/org/geysermc/geyser/item/type/LightItem.java @@ -60,7 +60,6 @@ public class LightItem extends BlockItem { return super.toBedrockDefinition(components, mappings); } - private static ItemMapping getLightLevelMapping(DataComponents components, ItemMappings mappings) { String lightLevel = "15"; if (components != null) { diff --git a/core/src/main/java/org/geysermc/geyser/item/type/MaceItem.java b/core/src/main/java/org/geysermc/geyser/item/type/MaceItem.java deleted file mode 100644 index e7b9a8684..000000000 --- a/core/src/main/java/org/geysermc/geyser/item/type/MaceItem.java +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Copyright (c) 2019-2024 GeyserMC. http://geysermc.org - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - * - * @author GeyserMC - * @link https://github.com/GeyserMC/Geyser - */ - -package org.geysermc.geyser.item.type; - -import org.geysermc.geyser.item.Items; - -public class MaceItem extends Item { - public MaceItem(String javaIdentifier, Builder builder) { - super(javaIdentifier, builder); - } - - @Override - public boolean isValidRepairItem(Item other) { - return other == Items.BREEZE_ROD; - } -} diff --git a/core/src/main/java/org/geysermc/geyser/item/type/ShieldItem.java b/core/src/main/java/org/geysermc/geyser/item/type/ShieldItem.java index 14d41a073..98ef80d95 100644 --- a/core/src/main/java/org/geysermc/geyser/item/type/ShieldItem.java +++ b/core/src/main/java/org/geysermc/geyser/item/type/ShieldItem.java @@ -26,7 +26,6 @@ package org.geysermc.geyser.item.type; import org.checkerframework.checker.nullness.qual.NonNull; -import org.geysermc.geyser.item.components.ToolTier; import org.geysermc.geyser.session.GeyserSession; import org.geysermc.geyser.translator.item.BedrockItemBuilder; import org.geysermc.mcprotocollib.protocol.data.game.item.component.BannerPatternLayer; @@ -54,10 +53,4 @@ public class ShieldItem extends Item { builder.putInt("Base", 15 - baseColor); } } - - @Override - public boolean isValidRepairItem(Item other) { - // Java Edition 1.19.3 checks the tag, but TODO check to see if we want it or are simulating what Bedrock is doing - return ToolTier.WOODEN.getRepairIngredients().contains(other); - } } diff --git a/core/src/main/java/org/geysermc/geyser/item/type/TieredItem.java b/core/src/main/java/org/geysermc/geyser/item/type/TieredItem.java deleted file mode 100644 index d998eb0d4..000000000 --- a/core/src/main/java/org/geysermc/geyser/item/type/TieredItem.java +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright (c) 2019-2022 GeyserMC. http://geysermc.org - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - * - * @author GeyserMC - * @link https://github.com/GeyserMC/Geyser - */ - -package org.geysermc.geyser.item.type; - -import org.geysermc.geyser.item.components.ToolTier; - -public class TieredItem extends Item { - private final ToolTier tier; - - public TieredItem(String javaIdentifier, ToolTier tier, Builder builder) { - super(javaIdentifier, builder); - this.tier = tier; - } - - public ToolTier tier() { - return tier; - } - - @Override - public boolean isValidRepairItem(Item other) { - return tier.getRepairIngredients().contains(other); - } -} diff --git a/core/src/main/java/org/geysermc/geyser/item/type/WolfArmorItem.java b/core/src/main/java/org/geysermc/geyser/item/type/WolfArmorItem.java index bd97a6a7d..52ded0407 100644 --- a/core/src/main/java/org/geysermc/geyser/item/type/WolfArmorItem.java +++ b/core/src/main/java/org/geysermc/geyser/item/type/WolfArmorItem.java @@ -26,14 +26,13 @@ package org.geysermc.geyser.item.type; import org.checkerframework.checker.nullness.qual.NonNull; -import org.geysermc.geyser.item.ArmorMaterial; import org.geysermc.geyser.session.GeyserSession; import org.geysermc.geyser.translator.item.BedrockItemBuilder; import org.geysermc.mcprotocollib.protocol.data.game.item.component.DataComponents; public class WolfArmorItem extends ArmorItem { - public WolfArmorItem(String javaIdentifier, ArmorMaterial material, Builder builder) { - super(javaIdentifier, material, builder); + public WolfArmorItem(String javaIdentifier, Builder builder) { + super(javaIdentifier, builder); } @Override diff --git a/core/src/main/java/org/geysermc/geyser/registry/populator/CustomItemRegistryPopulator.java b/core/src/main/java/org/geysermc/geyser/registry/populator/CustomItemRegistryPopulator.java index ec094ea31..3d2ca4ef9 100644 --- a/core/src/main/java/org/geysermc/geyser/registry/populator/CustomItemRegistryPopulator.java +++ b/core/src/main/java/org/geysermc/geyser/registry/populator/CustomItemRegistryPopulator.java @@ -51,7 +51,13 @@ import org.geysermc.geyser.registry.type.NonVanillaItemRegistration; import org.geysermc.mcprotocollib.protocol.data.game.item.component.DataComponentType; import org.geysermc.mcprotocollib.protocol.data.game.item.component.DataComponents; -import java.util.*; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Set; public class CustomItemRegistryPopulator { public static void populate(Map items, Multimap customItems, List nonVanillaCustomItems) { @@ -129,18 +135,11 @@ public class CustomItemRegistryPopulator { public static NonVanillaItemRegistration registerCustomItem(NonVanillaCustomItemData customItemData, int customItemId, int protocolVersion) { String customIdentifier = customItemData.identifier(); - Set repairMaterials = customItemData.repairMaterials(); - DataComponents components = new DataComponents(new HashMap<>()); components.put(DataComponentType.MAX_STACK_SIZE, customItemData.stackSize()); components.put(DataComponentType.MAX_DAMAGE, customItemData.maxDamage()); - Item item = new Item(customIdentifier, Item.builder().components(components)) { - @Override - public boolean isValidRepairItem(Item other) { - return repairMaterials != null && repairMaterials.contains(other.javaIdentifier()); - } - }; + Item item = new Item(customIdentifier, Item.builder().components(components)); Items.register(item, customItemData.javaId()); ItemMapping customItemMapping = ItemMapping.builder() @@ -148,7 +147,6 @@ public class CustomItemRegistryPopulator { .bedrockData(0) .bedrockBlockDefinition(null) .toolType(customItemData.toolType()) - .toolTier(customItemData.toolTier()) .translationString(customItemData.translationString()) .customItemOptions(Collections.emptyList()) .javaItem(item) diff --git a/core/src/main/java/org/geysermc/geyser/registry/type/ItemMapping.java b/core/src/main/java/org/geysermc/geyser/registry/type/ItemMapping.java index 8a2c77f28..d940db6e0 100644 --- a/core/src/main/java/org/geysermc/geyser/registry/type/ItemMapping.java +++ b/core/src/main/java/org/geysermc/geyser/registry/type/ItemMapping.java @@ -52,7 +52,6 @@ public class ItemMapping { null, // Air is never sent in full over the network for this to serialize. null, null, - null, Collections.emptyList(), Items.AIR ); @@ -68,7 +67,6 @@ public class ItemMapping { BlockDefinition bedrockBlockDefinition; String toolType; - String toolTier; String translationString; From 84faeba4b28f877707d56b662b8717ea37e3ffd6 Mon Sep 17 00:00:00 2001 From: onebeastchris Date: Tue, 3 Dec 2024 23:17:00 +0800 Subject: [PATCH 07/31] More item changes, remove/deprecate more tooltier usages, change stored map colors --- .../item/GeyserNonVanillaCustomItemData.java | 2 + .../java/org/geysermc/geyser/item/Items.java | 78 +-- .../geyser/item/type/WolfArmorItem.java | 2 +- .../org/geysermc/geyser/level/MapColor.java | 509 +++++++++--------- .../populator/ItemRegistryPopulator.java | 8 +- .../registry/type/GeyserMappingItem.java | 1 - 6 files changed, 295 insertions(+), 305 deletions(-) diff --git a/core/src/main/java/org/geysermc/geyser/item/GeyserNonVanillaCustomItemData.java b/core/src/main/java/org/geysermc/geyser/item/GeyserNonVanillaCustomItemData.java index 9c9269df3..063a86a03 100644 --- a/core/src/main/java/org/geysermc/geyser/item/GeyserNonVanillaCustomItemData.java +++ b/core/src/main/java/org/geysermc/geyser/item/GeyserNonVanillaCustomItemData.java @@ -112,6 +112,7 @@ public final class GeyserNonVanillaCustomItemData extends GeyserCustomItemData i return toolType; } + @SuppressWarnings("removal") @Override public String toolTier() { return toolTier; @@ -132,6 +133,7 @@ public final class GeyserNonVanillaCustomItemData extends GeyserCustomItemData i return translationString; } + @SuppressWarnings("removal") @Override public Set repairMaterials() { return repairMaterials; diff --git a/core/src/main/java/org/geysermc/geyser/item/Items.java b/core/src/main/java/org/geysermc/geyser/item/Items.java index 5cdb6c4ce..98450f476 100644 --- a/core/src/main/java/org/geysermc/geyser/item/Items.java +++ b/core/src/main/java/org/geysermc/geyser/item/Items.java @@ -43,7 +43,9 @@ import org.geysermc.geyser.item.type.FireworkStarItem; import org.geysermc.geyser.item.type.FishingRodItem; import org.geysermc.geyser.item.type.GoatHornItem; import org.geysermc.geyser.item.type.Item; +import org.geysermc.geyser.item.type.LightItem; import org.geysermc.geyser.item.type.MapItem; +import org.geysermc.geyser.item.type.OminousBottleItem; import org.geysermc.geyser.item.type.PlayerHeadItem; import org.geysermc.geyser.item.type.PotionItem; import org.geysermc.geyser.item.type.ShieldItem; @@ -295,8 +297,8 @@ public final class Items { public static final Item RED_WOOL = register(new BlockItem(builder(), Blocks.RED_WOOL)); public static final Item BLACK_WOOL = register(new BlockItem(builder(), Blocks.BLACK_WOOL)); public static final Item DANDELION = register(new BlockItem(builder(), Blocks.DANDELION)); -// TODO public static final Item OPEN_EYEBLOSSOM = register(new BlockItem(builder(), Blocks.OPEN_EYEBLOSSOM)); -// TODO public static final Item CLOSED_EYEBLOSSOM = register(new BlockItem(builder(), Blocks.CLOSED_EYEBLOSSOM)); + public static final Item OPEN_EYEBLOSSOM = register(new BlockItem(builder(), Blocks.OPEN_EYEBLOSSOM)); + public static final Item CLOSED_EYEBLOSSOM = register(new BlockItem(builder(), Blocks.CLOSED_EYEBLOSSOM)); public static final Item POPPY = register(new BlockItem(builder(), Blocks.POPPY)); public static final Item BLUE_ORCHID = register(new BlockItem(builder(), Blocks.BLUE_ORCHID)); public static final Item ALLIUM = register(new BlockItem(builder(), Blocks.ALLIUM)); @@ -445,13 +447,13 @@ public final class Items { public static final Item MELON = register(new BlockItem(builder(), Blocks.MELON)); public static final Item VINE = register(new BlockItem(builder(), Blocks.VINE)); public static final Item GLOW_LICHEN = register(new BlockItem(builder(), Blocks.GLOW_LICHEN)); - //TODO public static final Item RESIN_CLUMP = register(new BlockItem(builder(), Blocks.RESIN_CLUMP)); - //TODO public static final Item RESIN_BLOCK = register(new BlockItem(builder(), Blocks.RESIN_BLOCK)); - //TODO public static final Item RESIN_BRICKS = register(new BlockItem(builder(), Blocks.RESIN_BRICKS)); - //TODO public static final Item RESIN_BRICK_STAIRS = register(new BlockItem(builder(), Blocks.RESIN_BRICK_STAIRS)); - //TODO public static final Item RESIN_BRICK_SLAB = register(new BlockItem(builder(), Blocks.RESIN_BRICK_SLAB)); - //TODO public static final Item RESIN_BRICK_WALL = register(new BlockItem(builder(), Blocks.RESIN_BRICK_WALL)); - //TODO public static final Item CHISELED_RESIN_BRICKS = register(new BlockItem(builder(), Blocks.CHISELED_RESIN_BRICKS)); + public static final Item RESIN_CLUMP = register(new BlockItem(builder(), Blocks.RESIN_CLUMP)); + public static final Item RESIN_BLOCK = register(new BlockItem(builder(), Blocks.RESIN_BLOCK)); + public static final Item RESIN_BRICKS = register(new BlockItem(builder(), Blocks.RESIN_BRICKS)); + public static final Item RESIN_BRICK_STAIRS = register(new BlockItem(builder(), Blocks.RESIN_BRICK_STAIRS)); + public static final Item RESIN_BRICK_SLAB = register(new BlockItem(builder(), Blocks.RESIN_BRICK_SLAB)); + public static final Item RESIN_BRICK_WALL = register(new BlockItem(builder(), Blocks.RESIN_BRICK_WALL)); + public static final Item CHISELED_RESIN_BRICKS = register(new BlockItem(builder(), Blocks.CHISELED_RESIN_BRICKS)); public static final Item BRICK_STAIRS = register(new BlockItem(builder(), Blocks.BRICK_STAIRS)); public static final Item STONE_BRICK_STAIRS = register(new BlockItem(builder(), Blocks.STONE_BRICK_STAIRS)); public static final Item MUD_BRICK_STAIRS = register(new BlockItem(builder(), Blocks.MUD_BRICK_STAIRS)); @@ -536,7 +538,7 @@ public final class Items { public static final Item RED_TERRACOTTA = register(new BlockItem(builder(), Blocks.RED_TERRACOTTA)); public static final Item BLACK_TERRACOTTA = register(new BlockItem(builder(), Blocks.BLACK_TERRACOTTA)); public static final Item BARRIER = register(new BlockItem(builder(), Blocks.BARRIER)); - public static final Item LIGHT = register(new BlockItem(builder(), Blocks.LIGHT)); + public static final Item LIGHT = register(new LightItem(builder(), Blocks.LIGHT)); public static final Item HAY_BLOCK = register(new BlockItem(builder(), Blocks.HAY_BLOCK)); public static final Item WHITE_CARPET = register(new BlockItem(builder(), Blocks.WHITE_CARPET)); public static final Item ORANGE_CARPET = register(new BlockItem(builder(), Blocks.ORANGE_CARPET)); @@ -894,10 +896,10 @@ public final class Items { public static final Item BAMBOO_CHEST_RAFT = register(new BoatItem("bamboo_chest_raft", builder())); public static final Item STRUCTURE_BLOCK = register(new BlockItem(builder(), Blocks.STRUCTURE_BLOCK)); public static final Item JIGSAW = register(new BlockItem(builder(), Blocks.JIGSAW)); - public static final Item TURTLE_HELMET = register(new ArmorItem("turtle_helmet", ArmorMaterial.TURTLE, builder())); + public static final Item TURTLE_HELMET = register(new ArmorItem("turtle_helmet", builder())); public static final Item TURTLE_SCUTE = register(new Item("turtle_scute", builder())); public static final Item ARMADILLO_SCUTE = register(new Item("armadillo_scute", builder())); - public static final Item WOLF_ARMOR = register(new WolfArmorItem("wolf_armor", ArmorMaterial.ARMADILLO, builder())); + public static final Item WOLF_ARMOR = register(new WolfArmorItem("wolf_armor", builder())); public static final Item FLINT_AND_STEEL = register(new Item("flint_and_steel", builder())); public static final Item BOWL = register(new Item("bowl", builder())); public static final Item APPLE = register(new Item("apple", builder())); @@ -956,30 +958,30 @@ public final class Items { public static final Item WHEAT_SEEDS = register(new BlockItem("wheat_seeds", builder(), Blocks.WHEAT)); public static final Item WHEAT = register(new Item("wheat", builder())); public static final Item BREAD = register(new Item("bread", builder())); - public static final Item LEATHER_HELMET = register(new DyeableArmorItem("leather_helmet", ArmorMaterial.LEATHER, builder())); - public static final Item LEATHER_CHESTPLATE = register(new DyeableArmorItem("leather_chestplate", ArmorMaterial.LEATHER, builder())); - public static final Item LEATHER_LEGGINGS = register(new DyeableArmorItem("leather_leggings", ArmorMaterial.LEATHER, builder())); - public static final Item LEATHER_BOOTS = register(new DyeableArmorItem("leather_boots", ArmorMaterial.LEATHER, builder())); - public static final Item CHAINMAIL_HELMET = register(new ArmorItem("chainmail_helmet", ArmorMaterial.CHAINMAIL, builder())); - public static final Item CHAINMAIL_CHESTPLATE = register(new ArmorItem("chainmail_chestplate", ArmorMaterial.CHAINMAIL, builder())); - public static final Item CHAINMAIL_LEGGINGS = register(new ArmorItem("chainmail_leggings", ArmorMaterial.CHAINMAIL, builder())); - public static final Item CHAINMAIL_BOOTS = register(new ArmorItem("chainmail_boots", ArmorMaterial.CHAINMAIL, builder())); - public static final Item IRON_HELMET = register(new ArmorItem("iron_helmet", ArmorMaterial.IRON, builder())); - public static final Item IRON_CHESTPLATE = register(new ArmorItem("iron_chestplate", ArmorMaterial.IRON, builder())); - public static final Item IRON_LEGGINGS = register(new ArmorItem("iron_leggings", ArmorMaterial.IRON, builder())); - public static final Item IRON_BOOTS = register(new ArmorItem("iron_boots", ArmorMaterial.IRON, builder())); - public static final Item DIAMOND_HELMET = register(new ArmorItem("diamond_helmet", ArmorMaterial.DIAMOND, builder())); - public static final Item DIAMOND_CHESTPLATE = register(new ArmorItem("diamond_chestplate", ArmorMaterial.DIAMOND, builder())); - public static final Item DIAMOND_LEGGINGS = register(new ArmorItem("diamond_leggings", ArmorMaterial.DIAMOND, builder())); - public static final Item DIAMOND_BOOTS = register(new ArmorItem("diamond_boots", ArmorMaterial.DIAMOND, builder())); - public static final Item GOLDEN_HELMET = register(new ArmorItem("golden_helmet", ArmorMaterial.GOLD, builder())); - public static final Item GOLDEN_CHESTPLATE = register(new ArmorItem("golden_chestplate", ArmorMaterial.GOLD, builder())); - public static final Item GOLDEN_LEGGINGS = register(new ArmorItem("golden_leggings", ArmorMaterial.GOLD, builder())); - public static final Item GOLDEN_BOOTS = register(new ArmorItem("golden_boots", ArmorMaterial.GOLD, builder())); - public static final Item NETHERITE_HELMET = register(new ArmorItem("netherite_helmet", ArmorMaterial.NETHERITE, builder())); - public static final Item NETHERITE_CHESTPLATE = register(new ArmorItem("netherite_chestplate", ArmorMaterial.NETHERITE, builder())); - public static final Item NETHERITE_LEGGINGS = register(new ArmorItem("netherite_leggings", ArmorMaterial.NETHERITE, builder())); - public static final Item NETHERITE_BOOTS = register(new ArmorItem("netherite_boots", ArmorMaterial.NETHERITE, builder())); + public static final Item LEATHER_HELMET = register(new DyeableArmorItem("leather_helmet", builder())); + public static final Item LEATHER_CHESTPLATE = register(new DyeableArmorItem("leather_chestplate", builder())); + public static final Item LEATHER_LEGGINGS = register(new DyeableArmorItem("leather_leggings", builder())); + public static final Item LEATHER_BOOTS = register(new DyeableArmorItem("leather_boots", builder())); + public static final Item CHAINMAIL_HELMET = register(new ArmorItem("chainmail_helmet", builder())); + public static final Item CHAINMAIL_CHESTPLATE = register(new ArmorItem("chainmail_chestplate", builder())); + public static final Item CHAINMAIL_LEGGINGS = register(new ArmorItem("chainmail_leggings", builder())); + public static final Item CHAINMAIL_BOOTS = register(new ArmorItem("chainmail_boots", builder())); + public static final Item IRON_HELMET = register(new ArmorItem("iron_helmet", builder())); + public static final Item IRON_CHESTPLATE = register(new ArmorItem("iron_chestplate", builder())); + public static final Item IRON_LEGGINGS = register(new ArmorItem("iron_leggings", builder())); + public static final Item IRON_BOOTS = register(new ArmorItem("iron_boots", builder())); + public static final Item DIAMOND_HELMET = register(new ArmorItem("diamond_helmet", builder())); + public static final Item DIAMOND_CHESTPLATE = register(new ArmorItem("diamond_chestplate", builder())); + public static final Item DIAMOND_LEGGINGS = register(new ArmorItem("diamond_leggings", builder())); + public static final Item DIAMOND_BOOTS = register(new ArmorItem("diamond_boots", builder())); + public static final Item GOLDEN_HELMET = register(new ArmorItem("golden_helmet", builder())); + public static final Item GOLDEN_CHESTPLATE = register(new ArmorItem("golden_chestplate", builder())); + public static final Item GOLDEN_LEGGINGS = register(new ArmorItem("golden_leggings", builder())); + public static final Item GOLDEN_BOOTS = register(new ArmorItem("golden_boots", builder())); + public static final Item NETHERITE_HELMET = register(new ArmorItem("netherite_helmet", builder())); + public static final Item NETHERITE_CHESTPLATE = register(new ArmorItem("netherite_chestplate", builder())); + public static final Item NETHERITE_LEGGINGS = register(new ArmorItem("netherite_leggings", builder())); + public static final Item NETHERITE_BOOTS = register(new ArmorItem("netherite_boots", builder())); public static final Item FLINT = register(new Item("flint", builder())); public static final Item PORKCHOP = register(new Item("porkchop", builder())); public static final Item COOKED_PORKCHOP = register(new Item("cooked_porkchop", builder())); @@ -1248,7 +1250,7 @@ public final class Items { public static final Item IRON_HORSE_ARMOR = register(new Item("iron_horse_armor", builder())); public static final Item GOLDEN_HORSE_ARMOR = register(new Item("golden_horse_armor", builder())); public static final Item DIAMOND_HORSE_ARMOR = register(new Item("diamond_horse_armor", builder())); - public static final Item LEATHER_HORSE_ARMOR = register(new Item("leather_horse_armor", builder())); + public static final Item LEATHER_HORSE_ARMOR = register(new DyeableArmorItem("leather_horse_armor", builder())); public static final Item LEAD = register(new Item("lead", builder())); public static final Item NAME_TAG = register(new Item("name_tag", builder())); public static final Item COMMAND_BLOCK_MINECART = register(new Item("command_block_minecart", builder())); @@ -1453,7 +1455,7 @@ public final class Items { public static final Item TRIAL_KEY = register(new Item("trial_key", builder())); public static final Item OMINOUS_TRIAL_KEY = register(new Item("ominous_trial_key", builder())); public static final Item VAULT = register(new BlockItem(builder(), Blocks.VAULT)); - public static final Item OMINOUS_BOTTLE = register(new Item("ominous_bottle", builder())); + public static final Item OMINOUS_BOTTLE = register(new OminousBottleItem("ominous_bottle", builder())); public static final int AIR_ID = AIR.javaId(); diff --git a/core/src/main/java/org/geysermc/geyser/item/type/WolfArmorItem.java b/core/src/main/java/org/geysermc/geyser/item/type/WolfArmorItem.java index 52ded0407..41c72f532 100644 --- a/core/src/main/java/org/geysermc/geyser/item/type/WolfArmorItem.java +++ b/core/src/main/java/org/geysermc/geyser/item/type/WolfArmorItem.java @@ -30,7 +30,7 @@ import org.geysermc.geyser.session.GeyserSession; import org.geysermc.geyser.translator.item.BedrockItemBuilder; import org.geysermc.mcprotocollib.protocol.data.game.item.component.DataComponents; -public class WolfArmorItem extends ArmorItem { +public class WolfArmorItem extends Item { public WolfArmorItem(String javaIdentifier, Builder builder) { super(javaIdentifier, builder); } diff --git a/core/src/main/java/org/geysermc/geyser/level/MapColor.java b/core/src/main/java/org/geysermc/geyser/level/MapColor.java index d84788db2..4b891e9b7 100644 --- a/core/src/main/java/org/geysermc/geyser/level/MapColor.java +++ b/core/src/main/java/org/geysermc/geyser/level/MapColor.java @@ -26,268 +26,261 @@ package org.geysermc.geyser.level; public enum MapColor { - COLOR_0(-1, -1, -1), - COLOR_1(-1, -1, -1), - COLOR_2(-1, -1, -1), - COLOR_3(-1, -1, -1), - COLOR_4(39, 125, 89), - COLOR_5(48, 153, 109), - COLOR_6(56, 178, 127), - COLOR_7(29, 94, 67), - COLOR_8(115, 164, 174), - COLOR_9(140, 201, 213), - COLOR_10(163, 233, 247), - COLOR_11(86, 123, 130), - COLOR_12(140, 140, 140), - COLOR_13(171, 171, 171), - COLOR_14(199, 199, 199), - COLOR_15(105, 105, 105), - COLOR_16(0, 0, 180), - COLOR_17(0, 0, 220), - COLOR_18(0, 0, 255), - COLOR_19(0, 0, 135), - COLOR_20(180, 112, 112), - COLOR_21(220, 138, 138), - COLOR_22(255, 160, 160), - COLOR_23(135, 84, 84), - COLOR_24(117, 117, 117), - COLOR_25(144, 144, 144), - COLOR_26(167, 167, 167), - COLOR_27(88, 88, 88), - COLOR_28(0, 87, 0), - COLOR_29(0, 106, 0), - COLOR_30(0, 124, 0), - COLOR_31(0, 65, 0), - COLOR_32(180, 180, 180), - COLOR_33(220, 220, 220), - COLOR_34(255, 255, 255), - COLOR_35(135, 135, 135), - COLOR_36(129, 118, 115), - COLOR_37(158, 144, 141), - COLOR_38(184, 168, 164), - COLOR_39(97, 88, 86), - COLOR_40(54, 76, 106), - COLOR_41(66, 94, 130), - COLOR_42(77, 109, 151), - COLOR_43(40, 57, 79), - COLOR_44(79, 79, 79), - COLOR_45(96, 96, 96), - COLOR_46(112, 112, 112), - COLOR_47(59, 59, 59), - COLOR_48(180, 45, 45), - COLOR_49(220, 55, 55), - COLOR_50(255, 64, 64), - COLOR_51(135, 33, 33), - COLOR_52(50, 84, 100), - COLOR_53(62, 102, 123), - COLOR_54(72, 119, 143), - COLOR_55(38, 63, 75), - COLOR_56(172, 177, 180), - COLOR_57(211, 217, 220), - COLOR_58(245, 252, 255), - COLOR_59(129, 133, 135), - COLOR_60(36, 89, 152), - COLOR_61(44, 109, 186), - COLOR_62(51, 127, 216), - COLOR_63(27, 67, 114), - COLOR_64(152, 53, 125), - COLOR_65(186, 65, 153), - COLOR_66(216, 76, 178), - COLOR_67(114, 40, 94), - COLOR_68(152, 108, 72), - COLOR_69(186, 132, 88), - COLOR_70(216, 153, 102), - COLOR_71(114, 81, 54), - COLOR_72(36, 161, 161), - COLOR_73(44, 197, 197), - COLOR_74(51, 229, 229), - COLOR_75(27, 121, 121), - COLOR_76(17, 144, 89), - COLOR_77(21, 176, 109), - COLOR_78(25, 204, 127), - COLOR_79(13, 108, 67), - COLOR_80(116, 89, 170), - COLOR_81(142, 109, 208), - COLOR_82(165, 127, 242), - COLOR_83(87, 67, 128), - COLOR_84(53, 53, 53), - COLOR_85(65, 65, 65), - COLOR_86(76, 76, 76), - COLOR_87(40, 40, 40), - COLOR_88(108, 108, 108), - COLOR_89(132, 132, 132), - COLOR_90(153, 153, 153), - COLOR_91(81, 81, 81), - COLOR_92(108, 89, 53), - COLOR_93(132, 109, 65), - COLOR_94(153, 127, 76), - COLOR_95(81, 67, 40), - COLOR_96(125, 44, 89), - COLOR_97(153, 54, 109), - COLOR_98(178, 63, 127), - COLOR_99(94, 33, 67), - COLOR_100(125, 53, 36), - COLOR_101(153, 65, 44), - COLOR_102(178, 76, 51), - COLOR_103(94, 40, 27), - COLOR_104(36, 53, 72), - COLOR_105(44, 65, 88), - COLOR_106(51, 76, 102), - COLOR_107(27, 40, 54), - COLOR_108(36, 89, 72), - COLOR_109(44, 109, 88), - COLOR_110(51, 127, 102), - COLOR_111(27, 67, 54), - COLOR_112(36, 36, 108), - COLOR_113(44, 44, 132), - COLOR_114(51, 51, 153), - COLOR_115(27, 27, 81), - COLOR_116(17, 17, 17), - COLOR_117(21, 21, 21), - COLOR_118(25, 25, 25), - COLOR_119(13, 13, 13), - COLOR_120(54, 168, 176), - COLOR_121(66, 205, 215), - COLOR_122(77, 238, 250), - COLOR_123(40, 126, 132), - COLOR_124(150, 154, 64), - COLOR_125(183, 188, 79), - COLOR_126(213, 219, 92), - COLOR_127(112, 115, 48), - COLOR_128(180, 90, 52), - COLOR_129(220, 110, 63), - COLOR_130(255, 128, 74), - COLOR_131(135, 67, 39), - COLOR_132(40, 153, 0), - COLOR_133(50, 187, 0), - COLOR_134(58, 217, 0), - COLOR_135(30, 114, 0), - COLOR_136(34, 60, 91), - COLOR_137(42, 74, 111), - COLOR_138(49, 86, 129), - COLOR_139(25, 45, 68), - COLOR_140(0, 1, 79), - COLOR_141(0, 1, 96), - COLOR_142(0, 2, 112), - COLOR_143(0, 1, 59), - COLOR_144(113, 124, 147), - COLOR_145(138, 152, 180), - COLOR_146(161, 177, 209), - COLOR_147(85, 93, 110), - COLOR_148(25, 57, 112), - COLOR_149(31, 70, 137), - COLOR_150(36, 82, 159), - COLOR_151(19, 43, 84), - COLOR_152(76, 61, 105), - COLOR_153(93, 75, 128), - COLOR_154(108, 87, 149), - COLOR_155(57, 46, 78), - COLOR_156(97, 76, 79), - COLOR_157(119, 93, 96), - COLOR_158(138, 108, 112), - COLOR_159(73, 57, 59), - COLOR_160(25, 93, 131), - COLOR_161(31, 114, 160), - COLOR_162(36, 133, 186), - COLOR_163(19, 70, 98), - COLOR_164(37, 82, 72), - COLOR_165(45, 100, 88), - COLOR_166(53, 117, 103), - COLOR_167(28, 61, 54), - COLOR_168(55, 54, 112), - COLOR_169(67, 66, 138), - COLOR_170(78, 77, 160), - COLOR_171(41, 40, 84), - COLOR_172(24, 28, 40), - COLOR_173(30, 35, 49), - COLOR_174(35, 41, 57), - COLOR_175(18, 21, 30), - COLOR_176(69, 75, 95), - COLOR_177(84, 92, 116), - COLOR_178(98, 107, 135), - COLOR_179(51, 56, 71), - COLOR_180(64, 64, 61), - COLOR_181(79, 79, 75), - COLOR_182(92, 92, 87), - COLOR_183(48, 48, 46), - COLOR_184(62, 51, 86), - COLOR_185(75, 62, 105), - COLOR_186(88, 73, 122), - COLOR_187(46, 38, 64), - COLOR_188(64, 43, 53), - COLOR_189(79, 53, 65), - COLOR_190(92, 62, 76), - COLOR_191(48, 32, 40), - COLOR_192(24, 35, 53), - COLOR_193(30, 43, 65), - COLOR_194(35, 50, 76), - COLOR_195(18, 26, 40), - COLOR_196(29, 57, 53), - COLOR_197(36, 70, 65), - COLOR_198(42, 82, 76), - COLOR_199(22, 43, 40), - COLOR_200(32, 42, 100), - COLOR_201(39, 51, 122), - COLOR_202(46, 60, 142), - COLOR_203(24, 31, 75), - COLOR_204(11, 15, 26), - COLOR_205(13, 18, 31), - COLOR_206(16, 22, 37), - COLOR_207(8, 11, 19), - COLOR_208(34, 33, 133), - COLOR_209(42, 41, 163), - COLOR_210(49, 48, 189), - COLOR_211(25, 25, 100), - COLOR_212(68, 44, 104), - COLOR_213(83, 54, 127), - COLOR_214(97, 63, 148), - COLOR_215(51, 33, 78), - COLOR_216(20, 17, 64), - COLOR_217(25, 21, 79), - COLOR_218(29, 25, 92), - COLOR_219(15, 13, 48), - COLOR_220(94, 88, 15), - COLOR_221(115, 108, 18), - COLOR_222(134, 126, 22), - COLOR_223(70, 66, 11), - COLOR_224(98, 100, 40), - COLOR_225(120, 122, 50), - COLOR_226(140, 142, 58), - COLOR_227(74, 75, 30), - COLOR_228(43, 31, 60), - COLOR_229(53, 37, 74), - COLOR_230(62, 44, 86), - COLOR_231(32, 23, 45), - COLOR_232(93, 127, 14), - COLOR_233(114, 155, 17), - COLOR_234(133, 180, 20), - COLOR_235(70, 95, 10), - COLOR_236(70, 70, 70), - COLOR_237(86, 86, 86), - COLOR_238(100, 100, 100), - COLOR_239(52, 52, 52), - COLOR_240(103, 123, 152), - COLOR_241(126, 150, 186), - COLOR_242(147, 175, 216), - COLOR_243(77, 92, 114), - COLOR_244(105, 117, 89), - COLOR_245(129, 144, 109), - COLOR_246(150, 167, 127), - COLOR_247(79, 88, 67); + COLOR_0(0), + COLOR_1(0), + COLOR_2(0), + COLOR_3(0), + COLOR_4(-10912473), + COLOR_5(-9594576), + COLOR_6(-8408520), + COLOR_7(-12362211), + COLOR_8(-5331853), + COLOR_9(-2766452), + COLOR_10(-530013), + COLOR_11(-8225962), + COLOR_12(-7566196), + COLOR_13(-5526613), + COLOR_14(-3684409), + COLOR_15(-9868951), + COLOR_16(-4980736), + COLOR_17(-2359296), + COLOR_18(-65536), + COLOR_19(-7929856), + COLOR_20(-9408332), + COLOR_21(-7697700), + COLOR_22(-6250241), + COLOR_23(-11250553), + COLOR_24(-9079435), + COLOR_25(-7303024), + COLOR_26(-5789785), + COLOR_27(-10987432), + COLOR_28(-16754944), + COLOR_29(-16750080), + COLOR_30(-16745472), + COLOR_31(-16760576), + COLOR_32(-4934476), + COLOR_33(-2302756), + COLOR_34(-1), + COLOR_35(-7895161), + COLOR_36(-9210239), + COLOR_37(-7499618), + COLOR_38(-5986120), + COLOR_39(-11118495), + COLOR_40(-9810890), + COLOR_41(-8233406), + COLOR_42(-6853299), + COLOR_43(-11585240), + COLOR_44(-11579569), + COLOR_45(-10461088), + COLOR_46(-9408400), + COLOR_47(-12895429), + COLOR_48(-13816396), + COLOR_49(-13158436), + COLOR_50(-12566273), + COLOR_51(-14605945), + COLOR_52(-10202062), + COLOR_53(-8690114), + COLOR_54(-7375032), + COLOR_55(-11845850), + COLOR_56(-4935252), + COLOR_57(-2303533), + COLOR_58(-779), + COLOR_59(-7895679), + COLOR_60(-6792924), + COLOR_61(-4559572), + COLOR_62(-2588877), + COLOR_63(-9288933), + COLOR_64(-8571496), + COLOR_65(-6733382), + COLOR_66(-5092136), + COLOR_67(-10606478), + COLOR_68(-12030824), + COLOR_69(-10976070), + COLOR_70(-10053160), + COLOR_71(-13217422), + COLOR_72(-6184668), + COLOR_73(-3816148), + COLOR_74(-1710797), + COLOR_75(-8816357), + COLOR_76(-10907631), + COLOR_77(-9588715), + COLOR_78(-8401895), + COLOR_79(-12358643), + COLOR_80(-5613196), + COLOR_81(-3117682), + COLOR_82(-884827), + COLOR_83(-8371369), + COLOR_84(-13290187), + COLOR_85(-12500671), + COLOR_86(-11776948), + COLOR_87(-14145496), + COLOR_88(-9671572), + COLOR_89(-8092540), + COLOR_90(-6710887), + COLOR_91(-11447983), + COLOR_92(-13280916), + COLOR_93(-12489340), + COLOR_94(-11763815), + COLOR_95(-14138543), + COLOR_96(-10933123), + COLOR_97(-9619815), + COLOR_98(-8437838), + COLOR_99(-12377762), + COLOR_100(-14404227), + COLOR_101(-13876839), + COLOR_102(-13415246), + COLOR_103(-14997410), + COLOR_104(-12045020), + COLOR_105(-10993364), + COLOR_106(-10073037), + COLOR_107(-13228005), + COLOR_108(-12035804), + COLOR_109(-10982100), + COLOR_110(-10059981), + COLOR_111(-13221093), + COLOR_112(-9690076), + COLOR_113(-8115156), + COLOR_114(-6737101), + COLOR_115(-11461861), + COLOR_116(-15658735), + COLOR_117(-15395563), + COLOR_118(-15132391), + COLOR_119(-15921907), + COLOR_120(-5199818), + COLOR_121(-2634430), + COLOR_122(-332211), + COLOR_123(-8094168), + COLOR_124(-12543338), + COLOR_125(-11551561), + COLOR_126(-10691627), + COLOR_127(-13601936), + COLOR_128(-13346124), + COLOR_129(-12620068), + COLOR_130(-11894529), + COLOR_131(-14204025), + COLOR_132(-16738008), + COLOR_133(-16729294), + COLOR_134(-16721606), + COLOR_135(-16748002), + COLOR_136(-10798046), + COLOR_137(-9483734), + COLOR_138(-8301007), + COLOR_139(-12309223), + COLOR_140(-11599616), + COLOR_141(-10485504), + COLOR_142(-9436672), + COLOR_143(-12910336), + COLOR_144(-7111567), + COLOR_145(-4941686), + COLOR_146(-3034719), + COLOR_147(-9544363), + COLOR_148(-9422567), + COLOR_149(-7780833), + COLOR_150(-6335964), + COLOR_151(-11261165), + COLOR_152(-9880244), + COLOR_153(-8369315), + COLOR_154(-6989972), + COLOR_155(-11653575), + COLOR_156(-11580319), + COLOR_157(-10461833), + COLOR_158(-9409398), + COLOR_159(-12895927), + COLOR_160(-8168167), + COLOR_161(-6262241), + COLOR_162(-4553436), + COLOR_163(-10336749), + COLOR_164(-12037595), + COLOR_165(-10984403), + COLOR_166(-9997003), + COLOR_167(-13222628), + COLOR_168(-9423305), + COLOR_169(-7716285), + COLOR_170(-6271666), + COLOR_171(-11261911), + COLOR_172(-14148584), + COLOR_173(-13556962), + COLOR_174(-13031133), + COLOR_175(-14805742), + COLOR_176(-10532027), + COLOR_177(-9151404), + COLOR_178(-7902366), + COLOR_179(-12109773), + COLOR_180(-12763072), + COLOR_181(-11841713), + COLOR_182(-11051940), + COLOR_183(-13750224), + COLOR_184(-11128002), + COLOR_185(-9879989), + COLOR_186(-8763048), + COLOR_187(-12573138), + COLOR_188(-13292736), + COLOR_189(-12503729), + COLOR_190(-11780516), + COLOR_191(-14147536), + COLOR_192(-13294824), + COLOR_193(-12506338), + COLOR_194(-11783645), + COLOR_195(-14149102), + COLOR_196(-13289187), + COLOR_197(-12499420), + COLOR_198(-11775446), + COLOR_199(-14144746), + COLOR_200(-10212832), + COLOR_201(-8768729), + COLOR_202(-7455698), + COLOR_203(-11854056), + COLOR_204(-15069429), + COLOR_205(-14740979), + COLOR_206(-14346736), + COLOR_207(-15529208), + COLOR_208(-8052446), + COLOR_209(-6084310), + COLOR_210(-4378575), + COLOR_211(-10217191), + COLOR_212(-9950140), + COLOR_213(-8440237), + COLOR_214(-7061663), + COLOR_215(-11656909), + COLOR_216(-12578540), + COLOR_217(-11594471), + COLOR_218(-10741475), + COLOR_219(-13628145), + COLOR_220(-15771554), + COLOR_221(-15569805), + COLOR_222(-15303034), + COLOR_223(-16039354), + COLOR_224(-14130078), + COLOR_225(-13469064), + COLOR_226(-12939636), + COLOR_227(-14791862), + COLOR_228(-12837077), + COLOR_229(-11918027), + COLOR_230(-11129794), + COLOR_231(-13822176), + COLOR_232(-15827107), + COLOR_233(-15623310), + COLOR_234(-15420283), + COLOR_235(-16097466), + COLOR_236(-12171706), + COLOR_237(-11119018), + COLOR_238(-10197916), + COLOR_239(-13355980), + COLOR_240(-6784153), + COLOR_241(-4548994), + COLOR_242(-2576493), + COLOR_243(-9282483), + COLOR_244(-10914455), + COLOR_245(-9596799), + COLOR_246(-8411242), + COLOR_247(-12363697); private static final MapColor[] VALUES = values(); private final int value; - MapColor(int red, int green, int blue) { - int alpha = 255; - if (red == -1 && green == -1 && blue == -1) - alpha = 0; // transparent - - this.value = ((alpha & 0xFF) << 24) | - ((red & 0xFF) << 16) | - ((green & 0xFF) << 8) | - (blue & 0xFF); + MapColor(int value) { + this.value = value; } public static MapColor fromId(int id) { @@ -297,4 +290,4 @@ public enum MapColor { public int getARGB() { return value; } -} \ No newline at end of file +} diff --git a/core/src/main/java/org/geysermc/geyser/registry/populator/ItemRegistryPopulator.java b/core/src/main/java/org/geysermc/geyser/registry/populator/ItemRegistryPopulator.java index c49ecad1d..a94cf132d 100644 --- a/core/src/main/java/org/geysermc/geyser/registry/populator/ItemRegistryPopulator.java +++ b/core/src/main/java/org/geysermc/geyser/registry/populator/ItemRegistryPopulator.java @@ -425,13 +425,7 @@ public class ItemRegistryPopulator { .javaItem(javaItem); if (mappingItem.getToolType() != null) { - if (mappingItem.getToolTier() != null) { - mappingBuilder = mappingBuilder.toolType(mappingItem.getToolType().intern()) - .toolTier(mappingItem.getToolTier().intern()); - } else { - mappingBuilder = mappingBuilder.toolType(mappingItem.getToolType().intern()) - .toolTier(""); - } + mappingBuilder = mappingBuilder.toolType(mappingItem.getToolType().intern()); } if (javaOnlyItems.contains(javaItem) || javaItem.defaultRarity() != Rarity.COMMON) { diff --git a/core/src/main/java/org/geysermc/geyser/registry/type/GeyserMappingItem.java b/core/src/main/java/org/geysermc/geyser/registry/type/GeyserMappingItem.java index ab8c52bf6..ae682e8b5 100644 --- a/core/src/main/java/org/geysermc/geyser/registry/type/GeyserMappingItem.java +++ b/core/src/main/java/org/geysermc/geyser/registry/type/GeyserMappingItem.java @@ -48,7 +48,6 @@ public class GeyserMappingItem { Integer firstBlockRuntimeId; Integer lastBlockRuntimeId; @JsonProperty("tool_type") String toolType; - @JsonProperty("tool_tier") String toolTier; @JsonProperty("armor_type") String armorType; @JsonProperty("protection_value") int protectionValue; @JsonProperty("is_edible") boolean edible = false; From be77e6b2bfefd686f51a676030eb6d084452463f Mon Sep 17 00:00:00 2001 From: onebeastchris Date: Wed, 4 Dec 2024 00:01:54 +0800 Subject: [PATCH 08/31] Load default item components --- .../java/org/geysermc/geyser/item/Items.java | 5 -- .../org/geysermc/geyser/item/type/Item.java | 12 +-- .../geysermc/geyser/registry/Registries.java | 5 ++ .../DataComponentRegistryPopulator.java | 89 +++++++++++++++++++ .../translator/item/ItemTranslator.java | 5 +- 5 files changed, 101 insertions(+), 15 deletions(-) create mode 100644 core/src/main/java/org/geysermc/geyser/registry/populator/DataComponentRegistryPopulator.java diff --git a/core/src/main/java/org/geysermc/geyser/item/Items.java b/core/src/main/java/org/geysermc/geyser/item/Items.java index 98450f476..664c956c3 100644 --- a/core/src/main/java/org/geysermc/geyser/item/Items.java +++ b/core/src/main/java/org/geysermc/geyser/item/Items.java @@ -66,11 +66,6 @@ import static org.geysermc.geyser.item.type.Item.builder; */ @SuppressWarnings("unused") public final class Items { - - static { - // Load data components here - } - public static final Item AIR = register(new Item("air", builder())); public static final Item STONE = register(new BlockItem(builder(), Blocks.STONE)); public static final Item GRANITE = register(new BlockItem(builder(), Blocks.GRANITE)); diff --git a/core/src/main/java/org/geysermc/geyser/item/type/Item.java b/core/src/main/java/org/geysermc/geyser/item/type/Item.java index fde742efa..9b2603284 100644 --- a/core/src/main/java/org/geysermc/geyser/item/type/Item.java +++ b/core/src/main/java/org/geysermc/geyser/item/type/Item.java @@ -40,6 +40,7 @@ import org.geysermc.geyser.item.Items; import org.geysermc.geyser.item.components.Rarity; import org.geysermc.geyser.item.enchantment.Enchantment; import org.geysermc.geyser.level.block.type.Block; +import org.geysermc.geyser.registry.Registries; import org.geysermc.geyser.registry.type.ItemMapping; import org.geysermc.geyser.registry.type.ItemMappings; import org.geysermc.geyser.session.GeyserSession; @@ -65,12 +66,9 @@ public class Item { private final int attackDamage; private final DataComponents baseComponents; // unmodifiable - private final List enchantmentGlintPresent = List.of(Items.ENCHANTED_GOLDEN_APPLE, Items.EXPERIENCE_BOTTLE, Items.WRITTEN_BOOK, - Items.NETHER_STAR, Items.ENCHANTED_BOOK, Items.END_CRYSTAL); - public Item(String javaIdentifier, Builder builder) { this.javaIdentifier = MinecraftKey.key(javaIdentifier); - this.baseComponents = builder.components; + this.baseComponents = builder.components == null ? Registries.DEFAULT_DATA_COMPONENTS.get(javaId) : builder.components; this.attackDamage = builder.attackDamage; } @@ -297,7 +295,7 @@ public class Item { } public static Builder builder() { - return new Builder().components(new DataComponents(ImmutableMap.of())); // TODO actually set components here + return new Builder(); } public static final class Builder { @@ -315,10 +313,6 @@ public class Item { return this; } - public DataComponents components() { - return new DataComponents(ImmutableMap.copyOf(components.getDataComponents())); - } - private Builder() { } } diff --git a/core/src/main/java/org/geysermc/geyser/registry/Registries.java b/core/src/main/java/org/geysermc/geyser/registry/Registries.java index 61bb42454..fc41275ae 100644 --- a/core/src/main/java/org/geysermc/geyser/registry/Registries.java +++ b/core/src/main/java/org/geysermc/geyser/registry/Registries.java @@ -47,6 +47,7 @@ import org.geysermc.geyser.registry.loader.RegistryLoaders; import org.geysermc.geyser.registry.loader.SoundEventsRegistryLoader; import org.geysermc.geyser.registry.loader.SoundRegistryLoader; import org.geysermc.geyser.registry.loader.SoundTranslatorRegistryLoader; +import org.geysermc.geyser.registry.populator.DataComponentRegistryPopulator; import org.geysermc.geyser.registry.populator.ItemRegistryPopulator; import org.geysermc.geyser.registry.populator.PacketRegistryPopulator; import org.geysermc.geyser.registry.populator.TagRegistryPopulator; @@ -60,6 +61,7 @@ import org.geysermc.geyser.translator.sound.SoundInteractionTranslator; import org.geysermc.geyser.translator.sound.SoundTranslator; import org.geysermc.mcprotocollib.network.packet.Packet; import org.geysermc.mcprotocollib.protocol.data.game.entity.type.EntityType; +import org.geysermc.mcprotocollib.protocol.data.game.item.component.DataComponents; import org.geysermc.mcprotocollib.protocol.data.game.level.block.BlockEntityType; import org.geysermc.mcprotocollib.protocol.data.game.level.event.LevelEvent; import org.geysermc.mcprotocollib.protocol.data.game.level.particle.ParticleType; @@ -139,6 +141,8 @@ public final class Registries { */ public static final SimpleMappedRegistry JAVA_ITEM_IDENTIFIERS = SimpleMappedRegistry.create(RegistryLoaders.empty(Object2ObjectOpenHashMap::new)); + public static final ListRegistry DEFAULT_DATA_COMPONENTS = ListRegistry.create(RegistryLoaders.empty(ArrayList::new)); + /** * A versioned registry which holds {@link ItemMappings} for each version. These item mappings contain * primarily Bedrock version-specific data. @@ -209,6 +213,7 @@ public final class Registries { public static void populate() { PacketRegistryPopulator.populate(); + DataComponentRegistryPopulator.populate(); ItemRegistryPopulator.populate(); TagRegistryPopulator.populate(); diff --git a/core/src/main/java/org/geysermc/geyser/registry/populator/DataComponentRegistryPopulator.java b/core/src/main/java/org/geysermc/geyser/registry/populator/DataComponentRegistryPopulator.java new file mode 100644 index 000000000..0c89760b1 --- /dev/null +++ b/core/src/main/java/org/geysermc/geyser/registry/populator/DataComponentRegistryPopulator.java @@ -0,0 +1,89 @@ +/* + * Copyright (c) 2024 GeyserMC. http://geysermc.org + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + * + * @author GeyserMC + * @link https://github.com/GeyserMC/Geyser + */ + +package org.geysermc.geyser.registry.populator; + +import com.google.common.collect.ImmutableMap; +import com.google.gson.JsonArray; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParser; +import io.netty.buffer.ByteBuf; +import io.netty.buffer.Unpooled; +import it.unimi.dsi.fastutil.objects.ObjectArrayList; +import org.geysermc.geyser.GeyserBootstrap; +import org.geysermc.geyser.GeyserImpl; +import org.geysermc.geyser.registry.Registries; +import org.geysermc.mcprotocollib.protocol.codec.MinecraftCodecHelper; +import org.geysermc.mcprotocollib.protocol.data.game.item.component.DataComponent; +import org.geysermc.mcprotocollib.protocol.data.game.item.component.DataComponentType; +import org.geysermc.mcprotocollib.protocol.data.game.item.component.DataComponents; +import org.geysermc.mcprotocollib.protocol.data.game.item.component.ItemCodecHelper; + +import java.io.InputStream; +import java.io.InputStreamReader; +import java.util.Base64; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public final class DataComponentRegistryPopulator { + + public static void populate() { + GeyserBootstrap bootstrap = GeyserImpl.getInstance().getBootstrap(); + List defaultComponents; + try (InputStream stream = bootstrap.getResourceOrThrow("mappings/item_data_components.json")) { + JsonElement rootElement = JsonParser.parseReader(new InputStreamReader(stream)); + JsonArray jsonArray = rootElement.getAsJsonArray(); + + defaultComponents = new ObjectArrayList<>(jsonArray.size()); + + for (JsonElement element : jsonArray) { + JsonObject entryObject = element.getAsJsonObject(); + JsonObject components = entryObject.getAsJsonObject("components"); + + Map, DataComponent> map = new HashMap<>(); + + for (Map.Entry componentEntry : components.entrySet()) { + String encodedValue = componentEntry.getValue().getAsString(); + byte[] bytes = Base64.getDecoder().decode(encodedValue); + ByteBuf buf = Unpooled.wrappedBuffer(bytes); + MinecraftCodecHelper helper = new MinecraftCodecHelper(); + int varInt = helper.readVarInt(buf); + DataComponentType dataComponentType = DataComponentType.from(varInt); + DataComponent dataComponent = dataComponentType.readDataComponent(ItemCodecHelper.INSTANCE, buf); + + map.put(dataComponentType, dataComponent); + } + + defaultComponents.add(new DataComponents(ImmutableMap.copyOf(map))); + } + } catch (Exception e) { + throw new AssertionError("Unable to load or parse components", e); + } + + Registries.DEFAULT_DATA_COMPONENTS.set(defaultComponents); + } +} diff --git a/core/src/main/java/org/geysermc/geyser/translator/item/ItemTranslator.java b/core/src/main/java/org/geysermc/geyser/translator/item/ItemTranslator.java index 376957d67..54bbe086c 100644 --- a/core/src/main/java/org/geysermc/geyser/translator/item/ItemTranslator.java +++ b/core/src/main/java/org/geysermc/geyser/translator/item/ItemTranslator.java @@ -102,6 +102,9 @@ public final class ItemTranslator { SLOT_NAMES.put(ItemAttributeModifiers.EquipmentSlotGroup.BODY, "body"); } + private final static List GLINT_PRESENT = List.of(Items.ENCHANTED_GOLDEN_APPLE, Items.EXPERIENCE_BOTTLE, Items.WRITTEN_BOOK, + Items.NETHER_STAR, Items.ENCHANTED_BOOK, Items.END_CRYSTAL); + private ItemTranslator() { } @@ -180,7 +183,7 @@ public final class ItemTranslator { } // Add enchantment override. We can't remove it - enchantments would stop showing - but we can add it. - if (components.getOrDefault(DataComponentType.ENCHANTMENT_GLINT_OVERRIDE, false)) { + if (components.getOrDefault(DataComponentType.ENCHANTMENT_GLINT_OVERRIDE, false) && !GLINT_PRESENT.contains(javaItem)) { NbtMapBuilder nbtMapBuilder = nbtBuilder.getOrCreateNbt(); nbtMapBuilder.putIfAbsent("ench", NbtList.EMPTY); } From d114ab9ad1e71098c7e9956e1f2ca475eff9d291 Mon Sep 17 00:00:00 2001 From: onebeastchris Date: Wed, 4 Dec 2024 00:43:06 +0800 Subject: [PATCH 09/31] send ServerboundPlayerLoadedPacket, update built-in-tags --- .../geyser/session/cache/tags/BlockTag.java | 6 ++-- .../geyser/session/cache/tags/ItemTag.java | 32 +++++++++++++++++-- ...SetLocalPlayerAsInitializedTranslator.java | 2 ++ 3 files changed, 35 insertions(+), 5 deletions(-) diff --git a/core/src/main/java/org/geysermc/geyser/session/cache/tags/BlockTag.java b/core/src/main/java/org/geysermc/geyser/session/cache/tags/BlockTag.java index 6ad666780..59d301a89 100644 --- a/core/src/main/java/org/geysermc/geyser/session/cache/tags/BlockTag.java +++ b/core/src/main/java/org/geysermc/geyser/session/cache/tags/BlockTag.java @@ -56,6 +56,7 @@ public final class BlockTag { public static final Tag OVERWORLD_NATURAL_LOGS = create("overworld_natural_logs"); public static final Tag LOGS = create("logs"); public static final Tag DARK_OAK_LOGS = create("dark_oak_logs"); + public static final Tag PALE_OAK_LOGS = create("pale_oak_logs"); public static final Tag OAK_LOGS = create("oak_logs"); public static final Tag BIRCH_LOGS = create("birch_logs"); public static final Tag ACACIA_LOGS = create("acacia_logs"); @@ -80,8 +81,8 @@ public final class BlockTag { public static final Tag SMALL_FLOWERS = create("small_flowers"); public static final Tag BEDS = create("beds"); public static final Tag FENCES = create("fences"); - public static final Tag TALL_FLOWERS = create("tall_flowers"); public static final Tag FLOWERS = create("flowers"); + public static final Tag BEE_ATTRACTIVE = create("bee_attractive"); public static final Tag PIGLIN_REPELLENTS = create("piglin_repellents"); public static final Tag GOLD_ORES = create("gold_ores"); public static final Tag IRON_ORES = create("iron_ores"); @@ -97,6 +98,7 @@ public final class BlockTag { public static final Tag BADLANDS_TERRACOTTA = create("badlands_terracotta"); public static final Tag CONCRETE_POWDER = create("concrete_powder"); public static final Tag COMPLETES_FIND_TREE_TUTORIAL = create("completes_find_tree_tutorial"); + public static final Tag SHULKER_BOXES = create("shulker_boxes"); public static final Tag FLOWER_POTS = create("flower_pots"); public static final Tag ENDERMAN_HOLDABLE = create("enderman_holdable"); public static final Tag ICE = create("ice"); @@ -130,7 +132,6 @@ public final class BlockTag { public static final Tag WALL_POST_OVERRIDE = create("wall_post_override"); public static final Tag CLIMBABLE = create("climbable"); public static final Tag FALL_DAMAGE_RESETTING = create("fall_damage_resetting"); - public static final Tag SHULKER_BOXES = create("shulker_boxes"); public static final Tag HOGLIN_REPELLENTS = create("hoglin_repellents"); public static final Tag SOUL_FIRE_BASE_BLOCKS = create("soul_fire_base_blocks"); public static final Tag STRIDER_WARM_BLOCKS = create("strider_warm_blocks"); @@ -198,6 +199,7 @@ public final class BlockTag { public static final Tag FOXES_SPAWNABLE_ON = create("foxes_spawnable_on"); public static final Tag WOLVES_SPAWNABLE_ON = create("wolves_spawnable_on"); public static final Tag FROGS_SPAWNABLE_ON = create("frogs_spawnable_on"); + public static final Tag BATS_SPAWNABLE_ON = create("bats_spawnable_on"); public static final Tag AZALEA_GROWS_ON = create("azalea_grows_on"); public static final Tag CONVERTABLE_TO_MUD = create("convertable_to_mud"); public static final Tag MANGROVE_LOGS_CAN_GROW_THROUGH = create("mangrove_logs_can_grow_through"); diff --git a/core/src/main/java/org/geysermc/geyser/session/cache/tags/ItemTag.java b/core/src/main/java/org/geysermc/geyser/session/cache/tags/ItemTag.java index 4f42f146a..e2f4f2db3 100644 --- a/core/src/main/java/org/geysermc/geyser/session/cache/tags/ItemTag.java +++ b/core/src/main/java/org/geysermc/geyser/session/cache/tags/ItemTag.java @@ -53,6 +53,7 @@ public final class ItemTag { public static final Tag LOGS_THAT_BURN = create("logs_that_burn"); public static final Tag LOGS = create("logs"); public static final Tag DARK_OAK_LOGS = create("dark_oak_logs"); + public static final Tag PALE_OAK_LOGS = create("pale_oak_logs"); public static final Tag OAK_LOGS = create("oak_logs"); public static final Tag BIRCH_LOGS = create("birch_logs"); public static final Tag ACACIA_LOGS = create("acacia_logs"); @@ -77,11 +78,13 @@ public final class ItemTag { public static final Tag SMALL_FLOWERS = create("small_flowers"); public static final Tag BEDS = create("beds"); public static final Tag FENCES = create("fences"); - public static final Tag TALL_FLOWERS = create("tall_flowers"); - public static final Tag FLOWERS = create("flowers"); public static final Tag PIGLIN_REPELLENTS = create("piglin_repellents"); public static final Tag PIGLIN_LOVED = create("piglin_loved"); public static final Tag IGNORED_BY_PIGLIN_BABIES = create("ignored_by_piglin_babies"); + public static final Tag PIGLIN_SAFE_ARMOR = create("piglin_safe_armor"); + public static final Tag DUPLICATES_ALLAYS = create("duplicates_allays"); + public static final Tag BREWING_FUEL = create("brewing_fuel"); + public static final Tag SHULKER_BOXES = create("shulker_boxes"); public static final Tag MEAT = create("meat"); public static final Tag SNIFFER_FOOD = create("sniffer_food"); public static final Tag PIGLIN_FOOD = create("piglin_food"); @@ -103,6 +106,7 @@ public final class ItemTag { public static final Tag LLAMA_TEMPT_ITEMS = create("llama_tempt_items"); public static final Tag OCELOT_FOOD = create("ocelot_food"); public static final Tag PANDA_FOOD = create("panda_food"); + public static final Tag PANDA_EATS_FROM_GROUND = create("panda_eats_from_ground"); public static final Tag PIG_FOOD = create("pig_food"); public static final Tag RABBIT_FOOD = create("rabbit_food"); public static final Tag STRIDER_FOOD = create("strider_food"); @@ -135,7 +139,20 @@ public final class ItemTag { public static final Tag LECTERN_BOOKS = create("lectern_books"); public static final Tag BOOKSHELF_BOOKS = create("bookshelf_books"); public static final Tag BEACON_PAYMENT_ITEMS = create("beacon_payment_items"); + public static final Tag WOODEN_TOOL_MATERIALS = create("wooden_tool_materials"); public static final Tag STONE_TOOL_MATERIALS = create("stone_tool_materials"); + public static final Tag IRON_TOOL_MATERIALS = create("iron_tool_materials"); + public static final Tag GOLD_TOOL_MATERIALS = create("gold_tool_materials"); + public static final Tag DIAMOND_TOOL_MATERIALS = create("diamond_tool_materials"); + public static final Tag NETHERITE_TOOL_MATERIALS = create("netherite_tool_materials"); + public static final Tag REPAIRS_LEATHER_ARMOR = create("repairs_leather_armor"); + public static final Tag REPAIRS_CHAIN_ARMOR = create("repairs_chain_armor"); + public static final Tag REPAIRS_IRON_ARMOR = create("repairs_iron_armor"); + public static final Tag REPAIRS_GOLD_ARMOR = create("repairs_gold_armor"); + public static final Tag REPAIRS_DIAMOND_ARMOR = create("repairs_diamond_armor"); + public static final Tag REPAIRS_NETHERITE_ARMOR = create("repairs_netherite_armor"); + public static final Tag REPAIRS_TURTLE_HELMET = create("repairs_turtle_helmet"); + public static final Tag REPAIRS_WOLF_ARMOR = create("repairs_wolf_armor"); public static final Tag STONE_CRAFTING_MATERIALS = create("stone_crafting_materials"); public static final Tag FREEZE_IMMUNE_WEARABLES = create("freeze_immune_wearables"); public static final Tag DAMPENS_VIBRATIONS = create("dampens_vibrations"); @@ -151,7 +168,6 @@ public final class ItemTag { public static final Tag SKULLS = create("skulls"); public static final Tag TRIMMABLE_ARMOR = create("trimmable_armor"); public static final Tag TRIM_MATERIALS = create("trim_materials"); - public static final Tag TRIM_TEMPLATES = create("trim_templates"); public static final Tag DECORATED_POT_SHERDS = create("decorated_pot_sherds"); public static final Tag DECORATED_POT_INGREDIENTS = create("decorated_pot_ingredients"); public static final Tag SWORDS = create("swords"); @@ -161,7 +177,15 @@ public final class ItemTag { public static final Tag SHOVELS = create("shovels"); public static final Tag BREAKS_DECORATED_POTS = create("breaks_decorated_pots"); public static final Tag VILLAGER_PLANTABLE_SEEDS = create("villager_plantable_seeds"); + public static final Tag VILLAGER_PICKS_UP = create("villager_picks_up"); public static final Tag DYEABLE = create("dyeable"); + public static final Tag FURNACE_MINECART_FUEL = create("furnace_minecart_fuel"); + public static final Tag BUNDLES = create("bundles"); + public static final Tag SKELETON_PREFERRED_WEAPONS = create("skeleton_preferred_weapons"); + public static final Tag DROWNED_PREFERRED_WEAPONS = create("drowned_preferred_weapons"); + public static final Tag PIGLIN_PREFERRED_WEAPONS = create("piglin_preferred_weapons"); + public static final Tag PILLAGER_PREFERRED_WEAPONS = create("pillager_preferred_weapons"); + public static final Tag WITHER_SKELETON_DISLIKED_WEAPONS = create("wither_skeleton_disliked_weapons"); public static final Tag ENCHANTABLE_FOOT_ARMOR = create("enchantable/foot_armor"); public static final Tag ENCHANTABLE_LEG_ARMOR = create("enchantable/leg_armor"); public static final Tag ENCHANTABLE_CHEST_ARMOR = create("enchantable/chest_armor"); @@ -181,6 +205,8 @@ public final class ItemTag { public static final Tag ENCHANTABLE_CROSSBOW = create("enchantable/crossbow"); public static final Tag ENCHANTABLE_VANISHING = create("enchantable/vanishing"); public static final Tag ENCHANTABLE_MACE = create("enchantable/mace"); + public static final Tag MAP_INVISIBILITY_EQUIPMENT = create("map_invisibility_equipment"); + public static final Tag GAZE_DISGUISE_EQUIPMENT = create("gaze_disguise_equipment"); private ItemTag() {} diff --git a/core/src/main/java/org/geysermc/geyser/translator/protocol/bedrock/BedrockSetLocalPlayerAsInitializedTranslator.java b/core/src/main/java/org/geysermc/geyser/translator/protocol/bedrock/BedrockSetLocalPlayerAsInitializedTranslator.java index 47c5bfd35..556d8cd8d 100644 --- a/core/src/main/java/org/geysermc/geyser/translator/protocol/bedrock/BedrockSetLocalPlayerAsInitializedTranslator.java +++ b/core/src/main/java/org/geysermc/geyser/translator/protocol/bedrock/BedrockSetLocalPlayerAsInitializedTranslator.java @@ -34,6 +34,7 @@ import org.geysermc.geyser.translator.protocol.PacketTranslator; import org.geysermc.geyser.translator.protocol.Translator; import org.geysermc.geyser.util.InventoryUtils; import org.geysermc.geyser.util.LoginEncryptionUtils; +import org.geysermc.mcprotocollib.protocol.packet.ingame.serverbound.ServerboundPlayerLoadedPacket; @Translator(packet = SetLocalPlayerAsInitializedPacket.class) public class BedrockSetLocalPlayerAsInitializedTranslator extends PacketTranslator { @@ -72,6 +73,7 @@ public class BedrockSetLocalPlayerAsInitializedTranslator extends PacketTranslat session.getFormCache().resendAllForms(); GeyserImpl.getInstance().eventBus().fire(new SessionJoinEvent(session)); + session.sendDownstreamGamePacket(ServerboundPlayerLoadedPacket.INSTANCE); } } } From db246ffb3b98bf367fbc1c964f304bc75b404143 Mon Sep 17 00:00:00 2001 From: onebeastchris Date: Wed, 4 Dec 2024 01:28:29 +0800 Subject: [PATCH 10/31] Update Properties/Blocks, re-include neoforge, target 1.21.4 release --- .../GeyserSpigotNativeWorldManager.java | 1 - .../geysermc/geyser/level/block/Blocks.java | 73 +++++++++++++------ .../level/block/property/Properties.java | 13 ++-- .../inventory/AnvilInventoryTranslator.java | 2 +- .../inventory/BaseInventoryTranslator.java | 2 +- .../inventory/BeaconInventoryTranslator.java | 2 +- .../inventory/BrewingInventoryTranslator.java | 4 +- .../CartographyInventoryTranslator.java | 2 +- .../inventory/CrafterInventoryTranslator.java | 2 +- .../CraftingInventoryTranslator.java | 4 +- .../EnchantingInventoryTranslator.java | 4 +- .../GrindstoneInventoryTranslator.java | 2 +- .../inventory/LoomInventoryTranslator.java | 2 +- .../MerchantInventoryTranslator.java | 2 +- .../inventory/OldSmithingTableTranslator.java | 4 +- .../inventory/PlayerInventoryTranslator.java | 8 +- .../SmithingInventoryTranslator.java | 2 +- .../StonecutterInventoryTranslator.java | 2 +- .../ChestedHorseInventoryTranslator.java | 4 +- .../horse/HorseInventoryTranslator.java | 2 +- .../entity/JavaSetEquipmentTranslator.java | 4 +- .../org/geysermc/geyser/util/BlockUtils.java | 49 +------------ gradle/libs.versions.toml | 6 +- settings.gradle.kts | 4 +- 24 files changed, 94 insertions(+), 106 deletions(-) diff --git a/bootstrap/spigot/src/main/java/org/geysermc/geyser/platform/spigot/world/manager/GeyserSpigotNativeWorldManager.java b/bootstrap/spigot/src/main/java/org/geysermc/geyser/platform/spigot/world/manager/GeyserSpigotNativeWorldManager.java index c99ca4e78..96ae41933 100644 --- a/bootstrap/spigot/src/main/java/org/geysermc/geyser/platform/spigot/world/manager/GeyserSpigotNativeWorldManager.java +++ b/bootstrap/spigot/src/main/java/org/geysermc/geyser/platform/spigot/world/manager/GeyserSpigotNativeWorldManager.java @@ -33,7 +33,6 @@ import org.checkerframework.checker.nullness.qual.Nullable; import org.geysermc.geyser.adapters.WorldAdapter; import org.geysermc.geyser.adapters.paper.PaperAdapters; import org.geysermc.geyser.adapters.spigot.SpigotAdapters; -import org.geysermc.geyser.level.block.BlockStateValues; import org.geysermc.geyser.level.block.type.Block; import org.geysermc.geyser.session.GeyserSession; diff --git a/core/src/main/java/org/geysermc/geyser/level/block/Blocks.java b/core/src/main/java/org/geysermc/geyser/level/block/Blocks.java index 5db38c559..7dc526ee3 100644 --- a/core/src/main/java/org/geysermc/geyser/level/block/Blocks.java +++ b/core/src/main/java/org/geysermc/geyser/level/block/Blocks.java @@ -398,9 +398,10 @@ public final class Blocks { .booleanState(WEST))); public static final Block SOUL_FIRE = register(new Block("soul_fire", builder().pushReaction(PistonBehavior.DESTROY))); public static final Block SPAWNER = register(new SpawnerBlock("spawner", builder().setBlockEntity(BlockEntityType.MOB_SPAWNER).requiresCorrectToolForDrops().destroyTime(5.0f))); - public static final Block CREAKING_HEART = register(new Block("creaking_heart", builder().setBlockEntity(BlockEntityType.CREAKING_HEART).destroyTime(5.0f) + public static final Block CREAKING_HEART = register(new Block("creaking_heart", builder().setBlockEntity(BlockEntityType.CREAKING_HEART).destroyTime(10.0f) + .booleanState(ACTIVE) .enumState(AXIS, Axis.VALUES) - .enumState(CREAKING))); + .booleanState(NATURAL))); public static final Block OAK_STAIRS = register(new Block("oak_stairs", builder().destroyTime(2.0f) .enumState(HORIZONTAL_FACING, Direction.NORTH, Direction.SOUTH, Direction.WEST, Direction.EAST) .enumState(HALF) @@ -592,9 +593,9 @@ public final class Blocks { .enumState(ATTACH_FACE) .enumState(HORIZONTAL_FACING, Direction.NORTH, Direction.SOUTH, Direction.WEST, Direction.EAST) .booleanState(POWERED))); - public static final Block STONE_PRESSURE_PLATE = register(new Block("stone_pressure_plate", builder().requiresCorrectToolForDrops().destroyTime(0.5f).pushReaction(PistonBehavior.DESTROY) + public static final Block STONE_PRESSURE_PLATE = register(new Block("stone_pressure_plate", builder().destroyTime(0.5f).pushReaction(PistonBehavior.DESTROY) .booleanState(POWERED))); - public static final Block IRON_DOOR = register(new DoorBlock("iron_door", builder().requiresCorrectToolForDrops().destroyTime(5.0f).pushReaction(PistonBehavior.DESTROY) + public static final Block IRON_DOOR = register(new DoorBlock("iron_door", builder().destroyTime(5.0f).pushReaction(PistonBehavior.DESTROY) .enumState(HORIZONTAL_FACING, Direction.NORTH, Direction.SOUTH, Direction.WEST, Direction.EAST) .enumState(DOUBLE_BLOCK_HALF) .enumState(DOOR_HINGE) @@ -822,6 +823,14 @@ public final class Blocks { .booleanState(UP) .booleanState(WATERLOGGED) .booleanState(WEST))); + public static final Block RESIN_CLUMP = register(new Block("resin_clump", builder().pushReaction(PistonBehavior.DESTROY) + .booleanState(DOWN) + .booleanState(EAST) + .booleanState(NORTH) + .booleanState(SOUTH) + .booleanState(UP) + .booleanState(WATERLOGGED) + .booleanState(WEST))); public static final Block OAK_FENCE_GATE = register(new Block("oak_fence_gate", builder().destroyTime(2.0f) .enumState(HORIZONTAL_FACING, Direction.NORTH, Direction.SOUTH, Direction.WEST, Direction.EAST) .booleanState(IN_WALL) @@ -845,6 +854,24 @@ public final class Blocks { public static final Block MYCELIUM = register(new Block("mycelium", builder().destroyTime(0.6f) .booleanState(SNOWY))); public static final Block LILY_PAD = register(new Block("lily_pad", builder().pushReaction(PistonBehavior.DESTROY))); + public static final Block RESIN_BLOCK = register(new Block("resin_block", builder())); + public static final Block RESIN_BRICKS = register(new Block("resin_bricks", builder().requiresCorrectToolForDrops().destroyTime(1.5f))); + public static final Block RESIN_BRICK_STAIRS = register(new Block("resin_brick_stairs", builder().requiresCorrectToolForDrops().destroyTime(1.5f) + .enumState(HORIZONTAL_FACING, Direction.NORTH, Direction.SOUTH, Direction.WEST, Direction.EAST) + .enumState(HALF) + .enumState(STAIRS_SHAPE) + .booleanState(WATERLOGGED))); + public static final Block RESIN_BRICK_SLAB = register(new Block("resin_brick_slab", builder().requiresCorrectToolForDrops().destroyTime(1.5f) + .enumState(SLAB_TYPE) + .booleanState(WATERLOGGED))); + public static final Block RESIN_BRICK_WALL = register(new Block("resin_brick_wall", builder().requiresCorrectToolForDrops().destroyTime(1.5f) + .enumState(EAST_WALL) + .enumState(NORTH_WALL) + .enumState(SOUTH_WALL) + .booleanState(UP) + .booleanState(WATERLOGGED) + .enumState(WEST_WALL))); + public static final Block CHISELED_RESIN_BRICKS = register(new Block("chiseled_resin_bricks", builder().requiresCorrectToolForDrops().destroyTime(1.5f))); public static final Block NETHER_BRICKS = register(new Block("nether_bricks", builder().requiresCorrectToolForDrops().destroyTime(2.0f))); public static final Block NETHER_BRICK_FENCE = register(new Block("nether_brick_fence", builder().requiresCorrectToolForDrops().destroyTime(2.0f) .booleanState(EAST) @@ -860,7 +887,7 @@ public final class Blocks { public static final Block NETHER_WART = register(new Block("nether_wart", builder().pushReaction(PistonBehavior.DESTROY) .intState(AGE_3))); public static final Block ENCHANTING_TABLE = register(new Block("enchanting_table", builder().setBlockEntity(BlockEntityType.ENCHANTING_TABLE).requiresCorrectToolForDrops().destroyTime(5.0f))); - public static final Block BREWING_STAND = register(new Block("brewing_stand", builder().setBlockEntity(BlockEntityType.BREWING_STAND).requiresCorrectToolForDrops().destroyTime(0.5f) + public static final Block BREWING_STAND = register(new Block("brewing_stand", builder().setBlockEntity(BlockEntityType.BREWING_STAND).destroyTime(0.5f) .booleanState(HAS_BOTTLE_0) .booleanState(HAS_BOTTLE_1) .booleanState(HAS_BOTTLE_2))); @@ -888,7 +915,7 @@ public final class Blocks { .booleanState(WATERLOGGED))); public static final Block EMERALD_ORE = register(new Block("emerald_ore", builder().requiresCorrectToolForDrops().destroyTime(3.0f))); public static final Block DEEPSLATE_EMERALD_ORE = register(new Block("deepslate_emerald_ore", builder().requiresCorrectToolForDrops().destroyTime(4.5f))); - public static final Block ENDER_CHEST = register(new Block("ender_chest", builder().setBlockEntity(BlockEntityType.ENDER_CHEST).requiresCorrectToolForDrops().destroyTime(22.5f) + public static final Block ENDER_CHEST = register(new Block("ender_chest", builder().setBlockEntity(BlockEntityType.ENDER_CHEST).destroyTime(22.5f) .enumState(HORIZONTAL_FACING, Direction.NORTH, Direction.SOUTH, Direction.WEST, Direction.EAST) .booleanState(WATERLOGGED))); public static final Block TRIPWIRE_HOOK = register(new Block("tripwire_hook", builder().pushReaction(PistonBehavior.DESTROY) @@ -1062,9 +1089,9 @@ public final class Blocks { .enumState(HORIZONTAL_FACING, Direction.NORTH, Direction.SOUTH, Direction.WEST, Direction.EAST) .enumState(CHEST_TYPE, ChestType.VALUES) .booleanState(WATERLOGGED))); - public static final Block LIGHT_WEIGHTED_PRESSURE_PLATE = register(new Block("light_weighted_pressure_plate", builder().requiresCorrectToolForDrops().destroyTime(0.5f).pushReaction(PistonBehavior.DESTROY) + public static final Block LIGHT_WEIGHTED_PRESSURE_PLATE = register(new Block("light_weighted_pressure_plate", builder().destroyTime(0.5f).pushReaction(PistonBehavior.DESTROY) .intState(POWER))); - public static final Block HEAVY_WEIGHTED_PRESSURE_PLATE = register(new Block("heavy_weighted_pressure_plate", builder().requiresCorrectToolForDrops().destroyTime(0.5f).pushReaction(PistonBehavior.DESTROY) + public static final Block HEAVY_WEIGHTED_PRESSURE_PLATE = register(new Block("heavy_weighted_pressure_plate", builder().destroyTime(0.5f).pushReaction(PistonBehavior.DESTROY) .intState(POWER))); public static final Block COMPARATOR = register(new Block("comparator", builder().setBlockEntity(BlockEntityType.COMPARATOR).pushReaction(PistonBehavior.DESTROY) .enumState(HORIZONTAL_FACING, Direction.NORTH, Direction.SOUTH, Direction.WEST, Direction.EAST) @@ -2096,14 +2123,14 @@ public final class Blocks { public static final Block SMITHING_TABLE = register(new Block("smithing_table", builder().destroyTime(2.5f))); public static final Block STONECUTTER = register(new Block("stonecutter", builder().requiresCorrectToolForDrops().destroyTime(3.5f) .enumState(HORIZONTAL_FACING, Direction.NORTH, Direction.SOUTH, Direction.WEST, Direction.EAST))); - public static final Block BELL = register(new Block("bell", builder().setBlockEntity(BlockEntityType.BELL).requiresCorrectToolForDrops().destroyTime(5.0f).pushReaction(PistonBehavior.DESTROY) + public static final Block BELL = register(new Block("bell", builder().setBlockEntity(BlockEntityType.BELL).destroyTime(5.0f).pushReaction(PistonBehavior.DESTROY) .enumState(BELL_ATTACHMENT) .enumState(HORIZONTAL_FACING, Direction.NORTH, Direction.SOUTH, Direction.WEST, Direction.EAST) .booleanState(POWERED))); - public static final Block LANTERN = register(new Block("lantern", builder().requiresCorrectToolForDrops().destroyTime(3.5f).pushReaction(PistonBehavior.DESTROY) + public static final Block LANTERN = register(new Block("lantern", builder().destroyTime(3.5f).pushReaction(PistonBehavior.DESTROY) .booleanState(HANGING) .booleanState(WATERLOGGED))); - public static final Block SOUL_LANTERN = register(new Block("soul_lantern", builder().requiresCorrectToolForDrops().destroyTime(3.5f).pushReaction(PistonBehavior.DESTROY) + public static final Block SOUL_LANTERN = register(new Block("soul_lantern", builder().destroyTime(3.5f).pushReaction(PistonBehavior.DESTROY) .booleanState(HANGING) .booleanState(WATERLOGGED))); public static final Block CAMPFIRE = register(new Block("campfire", builder().setBlockEntity(BlockEntityType.CAMPFIRE).destroyTime(2.0f) @@ -2307,7 +2334,7 @@ public final class Blocks { public static final Block POLISHED_BLACKSTONE_SLAB = register(new Block("polished_blackstone_slab", builder().requiresCorrectToolForDrops().destroyTime(2.0f) .enumState(SLAB_TYPE) .booleanState(WATERLOGGED))); - public static final Block POLISHED_BLACKSTONE_PRESSURE_PLATE = register(new Block("polished_blackstone_pressure_plate", builder().requiresCorrectToolForDrops().destroyTime(0.5f).pushReaction(PistonBehavior.DESTROY) + public static final Block POLISHED_BLACKSTONE_PRESSURE_PLATE = register(new Block("polished_blackstone_pressure_plate", builder().destroyTime(0.5f).pushReaction(PistonBehavior.DESTROY) .booleanState(POWERED))); public static final Block POLISHED_BLACKSTONE_BUTTON = register(new Block("polished_blackstone_button", builder().destroyTime(0.5f).pushReaction(PistonBehavior.DESTROY) .enumState(ATTACH_FACE) @@ -2606,49 +2633,49 @@ public final class Blocks { public static final Block WAXED_CUT_COPPER_SLAB = register(new Block("waxed_cut_copper_slab", builder().requiresCorrectToolForDrops().destroyTime(3.0f) .enumState(SLAB_TYPE) .booleanState(WATERLOGGED))); - public static final Block COPPER_DOOR = register(new DoorBlock("copper_door", builder().requiresCorrectToolForDrops().destroyTime(3.0f).pushReaction(PistonBehavior.DESTROY) + public static final Block COPPER_DOOR = register(new DoorBlock("copper_door", builder().destroyTime(3.0f).pushReaction(PistonBehavior.DESTROY) .enumState(HORIZONTAL_FACING, Direction.NORTH, Direction.SOUTH, Direction.WEST, Direction.EAST) .enumState(DOUBLE_BLOCK_HALF) .enumState(DOOR_HINGE) .booleanState(OPEN) .booleanState(POWERED))); - public static final Block EXPOSED_COPPER_DOOR = register(new DoorBlock("exposed_copper_door", builder().requiresCorrectToolForDrops().destroyTime(3.0f).pushReaction(PistonBehavior.DESTROY) + public static final Block EXPOSED_COPPER_DOOR = register(new DoorBlock("exposed_copper_door", builder().destroyTime(3.0f).pushReaction(PistonBehavior.DESTROY) .enumState(HORIZONTAL_FACING, Direction.NORTH, Direction.SOUTH, Direction.WEST, Direction.EAST) .enumState(DOUBLE_BLOCK_HALF) .enumState(DOOR_HINGE) .booleanState(OPEN) .booleanState(POWERED))); - public static final Block OXIDIZED_COPPER_DOOR = register(new DoorBlock("oxidized_copper_door", builder().requiresCorrectToolForDrops().destroyTime(3.0f).pushReaction(PistonBehavior.DESTROY) + public static final Block OXIDIZED_COPPER_DOOR = register(new DoorBlock("oxidized_copper_door", builder().destroyTime(3.0f).pushReaction(PistonBehavior.DESTROY) .enumState(HORIZONTAL_FACING, Direction.NORTH, Direction.SOUTH, Direction.WEST, Direction.EAST) .enumState(DOUBLE_BLOCK_HALF) .enumState(DOOR_HINGE) .booleanState(OPEN) .booleanState(POWERED))); - public static final Block WEATHERED_COPPER_DOOR = register(new DoorBlock("weathered_copper_door", builder().requiresCorrectToolForDrops().destroyTime(3.0f).pushReaction(PistonBehavior.DESTROY) + public static final Block WEATHERED_COPPER_DOOR = register(new DoorBlock("weathered_copper_door", builder().destroyTime(3.0f).pushReaction(PistonBehavior.DESTROY) .enumState(HORIZONTAL_FACING, Direction.NORTH, Direction.SOUTH, Direction.WEST, Direction.EAST) .enumState(DOUBLE_BLOCK_HALF) .enumState(DOOR_HINGE) .booleanState(OPEN) .booleanState(POWERED))); - public static final Block WAXED_COPPER_DOOR = register(new DoorBlock("waxed_copper_door", builder().requiresCorrectToolForDrops().destroyTime(3.0f).pushReaction(PistonBehavior.DESTROY) + public static final Block WAXED_COPPER_DOOR = register(new DoorBlock("waxed_copper_door", builder().destroyTime(3.0f).pushReaction(PistonBehavior.DESTROY) .enumState(HORIZONTAL_FACING, Direction.NORTH, Direction.SOUTH, Direction.WEST, Direction.EAST) .enumState(DOUBLE_BLOCK_HALF) .enumState(DOOR_HINGE) .booleanState(OPEN) .booleanState(POWERED))); - public static final Block WAXED_EXPOSED_COPPER_DOOR = register(new DoorBlock("waxed_exposed_copper_door", builder().requiresCorrectToolForDrops().destroyTime(3.0f).pushReaction(PistonBehavior.DESTROY) + public static final Block WAXED_EXPOSED_COPPER_DOOR = register(new DoorBlock("waxed_exposed_copper_door", builder().destroyTime(3.0f).pushReaction(PistonBehavior.DESTROY) .enumState(HORIZONTAL_FACING, Direction.NORTH, Direction.SOUTH, Direction.WEST, Direction.EAST) .enumState(DOUBLE_BLOCK_HALF) .enumState(DOOR_HINGE) .booleanState(OPEN) .booleanState(POWERED))); - public static final Block WAXED_OXIDIZED_COPPER_DOOR = register(new DoorBlock("waxed_oxidized_copper_door", builder().requiresCorrectToolForDrops().destroyTime(3.0f).pushReaction(PistonBehavior.DESTROY) + public static final Block WAXED_OXIDIZED_COPPER_DOOR = register(new DoorBlock("waxed_oxidized_copper_door", builder().destroyTime(3.0f).pushReaction(PistonBehavior.DESTROY) .enumState(HORIZONTAL_FACING, Direction.NORTH, Direction.SOUTH, Direction.WEST, Direction.EAST) .enumState(DOUBLE_BLOCK_HALF) .enumState(DOOR_HINGE) .booleanState(OPEN) .booleanState(POWERED))); - public static final Block WAXED_WEATHERED_COPPER_DOOR = register(new DoorBlock("waxed_weathered_copper_door", builder().requiresCorrectToolForDrops().destroyTime(3.0f).pushReaction(PistonBehavior.DESTROY) + public static final Block WAXED_WEATHERED_COPPER_DOOR = register(new DoorBlock("waxed_weathered_copper_door", builder().destroyTime(3.0f).pushReaction(PistonBehavior.DESTROY) .enumState(HORIZONTAL_FACING, Direction.NORTH, Direction.SOUTH, Direction.WEST, Direction.EAST) .enumState(DOUBLE_BLOCK_HALF) .enumState(DOOR_HINGE) @@ -2888,8 +2915,12 @@ public final class Blocks { .enumState(NORTH_WALL) .enumState(SOUTH_WALL) .enumState(WEST_WALL))); - public static final Block PALE_HANGING_MOSS = register(new Block("pale_hanging_moss", builder().destroyTime(0.1f).pushReaction(PistonBehavior.DESTROY) + public static final Block PALE_HANGING_MOSS = register(new Block("pale_hanging_moss", builder().pushReaction(PistonBehavior.DESTROY) .booleanState(TIP))); + public static final Block OPEN_EYEBLOSSOM = register(new Block("open_eyeblossom", builder().pushReaction(PistonBehavior.DESTROY))); + public static final Block CLOSED_EYEBLOSSOM = register(new Block("closed_eyeblossom", builder().pushReaction(PistonBehavior.DESTROY))); + public static final Block POTTED_OPEN_EYEBLOSSOM = register(new FlowerPotBlock("potted_open_eyeblossom", OPEN_EYEBLOSSOM, builder().pushReaction(PistonBehavior.DESTROY))); + public static final Block POTTED_CLOSED_EYEBLOSSOM = register(new FlowerPotBlock("potted_closed_eyeblossom", CLOSED_EYEBLOSSOM, builder().pushReaction(PistonBehavior.DESTROY))); private static T register(T block) { block.setJavaId(BlockRegistries.JAVA_BLOCKS.get().size()); diff --git a/core/src/main/java/org/geysermc/geyser/level/block/property/Properties.java b/core/src/main/java/org/geysermc/geyser/level/block/property/Properties.java index 3e5f1b510..f295c4f51 100644 --- a/core/src/main/java/org/geysermc/geyser/level/block/property/Properties.java +++ b/core/src/main/java/org/geysermc/geyser/level/block/property/Properties.java @@ -29,8 +29,12 @@ import org.geysermc.geyser.level.physics.Axis; import org.geysermc.geyser.level.physics.Direction; public final class Properties { + public static final BooleanProperty ACTIVE = BooleanProperty.create("active"); public static final BooleanProperty ATTACHED = BooleanProperty.create("attached"); + public static final BooleanProperty BERRIES = BooleanProperty.create("berries"); + public static final BooleanProperty BLOOM = BooleanProperty.create("bloom"); public static final BooleanProperty BOTTOM = BooleanProperty.create("bottom"); + public static final BooleanProperty CAN_SUMMON = BooleanProperty.create("can_summon"); public static final BooleanProperty CONDITIONAL = BooleanProperty.create("conditional"); public static final BooleanProperty DISARMED = BooleanProperty.create("disarmed"); public static final BooleanProperty DRAG = BooleanProperty.create("drag"); @@ -47,22 +51,20 @@ public final class Properties { public static final BooleanProperty INVERTED = BooleanProperty.create("inverted"); public static final BooleanProperty IN_WALL = BooleanProperty.create("in_wall"); public static final BooleanProperty LIT = BooleanProperty.create("lit"); - public static final BooleanProperty TIP = BooleanProperty.create("tip"); public static final BooleanProperty LOCKED = BooleanProperty.create("locked"); + public static final BooleanProperty NATURAL = BooleanProperty.create("natural"); public static final BooleanProperty OCCUPIED = BooleanProperty.create("occupied"); public static final BooleanProperty OPEN = BooleanProperty.create("open"); public static final BooleanProperty PERSISTENT = BooleanProperty.create("persistent"); public static final BooleanProperty POWERED = BooleanProperty.create("powered"); public static final BooleanProperty SHORT = BooleanProperty.create("short"); + public static final BooleanProperty SHRIEKING = BooleanProperty.create("shrieking"); public static final BooleanProperty SIGNAL_FIRE = BooleanProperty.create("signal_fire"); public static final BooleanProperty SNOWY = BooleanProperty.create("snowy"); + public static final BooleanProperty TIP = BooleanProperty.create("tip"); public static final BooleanProperty TRIGGERED = BooleanProperty.create("triggered"); public static final BooleanProperty UNSTABLE = BooleanProperty.create("unstable"); public static final BooleanProperty WATERLOGGED = BooleanProperty.create("waterlogged"); - public static final BooleanProperty BERRIES = BooleanProperty.create("berries"); - public static final BooleanProperty BLOOM = BooleanProperty.create("bloom"); - public static final BooleanProperty SHRIEKING = BooleanProperty.create("shrieking"); - public static final BooleanProperty CAN_SUMMON = BooleanProperty.create("can_summon"); public static final EnumProperty HORIZONTAL_AXIS = EnumProperty.create("axis", Axis.X, Axis.Z); public static final EnumProperty AXIS = EnumProperty.create("axis", Axis.VALUES); public static final BooleanProperty UP = BooleanProperty.create("up"); @@ -143,6 +145,5 @@ public final class Properties { public static final BooleanProperty CRAFTING = BooleanProperty.create("crafting"); public static final BasicEnumProperty TRIAL_SPAWNER_STATE = BasicEnumProperty.create("trial_spawner_state", "inactive", "waiting_for_players", "active", "waiting_for_reward_ejection", "ejecting_reward", "cooldown"); public static final BasicEnumProperty VAULT_STATE = BasicEnumProperty.create("vault_state", "inactive", "active", "unlocking", "ejecting"); - public static final BasicEnumProperty CREAKING = BasicEnumProperty.create("creaking", "disabled", "dormant", "active"); public static final BooleanProperty OMINOUS = BooleanProperty.create("ominous"); } diff --git a/core/src/main/java/org/geysermc/geyser/translator/inventory/AnvilInventoryTranslator.java b/core/src/main/java/org/geysermc/geyser/translator/inventory/AnvilInventoryTranslator.java index 40ee28362..cbc8ce7bd 100644 --- a/core/src/main/java/org/geysermc/geyser/translator/inventory/AnvilInventoryTranslator.java +++ b/core/src/main/java/org/geysermc/geyser/translator/inventory/AnvilInventoryTranslator.java @@ -73,7 +73,7 @@ public class AnvilInventoryTranslator extends AbstractBlockInventoryTranslator { @Override public int bedrockSlotToJava(ItemStackRequestSlotData slotInfoData) { - return switch (slotInfoData.getContainer()) { + return switch (slotInfoData.getContainerName().getContainer()) { case ANVIL_INPUT -> 0; case ANVIL_MATERIAL -> 1; case ANVIL_RESULT, CREATED_OUTPUT -> 2; diff --git a/core/src/main/java/org/geysermc/geyser/translator/inventory/BaseInventoryTranslator.java b/core/src/main/java/org/geysermc/geyser/translator/inventory/BaseInventoryTranslator.java index f70bad9ea..fd6d9a930 100644 --- a/core/src/main/java/org/geysermc/geyser/translator/inventory/BaseInventoryTranslator.java +++ b/core/src/main/java/org/geysermc/geyser/translator/inventory/BaseInventoryTranslator.java @@ -44,7 +44,7 @@ public abstract class BaseInventoryTranslator extends InventoryTranslator { @Override public int bedrockSlotToJava(ItemStackRequestSlotData slotInfoData) { int slotnum = slotInfoData.getSlot(); - switch (slotInfoData.getContainer()) { + switch (slotInfoData.getContainerName().getContainer()) { case HOTBAR_AND_INVENTORY: case HOTBAR: case INVENTORY: diff --git a/core/src/main/java/org/geysermc/geyser/translator/inventory/BeaconInventoryTranslator.java b/core/src/main/java/org/geysermc/geyser/translator/inventory/BeaconInventoryTranslator.java index ceae1b640..6edbd925e 100644 --- a/core/src/main/java/org/geysermc/geyser/translator/inventory/BeaconInventoryTranslator.java +++ b/core/src/main/java/org/geysermc/geyser/translator/inventory/BeaconInventoryTranslator.java @@ -121,7 +121,7 @@ public class BeaconInventoryTranslator extends AbstractBlockInventoryTranslator @Override public int bedrockSlotToJava(ItemStackRequestSlotData slotInfoData) { - if (slotInfoData.getContainer() == ContainerSlotType.BEACON_PAYMENT) { + if (slotInfoData.getContainerName().getContainer() == ContainerSlotType.BEACON_PAYMENT) { return 0; } return super.bedrockSlotToJava(slotInfoData); diff --git a/core/src/main/java/org/geysermc/geyser/translator/inventory/BrewingInventoryTranslator.java b/core/src/main/java/org/geysermc/geyser/translator/inventory/BrewingInventoryTranslator.java index e425342f3..5147fb75d 100644 --- a/core/src/main/java/org/geysermc/geyser/translator/inventory/BrewingInventoryTranslator.java +++ b/core/src/main/java/org/geysermc/geyser/translator/inventory/BrewingInventoryTranslator.java @@ -74,11 +74,11 @@ public class BrewingInventoryTranslator extends AbstractBlockInventoryTranslator @Override public int bedrockSlotToJava(ItemStackRequestSlotData slotInfoData) { - if (slotInfoData.getContainer() == ContainerSlotType.BREWING_INPUT) { + if (slotInfoData.getContainerName().getContainer() == ContainerSlotType.BREWING_INPUT) { // Ingredient return 3; } - if (slotInfoData.getContainer() == ContainerSlotType.BREWING_RESULT) { + if (slotInfoData.getContainerName().getContainer() == ContainerSlotType.BREWING_RESULT) { // Potions return slotInfoData.getSlot() - 1; } diff --git a/core/src/main/java/org/geysermc/geyser/translator/inventory/CartographyInventoryTranslator.java b/core/src/main/java/org/geysermc/geyser/translator/inventory/CartographyInventoryTranslator.java index b0914e5dd..65fc7b35c 100644 --- a/core/src/main/java/org/geysermc/geyser/translator/inventory/CartographyInventoryTranslator.java +++ b/core/src/main/java/org/geysermc/geyser/translator/inventory/CartographyInventoryTranslator.java @@ -56,7 +56,7 @@ public class CartographyInventoryTranslator extends AbstractBlockInventoryTransl @Override public int bedrockSlotToJava(ItemStackRequestSlotData slotInfoData) { - return switch (slotInfoData.getContainer()) { + return switch (slotInfoData.getContainerName().getContainer()) { case CARTOGRAPHY_INPUT -> 0; case CARTOGRAPHY_ADDITIONAL -> 1; case CARTOGRAPHY_RESULT, CREATED_OUTPUT -> 2; diff --git a/core/src/main/java/org/geysermc/geyser/translator/inventory/CrafterInventoryTranslator.java b/core/src/main/java/org/geysermc/geyser/translator/inventory/CrafterInventoryTranslator.java index 8b0a0ac44..83076640a 100644 --- a/core/src/main/java/org/geysermc/geyser/translator/inventory/CrafterInventoryTranslator.java +++ b/core/src/main/java/org/geysermc/geyser/translator/inventory/CrafterInventoryTranslator.java @@ -77,7 +77,7 @@ public class CrafterInventoryTranslator extends AbstractBlockInventoryTranslator @Override public int bedrockSlotToJava(ItemStackRequestSlotData slotInfoData) { int slot = slotInfoData.getSlot(); - switch (slotInfoData.getContainer()) { + switch (slotInfoData.getContainerName().getContainer()) { case HOTBAR_AND_INVENTORY, HOTBAR, INVENTORY -> { //hotbar if (slot >= 9) { diff --git a/core/src/main/java/org/geysermc/geyser/translator/inventory/CraftingInventoryTranslator.java b/core/src/main/java/org/geysermc/geyser/translator/inventory/CraftingInventoryTranslator.java index 4a0f1d7d9..577d87fe5 100644 --- a/core/src/main/java/org/geysermc/geyser/translator/inventory/CraftingInventoryTranslator.java +++ b/core/src/main/java/org/geysermc/geyser/translator/inventory/CraftingInventoryTranslator.java @@ -64,12 +64,12 @@ public class CraftingInventoryTranslator extends AbstractBlockInventoryTranslato @Override public int bedrockSlotToJava(ItemStackRequestSlotData slotInfoData) { - if (slotInfoData.getContainer() == ContainerSlotType.CRAFTING_INPUT) { + if (slotInfoData.getContainerName().getContainer() == ContainerSlotType.CRAFTING_INPUT) { // Java goes from 1 - 9, left to right then up to down // Bedrock is the same, but it starts from 32. return slotInfoData.getSlot() - 31; } - if (slotInfoData.getContainer() == ContainerSlotType.CRAFTING_OUTPUT || slotInfoData.getContainer() == ContainerSlotType.CREATED_OUTPUT) { + if (slotInfoData.getContainerName().getContainer() == ContainerSlotType.CRAFTING_OUTPUT || slotInfoData.getContainerName().getContainer() == ContainerSlotType.CREATED_OUTPUT) { return 0; } return super.bedrockSlotToJava(slotInfoData); diff --git a/core/src/main/java/org/geysermc/geyser/translator/inventory/EnchantingInventoryTranslator.java b/core/src/main/java/org/geysermc/geyser/translator/inventory/EnchantingInventoryTranslator.java index b51d86d13..eb0e351e1 100644 --- a/core/src/main/java/org/geysermc/geyser/translator/inventory/EnchantingInventoryTranslator.java +++ b/core/src/main/java/org/geysermc/geyser/translator/inventory/EnchantingInventoryTranslator.java @@ -135,10 +135,10 @@ public class EnchantingInventoryTranslator extends AbstractBlockInventoryTransla @Override public int bedrockSlotToJava(ItemStackRequestSlotData slotInfoData) { - if (slotInfoData.getContainer() == ContainerSlotType.ENCHANTING_INPUT) { + if (slotInfoData.getContainerName().getContainer() == ContainerSlotType.ENCHANTING_INPUT) { return 0; } - if (slotInfoData.getContainer() == ContainerSlotType.ENCHANTING_MATERIAL) { + if (slotInfoData.getContainerName().getContainer() == ContainerSlotType.ENCHANTING_MATERIAL) { return 1; } return super.bedrockSlotToJava(slotInfoData); diff --git a/core/src/main/java/org/geysermc/geyser/translator/inventory/GrindstoneInventoryTranslator.java b/core/src/main/java/org/geysermc/geyser/translator/inventory/GrindstoneInventoryTranslator.java index 5344d27cb..d3283de40 100644 --- a/core/src/main/java/org/geysermc/geyser/translator/inventory/GrindstoneInventoryTranslator.java +++ b/core/src/main/java/org/geysermc/geyser/translator/inventory/GrindstoneInventoryTranslator.java @@ -39,7 +39,7 @@ public class GrindstoneInventoryTranslator extends AbstractBlockInventoryTransla @Override public int bedrockSlotToJava(ItemStackRequestSlotData slotInfoData) { - return switch (slotInfoData.getContainer()) { + return switch (slotInfoData.getContainerName().getContainer()) { case GRINDSTONE_INPUT -> 0; case GRINDSTONE_ADDITIONAL -> 1; case GRINDSTONE_RESULT, CREATED_OUTPUT -> 2; diff --git a/core/src/main/java/org/geysermc/geyser/translator/inventory/LoomInventoryTranslator.java b/core/src/main/java/org/geysermc/geyser/translator/inventory/LoomInventoryTranslator.java index 7cdcbe8a9..e294442f9 100644 --- a/core/src/main/java/org/geysermc/geyser/translator/inventory/LoomInventoryTranslator.java +++ b/core/src/main/java/org/geysermc/geyser/translator/inventory/LoomInventoryTranslator.java @@ -169,7 +169,7 @@ public class LoomInventoryTranslator extends AbstractBlockInventoryTranslator { @Override public int bedrockSlotToJava(ItemStackRequestSlotData slotInfoData) { - return switch (slotInfoData.getContainer()) { + return switch (slotInfoData.getContainerName().getContainer()) { case LOOM_INPUT -> 0; case LOOM_DYE -> 1; case LOOM_MATERIAL -> 2; diff --git a/core/src/main/java/org/geysermc/geyser/translator/inventory/MerchantInventoryTranslator.java b/core/src/main/java/org/geysermc/geyser/translator/inventory/MerchantInventoryTranslator.java index 7a7646503..c67b3b190 100644 --- a/core/src/main/java/org/geysermc/geyser/translator/inventory/MerchantInventoryTranslator.java +++ b/core/src/main/java/org/geysermc/geyser/translator/inventory/MerchantInventoryTranslator.java @@ -77,7 +77,7 @@ public class MerchantInventoryTranslator extends BaseInventoryTranslator { @Override public int bedrockSlotToJava(ItemStackRequestSlotData slotInfoData) { - return switch (slotInfoData.getContainer()) { + return switch (slotInfoData.getContainerName().getContainer()) { case TRADE2_INGREDIENT_1 -> 0; case TRADE2_INGREDIENT_2 -> 1; case TRADE2_RESULT, CREATED_OUTPUT -> 2; diff --git a/core/src/main/java/org/geysermc/geyser/translator/inventory/OldSmithingTableTranslator.java b/core/src/main/java/org/geysermc/geyser/translator/inventory/OldSmithingTableTranslator.java index 38bb6ddcd..fc9c4f587 100644 --- a/core/src/main/java/org/geysermc/geyser/translator/inventory/OldSmithingTableTranslator.java +++ b/core/src/main/java/org/geysermc/geyser/translator/inventory/OldSmithingTableTranslator.java @@ -63,7 +63,7 @@ public class OldSmithingTableTranslator extends AbstractBlockInventoryTranslator @Override public int bedrockSlotToJava(ItemStackRequestSlotData slotInfoData) { - return switch (slotInfoData.getContainer()) { + return switch (slotInfoData.getContainerName().getContainer()) { case SMITHING_TABLE_INPUT -> 0; case SMITHING_TABLE_MATERIAL -> 1; case SMITHING_TABLE_RESULT, CREATED_OUTPUT -> 2; @@ -130,7 +130,7 @@ public class OldSmithingTableTranslator extends AbstractBlockInventoryTranslator } private boolean isInvalidAction(ItemStackRequestSlotData slotData) { - return slotData.getContainer().equals(ContainerSlotType.SMITHING_TABLE_TEMPLATE); + return slotData.getContainerName().getContainer().equals(ContainerSlotType.SMITHING_TABLE_TEMPLATE); } @Override diff --git a/core/src/main/java/org/geysermc/geyser/translator/inventory/PlayerInventoryTranslator.java b/core/src/main/java/org/geysermc/geyser/translator/inventory/PlayerInventoryTranslator.java index f08b90765..445b4715b 100644 --- a/core/src/main/java/org/geysermc/geyser/translator/inventory/PlayerInventoryTranslator.java +++ b/core/src/main/java/org/geysermc/geyser/translator/inventory/PlayerInventoryTranslator.java @@ -184,7 +184,7 @@ public class PlayerInventoryTranslator extends InventoryTranslator { @Override public int bedrockSlotToJava(ItemStackRequestSlotData slotInfoData) { int slotnum = slotInfoData.getSlot(); - switch (slotInfoData.getContainer()) { + switch (slotInfoData.getContainerName().getContainer()) { case HOTBAR_AND_INVENTORY: case HOTBAR: case INVENTORY: @@ -462,7 +462,7 @@ public class PlayerInventoryTranslator extends InventoryTranslator { } craftState = CraftState.TRANSFER; - if (transferAction.getSource().getContainer() != ContainerSlotType.CREATED_OUTPUT) { + if (transferAction.getSource().getContainerName().getContainer() != ContainerSlotType.CREATED_OUTPUT) { return rejectRequest(request); } @@ -495,7 +495,7 @@ public class PlayerInventoryTranslator extends InventoryTranslator { } DropAction dropAction = (DropAction) action; - if (dropAction.getSource().getContainer() != ContainerSlotType.CREATED_OUTPUT || dropAction.getSource().getSlot() != 50) { + if (dropAction.getSource().getContainerName().getContainer() != ContainerSlotType.CREATED_OUTPUT || dropAction.getSource().getSlot() != 50) { return rejectRequest(request); } @@ -532,7 +532,7 @@ public class PlayerInventoryTranslator extends InventoryTranslator { } private static boolean isCraftingGrid(ItemStackRequestSlotData slotInfoData) { - return slotInfoData.getContainer() == ContainerSlotType.CRAFTING_INPUT; + return slotInfoData.getContainerName().getContainer() == ContainerSlotType.CRAFTING_INPUT; } @Override diff --git a/core/src/main/java/org/geysermc/geyser/translator/inventory/SmithingInventoryTranslator.java b/core/src/main/java/org/geysermc/geyser/translator/inventory/SmithingInventoryTranslator.java index dbe24230a..2a9e974f3 100644 --- a/core/src/main/java/org/geysermc/geyser/translator/inventory/SmithingInventoryTranslator.java +++ b/core/src/main/java/org/geysermc/geyser/translator/inventory/SmithingInventoryTranslator.java @@ -44,7 +44,7 @@ public class SmithingInventoryTranslator extends AbstractBlockInventoryTranslato @Override public int bedrockSlotToJava(ItemStackRequestSlotData slotInfoData) { - return switch (slotInfoData.getContainer()) { + return switch (slotInfoData.getContainerName().getContainer()) { case SMITHING_TABLE_TEMPLATE -> TEMPLATE; case SMITHING_TABLE_INPUT -> INPUT; case SMITHING_TABLE_MATERIAL -> MATERIAL; diff --git a/core/src/main/java/org/geysermc/geyser/translator/inventory/StonecutterInventoryTranslator.java b/core/src/main/java/org/geysermc/geyser/translator/inventory/StonecutterInventoryTranslator.java index b977ee1a1..df7e15fef 100644 --- a/core/src/main/java/org/geysermc/geyser/translator/inventory/StonecutterInventoryTranslator.java +++ b/core/src/main/java/org/geysermc/geyser/translator/inventory/StonecutterInventoryTranslator.java @@ -84,7 +84,7 @@ public class StonecutterInventoryTranslator extends AbstractBlockInventoryTransl @Override public int bedrockSlotToJava(ItemStackRequestSlotData slotInfoData) { - return switch (slotInfoData.getContainer()) { + return switch (slotInfoData.getContainerName().getContainer()) { case STONECUTTER_INPUT -> 0; case STONECUTTER_RESULT, CREATED_OUTPUT -> 1; default -> super.bedrockSlotToJava(slotInfoData); diff --git a/core/src/main/java/org/geysermc/geyser/translator/inventory/horse/ChestedHorseInventoryTranslator.java b/core/src/main/java/org/geysermc/geyser/translator/inventory/horse/ChestedHorseInventoryTranslator.java index f1a5723c8..1a65ad982 100644 --- a/core/src/main/java/org/geysermc/geyser/translator/inventory/horse/ChestedHorseInventoryTranslator.java +++ b/core/src/main/java/org/geysermc/geyser/translator/inventory/horse/ChestedHorseInventoryTranslator.java @@ -53,10 +53,10 @@ public abstract class ChestedHorseInventoryTranslator extends AbstractHorseInven @Override public int bedrockSlotToJava(ItemStackRequestSlotData slotInfoData) { - if (slotInfoData.getContainer() == ContainerSlotType.HORSE_EQUIP) { + if (slotInfoData.getContainerName().getContainer() == ContainerSlotType.HORSE_EQUIP) { return this.equipSlot; } - if (slotInfoData.getContainer() == ContainerSlotType.LEVEL_ENTITY) { + if (slotInfoData.getContainerName().getContainer() == ContainerSlotType.LEVEL_ENTITY) { return slotInfoData.getSlot() + 1; } return super.bedrockSlotToJava(slotInfoData); diff --git a/core/src/main/java/org/geysermc/geyser/translator/inventory/horse/HorseInventoryTranslator.java b/core/src/main/java/org/geysermc/geyser/translator/inventory/horse/HorseInventoryTranslator.java index 84d7744d1..af09d5f61 100644 --- a/core/src/main/java/org/geysermc/geyser/translator/inventory/horse/HorseInventoryTranslator.java +++ b/core/src/main/java/org/geysermc/geyser/translator/inventory/horse/HorseInventoryTranslator.java @@ -36,7 +36,7 @@ public class HorseInventoryTranslator extends AbstractHorseInventoryTranslator { @Override public int bedrockSlotToJava(ItemStackRequestSlotData slotInfoData) { - if (slotInfoData.getContainer() == ContainerSlotType.HORSE_EQUIP) { + if (slotInfoData.getContainerName().getContainer() == ContainerSlotType.HORSE_EQUIP) { return slotInfoData.getSlot(); } return super.bedrockSlotToJava(slotInfoData); diff --git a/core/src/main/java/org/geysermc/geyser/translator/protocol/java/entity/JavaSetEquipmentTranslator.java b/core/src/main/java/org/geysermc/geyser/translator/protocol/java/entity/JavaSetEquipmentTranslator.java index e1ff7a5fc..cdadb1bb9 100644 --- a/core/src/main/java/org/geysermc/geyser/translator/protocol/java/entity/JavaSetEquipmentTranslator.java +++ b/core/src/main/java/org/geysermc/geyser/translator/protocol/java/entity/JavaSetEquipmentTranslator.java @@ -28,6 +28,7 @@ package org.geysermc.geyser.translator.protocol.java.entity; import org.geysermc.geyser.entity.type.Entity; import org.geysermc.geyser.entity.type.LivingEntity; import org.geysermc.geyser.entity.type.player.PlayerEntity; +import org.geysermc.geyser.inventory.GeyserItemStack; import org.geysermc.geyser.item.Items; import org.geysermc.geyser.session.GeyserSession; import org.geysermc.geyser.skin.FakeHeadProvider; @@ -35,6 +36,7 @@ import org.geysermc.geyser.translator.protocol.PacketTranslator; import org.geysermc.geyser.translator.protocol.Translator; import org.geysermc.mcprotocollib.protocol.data.game.entity.metadata.Equipment; import org.geysermc.mcprotocollib.protocol.data.game.item.ItemStack; +import org.geysermc.mcprotocollib.protocol.data.game.item.component.DataComponentType; import org.geysermc.mcprotocollib.protocol.packet.ingame.clientbound.entity.ClientboundSetEquipmentPacket; @Translator(packet = ClientboundSetEquipmentPacket.class) @@ -64,7 +66,7 @@ public class JavaSetEquipmentTranslator extends PacketTranslator Date: Wed, 4 Dec 2024 20:46:38 +0800 Subject: [PATCH 11/31] Start on block remapping, send ServerboundPlayerLoadedPacket on respawn/new logins --- core/build.gradle.kts | 4 + .../geyser/entity/EntityDefinitions.java | 10 ++ .../type/living/monster/CreakingEntity.java | 54 +++++++++ .../populator/BlockRegistryPopulator.java | 28 +---- .../registry/populator/Conversion748_729.java | 48 -------- .../registry/populator/Conversion766_748.java | 104 ++++++++++++++++++ .../populator/ItemRegistryPopulator.java | 40 ++++++- ...SetLocalPlayerAsInitializedTranslator.java | 1 + .../protocol/java/JavaLoginTranslator.java | 5 + .../protocol/java/JavaRespawnTranslator.java | 3 + 10 files changed, 222 insertions(+), 75 deletions(-) create mode 100644 core/src/main/java/org/geysermc/geyser/entity/type/living/monster/CreakingEntity.java delete mode 100644 core/src/main/java/org/geysermc/geyser/registry/populator/Conversion748_729.java create mode 100644 core/src/main/java/org/geysermc/geyser/registry/populator/Conversion766_748.java diff --git a/core/build.gradle.kts b/core/build.gradle.kts index b0ea5fdf6..29cb49dc2 100644 --- a/core/build.gradle.kts +++ b/core/build.gradle.kts @@ -71,6 +71,10 @@ dependencies { api(libs.events) } +tasks.test { + enabled = false +} + tasks.processResources { // This is solely for backwards compatibility for other programs that used this file before the switch to gradle. // It used to be generated by the maven Git-Commit-Id-Plugin diff --git a/core/src/main/java/org/geysermc/geyser/entity/EntityDefinitions.java b/core/src/main/java/org/geysermc/geyser/entity/EntityDefinitions.java index 47b97c934..f48cf4053 100644 --- a/core/src/main/java/org/geysermc/geyser/entity/EntityDefinitions.java +++ b/core/src/main/java/org/geysermc/geyser/entity/EntityDefinitions.java @@ -116,6 +116,7 @@ import org.geysermc.geyser.entity.type.living.monster.BasePiglinEntity; import org.geysermc.geyser.entity.type.living.monster.BlazeEntity; import org.geysermc.geyser.entity.type.living.monster.BoggedEntity; import org.geysermc.geyser.entity.type.living.monster.BreezeEntity; +import org.geysermc.geyser.entity.type.living.monster.CreakingEntity; import org.geysermc.geyser.entity.type.living.monster.CreeperEntity; import org.geysermc.geyser.entity.type.living.monster.ElderGuardianEntity; import org.geysermc.geyser.entity.type.living.monster.EnderDragonEntity; @@ -179,6 +180,7 @@ public final class EntityDefinitions { public static final EntityDefinition COD; public static final EntityDefinition COMMAND_BLOCK_MINECART; public static final EntityDefinition COW; + public static final EntityDefinition CREAKING; public static final EntityDefinition CREEPER; public static final EntityDefinition DARK_OAK_BOAT; public static final EntityDefinition DARK_OAK_CHEST_BOAT; @@ -671,6 +673,14 @@ public final class EntityDefinitions { .type(EntityType.BREEZE) .height(1.77f).width(0.6f) .build(); + CREAKING = EntityDefinition.inherited(CreakingEntity::new, mobEntityBase) + .type(EntityType.CREAKING) + .height(2.7f).width(0.9f) + .addTranslator(MetadataType.BOOLEAN, CreakingEntity::setCanMove) + .addTranslator(MetadataType.BOOLEAN, CreakingEntity::setActive) + .addTranslator(MetadataType.BOOLEAN, CreakingEntity::setIsTearingDown) + .addTranslator(MetadataType.OPTIONAL_POSITION, CreakingEntity::setHomePos) + .build(); CREEPER = EntityDefinition.inherited(CreeperEntity::new, mobEntityBase) .type(EntityType.CREEPER) .height(1.7f).width(0.6f) diff --git a/core/src/main/java/org/geysermc/geyser/entity/type/living/monster/CreakingEntity.java b/core/src/main/java/org/geysermc/geyser/entity/type/living/monster/CreakingEntity.java new file mode 100644 index 000000000..8cfaf7428 --- /dev/null +++ b/core/src/main/java/org/geysermc/geyser/entity/type/living/monster/CreakingEntity.java @@ -0,0 +1,54 @@ +/* + * Copyright (c) 2024 GeyserMC. http://geysermc.org + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + * + * @author GeyserMC + * @link https://github.com/GeyserMC/Geyser + */ + +package org.geysermc.geyser.entity.type.living.monster; + +import org.cloudburstmc.math.vector.Vector3f; +import org.cloudburstmc.math.vector.Vector3i; +import org.geysermc.geyser.entity.EntityDefinition; +import org.geysermc.geyser.session.GeyserSession; +import org.geysermc.mcprotocollib.protocol.data.game.entity.metadata.EntityMetadata; +import org.geysermc.mcprotocollib.protocol.data.game.entity.metadata.MetadataType; + +import java.util.Optional; +import java.util.UUID; + +public class CreakingEntity extends MonsterEntity { + public CreakingEntity(GeyserSession session, int entityId, long geyserId, UUID uuid, EntityDefinition definition, Vector3f position, Vector3f motion, float yaw, float pitch, float headYaw) { + super(session, entityId, geyserId, uuid, definition, position, motion, yaw, pitch, headYaw); + } + + public void setCanMove(EntityMetadata> booleanEntityMetadata) { + } + + public void setActive(EntityMetadata> booleanEntityMetadata) { + } + + public void setIsTearingDown(EntityMetadata> booleanEntityMetadata) { + } + + public void setHomePos(EntityMetadata,? extends MetadataType>> optionalEntityMetadata) { + } +} diff --git a/core/src/main/java/org/geysermc/geyser/registry/populator/BlockRegistryPopulator.java b/core/src/main/java/org/geysermc/geyser/registry/populator/BlockRegistryPopulator.java index 1723b22ed..46a820c16 100644 --- a/core/src/main/java/org/geysermc/geyser/registry/populator/BlockRegistryPopulator.java +++ b/core/src/main/java/org/geysermc/geyser/registry/populator/BlockRegistryPopulator.java @@ -58,7 +58,6 @@ import org.geysermc.geyser.level.block.property.Properties; import org.geysermc.geyser.level.block.type.Block; import org.geysermc.geyser.level.block.type.BlockState; import org.geysermc.geyser.level.block.type.FlowerPotBlock; -import org.geysermc.geyser.level.block.type.SkullBlock; import org.geysermc.geyser.level.physics.PistonBehavior; import org.geysermc.geyser.registry.BlockRegistries; import org.geysermc.geyser.registry.Registries; @@ -66,7 +65,6 @@ import org.geysermc.geyser.registry.type.BlockMappings; import org.geysermc.geyser.registry.type.GeyserBedrockBlock; import org.geysermc.geyser.util.BlockUtils; import org.geysermc.mcprotocollib.protocol.data.game.item.ItemStack; -import org.jetbrains.annotations.NotNull; import java.io.DataInputStream; import java.io.InputStream; @@ -125,8 +123,8 @@ public final class BlockRegistryPopulator { private static void registerBedrockBlocks() { var blockMappers = ImmutableMap., Remapper>builder() - .put(ObjectIntPair.of("1_21_40", Bedrock_v748.CODEC.getProtocolVersion()), faultyStrippedWoodRemapper()) - .put(ObjectIntPair.of("1_21_50", Bedrock_v765.CODEC.getProtocolVersion()), faultyStrippedWoodRemapper()) + .put(ObjectIntPair.of("1_21_40", Bedrock_v748.CODEC.getProtocolVersion()), Conversion766_748::remapBlock) + .put(ObjectIntPair.of("1_21_50", Bedrock_v765.CODEC.getProtocolVersion()), tag -> tag) .build(); // We can keep this strong as nothing should be garbage collected @@ -259,15 +257,6 @@ public final class BlockRegistryPopulator { NbtMap originalBedrockTag = buildBedrockState(blockState, entry); NbtMap bedrockTag = stateMapper.remap(originalBedrockTag); - // FIXME TEMPORARY - if (blockState.block() instanceof SkullBlock && palette.valueInt() >= Bedrock_v748.CODEC.getProtocolVersion()) { - // The flattening must be a very interesting process. - String skullName = blockState.block().javaIdentifier().asString().replace("_wall", ""); - bedrockTag = bedrockTag.toBuilder() - .putString("name", skullName) - .build(); - } - GeyserBedrockBlock vanillaBedrockDefinition = blockStateOrderedMap.get(bedrockTag); GeyserBedrockBlock bedrockDefinition; @@ -413,19 +402,6 @@ public final class BlockRegistryPopulator { } } - private static @NotNull Remapper faultyStrippedWoodRemapper() { - return tag -> { - final String name = tag.getString("name"); - if (name.endsWith("_wood") && tag.getCompound("states").containsKey("stripped_bit")) { - NbtMapBuilder builder = tag.getCompound("states").toBuilder(); - builder.remove("stripped_bit"); - NbtMap states = builder.build(); - return tag.toBuilder().putCompound("states", states).build(); - } - return tag; - }; - } - private static void registerJavaBlocks() { List blocksNbt; try (InputStream stream = GeyserImpl.getInstance().getBootstrap().getResourceOrThrow("mappings/blocks.nbt")) { diff --git a/core/src/main/java/org/geysermc/geyser/registry/populator/Conversion748_729.java b/core/src/main/java/org/geysermc/geyser/registry/populator/Conversion748_729.java deleted file mode 100644 index 7a2d1a0cb..000000000 --- a/core/src/main/java/org/geysermc/geyser/registry/populator/Conversion748_729.java +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Copyright (c) 2024 GeyserMC. http://geysermc.org - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - * - * @author GeyserMC - * @link https://github.com/GeyserMC/Geyser - */ - -package org.geysermc.geyser.registry.populator; - -import org.geysermc.geyser.item.type.Item; -import org.geysermc.geyser.registry.type.GeyserMappingItem; - -import java.util.Map; - -public class Conversion748_729 { - - private static final Map NEW_PLAYER_HEADS = Map.of("minecraft:skeleton_skull", 0, "minecraft:wither_skeleton_skull", 1, "minecraft:zombie_head", 2, "minecraft:player_head", 3, "minecraft:creeper_head", 4, "minecraft:dragon_head", 5, "minecraft:piglin_head", 6); - - static GeyserMappingItem remapItem(Item item, GeyserMappingItem mapping) { - String identifier = mapping.getBedrockIdentifier(); - - if (NEW_PLAYER_HEADS.containsKey(identifier)) { - return mapping.withBedrockIdentifier("minecraft:skull") - .withBedrockData(NEW_PLAYER_HEADS.get(identifier)); - } - - return mapping; - } - -} diff --git a/core/src/main/java/org/geysermc/geyser/registry/populator/Conversion766_748.java b/core/src/main/java/org/geysermc/geyser/registry/populator/Conversion766_748.java new file mode 100644 index 000000000..79265552f --- /dev/null +++ b/core/src/main/java/org/geysermc/geyser/registry/populator/Conversion766_748.java @@ -0,0 +1,104 @@ +/* + * Copyright (c) 2024 GeyserMC. http://geysermc.org + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + * + * @author GeyserMC + * @link https://github.com/GeyserMC/Geyser + */ + +package org.geysermc.geyser.registry.populator; + +import io.jsonwebtoken.lang.Collections; +import org.cloudburstmc.nbt.NbtMap; +import org.geysermc.geyser.GeyserImpl; +import org.geysermc.geyser.level.block.Blocks; + +import java.util.ArrayList; +import java.util.List; + +public class Conversion766_748 { + static List newBlockIds = new ArrayList<>(); + static List bedrockIds = new ArrayList<>(); // TODO temp remove + static { + var blocks = Collections.of( + Blocks.PALE_OAK_WOOD, + Blocks.PALE_OAK_PLANKS, + Blocks.PALE_OAK_SAPLING, + Blocks.PALE_OAK_LOG, + Blocks.STRIPPED_PALE_OAK_LOG, + Blocks.STRIPPED_PALE_OAK_WOOD, + Blocks.PALE_OAK_LEAVES, + Blocks.PALE_OAK_SIGN, + Blocks.PALE_OAK_WALL_SIGN, + Blocks.PALE_OAK_HANGING_SIGN, + Blocks.PALE_OAK_WALL_HANGING_SIGN, + Blocks.PALE_OAK_PRESSURE_PLATE, + Blocks.PALE_OAK_TRAPDOOR, + Blocks.POTTED_PALE_OAK_SAPLING, + Blocks.PALE_OAK_BUTTON, + Blocks.PALE_OAK_STAIRS, + Blocks.PALE_OAK_SLAB, + Blocks.PALE_OAK_FENCE_GATE, + Blocks.PALE_OAK_FENCE, + Blocks.PALE_OAK_DOOR, + Blocks.PALE_MOSS_BLOCK, + Blocks.PALE_MOSS_CARPET, + Blocks.PALE_HANGING_MOSS, + + Blocks.OPEN_EYEBLOSSOM, + Blocks.CLOSED_EYEBLOSSOM, + Blocks.POTTED_OPEN_EYEBLOSSOM, + Blocks.POTTED_CLOSED_EYEBLOSSOM, + + Blocks.RESIN_CLUMP, + Blocks.RESIN_BLOCK, + Blocks.RESIN_BRICKS, + Blocks.RESIN_BRICK_STAIRS, + Blocks.RESIN_BRICK_SLAB, + Blocks.RESIN_BRICK_WALL, + Blocks.CHISELED_RESIN_BRICKS, + + Blocks.CREAKING_HEART + ); + + blocks.forEach(block -> newBlockIds.add(block.javaIdentifier().value())); + } + + static NbtMap remapBlock(NbtMap tag) { + + GeyserImpl.getInstance().getLogger().info(tag.toString()); + + String name = tag.getString("name"); + if (newBlockIds.contains(name)) { + bedrockIds.add(name); + // TODO + return tag.toBuilder() + .putCompound("states", NbtMap.builder().build()) + .putString("name", "minecraft:unknown") + .build(); + } + + if (name.contains("resin") || name.contains("creaking") || name.contains("pale")) { + throw new RuntimeException("ya missed " + name); + } + + return tag; + } +} diff --git a/core/src/main/java/org/geysermc/geyser/registry/populator/ItemRegistryPopulator.java b/core/src/main/java/org/geysermc/geyser/registry/populator/ItemRegistryPopulator.java index a94cf132d..7c636cd24 100644 --- a/core/src/main/java/org/geysermc/geyser/registry/populator/ItemRegistryPopulator.java +++ b/core/src/main/java/org/geysermc/geyser/registry/populator/ItemRegistryPopulator.java @@ -82,6 +82,7 @@ import java.io.InputStream; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; +import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Objects; @@ -107,8 +108,45 @@ public class ItemRegistryPopulator { } public static void populate() { + + Map itemFallbacks = new HashMap<>(); + itemFallbacks.put(Items.PALE_OAK_PLANKS, Items.BIRCH_PLANKS); + itemFallbacks.put(Items.PALE_OAK_FENCE, Items.BIRCH_FENCE); + itemFallbacks.put(Items.PALE_OAK_FENCE_GATE, Items.BIRCH_FENCE_GATE); + itemFallbacks.put(Items.PALE_OAK_STAIRS, Items.BIRCH_STAIRS); + itemFallbacks.put(Items.PALE_OAK_DOOR, Items.BIRCH_DOOR); + itemFallbacks.put(Items.PALE_OAK_TRAPDOOR, Items.BIRCH_TRAPDOOR); + itemFallbacks.put(Items.PALE_OAK_SLAB, Items.BIRCH_SLAB); + itemFallbacks.put(Items.PALE_OAK_LOG, Items.BIRCH_LOG); + itemFallbacks.put(Items.STRIPPED_PALE_OAK_LOG, Items.STRIPPED_BIRCH_LOG); + itemFallbacks.put(Items.PALE_OAK_WOOD, Items.BIRCH_WOOD); + itemFallbacks.put(Items.PALE_OAK_LEAVES, Items.BIRCH_LEAVES); + itemFallbacks.put(Items.PALE_OAK_SAPLING, Items.BIRCH_SAPLING); + itemFallbacks.put(Items.STRIPPED_PALE_OAK_WOOD, Items.STRIPPED_BIRCH_WOOD); + itemFallbacks.put(Items.PALE_OAK_SIGN, Items.BIRCH_SIGN); + itemFallbacks.put(Items.PALE_OAK_HANGING_SIGN, Items.BIRCH_HANGING_SIGN); + itemFallbacks.put(Items.PALE_OAK_BOAT, Items.BIRCH_BOAT); + itemFallbacks.put(Items.PALE_OAK_CHEST_BOAT, Items.BIRCH_CHEST_BOAT); + itemFallbacks.put(Items.PALE_OAK_BUTTON, Items.BIRCH_BUTTON); + itemFallbacks.put(Items.PALE_OAK_PRESSURE_PLATE, Items.BIRCH_PRESSURE_PLATE); + itemFallbacks.put(Items.RESIN_CLUMP, Items.RAW_COPPER); + itemFallbacks.put(Items.RESIN_BRICK_WALL, Items.RED_SANDSTONE_WALL); + itemFallbacks.put(Items.RESIN_BRICK_STAIRS, Items.RED_SANDSTONE_STAIRS); + itemFallbacks.put(Items.RESIN_BRICK_SLAB, Items.RED_SANDSTONE_SLAB); + itemFallbacks.put(Items.RESIN_BLOCK, Items.RED_SANDSTONE); + itemFallbacks.put(Items.RESIN_BRICK, Items.BRICK); + itemFallbacks.put(Items.RESIN_BRICKS, Items.CUT_RED_SANDSTONE); + itemFallbacks.put(Items.CHISELED_RESIN_BRICKS, Items.CHISELED_RED_SANDSTONE); + itemFallbacks.put(Items.CLOSED_EYEBLOSSOM, Items.WHITE_TULIP); + itemFallbacks.put(Items.OPEN_EYEBLOSSOM, Items.OXEYE_DAISY); + itemFallbacks.put(Items.PALE_MOSS_BLOCK, Items.MOSS_BLOCK); + itemFallbacks.put(Items.PALE_MOSS_CARPET, Items.MOSS_CARPET); + itemFallbacks.put(Items.PALE_HANGING_MOSS, Items.HANGING_ROOTS); + itemFallbacks.put(Items.CREAKING_HEART, Items.CHISELED_POLISHED_BLACKSTONE); + itemFallbacks.put(Items.CREAKING_SPAWN_EGG, Items.HOGLIN_SPAWN_EGG); + List paletteVersions = new ArrayList<>(2); - paletteVersions.add(new PaletteVersion("1_21_40", Bedrock_v748.CODEC.getProtocolVersion())); + paletteVersions.add(new PaletteVersion("1_21_40", Bedrock_v748.CODEC.getProtocolVersion(), itemFallbacks, (item, mapping) -> mapping)); paletteVersions.add(new PaletteVersion("1_21_50", Bedrock_v765.CODEC.getProtocolVersion())); GeyserBootstrap bootstrap = GeyserImpl.getInstance().getBootstrap(); diff --git a/core/src/main/java/org/geysermc/geyser/translator/protocol/bedrock/BedrockSetLocalPlayerAsInitializedTranslator.java b/core/src/main/java/org/geysermc/geyser/translator/protocol/bedrock/BedrockSetLocalPlayerAsInitializedTranslator.java index 556d8cd8d..fcbd3bb8c 100644 --- a/core/src/main/java/org/geysermc/geyser/translator/protocol/bedrock/BedrockSetLocalPlayerAsInitializedTranslator.java +++ b/core/src/main/java/org/geysermc/geyser/translator/protocol/bedrock/BedrockSetLocalPlayerAsInitializedTranslator.java @@ -40,6 +40,7 @@ import org.geysermc.mcprotocollib.protocol.packet.ingame.serverbound.Serverbound public class BedrockSetLocalPlayerAsInitializedTranslator extends PacketTranslator { @Override public void translate(GeyserSession session, SetLocalPlayerAsInitializedPacket packet) { + GeyserImpl.getInstance().getLogger().info(packet.toString()); if (session.getPlayerEntity().getGeyserId() == packet.getRuntimeEntityId()) { if (!session.getUpstream().isInitialized()) { session.getUpstream().setInitialized(true); diff --git a/core/src/main/java/org/geysermc/geyser/translator/protocol/java/JavaLoginTranslator.java b/core/src/main/java/org/geysermc/geyser/translator/protocol/java/JavaLoginTranslator.java index 93a7d9a14..7a33c53d6 100644 --- a/core/src/main/java/org/geysermc/geyser/translator/protocol/java/JavaLoginTranslator.java +++ b/core/src/main/java/org/geysermc/geyser/translator/protocol/java/JavaLoginTranslator.java @@ -45,6 +45,7 @@ import org.geysermc.geyser.util.MinecraftKey; import org.geysermc.mcprotocollib.protocol.data.game.entity.player.PlayerSpawnInfo; import org.geysermc.mcprotocollib.protocol.packet.common.serverbound.ServerboundCustomPayloadPacket; import org.geysermc.mcprotocollib.protocol.packet.ingame.clientbound.ClientboundLoginPacket; +import org.geysermc.mcprotocollib.protocol.packet.ingame.serverbound.ServerboundPlayerLoadedPacket; import java.nio.charset.StandardCharsets; import java.util.Arrays; @@ -128,5 +129,9 @@ public class JavaLoginTranslator extends PacketTranslator { @@ -93,5 +94,7 @@ public class JavaRespawnTranslator extends PacketTranslator Date: Thu, 5 Dec 2024 17:54:00 +0800 Subject: [PATCH 12/31] Finish mappings - let it build --- core/build.gradle.kts | 4 - .../entity/type/player/PlayerEntity.java | 2 +- .../org/geysermc/geyser/item/type/Item.java | 9 ++- .../registry/populator/Conversion766_748.java | 78 ++++++++++++------- .../MerchantInventoryTranslator.java | 2 +- .../player/BedrockInteractTranslator.java | 2 +- .../entity/JavaSetPassengersTranslator.java | 4 +- 7 files changed, 63 insertions(+), 38 deletions(-) diff --git a/core/build.gradle.kts b/core/build.gradle.kts index 29cb49dc2..b0ea5fdf6 100644 --- a/core/build.gradle.kts +++ b/core/build.gradle.kts @@ -71,10 +71,6 @@ dependencies { api(libs.events) } -tasks.test { - enabled = false -} - tasks.processResources { // This is solely for backwards compatibility for other programs that used this file before the switch to gradle. // It used to be generated by the maven Git-Commit-Id-Plugin diff --git a/core/src/main/java/org/geysermc/geyser/entity/type/player/PlayerEntity.java b/core/src/main/java/org/geysermc/geyser/entity/type/player/PlayerEntity.java index 7a443d6e8..2bdbb56df 100644 --- a/core/src/main/java/org/geysermc/geyser/entity/type/player/PlayerEntity.java +++ b/core/src/main/java/org/geysermc/geyser/entity/type/player/PlayerEntity.java @@ -335,7 +335,7 @@ public class PlayerEntity extends LivingEntity implements GeyserPlayerEntity { parrot.updateBedrockMetadata(); SetEntityLinkPacket linkPacket = new SetEntityLinkPacket(); EntityLinkData.Type type = isLeft ? EntityLinkData.Type.RIDER : EntityLinkData.Type.PASSENGER; - linkPacket.setEntityLink(new EntityLinkData(geyserId, parrot.getGeyserId(), type, false, false)); + linkPacket.setEntityLink(new EntityLinkData(geyserId, parrot.getGeyserId(), type, false, false, 0f)); // Delay, or else spawned-in players won't get the link // TODO: Find a better solution. session.scheduleInEventLoop(() -> session.sendUpstreamPacket(linkPacket), 500, TimeUnit.MILLISECONDS); diff --git a/core/src/main/java/org/geysermc/geyser/item/type/Item.java b/core/src/main/java/org/geysermc/geyser/item/type/Item.java index 9b2603284..b12ab4d67 100644 --- a/core/src/main/java/org/geysermc/geyser/item/type/Item.java +++ b/core/src/main/java/org/geysermc/geyser/item/type/Item.java @@ -64,11 +64,13 @@ public class Item { protected final Key javaIdentifier; private int javaId = -1; private final int attackDamage; - private final DataComponents baseComponents; // unmodifiable + private DataComponents baseComponents; // unmodifiable public Item(String javaIdentifier, Builder builder) { this.javaIdentifier = MinecraftKey.key(javaIdentifier); - this.baseComponents = builder.components == null ? Registries.DEFAULT_DATA_COMPONENTS.get(javaId) : builder.components; + if (builder.components != null) { + this.baseComponents = builder.components; + } this.attackDamage = builder.attackDamage; } @@ -272,6 +274,9 @@ public class Item { throw new RuntimeException("Item ID has already been set!"); } this.javaId = javaId; + if (this.baseComponents == null) { + this.baseComponents = Registries.DEFAULT_DATA_COMPONENTS.get(javaId); + } } @Override diff --git a/core/src/main/java/org/geysermc/geyser/registry/populator/Conversion766_748.java b/core/src/main/java/org/geysermc/geyser/registry/populator/Conversion766_748.java index 79265552f..4568d0154 100644 --- a/core/src/main/java/org/geysermc/geyser/registry/populator/Conversion766_748.java +++ b/core/src/main/java/org/geysermc/geyser/registry/populator/Conversion766_748.java @@ -25,19 +25,20 @@ package org.geysermc.geyser.registry.populator; -import io.jsonwebtoken.lang.Collections; import org.cloudburstmc.nbt.NbtMap; -import org.geysermc.geyser.GeyserImpl; +import org.cloudburstmc.nbt.NbtMapBuilder; import org.geysermc.geyser.level.block.Blocks; import java.util.ArrayList; import java.util.List; +import java.util.Set; public class Conversion766_748 { - static List newBlockIds = new ArrayList<>(); - static List bedrockIds = new ArrayList<>(); // TODO temp remove + static List PALE_WOODEN_BLOCKS = new ArrayList<>(); + static List OTHER_NEW_BLOCKS = new ArrayList<>(); + static { - var blocks = Collections.of( + Set.of( Blocks.PALE_OAK_WOOD, Blocks.PALE_OAK_PLANKS, Blocks.PALE_OAK_SAPLING, @@ -45,27 +46,29 @@ public class Conversion766_748 { Blocks.STRIPPED_PALE_OAK_LOG, Blocks.STRIPPED_PALE_OAK_WOOD, Blocks.PALE_OAK_LEAVES, - Blocks.PALE_OAK_SIGN, - Blocks.PALE_OAK_WALL_SIGN, Blocks.PALE_OAK_HANGING_SIGN, - Blocks.PALE_OAK_WALL_HANGING_SIGN, Blocks.PALE_OAK_PRESSURE_PLATE, Blocks.PALE_OAK_TRAPDOOR, - Blocks.POTTED_PALE_OAK_SAPLING, Blocks.PALE_OAK_BUTTON, Blocks.PALE_OAK_STAIRS, Blocks.PALE_OAK_SLAB, Blocks.PALE_OAK_FENCE_GATE, Blocks.PALE_OAK_FENCE, - Blocks.PALE_OAK_DOOR, + Blocks.PALE_OAK_DOOR + ).forEach(block -> PALE_WOODEN_BLOCKS.add(block.javaIdentifier().value())); + + // Some things are of course stupid + PALE_WOODEN_BLOCKS.add("pale_oak_standing_sign"); + PALE_WOODEN_BLOCKS.add("pale_oak_wall_sign"); + PALE_WOODEN_BLOCKS.add("pale_oak_double_slab"); + + Set.of( Blocks.PALE_MOSS_BLOCK, Blocks.PALE_MOSS_CARPET, Blocks.PALE_HANGING_MOSS, Blocks.OPEN_EYEBLOSSOM, Blocks.CLOSED_EYEBLOSSOM, - Blocks.POTTED_OPEN_EYEBLOSSOM, - Blocks.POTTED_CLOSED_EYEBLOSSOM, Blocks.RESIN_CLUMP, Blocks.RESIN_BLOCK, @@ -76,29 +79,50 @@ public class Conversion766_748 { Blocks.CHISELED_RESIN_BRICKS, Blocks.CREAKING_HEART - ); + ).forEach(block -> OTHER_NEW_BLOCKS.add(block.javaIdentifier().value())); - blocks.forEach(block -> newBlockIds.add(block.javaIdentifier().value())); + OTHER_NEW_BLOCKS.add("resin_brick_double_slab"); } static NbtMap remapBlock(NbtMap tag) { - - GeyserImpl.getInstance().getLogger().info(tag.toString()); - - String name = tag.getString("name"); - if (newBlockIds.contains(name)) { - bedrockIds.add(name); - // TODO - return tag.toBuilder() - .putCompound("states", NbtMap.builder().build()) - .putString("name", "minecraft:unknown") - .build(); + String name = tag.getString("name").replace("minecraft:", ""); + if (PALE_WOODEN_BLOCKS.contains(name)) { + return withName(tag, name.replace("pale_oak", "birch")); } - if (name.contains("resin") || name.contains("creaking") || name.contains("pale")) { - throw new RuntimeException("ya missed " + name); + if (OTHER_NEW_BLOCKS.contains(name)) { + return switch (name) { + case "resin_brick_double_slab" -> withName(tag,"red_sandstone_double_slab"); + case "pale_moss_block" -> withName(tag, "moss_block"); + case "pale_moss_carpet" -> withoutStates("moss_carpet"); + case "pale_hanging_moss" -> withoutStates("hanging_roots"); + case "open_eyeblossom" -> withoutStates("oxeye_daisy"); + case "closed_eyeblossom" -> withoutStates("white_tulip"); + case "resin_clump" -> withoutStates("unknown"); + case "resin_block" -> withoutStates("red_sandstone"); + case "resin_bricks" -> withoutStates("cut_red_sandstone"); + case "resin_brick_stairs" -> withName(tag, "red_sandstone_stairs"); + case "resin_brick_slab" -> withName(tag, "red_sandstone_slab"); + case "resin_brick_wall" -> withName(tag, "red_sandstone_wall"); + case "chiseled_resin_bricks" -> withName(tag, "chiseled_red_sandstone"); + case "creaking_heart" -> withoutStates("chiseled_polished_blackstone"); + default -> throw new IllegalStateException("missing replacement for new block! " + name); + }; } return tag; } + + static NbtMap withName(NbtMap tag, String name) { + NbtMapBuilder builder = tag.toBuilder(); + builder.replace("name", "minecraft:" + name); + return builder.build(); + } + + static NbtMap withoutStates(String name) { + NbtMapBuilder tagBuilder = NbtMap.builder(); + tagBuilder.putString("name", "minecraft:" + name); + tagBuilder.putCompound("states", NbtMap.builder().build()); + return tagBuilder.build(); + } } diff --git a/core/src/main/java/org/geysermc/geyser/translator/inventory/MerchantInventoryTranslator.java b/core/src/main/java/org/geysermc/geyser/translator/inventory/MerchantInventoryTranslator.java index c67b3b190..4ac159981 100644 --- a/core/src/main/java/org/geysermc/geyser/translator/inventory/MerchantInventoryTranslator.java +++ b/core/src/main/java/org/geysermc/geyser/translator/inventory/MerchantInventoryTranslator.java @@ -112,7 +112,7 @@ public class MerchantInventoryTranslator extends BaseInventoryTranslator { SetEntityLinkPacket linkPacket = new SetEntityLinkPacket(); EntityLinkData.Type type = EntityLinkData.Type.PASSENGER; - linkPacket.setEntityLink(new EntityLinkData(session.getPlayerEntity().getGeyserId(), geyserId, type, true, false)); + linkPacket.setEntityLink(new EntityLinkData(session.getPlayerEntity().getGeyserId(), geyserId, type, true, false, 0f)); session.sendUpstreamPacket(linkPacket); merchantInventory.setVillager(villager); diff --git a/core/src/main/java/org/geysermc/geyser/translator/protocol/bedrock/entity/player/BedrockInteractTranslator.java b/core/src/main/java/org/geysermc/geyser/translator/protocol/bedrock/entity/player/BedrockInteractTranslator.java index 2df77ad16..62487b20d 100644 --- a/core/src/main/java/org/geysermc/geyser/translator/protocol/bedrock/entity/player/BedrockInteractTranslator.java +++ b/core/src/main/java/org/geysermc/geyser/translator/protocol/bedrock/entity/player/BedrockInteractTranslator.java @@ -91,7 +91,7 @@ public class BedrockInteractTranslator extends PacketTranslator // If the server doesn't agree with our dismount (sends a packet saying we dismounted), // then remount the player. SetEntityLinkPacket linkPacket = new SetEntityLinkPacket(); - linkPacket.setEntityLink(new EntityLinkData(vehicleBedrockId, session.getPlayerEntity().getGeyserId(), EntityLinkData.Type.PASSENGER, true, false)); + linkPacket.setEntityLink(new EntityLinkData(vehicleBedrockId, session.getPlayerEntity().getGeyserId(), EntityLinkData.Type.PASSENGER, true, false, 0f)); session.sendUpstreamPacket(linkPacket); } }, 1, TimeUnit.SECONDS)); diff --git a/core/src/main/java/org/geysermc/geyser/translator/protocol/java/entity/JavaSetPassengersTranslator.java b/core/src/main/java/org/geysermc/geyser/translator/protocol/java/entity/JavaSetPassengersTranslator.java index 865ca0464..fe4a13748 100644 --- a/core/src/main/java/org/geysermc/geyser/translator/protocol/java/entity/JavaSetPassengersTranslator.java +++ b/core/src/main/java/org/geysermc/geyser/translator/protocol/java/entity/JavaSetPassengersTranslator.java @@ -70,7 +70,7 @@ public class JavaSetPassengersTranslator extends PacketTranslator Date: Thu, 5 Dec 2024 18:16:09 +0800 Subject: [PATCH 13/31] Include item_data_components.json, target new mappings --- .../DataComponentRegistryPopulator.java | 2 +- .../resources/java/item_data_components.json | 19962 ++++++++++++++++ core/src/main/resources/mappings | 2 +- 3 files changed, 19964 insertions(+), 2 deletions(-) create mode 100644 core/src/main/resources/java/item_data_components.json diff --git a/core/src/main/java/org/geysermc/geyser/registry/populator/DataComponentRegistryPopulator.java b/core/src/main/java/org/geysermc/geyser/registry/populator/DataComponentRegistryPopulator.java index 0c89760b1..386c795d2 100644 --- a/core/src/main/java/org/geysermc/geyser/registry/populator/DataComponentRegistryPopulator.java +++ b/core/src/main/java/org/geysermc/geyser/registry/populator/DataComponentRegistryPopulator.java @@ -54,7 +54,7 @@ public final class DataComponentRegistryPopulator { public static void populate() { GeyserBootstrap bootstrap = GeyserImpl.getInstance().getBootstrap(); List defaultComponents; - try (InputStream stream = bootstrap.getResourceOrThrow("mappings/item_data_components.json")) { + try (InputStream stream = bootstrap.getResourceOrThrow("java/item_data_components.json")) { JsonElement rootElement = JsonParser.parseReader(new InputStreamReader(stream)); JsonArray jsonArray = rootElement.getAsJsonArray(); diff --git a/core/src/main/resources/java/item_data_components.json b/core/src/main/resources/java/item_data_components.json new file mode 100644 index 000000000..141666fc9 --- /dev/null +++ b/core/src/main/resources/java/item_data_components.json @@ -0,0 +1,19962 @@ +[ + { + "id": 0, + "key": "minecraft:air", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bw1taW5lY3JhZnQ6YWly", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAE2Jsb2NrLm1pbmVjcmFmdC5haXIA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1, + "key": "minecraft:stone", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bw9taW5lY3JhZnQ6c3RvbmU=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFWJsb2NrLm1pbmVjcmFmdC5zdG9uZQA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 2, + "key": "minecraft:granite", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxFtaW5lY3JhZnQ6Z3Jhbml0ZQ==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAF2Jsb2NrLm1pbmVjcmFmdC5ncmFuaXRlAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 3, + "key": "minecraft:polished_granite", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxptaW5lY3JhZnQ6cG9saXNoZWRfZ3Jhbml0ZQ==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGJsb2NrLm1pbmVjcmFmdC5wb2xpc2hlZF9ncmFuaXRlAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 4, + "key": "minecraft:diorite", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxFtaW5lY3JhZnQ6ZGlvcml0ZQ==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAF2Jsb2NrLm1pbmVjcmFmdC5kaW9yaXRlAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 5, + "key": "minecraft:polished_diorite", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxptaW5lY3JhZnQ6cG9saXNoZWRfZGlvcml0ZQ==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGJsb2NrLm1pbmVjcmFmdC5wb2xpc2hlZF9kaW9yaXRlAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 6, + "key": "minecraft:andesite", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxJtaW5lY3JhZnQ6YW5kZXNpdGU=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGGJsb2NrLm1pbmVjcmFmdC5hbmRlc2l0ZQA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 7, + "key": "minecraft:polished_andesite", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxttaW5lY3JhZnQ6cG9saXNoZWRfYW5kZXNpdGU=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWJsb2NrLm1pbmVjcmFmdC5wb2xpc2hlZF9hbmRlc2l0ZQA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 8, + "key": "minecraft:deepslate", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxNtaW5lY3JhZnQ6ZGVlcHNsYXRl", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGWJsb2NrLm1pbmVjcmFmdC5kZWVwc2xhdGUA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 9, + "key": "minecraft:cobbled_deepslate", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxttaW5lY3JhZnQ6Y29iYmxlZF9kZWVwc2xhdGU=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWJsb2NrLm1pbmVjcmFmdC5jb2JibGVkX2RlZXBzbGF0ZQA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 10, + "key": "minecraft:polished_deepslate", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxxtaW5lY3JhZnQ6cG9saXNoZWRfZGVlcHNsYXRl", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAImJsb2NrLm1pbmVjcmFmdC5wb2xpc2hlZF9kZWVwc2xhdGUA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 11, + "key": "minecraft:calcite", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxFtaW5lY3JhZnQ6Y2FsY2l0ZQ==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAF2Jsb2NrLm1pbmVjcmFmdC5jYWxjaXRlAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 12, + "key": "minecraft:tuff", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bw5taW5lY3JhZnQ6dHVmZg==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFGJsb2NrLm1pbmVjcmFmdC50dWZmAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 13, + "key": "minecraft:tuff_slab", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxNtaW5lY3JhZnQ6dHVmZl9zbGFi", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGWJsb2NrLm1pbmVjcmFmdC50dWZmX3NsYWIA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 14, + "key": "minecraft:tuff_stairs", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6dHVmZl9zdGFpcnM=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC50dWZmX3N0YWlycwA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 15, + "key": "minecraft:tuff_wall", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxNtaW5lY3JhZnQ6dHVmZl93YWxs", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGWJsb2NrLm1pbmVjcmFmdC50dWZmX3dhbGwA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 16, + "key": "minecraft:chiseled_tuff", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6Y2hpc2VsZWRfdHVmZg==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5jaGlzZWxlZF90dWZmAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 17, + "key": "minecraft:polished_tuff", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6cG9saXNoZWRfdHVmZg==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5wb2xpc2hlZF90dWZmAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 18, + "key": "minecraft:polished_tuff_slab", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxxtaW5lY3JhZnQ6cG9saXNoZWRfdHVmZl9zbGFi", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAImJsb2NrLm1pbmVjcmFmdC5wb2xpc2hlZF90dWZmX3NsYWIA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 19, + "key": "minecraft:polished_tuff_stairs", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx5taW5lY3JhZnQ6cG9saXNoZWRfdHVmZl9zdGFpcnM=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJGJsb2NrLm1pbmVjcmFmdC5wb2xpc2hlZF90dWZmX3N0YWlycwA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 20, + "key": "minecraft:polished_tuff_wall", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxxtaW5lY3JhZnQ6cG9saXNoZWRfdHVmZl93YWxs", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAImJsb2NrLm1pbmVjcmFmdC5wb2xpc2hlZF90dWZmX3dhbGwA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 21, + "key": "minecraft:tuff_bricks", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6dHVmZl9icmlja3M=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC50dWZmX2JyaWNrcwA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 22, + "key": "minecraft:tuff_brick_slab", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxltaW5lY3JhZnQ6dHVmZl9icmlja19zbGFi", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC50dWZmX2JyaWNrX3NsYWIA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 23, + "key": "minecraft:tuff_brick_stairs", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxttaW5lY3JhZnQ6dHVmZl9icmlja19zdGFpcnM=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWJsb2NrLm1pbmVjcmFmdC50dWZmX2JyaWNrX3N0YWlycwA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 24, + "key": "minecraft:tuff_brick_wall", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxltaW5lY3JhZnQ6dHVmZl9icmlja193YWxs", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC50dWZmX2JyaWNrX3dhbGwA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 25, + "key": "minecraft:chiseled_tuff_bricks", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx5taW5lY3JhZnQ6Y2hpc2VsZWRfdHVmZl9icmlja3M=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJGJsb2NrLm1pbmVjcmFmdC5jaGlzZWxlZF90dWZmX2JyaWNrcwA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 26, + "key": "minecraft:dripstone_block", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxltaW5lY3JhZnQ6ZHJpcHN0b25lX2Jsb2Nr", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC5kcmlwc3RvbmVfYmxvY2sA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 27, + "key": "minecraft:grass_block", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6Z3Jhc3NfYmxvY2s=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5ncmFzc19ibG9jawA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 28, + "key": "minecraft:dirt", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bw5taW5lY3JhZnQ6ZGlydA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFGJsb2NrLm1pbmVjcmFmdC5kaXJ0AA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 29, + "key": "minecraft:coarse_dirt", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6Y29hcnNlX2RpcnQ=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5jb2Fyc2VfZGlydAA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 30, + "key": "minecraft:podzol", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxBtaW5lY3JhZnQ6cG9kem9s", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFmJsb2NrLm1pbmVjcmFmdC5wb2R6b2wA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 31, + "key": "minecraft:rooted_dirt", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6cm9vdGVkX2RpcnQ=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5yb290ZWRfZGlydAA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 32, + "key": "minecraft:mud", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bw1taW5lY3JhZnQ6bXVk", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAE2Jsb2NrLm1pbmVjcmFmdC5tdWQA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 33, + "key": "minecraft:crimson_nylium", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxhtaW5lY3JhZnQ6Y3JpbXNvbl9ueWxpdW0=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC5jcmltc29uX255bGl1bQA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 34, + "key": "minecraft:warped_nylium", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6d2FycGVkX255bGl1bQ==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC53YXJwZWRfbnlsaXVtAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 35, + "key": "minecraft:cobblestone", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6Y29iYmxlc3RvbmU=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5jb2JibGVzdG9uZQA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 36, + "key": "minecraft:oak_planks", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxRtaW5lY3JhZnQ6b2FrX3BsYW5rcw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC5vYWtfcGxhbmtzAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 37, + "key": "minecraft:spruce_planks", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6c3BydWNlX3BsYW5rcw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5zcHJ1Y2VfcGxhbmtzAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 38, + "key": "minecraft:birch_planks", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxZtaW5lY3JhZnQ6YmlyY2hfcGxhbmtz", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC5iaXJjaF9wbGFua3MA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 39, + "key": "minecraft:jungle_planks", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6anVuZ2xlX3BsYW5rcw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5qdW5nbGVfcGxhbmtzAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 40, + "key": "minecraft:acacia_planks", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6YWNhY2lhX3BsYW5rcw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5hY2FjaWFfcGxhbmtzAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 41, + "key": "minecraft:cherry_planks", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6Y2hlcnJ5X3BsYW5rcw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5jaGVycnlfcGxhbmtzAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 42, + "key": "minecraft:dark_oak_planks", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxltaW5lY3JhZnQ6ZGFya19vYWtfcGxhbmtz", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC5kYXJrX29ha19wbGFua3MA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 43, + "key": "minecraft:pale_oak_planks", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxltaW5lY3JhZnQ6cGFsZV9vYWtfcGxhbmtz", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC5wYWxlX29ha19wbGFua3MA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 44, + "key": "minecraft:mangrove_planks", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxltaW5lY3JhZnQ6bWFuZ3JvdmVfcGxhbmtz", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC5tYW5ncm92ZV9wbGFua3MA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 45, + "key": "minecraft:bamboo_planks", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6YmFtYm9vX3BsYW5rcw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5iYW1ib29fcGxhbmtzAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 46, + "key": "minecraft:crimson_planks", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxhtaW5lY3JhZnQ6Y3JpbXNvbl9wbGFua3M=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC5jcmltc29uX3BsYW5rcwA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 47, + "key": "minecraft:warped_planks", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6d2FycGVkX3BsYW5rcw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC53YXJwZWRfcGxhbmtzAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 48, + "key": "minecraft:bamboo_mosaic", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6YmFtYm9vX21vc2FpYw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5iYW1ib29fbW9zYWljAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 49, + "key": "minecraft:oak_sapling", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6b2FrX3NhcGxpbmc=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5vYWtfc2FwbGluZwA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 50, + "key": "minecraft:spruce_sapling", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxhtaW5lY3JhZnQ6c3BydWNlX3NhcGxpbmc=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC5zcHJ1Y2Vfc2FwbGluZwA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 51, + "key": "minecraft:birch_sapling", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6YmlyY2hfc2FwbGluZw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5iaXJjaF9zYXBsaW5nAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 52, + "key": "minecraft:jungle_sapling", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxhtaW5lY3JhZnQ6anVuZ2xlX3NhcGxpbmc=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC5qdW5nbGVfc2FwbGluZwA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 53, + "key": "minecraft:acacia_sapling", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxhtaW5lY3JhZnQ6YWNhY2lhX3NhcGxpbmc=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC5hY2FjaWFfc2FwbGluZwA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 54, + "key": "minecraft:cherry_sapling", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxhtaW5lY3JhZnQ6Y2hlcnJ5X3NhcGxpbmc=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC5jaGVycnlfc2FwbGluZwA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 55, + "key": "minecraft:dark_oak_sapling", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxptaW5lY3JhZnQ6ZGFya19vYWtfc2FwbGluZw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGJsb2NrLm1pbmVjcmFmdC5kYXJrX29ha19zYXBsaW5nAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 56, + "key": "minecraft:pale_oak_sapling", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxptaW5lY3JhZnQ6cGFsZV9vYWtfc2FwbGluZw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGJsb2NrLm1pbmVjcmFmdC5wYWxlX29ha19zYXBsaW5nAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 57, + "key": "minecraft:mangrove_propagule", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxxtaW5lY3JhZnQ6bWFuZ3JvdmVfcHJvcGFndWxl", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAImJsb2NrLm1pbmVjcmFmdC5tYW5ncm92ZV9wcm9wYWd1bGUA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 58, + "key": "minecraft:bedrock", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxFtaW5lY3JhZnQ6YmVkcm9jaw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAF2Jsb2NrLm1pbmVjcmFmdC5iZWRyb2NrAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 59, + "key": "minecraft:sand", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bw5taW5lY3JhZnQ6c2FuZA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFGJsb2NrLm1pbmVjcmFmdC5zYW5kAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 60, + "key": "minecraft:suspicious_sand", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxltaW5lY3JhZnQ6c3VzcGljaW91c19zYW5k", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC5zdXNwaWNpb3VzX3NhbmQA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 61, + "key": "minecraft:suspicious_gravel", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxttaW5lY3JhZnQ6c3VzcGljaW91c19ncmF2ZWw=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWJsb2NrLm1pbmVjcmFmdC5zdXNwaWNpb3VzX2dyYXZlbAA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 62, + "key": "minecraft:red_sand", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxJtaW5lY3JhZnQ6cmVkX3NhbmQ=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGGJsb2NrLm1pbmVjcmFmdC5yZWRfc2FuZAA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 63, + "key": "minecraft:gravel", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxBtaW5lY3JhZnQ6Z3JhdmVs", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFmJsb2NrLm1pbmVjcmFmdC5ncmF2ZWwA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 64, + "key": "minecraft:coal_ore", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxJtaW5lY3JhZnQ6Y29hbF9vcmU=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGGJsb2NrLm1pbmVjcmFmdC5jb2FsX29yZQA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 65, + "key": "minecraft:deepslate_coal_ore", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxxtaW5lY3JhZnQ6ZGVlcHNsYXRlX2NvYWxfb3Jl", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAImJsb2NrLm1pbmVjcmFmdC5kZWVwc2xhdGVfY29hbF9vcmUA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 66, + "key": "minecraft:iron_ore", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxJtaW5lY3JhZnQ6aXJvbl9vcmU=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGGJsb2NrLm1pbmVjcmFmdC5pcm9uX29yZQA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 67, + "key": "minecraft:deepslate_iron_ore", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxxtaW5lY3JhZnQ6ZGVlcHNsYXRlX2lyb25fb3Jl", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAImJsb2NrLm1pbmVjcmFmdC5kZWVwc2xhdGVfaXJvbl9vcmUA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 68, + "key": "minecraft:copper_ore", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxRtaW5lY3JhZnQ6Y29wcGVyX29yZQ==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC5jb3BwZXJfb3JlAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 69, + "key": "minecraft:deepslate_copper_ore", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx5taW5lY3JhZnQ6ZGVlcHNsYXRlX2NvcHBlcl9vcmU=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJGJsb2NrLm1pbmVjcmFmdC5kZWVwc2xhdGVfY29wcGVyX29yZQA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 70, + "key": "minecraft:gold_ore", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxJtaW5lY3JhZnQ6Z29sZF9vcmU=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGGJsb2NrLm1pbmVjcmFmdC5nb2xkX29yZQA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 71, + "key": "minecraft:deepslate_gold_ore", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxxtaW5lY3JhZnQ6ZGVlcHNsYXRlX2dvbGRfb3Jl", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAImJsb2NrLm1pbmVjcmFmdC5kZWVwc2xhdGVfZ29sZF9vcmUA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 72, + "key": "minecraft:redstone_ore", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxZtaW5lY3JhZnQ6cmVkc3RvbmVfb3Jl", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC5yZWRzdG9uZV9vcmUA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 73, + "key": "minecraft:deepslate_redstone_ore", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByBtaW5lY3JhZnQ6ZGVlcHNsYXRlX3JlZHN0b25lX29yZQ==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJmJsb2NrLm1pbmVjcmFmdC5kZWVwc2xhdGVfcmVkc3RvbmVfb3JlAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 74, + "key": "minecraft:emerald_ore", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6ZW1lcmFsZF9vcmU=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5lbWVyYWxkX29yZQA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 75, + "key": "minecraft:deepslate_emerald_ore", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx9taW5lY3JhZnQ6ZGVlcHNsYXRlX2VtZXJhbGRfb3Jl", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWJsb2NrLm1pbmVjcmFmdC5kZWVwc2xhdGVfZW1lcmFsZF9vcmUA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 76, + "key": "minecraft:lapis_ore", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxNtaW5lY3JhZnQ6bGFwaXNfb3Jl", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGWJsb2NrLm1pbmVjcmFmdC5sYXBpc19vcmUA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 77, + "key": "minecraft:deepslate_lapis_ore", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx1taW5lY3JhZnQ6ZGVlcHNsYXRlX2xhcGlzX29yZQ==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2Jsb2NrLm1pbmVjcmFmdC5kZWVwc2xhdGVfbGFwaXNfb3JlAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 78, + "key": "minecraft:diamond_ore", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6ZGlhbW9uZF9vcmU=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5kaWFtb25kX29yZQA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 79, + "key": "minecraft:deepslate_diamond_ore", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx9taW5lY3JhZnQ6ZGVlcHNsYXRlX2RpYW1vbmRfb3Jl", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWJsb2NrLm1pbmVjcmFmdC5kZWVwc2xhdGVfZGlhbW9uZF9vcmUA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 80, + "key": "minecraft:nether_gold_ore", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxltaW5lY3JhZnQ6bmV0aGVyX2dvbGRfb3Jl", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC5uZXRoZXJfZ29sZF9vcmUA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 81, + "key": "minecraft:nether_quartz_ore", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxttaW5lY3JhZnQ6bmV0aGVyX3F1YXJ0el9vcmU=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWJsb2NrLm1pbmVjcmFmdC5uZXRoZXJfcXVhcnR6X29yZQA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 82, + "key": "minecraft:ancient_debris", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:damage_resistant": "GRFtaW5lY3JhZnQ6aXNfZmlyZQ==", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxhtaW5lY3JhZnQ6YW5jaWVudF9kZWJyaXM=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC5hbmNpZW50X2RlYnJpcwA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 83, + "key": "minecraft:coal_block", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxRtaW5lY3JhZnQ6Y29hbF9ibG9jaw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC5jb2FsX2Jsb2NrAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 84, + "key": "minecraft:raw_iron_block", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxhtaW5lY3JhZnQ6cmF3X2lyb25fYmxvY2s=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC5yYXdfaXJvbl9ibG9jawA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 85, + "key": "minecraft:raw_copper_block", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxptaW5lY3JhZnQ6cmF3X2NvcHBlcl9ibG9jaw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGJsb2NrLm1pbmVjcmFmdC5yYXdfY29wcGVyX2Jsb2NrAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 86, + "key": "minecraft:raw_gold_block", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxhtaW5lY3JhZnQ6cmF3X2dvbGRfYmxvY2s=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC5yYXdfZ29sZF9ibG9jawA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 87, + "key": "minecraft:heavy_core", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxRtaW5lY3JhZnQ6aGVhdnlfY29yZQ==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC5oZWF2eV9jb3JlAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQM=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 88, + "key": "minecraft:amethyst_block", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxhtaW5lY3JhZnQ6YW1ldGh5c3RfYmxvY2s=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC5hbWV0aHlzdF9ibG9jawA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 89, + "key": "minecraft:budding_amethyst", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxptaW5lY3JhZnQ6YnVkZGluZ19hbWV0aHlzdA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGJsb2NrLm1pbmVjcmFmdC5idWRkaW5nX2FtZXRoeXN0AA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 90, + "key": "minecraft:iron_block", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxRtaW5lY3JhZnQ6aXJvbl9ibG9jaw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC5pcm9uX2Jsb2NrAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 91, + "key": "minecraft:copper_block", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxZtaW5lY3JhZnQ6Y29wcGVyX2Jsb2Nr", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC5jb3BwZXJfYmxvY2sA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 92, + "key": "minecraft:gold_block", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxRtaW5lY3JhZnQ6Z29sZF9ibG9jaw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC5nb2xkX2Jsb2NrAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 93, + "key": "minecraft:diamond_block", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6ZGlhbW9uZF9ibG9jaw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5kaWFtb25kX2Jsb2NrAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 94, + "key": "minecraft:netherite_block", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:damage_resistant": "GRFtaW5lY3JhZnQ6aXNfZmlyZQ==", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxltaW5lY3JhZnQ6bmV0aGVyaXRlX2Jsb2Nr", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC5uZXRoZXJpdGVfYmxvY2sA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 95, + "key": "minecraft:exposed_copper", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxhtaW5lY3JhZnQ6ZXhwb3NlZF9jb3BwZXI=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC5leHBvc2VkX2NvcHBlcgA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 96, + "key": "minecraft:weathered_copper", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxptaW5lY3JhZnQ6d2VhdGhlcmVkX2NvcHBlcg==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGJsb2NrLm1pbmVjcmFmdC53ZWF0aGVyZWRfY29wcGVyAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 97, + "key": "minecraft:oxidized_copper", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxltaW5lY3JhZnQ6b3hpZGl6ZWRfY29wcGVy", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC5veGlkaXplZF9jb3BwZXIA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 98, + "key": "minecraft:chiseled_copper", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxltaW5lY3JhZnQ6Y2hpc2VsZWRfY29wcGVy", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC5jaGlzZWxlZF9jb3BwZXIA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 99, + "key": "minecraft:exposed_chiseled_copper", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByFtaW5lY3JhZnQ6ZXhwb3NlZF9jaGlzZWxlZF9jb3BwZXI=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJ2Jsb2NrLm1pbmVjcmFmdC5leHBvc2VkX2NoaXNlbGVkX2NvcHBlcgA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 100, + "key": "minecraft:weathered_chiseled_copper", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByNtaW5lY3JhZnQ6d2VhdGhlcmVkX2NoaXNlbGVkX2NvcHBlcg==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAKWJsb2NrLm1pbmVjcmFmdC53ZWF0aGVyZWRfY2hpc2VsZWRfY29wcGVyAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 101, + "key": "minecraft:oxidized_chiseled_copper", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByJtaW5lY3JhZnQ6b3hpZGl6ZWRfY2hpc2VsZWRfY29wcGVy", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAKGJsb2NrLm1pbmVjcmFmdC5veGlkaXplZF9jaGlzZWxlZF9jb3BwZXIA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 102, + "key": "minecraft:cut_copper", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxRtaW5lY3JhZnQ6Y3V0X2NvcHBlcg==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC5jdXRfY29wcGVyAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 103, + "key": "minecraft:exposed_cut_copper", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxxtaW5lY3JhZnQ6ZXhwb3NlZF9jdXRfY29wcGVy", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAImJsb2NrLm1pbmVjcmFmdC5leHBvc2VkX2N1dF9jb3BwZXIA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 104, + "key": "minecraft:weathered_cut_copper", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx5taW5lY3JhZnQ6d2VhdGhlcmVkX2N1dF9jb3BwZXI=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJGJsb2NrLm1pbmVjcmFmdC53ZWF0aGVyZWRfY3V0X2NvcHBlcgA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 105, + "key": "minecraft:oxidized_cut_copper", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx1taW5lY3JhZnQ6b3hpZGl6ZWRfY3V0X2NvcHBlcg==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2Jsb2NrLm1pbmVjcmFmdC5veGlkaXplZF9jdXRfY29wcGVyAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 106, + "key": "minecraft:cut_copper_stairs", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxttaW5lY3JhZnQ6Y3V0X2NvcHBlcl9zdGFpcnM=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWJsb2NrLm1pbmVjcmFmdC5jdXRfY29wcGVyX3N0YWlycwA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 107, + "key": "minecraft:exposed_cut_copper_stairs", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByNtaW5lY3JhZnQ6ZXhwb3NlZF9jdXRfY29wcGVyX3N0YWlycw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAKWJsb2NrLm1pbmVjcmFmdC5leHBvc2VkX2N1dF9jb3BwZXJfc3RhaXJzAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 108, + "key": "minecraft:weathered_cut_copper_stairs", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByVtaW5lY3JhZnQ6d2VhdGhlcmVkX2N1dF9jb3BwZXJfc3RhaXJz", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAK2Jsb2NrLm1pbmVjcmFmdC53ZWF0aGVyZWRfY3V0X2NvcHBlcl9zdGFpcnMA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 109, + "key": "minecraft:oxidized_cut_copper_stairs", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByRtaW5lY3JhZnQ6b3hpZGl6ZWRfY3V0X2NvcHBlcl9zdGFpcnM=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAKmJsb2NrLm1pbmVjcmFmdC5veGlkaXplZF9jdXRfY29wcGVyX3N0YWlycwA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 110, + "key": "minecraft:cut_copper_slab", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxltaW5lY3JhZnQ6Y3V0X2NvcHBlcl9zbGFi", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC5jdXRfY29wcGVyX3NsYWIA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 111, + "key": "minecraft:exposed_cut_copper_slab", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByFtaW5lY3JhZnQ6ZXhwb3NlZF9jdXRfY29wcGVyX3NsYWI=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJ2Jsb2NrLm1pbmVjcmFmdC5leHBvc2VkX2N1dF9jb3BwZXJfc2xhYgA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 112, + "key": "minecraft:weathered_cut_copper_slab", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByNtaW5lY3JhZnQ6d2VhdGhlcmVkX2N1dF9jb3BwZXJfc2xhYg==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAKWJsb2NrLm1pbmVjcmFmdC53ZWF0aGVyZWRfY3V0X2NvcHBlcl9zbGFiAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 113, + "key": "minecraft:oxidized_cut_copper_slab", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByJtaW5lY3JhZnQ6b3hpZGl6ZWRfY3V0X2NvcHBlcl9zbGFi", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAKGJsb2NrLm1pbmVjcmFmdC5veGlkaXplZF9jdXRfY29wcGVyX3NsYWIA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 114, + "key": "minecraft:waxed_copper_block", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxxtaW5lY3JhZnQ6d2F4ZWRfY29wcGVyX2Jsb2Nr", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAImJsb2NrLm1pbmVjcmFmdC53YXhlZF9jb3BwZXJfYmxvY2sA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 115, + "key": "minecraft:waxed_exposed_copper", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx5taW5lY3JhZnQ6d2F4ZWRfZXhwb3NlZF9jb3BwZXI=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJGJsb2NrLm1pbmVjcmFmdC53YXhlZF9leHBvc2VkX2NvcHBlcgA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 116, + "key": "minecraft:waxed_weathered_copper", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByBtaW5lY3JhZnQ6d2F4ZWRfd2VhdGhlcmVkX2NvcHBlcg==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJmJsb2NrLm1pbmVjcmFmdC53YXhlZF93ZWF0aGVyZWRfY29wcGVyAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 117, + "key": "minecraft:waxed_oxidized_copper", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx9taW5lY3JhZnQ6d2F4ZWRfb3hpZGl6ZWRfY29wcGVy", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWJsb2NrLm1pbmVjcmFmdC53YXhlZF9veGlkaXplZF9jb3BwZXIA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 118, + "key": "minecraft:waxed_chiseled_copper", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx9taW5lY3JhZnQ6d2F4ZWRfY2hpc2VsZWRfY29wcGVy", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWJsb2NrLm1pbmVjcmFmdC53YXhlZF9jaGlzZWxlZF9jb3BwZXIA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 119, + "key": "minecraft:waxed_exposed_chiseled_copper", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BydtaW5lY3JhZnQ6d2F4ZWRfZXhwb3NlZF9jaGlzZWxlZF9jb3BwZXI=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUALWJsb2NrLm1pbmVjcmFmdC53YXhlZF9leHBvc2VkX2NoaXNlbGVkX2NvcHBlcgA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 120, + "key": "minecraft:waxed_weathered_chiseled_copper", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByltaW5lY3JhZnQ6d2F4ZWRfd2VhdGhlcmVkX2NoaXNlbGVkX2NvcHBlcg==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAL2Jsb2NrLm1pbmVjcmFmdC53YXhlZF93ZWF0aGVyZWRfY2hpc2VsZWRfY29wcGVyAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 121, + "key": "minecraft:waxed_oxidized_chiseled_copper", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByhtaW5lY3JhZnQ6d2F4ZWRfb3hpZGl6ZWRfY2hpc2VsZWRfY29wcGVy", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUALmJsb2NrLm1pbmVjcmFmdC53YXhlZF9veGlkaXplZF9jaGlzZWxlZF9jb3BwZXIA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 122, + "key": "minecraft:waxed_cut_copper", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxptaW5lY3JhZnQ6d2F4ZWRfY3V0X2NvcHBlcg==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGJsb2NrLm1pbmVjcmFmdC53YXhlZF9jdXRfY29wcGVyAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 123, + "key": "minecraft:waxed_exposed_cut_copper", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByJtaW5lY3JhZnQ6d2F4ZWRfZXhwb3NlZF9jdXRfY29wcGVy", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAKGJsb2NrLm1pbmVjcmFmdC53YXhlZF9leHBvc2VkX2N1dF9jb3BwZXIA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 124, + "key": "minecraft:waxed_weathered_cut_copper", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByRtaW5lY3JhZnQ6d2F4ZWRfd2VhdGhlcmVkX2N1dF9jb3BwZXI=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAKmJsb2NrLm1pbmVjcmFmdC53YXhlZF93ZWF0aGVyZWRfY3V0X2NvcHBlcgA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 125, + "key": "minecraft:waxed_oxidized_cut_copper", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByNtaW5lY3JhZnQ6d2F4ZWRfb3hpZGl6ZWRfY3V0X2NvcHBlcg==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAKWJsb2NrLm1pbmVjcmFmdC53YXhlZF9veGlkaXplZF9jdXRfY29wcGVyAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 126, + "key": "minecraft:waxed_cut_copper_stairs", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByFtaW5lY3JhZnQ6d2F4ZWRfY3V0X2NvcHBlcl9zdGFpcnM=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJ2Jsb2NrLm1pbmVjcmFmdC53YXhlZF9jdXRfY29wcGVyX3N0YWlycwA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 127, + "key": "minecraft:waxed_exposed_cut_copper_stairs", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByltaW5lY3JhZnQ6d2F4ZWRfZXhwb3NlZF9jdXRfY29wcGVyX3N0YWlycw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAL2Jsb2NrLm1pbmVjcmFmdC53YXhlZF9leHBvc2VkX2N1dF9jb3BwZXJfc3RhaXJzAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 128, + "key": "minecraft:waxed_weathered_cut_copper_stairs", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByttaW5lY3JhZnQ6d2F4ZWRfd2VhdGhlcmVkX2N1dF9jb3BwZXJfc3RhaXJz", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAMWJsb2NrLm1pbmVjcmFmdC53YXhlZF93ZWF0aGVyZWRfY3V0X2NvcHBlcl9zdGFpcnMA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 129, + "key": "minecraft:waxed_oxidized_cut_copper_stairs", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByptaW5lY3JhZnQ6d2F4ZWRfb3hpZGl6ZWRfY3V0X2NvcHBlcl9zdGFpcnM=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAMGJsb2NrLm1pbmVjcmFmdC53YXhlZF9veGlkaXplZF9jdXRfY29wcGVyX3N0YWlycwA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 130, + "key": "minecraft:waxed_cut_copper_slab", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx9taW5lY3JhZnQ6d2F4ZWRfY3V0X2NvcHBlcl9zbGFi", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWJsb2NrLm1pbmVjcmFmdC53YXhlZF9jdXRfY29wcGVyX3NsYWIA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 131, + "key": "minecraft:waxed_exposed_cut_copper_slab", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BydtaW5lY3JhZnQ6d2F4ZWRfZXhwb3NlZF9jdXRfY29wcGVyX3NsYWI=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUALWJsb2NrLm1pbmVjcmFmdC53YXhlZF9leHBvc2VkX2N1dF9jb3BwZXJfc2xhYgA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 132, + "key": "minecraft:waxed_weathered_cut_copper_slab", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByltaW5lY3JhZnQ6d2F4ZWRfd2VhdGhlcmVkX2N1dF9jb3BwZXJfc2xhYg==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAL2Jsb2NrLm1pbmVjcmFmdC53YXhlZF93ZWF0aGVyZWRfY3V0X2NvcHBlcl9zbGFiAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 133, + "key": "minecraft:waxed_oxidized_cut_copper_slab", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByhtaW5lY3JhZnQ6d2F4ZWRfb3hpZGl6ZWRfY3V0X2NvcHBlcl9zbGFi", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUALmJsb2NrLm1pbmVjcmFmdC53YXhlZF9veGlkaXplZF9jdXRfY29wcGVyX3NsYWIA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 134, + "key": "minecraft:oak_log", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxFtaW5lY3JhZnQ6b2FrX2xvZw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAF2Jsb2NrLm1pbmVjcmFmdC5vYWtfbG9nAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 135, + "key": "minecraft:spruce_log", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxRtaW5lY3JhZnQ6c3BydWNlX2xvZw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC5zcHJ1Y2VfbG9nAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 136, + "key": "minecraft:birch_log", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxNtaW5lY3JhZnQ6YmlyY2hfbG9n", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGWJsb2NrLm1pbmVjcmFmdC5iaXJjaF9sb2cA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 137, + "key": "minecraft:jungle_log", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxRtaW5lY3JhZnQ6anVuZ2xlX2xvZw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC5qdW5nbGVfbG9nAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 138, + "key": "minecraft:acacia_log", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxRtaW5lY3JhZnQ6YWNhY2lhX2xvZw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC5hY2FjaWFfbG9nAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 139, + "key": "minecraft:cherry_log", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxRtaW5lY3JhZnQ6Y2hlcnJ5X2xvZw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC5jaGVycnlfbG9nAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 140, + "key": "minecraft:pale_oak_log", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxZtaW5lY3JhZnQ6cGFsZV9vYWtfbG9n", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC5wYWxlX29ha19sb2cA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 141, + "key": "minecraft:dark_oak_log", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxZtaW5lY3JhZnQ6ZGFya19vYWtfbG9n", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC5kYXJrX29ha19sb2cA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 142, + "key": "minecraft:mangrove_log", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxZtaW5lY3JhZnQ6bWFuZ3JvdmVfbG9n", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC5tYW5ncm92ZV9sb2cA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 143, + "key": "minecraft:mangrove_roots", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxhtaW5lY3JhZnQ6bWFuZ3JvdmVfcm9vdHM=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC5tYW5ncm92ZV9yb290cwA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 144, + "key": "minecraft:muddy_mangrove_roots", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx5taW5lY3JhZnQ6bXVkZHlfbWFuZ3JvdmVfcm9vdHM=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJGJsb2NrLm1pbmVjcmFmdC5tdWRkeV9tYW5ncm92ZV9yb290cwA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 145, + "key": "minecraft:crimson_stem", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxZtaW5lY3JhZnQ6Y3JpbXNvbl9zdGVt", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC5jcmltc29uX3N0ZW0A", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 146, + "key": "minecraft:warped_stem", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6d2FycGVkX3N0ZW0=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC53YXJwZWRfc3RlbQA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 147, + "key": "minecraft:bamboo_block", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxZtaW5lY3JhZnQ6YmFtYm9vX2Jsb2Nr", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC5iYW1ib29fYmxvY2sA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 148, + "key": "minecraft:stripped_oak_log", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxptaW5lY3JhZnQ6c3RyaXBwZWRfb2FrX2xvZw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGJsb2NrLm1pbmVjcmFmdC5zdHJpcHBlZF9vYWtfbG9nAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 149, + "key": "minecraft:stripped_spruce_log", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx1taW5lY3JhZnQ6c3RyaXBwZWRfc3BydWNlX2xvZw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2Jsb2NrLm1pbmVjcmFmdC5zdHJpcHBlZF9zcHJ1Y2VfbG9nAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 150, + "key": "minecraft:stripped_birch_log", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxxtaW5lY3JhZnQ6c3RyaXBwZWRfYmlyY2hfbG9n", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAImJsb2NrLm1pbmVjcmFmdC5zdHJpcHBlZF9iaXJjaF9sb2cA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 151, + "key": "minecraft:stripped_jungle_log", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx1taW5lY3JhZnQ6c3RyaXBwZWRfanVuZ2xlX2xvZw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2Jsb2NrLm1pbmVjcmFmdC5zdHJpcHBlZF9qdW5nbGVfbG9nAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 152, + "key": "minecraft:stripped_acacia_log", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx1taW5lY3JhZnQ6c3RyaXBwZWRfYWNhY2lhX2xvZw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2Jsb2NrLm1pbmVjcmFmdC5zdHJpcHBlZF9hY2FjaWFfbG9nAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 153, + "key": "minecraft:stripped_cherry_log", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx1taW5lY3JhZnQ6c3RyaXBwZWRfY2hlcnJ5X2xvZw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2Jsb2NrLm1pbmVjcmFmdC5zdHJpcHBlZF9jaGVycnlfbG9nAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 154, + "key": "minecraft:stripped_dark_oak_log", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx9taW5lY3JhZnQ6c3RyaXBwZWRfZGFya19vYWtfbG9n", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWJsb2NrLm1pbmVjcmFmdC5zdHJpcHBlZF9kYXJrX29ha19sb2cA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 155, + "key": "minecraft:stripped_pale_oak_log", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx9taW5lY3JhZnQ6c3RyaXBwZWRfcGFsZV9vYWtfbG9n", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWJsb2NrLm1pbmVjcmFmdC5zdHJpcHBlZF9wYWxlX29ha19sb2cA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 156, + "key": "minecraft:stripped_mangrove_log", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx9taW5lY3JhZnQ6c3RyaXBwZWRfbWFuZ3JvdmVfbG9n", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWJsb2NrLm1pbmVjcmFmdC5zdHJpcHBlZF9tYW5ncm92ZV9sb2cA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 157, + "key": "minecraft:stripped_crimson_stem", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx9taW5lY3JhZnQ6c3RyaXBwZWRfY3JpbXNvbl9zdGVt", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWJsb2NrLm1pbmVjcmFmdC5zdHJpcHBlZF9jcmltc29uX3N0ZW0A", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 158, + "key": "minecraft:stripped_warped_stem", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx5taW5lY3JhZnQ6c3RyaXBwZWRfd2FycGVkX3N0ZW0=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJGJsb2NrLm1pbmVjcmFmdC5zdHJpcHBlZF93YXJwZWRfc3RlbQA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 159, + "key": "minecraft:stripped_oak_wood", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxttaW5lY3JhZnQ6c3RyaXBwZWRfb2FrX3dvb2Q=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWJsb2NrLm1pbmVjcmFmdC5zdHJpcHBlZF9vYWtfd29vZAA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 160, + "key": "minecraft:stripped_spruce_wood", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx5taW5lY3JhZnQ6c3RyaXBwZWRfc3BydWNlX3dvb2Q=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJGJsb2NrLm1pbmVjcmFmdC5zdHJpcHBlZF9zcHJ1Y2Vfd29vZAA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 161, + "key": "minecraft:stripped_birch_wood", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx1taW5lY3JhZnQ6c3RyaXBwZWRfYmlyY2hfd29vZA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2Jsb2NrLm1pbmVjcmFmdC5zdHJpcHBlZF9iaXJjaF93b29kAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 162, + "key": "minecraft:stripped_jungle_wood", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx5taW5lY3JhZnQ6c3RyaXBwZWRfanVuZ2xlX3dvb2Q=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJGJsb2NrLm1pbmVjcmFmdC5zdHJpcHBlZF9qdW5nbGVfd29vZAA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 163, + "key": "minecraft:stripped_acacia_wood", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx5taW5lY3JhZnQ6c3RyaXBwZWRfYWNhY2lhX3dvb2Q=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJGJsb2NrLm1pbmVjcmFmdC5zdHJpcHBlZF9hY2FjaWFfd29vZAA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 164, + "key": "minecraft:stripped_cherry_wood", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx5taW5lY3JhZnQ6c3RyaXBwZWRfY2hlcnJ5X3dvb2Q=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJGJsb2NrLm1pbmVjcmFmdC5zdHJpcHBlZF9jaGVycnlfd29vZAA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 165, + "key": "minecraft:stripped_dark_oak_wood", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByBtaW5lY3JhZnQ6c3RyaXBwZWRfZGFya19vYWtfd29vZA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJmJsb2NrLm1pbmVjcmFmdC5zdHJpcHBlZF9kYXJrX29ha193b29kAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 166, + "key": "minecraft:stripped_pale_oak_wood", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByBtaW5lY3JhZnQ6c3RyaXBwZWRfcGFsZV9vYWtfd29vZA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJmJsb2NrLm1pbmVjcmFmdC5zdHJpcHBlZF9wYWxlX29ha193b29kAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 167, + "key": "minecraft:stripped_mangrove_wood", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByBtaW5lY3JhZnQ6c3RyaXBwZWRfbWFuZ3JvdmVfd29vZA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJmJsb2NrLm1pbmVjcmFmdC5zdHJpcHBlZF9tYW5ncm92ZV93b29kAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 168, + "key": "minecraft:stripped_crimson_hyphae", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByFtaW5lY3JhZnQ6c3RyaXBwZWRfY3JpbXNvbl9oeXBoYWU=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJ2Jsb2NrLm1pbmVjcmFmdC5zdHJpcHBlZF9jcmltc29uX2h5cGhhZQA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 169, + "key": "minecraft:stripped_warped_hyphae", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByBtaW5lY3JhZnQ6c3RyaXBwZWRfd2FycGVkX2h5cGhhZQ==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJmJsb2NrLm1pbmVjcmFmdC5zdHJpcHBlZF93YXJwZWRfaHlwaGFlAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 170, + "key": "minecraft:stripped_bamboo_block", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx9taW5lY3JhZnQ6c3RyaXBwZWRfYmFtYm9vX2Jsb2Nr", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWJsb2NrLm1pbmVjcmFmdC5zdHJpcHBlZF9iYW1ib29fYmxvY2sA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 171, + "key": "minecraft:oak_wood", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxJtaW5lY3JhZnQ6b2FrX3dvb2Q=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGGJsb2NrLm1pbmVjcmFmdC5vYWtfd29vZAA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 172, + "key": "minecraft:spruce_wood", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6c3BydWNlX3dvb2Q=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5zcHJ1Y2Vfd29vZAA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 173, + "key": "minecraft:birch_wood", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxRtaW5lY3JhZnQ6YmlyY2hfd29vZA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC5iaXJjaF93b29kAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 174, + "key": "minecraft:jungle_wood", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6anVuZ2xlX3dvb2Q=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5qdW5nbGVfd29vZAA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 175, + "key": "minecraft:acacia_wood", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6YWNhY2lhX3dvb2Q=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5hY2FjaWFfd29vZAA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 176, + "key": "minecraft:cherry_wood", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6Y2hlcnJ5X3dvb2Q=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5jaGVycnlfd29vZAA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 177, + "key": "minecraft:pale_oak_wood", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6cGFsZV9vYWtfd29vZA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5wYWxlX29ha193b29kAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 178, + "key": "minecraft:dark_oak_wood", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6ZGFya19vYWtfd29vZA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5kYXJrX29ha193b29kAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 179, + "key": "minecraft:mangrove_wood", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6bWFuZ3JvdmVfd29vZA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5tYW5ncm92ZV93b29kAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 180, + "key": "minecraft:crimson_hyphae", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxhtaW5lY3JhZnQ6Y3JpbXNvbl9oeXBoYWU=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC5jcmltc29uX2h5cGhhZQA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 181, + "key": "minecraft:warped_hyphae", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6d2FycGVkX2h5cGhhZQ==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC53YXJwZWRfaHlwaGFlAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 182, + "key": "minecraft:oak_leaves", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxRtaW5lY3JhZnQ6b2FrX2xlYXZlcw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC5vYWtfbGVhdmVzAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 183, + "key": "minecraft:spruce_leaves", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6c3BydWNlX2xlYXZlcw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5zcHJ1Y2VfbGVhdmVzAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 184, + "key": "minecraft:birch_leaves", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxZtaW5lY3JhZnQ6YmlyY2hfbGVhdmVz", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC5iaXJjaF9sZWF2ZXMA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 185, + "key": "minecraft:jungle_leaves", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6anVuZ2xlX2xlYXZlcw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5qdW5nbGVfbGVhdmVzAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 186, + "key": "minecraft:acacia_leaves", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6YWNhY2lhX2xlYXZlcw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5hY2FjaWFfbGVhdmVzAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 187, + "key": "minecraft:cherry_leaves", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6Y2hlcnJ5X2xlYXZlcw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5jaGVycnlfbGVhdmVzAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 188, + "key": "minecraft:dark_oak_leaves", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxltaW5lY3JhZnQ6ZGFya19vYWtfbGVhdmVz", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC5kYXJrX29ha19sZWF2ZXMA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 189, + "key": "minecraft:pale_oak_leaves", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxltaW5lY3JhZnQ6cGFsZV9vYWtfbGVhdmVz", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC5wYWxlX29ha19sZWF2ZXMA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 190, + "key": "minecraft:mangrove_leaves", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxltaW5lY3JhZnQ6bWFuZ3JvdmVfbGVhdmVz", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC5tYW5ncm92ZV9sZWF2ZXMA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 191, + "key": "minecraft:azalea_leaves", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6YXphbGVhX2xlYXZlcw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5hemFsZWFfbGVhdmVzAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 192, + "key": "minecraft:flowering_azalea_leaves", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByFtaW5lY3JhZnQ6Zmxvd2VyaW5nX2F6YWxlYV9sZWF2ZXM=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJ2Jsb2NrLm1pbmVjcmFmdC5mbG93ZXJpbmdfYXphbGVhX2xlYXZlcwA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 193, + "key": "minecraft:sponge", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxBtaW5lY3JhZnQ6c3Bvbmdl", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFmJsb2NrLm1pbmVjcmFmdC5zcG9uZ2UA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 194, + "key": "minecraft:wet_sponge", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxRtaW5lY3JhZnQ6d2V0X3Nwb25nZQ==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC53ZXRfc3BvbmdlAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 195, + "key": "minecraft:glass", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bw9taW5lY3JhZnQ6Z2xhc3M=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFWJsb2NrLm1pbmVjcmFmdC5nbGFzcwA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 196, + "key": "minecraft:tinted_glass", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxZtaW5lY3JhZnQ6dGludGVkX2dsYXNz", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC50aW50ZWRfZ2xhc3MA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 197, + "key": "minecraft:lapis_block", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6bGFwaXNfYmxvY2s=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5sYXBpc19ibG9jawA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 198, + "key": "minecraft:sandstone", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxNtaW5lY3JhZnQ6c2FuZHN0b25l", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGWJsb2NrLm1pbmVjcmFmdC5zYW5kc3RvbmUA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 199, + "key": "minecraft:chiseled_sandstone", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxxtaW5lY3JhZnQ6Y2hpc2VsZWRfc2FuZHN0b25l", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAImJsb2NrLm1pbmVjcmFmdC5jaGlzZWxlZF9zYW5kc3RvbmUA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 200, + "key": "minecraft:cut_sandstone", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6Y3V0X3NhbmRzdG9uZQ==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5jdXRfc2FuZHN0b25lAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 201, + "key": "minecraft:cobweb", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxBtaW5lY3JhZnQ6Y29id2Vi", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFmJsb2NrLm1pbmVjcmFmdC5jb2J3ZWIA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 202, + "key": "minecraft:short_grass", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6c2hvcnRfZ3Jhc3M=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5zaG9ydF9ncmFzcwA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 203, + "key": "minecraft:fern", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bw5taW5lY3JhZnQ6ZmVybg==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFGJsb2NrLm1pbmVjcmFmdC5mZXJuAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 204, + "key": "minecraft:azalea", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxBtaW5lY3JhZnQ6YXphbGVh", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFmJsb2NrLm1pbmVjcmFmdC5hemFsZWEA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 205, + "key": "minecraft:flowering_azalea", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxptaW5lY3JhZnQ6Zmxvd2VyaW5nX2F6YWxlYQ==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGJsb2NrLm1pbmVjcmFmdC5mbG93ZXJpbmdfYXphbGVhAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 206, + "key": "minecraft:dead_bush", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxNtaW5lY3JhZnQ6ZGVhZF9idXNo", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGWJsb2NrLm1pbmVjcmFmdC5kZWFkX2J1c2gA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 207, + "key": "minecraft:seagrass", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxJtaW5lY3JhZnQ6c2VhZ3Jhc3M=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGGJsb2NrLm1pbmVjcmFmdC5zZWFncmFzcwA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 208, + "key": "minecraft:sea_pickle", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxRtaW5lY3JhZnQ6c2VhX3BpY2tsZQ==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC5zZWFfcGlja2xlAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 209, + "key": "minecraft:white_wool", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxRtaW5lY3JhZnQ6d2hpdGVfd29vbA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC53aGl0ZV93b29sAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 210, + "key": "minecraft:orange_wool", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6b3JhbmdlX3dvb2w=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5vcmFuZ2Vfd29vbAA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 211, + "key": "minecraft:magenta_wool", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxZtaW5lY3JhZnQ6bWFnZW50YV93b29s", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC5tYWdlbnRhX3dvb2wA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 212, + "key": "minecraft:light_blue_wool", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxltaW5lY3JhZnQ6bGlnaHRfYmx1ZV93b29s", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC5saWdodF9ibHVlX3dvb2wA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 213, + "key": "minecraft:yellow_wool", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6eWVsbG93X3dvb2w=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC55ZWxsb3dfd29vbAA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 214, + "key": "minecraft:lime_wool", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxNtaW5lY3JhZnQ6bGltZV93b29s", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGWJsb2NrLm1pbmVjcmFmdC5saW1lX3dvb2wA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 215, + "key": "minecraft:pink_wool", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxNtaW5lY3JhZnQ6cGlua193b29s", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGWJsb2NrLm1pbmVjcmFmdC5waW5rX3dvb2wA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 216, + "key": "minecraft:gray_wool", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxNtaW5lY3JhZnQ6Z3JheV93b29s", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGWJsb2NrLm1pbmVjcmFmdC5ncmF5X3dvb2wA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 217, + "key": "minecraft:light_gray_wool", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxltaW5lY3JhZnQ6bGlnaHRfZ3JheV93b29s", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC5saWdodF9ncmF5X3dvb2wA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 218, + "key": "minecraft:cyan_wool", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxNtaW5lY3JhZnQ6Y3lhbl93b29s", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGWJsb2NrLm1pbmVjcmFmdC5jeWFuX3dvb2wA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 219, + "key": "minecraft:purple_wool", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6cHVycGxlX3dvb2w=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5wdXJwbGVfd29vbAA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 220, + "key": "minecraft:blue_wool", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxNtaW5lY3JhZnQ6Ymx1ZV93b29s", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGWJsb2NrLm1pbmVjcmFmdC5ibHVlX3dvb2wA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 221, + "key": "minecraft:brown_wool", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxRtaW5lY3JhZnQ6YnJvd25fd29vbA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC5icm93bl93b29sAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 222, + "key": "minecraft:green_wool", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxRtaW5lY3JhZnQ6Z3JlZW5fd29vbA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC5ncmVlbl93b29sAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 223, + "key": "minecraft:red_wool", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxJtaW5lY3JhZnQ6cmVkX3dvb2w=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGGJsb2NrLm1pbmVjcmFmdC5yZWRfd29vbAA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 224, + "key": "minecraft:black_wool", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxRtaW5lY3JhZnQ6YmxhY2tfd29vbA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC5ibGFja193b29sAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 225, + "key": "minecraft:dandelion", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxNtaW5lY3JhZnQ6ZGFuZGVsaW9u", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGWJsb2NrLm1pbmVjcmFmdC5kYW5kZWxpb24A", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 226, + "key": "minecraft:open_eyeblossom", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxltaW5lY3JhZnQ6b3Blbl9leWVibG9zc29t", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC5vcGVuX2V5ZWJsb3Nzb20A", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 227, + "key": "minecraft:closed_eyeblossom", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxttaW5lY3JhZnQ6Y2xvc2VkX2V5ZWJsb3Nzb20=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWJsb2NrLm1pbmVjcmFmdC5jbG9zZWRfZXllYmxvc3NvbQA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 228, + "key": "minecraft:poppy", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bw9taW5lY3JhZnQ6cG9wcHk=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFWJsb2NrLm1pbmVjcmFmdC5wb3BweQA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 229, + "key": "minecraft:blue_orchid", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6Ymx1ZV9vcmNoaWQ=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5ibHVlX29yY2hpZAA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 230, + "key": "minecraft:allium", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxBtaW5lY3JhZnQ6YWxsaXVt", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFmJsb2NrLm1pbmVjcmFmdC5hbGxpdW0A", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 231, + "key": "minecraft:azure_bluet", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6YXp1cmVfYmx1ZXQ=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5henVyZV9ibHVldAA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 232, + "key": "minecraft:red_tulip", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxNtaW5lY3JhZnQ6cmVkX3R1bGlw", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGWJsb2NrLm1pbmVjcmFmdC5yZWRfdHVsaXAA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 233, + "key": "minecraft:orange_tulip", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxZtaW5lY3JhZnQ6b3JhbmdlX3R1bGlw", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC5vcmFuZ2VfdHVsaXAA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 234, + "key": "minecraft:white_tulip", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6d2hpdGVfdHVsaXA=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC53aGl0ZV90dWxpcAA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 235, + "key": "minecraft:pink_tulip", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxRtaW5lY3JhZnQ6cGlua190dWxpcA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC5waW5rX3R1bGlwAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 236, + "key": "minecraft:oxeye_daisy", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6b3hleWVfZGFpc3k=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5veGV5ZV9kYWlzeQA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 237, + "key": "minecraft:cornflower", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxRtaW5lY3JhZnQ6Y29ybmZsb3dlcg==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC5jb3JuZmxvd2VyAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 238, + "key": "minecraft:lily_of_the_valley", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxxtaW5lY3JhZnQ6bGlseV9vZl90aGVfdmFsbGV5", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAImJsb2NrLm1pbmVjcmFmdC5saWx5X29mX3RoZV92YWxsZXkA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 239, + "key": "minecraft:wither_rose", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6d2l0aGVyX3Jvc2U=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC53aXRoZXJfcm9zZQA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 240, + "key": "minecraft:torchflower", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6dG9yY2hmbG93ZXI=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC50b3JjaGZsb3dlcgA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 241, + "key": "minecraft:pitcher_plant", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6cGl0Y2hlcl9wbGFudA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5waXRjaGVyX3BsYW50AA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 242, + "key": "minecraft:spore_blossom", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6c3BvcmVfYmxvc3NvbQ==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5zcG9yZV9ibG9zc29tAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 243, + "key": "minecraft:brown_mushroom", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxhtaW5lY3JhZnQ6YnJvd25fbXVzaHJvb20=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC5icm93bl9tdXNocm9vbQA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 244, + "key": "minecraft:red_mushroom", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxZtaW5lY3JhZnQ6cmVkX211c2hyb29t", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC5yZWRfbXVzaHJvb20A", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 245, + "key": "minecraft:crimson_fungus", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxhtaW5lY3JhZnQ6Y3JpbXNvbl9mdW5ndXM=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC5jcmltc29uX2Z1bmd1cwA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 246, + "key": "minecraft:warped_fungus", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6d2FycGVkX2Z1bmd1cw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC53YXJwZWRfZnVuZ3VzAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 247, + "key": "minecraft:crimson_roots", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6Y3JpbXNvbl9yb290cw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5jcmltc29uX3Jvb3RzAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 248, + "key": "minecraft:warped_roots", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxZtaW5lY3JhZnQ6d2FycGVkX3Jvb3Rz", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC53YXJwZWRfcm9vdHMA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 249, + "key": "minecraft:nether_sprouts", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxhtaW5lY3JhZnQ6bmV0aGVyX3Nwcm91dHM=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC5uZXRoZXJfc3Byb3V0cwA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 250, + "key": "minecraft:weeping_vines", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6d2VlcGluZ192aW5lcw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC53ZWVwaW5nX3ZpbmVzAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 251, + "key": "minecraft:twisting_vines", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxhtaW5lY3JhZnQ6dHdpc3RpbmdfdmluZXM=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC50d2lzdGluZ192aW5lcwA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 252, + "key": "minecraft:sugar_cane", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxRtaW5lY3JhZnQ6c3VnYXJfY2FuZQ==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC5zdWdhcl9jYW5lAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 253, + "key": "minecraft:kelp", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bw5taW5lY3JhZnQ6a2VscA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFGJsb2NrLm1pbmVjcmFmdC5rZWxwAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 254, + "key": "minecraft:pink_petals", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6cGlua19wZXRhbHM=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5waW5rX3BldGFscwA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 255, + "key": "minecraft:moss_carpet", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6bW9zc19jYXJwZXQ=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5tb3NzX2NhcnBldAA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 256, + "key": "minecraft:moss_block", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxRtaW5lY3JhZnQ6bW9zc19ibG9jaw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC5tb3NzX2Jsb2NrAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 257, + "key": "minecraft:pale_moss_carpet", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxptaW5lY3JhZnQ6cGFsZV9tb3NzX2NhcnBldA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGJsb2NrLm1pbmVjcmFmdC5wYWxlX21vc3NfY2FycGV0AA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 258, + "key": "minecraft:pale_hanging_moss", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxttaW5lY3JhZnQ6cGFsZV9oYW5naW5nX21vc3M=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWJsb2NrLm1pbmVjcmFmdC5wYWxlX2hhbmdpbmdfbW9zcwA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 259, + "key": "minecraft:pale_moss_block", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxltaW5lY3JhZnQ6cGFsZV9tb3NzX2Jsb2Nr", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC5wYWxlX21vc3NfYmxvY2sA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 260, + "key": "minecraft:hanging_roots", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6aGFuZ2luZ19yb290cw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5oYW5naW5nX3Jvb3RzAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 261, + "key": "minecraft:big_dripleaf", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxZtaW5lY3JhZnQ6YmlnX2RyaXBsZWFm", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC5iaWdfZHJpcGxlYWYA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 262, + "key": "minecraft:small_dripleaf", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxhtaW5lY3JhZnQ6c21hbGxfZHJpcGxlYWY=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC5zbWFsbF9kcmlwbGVhZgA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 263, + "key": "minecraft:bamboo", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxBtaW5lY3JhZnQ6YmFtYm9v", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFmJsb2NrLm1pbmVjcmFmdC5iYW1ib28A", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 264, + "key": "minecraft:oak_slab", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxJtaW5lY3JhZnQ6b2FrX3NsYWI=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGGJsb2NrLm1pbmVjcmFmdC5vYWtfc2xhYgA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 265, + "key": "minecraft:spruce_slab", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6c3BydWNlX3NsYWI=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5zcHJ1Y2Vfc2xhYgA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 266, + "key": "minecraft:birch_slab", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxRtaW5lY3JhZnQ6YmlyY2hfc2xhYg==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC5iaXJjaF9zbGFiAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 267, + "key": "minecraft:jungle_slab", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6anVuZ2xlX3NsYWI=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5qdW5nbGVfc2xhYgA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 268, + "key": "minecraft:acacia_slab", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6YWNhY2lhX3NsYWI=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5hY2FjaWFfc2xhYgA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 269, + "key": "minecraft:cherry_slab", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6Y2hlcnJ5X3NsYWI=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5jaGVycnlfc2xhYgA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 270, + "key": "minecraft:dark_oak_slab", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6ZGFya19vYWtfc2xhYg==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5kYXJrX29ha19zbGFiAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 271, + "key": "minecraft:pale_oak_slab", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6cGFsZV9vYWtfc2xhYg==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5wYWxlX29ha19zbGFiAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 272, + "key": "minecraft:mangrove_slab", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6bWFuZ3JvdmVfc2xhYg==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5tYW5ncm92ZV9zbGFiAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 273, + "key": "minecraft:bamboo_slab", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6YmFtYm9vX3NsYWI=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5iYW1ib29fc2xhYgA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 274, + "key": "minecraft:bamboo_mosaic_slab", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxxtaW5lY3JhZnQ6YmFtYm9vX21vc2FpY19zbGFi", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAImJsb2NrLm1pbmVjcmFmdC5iYW1ib29fbW9zYWljX3NsYWIA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 275, + "key": "minecraft:crimson_slab", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxZtaW5lY3JhZnQ6Y3JpbXNvbl9zbGFi", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC5jcmltc29uX3NsYWIA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 276, + "key": "minecraft:warped_slab", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6d2FycGVkX3NsYWI=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC53YXJwZWRfc2xhYgA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 277, + "key": "minecraft:stone_slab", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxRtaW5lY3JhZnQ6c3RvbmVfc2xhYg==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC5zdG9uZV9zbGFiAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 278, + "key": "minecraft:smooth_stone_slab", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxttaW5lY3JhZnQ6c21vb3RoX3N0b25lX3NsYWI=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWJsb2NrLm1pbmVjcmFmdC5zbW9vdGhfc3RvbmVfc2xhYgA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 279, + "key": "minecraft:sandstone_slab", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxhtaW5lY3JhZnQ6c2FuZHN0b25lX3NsYWI=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC5zYW5kc3RvbmVfc2xhYgA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 280, + "key": "minecraft:cut_sandstone_slab", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxxtaW5lY3JhZnQ6Y3V0X3NhbmRzdG9uZV9zbGFi", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAImJsb2NrLm1pbmVjcmFmdC5jdXRfc2FuZHN0b25lX3NsYWIA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 281, + "key": "minecraft:petrified_oak_slab", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxxtaW5lY3JhZnQ6cGV0cmlmaWVkX29ha19zbGFi", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAImJsb2NrLm1pbmVjcmFmdC5wZXRyaWZpZWRfb2FrX3NsYWIA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 282, + "key": "minecraft:cobblestone_slab", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxptaW5lY3JhZnQ6Y29iYmxlc3RvbmVfc2xhYg==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGJsb2NrLm1pbmVjcmFmdC5jb2JibGVzdG9uZV9zbGFiAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 283, + "key": "minecraft:brick_slab", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxRtaW5lY3JhZnQ6YnJpY2tfc2xhYg==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC5icmlja19zbGFiAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 284, + "key": "minecraft:stone_brick_slab", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxptaW5lY3JhZnQ6c3RvbmVfYnJpY2tfc2xhYg==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGJsb2NrLm1pbmVjcmFmdC5zdG9uZV9icmlja19zbGFiAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 285, + "key": "minecraft:mud_brick_slab", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxhtaW5lY3JhZnQ6bXVkX2JyaWNrX3NsYWI=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC5tdWRfYnJpY2tfc2xhYgA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 286, + "key": "minecraft:nether_brick_slab", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxttaW5lY3JhZnQ6bmV0aGVyX2JyaWNrX3NsYWI=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWJsb2NrLm1pbmVjcmFmdC5uZXRoZXJfYnJpY2tfc2xhYgA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 287, + "key": "minecraft:quartz_slab", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6cXVhcnR6X3NsYWI=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5xdWFydHpfc2xhYgA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 288, + "key": "minecraft:red_sandstone_slab", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxxtaW5lY3JhZnQ6cmVkX3NhbmRzdG9uZV9zbGFi", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAImJsb2NrLm1pbmVjcmFmdC5yZWRfc2FuZHN0b25lX3NsYWIA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 289, + "key": "minecraft:cut_red_sandstone_slab", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByBtaW5lY3JhZnQ6Y3V0X3JlZF9zYW5kc3RvbmVfc2xhYg==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJmJsb2NrLm1pbmVjcmFmdC5jdXRfcmVkX3NhbmRzdG9uZV9zbGFiAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 290, + "key": "minecraft:purpur_slab", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6cHVycHVyX3NsYWI=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5wdXJwdXJfc2xhYgA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 291, + "key": "minecraft:prismarine_slab", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxltaW5lY3JhZnQ6cHJpc21hcmluZV9zbGFi", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC5wcmlzbWFyaW5lX3NsYWIA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 292, + "key": "minecraft:prismarine_brick_slab", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx9taW5lY3JhZnQ6cHJpc21hcmluZV9icmlja19zbGFi", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWJsb2NrLm1pbmVjcmFmdC5wcmlzbWFyaW5lX2JyaWNrX3NsYWIA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 293, + "key": "minecraft:dark_prismarine_slab", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx5taW5lY3JhZnQ6ZGFya19wcmlzbWFyaW5lX3NsYWI=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJGJsb2NrLm1pbmVjcmFmdC5kYXJrX3ByaXNtYXJpbmVfc2xhYgA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 294, + "key": "minecraft:smooth_quartz", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6c21vb3RoX3F1YXJ0eg==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5zbW9vdGhfcXVhcnR6AA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 295, + "key": "minecraft:smooth_red_sandstone", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx5taW5lY3JhZnQ6c21vb3RoX3JlZF9zYW5kc3RvbmU=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJGJsb2NrLm1pbmVjcmFmdC5zbW9vdGhfcmVkX3NhbmRzdG9uZQA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 296, + "key": "minecraft:smooth_sandstone", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxptaW5lY3JhZnQ6c21vb3RoX3NhbmRzdG9uZQ==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGJsb2NrLm1pbmVjcmFmdC5zbW9vdGhfc2FuZHN0b25lAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 297, + "key": "minecraft:smooth_stone", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxZtaW5lY3JhZnQ6c21vb3RoX3N0b25l", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC5zbW9vdGhfc3RvbmUA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 298, + "key": "minecraft:bricks", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxBtaW5lY3JhZnQ6YnJpY2tz", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFmJsb2NrLm1pbmVjcmFmdC5icmlja3MA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 299, + "key": "minecraft:bookshelf", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxNtaW5lY3JhZnQ6Ym9va3NoZWxm", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGWJsb2NrLm1pbmVjcmFmdC5ib29rc2hlbGYA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 300, + "key": "minecraft:chiseled_bookshelf", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:container": "PgA=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxxtaW5lY3JhZnQ6Y2hpc2VsZWRfYm9va3NoZWxm", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAImJsb2NrLm1pbmVjcmFmdC5jaGlzZWxlZF9ib29rc2hlbGYA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 301, + "key": "minecraft:decorated_pot", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:container": "PgA=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6ZGVjb3JhdGVkX3BvdA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5kZWNvcmF0ZWRfcG90AA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:pot_decorations": "PQS6B7oHuge6Bw==", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 302, + "key": "minecraft:mossy_cobblestone", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxttaW5lY3JhZnQ6bW9zc3lfY29iYmxlc3RvbmU=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWJsb2NrLm1pbmVjcmFmdC5tb3NzeV9jb2JibGVzdG9uZQA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 303, + "key": "minecraft:obsidian", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxJtaW5lY3JhZnQ6b2JzaWRpYW4=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGGJsb2NrLm1pbmVjcmFmdC5vYnNpZGlhbgA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 304, + "key": "minecraft:torch", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bw9taW5lY3JhZnQ6dG9yY2g=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFWJsb2NrLm1pbmVjcmFmdC50b3JjaAA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 305, + "key": "minecraft:end_rod", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxFtaW5lY3JhZnQ6ZW5kX3JvZA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAF2Jsb2NrLm1pbmVjcmFmdC5lbmRfcm9kAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 306, + "key": "minecraft:chorus_plant", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxZtaW5lY3JhZnQ6Y2hvcnVzX3BsYW50", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC5jaG9ydXNfcGxhbnQA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 307, + "key": "minecraft:chorus_flower", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6Y2hvcnVzX2Zsb3dlcg==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5jaG9ydXNfZmxvd2VyAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 308, + "key": "minecraft:purpur_block", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxZtaW5lY3JhZnQ6cHVycHVyX2Jsb2Nr", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC5wdXJwdXJfYmxvY2sA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 309, + "key": "minecraft:purpur_pillar", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6cHVycHVyX3BpbGxhcg==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5wdXJwdXJfcGlsbGFyAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 310, + "key": "minecraft:purpur_stairs", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6cHVycHVyX3N0YWlycw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5wdXJwdXJfc3RhaXJzAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 311, + "key": "minecraft:spawner", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxFtaW5lY3JhZnQ6c3Bhd25lcg==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAF2Jsb2NrLm1pbmVjcmFmdC5zcGF3bmVyAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 312, + "key": "minecraft:creaking_heart", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxhtaW5lY3JhZnQ6Y3JlYWtpbmdfaGVhcnQ=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC5jcmVha2luZ19oZWFydAA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 313, + "key": "minecraft:chest", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:container": "PgA=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bw9taW5lY3JhZnQ6Y2hlc3Q=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFWJsb2NrLm1pbmVjcmFmdC5jaGVzdAA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 314, + "key": "minecraft:crafting_table", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxhtaW5lY3JhZnQ6Y3JhZnRpbmdfdGFibGU=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC5jcmFmdGluZ190YWJsZQA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 315, + "key": "minecraft:farmland", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxJtaW5lY3JhZnQ6ZmFybWxhbmQ=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGGJsb2NrLm1pbmVjcmFmdC5mYXJtbGFuZAA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 316, + "key": "minecraft:furnace", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:container": "PgA=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxFtaW5lY3JhZnQ6ZnVybmFjZQ==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAF2Jsb2NrLm1pbmVjcmFmdC5mdXJuYWNlAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 317, + "key": "minecraft:ladder", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxBtaW5lY3JhZnQ6bGFkZGVy", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFmJsb2NrLm1pbmVjcmFmdC5sYWRkZXIA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 318, + "key": "minecraft:cobblestone_stairs", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxxtaW5lY3JhZnQ6Y29iYmxlc3RvbmVfc3RhaXJz", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAImJsb2NrLm1pbmVjcmFmdC5jb2JibGVzdG9uZV9zdGFpcnMA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 319, + "key": "minecraft:snow", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bw5taW5lY3JhZnQ6c25vdw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFGJsb2NrLm1pbmVjcmFmdC5zbm93AA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 320, + "key": "minecraft:ice", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bw1taW5lY3JhZnQ6aWNl", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAE2Jsb2NrLm1pbmVjcmFmdC5pY2UA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 321, + "key": "minecraft:snow_block", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxRtaW5lY3JhZnQ6c25vd19ibG9jaw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC5zbm93X2Jsb2NrAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 322, + "key": "minecraft:cactus", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxBtaW5lY3JhZnQ6Y2FjdHVz", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFmJsb2NrLm1pbmVjcmFmdC5jYWN0dXMA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 323, + "key": "minecraft:clay", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bw5taW5lY3JhZnQ6Y2xheQ==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFGJsb2NrLm1pbmVjcmFmdC5jbGF5AA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 324, + "key": "minecraft:jukebox", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxFtaW5lY3JhZnQ6anVrZWJveA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAF2Jsb2NrLm1pbmVjcmFmdC5qdWtlYm94AA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 325, + "key": "minecraft:oak_fence", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxNtaW5lY3JhZnQ6b2FrX2ZlbmNl", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGWJsb2NrLm1pbmVjcmFmdC5vYWtfZmVuY2UA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 326, + "key": "minecraft:spruce_fence", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxZtaW5lY3JhZnQ6c3BydWNlX2ZlbmNl", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC5zcHJ1Y2VfZmVuY2UA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 327, + "key": "minecraft:birch_fence", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6YmlyY2hfZmVuY2U=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5iaXJjaF9mZW5jZQA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 328, + "key": "minecraft:jungle_fence", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxZtaW5lY3JhZnQ6anVuZ2xlX2ZlbmNl", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC5qdW5nbGVfZmVuY2UA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 329, + "key": "minecraft:acacia_fence", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxZtaW5lY3JhZnQ6YWNhY2lhX2ZlbmNl", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC5hY2FjaWFfZmVuY2UA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 330, + "key": "minecraft:cherry_fence", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxZtaW5lY3JhZnQ6Y2hlcnJ5X2ZlbmNl", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC5jaGVycnlfZmVuY2UA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 331, + "key": "minecraft:dark_oak_fence", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxhtaW5lY3JhZnQ6ZGFya19vYWtfZmVuY2U=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC5kYXJrX29ha19mZW5jZQA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 332, + "key": "minecraft:pale_oak_fence", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxhtaW5lY3JhZnQ6cGFsZV9vYWtfZmVuY2U=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC5wYWxlX29ha19mZW5jZQA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 333, + "key": "minecraft:mangrove_fence", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxhtaW5lY3JhZnQ6bWFuZ3JvdmVfZmVuY2U=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC5tYW5ncm92ZV9mZW5jZQA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 334, + "key": "minecraft:bamboo_fence", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxZtaW5lY3JhZnQ6YmFtYm9vX2ZlbmNl", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC5iYW1ib29fZmVuY2UA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 335, + "key": "minecraft:crimson_fence", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6Y3JpbXNvbl9mZW5jZQ==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5jcmltc29uX2ZlbmNlAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 336, + "key": "minecraft:warped_fence", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxZtaW5lY3JhZnQ6d2FycGVkX2ZlbmNl", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC53YXJwZWRfZmVuY2UA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 337, + "key": "minecraft:pumpkin", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxFtaW5lY3JhZnQ6cHVtcGtpbg==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAF2Jsb2NrLm1pbmVjcmFmdC5wdW1wa2luAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 338, + "key": "minecraft:carved_pumpkin", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:equippable": "HARHAAEabWluZWNyYWZ0Om1pc2MvcHVtcGtpbmJsdXIAAQAB", + "minecraft:item_model": "BxhtaW5lY3JhZnQ6Y2FydmVkX3B1bXBraW4=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC5jYXJ2ZWRfcHVtcGtpbgA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 339, + "key": "minecraft:jack_o_lantern", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxhtaW5lY3JhZnQ6amFja19vX2xhbnRlcm4=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC5qYWNrX29fbGFudGVybgA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 340, + "key": "minecraft:netherrack", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxRtaW5lY3JhZnQ6bmV0aGVycmFjaw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC5uZXRoZXJyYWNrAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 341, + "key": "minecraft:soul_sand", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxNtaW5lY3JhZnQ6c291bF9zYW5k", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGWJsb2NrLm1pbmVjcmFmdC5zb3VsX3NhbmQA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 342, + "key": "minecraft:soul_soil", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxNtaW5lY3JhZnQ6c291bF9zb2ls", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGWJsb2NrLm1pbmVjcmFmdC5zb3VsX3NvaWwA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 343, + "key": "minecraft:basalt", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxBtaW5lY3JhZnQ6YmFzYWx0", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFmJsb2NrLm1pbmVjcmFmdC5iYXNhbHQA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 344, + "key": "minecraft:polished_basalt", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxltaW5lY3JhZnQ6cG9saXNoZWRfYmFzYWx0", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC5wb2xpc2hlZF9iYXNhbHQA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 345, + "key": "minecraft:smooth_basalt", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6c21vb3RoX2Jhc2FsdA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5zbW9vdGhfYmFzYWx0AA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 346, + "key": "minecraft:soul_torch", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxRtaW5lY3JhZnQ6c291bF90b3JjaA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC5zb3VsX3RvcmNoAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 347, + "key": "minecraft:glowstone", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxNtaW5lY3JhZnQ6Z2xvd3N0b25l", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGWJsb2NrLm1pbmVjcmFmdC5nbG93c3RvbmUA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 348, + "key": "minecraft:infested_stone", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxhtaW5lY3JhZnQ6aW5mZXN0ZWRfc3RvbmU=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC5pbmZlc3RlZF9zdG9uZQA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 349, + "key": "minecraft:infested_cobblestone", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx5taW5lY3JhZnQ6aW5mZXN0ZWRfY29iYmxlc3RvbmU=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJGJsb2NrLm1pbmVjcmFmdC5pbmZlc3RlZF9jb2JibGVzdG9uZQA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 350, + "key": "minecraft:infested_stone_bricks", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx9taW5lY3JhZnQ6aW5mZXN0ZWRfc3RvbmVfYnJpY2tz", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWJsb2NrLm1pbmVjcmFmdC5pbmZlc3RlZF9zdG9uZV9icmlja3MA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 351, + "key": "minecraft:infested_mossy_stone_bricks", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByVtaW5lY3JhZnQ6aW5mZXN0ZWRfbW9zc3lfc3RvbmVfYnJpY2tz", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAK2Jsb2NrLm1pbmVjcmFmdC5pbmZlc3RlZF9tb3NzeV9zdG9uZV9icmlja3MA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 352, + "key": "minecraft:infested_cracked_stone_bricks", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BydtaW5lY3JhZnQ6aW5mZXN0ZWRfY3JhY2tlZF9zdG9uZV9icmlja3M=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUALWJsb2NrLm1pbmVjcmFmdC5pbmZlc3RlZF9jcmFja2VkX3N0b25lX2JyaWNrcwA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 353, + "key": "minecraft:infested_chiseled_stone_bricks", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByhtaW5lY3JhZnQ6aW5mZXN0ZWRfY2hpc2VsZWRfc3RvbmVfYnJpY2tz", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUALmJsb2NrLm1pbmVjcmFmdC5pbmZlc3RlZF9jaGlzZWxlZF9zdG9uZV9icmlja3MA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 354, + "key": "minecraft:infested_deepslate", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxxtaW5lY3JhZnQ6aW5mZXN0ZWRfZGVlcHNsYXRl", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAImJsb2NrLm1pbmVjcmFmdC5pbmZlc3RlZF9kZWVwc2xhdGUA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 355, + "key": "minecraft:stone_bricks", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxZtaW5lY3JhZnQ6c3RvbmVfYnJpY2tz", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC5zdG9uZV9icmlja3MA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 356, + "key": "minecraft:mossy_stone_bricks", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxxtaW5lY3JhZnQ6bW9zc3lfc3RvbmVfYnJpY2tz", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAImJsb2NrLm1pbmVjcmFmdC5tb3NzeV9zdG9uZV9icmlja3MA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 357, + "key": "minecraft:cracked_stone_bricks", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx5taW5lY3JhZnQ6Y3JhY2tlZF9zdG9uZV9icmlja3M=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJGJsb2NrLm1pbmVjcmFmdC5jcmFja2VkX3N0b25lX2JyaWNrcwA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 358, + "key": "minecraft:chiseled_stone_bricks", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx9taW5lY3JhZnQ6Y2hpc2VsZWRfc3RvbmVfYnJpY2tz", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWJsb2NrLm1pbmVjcmFmdC5jaGlzZWxlZF9zdG9uZV9icmlja3MA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 359, + "key": "minecraft:packed_mud", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxRtaW5lY3JhZnQ6cGFja2VkX211ZA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC5wYWNrZWRfbXVkAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 360, + "key": "minecraft:mud_bricks", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxRtaW5lY3JhZnQ6bXVkX2JyaWNrcw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC5tdWRfYnJpY2tzAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 361, + "key": "minecraft:deepslate_bricks", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxptaW5lY3JhZnQ6ZGVlcHNsYXRlX2JyaWNrcw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGJsb2NrLm1pbmVjcmFmdC5kZWVwc2xhdGVfYnJpY2tzAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 362, + "key": "minecraft:cracked_deepslate_bricks", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByJtaW5lY3JhZnQ6Y3JhY2tlZF9kZWVwc2xhdGVfYnJpY2tz", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAKGJsb2NrLm1pbmVjcmFmdC5jcmFja2VkX2RlZXBzbGF0ZV9icmlja3MA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 363, + "key": "minecraft:deepslate_tiles", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxltaW5lY3JhZnQ6ZGVlcHNsYXRlX3RpbGVz", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC5kZWVwc2xhdGVfdGlsZXMA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 364, + "key": "minecraft:cracked_deepslate_tiles", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByFtaW5lY3JhZnQ6Y3JhY2tlZF9kZWVwc2xhdGVfdGlsZXM=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJ2Jsb2NrLm1pbmVjcmFmdC5jcmFja2VkX2RlZXBzbGF0ZV90aWxlcwA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 365, + "key": "minecraft:chiseled_deepslate", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxxtaW5lY3JhZnQ6Y2hpc2VsZWRfZGVlcHNsYXRl", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAImJsb2NrLm1pbmVjcmFmdC5jaGlzZWxlZF9kZWVwc2xhdGUA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 366, + "key": "minecraft:reinforced_deepslate", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx5taW5lY3JhZnQ6cmVpbmZvcmNlZF9kZWVwc2xhdGU=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJGJsb2NrLm1pbmVjcmFmdC5yZWluZm9yY2VkX2RlZXBzbGF0ZQA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 367, + "key": "minecraft:brown_mushroom_block", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx5taW5lY3JhZnQ6YnJvd25fbXVzaHJvb21fYmxvY2s=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJGJsb2NrLm1pbmVjcmFmdC5icm93bl9tdXNocm9vbV9ibG9jawA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 368, + "key": "minecraft:red_mushroom_block", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxxtaW5lY3JhZnQ6cmVkX211c2hyb29tX2Jsb2Nr", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAImJsb2NrLm1pbmVjcmFmdC5yZWRfbXVzaHJvb21fYmxvY2sA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 369, + "key": "minecraft:mushroom_stem", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6bXVzaHJvb21fc3RlbQ==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5tdXNocm9vbV9zdGVtAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 370, + "key": "minecraft:iron_bars", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxNtaW5lY3JhZnQ6aXJvbl9iYXJz", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGWJsb2NrLm1pbmVjcmFmdC5pcm9uX2JhcnMA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 371, + "key": "minecraft:chain", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bw9taW5lY3JhZnQ6Y2hhaW4=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFWJsb2NrLm1pbmVjcmFmdC5jaGFpbgA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 372, + "key": "minecraft:glass_pane", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxRtaW5lY3JhZnQ6Z2xhc3NfcGFuZQ==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC5nbGFzc19wYW5lAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 373, + "key": "minecraft:melon", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bw9taW5lY3JhZnQ6bWVsb24=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFWJsb2NrLm1pbmVjcmFmdC5tZWxvbgA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 374, + "key": "minecraft:vine", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bw5taW5lY3JhZnQ6dmluZQ==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFGJsb2NrLm1pbmVjcmFmdC52aW5lAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 375, + "key": "minecraft:glow_lichen", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6Z2xvd19saWNoZW4=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5nbG93X2xpY2hlbgA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 376, + "key": "minecraft:resin_clump", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6cmVzaW5fY2x1bXA=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGml0ZW0ubWluZWNyYWZ0LnJlc2luX2NsdW1wAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 377, + "key": "minecraft:resin_block", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6cmVzaW5fYmxvY2s=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5yZXNpbl9ibG9jawA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 378, + "key": "minecraft:resin_bricks", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxZtaW5lY3JhZnQ6cmVzaW5fYnJpY2tz", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC5yZXNpbl9icmlja3MA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 379, + "key": "minecraft:resin_brick_stairs", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxxtaW5lY3JhZnQ6cmVzaW5fYnJpY2tfc3RhaXJz", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAImJsb2NrLm1pbmVjcmFmdC5yZXNpbl9icmlja19zdGFpcnMA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 380, + "key": "minecraft:resin_brick_slab", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxptaW5lY3JhZnQ6cmVzaW5fYnJpY2tfc2xhYg==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGJsb2NrLm1pbmVjcmFmdC5yZXNpbl9icmlja19zbGFiAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 381, + "key": "minecraft:resin_brick_wall", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxptaW5lY3JhZnQ6cmVzaW5fYnJpY2tfd2FsbA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGJsb2NrLm1pbmVjcmFmdC5yZXNpbl9icmlja193YWxsAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 382, + "key": "minecraft:chiseled_resin_bricks", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx9taW5lY3JhZnQ6Y2hpc2VsZWRfcmVzaW5fYnJpY2tz", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWJsb2NrLm1pbmVjcmFmdC5jaGlzZWxlZF9yZXNpbl9icmlja3MA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 383, + "key": "minecraft:brick_stairs", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxZtaW5lY3JhZnQ6YnJpY2tfc3RhaXJz", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC5icmlja19zdGFpcnMA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 384, + "key": "minecraft:stone_brick_stairs", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxxtaW5lY3JhZnQ6c3RvbmVfYnJpY2tfc3RhaXJz", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAImJsb2NrLm1pbmVjcmFmdC5zdG9uZV9icmlja19zdGFpcnMA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 385, + "key": "minecraft:mud_brick_stairs", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxptaW5lY3JhZnQ6bXVkX2JyaWNrX3N0YWlycw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGJsb2NrLm1pbmVjcmFmdC5tdWRfYnJpY2tfc3RhaXJzAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 386, + "key": "minecraft:mycelium", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxJtaW5lY3JhZnQ6bXljZWxpdW0=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGGJsb2NrLm1pbmVjcmFmdC5teWNlbGl1bQA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 387, + "key": "minecraft:lily_pad", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxJtaW5lY3JhZnQ6bGlseV9wYWQ=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGGJsb2NrLm1pbmVjcmFmdC5saWx5X3BhZAA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 388, + "key": "minecraft:nether_bricks", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6bmV0aGVyX2JyaWNrcw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5uZXRoZXJfYnJpY2tzAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 389, + "key": "minecraft:cracked_nether_bricks", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx9taW5lY3JhZnQ6Y3JhY2tlZF9uZXRoZXJfYnJpY2tz", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWJsb2NrLm1pbmVjcmFmdC5jcmFja2VkX25ldGhlcl9icmlja3MA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 390, + "key": "minecraft:chiseled_nether_bricks", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByBtaW5lY3JhZnQ6Y2hpc2VsZWRfbmV0aGVyX2JyaWNrcw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJmJsb2NrLm1pbmVjcmFmdC5jaGlzZWxlZF9uZXRoZXJfYnJpY2tzAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 391, + "key": "minecraft:nether_brick_fence", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxxtaW5lY3JhZnQ6bmV0aGVyX2JyaWNrX2ZlbmNl", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAImJsb2NrLm1pbmVjcmFmdC5uZXRoZXJfYnJpY2tfZmVuY2UA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 392, + "key": "minecraft:nether_brick_stairs", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx1taW5lY3JhZnQ6bmV0aGVyX2JyaWNrX3N0YWlycw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2Jsb2NrLm1pbmVjcmFmdC5uZXRoZXJfYnJpY2tfc3RhaXJzAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 393, + "key": "minecraft:sculk", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bw9taW5lY3JhZnQ6c2N1bGs=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFWJsb2NrLm1pbmVjcmFmdC5zY3VsawA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 394, + "key": "minecraft:sculk_vein", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxRtaW5lY3JhZnQ6c2N1bGtfdmVpbg==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC5zY3Vsa192ZWluAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 395, + "key": "minecraft:sculk_catalyst", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxhtaW5lY3JhZnQ6c2N1bGtfY2F0YWx5c3Q=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC5zY3Vsa19jYXRhbHlzdAA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 396, + "key": "minecraft:sculk_shrieker", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxhtaW5lY3JhZnQ6c2N1bGtfc2hyaWVrZXI=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC5zY3Vsa19zaHJpZWtlcgA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 397, + "key": "minecraft:enchanting_table", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxptaW5lY3JhZnQ6ZW5jaGFudGluZ190YWJsZQ==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGJsb2NrLm1pbmVjcmFmdC5lbmNoYW50aW5nX3RhYmxlAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 398, + "key": "minecraft:end_portal_frame", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxptaW5lY3JhZnQ6ZW5kX3BvcnRhbF9mcmFtZQ==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGJsb2NrLm1pbmVjcmFmdC5lbmRfcG9ydGFsX2ZyYW1lAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 399, + "key": "minecraft:end_stone", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxNtaW5lY3JhZnQ6ZW5kX3N0b25l", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGWJsb2NrLm1pbmVjcmFmdC5lbmRfc3RvbmUA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 400, + "key": "minecraft:end_stone_bricks", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxptaW5lY3JhZnQ6ZW5kX3N0b25lX2JyaWNrcw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGJsb2NrLm1pbmVjcmFmdC5lbmRfc3RvbmVfYnJpY2tzAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 401, + "key": "minecraft:dragon_egg", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxRtaW5lY3JhZnQ6ZHJhZ29uX2VnZw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC5kcmFnb25fZWdnAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQM=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 402, + "key": "minecraft:sandstone_stairs", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxptaW5lY3JhZnQ6c2FuZHN0b25lX3N0YWlycw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGJsb2NrLm1pbmVjcmFmdC5zYW5kc3RvbmVfc3RhaXJzAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 403, + "key": "minecraft:ender_chest", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6ZW5kZXJfY2hlc3Q=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5lbmRlcl9jaGVzdAA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 404, + "key": "minecraft:emerald_block", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6ZW1lcmFsZF9ibG9jaw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5lbWVyYWxkX2Jsb2NrAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 405, + "key": "minecraft:oak_stairs", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxRtaW5lY3JhZnQ6b2FrX3N0YWlycw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC5vYWtfc3RhaXJzAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 406, + "key": "minecraft:spruce_stairs", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6c3BydWNlX3N0YWlycw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5zcHJ1Y2Vfc3RhaXJzAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 407, + "key": "minecraft:birch_stairs", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxZtaW5lY3JhZnQ6YmlyY2hfc3RhaXJz", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC5iaXJjaF9zdGFpcnMA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 408, + "key": "minecraft:jungle_stairs", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6anVuZ2xlX3N0YWlycw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5qdW5nbGVfc3RhaXJzAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 409, + "key": "minecraft:acacia_stairs", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6YWNhY2lhX3N0YWlycw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5hY2FjaWFfc3RhaXJzAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 410, + "key": "minecraft:cherry_stairs", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6Y2hlcnJ5X3N0YWlycw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5jaGVycnlfc3RhaXJzAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 411, + "key": "minecraft:dark_oak_stairs", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxltaW5lY3JhZnQ6ZGFya19vYWtfc3RhaXJz", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC5kYXJrX29ha19zdGFpcnMA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 412, + "key": "minecraft:pale_oak_stairs", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxltaW5lY3JhZnQ6cGFsZV9vYWtfc3RhaXJz", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC5wYWxlX29ha19zdGFpcnMA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 413, + "key": "minecraft:mangrove_stairs", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxltaW5lY3JhZnQ6bWFuZ3JvdmVfc3RhaXJz", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC5tYW5ncm92ZV9zdGFpcnMA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 414, + "key": "minecraft:bamboo_stairs", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6YmFtYm9vX3N0YWlycw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5iYW1ib29fc3RhaXJzAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 415, + "key": "minecraft:bamboo_mosaic_stairs", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx5taW5lY3JhZnQ6YmFtYm9vX21vc2FpY19zdGFpcnM=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJGJsb2NrLm1pbmVjcmFmdC5iYW1ib29fbW9zYWljX3N0YWlycwA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 416, + "key": "minecraft:crimson_stairs", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxhtaW5lY3JhZnQ6Y3JpbXNvbl9zdGFpcnM=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC5jcmltc29uX3N0YWlycwA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 417, + "key": "minecraft:warped_stairs", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6d2FycGVkX3N0YWlycw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC53YXJwZWRfc3RhaXJzAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 418, + "key": "minecraft:command_block", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6Y29tbWFuZF9ibG9jaw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5jb21tYW5kX2Jsb2NrAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQM=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 419, + "key": "minecraft:beacon", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxBtaW5lY3JhZnQ6YmVhY29u", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFmJsb2NrLm1pbmVjcmFmdC5iZWFjb24A", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQI=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 420, + "key": "minecraft:cobblestone_wall", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxptaW5lY3JhZnQ6Y29iYmxlc3RvbmVfd2FsbA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGJsb2NrLm1pbmVjcmFmdC5jb2JibGVzdG9uZV93YWxsAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 421, + "key": "minecraft:mossy_cobblestone_wall", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByBtaW5lY3JhZnQ6bW9zc3lfY29iYmxlc3RvbmVfd2FsbA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJmJsb2NrLm1pbmVjcmFmdC5tb3NzeV9jb2JibGVzdG9uZV93YWxsAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 422, + "key": "minecraft:brick_wall", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxRtaW5lY3JhZnQ6YnJpY2tfd2FsbA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC5icmlja193YWxsAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 423, + "key": "minecraft:prismarine_wall", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxltaW5lY3JhZnQ6cHJpc21hcmluZV93YWxs", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC5wcmlzbWFyaW5lX3dhbGwA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 424, + "key": "minecraft:red_sandstone_wall", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxxtaW5lY3JhZnQ6cmVkX3NhbmRzdG9uZV93YWxs", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAImJsb2NrLm1pbmVjcmFmdC5yZWRfc2FuZHN0b25lX3dhbGwA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 425, + "key": "minecraft:mossy_stone_brick_wall", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByBtaW5lY3JhZnQ6bW9zc3lfc3RvbmVfYnJpY2tfd2FsbA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJmJsb2NrLm1pbmVjcmFmdC5tb3NzeV9zdG9uZV9icmlja193YWxsAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 426, + "key": "minecraft:granite_wall", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxZtaW5lY3JhZnQ6Z3Jhbml0ZV93YWxs", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC5ncmFuaXRlX3dhbGwA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 427, + "key": "minecraft:stone_brick_wall", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxptaW5lY3JhZnQ6c3RvbmVfYnJpY2tfd2FsbA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGJsb2NrLm1pbmVjcmFmdC5zdG9uZV9icmlja193YWxsAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 428, + "key": "minecraft:mud_brick_wall", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxhtaW5lY3JhZnQ6bXVkX2JyaWNrX3dhbGw=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC5tdWRfYnJpY2tfd2FsbAA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 429, + "key": "minecraft:nether_brick_wall", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxttaW5lY3JhZnQ6bmV0aGVyX2JyaWNrX3dhbGw=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWJsb2NrLm1pbmVjcmFmdC5uZXRoZXJfYnJpY2tfd2FsbAA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 430, + "key": "minecraft:andesite_wall", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6YW5kZXNpdGVfd2FsbA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5hbmRlc2l0ZV93YWxsAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 431, + "key": "minecraft:red_nether_brick_wall", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx9taW5lY3JhZnQ6cmVkX25ldGhlcl9icmlja193YWxs", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWJsb2NrLm1pbmVjcmFmdC5yZWRfbmV0aGVyX2JyaWNrX3dhbGwA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 432, + "key": "minecraft:sandstone_wall", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxhtaW5lY3JhZnQ6c2FuZHN0b25lX3dhbGw=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC5zYW5kc3RvbmVfd2FsbAA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 433, + "key": "minecraft:end_stone_brick_wall", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx5taW5lY3JhZnQ6ZW5kX3N0b25lX2JyaWNrX3dhbGw=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJGJsb2NrLm1pbmVjcmFmdC5lbmRfc3RvbmVfYnJpY2tfd2FsbAA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 434, + "key": "minecraft:diorite_wall", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxZtaW5lY3JhZnQ6ZGlvcml0ZV93YWxs", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC5kaW9yaXRlX3dhbGwA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 435, + "key": "minecraft:blackstone_wall", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxltaW5lY3JhZnQ6YmxhY2tzdG9uZV93YWxs", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC5ibGFja3N0b25lX3dhbGwA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 436, + "key": "minecraft:polished_blackstone_wall", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByJtaW5lY3JhZnQ6cG9saXNoZWRfYmxhY2tzdG9uZV93YWxs", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAKGJsb2NrLm1pbmVjcmFmdC5wb2xpc2hlZF9ibGFja3N0b25lX3dhbGwA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 437, + "key": "minecraft:polished_blackstone_brick_wall", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByhtaW5lY3JhZnQ6cG9saXNoZWRfYmxhY2tzdG9uZV9icmlja193YWxs", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUALmJsb2NrLm1pbmVjcmFmdC5wb2xpc2hlZF9ibGFja3N0b25lX2JyaWNrX3dhbGwA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 438, + "key": "minecraft:cobbled_deepslate_wall", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByBtaW5lY3JhZnQ6Y29iYmxlZF9kZWVwc2xhdGVfd2FsbA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJmJsb2NrLm1pbmVjcmFmdC5jb2JibGVkX2RlZXBzbGF0ZV93YWxsAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 439, + "key": "minecraft:polished_deepslate_wall", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByFtaW5lY3JhZnQ6cG9saXNoZWRfZGVlcHNsYXRlX3dhbGw=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJ2Jsb2NrLm1pbmVjcmFmdC5wb2xpc2hlZF9kZWVwc2xhdGVfd2FsbAA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 440, + "key": "minecraft:deepslate_brick_wall", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx5taW5lY3JhZnQ6ZGVlcHNsYXRlX2JyaWNrX3dhbGw=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJGJsb2NrLm1pbmVjcmFmdC5kZWVwc2xhdGVfYnJpY2tfd2FsbAA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 441, + "key": "minecraft:deepslate_tile_wall", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx1taW5lY3JhZnQ6ZGVlcHNsYXRlX3RpbGVfd2FsbA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2Jsb2NrLm1pbmVjcmFmdC5kZWVwc2xhdGVfdGlsZV93YWxsAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 442, + "key": "minecraft:anvil", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bw9taW5lY3JhZnQ6YW52aWw=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFWJsb2NrLm1pbmVjcmFmdC5hbnZpbAA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 443, + "key": "minecraft:chipped_anvil", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6Y2hpcHBlZF9hbnZpbA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5jaGlwcGVkX2FudmlsAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 444, + "key": "minecraft:damaged_anvil", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6ZGFtYWdlZF9hbnZpbA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5kYW1hZ2VkX2FudmlsAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 445, + "key": "minecraft:chiseled_quartz_block", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx9taW5lY3JhZnQ6Y2hpc2VsZWRfcXVhcnR6X2Jsb2Nr", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWJsb2NrLm1pbmVjcmFmdC5jaGlzZWxlZF9xdWFydHpfYmxvY2sA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 446, + "key": "minecraft:quartz_block", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxZtaW5lY3JhZnQ6cXVhcnR6X2Jsb2Nr", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC5xdWFydHpfYmxvY2sA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 447, + "key": "minecraft:quartz_bricks", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6cXVhcnR6X2JyaWNrcw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5xdWFydHpfYnJpY2tzAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 448, + "key": "minecraft:quartz_pillar", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6cXVhcnR6X3BpbGxhcg==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5xdWFydHpfcGlsbGFyAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 449, + "key": "minecraft:quartz_stairs", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6cXVhcnR6X3N0YWlycw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5xdWFydHpfc3RhaXJzAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 450, + "key": "minecraft:white_terracotta", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxptaW5lY3JhZnQ6d2hpdGVfdGVycmFjb3R0YQ==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGJsb2NrLm1pbmVjcmFmdC53aGl0ZV90ZXJyYWNvdHRhAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 451, + "key": "minecraft:orange_terracotta", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxttaW5lY3JhZnQ6b3JhbmdlX3RlcnJhY290dGE=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWJsb2NrLm1pbmVjcmFmdC5vcmFuZ2VfdGVycmFjb3R0YQA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 452, + "key": "minecraft:magenta_terracotta", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxxtaW5lY3JhZnQ6bWFnZW50YV90ZXJyYWNvdHRh", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAImJsb2NrLm1pbmVjcmFmdC5tYWdlbnRhX3RlcnJhY290dGEA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 453, + "key": "minecraft:light_blue_terracotta", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx9taW5lY3JhZnQ6bGlnaHRfYmx1ZV90ZXJyYWNvdHRh", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWJsb2NrLm1pbmVjcmFmdC5saWdodF9ibHVlX3RlcnJhY290dGEA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 454, + "key": "minecraft:yellow_terracotta", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxttaW5lY3JhZnQ6eWVsbG93X3RlcnJhY290dGE=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWJsb2NrLm1pbmVjcmFmdC55ZWxsb3dfdGVycmFjb3R0YQA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 455, + "key": "minecraft:lime_terracotta", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxltaW5lY3JhZnQ6bGltZV90ZXJyYWNvdHRh", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC5saW1lX3RlcnJhY290dGEA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 456, + "key": "minecraft:pink_terracotta", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxltaW5lY3JhZnQ6cGlua190ZXJyYWNvdHRh", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC5waW5rX3RlcnJhY290dGEA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 457, + "key": "minecraft:gray_terracotta", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxltaW5lY3JhZnQ6Z3JheV90ZXJyYWNvdHRh", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC5ncmF5X3RlcnJhY290dGEA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 458, + "key": "minecraft:light_gray_terracotta", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx9taW5lY3JhZnQ6bGlnaHRfZ3JheV90ZXJyYWNvdHRh", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWJsb2NrLm1pbmVjcmFmdC5saWdodF9ncmF5X3RlcnJhY290dGEA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 459, + "key": "minecraft:cyan_terracotta", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxltaW5lY3JhZnQ6Y3lhbl90ZXJyYWNvdHRh", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC5jeWFuX3RlcnJhY290dGEA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 460, + "key": "minecraft:purple_terracotta", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxttaW5lY3JhZnQ6cHVycGxlX3RlcnJhY290dGE=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWJsb2NrLm1pbmVjcmFmdC5wdXJwbGVfdGVycmFjb3R0YQA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 461, + "key": "minecraft:blue_terracotta", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxltaW5lY3JhZnQ6Ymx1ZV90ZXJyYWNvdHRh", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC5ibHVlX3RlcnJhY290dGEA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 462, + "key": "minecraft:brown_terracotta", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxptaW5lY3JhZnQ6YnJvd25fdGVycmFjb3R0YQ==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGJsb2NrLm1pbmVjcmFmdC5icm93bl90ZXJyYWNvdHRhAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 463, + "key": "minecraft:green_terracotta", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxptaW5lY3JhZnQ6Z3JlZW5fdGVycmFjb3R0YQ==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGJsb2NrLm1pbmVjcmFmdC5ncmVlbl90ZXJyYWNvdHRhAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 464, + "key": "minecraft:red_terracotta", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxhtaW5lY3JhZnQ6cmVkX3RlcnJhY290dGE=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC5yZWRfdGVycmFjb3R0YQA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 465, + "key": "minecraft:black_terracotta", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxptaW5lY3JhZnQ6YmxhY2tfdGVycmFjb3R0YQ==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGJsb2NrLm1pbmVjcmFmdC5ibGFja190ZXJyYWNvdHRhAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 466, + "key": "minecraft:barrier", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxFtaW5lY3JhZnQ6YmFycmllcg==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAF2Jsb2NrLm1pbmVjcmFmdC5iYXJyaWVyAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQM=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 467, + "key": "minecraft:light", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:block_state": "PwEFbGV2ZWwCMTU=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bw9taW5lY3JhZnQ6bGlnaHQ=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFWJsb2NrLm1pbmVjcmFmdC5saWdodAA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQM=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 468, + "key": "minecraft:hay_block", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxNtaW5lY3JhZnQ6aGF5X2Jsb2Nr", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGWJsb2NrLm1pbmVjcmFmdC5oYXlfYmxvY2sA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 469, + "key": "minecraft:white_carpet", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:equippable": "HAaxBgEWbWluZWNyYWZ0OndoaXRlX2NhcnBldAABA0t/AQEB", + "minecraft:item_model": "BxZtaW5lY3JhZnQ6d2hpdGVfY2FycGV0", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC53aGl0ZV9jYXJwZXQA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 470, + "key": "minecraft:orange_carpet", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:equippable": "HAaxBgEXbWluZWNyYWZ0Om9yYW5nZV9jYXJwZXQAAQNLfwEBAQ==", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6b3JhbmdlX2NhcnBldA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5vcmFuZ2VfY2FycGV0AA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 471, + "key": "minecraft:magenta_carpet", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:equippable": "HAaxBgEYbWluZWNyYWZ0Om1hZ2VudGFfY2FycGV0AAEDS38BAQE=", + "minecraft:item_model": "BxhtaW5lY3JhZnQ6bWFnZW50YV9jYXJwZXQ=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC5tYWdlbnRhX2NhcnBldAA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 472, + "key": "minecraft:light_blue_carpet", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:equippable": "HAaxBgEbbWluZWNyYWZ0OmxpZ2h0X2JsdWVfY2FycGV0AAEDS38BAQE=", + "minecraft:item_model": "BxttaW5lY3JhZnQ6bGlnaHRfYmx1ZV9jYXJwZXQ=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWJsb2NrLm1pbmVjcmFmdC5saWdodF9ibHVlX2NhcnBldAA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 473, + "key": "minecraft:yellow_carpet", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:equippable": "HAaxBgEXbWluZWNyYWZ0OnllbGxvd19jYXJwZXQAAQNLfwEBAQ==", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6eWVsbG93X2NhcnBldA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC55ZWxsb3dfY2FycGV0AA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 474, + "key": "minecraft:lime_carpet", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:equippable": "HAaxBgEVbWluZWNyYWZ0OmxpbWVfY2FycGV0AAEDS38BAQE=", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6bGltZV9jYXJwZXQ=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5saW1lX2NhcnBldAA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 475, + "key": "minecraft:pink_carpet", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:equippable": "HAaxBgEVbWluZWNyYWZ0OnBpbmtfY2FycGV0AAEDS38BAQE=", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6cGlua19jYXJwZXQ=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5waW5rX2NhcnBldAA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 476, + "key": "minecraft:gray_carpet", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:equippable": "HAaxBgEVbWluZWNyYWZ0OmdyYXlfY2FycGV0AAEDS38BAQE=", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6Z3JheV9jYXJwZXQ=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5ncmF5X2NhcnBldAA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 477, + "key": "minecraft:light_gray_carpet", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:equippable": "HAaxBgEbbWluZWNyYWZ0OmxpZ2h0X2dyYXlfY2FycGV0AAEDS38BAQE=", + "minecraft:item_model": "BxttaW5lY3JhZnQ6bGlnaHRfZ3JheV9jYXJwZXQ=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWJsb2NrLm1pbmVjcmFmdC5saWdodF9ncmF5X2NhcnBldAA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 478, + "key": "minecraft:cyan_carpet", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:equippable": "HAaxBgEVbWluZWNyYWZ0OmN5YW5fY2FycGV0AAEDS38BAQE=", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6Y3lhbl9jYXJwZXQ=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5jeWFuX2NhcnBldAA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 479, + "key": "minecraft:purple_carpet", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:equippable": "HAaxBgEXbWluZWNyYWZ0OnB1cnBsZV9jYXJwZXQAAQNLfwEBAQ==", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6cHVycGxlX2NhcnBldA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5wdXJwbGVfY2FycGV0AA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 480, + "key": "minecraft:blue_carpet", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:equippable": "HAaxBgEVbWluZWNyYWZ0OmJsdWVfY2FycGV0AAEDS38BAQE=", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6Ymx1ZV9jYXJwZXQ=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5ibHVlX2NhcnBldAA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 481, + "key": "minecraft:brown_carpet", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:equippable": "HAaxBgEWbWluZWNyYWZ0OmJyb3duX2NhcnBldAABA0t/AQEB", + "minecraft:item_model": "BxZtaW5lY3JhZnQ6YnJvd25fY2FycGV0", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC5icm93bl9jYXJwZXQA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 482, + "key": "minecraft:green_carpet", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:equippable": "HAaxBgEWbWluZWNyYWZ0OmdyZWVuX2NhcnBldAABA0t/AQEB", + "minecraft:item_model": "BxZtaW5lY3JhZnQ6Z3JlZW5fY2FycGV0", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC5ncmVlbl9jYXJwZXQA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 483, + "key": "minecraft:red_carpet", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:equippable": "HAaxBgEUbWluZWNyYWZ0OnJlZF9jYXJwZXQAAQNLfwEBAQ==", + "minecraft:item_model": "BxRtaW5lY3JhZnQ6cmVkX2NhcnBldA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC5yZWRfY2FycGV0AA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 484, + "key": "minecraft:black_carpet", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:equippable": "HAaxBgEWbWluZWNyYWZ0OmJsYWNrX2NhcnBldAABA0t/AQEB", + "minecraft:item_model": "BxZtaW5lY3JhZnQ6YmxhY2tfY2FycGV0", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC5ibGFja19jYXJwZXQA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 485, + "key": "minecraft:terracotta", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxRtaW5lY3JhZnQ6dGVycmFjb3R0YQ==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC50ZXJyYWNvdHRhAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 486, + "key": "minecraft:packed_ice", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxRtaW5lY3JhZnQ6cGFja2VkX2ljZQ==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC5wYWNrZWRfaWNlAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 487, + "key": "minecraft:dirt_path", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxNtaW5lY3JhZnQ6ZGlydF9wYXRo", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGWJsb2NrLm1pbmVjcmFmdC5kaXJ0X3BhdGgA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 488, + "key": "minecraft:sunflower", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxNtaW5lY3JhZnQ6c3VuZmxvd2Vy", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGWJsb2NrLm1pbmVjcmFmdC5zdW5mbG93ZXIA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 489, + "key": "minecraft:lilac", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bw9taW5lY3JhZnQ6bGlsYWM=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFWJsb2NrLm1pbmVjcmFmdC5saWxhYwA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 490, + "key": "minecraft:rose_bush", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxNtaW5lY3JhZnQ6cm9zZV9idXNo", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGWJsb2NrLm1pbmVjcmFmdC5yb3NlX2J1c2gA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 491, + "key": "minecraft:peony", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bw9taW5lY3JhZnQ6cGVvbnk=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFWJsb2NrLm1pbmVjcmFmdC5wZW9ueQA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 492, + "key": "minecraft:tall_grass", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxRtaW5lY3JhZnQ6dGFsbF9ncmFzcw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC50YWxsX2dyYXNzAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 493, + "key": "minecraft:large_fern", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxRtaW5lY3JhZnQ6bGFyZ2VfZmVybg==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC5sYXJnZV9mZXJuAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 494, + "key": "minecraft:white_stained_glass", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx1taW5lY3JhZnQ6d2hpdGVfc3RhaW5lZF9nbGFzcw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2Jsb2NrLm1pbmVjcmFmdC53aGl0ZV9zdGFpbmVkX2dsYXNzAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 495, + "key": "minecraft:orange_stained_glass", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx5taW5lY3JhZnQ6b3JhbmdlX3N0YWluZWRfZ2xhc3M=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJGJsb2NrLm1pbmVjcmFmdC5vcmFuZ2Vfc3RhaW5lZF9nbGFzcwA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 496, + "key": "minecraft:magenta_stained_glass", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx9taW5lY3JhZnQ6bWFnZW50YV9zdGFpbmVkX2dsYXNz", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWJsb2NrLm1pbmVjcmFmdC5tYWdlbnRhX3N0YWluZWRfZ2xhc3MA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 497, + "key": "minecraft:light_blue_stained_glass", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByJtaW5lY3JhZnQ6bGlnaHRfYmx1ZV9zdGFpbmVkX2dsYXNz", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAKGJsb2NrLm1pbmVjcmFmdC5saWdodF9ibHVlX3N0YWluZWRfZ2xhc3MA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 498, + "key": "minecraft:yellow_stained_glass", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx5taW5lY3JhZnQ6eWVsbG93X3N0YWluZWRfZ2xhc3M=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJGJsb2NrLm1pbmVjcmFmdC55ZWxsb3dfc3RhaW5lZF9nbGFzcwA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 499, + "key": "minecraft:lime_stained_glass", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxxtaW5lY3JhZnQ6bGltZV9zdGFpbmVkX2dsYXNz", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAImJsb2NrLm1pbmVjcmFmdC5saW1lX3N0YWluZWRfZ2xhc3MA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 500, + "key": "minecraft:pink_stained_glass", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxxtaW5lY3JhZnQ6cGlua19zdGFpbmVkX2dsYXNz", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAImJsb2NrLm1pbmVjcmFmdC5waW5rX3N0YWluZWRfZ2xhc3MA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 501, + "key": "minecraft:gray_stained_glass", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxxtaW5lY3JhZnQ6Z3JheV9zdGFpbmVkX2dsYXNz", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAImJsb2NrLm1pbmVjcmFmdC5ncmF5X3N0YWluZWRfZ2xhc3MA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 502, + "key": "minecraft:light_gray_stained_glass", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByJtaW5lY3JhZnQ6bGlnaHRfZ3JheV9zdGFpbmVkX2dsYXNz", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAKGJsb2NrLm1pbmVjcmFmdC5saWdodF9ncmF5X3N0YWluZWRfZ2xhc3MA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 503, + "key": "minecraft:cyan_stained_glass", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxxtaW5lY3JhZnQ6Y3lhbl9zdGFpbmVkX2dsYXNz", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAImJsb2NrLm1pbmVjcmFmdC5jeWFuX3N0YWluZWRfZ2xhc3MA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 504, + "key": "minecraft:purple_stained_glass", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx5taW5lY3JhZnQ6cHVycGxlX3N0YWluZWRfZ2xhc3M=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJGJsb2NrLm1pbmVjcmFmdC5wdXJwbGVfc3RhaW5lZF9nbGFzcwA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 505, + "key": "minecraft:blue_stained_glass", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxxtaW5lY3JhZnQ6Ymx1ZV9zdGFpbmVkX2dsYXNz", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAImJsb2NrLm1pbmVjcmFmdC5ibHVlX3N0YWluZWRfZ2xhc3MA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 506, + "key": "minecraft:brown_stained_glass", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx1taW5lY3JhZnQ6YnJvd25fc3RhaW5lZF9nbGFzcw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2Jsb2NrLm1pbmVjcmFmdC5icm93bl9zdGFpbmVkX2dsYXNzAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 507, + "key": "minecraft:green_stained_glass", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx1taW5lY3JhZnQ6Z3JlZW5fc3RhaW5lZF9nbGFzcw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2Jsb2NrLm1pbmVjcmFmdC5ncmVlbl9zdGFpbmVkX2dsYXNzAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 508, + "key": "minecraft:red_stained_glass", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxttaW5lY3JhZnQ6cmVkX3N0YWluZWRfZ2xhc3M=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWJsb2NrLm1pbmVjcmFmdC5yZWRfc3RhaW5lZF9nbGFzcwA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 509, + "key": "minecraft:black_stained_glass", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx1taW5lY3JhZnQ6YmxhY2tfc3RhaW5lZF9nbGFzcw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2Jsb2NrLm1pbmVjcmFmdC5ibGFja19zdGFpbmVkX2dsYXNzAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 510, + "key": "minecraft:white_stained_glass_pane", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByJtaW5lY3JhZnQ6d2hpdGVfc3RhaW5lZF9nbGFzc19wYW5l", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAKGJsb2NrLm1pbmVjcmFmdC53aGl0ZV9zdGFpbmVkX2dsYXNzX3BhbmUA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 511, + "key": "minecraft:orange_stained_glass_pane", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByNtaW5lY3JhZnQ6b3JhbmdlX3N0YWluZWRfZ2xhc3NfcGFuZQ==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAKWJsb2NrLm1pbmVjcmFmdC5vcmFuZ2Vfc3RhaW5lZF9nbGFzc19wYW5lAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 512, + "key": "minecraft:magenta_stained_glass_pane", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByRtaW5lY3JhZnQ6bWFnZW50YV9zdGFpbmVkX2dsYXNzX3BhbmU=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAKmJsb2NrLm1pbmVjcmFmdC5tYWdlbnRhX3N0YWluZWRfZ2xhc3NfcGFuZQA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 513, + "key": "minecraft:light_blue_stained_glass_pane", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BydtaW5lY3JhZnQ6bGlnaHRfYmx1ZV9zdGFpbmVkX2dsYXNzX3BhbmU=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUALWJsb2NrLm1pbmVjcmFmdC5saWdodF9ibHVlX3N0YWluZWRfZ2xhc3NfcGFuZQA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 514, + "key": "minecraft:yellow_stained_glass_pane", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByNtaW5lY3JhZnQ6eWVsbG93X3N0YWluZWRfZ2xhc3NfcGFuZQ==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAKWJsb2NrLm1pbmVjcmFmdC55ZWxsb3dfc3RhaW5lZF9nbGFzc19wYW5lAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 515, + "key": "minecraft:lime_stained_glass_pane", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByFtaW5lY3JhZnQ6bGltZV9zdGFpbmVkX2dsYXNzX3BhbmU=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJ2Jsb2NrLm1pbmVjcmFmdC5saW1lX3N0YWluZWRfZ2xhc3NfcGFuZQA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 516, + "key": "minecraft:pink_stained_glass_pane", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByFtaW5lY3JhZnQ6cGlua19zdGFpbmVkX2dsYXNzX3BhbmU=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJ2Jsb2NrLm1pbmVjcmFmdC5waW5rX3N0YWluZWRfZ2xhc3NfcGFuZQA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 517, + "key": "minecraft:gray_stained_glass_pane", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByFtaW5lY3JhZnQ6Z3JheV9zdGFpbmVkX2dsYXNzX3BhbmU=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJ2Jsb2NrLm1pbmVjcmFmdC5ncmF5X3N0YWluZWRfZ2xhc3NfcGFuZQA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 518, + "key": "minecraft:light_gray_stained_glass_pane", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BydtaW5lY3JhZnQ6bGlnaHRfZ3JheV9zdGFpbmVkX2dsYXNzX3BhbmU=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUALWJsb2NrLm1pbmVjcmFmdC5saWdodF9ncmF5X3N0YWluZWRfZ2xhc3NfcGFuZQA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 519, + "key": "minecraft:cyan_stained_glass_pane", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByFtaW5lY3JhZnQ6Y3lhbl9zdGFpbmVkX2dsYXNzX3BhbmU=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJ2Jsb2NrLm1pbmVjcmFmdC5jeWFuX3N0YWluZWRfZ2xhc3NfcGFuZQA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 520, + "key": "minecraft:purple_stained_glass_pane", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByNtaW5lY3JhZnQ6cHVycGxlX3N0YWluZWRfZ2xhc3NfcGFuZQ==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAKWJsb2NrLm1pbmVjcmFmdC5wdXJwbGVfc3RhaW5lZF9nbGFzc19wYW5lAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 521, + "key": "minecraft:blue_stained_glass_pane", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByFtaW5lY3JhZnQ6Ymx1ZV9zdGFpbmVkX2dsYXNzX3BhbmU=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJ2Jsb2NrLm1pbmVjcmFmdC5ibHVlX3N0YWluZWRfZ2xhc3NfcGFuZQA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 522, + "key": "minecraft:brown_stained_glass_pane", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByJtaW5lY3JhZnQ6YnJvd25fc3RhaW5lZF9nbGFzc19wYW5l", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAKGJsb2NrLm1pbmVjcmFmdC5icm93bl9zdGFpbmVkX2dsYXNzX3BhbmUA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 523, + "key": "minecraft:green_stained_glass_pane", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByJtaW5lY3JhZnQ6Z3JlZW5fc3RhaW5lZF9nbGFzc19wYW5l", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAKGJsb2NrLm1pbmVjcmFmdC5ncmVlbl9zdGFpbmVkX2dsYXNzX3BhbmUA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 524, + "key": "minecraft:red_stained_glass_pane", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByBtaW5lY3JhZnQ6cmVkX3N0YWluZWRfZ2xhc3NfcGFuZQ==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJmJsb2NrLm1pbmVjcmFmdC5yZWRfc3RhaW5lZF9nbGFzc19wYW5lAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 525, + "key": "minecraft:black_stained_glass_pane", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByJtaW5lY3JhZnQ6YmxhY2tfc3RhaW5lZF9nbGFzc19wYW5l", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAKGJsb2NrLm1pbmVjcmFmdC5ibGFja19zdGFpbmVkX2dsYXNzX3BhbmUA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 526, + "key": "minecraft:prismarine", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxRtaW5lY3JhZnQ6cHJpc21hcmluZQ==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC5wcmlzbWFyaW5lAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 527, + "key": "minecraft:prismarine_bricks", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxttaW5lY3JhZnQ6cHJpc21hcmluZV9icmlja3M=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWJsb2NrLm1pbmVjcmFmdC5wcmlzbWFyaW5lX2JyaWNrcwA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 528, + "key": "minecraft:dark_prismarine", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxltaW5lY3JhZnQ6ZGFya19wcmlzbWFyaW5l", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC5kYXJrX3ByaXNtYXJpbmUA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 529, + "key": "minecraft:prismarine_stairs", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxttaW5lY3JhZnQ6cHJpc21hcmluZV9zdGFpcnM=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWJsb2NrLm1pbmVjcmFmdC5wcmlzbWFyaW5lX3N0YWlycwA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 530, + "key": "minecraft:prismarine_brick_stairs", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByFtaW5lY3JhZnQ6cHJpc21hcmluZV9icmlja19zdGFpcnM=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJ2Jsb2NrLm1pbmVjcmFmdC5wcmlzbWFyaW5lX2JyaWNrX3N0YWlycwA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 531, + "key": "minecraft:dark_prismarine_stairs", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByBtaW5lY3JhZnQ6ZGFya19wcmlzbWFyaW5lX3N0YWlycw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJmJsb2NrLm1pbmVjcmFmdC5kYXJrX3ByaXNtYXJpbmVfc3RhaXJzAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 532, + "key": "minecraft:sea_lantern", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6c2VhX2xhbnRlcm4=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5zZWFfbGFudGVybgA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 533, + "key": "minecraft:red_sandstone", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6cmVkX3NhbmRzdG9uZQ==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5yZWRfc2FuZHN0b25lAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 534, + "key": "minecraft:chiseled_red_sandstone", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByBtaW5lY3JhZnQ6Y2hpc2VsZWRfcmVkX3NhbmRzdG9uZQ==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJmJsb2NrLm1pbmVjcmFmdC5jaGlzZWxlZF9yZWRfc2FuZHN0b25lAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 535, + "key": "minecraft:cut_red_sandstone", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxttaW5lY3JhZnQ6Y3V0X3JlZF9zYW5kc3RvbmU=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWJsb2NrLm1pbmVjcmFmdC5jdXRfcmVkX3NhbmRzdG9uZQA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 536, + "key": "minecraft:red_sandstone_stairs", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx5taW5lY3JhZnQ6cmVkX3NhbmRzdG9uZV9zdGFpcnM=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJGJsb2NrLm1pbmVjcmFmdC5yZWRfc2FuZHN0b25lX3N0YWlycwA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 537, + "key": "minecraft:repeating_command_block", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByFtaW5lY3JhZnQ6cmVwZWF0aW5nX2NvbW1hbmRfYmxvY2s=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJ2Jsb2NrLm1pbmVjcmFmdC5yZXBlYXRpbmdfY29tbWFuZF9ibG9jawA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQM=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 538, + "key": "minecraft:chain_command_block", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx1taW5lY3JhZnQ6Y2hhaW5fY29tbWFuZF9ibG9jaw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2Jsb2NrLm1pbmVjcmFmdC5jaGFpbl9jb21tYW5kX2Jsb2NrAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQM=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 539, + "key": "minecraft:magma_block", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6bWFnbWFfYmxvY2s=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5tYWdtYV9ibG9jawA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 540, + "key": "minecraft:nether_wart_block", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxttaW5lY3JhZnQ6bmV0aGVyX3dhcnRfYmxvY2s=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWJsb2NrLm1pbmVjcmFmdC5uZXRoZXJfd2FydF9ibG9jawA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 541, + "key": "minecraft:warped_wart_block", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxttaW5lY3JhZnQ6d2FycGVkX3dhcnRfYmxvY2s=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWJsb2NrLm1pbmVjcmFmdC53YXJwZWRfd2FydF9ibG9jawA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 542, + "key": "minecraft:red_nether_bricks", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxttaW5lY3JhZnQ6cmVkX25ldGhlcl9icmlja3M=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWJsb2NrLm1pbmVjcmFmdC5yZWRfbmV0aGVyX2JyaWNrcwA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 543, + "key": "minecraft:bone_block", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxRtaW5lY3JhZnQ6Ym9uZV9ibG9jaw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC5ib25lX2Jsb2NrAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 544, + "key": "minecraft:structure_void", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxhtaW5lY3JhZnQ6c3RydWN0dXJlX3ZvaWQ=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC5zdHJ1Y3R1cmVfdm9pZAA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQM=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 545, + "key": "minecraft:shulker_box", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:container": "PgA=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6c2h1bGtlcl9ib3g=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5zaHVsa2VyX2JveAA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 546, + "key": "minecraft:white_shulker_box", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:container": "PgA=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxttaW5lY3JhZnQ6d2hpdGVfc2h1bGtlcl9ib3g=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWJsb2NrLm1pbmVjcmFmdC53aGl0ZV9zaHVsa2VyX2JveAA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 547, + "key": "minecraft:orange_shulker_box", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:container": "PgA=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxxtaW5lY3JhZnQ6b3JhbmdlX3NodWxrZXJfYm94", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAImJsb2NrLm1pbmVjcmFmdC5vcmFuZ2Vfc2h1bGtlcl9ib3gA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 548, + "key": "minecraft:magenta_shulker_box", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:container": "PgA=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx1taW5lY3JhZnQ6bWFnZW50YV9zaHVsa2VyX2JveA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2Jsb2NrLm1pbmVjcmFmdC5tYWdlbnRhX3NodWxrZXJfYm94AA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 549, + "key": "minecraft:light_blue_shulker_box", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:container": "PgA=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByBtaW5lY3JhZnQ6bGlnaHRfYmx1ZV9zaHVsa2VyX2JveA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJmJsb2NrLm1pbmVjcmFmdC5saWdodF9ibHVlX3NodWxrZXJfYm94AA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 550, + "key": "minecraft:yellow_shulker_box", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:container": "PgA=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxxtaW5lY3JhZnQ6eWVsbG93X3NodWxrZXJfYm94", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAImJsb2NrLm1pbmVjcmFmdC55ZWxsb3dfc2h1bGtlcl9ib3gA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 551, + "key": "minecraft:lime_shulker_box", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:container": "PgA=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxptaW5lY3JhZnQ6bGltZV9zaHVsa2VyX2JveA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGJsb2NrLm1pbmVjcmFmdC5saW1lX3NodWxrZXJfYm94AA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 552, + "key": "minecraft:pink_shulker_box", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:container": "PgA=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxptaW5lY3JhZnQ6cGlua19zaHVsa2VyX2JveA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGJsb2NrLm1pbmVjcmFmdC5waW5rX3NodWxrZXJfYm94AA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 553, + "key": "minecraft:gray_shulker_box", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:container": "PgA=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxptaW5lY3JhZnQ6Z3JheV9zaHVsa2VyX2JveA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGJsb2NrLm1pbmVjcmFmdC5ncmF5X3NodWxrZXJfYm94AA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 554, + "key": "minecraft:light_gray_shulker_box", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:container": "PgA=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByBtaW5lY3JhZnQ6bGlnaHRfZ3JheV9zaHVsa2VyX2JveA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJmJsb2NrLm1pbmVjcmFmdC5saWdodF9ncmF5X3NodWxrZXJfYm94AA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 555, + "key": "minecraft:cyan_shulker_box", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:container": "PgA=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxptaW5lY3JhZnQ6Y3lhbl9zaHVsa2VyX2JveA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGJsb2NrLm1pbmVjcmFmdC5jeWFuX3NodWxrZXJfYm94AA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 556, + "key": "minecraft:purple_shulker_box", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:container": "PgA=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxxtaW5lY3JhZnQ6cHVycGxlX3NodWxrZXJfYm94", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAImJsb2NrLm1pbmVjcmFmdC5wdXJwbGVfc2h1bGtlcl9ib3gA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 557, + "key": "minecraft:blue_shulker_box", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:container": "PgA=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxptaW5lY3JhZnQ6Ymx1ZV9zaHVsa2VyX2JveA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGJsb2NrLm1pbmVjcmFmdC5ibHVlX3NodWxrZXJfYm94AA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 558, + "key": "minecraft:brown_shulker_box", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:container": "PgA=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxttaW5lY3JhZnQ6YnJvd25fc2h1bGtlcl9ib3g=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWJsb2NrLm1pbmVjcmFmdC5icm93bl9zaHVsa2VyX2JveAA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 559, + "key": "minecraft:green_shulker_box", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:container": "PgA=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxttaW5lY3JhZnQ6Z3JlZW5fc2h1bGtlcl9ib3g=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWJsb2NrLm1pbmVjcmFmdC5ncmVlbl9zaHVsa2VyX2JveAA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 560, + "key": "minecraft:red_shulker_box", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:container": "PgA=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxltaW5lY3JhZnQ6cmVkX3NodWxrZXJfYm94", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC5yZWRfc2h1bGtlcl9ib3gA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 561, + "key": "minecraft:black_shulker_box", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:container": "PgA=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxttaW5lY3JhZnQ6YmxhY2tfc2h1bGtlcl9ib3g=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWJsb2NrLm1pbmVjcmFmdC5ibGFja19zaHVsa2VyX2JveAA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 562, + "key": "minecraft:white_glazed_terracotta", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByFtaW5lY3JhZnQ6d2hpdGVfZ2xhemVkX3RlcnJhY290dGE=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJ2Jsb2NrLm1pbmVjcmFmdC53aGl0ZV9nbGF6ZWRfdGVycmFjb3R0YQA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 563, + "key": "minecraft:orange_glazed_terracotta", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByJtaW5lY3JhZnQ6b3JhbmdlX2dsYXplZF90ZXJyYWNvdHRh", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAKGJsb2NrLm1pbmVjcmFmdC5vcmFuZ2VfZ2xhemVkX3RlcnJhY290dGEA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 564, + "key": "minecraft:magenta_glazed_terracotta", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByNtaW5lY3JhZnQ6bWFnZW50YV9nbGF6ZWRfdGVycmFjb3R0YQ==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAKWJsb2NrLm1pbmVjcmFmdC5tYWdlbnRhX2dsYXplZF90ZXJyYWNvdHRhAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 565, + "key": "minecraft:light_blue_glazed_terracotta", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByZtaW5lY3JhZnQ6bGlnaHRfYmx1ZV9nbGF6ZWRfdGVycmFjb3R0YQ==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUALGJsb2NrLm1pbmVjcmFmdC5saWdodF9ibHVlX2dsYXplZF90ZXJyYWNvdHRhAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 566, + "key": "minecraft:yellow_glazed_terracotta", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByJtaW5lY3JhZnQ6eWVsbG93X2dsYXplZF90ZXJyYWNvdHRh", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAKGJsb2NrLm1pbmVjcmFmdC55ZWxsb3dfZ2xhemVkX3RlcnJhY290dGEA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 567, + "key": "minecraft:lime_glazed_terracotta", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByBtaW5lY3JhZnQ6bGltZV9nbGF6ZWRfdGVycmFjb3R0YQ==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJmJsb2NrLm1pbmVjcmFmdC5saW1lX2dsYXplZF90ZXJyYWNvdHRhAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 568, + "key": "minecraft:pink_glazed_terracotta", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByBtaW5lY3JhZnQ6cGlua19nbGF6ZWRfdGVycmFjb3R0YQ==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJmJsb2NrLm1pbmVjcmFmdC5waW5rX2dsYXplZF90ZXJyYWNvdHRhAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 569, + "key": "minecraft:gray_glazed_terracotta", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByBtaW5lY3JhZnQ6Z3JheV9nbGF6ZWRfdGVycmFjb3R0YQ==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJmJsb2NrLm1pbmVjcmFmdC5ncmF5X2dsYXplZF90ZXJyYWNvdHRhAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 570, + "key": "minecraft:light_gray_glazed_terracotta", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByZtaW5lY3JhZnQ6bGlnaHRfZ3JheV9nbGF6ZWRfdGVycmFjb3R0YQ==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUALGJsb2NrLm1pbmVjcmFmdC5saWdodF9ncmF5X2dsYXplZF90ZXJyYWNvdHRhAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 571, + "key": "minecraft:cyan_glazed_terracotta", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByBtaW5lY3JhZnQ6Y3lhbl9nbGF6ZWRfdGVycmFjb3R0YQ==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJmJsb2NrLm1pbmVjcmFmdC5jeWFuX2dsYXplZF90ZXJyYWNvdHRhAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 572, + "key": "minecraft:purple_glazed_terracotta", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByJtaW5lY3JhZnQ6cHVycGxlX2dsYXplZF90ZXJyYWNvdHRh", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAKGJsb2NrLm1pbmVjcmFmdC5wdXJwbGVfZ2xhemVkX3RlcnJhY290dGEA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 573, + "key": "minecraft:blue_glazed_terracotta", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByBtaW5lY3JhZnQ6Ymx1ZV9nbGF6ZWRfdGVycmFjb3R0YQ==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJmJsb2NrLm1pbmVjcmFmdC5ibHVlX2dsYXplZF90ZXJyYWNvdHRhAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 574, + "key": "minecraft:brown_glazed_terracotta", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByFtaW5lY3JhZnQ6YnJvd25fZ2xhemVkX3RlcnJhY290dGE=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJ2Jsb2NrLm1pbmVjcmFmdC5icm93bl9nbGF6ZWRfdGVycmFjb3R0YQA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 575, + "key": "minecraft:green_glazed_terracotta", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByFtaW5lY3JhZnQ6Z3JlZW5fZ2xhemVkX3RlcnJhY290dGE=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJ2Jsb2NrLm1pbmVjcmFmdC5ncmVlbl9nbGF6ZWRfdGVycmFjb3R0YQA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 576, + "key": "minecraft:red_glazed_terracotta", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx9taW5lY3JhZnQ6cmVkX2dsYXplZF90ZXJyYWNvdHRh", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWJsb2NrLm1pbmVjcmFmdC5yZWRfZ2xhemVkX3RlcnJhY290dGEA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 577, + "key": "minecraft:black_glazed_terracotta", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByFtaW5lY3JhZnQ6YmxhY2tfZ2xhemVkX3RlcnJhY290dGE=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJ2Jsb2NrLm1pbmVjcmFmdC5ibGFja19nbGF6ZWRfdGVycmFjb3R0YQA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 578, + "key": "minecraft:white_concrete", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxhtaW5lY3JhZnQ6d2hpdGVfY29uY3JldGU=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC53aGl0ZV9jb25jcmV0ZQA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 579, + "key": "minecraft:orange_concrete", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxltaW5lY3JhZnQ6b3JhbmdlX2NvbmNyZXRl", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC5vcmFuZ2VfY29uY3JldGUA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 580, + "key": "minecraft:magenta_concrete", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxptaW5lY3JhZnQ6bWFnZW50YV9jb25jcmV0ZQ==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGJsb2NrLm1pbmVjcmFmdC5tYWdlbnRhX2NvbmNyZXRlAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 581, + "key": "minecraft:light_blue_concrete", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx1taW5lY3JhZnQ6bGlnaHRfYmx1ZV9jb25jcmV0ZQ==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2Jsb2NrLm1pbmVjcmFmdC5saWdodF9ibHVlX2NvbmNyZXRlAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 582, + "key": "minecraft:yellow_concrete", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxltaW5lY3JhZnQ6eWVsbG93X2NvbmNyZXRl", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC55ZWxsb3dfY29uY3JldGUA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 583, + "key": "minecraft:lime_concrete", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6bGltZV9jb25jcmV0ZQ==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5saW1lX2NvbmNyZXRlAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 584, + "key": "minecraft:pink_concrete", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6cGlua19jb25jcmV0ZQ==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5waW5rX2NvbmNyZXRlAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 585, + "key": "minecraft:gray_concrete", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6Z3JheV9jb25jcmV0ZQ==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5ncmF5X2NvbmNyZXRlAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 586, + "key": "minecraft:light_gray_concrete", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx1taW5lY3JhZnQ6bGlnaHRfZ3JheV9jb25jcmV0ZQ==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2Jsb2NrLm1pbmVjcmFmdC5saWdodF9ncmF5X2NvbmNyZXRlAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 587, + "key": "minecraft:cyan_concrete", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6Y3lhbl9jb25jcmV0ZQ==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5jeWFuX2NvbmNyZXRlAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 588, + "key": "minecraft:purple_concrete", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxltaW5lY3JhZnQ6cHVycGxlX2NvbmNyZXRl", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC5wdXJwbGVfY29uY3JldGUA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 589, + "key": "minecraft:blue_concrete", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6Ymx1ZV9jb25jcmV0ZQ==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5ibHVlX2NvbmNyZXRlAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 590, + "key": "minecraft:brown_concrete", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxhtaW5lY3JhZnQ6YnJvd25fY29uY3JldGU=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC5icm93bl9jb25jcmV0ZQA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 591, + "key": "minecraft:green_concrete", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxhtaW5lY3JhZnQ6Z3JlZW5fY29uY3JldGU=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC5ncmVlbl9jb25jcmV0ZQA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 592, + "key": "minecraft:red_concrete", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxZtaW5lY3JhZnQ6cmVkX2NvbmNyZXRl", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC5yZWRfY29uY3JldGUA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 593, + "key": "minecraft:black_concrete", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxhtaW5lY3JhZnQ6YmxhY2tfY29uY3JldGU=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC5ibGFja19jb25jcmV0ZQA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 594, + "key": "minecraft:white_concrete_powder", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx9taW5lY3JhZnQ6d2hpdGVfY29uY3JldGVfcG93ZGVy", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWJsb2NrLm1pbmVjcmFmdC53aGl0ZV9jb25jcmV0ZV9wb3dkZXIA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 595, + "key": "minecraft:orange_concrete_powder", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByBtaW5lY3JhZnQ6b3JhbmdlX2NvbmNyZXRlX3Bvd2Rlcg==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJmJsb2NrLm1pbmVjcmFmdC5vcmFuZ2VfY29uY3JldGVfcG93ZGVyAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 596, + "key": "minecraft:magenta_concrete_powder", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByFtaW5lY3JhZnQ6bWFnZW50YV9jb25jcmV0ZV9wb3dkZXI=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJ2Jsb2NrLm1pbmVjcmFmdC5tYWdlbnRhX2NvbmNyZXRlX3Bvd2RlcgA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 597, + "key": "minecraft:light_blue_concrete_powder", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByRtaW5lY3JhZnQ6bGlnaHRfYmx1ZV9jb25jcmV0ZV9wb3dkZXI=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAKmJsb2NrLm1pbmVjcmFmdC5saWdodF9ibHVlX2NvbmNyZXRlX3Bvd2RlcgA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 598, + "key": "minecraft:yellow_concrete_powder", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByBtaW5lY3JhZnQ6eWVsbG93X2NvbmNyZXRlX3Bvd2Rlcg==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJmJsb2NrLm1pbmVjcmFmdC55ZWxsb3dfY29uY3JldGVfcG93ZGVyAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 599, + "key": "minecraft:lime_concrete_powder", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx5taW5lY3JhZnQ6bGltZV9jb25jcmV0ZV9wb3dkZXI=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJGJsb2NrLm1pbmVjcmFmdC5saW1lX2NvbmNyZXRlX3Bvd2RlcgA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 600, + "key": "minecraft:pink_concrete_powder", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx5taW5lY3JhZnQ6cGlua19jb25jcmV0ZV9wb3dkZXI=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJGJsb2NrLm1pbmVjcmFmdC5waW5rX2NvbmNyZXRlX3Bvd2RlcgA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 601, + "key": "minecraft:gray_concrete_powder", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx5taW5lY3JhZnQ6Z3JheV9jb25jcmV0ZV9wb3dkZXI=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJGJsb2NrLm1pbmVjcmFmdC5ncmF5X2NvbmNyZXRlX3Bvd2RlcgA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 602, + "key": "minecraft:light_gray_concrete_powder", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByRtaW5lY3JhZnQ6bGlnaHRfZ3JheV9jb25jcmV0ZV9wb3dkZXI=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAKmJsb2NrLm1pbmVjcmFmdC5saWdodF9ncmF5X2NvbmNyZXRlX3Bvd2RlcgA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 603, + "key": "minecraft:cyan_concrete_powder", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx5taW5lY3JhZnQ6Y3lhbl9jb25jcmV0ZV9wb3dkZXI=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJGJsb2NrLm1pbmVjcmFmdC5jeWFuX2NvbmNyZXRlX3Bvd2RlcgA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 604, + "key": "minecraft:purple_concrete_powder", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByBtaW5lY3JhZnQ6cHVycGxlX2NvbmNyZXRlX3Bvd2Rlcg==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJmJsb2NrLm1pbmVjcmFmdC5wdXJwbGVfY29uY3JldGVfcG93ZGVyAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 605, + "key": "minecraft:blue_concrete_powder", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx5taW5lY3JhZnQ6Ymx1ZV9jb25jcmV0ZV9wb3dkZXI=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJGJsb2NrLm1pbmVjcmFmdC5ibHVlX2NvbmNyZXRlX3Bvd2RlcgA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 606, + "key": "minecraft:brown_concrete_powder", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx9taW5lY3JhZnQ6YnJvd25fY29uY3JldGVfcG93ZGVy", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWJsb2NrLm1pbmVjcmFmdC5icm93bl9jb25jcmV0ZV9wb3dkZXIA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 607, + "key": "minecraft:green_concrete_powder", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx9taW5lY3JhZnQ6Z3JlZW5fY29uY3JldGVfcG93ZGVy", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWJsb2NrLm1pbmVjcmFmdC5ncmVlbl9jb25jcmV0ZV9wb3dkZXIA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 608, + "key": "minecraft:red_concrete_powder", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx1taW5lY3JhZnQ6cmVkX2NvbmNyZXRlX3Bvd2Rlcg==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2Jsb2NrLm1pbmVjcmFmdC5yZWRfY29uY3JldGVfcG93ZGVyAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 609, + "key": "minecraft:black_concrete_powder", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx9taW5lY3JhZnQ6YmxhY2tfY29uY3JldGVfcG93ZGVy", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWJsb2NrLm1pbmVjcmFmdC5ibGFja19jb25jcmV0ZV9wb3dkZXIA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 610, + "key": "minecraft:turtle_egg", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxRtaW5lY3JhZnQ6dHVydGxlX2VnZw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC50dXJ0bGVfZWdnAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 611, + "key": "minecraft:sniffer_egg", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6c25pZmZlcl9lZ2c=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5zbmlmZmVyX2VnZwA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQE=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 612, + "key": "minecraft:dead_tube_coral_block", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx9taW5lY3JhZnQ6ZGVhZF90dWJlX2NvcmFsX2Jsb2Nr", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWJsb2NrLm1pbmVjcmFmdC5kZWFkX3R1YmVfY29yYWxfYmxvY2sA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 613, + "key": "minecraft:dead_brain_coral_block", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByBtaW5lY3JhZnQ6ZGVhZF9icmFpbl9jb3JhbF9ibG9jaw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJmJsb2NrLm1pbmVjcmFmdC5kZWFkX2JyYWluX2NvcmFsX2Jsb2NrAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 614, + "key": "minecraft:dead_bubble_coral_block", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByFtaW5lY3JhZnQ6ZGVhZF9idWJibGVfY29yYWxfYmxvY2s=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJ2Jsb2NrLm1pbmVjcmFmdC5kZWFkX2J1YmJsZV9jb3JhbF9ibG9jawA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 615, + "key": "minecraft:dead_fire_coral_block", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx9taW5lY3JhZnQ6ZGVhZF9maXJlX2NvcmFsX2Jsb2Nr", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWJsb2NrLm1pbmVjcmFmdC5kZWFkX2ZpcmVfY29yYWxfYmxvY2sA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 616, + "key": "minecraft:dead_horn_coral_block", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx9taW5lY3JhZnQ6ZGVhZF9ob3JuX2NvcmFsX2Jsb2Nr", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWJsb2NrLm1pbmVjcmFmdC5kZWFkX2hvcm5fY29yYWxfYmxvY2sA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 617, + "key": "minecraft:tube_coral_block", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxptaW5lY3JhZnQ6dHViZV9jb3JhbF9ibG9jaw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGJsb2NrLm1pbmVjcmFmdC50dWJlX2NvcmFsX2Jsb2NrAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 618, + "key": "minecraft:brain_coral_block", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxttaW5lY3JhZnQ6YnJhaW5fY29yYWxfYmxvY2s=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWJsb2NrLm1pbmVjcmFmdC5icmFpbl9jb3JhbF9ibG9jawA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 619, + "key": "minecraft:bubble_coral_block", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxxtaW5lY3JhZnQ6YnViYmxlX2NvcmFsX2Jsb2Nr", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAImJsb2NrLm1pbmVjcmFmdC5idWJibGVfY29yYWxfYmxvY2sA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 620, + "key": "minecraft:fire_coral_block", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxptaW5lY3JhZnQ6ZmlyZV9jb3JhbF9ibG9jaw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGJsb2NrLm1pbmVjcmFmdC5maXJlX2NvcmFsX2Jsb2NrAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 621, + "key": "minecraft:horn_coral_block", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxptaW5lY3JhZnQ6aG9ybl9jb3JhbF9ibG9jaw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGJsb2NrLm1pbmVjcmFmdC5ob3JuX2NvcmFsX2Jsb2NrAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 622, + "key": "minecraft:tube_coral", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxRtaW5lY3JhZnQ6dHViZV9jb3JhbA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC50dWJlX2NvcmFsAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 623, + "key": "minecraft:brain_coral", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6YnJhaW5fY29yYWw=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5icmFpbl9jb3JhbAA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 624, + "key": "minecraft:bubble_coral", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxZtaW5lY3JhZnQ6YnViYmxlX2NvcmFs", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC5idWJibGVfY29yYWwA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 625, + "key": "minecraft:fire_coral", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxRtaW5lY3JhZnQ6ZmlyZV9jb3JhbA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC5maXJlX2NvcmFsAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 626, + "key": "minecraft:horn_coral", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxRtaW5lY3JhZnQ6aG9ybl9jb3JhbA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC5ob3JuX2NvcmFsAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 627, + "key": "minecraft:dead_brain_coral", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxptaW5lY3JhZnQ6ZGVhZF9icmFpbl9jb3JhbA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGJsb2NrLm1pbmVjcmFmdC5kZWFkX2JyYWluX2NvcmFsAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 628, + "key": "minecraft:dead_bubble_coral", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxttaW5lY3JhZnQ6ZGVhZF9idWJibGVfY29yYWw=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWJsb2NrLm1pbmVjcmFmdC5kZWFkX2J1YmJsZV9jb3JhbAA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 629, + "key": "minecraft:dead_fire_coral", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxltaW5lY3JhZnQ6ZGVhZF9maXJlX2NvcmFs", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC5kZWFkX2ZpcmVfY29yYWwA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 630, + "key": "minecraft:dead_horn_coral", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxltaW5lY3JhZnQ6ZGVhZF9ob3JuX2NvcmFs", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC5kZWFkX2hvcm5fY29yYWwA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 631, + "key": "minecraft:dead_tube_coral", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxltaW5lY3JhZnQ6ZGVhZF90dWJlX2NvcmFs", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC5kZWFkX3R1YmVfY29yYWwA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 632, + "key": "minecraft:tube_coral_fan", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxhtaW5lY3JhZnQ6dHViZV9jb3JhbF9mYW4=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC50dWJlX2NvcmFsX2ZhbgA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 633, + "key": "minecraft:brain_coral_fan", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxltaW5lY3JhZnQ6YnJhaW5fY29yYWxfZmFu", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC5icmFpbl9jb3JhbF9mYW4A", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 634, + "key": "minecraft:bubble_coral_fan", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxptaW5lY3JhZnQ6YnViYmxlX2NvcmFsX2Zhbg==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGJsb2NrLm1pbmVjcmFmdC5idWJibGVfY29yYWxfZmFuAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 635, + "key": "minecraft:fire_coral_fan", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxhtaW5lY3JhZnQ6ZmlyZV9jb3JhbF9mYW4=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC5maXJlX2NvcmFsX2ZhbgA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 636, + "key": "minecraft:horn_coral_fan", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxhtaW5lY3JhZnQ6aG9ybl9jb3JhbF9mYW4=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC5ob3JuX2NvcmFsX2ZhbgA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 637, + "key": "minecraft:dead_tube_coral_fan", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx1taW5lY3JhZnQ6ZGVhZF90dWJlX2NvcmFsX2Zhbg==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2Jsb2NrLm1pbmVjcmFmdC5kZWFkX3R1YmVfY29yYWxfZmFuAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 638, + "key": "minecraft:dead_brain_coral_fan", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx5taW5lY3JhZnQ6ZGVhZF9icmFpbl9jb3JhbF9mYW4=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJGJsb2NrLm1pbmVjcmFmdC5kZWFkX2JyYWluX2NvcmFsX2ZhbgA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 639, + "key": "minecraft:dead_bubble_coral_fan", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx9taW5lY3JhZnQ6ZGVhZF9idWJibGVfY29yYWxfZmFu", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWJsb2NrLm1pbmVjcmFmdC5kZWFkX2J1YmJsZV9jb3JhbF9mYW4A", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 640, + "key": "minecraft:dead_fire_coral_fan", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx1taW5lY3JhZnQ6ZGVhZF9maXJlX2NvcmFsX2Zhbg==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2Jsb2NrLm1pbmVjcmFmdC5kZWFkX2ZpcmVfY29yYWxfZmFuAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 641, + "key": "minecraft:dead_horn_coral_fan", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx1taW5lY3JhZnQ6ZGVhZF9ob3JuX2NvcmFsX2Zhbg==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2Jsb2NrLm1pbmVjcmFmdC5kZWFkX2hvcm5fY29yYWxfZmFuAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 642, + "key": "minecraft:blue_ice", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxJtaW5lY3JhZnQ6Ymx1ZV9pY2U=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGGJsb2NrLm1pbmVjcmFmdC5ibHVlX2ljZQA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 643, + "key": "minecraft:conduit", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxFtaW5lY3JhZnQ6Y29uZHVpdA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAF2Jsb2NrLm1pbmVjcmFmdC5jb25kdWl0AA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQE=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 644, + "key": "minecraft:polished_granite_stairs", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByFtaW5lY3JhZnQ6cG9saXNoZWRfZ3Jhbml0ZV9zdGFpcnM=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJ2Jsb2NrLm1pbmVjcmFmdC5wb2xpc2hlZF9ncmFuaXRlX3N0YWlycwA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 645, + "key": "minecraft:smooth_red_sandstone_stairs", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByVtaW5lY3JhZnQ6c21vb3RoX3JlZF9zYW5kc3RvbmVfc3RhaXJz", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAK2Jsb2NrLm1pbmVjcmFmdC5zbW9vdGhfcmVkX3NhbmRzdG9uZV9zdGFpcnMA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 646, + "key": "minecraft:mossy_stone_brick_stairs", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByJtaW5lY3JhZnQ6bW9zc3lfc3RvbmVfYnJpY2tfc3RhaXJz", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAKGJsb2NrLm1pbmVjcmFmdC5tb3NzeV9zdG9uZV9icmlja19zdGFpcnMA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 647, + "key": "minecraft:polished_diorite_stairs", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByFtaW5lY3JhZnQ6cG9saXNoZWRfZGlvcml0ZV9zdGFpcnM=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJ2Jsb2NrLm1pbmVjcmFmdC5wb2xpc2hlZF9kaW9yaXRlX3N0YWlycwA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 648, + "key": "minecraft:mossy_cobblestone_stairs", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByJtaW5lY3JhZnQ6bW9zc3lfY29iYmxlc3RvbmVfc3RhaXJz", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAKGJsb2NrLm1pbmVjcmFmdC5tb3NzeV9jb2JibGVzdG9uZV9zdGFpcnMA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 649, + "key": "minecraft:end_stone_brick_stairs", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByBtaW5lY3JhZnQ6ZW5kX3N0b25lX2JyaWNrX3N0YWlycw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJmJsb2NrLm1pbmVjcmFmdC5lbmRfc3RvbmVfYnJpY2tfc3RhaXJzAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 650, + "key": "minecraft:stone_stairs", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxZtaW5lY3JhZnQ6c3RvbmVfc3RhaXJz", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC5zdG9uZV9zdGFpcnMA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 651, + "key": "minecraft:smooth_sandstone_stairs", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByFtaW5lY3JhZnQ6c21vb3RoX3NhbmRzdG9uZV9zdGFpcnM=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJ2Jsb2NrLm1pbmVjcmFmdC5zbW9vdGhfc2FuZHN0b25lX3N0YWlycwA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 652, + "key": "minecraft:smooth_quartz_stairs", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx5taW5lY3JhZnQ6c21vb3RoX3F1YXJ0el9zdGFpcnM=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJGJsb2NrLm1pbmVjcmFmdC5zbW9vdGhfcXVhcnR6X3N0YWlycwA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 653, + "key": "minecraft:granite_stairs", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxhtaW5lY3JhZnQ6Z3Jhbml0ZV9zdGFpcnM=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC5ncmFuaXRlX3N0YWlycwA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 654, + "key": "minecraft:andesite_stairs", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxltaW5lY3JhZnQ6YW5kZXNpdGVfc3RhaXJz", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC5hbmRlc2l0ZV9zdGFpcnMA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 655, + "key": "minecraft:red_nether_brick_stairs", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByFtaW5lY3JhZnQ6cmVkX25ldGhlcl9icmlja19zdGFpcnM=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJ2Jsb2NrLm1pbmVjcmFmdC5yZWRfbmV0aGVyX2JyaWNrX3N0YWlycwA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 656, + "key": "minecraft:polished_andesite_stairs", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByJtaW5lY3JhZnQ6cG9saXNoZWRfYW5kZXNpdGVfc3RhaXJz", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAKGJsb2NrLm1pbmVjcmFmdC5wb2xpc2hlZF9hbmRlc2l0ZV9zdGFpcnMA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 657, + "key": "minecraft:diorite_stairs", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxhtaW5lY3JhZnQ6ZGlvcml0ZV9zdGFpcnM=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC5kaW9yaXRlX3N0YWlycwA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 658, + "key": "minecraft:cobbled_deepslate_stairs", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByJtaW5lY3JhZnQ6Y29iYmxlZF9kZWVwc2xhdGVfc3RhaXJz", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAKGJsb2NrLm1pbmVjcmFmdC5jb2JibGVkX2RlZXBzbGF0ZV9zdGFpcnMA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 659, + "key": "minecraft:polished_deepslate_stairs", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByNtaW5lY3JhZnQ6cG9saXNoZWRfZGVlcHNsYXRlX3N0YWlycw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAKWJsb2NrLm1pbmVjcmFmdC5wb2xpc2hlZF9kZWVwc2xhdGVfc3RhaXJzAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 660, + "key": "minecraft:deepslate_brick_stairs", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByBtaW5lY3JhZnQ6ZGVlcHNsYXRlX2JyaWNrX3N0YWlycw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJmJsb2NrLm1pbmVjcmFmdC5kZWVwc2xhdGVfYnJpY2tfc3RhaXJzAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 661, + "key": "minecraft:deepslate_tile_stairs", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx9taW5lY3JhZnQ6ZGVlcHNsYXRlX3RpbGVfc3RhaXJz", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWJsb2NrLm1pbmVjcmFmdC5kZWVwc2xhdGVfdGlsZV9zdGFpcnMA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 662, + "key": "minecraft:polished_granite_slab", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx9taW5lY3JhZnQ6cG9saXNoZWRfZ3Jhbml0ZV9zbGFi", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWJsb2NrLm1pbmVjcmFmdC5wb2xpc2hlZF9ncmFuaXRlX3NsYWIA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 663, + "key": "minecraft:smooth_red_sandstone_slab", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByNtaW5lY3JhZnQ6c21vb3RoX3JlZF9zYW5kc3RvbmVfc2xhYg==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAKWJsb2NrLm1pbmVjcmFmdC5zbW9vdGhfcmVkX3NhbmRzdG9uZV9zbGFiAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 664, + "key": "minecraft:mossy_stone_brick_slab", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByBtaW5lY3JhZnQ6bW9zc3lfc3RvbmVfYnJpY2tfc2xhYg==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJmJsb2NrLm1pbmVjcmFmdC5tb3NzeV9zdG9uZV9icmlja19zbGFiAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 665, + "key": "minecraft:polished_diorite_slab", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx9taW5lY3JhZnQ6cG9saXNoZWRfZGlvcml0ZV9zbGFi", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWJsb2NrLm1pbmVjcmFmdC5wb2xpc2hlZF9kaW9yaXRlX3NsYWIA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 666, + "key": "minecraft:mossy_cobblestone_slab", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByBtaW5lY3JhZnQ6bW9zc3lfY29iYmxlc3RvbmVfc2xhYg==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJmJsb2NrLm1pbmVjcmFmdC5tb3NzeV9jb2JibGVzdG9uZV9zbGFiAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 667, + "key": "minecraft:end_stone_brick_slab", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx5taW5lY3JhZnQ6ZW5kX3N0b25lX2JyaWNrX3NsYWI=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJGJsb2NrLm1pbmVjcmFmdC5lbmRfc3RvbmVfYnJpY2tfc2xhYgA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 668, + "key": "minecraft:smooth_sandstone_slab", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx9taW5lY3JhZnQ6c21vb3RoX3NhbmRzdG9uZV9zbGFi", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWJsb2NrLm1pbmVjcmFmdC5zbW9vdGhfc2FuZHN0b25lX3NsYWIA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 669, + "key": "minecraft:smooth_quartz_slab", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxxtaW5lY3JhZnQ6c21vb3RoX3F1YXJ0el9zbGFi", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAImJsb2NrLm1pbmVjcmFmdC5zbW9vdGhfcXVhcnR6X3NsYWIA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 670, + "key": "minecraft:granite_slab", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxZtaW5lY3JhZnQ6Z3Jhbml0ZV9zbGFi", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC5ncmFuaXRlX3NsYWIA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 671, + "key": "minecraft:andesite_slab", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6YW5kZXNpdGVfc2xhYg==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5hbmRlc2l0ZV9zbGFiAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 672, + "key": "minecraft:red_nether_brick_slab", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx9taW5lY3JhZnQ6cmVkX25ldGhlcl9icmlja19zbGFi", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWJsb2NrLm1pbmVjcmFmdC5yZWRfbmV0aGVyX2JyaWNrX3NsYWIA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 673, + "key": "minecraft:polished_andesite_slab", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByBtaW5lY3JhZnQ6cG9saXNoZWRfYW5kZXNpdGVfc2xhYg==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJmJsb2NrLm1pbmVjcmFmdC5wb2xpc2hlZF9hbmRlc2l0ZV9zbGFiAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 674, + "key": "minecraft:diorite_slab", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxZtaW5lY3JhZnQ6ZGlvcml0ZV9zbGFi", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC5kaW9yaXRlX3NsYWIA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 675, + "key": "minecraft:cobbled_deepslate_slab", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByBtaW5lY3JhZnQ6Y29iYmxlZF9kZWVwc2xhdGVfc2xhYg==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJmJsb2NrLm1pbmVjcmFmdC5jb2JibGVkX2RlZXBzbGF0ZV9zbGFiAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 676, + "key": "minecraft:polished_deepslate_slab", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByFtaW5lY3JhZnQ6cG9saXNoZWRfZGVlcHNsYXRlX3NsYWI=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJ2Jsb2NrLm1pbmVjcmFmdC5wb2xpc2hlZF9kZWVwc2xhdGVfc2xhYgA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 677, + "key": "minecraft:deepslate_brick_slab", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx5taW5lY3JhZnQ6ZGVlcHNsYXRlX2JyaWNrX3NsYWI=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJGJsb2NrLm1pbmVjcmFmdC5kZWVwc2xhdGVfYnJpY2tfc2xhYgA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 678, + "key": "minecraft:deepslate_tile_slab", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx1taW5lY3JhZnQ6ZGVlcHNsYXRlX3RpbGVfc2xhYg==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2Jsb2NrLm1pbmVjcmFmdC5kZWVwc2xhdGVfdGlsZV9zbGFiAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 679, + "key": "minecraft:scaffolding", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6c2NhZmZvbGRpbmc=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5zY2FmZm9sZGluZwA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 680, + "key": "minecraft:redstone", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxJtaW5lY3JhZnQ6cmVkc3RvbmU=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAF2l0ZW0ubWluZWNyYWZ0LnJlZHN0b25lAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 681, + "key": "minecraft:redstone_torch", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxhtaW5lY3JhZnQ6cmVkc3RvbmVfdG9yY2g=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC5yZWRzdG9uZV90b3JjaAA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 682, + "key": "minecraft:redstone_block", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxhtaW5lY3JhZnQ6cmVkc3RvbmVfYmxvY2s=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC5yZWRzdG9uZV9ibG9jawA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 683, + "key": "minecraft:repeater", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxJtaW5lY3JhZnQ6cmVwZWF0ZXI=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGGJsb2NrLm1pbmVjcmFmdC5yZXBlYXRlcgA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 684, + "key": "minecraft:comparator", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxRtaW5lY3JhZnQ6Y29tcGFyYXRvcg==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC5jb21wYXJhdG9yAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 685, + "key": "minecraft:piston", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxBtaW5lY3JhZnQ6cGlzdG9u", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFmJsb2NrLm1pbmVjcmFmdC5waXN0b24A", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 686, + "key": "minecraft:sticky_piston", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6c3RpY2t5X3Bpc3Rvbg==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5zdGlja3lfcGlzdG9uAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 687, + "key": "minecraft:slime_block", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6c2xpbWVfYmxvY2s=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5zbGltZV9ibG9jawA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 688, + "key": "minecraft:honey_block", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6aG9uZXlfYmxvY2s=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5ob25leV9ibG9jawA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 689, + "key": "minecraft:observer", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxJtaW5lY3JhZnQ6b2JzZXJ2ZXI=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGGJsb2NrLm1pbmVjcmFmdC5vYnNlcnZlcgA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 690, + "key": "minecraft:hopper", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:container": "PgA=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxBtaW5lY3JhZnQ6aG9wcGVy", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFmJsb2NrLm1pbmVjcmFmdC5ob3BwZXIA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 691, + "key": "minecraft:dispenser", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:container": "PgA=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxNtaW5lY3JhZnQ6ZGlzcGVuc2Vy", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGWJsb2NrLm1pbmVjcmFmdC5kaXNwZW5zZXIA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 692, + "key": "minecraft:dropper", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:container": "PgA=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxFtaW5lY3JhZnQ6ZHJvcHBlcg==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAF2Jsb2NrLm1pbmVjcmFmdC5kcm9wcGVyAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 693, + "key": "minecraft:lectern", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxFtaW5lY3JhZnQ6bGVjdGVybg==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAF2Jsb2NrLm1pbmVjcmFmdC5sZWN0ZXJuAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 694, + "key": "minecraft:target", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxBtaW5lY3JhZnQ6dGFyZ2V0", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFmJsb2NrLm1pbmVjcmFmdC50YXJnZXQA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 695, + "key": "minecraft:lever", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bw9taW5lY3JhZnQ6bGV2ZXI=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFWJsb2NrLm1pbmVjcmFmdC5sZXZlcgA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 696, + "key": "minecraft:lightning_rod", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6bGlnaHRuaW5nX3JvZA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5saWdodG5pbmdfcm9kAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 697, + "key": "minecraft:daylight_detector", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxttaW5lY3JhZnQ6ZGF5bGlnaHRfZGV0ZWN0b3I=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWJsb2NrLm1pbmVjcmFmdC5kYXlsaWdodF9kZXRlY3RvcgA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 698, + "key": "minecraft:sculk_sensor", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxZtaW5lY3JhZnQ6c2N1bGtfc2Vuc29y", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC5zY3Vsa19zZW5zb3IA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 699, + "key": "minecraft:calibrated_sculk_sensor", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByFtaW5lY3JhZnQ6Y2FsaWJyYXRlZF9zY3Vsa19zZW5zb3I=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJ2Jsb2NrLm1pbmVjcmFmdC5jYWxpYnJhdGVkX3NjdWxrX3NlbnNvcgA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 700, + "key": "minecraft:tripwire_hook", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6dHJpcHdpcmVfaG9vaw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC50cmlwd2lyZV9ob29rAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 701, + "key": "minecraft:trapped_chest", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:container": "PgA=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6dHJhcHBlZF9jaGVzdA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC50cmFwcGVkX2NoZXN0AA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 702, + "key": "minecraft:tnt", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bw1taW5lY3JhZnQ6dG50", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAE2Jsb2NrLm1pbmVjcmFmdC50bnQA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 703, + "key": "minecraft:redstone_lamp", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6cmVkc3RvbmVfbGFtcA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5yZWRzdG9uZV9sYW1wAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 704, + "key": "minecraft:note_block", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxRtaW5lY3JhZnQ6bm90ZV9ibG9jaw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC5ub3RlX2Jsb2NrAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 705, + "key": "minecraft:stone_button", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxZtaW5lY3JhZnQ6c3RvbmVfYnV0dG9u", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC5zdG9uZV9idXR0b24A", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 706, + "key": "minecraft:polished_blackstone_button", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByRtaW5lY3JhZnQ6cG9saXNoZWRfYmxhY2tzdG9uZV9idXR0b24=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAKmJsb2NrLm1pbmVjcmFmdC5wb2xpc2hlZF9ibGFja3N0b25lX2J1dHRvbgA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 707, + "key": "minecraft:oak_button", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxRtaW5lY3JhZnQ6b2FrX2J1dHRvbg==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC5vYWtfYnV0dG9uAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 708, + "key": "minecraft:spruce_button", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6c3BydWNlX2J1dHRvbg==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5zcHJ1Y2VfYnV0dG9uAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 709, + "key": "minecraft:birch_button", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxZtaW5lY3JhZnQ6YmlyY2hfYnV0dG9u", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC5iaXJjaF9idXR0b24A", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 710, + "key": "minecraft:jungle_button", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6anVuZ2xlX2J1dHRvbg==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5qdW5nbGVfYnV0dG9uAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 711, + "key": "minecraft:acacia_button", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6YWNhY2lhX2J1dHRvbg==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5hY2FjaWFfYnV0dG9uAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 712, + "key": "minecraft:cherry_button", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6Y2hlcnJ5X2J1dHRvbg==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5jaGVycnlfYnV0dG9uAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 713, + "key": "minecraft:dark_oak_button", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxltaW5lY3JhZnQ6ZGFya19vYWtfYnV0dG9u", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC5kYXJrX29ha19idXR0b24A", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 714, + "key": "minecraft:pale_oak_button", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxltaW5lY3JhZnQ6cGFsZV9vYWtfYnV0dG9u", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC5wYWxlX29ha19idXR0b24A", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 715, + "key": "minecraft:mangrove_button", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxltaW5lY3JhZnQ6bWFuZ3JvdmVfYnV0dG9u", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC5tYW5ncm92ZV9idXR0b24A", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 716, + "key": "minecraft:bamboo_button", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6YmFtYm9vX2J1dHRvbg==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5iYW1ib29fYnV0dG9uAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 717, + "key": "minecraft:crimson_button", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxhtaW5lY3JhZnQ6Y3JpbXNvbl9idXR0b24=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC5jcmltc29uX2J1dHRvbgA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 718, + "key": "minecraft:warped_button", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6d2FycGVkX2J1dHRvbg==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC53YXJwZWRfYnV0dG9uAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 719, + "key": "minecraft:stone_pressure_plate", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx5taW5lY3JhZnQ6c3RvbmVfcHJlc3N1cmVfcGxhdGU=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJGJsb2NrLm1pbmVjcmFmdC5zdG9uZV9wcmVzc3VyZV9wbGF0ZQA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 720, + "key": "minecraft:polished_blackstone_pressure_plate", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByxtaW5lY3JhZnQ6cG9saXNoZWRfYmxhY2tzdG9uZV9wcmVzc3VyZV9wbGF0ZQ==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAMmJsb2NrLm1pbmVjcmFmdC5wb2xpc2hlZF9ibGFja3N0b25lX3ByZXNzdXJlX3BsYXRlAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 721, + "key": "minecraft:light_weighted_pressure_plate", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BydtaW5lY3JhZnQ6bGlnaHRfd2VpZ2h0ZWRfcHJlc3N1cmVfcGxhdGU=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUALWJsb2NrLm1pbmVjcmFmdC5saWdodF93ZWlnaHRlZF9wcmVzc3VyZV9wbGF0ZQA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 722, + "key": "minecraft:heavy_weighted_pressure_plate", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BydtaW5lY3JhZnQ6aGVhdnlfd2VpZ2h0ZWRfcHJlc3N1cmVfcGxhdGU=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUALWJsb2NrLm1pbmVjcmFmdC5oZWF2eV93ZWlnaHRlZF9wcmVzc3VyZV9wbGF0ZQA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 723, + "key": "minecraft:oak_pressure_plate", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxxtaW5lY3JhZnQ6b2FrX3ByZXNzdXJlX3BsYXRl", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAImJsb2NrLm1pbmVjcmFmdC5vYWtfcHJlc3N1cmVfcGxhdGUA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 724, + "key": "minecraft:spruce_pressure_plate", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx9taW5lY3JhZnQ6c3BydWNlX3ByZXNzdXJlX3BsYXRl", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWJsb2NrLm1pbmVjcmFmdC5zcHJ1Y2VfcHJlc3N1cmVfcGxhdGUA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 725, + "key": "minecraft:birch_pressure_plate", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx5taW5lY3JhZnQ6YmlyY2hfcHJlc3N1cmVfcGxhdGU=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJGJsb2NrLm1pbmVjcmFmdC5iaXJjaF9wcmVzc3VyZV9wbGF0ZQA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 726, + "key": "minecraft:jungle_pressure_plate", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx9taW5lY3JhZnQ6anVuZ2xlX3ByZXNzdXJlX3BsYXRl", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWJsb2NrLm1pbmVjcmFmdC5qdW5nbGVfcHJlc3N1cmVfcGxhdGUA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 727, + "key": "minecraft:acacia_pressure_plate", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx9taW5lY3JhZnQ6YWNhY2lhX3ByZXNzdXJlX3BsYXRl", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWJsb2NrLm1pbmVjcmFmdC5hY2FjaWFfcHJlc3N1cmVfcGxhdGUA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 728, + "key": "minecraft:cherry_pressure_plate", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx9taW5lY3JhZnQ6Y2hlcnJ5X3ByZXNzdXJlX3BsYXRl", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWJsb2NrLm1pbmVjcmFmdC5jaGVycnlfcHJlc3N1cmVfcGxhdGUA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 729, + "key": "minecraft:dark_oak_pressure_plate", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByFtaW5lY3JhZnQ6ZGFya19vYWtfcHJlc3N1cmVfcGxhdGU=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJ2Jsb2NrLm1pbmVjcmFmdC5kYXJrX29ha19wcmVzc3VyZV9wbGF0ZQA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 730, + "key": "minecraft:pale_oak_pressure_plate", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByFtaW5lY3JhZnQ6cGFsZV9vYWtfcHJlc3N1cmVfcGxhdGU=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJ2Jsb2NrLm1pbmVjcmFmdC5wYWxlX29ha19wcmVzc3VyZV9wbGF0ZQA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 731, + "key": "minecraft:mangrove_pressure_plate", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByFtaW5lY3JhZnQ6bWFuZ3JvdmVfcHJlc3N1cmVfcGxhdGU=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJ2Jsb2NrLm1pbmVjcmFmdC5tYW5ncm92ZV9wcmVzc3VyZV9wbGF0ZQA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 732, + "key": "minecraft:bamboo_pressure_plate", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx9taW5lY3JhZnQ6YmFtYm9vX3ByZXNzdXJlX3BsYXRl", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWJsb2NrLm1pbmVjcmFmdC5iYW1ib29fcHJlc3N1cmVfcGxhdGUA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 733, + "key": "minecraft:crimson_pressure_plate", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByBtaW5lY3JhZnQ6Y3JpbXNvbl9wcmVzc3VyZV9wbGF0ZQ==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJmJsb2NrLm1pbmVjcmFmdC5jcmltc29uX3ByZXNzdXJlX3BsYXRlAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 734, + "key": "minecraft:warped_pressure_plate", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx9taW5lY3JhZnQ6d2FycGVkX3ByZXNzdXJlX3BsYXRl", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWJsb2NrLm1pbmVjcmFmdC53YXJwZWRfcHJlc3N1cmVfcGxhdGUA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 735, + "key": "minecraft:iron_door", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxNtaW5lY3JhZnQ6aXJvbl9kb29y", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGWJsb2NrLm1pbmVjcmFmdC5pcm9uX2Rvb3IA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 736, + "key": "minecraft:oak_door", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxJtaW5lY3JhZnQ6b2FrX2Rvb3I=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGGJsb2NrLm1pbmVjcmFmdC5vYWtfZG9vcgA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 737, + "key": "minecraft:spruce_door", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6c3BydWNlX2Rvb3I=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5zcHJ1Y2VfZG9vcgA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 738, + "key": "minecraft:birch_door", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxRtaW5lY3JhZnQ6YmlyY2hfZG9vcg==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC5iaXJjaF9kb29yAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 739, + "key": "minecraft:jungle_door", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6anVuZ2xlX2Rvb3I=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5qdW5nbGVfZG9vcgA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 740, + "key": "minecraft:acacia_door", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6YWNhY2lhX2Rvb3I=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5hY2FjaWFfZG9vcgA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 741, + "key": "minecraft:cherry_door", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6Y2hlcnJ5X2Rvb3I=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5jaGVycnlfZG9vcgA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 742, + "key": "minecraft:dark_oak_door", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6ZGFya19vYWtfZG9vcg==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5kYXJrX29ha19kb29yAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 743, + "key": "minecraft:pale_oak_door", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6cGFsZV9vYWtfZG9vcg==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5wYWxlX29ha19kb29yAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 744, + "key": "minecraft:mangrove_door", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6bWFuZ3JvdmVfZG9vcg==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5tYW5ncm92ZV9kb29yAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 745, + "key": "minecraft:bamboo_door", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6YmFtYm9vX2Rvb3I=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5iYW1ib29fZG9vcgA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 746, + "key": "minecraft:crimson_door", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxZtaW5lY3JhZnQ6Y3JpbXNvbl9kb29y", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC5jcmltc29uX2Rvb3IA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 747, + "key": "minecraft:warped_door", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6d2FycGVkX2Rvb3I=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC53YXJwZWRfZG9vcgA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 748, + "key": "minecraft:copper_door", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6Y29wcGVyX2Rvb3I=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5jb3BwZXJfZG9vcgA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 749, + "key": "minecraft:exposed_copper_door", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx1taW5lY3JhZnQ6ZXhwb3NlZF9jb3BwZXJfZG9vcg==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2Jsb2NrLm1pbmVjcmFmdC5leHBvc2VkX2NvcHBlcl9kb29yAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 750, + "key": "minecraft:weathered_copper_door", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx9taW5lY3JhZnQ6d2VhdGhlcmVkX2NvcHBlcl9kb29y", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWJsb2NrLm1pbmVjcmFmdC53ZWF0aGVyZWRfY29wcGVyX2Rvb3IA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 751, + "key": "minecraft:oxidized_copper_door", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx5taW5lY3JhZnQ6b3hpZGl6ZWRfY29wcGVyX2Rvb3I=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJGJsb2NrLm1pbmVjcmFmdC5veGlkaXplZF9jb3BwZXJfZG9vcgA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 752, + "key": "minecraft:waxed_copper_door", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxttaW5lY3JhZnQ6d2F4ZWRfY29wcGVyX2Rvb3I=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWJsb2NrLm1pbmVjcmFmdC53YXhlZF9jb3BwZXJfZG9vcgA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 753, + "key": "minecraft:waxed_exposed_copper_door", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByNtaW5lY3JhZnQ6d2F4ZWRfZXhwb3NlZF9jb3BwZXJfZG9vcg==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAKWJsb2NrLm1pbmVjcmFmdC53YXhlZF9leHBvc2VkX2NvcHBlcl9kb29yAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 754, + "key": "minecraft:waxed_weathered_copper_door", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByVtaW5lY3JhZnQ6d2F4ZWRfd2VhdGhlcmVkX2NvcHBlcl9kb29y", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAK2Jsb2NrLm1pbmVjcmFmdC53YXhlZF93ZWF0aGVyZWRfY29wcGVyX2Rvb3IA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 755, + "key": "minecraft:waxed_oxidized_copper_door", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByRtaW5lY3JhZnQ6d2F4ZWRfb3hpZGl6ZWRfY29wcGVyX2Rvb3I=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAKmJsb2NrLm1pbmVjcmFmdC53YXhlZF9veGlkaXplZF9jb3BwZXJfZG9vcgA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 756, + "key": "minecraft:iron_trapdoor", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6aXJvbl90cmFwZG9vcg==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5pcm9uX3RyYXBkb29yAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 757, + "key": "minecraft:oak_trapdoor", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxZtaW5lY3JhZnQ6b2FrX3RyYXBkb29y", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC5vYWtfdHJhcGRvb3IA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 758, + "key": "minecraft:spruce_trapdoor", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxltaW5lY3JhZnQ6c3BydWNlX3RyYXBkb29y", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC5zcHJ1Y2VfdHJhcGRvb3IA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 759, + "key": "minecraft:birch_trapdoor", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxhtaW5lY3JhZnQ6YmlyY2hfdHJhcGRvb3I=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC5iaXJjaF90cmFwZG9vcgA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 760, + "key": "minecraft:jungle_trapdoor", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxltaW5lY3JhZnQ6anVuZ2xlX3RyYXBkb29y", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC5qdW5nbGVfdHJhcGRvb3IA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 761, + "key": "minecraft:acacia_trapdoor", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxltaW5lY3JhZnQ6YWNhY2lhX3RyYXBkb29y", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC5hY2FjaWFfdHJhcGRvb3IA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 762, + "key": "minecraft:cherry_trapdoor", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxltaW5lY3JhZnQ6Y2hlcnJ5X3RyYXBkb29y", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC5jaGVycnlfdHJhcGRvb3IA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 763, + "key": "minecraft:dark_oak_trapdoor", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxttaW5lY3JhZnQ6ZGFya19vYWtfdHJhcGRvb3I=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWJsb2NrLm1pbmVjcmFmdC5kYXJrX29ha190cmFwZG9vcgA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 764, + "key": "minecraft:pale_oak_trapdoor", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxttaW5lY3JhZnQ6cGFsZV9vYWtfdHJhcGRvb3I=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWJsb2NrLm1pbmVjcmFmdC5wYWxlX29ha190cmFwZG9vcgA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 765, + "key": "minecraft:mangrove_trapdoor", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxttaW5lY3JhZnQ6bWFuZ3JvdmVfdHJhcGRvb3I=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWJsb2NrLm1pbmVjcmFmdC5tYW5ncm92ZV90cmFwZG9vcgA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 766, + "key": "minecraft:bamboo_trapdoor", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxltaW5lY3JhZnQ6YmFtYm9vX3RyYXBkb29y", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC5iYW1ib29fdHJhcGRvb3IA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 767, + "key": "minecraft:crimson_trapdoor", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxptaW5lY3JhZnQ6Y3JpbXNvbl90cmFwZG9vcg==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGJsb2NrLm1pbmVjcmFmdC5jcmltc29uX3RyYXBkb29yAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 768, + "key": "minecraft:warped_trapdoor", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxltaW5lY3JhZnQ6d2FycGVkX3RyYXBkb29y", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC53YXJwZWRfdHJhcGRvb3IA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 769, + "key": "minecraft:copper_trapdoor", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxltaW5lY3JhZnQ6Y29wcGVyX3RyYXBkb29y", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC5jb3BwZXJfdHJhcGRvb3IA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 770, + "key": "minecraft:exposed_copper_trapdoor", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByFtaW5lY3JhZnQ6ZXhwb3NlZF9jb3BwZXJfdHJhcGRvb3I=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJ2Jsb2NrLm1pbmVjcmFmdC5leHBvc2VkX2NvcHBlcl90cmFwZG9vcgA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 771, + "key": "minecraft:weathered_copper_trapdoor", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByNtaW5lY3JhZnQ6d2VhdGhlcmVkX2NvcHBlcl90cmFwZG9vcg==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAKWJsb2NrLm1pbmVjcmFmdC53ZWF0aGVyZWRfY29wcGVyX3RyYXBkb29yAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 772, + "key": "minecraft:oxidized_copper_trapdoor", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByJtaW5lY3JhZnQ6b3hpZGl6ZWRfY29wcGVyX3RyYXBkb29y", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAKGJsb2NrLm1pbmVjcmFmdC5veGlkaXplZF9jb3BwZXJfdHJhcGRvb3IA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 773, + "key": "minecraft:waxed_copper_trapdoor", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx9taW5lY3JhZnQ6d2F4ZWRfY29wcGVyX3RyYXBkb29y", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWJsb2NrLm1pbmVjcmFmdC53YXhlZF9jb3BwZXJfdHJhcGRvb3IA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 774, + "key": "minecraft:waxed_exposed_copper_trapdoor", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BydtaW5lY3JhZnQ6d2F4ZWRfZXhwb3NlZF9jb3BwZXJfdHJhcGRvb3I=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUALWJsb2NrLm1pbmVjcmFmdC53YXhlZF9leHBvc2VkX2NvcHBlcl90cmFwZG9vcgA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 775, + "key": "minecraft:waxed_weathered_copper_trapdoor", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByltaW5lY3JhZnQ6d2F4ZWRfd2VhdGhlcmVkX2NvcHBlcl90cmFwZG9vcg==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAL2Jsb2NrLm1pbmVjcmFmdC53YXhlZF93ZWF0aGVyZWRfY29wcGVyX3RyYXBkb29yAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 776, + "key": "minecraft:waxed_oxidized_copper_trapdoor", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByhtaW5lY3JhZnQ6d2F4ZWRfb3hpZGl6ZWRfY29wcGVyX3RyYXBkb29y", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUALmJsb2NrLm1pbmVjcmFmdC53YXhlZF9veGlkaXplZF9jb3BwZXJfdHJhcGRvb3IA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 777, + "key": "minecraft:oak_fence_gate", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxhtaW5lY3JhZnQ6b2FrX2ZlbmNlX2dhdGU=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC5vYWtfZmVuY2VfZ2F0ZQA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 778, + "key": "minecraft:spruce_fence_gate", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxttaW5lY3JhZnQ6c3BydWNlX2ZlbmNlX2dhdGU=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWJsb2NrLm1pbmVjcmFmdC5zcHJ1Y2VfZmVuY2VfZ2F0ZQA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 779, + "key": "minecraft:birch_fence_gate", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxptaW5lY3JhZnQ6YmlyY2hfZmVuY2VfZ2F0ZQ==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGJsb2NrLm1pbmVjcmFmdC5iaXJjaF9mZW5jZV9nYXRlAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 780, + "key": "minecraft:jungle_fence_gate", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxttaW5lY3JhZnQ6anVuZ2xlX2ZlbmNlX2dhdGU=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWJsb2NrLm1pbmVjcmFmdC5qdW5nbGVfZmVuY2VfZ2F0ZQA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 781, + "key": "minecraft:acacia_fence_gate", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxttaW5lY3JhZnQ6YWNhY2lhX2ZlbmNlX2dhdGU=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWJsb2NrLm1pbmVjcmFmdC5hY2FjaWFfZmVuY2VfZ2F0ZQA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 782, + "key": "minecraft:cherry_fence_gate", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxttaW5lY3JhZnQ6Y2hlcnJ5X2ZlbmNlX2dhdGU=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWJsb2NrLm1pbmVjcmFmdC5jaGVycnlfZmVuY2VfZ2F0ZQA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 783, + "key": "minecraft:dark_oak_fence_gate", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx1taW5lY3JhZnQ6ZGFya19vYWtfZmVuY2VfZ2F0ZQ==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2Jsb2NrLm1pbmVjcmFmdC5kYXJrX29ha19mZW5jZV9nYXRlAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 784, + "key": "minecraft:pale_oak_fence_gate", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx1taW5lY3JhZnQ6cGFsZV9vYWtfZmVuY2VfZ2F0ZQ==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2Jsb2NrLm1pbmVjcmFmdC5wYWxlX29ha19mZW5jZV9nYXRlAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 785, + "key": "minecraft:mangrove_fence_gate", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx1taW5lY3JhZnQ6bWFuZ3JvdmVfZmVuY2VfZ2F0ZQ==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2Jsb2NrLm1pbmVjcmFmdC5tYW5ncm92ZV9mZW5jZV9nYXRlAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 786, + "key": "minecraft:bamboo_fence_gate", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxttaW5lY3JhZnQ6YmFtYm9vX2ZlbmNlX2dhdGU=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWJsb2NrLm1pbmVjcmFmdC5iYW1ib29fZmVuY2VfZ2F0ZQA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 787, + "key": "minecraft:crimson_fence_gate", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxxtaW5lY3JhZnQ6Y3JpbXNvbl9mZW5jZV9nYXRl", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAImJsb2NrLm1pbmVjcmFmdC5jcmltc29uX2ZlbmNlX2dhdGUA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 788, + "key": "minecraft:warped_fence_gate", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxttaW5lY3JhZnQ6d2FycGVkX2ZlbmNlX2dhdGU=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWJsb2NrLm1pbmVjcmFmdC53YXJwZWRfZmVuY2VfZ2F0ZQA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 789, + "key": "minecraft:powered_rail", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxZtaW5lY3JhZnQ6cG93ZXJlZF9yYWls", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC5wb3dlcmVkX3JhaWwA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 790, + "key": "minecraft:detector_rail", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6ZGV0ZWN0b3JfcmFpbA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5kZXRlY3Rvcl9yYWlsAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 791, + "key": "minecraft:rail", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bw5taW5lY3JhZnQ6cmFpbA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFGJsb2NrLm1pbmVjcmFmdC5yYWlsAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 792, + "key": "minecraft:activator_rail", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxhtaW5lY3JhZnQ6YWN0aXZhdG9yX3JhaWw=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC5hY3RpdmF0b3JfcmFpbAA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 793, + "key": "minecraft:saddle", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxBtaW5lY3JhZnQ6c2FkZGxl", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFWl0ZW0ubWluZWNyYWZ0LnNhZGRsZQA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 794, + "key": "minecraft:minecart", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxJtaW5lY3JhZnQ6bWluZWNhcnQ=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAF2l0ZW0ubWluZWNyYWZ0Lm1pbmVjYXJ0AA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 795, + "key": "minecraft:chest_minecart", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxhtaW5lY3JhZnQ6Y2hlc3RfbWluZWNhcnQ=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWl0ZW0ubWluZWNyYWZ0LmNoZXN0X21pbmVjYXJ0AA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 796, + "key": "minecraft:furnace_minecart", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxptaW5lY3JhZnQ6ZnVybmFjZV9taW5lY2FydA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2l0ZW0ubWluZWNyYWZ0LmZ1cm5hY2VfbWluZWNhcnQA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 797, + "key": "minecraft:tnt_minecart", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxZtaW5lY3JhZnQ6dG50X21pbmVjYXJ0", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2l0ZW0ubWluZWNyYWZ0LnRudF9taW5lY2FydAA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 798, + "key": "minecraft:hopper_minecart", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxltaW5lY3JhZnQ6aG9wcGVyX21pbmVjYXJ0", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHml0ZW0ubWluZWNyYWZ0LmhvcHBlcl9taW5lY2FydAA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 799, + "key": "minecraft:carrot_on_a_stick", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:damage": "AwA=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxttaW5lY3JhZnQ6Y2Fycm90X29uX2Ffc3RpY2s=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGl0ZW0ubWluZWNyYWZ0LmNhcnJvdF9vbl9hX3N0aWNrAA==", + "minecraft:lore": "CAA=", + "minecraft:max_damage": "Ahk=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 800, + "key": "minecraft:warped_fungus_on_a_stick", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:damage": "AwA=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByJtaW5lY3JhZnQ6d2FycGVkX2Z1bmd1c19vbl9hX3N0aWNr", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJ2l0ZW0ubWluZWNyYWZ0LndhcnBlZF9mdW5ndXNfb25fYV9zdGljawA=", + "minecraft:lore": "CAA=", + "minecraft:max_damage": "AmQ=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 801, + "key": "minecraft:phantom_membrane", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxptaW5lY3JhZnQ6cGhhbnRvbV9tZW1icmFuZQ==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2l0ZW0ubWluZWNyYWZ0LnBoYW50b21fbWVtYnJhbmUA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 802, + "key": "minecraft:elytra", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:damage": "AwA=", + "minecraft:enchantments": "CgAB", + "minecraft:equippable": "HANGARBtaW5lY3JhZnQ6ZWx5dHJhAAABAQA=", + "minecraft:glider": "Hg==", + "minecraft:item_model": "BxBtaW5lY3JhZnQ6ZWx5dHJh", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFWl0ZW0ubWluZWNyYWZ0LmVseXRyYQA=", + "minecraft:lore": "CAA=", + "minecraft:max_damage": "ArAD", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQM=", + "minecraft:repair_cost": "EQA=", + "minecraft:repairable": "HQKhBg==" + } + }, + { + "id": 803, + "key": "minecraft:oak_boat", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxJtaW5lY3JhZnQ6b2FrX2JvYXQ=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAF2l0ZW0ubWluZWNyYWZ0Lm9ha19ib2F0AA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 804, + "key": "minecraft:oak_chest_boat", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxhtaW5lY3JhZnQ6b2FrX2NoZXN0X2JvYXQ=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWl0ZW0ubWluZWNyYWZ0Lm9ha19jaGVzdF9ib2F0AA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 805, + "key": "minecraft:spruce_boat", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6c3BydWNlX2JvYXQ=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGml0ZW0ubWluZWNyYWZ0LnNwcnVjZV9ib2F0AA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 806, + "key": "minecraft:spruce_chest_boat", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxttaW5lY3JhZnQ6c3BydWNlX2NoZXN0X2JvYXQ=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGl0ZW0ubWluZWNyYWZ0LnNwcnVjZV9jaGVzdF9ib2F0AA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 807, + "key": "minecraft:birch_boat", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxRtaW5lY3JhZnQ6YmlyY2hfYm9hdA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGWl0ZW0ubWluZWNyYWZ0LmJpcmNoX2JvYXQA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 808, + "key": "minecraft:birch_chest_boat", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxptaW5lY3JhZnQ6YmlyY2hfY2hlc3RfYm9hdA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2l0ZW0ubWluZWNyYWZ0LmJpcmNoX2NoZXN0X2JvYXQA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 809, + "key": "minecraft:jungle_boat", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6anVuZ2xlX2JvYXQ=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGml0ZW0ubWluZWNyYWZ0Lmp1bmdsZV9ib2F0AA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 810, + "key": "minecraft:jungle_chest_boat", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxttaW5lY3JhZnQ6anVuZ2xlX2NoZXN0X2JvYXQ=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGl0ZW0ubWluZWNyYWZ0Lmp1bmdsZV9jaGVzdF9ib2F0AA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 811, + "key": "minecraft:acacia_boat", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6YWNhY2lhX2JvYXQ=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGml0ZW0ubWluZWNyYWZ0LmFjYWNpYV9ib2F0AA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 812, + "key": "minecraft:acacia_chest_boat", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxttaW5lY3JhZnQ6YWNhY2lhX2NoZXN0X2JvYXQ=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGl0ZW0ubWluZWNyYWZ0LmFjYWNpYV9jaGVzdF9ib2F0AA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 813, + "key": "minecraft:cherry_boat", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6Y2hlcnJ5X2JvYXQ=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGml0ZW0ubWluZWNyYWZ0LmNoZXJyeV9ib2F0AA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 814, + "key": "minecraft:cherry_chest_boat", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxttaW5lY3JhZnQ6Y2hlcnJ5X2NoZXN0X2JvYXQ=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGl0ZW0ubWluZWNyYWZ0LmNoZXJyeV9jaGVzdF9ib2F0AA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 815, + "key": "minecraft:dark_oak_boat", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6ZGFya19vYWtfYm9hdA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGl0ZW0ubWluZWNyYWZ0LmRhcmtfb2FrX2JvYXQA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 816, + "key": "minecraft:dark_oak_chest_boat", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx1taW5lY3JhZnQ6ZGFya19vYWtfY2hlc3RfYm9hdA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIml0ZW0ubWluZWNyYWZ0LmRhcmtfb2FrX2NoZXN0X2JvYXQA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 817, + "key": "minecraft:pale_oak_boat", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6cGFsZV9vYWtfYm9hdA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGl0ZW0ubWluZWNyYWZ0LnBhbGVfb2FrX2JvYXQA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 818, + "key": "minecraft:pale_oak_chest_boat", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx1taW5lY3JhZnQ6cGFsZV9vYWtfY2hlc3RfYm9hdA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIml0ZW0ubWluZWNyYWZ0LnBhbGVfb2FrX2NoZXN0X2JvYXQA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 819, + "key": "minecraft:mangrove_boat", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6bWFuZ3JvdmVfYm9hdA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGl0ZW0ubWluZWNyYWZ0Lm1hbmdyb3ZlX2JvYXQA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 820, + "key": "minecraft:mangrove_chest_boat", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx1taW5lY3JhZnQ6bWFuZ3JvdmVfY2hlc3RfYm9hdA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIml0ZW0ubWluZWNyYWZ0Lm1hbmdyb3ZlX2NoZXN0X2JvYXQA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 821, + "key": "minecraft:bamboo_raft", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6YmFtYm9vX3JhZnQ=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGml0ZW0ubWluZWNyYWZ0LmJhbWJvb19yYWZ0AA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 822, + "key": "minecraft:bamboo_chest_raft", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxttaW5lY3JhZnQ6YmFtYm9vX2NoZXN0X3JhZnQ=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGl0ZW0ubWluZWNyYWZ0LmJhbWJvb19jaGVzdF9yYWZ0AA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 823, + "key": "minecraft:structure_block", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxltaW5lY3JhZnQ6c3RydWN0dXJlX2Jsb2Nr", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC5zdHJ1Y3R1cmVfYmxvY2sA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQM=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 824, + "key": "minecraft:jigsaw", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxBtaW5lY3JhZnQ6amlnc2F3", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFmJsb2NrLm1pbmVjcmFmdC5qaWdzYXcA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQM=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 825, + "key": "minecraft:turtle_helmet", + "components": { + "minecraft:attribute_modifiers": "DQIAFm1pbmVjcmFmdDphcm1vci5oZWxtZXRAAAAAAAAAAAAHARZtaW5lY3JhZnQ6YXJtb3IuaGVsbWV0AAAAAAAAAAAABwE=", + "minecraft:damage": "AwA=", + "minecraft:enchantable": "Gwk=", + "minecraft:enchantments": "CgAB", + "minecraft:equippable": "HARMARZtaW5lY3JhZnQ6dHVydGxlX3NjdXRlAAABAQE=", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6dHVydGxlX2hlbG1ldA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGl0ZW0ubWluZWNyYWZ0LnR1cnRsZV9oZWxtZXQA", + "minecraft:lore": "CAA=", + "minecraft:max_damage": "ApMC", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=", + "minecraft:repairable": "HQAfbWluZWNyYWZ0OnJlcGFpcnNfdHVydGxlX2hlbG1ldA==" + } + }, + { + "id": 826, + "key": "minecraft:turtle_scute", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxZtaW5lY3JhZnQ6dHVydGxlX3NjdXRl", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2l0ZW0ubWluZWNyYWZ0LnR1cnRsZV9zY3V0ZQA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 827, + "key": "minecraft:armadillo_scute", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxltaW5lY3JhZnQ6YXJtYWRpbGxvX3NjdXRl", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHml0ZW0ubWluZWNyYWZ0LmFybWFkaWxsb19zY3V0ZQA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 828, + "key": "minecraft:wolf_armor", + "components": { + "minecraft:attribute_modifiers": "DQIAFG1pbmVjcmFmdDphcm1vci5ib2R5QCYAAAAAAAAACQEUbWluZWNyYWZ0OmFybW9yLmJvZHkAAAAAAAAAAAAJAQ==", + "minecraft:damage": "AwA=", + "minecraft:enchantments": "CgAB", + "minecraft:equippable": "HAZNARltaW5lY3JhZnQ6YXJtYWRpbGxvX3NjdXRlAAECjQEBAQE=", + "minecraft:item_model": "BxRtaW5lY3JhZnQ6d29sZl9hcm1vcg==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGWl0ZW0ubWluZWNyYWZ0LndvbGZfYXJtb3IA", + "minecraft:lore": "CAA=", + "minecraft:max_damage": "AkA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=", + "minecraft:repairable": "HQAcbWluZWNyYWZ0OnJlcGFpcnNfd29sZl9hcm1vcg==" + } + }, + { + "id": 829, + "key": "minecraft:flint_and_steel", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:damage": "AwA=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxltaW5lY3JhZnQ6ZmxpbnRfYW5kX3N0ZWVs", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHml0ZW0ubWluZWNyYWZ0LmZsaW50X2FuZF9zdGVlbAA=", + "minecraft:lore": "CAA=", + "minecraft:max_damage": "AkA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 830, + "key": "minecraft:bowl", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bw5taW5lY3JhZnQ6Ym93bA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAE2l0ZW0ubWluZWNyYWZ0LmJvd2wA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 831, + "key": "minecraft:apple", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:consumable": "Fj/MzM0B2gQBAA==", + "minecraft:enchantments": "CgAB", + "minecraft:food": "FQRAGZmaAA==", + "minecraft:item_model": "Bw9taW5lY3JhZnQ6YXBwbGU=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFGl0ZW0ubWluZWNyYWZ0LmFwcGxlAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 832, + "key": "minecraft:bow", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:damage": "AwA=", + "minecraft:enchantable": "GwE=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bw1taW5lY3JhZnQ6Ym93", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAEml0ZW0ubWluZWNyYWZ0LmJvdwA=", + "minecraft:lore": "CAA=", + "minecraft:max_damage": "AoAD", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 833, + "key": "minecraft:arrow", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bw9taW5lY3JhZnQ6YXJyb3c=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFGl0ZW0ubWluZWNyYWZ0LmFycm93AA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 834, + "key": "minecraft:coal", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bw5taW5lY3JhZnQ6Y29hbA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAE2l0ZW0ubWluZWNyYWZ0LmNvYWwA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 835, + "key": "minecraft:charcoal", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxJtaW5lY3JhZnQ6Y2hhcmNvYWw=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAF2l0ZW0ubWluZWNyYWZ0LmNoYXJjb2FsAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 836, + "key": "minecraft:diamond", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxFtaW5lY3JhZnQ6ZGlhbW9uZA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFml0ZW0ubWluZWNyYWZ0LmRpYW1vbmQA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 837, + "key": "minecraft:emerald", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxFtaW5lY3JhZnQ6ZW1lcmFsZA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFml0ZW0ubWluZWNyYWZ0LmVtZXJhbGQA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 838, + "key": "minecraft:lapis_lazuli", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxZtaW5lY3JhZnQ6bGFwaXNfbGF6dWxp", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2l0ZW0ubWluZWNyYWZ0LmxhcGlzX2xhenVsaQA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 839, + "key": "minecraft:quartz", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxBtaW5lY3JhZnQ6cXVhcnR6", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFWl0ZW0ubWluZWNyYWZ0LnF1YXJ0egA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 840, + "key": "minecraft:amethyst_shard", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxhtaW5lY3JhZnQ6YW1ldGh5c3Rfc2hhcmQ=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWl0ZW0ubWluZWNyYWZ0LmFtZXRoeXN0X3NoYXJkAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 841, + "key": "minecraft:raw_iron", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxJtaW5lY3JhZnQ6cmF3X2lyb24=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAF2l0ZW0ubWluZWNyYWZ0LnJhd19pcm9uAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 842, + "key": "minecraft:iron_ingot", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxRtaW5lY3JhZnQ6aXJvbl9pbmdvdA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGWl0ZW0ubWluZWNyYWZ0Lmlyb25faW5nb3QA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 843, + "key": "minecraft:raw_copper", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxRtaW5lY3JhZnQ6cmF3X2NvcHBlcg==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGWl0ZW0ubWluZWNyYWZ0LnJhd19jb3BwZXIA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 844, + "key": "minecraft:copper_ingot", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxZtaW5lY3JhZnQ6Y29wcGVyX2luZ290", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2l0ZW0ubWluZWNyYWZ0LmNvcHBlcl9pbmdvdAA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 845, + "key": "minecraft:raw_gold", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxJtaW5lY3JhZnQ6cmF3X2dvbGQ=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAF2l0ZW0ubWluZWNyYWZ0LnJhd19nb2xkAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 846, + "key": "minecraft:gold_ingot", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxRtaW5lY3JhZnQ6Z29sZF9pbmdvdA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGWl0ZW0ubWluZWNyYWZ0LmdvbGRfaW5nb3QA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 847, + "key": "minecraft:netherite_ingot", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:damage_resistant": "GRFtaW5lY3JhZnQ6aXNfZmlyZQ==", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxltaW5lY3JhZnQ6bmV0aGVyaXRlX2luZ290", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHml0ZW0ubWluZWNyYWZ0Lm5ldGhlcml0ZV9pbmdvdAA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 848, + "key": "minecraft:netherite_scrap", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:damage_resistant": "GRFtaW5lY3JhZnQ6aXNfZmlyZQ==", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxltaW5lY3JhZnQ6bmV0aGVyaXRlX3NjcmFw", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHml0ZW0ubWluZWNyYWZ0Lm5ldGhlcml0ZV9zY3JhcAA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 849, + "key": "minecraft:wooden_sword", + "components": { + "minecraft:attribute_modifiers": "DQICHG1pbmVjcmFmdDpiYXNlX2F0dGFja19kYW1hZ2VACAAAAAAAAAABBBttaW5lY3JhZnQ6YmFzZV9hdHRhY2tfc3BlZWTAAzMzQAAAAAABAQ==", + "minecraft:damage": "AwA=", + "minecraft:enchantable": "Gw8=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxZtaW5lY3JhZnQ6d29vZGVuX3N3b3Jk", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2l0ZW0ubWluZWNyYWZ0Lndvb2Rlbl9zd29yZAA=", + "minecraft:lore": "CAA=", + "minecraft:max_damage": "Ajs=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=", + "minecraft:repairable": "HQAfbWluZWNyYWZ0Ondvb2Rlbl90b29sX21hdGVyaWFscw==", + "minecraft:tool": "GgICgQEBQXAAAAEBABltaW5lY3JhZnQ6c3dvcmRfZWZmaWNpZW50AT/AAAAAP4AAAAI=" + } + }, + { + "id": 850, + "key": "minecraft:wooden_shovel", + "components": { + "minecraft:attribute_modifiers": "DQICHG1pbmVjcmFmdDpiYXNlX2F0dGFja19kYW1hZ2U/+AAAAAAAAAABBBttaW5lY3JhZnQ6YmFzZV9hdHRhY2tfc3BlZWTACAAAAAAAAAABAQ==", + "minecraft:damage": "AwA=", + "minecraft:enchantable": "Gw8=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6d29vZGVuX3Nob3ZlbA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGl0ZW0ubWluZWNyYWZ0Lndvb2Rlbl9zaG92ZWwA", + "minecraft:lore": "CAA=", + "minecraft:max_damage": "Ajs=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=", + "minecraft:repairable": "HQAfbWluZWNyYWZ0Ondvb2Rlbl90b29sX21hdGVyaWFscw==", + "minecraft:tool": "GgIAI21pbmVjcmFmdDppbmNvcnJlY3RfZm9yX3dvb2Rlbl90b29sAAEAABltaW5lY3JhZnQ6bWluZWFibGUvc2hvdmVsAUAAAAABAT+AAAAB" + } + }, + { + "id": 851, + "key": "minecraft:wooden_pickaxe", + "components": { + "minecraft:attribute_modifiers": "DQICHG1pbmVjcmFmdDpiYXNlX2F0dGFja19kYW1hZ2U/8AAAAAAAAAABBBttaW5lY3JhZnQ6YmFzZV9hdHRhY2tfc3BlZWTABmZmYAAAAAABAQ==", + "minecraft:damage": "AwA=", + "minecraft:enchantable": "Gw8=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxhtaW5lY3JhZnQ6d29vZGVuX3BpY2theGU=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWl0ZW0ubWluZWNyYWZ0Lndvb2Rlbl9waWNrYXhlAA==", + "minecraft:lore": "CAA=", + "minecraft:max_damage": "Ajs=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=", + "minecraft:repairable": "HQAfbWluZWNyYWZ0Ondvb2Rlbl90b29sX21hdGVyaWFscw==", + "minecraft:tool": "GgIAI21pbmVjcmFmdDppbmNvcnJlY3RfZm9yX3dvb2Rlbl90b29sAAEAABptaW5lY3JhZnQ6bWluZWFibGUvcGlja2F4ZQFAAAAAAQE/gAAAAQ==" + } + }, + { + "id": 852, + "key": "minecraft:wooden_axe", + "components": { + "minecraft:attribute_modifiers": "DQICHG1pbmVjcmFmdDpiYXNlX2F0dGFja19kYW1hZ2VAGAAAAAAAAAABBBttaW5lY3JhZnQ6YmFzZV9hdHRhY2tfc3BlZWTACZmZoAAAAAABAQ==", + "minecraft:damage": "AwA=", + "minecraft:enchantable": "Gw8=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxRtaW5lY3JhZnQ6d29vZGVuX2F4ZQ==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGWl0ZW0ubWluZWNyYWZ0Lndvb2Rlbl9heGUA", + "minecraft:lore": "CAA=", + "minecraft:max_damage": "Ajs=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=", + "minecraft:repairable": "HQAfbWluZWNyYWZ0Ondvb2Rlbl90b29sX21hdGVyaWFscw==", + "minecraft:tool": "GgIAI21pbmVjcmFmdDppbmNvcnJlY3RfZm9yX3dvb2Rlbl90b29sAAEAABZtaW5lY3JhZnQ6bWluZWFibGUvYXhlAUAAAAABAT+AAAAB" + } + }, + { + "id": 853, + "key": "minecraft:wooden_hoe", + "components": { + "minecraft:attribute_modifiers": "DQICHG1pbmVjcmFmdDpiYXNlX2F0dGFja19kYW1hZ2UAAAAAAAAAAAABBBttaW5lY3JhZnQ6YmFzZV9hdHRhY2tfc3BlZWTACAAAAAAAAAABAQ==", + "minecraft:damage": "AwA=", + "minecraft:enchantable": "Gw8=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxRtaW5lY3JhZnQ6d29vZGVuX2hvZQ==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGWl0ZW0ubWluZWNyYWZ0Lndvb2Rlbl9ob2UA", + "minecraft:lore": "CAA=", + "minecraft:max_damage": "Ajs=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=", + "minecraft:repairable": "HQAfbWluZWNyYWZ0Ondvb2Rlbl90b29sX21hdGVyaWFscw==", + "minecraft:tool": "GgIAI21pbmVjcmFmdDppbmNvcnJlY3RfZm9yX3dvb2Rlbl90b29sAAEAABZtaW5lY3JhZnQ6bWluZWFibGUvaG9lAUAAAAABAT+AAAAB" + } + }, + { + "id": 854, + "key": "minecraft:stone_sword", + "components": { + "minecraft:attribute_modifiers": "DQICHG1pbmVjcmFmdDpiYXNlX2F0dGFja19kYW1hZ2VAEAAAAAAAAAABBBttaW5lY3JhZnQ6YmFzZV9hdHRhY2tfc3BlZWTAAzMzQAAAAAABAQ==", + "minecraft:damage": "AwA=", + "minecraft:enchantable": "GwU=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6c3RvbmVfc3dvcmQ=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGml0ZW0ubWluZWNyYWZ0LnN0b25lX3N3b3JkAA==", + "minecraft:lore": "CAA=", + "minecraft:max_damage": "AoMB", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=", + "minecraft:repairable": "HQAebWluZWNyYWZ0OnN0b25lX3Rvb2xfbWF0ZXJpYWxz", + "minecraft:tool": "GgICgQEBQXAAAAEBABltaW5lY3JhZnQ6c3dvcmRfZWZmaWNpZW50AT/AAAAAP4AAAAI=" + } + }, + { + "id": 855, + "key": "minecraft:stone_shovel", + "components": { + "minecraft:attribute_modifiers": "DQICHG1pbmVjcmFmdDpiYXNlX2F0dGFja19kYW1hZ2VABAAAAAAAAAABBBttaW5lY3JhZnQ6YmFzZV9hdHRhY2tfc3BlZWTACAAAAAAAAAABAQ==", + "minecraft:damage": "AwA=", + "minecraft:enchantable": "GwU=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxZtaW5lY3JhZnQ6c3RvbmVfc2hvdmVs", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2l0ZW0ubWluZWNyYWZ0LnN0b25lX3Nob3ZlbAA=", + "minecraft:lore": "CAA=", + "minecraft:max_damage": "AoMB", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=", + "minecraft:repairable": "HQAebWluZWNyYWZ0OnN0b25lX3Rvb2xfbWF0ZXJpYWxz", + "minecraft:tool": "GgIAIm1pbmVjcmFmdDppbmNvcnJlY3RfZm9yX3N0b25lX3Rvb2wAAQAAGW1pbmVjcmFmdDptaW5lYWJsZS9zaG92ZWwBQIAAAAEBP4AAAAE=" + } + }, + { + "id": 856, + "key": "minecraft:stone_pickaxe", + "components": { + "minecraft:attribute_modifiers": "DQICHG1pbmVjcmFmdDpiYXNlX2F0dGFja19kYW1hZ2VAAAAAAAAAAAABBBttaW5lY3JhZnQ6YmFzZV9hdHRhY2tfc3BlZWTABmZmYAAAAAABAQ==", + "minecraft:damage": "AwA=", + "minecraft:enchantable": "GwU=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6c3RvbmVfcGlja2F4ZQ==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGl0ZW0ubWluZWNyYWZ0LnN0b25lX3BpY2theGUA", + "minecraft:lore": "CAA=", + "minecraft:max_damage": "AoMB", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=", + "minecraft:repairable": "HQAebWluZWNyYWZ0OnN0b25lX3Rvb2xfbWF0ZXJpYWxz", + "minecraft:tool": "GgIAIm1pbmVjcmFmdDppbmNvcnJlY3RfZm9yX3N0b25lX3Rvb2wAAQAAGm1pbmVjcmFmdDptaW5lYWJsZS9waWNrYXhlAUCAAAABAT+AAAAB" + } + }, + { + "id": 857, + "key": "minecraft:stone_axe", + "components": { + "minecraft:attribute_modifiers": "DQICHG1pbmVjcmFmdDpiYXNlX2F0dGFja19kYW1hZ2VAIAAAAAAAAAABBBttaW5lY3JhZnQ6YmFzZV9hdHRhY2tfc3BlZWTACZmZoAAAAAABAQ==", + "minecraft:damage": "AwA=", + "minecraft:enchantable": "GwU=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxNtaW5lY3JhZnQ6c3RvbmVfYXhl", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGGl0ZW0ubWluZWNyYWZ0LnN0b25lX2F4ZQA=", + "minecraft:lore": "CAA=", + "minecraft:max_damage": "AoMB", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=", + "minecraft:repairable": "HQAebWluZWNyYWZ0OnN0b25lX3Rvb2xfbWF0ZXJpYWxz", + "minecraft:tool": "GgIAIm1pbmVjcmFmdDppbmNvcnJlY3RfZm9yX3N0b25lX3Rvb2wAAQAAFm1pbmVjcmFmdDptaW5lYWJsZS9heGUBQIAAAAEBP4AAAAE=" + } + }, + { + "id": 858, + "key": "minecraft:stone_hoe", + "components": { + "minecraft:attribute_modifiers": "DQICHG1pbmVjcmFmdDpiYXNlX2F0dGFja19kYW1hZ2UAAAAAAAAAAAABBBttaW5lY3JhZnQ6YmFzZV9hdHRhY2tfc3BlZWTAAAAAAAAAAAABAQ==", + "minecraft:damage": "AwA=", + "minecraft:enchantable": "GwU=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxNtaW5lY3JhZnQ6c3RvbmVfaG9l", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGGl0ZW0ubWluZWNyYWZ0LnN0b25lX2hvZQA=", + "minecraft:lore": "CAA=", + "minecraft:max_damage": "AoMB", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=", + "minecraft:repairable": "HQAebWluZWNyYWZ0OnN0b25lX3Rvb2xfbWF0ZXJpYWxz", + "minecraft:tool": "GgIAIm1pbmVjcmFmdDppbmNvcnJlY3RfZm9yX3N0b25lX3Rvb2wAAQAAFm1pbmVjcmFmdDptaW5lYWJsZS9ob2UBQIAAAAEBP4AAAAE=" + } + }, + { + "id": 859, + "key": "minecraft:golden_sword", + "components": { + "minecraft:attribute_modifiers": "DQICHG1pbmVjcmFmdDpiYXNlX2F0dGFja19kYW1hZ2VACAAAAAAAAAABBBttaW5lY3JhZnQ6YmFzZV9hdHRhY2tfc3BlZWTAAzMzQAAAAAABAQ==", + "minecraft:damage": "AwA=", + "minecraft:enchantable": "GxY=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxZtaW5lY3JhZnQ6Z29sZGVuX3N3b3Jk", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2l0ZW0ubWluZWNyYWZ0LmdvbGRlbl9zd29yZAA=", + "minecraft:lore": "CAA=", + "minecraft:max_damage": "AiA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=", + "minecraft:repairable": "HQAdbWluZWNyYWZ0OmdvbGRfdG9vbF9tYXRlcmlhbHM=", + "minecraft:tool": "GgICgQEBQXAAAAEBABltaW5lY3JhZnQ6c3dvcmRfZWZmaWNpZW50AT/AAAAAP4AAAAI=" + } + }, + { + "id": 860, + "key": "minecraft:golden_shovel", + "components": { + "minecraft:attribute_modifiers": "DQICHG1pbmVjcmFmdDpiYXNlX2F0dGFja19kYW1hZ2U/+AAAAAAAAAABBBttaW5lY3JhZnQ6YmFzZV9hdHRhY2tfc3BlZWTACAAAAAAAAAABAQ==", + "minecraft:damage": "AwA=", + "minecraft:enchantable": "GxY=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6Z29sZGVuX3Nob3ZlbA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGl0ZW0ubWluZWNyYWZ0LmdvbGRlbl9zaG92ZWwA", + "minecraft:lore": "CAA=", + "minecraft:max_damage": "AiA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=", + "minecraft:repairable": "HQAdbWluZWNyYWZ0OmdvbGRfdG9vbF9tYXRlcmlhbHM=", + "minecraft:tool": "GgIAIW1pbmVjcmFmdDppbmNvcnJlY3RfZm9yX2dvbGRfdG9vbAABAAAZbWluZWNyYWZ0Om1pbmVhYmxlL3Nob3ZlbAFBQAAAAQE/gAAAAQ==" + } + }, + { + "id": 861, + "key": "minecraft:golden_pickaxe", + "components": { + "minecraft:attribute_modifiers": "DQICHG1pbmVjcmFmdDpiYXNlX2F0dGFja19kYW1hZ2U/8AAAAAAAAAABBBttaW5lY3JhZnQ6YmFzZV9hdHRhY2tfc3BlZWTABmZmYAAAAAABAQ==", + "minecraft:damage": "AwA=", + "minecraft:enchantable": "GxY=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxhtaW5lY3JhZnQ6Z29sZGVuX3BpY2theGU=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWl0ZW0ubWluZWNyYWZ0LmdvbGRlbl9waWNrYXhlAA==", + "minecraft:lore": "CAA=", + "minecraft:max_damage": "AiA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=", + "minecraft:repairable": "HQAdbWluZWNyYWZ0OmdvbGRfdG9vbF9tYXRlcmlhbHM=", + "minecraft:tool": "GgIAIW1pbmVjcmFmdDppbmNvcnJlY3RfZm9yX2dvbGRfdG9vbAABAAAabWluZWNyYWZ0Om1pbmVhYmxlL3BpY2theGUBQUAAAAEBP4AAAAE=" + } + }, + { + "id": 862, + "key": "minecraft:golden_axe", + "components": { + "minecraft:attribute_modifiers": "DQICHG1pbmVjcmFmdDpiYXNlX2F0dGFja19kYW1hZ2VAGAAAAAAAAAABBBttaW5lY3JhZnQ6YmFzZV9hdHRhY2tfc3BlZWTACAAAAAAAAAABAQ==", + "minecraft:damage": "AwA=", + "minecraft:enchantable": "GxY=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxRtaW5lY3JhZnQ6Z29sZGVuX2F4ZQ==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGWl0ZW0ubWluZWNyYWZ0LmdvbGRlbl9heGUA", + "minecraft:lore": "CAA=", + "minecraft:max_damage": "AiA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=", + "minecraft:repairable": "HQAdbWluZWNyYWZ0OmdvbGRfdG9vbF9tYXRlcmlhbHM=", + "minecraft:tool": "GgIAIW1pbmVjcmFmdDppbmNvcnJlY3RfZm9yX2dvbGRfdG9vbAABAAAWbWluZWNyYWZ0Om1pbmVhYmxlL2F4ZQFBQAAAAQE/gAAAAQ==" + } + }, + { + "id": 863, + "key": "minecraft:golden_hoe", + "components": { + "minecraft:attribute_modifiers": "DQICHG1pbmVjcmFmdDpiYXNlX2F0dGFja19kYW1hZ2UAAAAAAAAAAAABBBttaW5lY3JhZnQ6YmFzZV9hdHRhY2tfc3BlZWTACAAAAAAAAAABAQ==", + "minecraft:damage": "AwA=", + "minecraft:enchantable": "GxY=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxRtaW5lY3JhZnQ6Z29sZGVuX2hvZQ==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGWl0ZW0ubWluZWNyYWZ0LmdvbGRlbl9ob2UA", + "minecraft:lore": "CAA=", + "minecraft:max_damage": "AiA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=", + "minecraft:repairable": "HQAdbWluZWNyYWZ0OmdvbGRfdG9vbF9tYXRlcmlhbHM=", + "minecraft:tool": "GgIAIW1pbmVjcmFmdDppbmNvcnJlY3RfZm9yX2dvbGRfdG9vbAABAAAWbWluZWNyYWZ0Om1pbmVhYmxlL2hvZQFBQAAAAQE/gAAAAQ==" + } + }, + { + "id": 864, + "key": "minecraft:iron_sword", + "components": { + "minecraft:attribute_modifiers": "DQICHG1pbmVjcmFmdDpiYXNlX2F0dGFja19kYW1hZ2VAFAAAAAAAAAABBBttaW5lY3JhZnQ6YmFzZV9hdHRhY2tfc3BlZWTAAzMzQAAAAAABAQ==", + "minecraft:damage": "AwA=", + "minecraft:enchantable": "Gw4=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxRtaW5lY3JhZnQ6aXJvbl9zd29yZA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGWl0ZW0ubWluZWNyYWZ0Lmlyb25fc3dvcmQA", + "minecraft:lore": "CAA=", + "minecraft:max_damage": "AvoB", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=", + "minecraft:repairable": "HQAdbWluZWNyYWZ0Omlyb25fdG9vbF9tYXRlcmlhbHM=", + "minecraft:tool": "GgICgQEBQXAAAAEBABltaW5lY3JhZnQ6c3dvcmRfZWZmaWNpZW50AT/AAAAAP4AAAAI=" + } + }, + { + "id": 865, + "key": "minecraft:iron_shovel", + "components": { + "minecraft:attribute_modifiers": "DQICHG1pbmVjcmFmdDpiYXNlX2F0dGFja19kYW1hZ2VADAAAAAAAAAABBBttaW5lY3JhZnQ6YmFzZV9hdHRhY2tfc3BlZWTACAAAAAAAAAABAQ==", + "minecraft:damage": "AwA=", + "minecraft:enchantable": "Gw4=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6aXJvbl9zaG92ZWw=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGml0ZW0ubWluZWNyYWZ0Lmlyb25fc2hvdmVsAA==", + "minecraft:lore": "CAA=", + "minecraft:max_damage": "AvoB", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=", + "minecraft:repairable": "HQAdbWluZWNyYWZ0Omlyb25fdG9vbF9tYXRlcmlhbHM=", + "minecraft:tool": "GgIAIW1pbmVjcmFmdDppbmNvcnJlY3RfZm9yX2lyb25fdG9vbAABAAAZbWluZWNyYWZ0Om1pbmVhYmxlL3Nob3ZlbAFAwAAAAQE/gAAAAQ==" + } + }, + { + "id": 866, + "key": "minecraft:iron_pickaxe", + "components": { + "minecraft:attribute_modifiers": "DQICHG1pbmVjcmFmdDpiYXNlX2F0dGFja19kYW1hZ2VACAAAAAAAAAABBBttaW5lY3JhZnQ6YmFzZV9hdHRhY2tfc3BlZWTABmZmYAAAAAABAQ==", + "minecraft:damage": "AwA=", + "minecraft:enchantable": "Gw4=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxZtaW5lY3JhZnQ6aXJvbl9waWNrYXhl", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2l0ZW0ubWluZWNyYWZ0Lmlyb25fcGlja2F4ZQA=", + "minecraft:lore": "CAA=", + "minecraft:max_damage": "AvoB", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=", + "minecraft:repairable": "HQAdbWluZWNyYWZ0Omlyb25fdG9vbF9tYXRlcmlhbHM=", + "minecraft:tool": "GgIAIW1pbmVjcmFmdDppbmNvcnJlY3RfZm9yX2lyb25fdG9vbAABAAAabWluZWNyYWZ0Om1pbmVhYmxlL3BpY2theGUBQMAAAAEBP4AAAAE=" + } + }, + { + "id": 867, + "key": "minecraft:iron_axe", + "components": { + "minecraft:attribute_modifiers": "DQICHG1pbmVjcmFmdDpiYXNlX2F0dGFja19kYW1hZ2VAIAAAAAAAAAABBBttaW5lY3JhZnQ6YmFzZV9hdHRhY2tfc3BlZWTACMzMwAAAAAABAQ==", + "minecraft:damage": "AwA=", + "minecraft:enchantable": "Gw4=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxJtaW5lY3JhZnQ6aXJvbl9heGU=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAF2l0ZW0ubWluZWNyYWZ0Lmlyb25fYXhlAA==", + "minecraft:lore": "CAA=", + "minecraft:max_damage": "AvoB", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=", + "minecraft:repairable": "HQAdbWluZWNyYWZ0Omlyb25fdG9vbF9tYXRlcmlhbHM=", + "minecraft:tool": "GgIAIW1pbmVjcmFmdDppbmNvcnJlY3RfZm9yX2lyb25fdG9vbAABAAAWbWluZWNyYWZ0Om1pbmVhYmxlL2F4ZQFAwAAAAQE/gAAAAQ==" + } + }, + { + "id": 868, + "key": "minecraft:iron_hoe", + "components": { + "minecraft:attribute_modifiers": "DQICHG1pbmVjcmFmdDpiYXNlX2F0dGFja19kYW1hZ2UAAAAAAAAAAAABBBttaW5lY3JhZnQ6YmFzZV9hdHRhY2tfc3BlZWS/8AAAAAAAAAABAQ==", + "minecraft:damage": "AwA=", + "minecraft:enchantable": "Gw4=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxJtaW5lY3JhZnQ6aXJvbl9ob2U=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAF2l0ZW0ubWluZWNyYWZ0Lmlyb25faG9lAA==", + "minecraft:lore": "CAA=", + "minecraft:max_damage": "AvoB", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=", + "minecraft:repairable": "HQAdbWluZWNyYWZ0Omlyb25fdG9vbF9tYXRlcmlhbHM=", + "minecraft:tool": "GgIAIW1pbmVjcmFmdDppbmNvcnJlY3RfZm9yX2lyb25fdG9vbAABAAAWbWluZWNyYWZ0Om1pbmVhYmxlL2hvZQFAwAAAAQE/gAAAAQ==" + } + }, + { + "id": 869, + "key": "minecraft:diamond_sword", + "components": { + "minecraft:attribute_modifiers": "DQICHG1pbmVjcmFmdDpiYXNlX2F0dGFja19kYW1hZ2VAGAAAAAAAAAABBBttaW5lY3JhZnQ6YmFzZV9hdHRhY2tfc3BlZWTAAzMzQAAAAAABAQ==", + "minecraft:damage": "AwA=", + "minecraft:enchantable": "Gwo=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6ZGlhbW9uZF9zd29yZA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGl0ZW0ubWluZWNyYWZ0LmRpYW1vbmRfc3dvcmQA", + "minecraft:lore": "CAA=", + "minecraft:max_damage": "ApkM", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=", + "minecraft:repairable": "HQAgbWluZWNyYWZ0OmRpYW1vbmRfdG9vbF9tYXRlcmlhbHM=", + "minecraft:tool": "GgICgQEBQXAAAAEBABltaW5lY3JhZnQ6c3dvcmRfZWZmaWNpZW50AT/AAAAAP4AAAAI=" + } + }, + { + "id": 870, + "key": "minecraft:diamond_shovel", + "components": { + "minecraft:attribute_modifiers": "DQICHG1pbmVjcmFmdDpiYXNlX2F0dGFja19kYW1hZ2VAEgAAAAAAAAABBBttaW5lY3JhZnQ6YmFzZV9hdHRhY2tfc3BlZWTACAAAAAAAAAABAQ==", + "minecraft:damage": "AwA=", + "minecraft:enchantable": "Gwo=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxhtaW5lY3JhZnQ6ZGlhbW9uZF9zaG92ZWw=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWl0ZW0ubWluZWNyYWZ0LmRpYW1vbmRfc2hvdmVsAA==", + "minecraft:lore": "CAA=", + "minecraft:max_damage": "ApkM", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=", + "minecraft:repairable": "HQAgbWluZWNyYWZ0OmRpYW1vbmRfdG9vbF9tYXRlcmlhbHM=", + "minecraft:tool": "GgIAJG1pbmVjcmFmdDppbmNvcnJlY3RfZm9yX2RpYW1vbmRfdG9vbAABAAAZbWluZWNyYWZ0Om1pbmVhYmxlL3Nob3ZlbAFBAAAAAQE/gAAAAQ==" + } + }, + { + "id": 871, + "key": "minecraft:diamond_pickaxe", + "components": { + "minecraft:attribute_modifiers": "DQICHG1pbmVjcmFmdDpiYXNlX2F0dGFja19kYW1hZ2VAEAAAAAAAAAABBBttaW5lY3JhZnQ6YmFzZV9hdHRhY2tfc3BlZWTABmZmYAAAAAABAQ==", + "minecraft:damage": "AwA=", + "minecraft:enchantable": "Gwo=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxltaW5lY3JhZnQ6ZGlhbW9uZF9waWNrYXhl", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHml0ZW0ubWluZWNyYWZ0LmRpYW1vbmRfcGlja2F4ZQA=", + "minecraft:lore": "CAA=", + "minecraft:max_damage": "ApkM", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=", + "minecraft:repairable": "HQAgbWluZWNyYWZ0OmRpYW1vbmRfdG9vbF9tYXRlcmlhbHM=", + "minecraft:tool": "GgIAJG1pbmVjcmFmdDppbmNvcnJlY3RfZm9yX2RpYW1vbmRfdG9vbAABAAAabWluZWNyYWZ0Om1pbmVhYmxlL3BpY2theGUBQQAAAAEBP4AAAAE=" + } + }, + { + "id": 872, + "key": "minecraft:diamond_axe", + "components": { + "minecraft:attribute_modifiers": "DQICHG1pbmVjcmFmdDpiYXNlX2F0dGFja19kYW1hZ2VAIAAAAAAAAAABBBttaW5lY3JhZnQ6YmFzZV9hdHRhY2tfc3BlZWTACAAAAAAAAAABAQ==", + "minecraft:damage": "AwA=", + "minecraft:enchantable": "Gwo=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6ZGlhbW9uZF9heGU=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGml0ZW0ubWluZWNyYWZ0LmRpYW1vbmRfYXhlAA==", + "minecraft:lore": "CAA=", + "minecraft:max_damage": "ApkM", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=", + "minecraft:repairable": "HQAgbWluZWNyYWZ0OmRpYW1vbmRfdG9vbF9tYXRlcmlhbHM=", + "minecraft:tool": "GgIAJG1pbmVjcmFmdDppbmNvcnJlY3RfZm9yX2RpYW1vbmRfdG9vbAABAAAWbWluZWNyYWZ0Om1pbmVhYmxlL2F4ZQFBAAAAAQE/gAAAAQ==" + } + }, + { + "id": 873, + "key": "minecraft:diamond_hoe", + "components": { + "minecraft:attribute_modifiers": "DQICHG1pbmVjcmFmdDpiYXNlX2F0dGFja19kYW1hZ2UAAAAAAAAAAAABBBttaW5lY3JhZnQ6YmFzZV9hdHRhY2tfc3BlZWQAAAAAAAAAAAABAQ==", + "minecraft:damage": "AwA=", + "minecraft:enchantable": "Gwo=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6ZGlhbW9uZF9ob2U=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGml0ZW0ubWluZWNyYWZ0LmRpYW1vbmRfaG9lAA==", + "minecraft:lore": "CAA=", + "minecraft:max_damage": "ApkM", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=", + "minecraft:repairable": "HQAgbWluZWNyYWZ0OmRpYW1vbmRfdG9vbF9tYXRlcmlhbHM=", + "minecraft:tool": "GgIAJG1pbmVjcmFmdDppbmNvcnJlY3RfZm9yX2RpYW1vbmRfdG9vbAABAAAWbWluZWNyYWZ0Om1pbmVhYmxlL2hvZQFBAAAAAQE/gAAAAQ==" + } + }, + { + "id": 874, + "key": "minecraft:netherite_sword", + "components": { + "minecraft:attribute_modifiers": "DQICHG1pbmVjcmFmdDpiYXNlX2F0dGFja19kYW1hZ2VAHAAAAAAAAAABBBttaW5lY3JhZnQ6YmFzZV9hdHRhY2tfc3BlZWTAAzMzQAAAAAABAQ==", + "minecraft:damage": "AwA=", + "minecraft:damage_resistant": "GRFtaW5lY3JhZnQ6aXNfZmlyZQ==", + "minecraft:enchantable": "Gw8=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxltaW5lY3JhZnQ6bmV0aGVyaXRlX3N3b3Jk", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHml0ZW0ubWluZWNyYWZ0Lm5ldGhlcml0ZV9zd29yZAA=", + "minecraft:lore": "CAA=", + "minecraft:max_damage": "Au8P", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=", + "minecraft:repairable": "HQAibWluZWNyYWZ0Om5ldGhlcml0ZV90b29sX21hdGVyaWFscw==", + "minecraft:tool": "GgICgQEBQXAAAAEBABltaW5lY3JhZnQ6c3dvcmRfZWZmaWNpZW50AT/AAAAAP4AAAAI=" + } + }, + { + "id": 875, + "key": "minecraft:netherite_shovel", + "components": { + "minecraft:attribute_modifiers": "DQICHG1pbmVjcmFmdDpiYXNlX2F0dGFja19kYW1hZ2VAFgAAAAAAAAABBBttaW5lY3JhZnQ6YmFzZV9hdHRhY2tfc3BlZWTACAAAAAAAAAABAQ==", + "minecraft:damage": "AwA=", + "minecraft:damage_resistant": "GRFtaW5lY3JhZnQ6aXNfZmlyZQ==", + "minecraft:enchantable": "Gw8=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxptaW5lY3JhZnQ6bmV0aGVyaXRlX3Nob3ZlbA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2l0ZW0ubWluZWNyYWZ0Lm5ldGhlcml0ZV9zaG92ZWwA", + "minecraft:lore": "CAA=", + "minecraft:max_damage": "Au8P", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=", + "minecraft:repairable": "HQAibWluZWNyYWZ0Om5ldGhlcml0ZV90b29sX21hdGVyaWFscw==", + "minecraft:tool": "GgIAJm1pbmVjcmFmdDppbmNvcnJlY3RfZm9yX25ldGhlcml0ZV90b29sAAEAABltaW5lY3JhZnQ6bWluZWFibGUvc2hvdmVsAUEQAAABAT+AAAAB" + } + }, + { + "id": 876, + "key": "minecraft:netherite_pickaxe", + "components": { + "minecraft:attribute_modifiers": "DQICHG1pbmVjcmFmdDpiYXNlX2F0dGFja19kYW1hZ2VAFAAAAAAAAAABBBttaW5lY3JhZnQ6YmFzZV9hdHRhY2tfc3BlZWTABmZmYAAAAAABAQ==", + "minecraft:damage": "AwA=", + "minecraft:damage_resistant": "GRFtaW5lY3JhZnQ6aXNfZmlyZQ==", + "minecraft:enchantable": "Gw8=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxttaW5lY3JhZnQ6bmV0aGVyaXRlX3BpY2theGU=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGl0ZW0ubWluZWNyYWZ0Lm5ldGhlcml0ZV9waWNrYXhlAA==", + "minecraft:lore": "CAA=", + "minecraft:max_damage": "Au8P", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=", + "minecraft:repairable": "HQAibWluZWNyYWZ0Om5ldGhlcml0ZV90b29sX21hdGVyaWFscw==", + "minecraft:tool": "GgIAJm1pbmVjcmFmdDppbmNvcnJlY3RfZm9yX25ldGhlcml0ZV90b29sAAEAABptaW5lY3JhZnQ6bWluZWFibGUvcGlja2F4ZQFBEAAAAQE/gAAAAQ==" + } + }, + { + "id": 877, + "key": "minecraft:netherite_axe", + "components": { + "minecraft:attribute_modifiers": "DQICHG1pbmVjcmFmdDpiYXNlX2F0dGFja19kYW1hZ2VAIgAAAAAAAAABBBttaW5lY3JhZnQ6YmFzZV9hdHRhY2tfc3BlZWTACAAAAAAAAAABAQ==", + "minecraft:damage": "AwA=", + "minecraft:damage_resistant": "GRFtaW5lY3JhZnQ6aXNfZmlyZQ==", + "minecraft:enchantable": "Gw8=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6bmV0aGVyaXRlX2F4ZQ==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGl0ZW0ubWluZWNyYWZ0Lm5ldGhlcml0ZV9heGUA", + "minecraft:lore": "CAA=", + "minecraft:max_damage": "Au8P", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=", + "minecraft:repairable": "HQAibWluZWNyYWZ0Om5ldGhlcml0ZV90b29sX21hdGVyaWFscw==", + "minecraft:tool": "GgIAJm1pbmVjcmFmdDppbmNvcnJlY3RfZm9yX25ldGhlcml0ZV90b29sAAEAABZtaW5lY3JhZnQ6bWluZWFibGUvYXhlAUEQAAABAT+AAAAB" + } + }, + { + "id": 878, + "key": "minecraft:netherite_hoe", + "components": { + "minecraft:attribute_modifiers": "DQICHG1pbmVjcmFmdDpiYXNlX2F0dGFja19kYW1hZ2UAAAAAAAAAAAABBBttaW5lY3JhZnQ6YmFzZV9hdHRhY2tfc3BlZWQAAAAAAAAAAAABAQ==", + "minecraft:damage": "AwA=", + "minecraft:damage_resistant": "GRFtaW5lY3JhZnQ6aXNfZmlyZQ==", + "minecraft:enchantable": "Gw8=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6bmV0aGVyaXRlX2hvZQ==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGl0ZW0ubWluZWNyYWZ0Lm5ldGhlcml0ZV9ob2UA", + "minecraft:lore": "CAA=", + "minecraft:max_damage": "Au8P", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=", + "minecraft:repairable": "HQAibWluZWNyYWZ0Om5ldGhlcml0ZV90b29sX21hdGVyaWFscw==", + "minecraft:tool": "GgIAJm1pbmVjcmFmdDppbmNvcnJlY3RfZm9yX25ldGhlcml0ZV90b29sAAEAABZtaW5lY3JhZnQ6bWluZWFibGUvaG9lAUEQAAABAT+AAAAB" + } + }, + { + "id": 879, + "key": "minecraft:stick", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bw9taW5lY3JhZnQ6c3RpY2s=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFGl0ZW0ubWluZWNyYWZ0LnN0aWNrAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 880, + "key": "minecraft:mushroom_stew", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:consumable": "Fj/MzM0B2gQBAA==", + "minecraft:enchantments": "CgAB", + "minecraft:food": "FQZA5mZnAA==", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6bXVzaHJvb21fc3Rldw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGl0ZW0ubWluZWNyYWZ0Lm11c2hyb29tX3N0ZXcA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=", + "minecraft:use_remainder": "FwG+BgAA" + } + }, + { + "id": 881, + "key": "minecraft:string", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxBtaW5lY3JhZnQ6c3RyaW5n", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFWl0ZW0ubWluZWNyYWZ0LnN0cmluZwA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 882, + "key": "minecraft:feather", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxFtaW5lY3JhZnQ6ZmVhdGhlcg==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFml0ZW0ubWluZWNyYWZ0LmZlYXRoZXIA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 883, + "key": "minecraft:gunpowder", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxNtaW5lY3JhZnQ6Z3VucG93ZGVy", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGGl0ZW0ubWluZWNyYWZ0Lmd1bnBvd2RlcgA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 884, + "key": "minecraft:wheat_seeds", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6d2hlYXRfc2VlZHM=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGml0ZW0ubWluZWNyYWZ0LndoZWF0X3NlZWRzAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 885, + "key": "minecraft:wheat", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bw9taW5lY3JhZnQ6d2hlYXQ=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFGl0ZW0ubWluZWNyYWZ0LndoZWF0AA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 886, + "key": "minecraft:bread", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:consumable": "Fj/MzM0B2gQBAA==", + "minecraft:enchantments": "CgAB", + "minecraft:food": "FQVAwAAAAA==", + "minecraft:item_model": "Bw9taW5lY3JhZnQ6YnJlYWQ=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFGl0ZW0ubWluZWNyYWZ0LmJyZWFkAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 887, + "key": "minecraft:leather_helmet", + "components": { + "minecraft:attribute_modifiers": "DQIAFm1pbmVjcmFmdDphcm1vci5oZWxtZXQ/8AAAAAAAAAAHARZtaW5lY3JhZnQ6YXJtb3IuaGVsbWV0AAAAAAAAAAAABwE=", + "minecraft:damage": "AwA=", + "minecraft:enchantable": "Gw8=", + "minecraft:enchantments": "CgAB", + "minecraft:equippable": "HARKARFtaW5lY3JhZnQ6bGVhdGhlcgAAAQEB", + "minecraft:item_model": "BxhtaW5lY3JhZnQ6bGVhdGhlcl9oZWxtZXQ=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWl0ZW0ubWluZWNyYWZ0LmxlYXRoZXJfaGVsbWV0AA==", + "minecraft:lore": "CAA=", + "minecraft:max_damage": "Ajc=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=", + "minecraft:repairable": "HQAfbWluZWNyYWZ0OnJlcGFpcnNfbGVhdGhlcl9hcm1vcg==" + } + }, + { + "id": 888, + "key": "minecraft:leather_chestplate", + "components": { + "minecraft:attribute_modifiers": "DQIAGm1pbmVjcmFmdDphcm1vci5jaGVzdHBsYXRlQAgAAAAAAAAABgEabWluZWNyYWZ0OmFybW9yLmNoZXN0cGxhdGUAAAAAAAAAAAAGAQ==", + "minecraft:damage": "AwA=", + "minecraft:enchantable": "Gw8=", + "minecraft:enchantments": "CgAB", + "minecraft:equippable": "HANKARFtaW5lY3JhZnQ6bGVhdGhlcgAAAQEB", + "minecraft:item_model": "BxxtaW5lY3JhZnQ6bGVhdGhlcl9jaGVzdHBsYXRl", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWl0ZW0ubWluZWNyYWZ0LmxlYXRoZXJfY2hlc3RwbGF0ZQA=", + "minecraft:lore": "CAA=", + "minecraft:max_damage": "AlA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=", + "minecraft:repairable": "HQAfbWluZWNyYWZ0OnJlcGFpcnNfbGVhdGhlcl9hcm1vcg==" + } + }, + { + "id": 889, + "key": "minecraft:leather_leggings", + "components": { + "minecraft:attribute_modifiers": "DQIAGG1pbmVjcmFmdDphcm1vci5sZWdnaW5nc0AAAAAAAAAAAAUBGG1pbmVjcmFmdDphcm1vci5sZWdnaW5ncwAAAAAAAAAAAAUB", + "minecraft:damage": "AwA=", + "minecraft:enchantable": "Gw8=", + "minecraft:enchantments": "CgAB", + "minecraft:equippable": "HAJKARFtaW5lY3JhZnQ6bGVhdGhlcgAAAQEB", + "minecraft:item_model": "BxptaW5lY3JhZnQ6bGVhdGhlcl9sZWdnaW5ncw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2l0ZW0ubWluZWNyYWZ0LmxlYXRoZXJfbGVnZ2luZ3MA", + "minecraft:lore": "CAA=", + "minecraft:max_damage": "Aks=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=", + "minecraft:repairable": "HQAfbWluZWNyYWZ0OnJlcGFpcnNfbGVhdGhlcl9hcm1vcg==" + } + }, + { + "id": 890, + "key": "minecraft:leather_boots", + "components": { + "minecraft:attribute_modifiers": "DQIAFW1pbmVjcmFmdDphcm1vci5ib290cz/wAAAAAAAAAAQBFW1pbmVjcmFmdDphcm1vci5ib290cwAAAAAAAAAAAAQB", + "minecraft:damage": "AwA=", + "minecraft:enchantable": "Gw8=", + "minecraft:enchantments": "CgAB", + "minecraft:equippable": "HAFKARFtaW5lY3JhZnQ6bGVhdGhlcgAAAQEB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6bGVhdGhlcl9ib290cw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGl0ZW0ubWluZWNyYWZ0LmxlYXRoZXJfYm9vdHMA", + "minecraft:lore": "CAA=", + "minecraft:max_damage": "AkE=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=", + "minecraft:repairable": "HQAfbWluZWNyYWZ0OnJlcGFpcnNfbGVhdGhlcl9hcm1vcg==" + } + }, + { + "id": 891, + "key": "minecraft:chainmail_helmet", + "components": { + "minecraft:attribute_modifiers": "DQIAFm1pbmVjcmFmdDphcm1vci5oZWxtZXRAAAAAAAAAAAAHARZtaW5lY3JhZnQ6YXJtb3IuaGVsbWV0AAAAAAAAAAAABwE=", + "minecraft:damage": "AwA=", + "minecraft:enchantable": "Gww=", + "minecraft:enchantments": "CgAB", + "minecraft:equippable": "HAREARNtaW5lY3JhZnQ6Y2hhaW5tYWlsAAABAQE=", + "minecraft:item_model": "BxptaW5lY3JhZnQ6Y2hhaW5tYWlsX2hlbG1ldA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2l0ZW0ubWluZWNyYWZ0LmNoYWlubWFpbF9oZWxtZXQA", + "minecraft:lore": "CAA=", + "minecraft:max_damage": "AqUB", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQE=", + "minecraft:repair_cost": "EQA=", + "minecraft:repairable": "HQAdbWluZWNyYWZ0OnJlcGFpcnNfY2hhaW5fYXJtb3I=" + } + }, + { + "id": 892, + "key": "minecraft:chainmail_chestplate", + "components": { + "minecraft:attribute_modifiers": "DQIAGm1pbmVjcmFmdDphcm1vci5jaGVzdHBsYXRlQBQAAAAAAAAABgEabWluZWNyYWZ0OmFybW9yLmNoZXN0cGxhdGUAAAAAAAAAAAAGAQ==", + "minecraft:damage": "AwA=", + "minecraft:enchantable": "Gww=", + "minecraft:enchantments": "CgAB", + "minecraft:equippable": "HANEARNtaW5lY3JhZnQ6Y2hhaW5tYWlsAAABAQE=", + "minecraft:item_model": "Bx5taW5lY3JhZnQ6Y2hhaW5tYWlsX2NoZXN0cGxhdGU=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2l0ZW0ubWluZWNyYWZ0LmNoYWlubWFpbF9jaGVzdHBsYXRlAA==", + "minecraft:lore": "CAA=", + "minecraft:max_damage": "AvAB", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQE=", + "minecraft:repair_cost": "EQA=", + "minecraft:repairable": "HQAdbWluZWNyYWZ0OnJlcGFpcnNfY2hhaW5fYXJtb3I=" + } + }, + { + "id": 893, + "key": "minecraft:chainmail_leggings", + "components": { + "minecraft:attribute_modifiers": "DQIAGG1pbmVjcmFmdDphcm1vci5sZWdnaW5nc0AQAAAAAAAAAAUBGG1pbmVjcmFmdDphcm1vci5sZWdnaW5ncwAAAAAAAAAAAAUB", + "minecraft:damage": "AwA=", + "minecraft:enchantable": "Gww=", + "minecraft:enchantments": "CgAB", + "minecraft:equippable": "HAJEARNtaW5lY3JhZnQ6Y2hhaW5tYWlsAAABAQE=", + "minecraft:item_model": "BxxtaW5lY3JhZnQ6Y2hhaW5tYWlsX2xlZ2dpbmdz", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWl0ZW0ubWluZWNyYWZ0LmNoYWlubWFpbF9sZWdnaW5ncwA=", + "minecraft:lore": "CAA=", + "minecraft:max_damage": "AuEB", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQE=", + "minecraft:repair_cost": "EQA=", + "minecraft:repairable": "HQAdbWluZWNyYWZ0OnJlcGFpcnNfY2hhaW5fYXJtb3I=" + } + }, + { + "id": 894, + "key": "minecraft:chainmail_boots", + "components": { + "minecraft:attribute_modifiers": "DQIAFW1pbmVjcmFmdDphcm1vci5ib290cz/wAAAAAAAAAAQBFW1pbmVjcmFmdDphcm1vci5ib290cwAAAAAAAAAAAAQB", + "minecraft:damage": "AwA=", + "minecraft:enchantable": "Gww=", + "minecraft:enchantments": "CgAB", + "minecraft:equippable": "HAFEARNtaW5lY3JhZnQ6Y2hhaW5tYWlsAAABAQE=", + "minecraft:item_model": "BxltaW5lY3JhZnQ6Y2hhaW5tYWlsX2Jvb3Rz", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHml0ZW0ubWluZWNyYWZ0LmNoYWlubWFpbF9ib290cwA=", + "minecraft:lore": "CAA=", + "minecraft:max_damage": "AsMB", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQE=", + "minecraft:repair_cost": "EQA=", + "minecraft:repairable": "HQAdbWluZWNyYWZ0OnJlcGFpcnNfY2hhaW5fYXJtb3I=" + } + }, + { + "id": 895, + "key": "minecraft:iron_helmet", + "components": { + "minecraft:attribute_modifiers": "DQIAFm1pbmVjcmFmdDphcm1vci5oZWxtZXRAAAAAAAAAAAAHARZtaW5lY3JhZnQ6YXJtb3IuaGVsbWV0AAAAAAAAAAAABwE=", + "minecraft:damage": "AwA=", + "minecraft:enchantable": "Gwk=", + "minecraft:enchantments": "CgAB", + "minecraft:equippable": "HARJAQ5taW5lY3JhZnQ6aXJvbgAAAQEB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6aXJvbl9oZWxtZXQ=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGml0ZW0ubWluZWNyYWZ0Lmlyb25faGVsbWV0AA==", + "minecraft:lore": "CAA=", + "minecraft:max_damage": "AqUB", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=", + "minecraft:repairable": "HQAcbWluZWNyYWZ0OnJlcGFpcnNfaXJvbl9hcm1vcg==" + } + }, + { + "id": 896, + "key": "minecraft:iron_chestplate", + "components": { + "minecraft:attribute_modifiers": "DQIAGm1pbmVjcmFmdDphcm1vci5jaGVzdHBsYXRlQBgAAAAAAAAABgEabWluZWNyYWZ0OmFybW9yLmNoZXN0cGxhdGUAAAAAAAAAAAAGAQ==", + "minecraft:damage": "AwA=", + "minecraft:enchantable": "Gwk=", + "minecraft:enchantments": "CgAB", + "minecraft:equippable": "HANJAQ5taW5lY3JhZnQ6aXJvbgAAAQEB", + "minecraft:item_model": "BxltaW5lY3JhZnQ6aXJvbl9jaGVzdHBsYXRl", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHml0ZW0ubWluZWNyYWZ0Lmlyb25fY2hlc3RwbGF0ZQA=", + "minecraft:lore": "CAA=", + "minecraft:max_damage": "AvAB", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=", + "minecraft:repairable": "HQAcbWluZWNyYWZ0OnJlcGFpcnNfaXJvbl9hcm1vcg==" + } + }, + { + "id": 897, + "key": "minecraft:iron_leggings", + "components": { + "minecraft:attribute_modifiers": "DQIAGG1pbmVjcmFmdDphcm1vci5sZWdnaW5nc0AUAAAAAAAAAAUBGG1pbmVjcmFmdDphcm1vci5sZWdnaW5ncwAAAAAAAAAAAAUB", + "minecraft:damage": "AwA=", + "minecraft:enchantable": "Gwk=", + "minecraft:enchantments": "CgAB", + "minecraft:equippable": "HAJJAQ5taW5lY3JhZnQ6aXJvbgAAAQEB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6aXJvbl9sZWdnaW5ncw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGl0ZW0ubWluZWNyYWZ0Lmlyb25fbGVnZ2luZ3MA", + "minecraft:lore": "CAA=", + "minecraft:max_damage": "AuEB", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=", + "minecraft:repairable": "HQAcbWluZWNyYWZ0OnJlcGFpcnNfaXJvbl9hcm1vcg==" + } + }, + { + "id": 898, + "key": "minecraft:iron_boots", + "components": { + "minecraft:attribute_modifiers": "DQIAFW1pbmVjcmFmdDphcm1vci5ib290c0AAAAAAAAAAAAQBFW1pbmVjcmFmdDphcm1vci5ib290cwAAAAAAAAAAAAQB", + "minecraft:damage": "AwA=", + "minecraft:enchantable": "Gwk=", + "minecraft:enchantments": "CgAB", + "minecraft:equippable": "HAFJAQ5taW5lY3JhZnQ6aXJvbgAAAQEB", + "minecraft:item_model": "BxRtaW5lY3JhZnQ6aXJvbl9ib290cw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGWl0ZW0ubWluZWNyYWZ0Lmlyb25fYm9vdHMA", + "minecraft:lore": "CAA=", + "minecraft:max_damage": "AsMB", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=", + "minecraft:repairable": "HQAcbWluZWNyYWZ0OnJlcGFpcnNfaXJvbl9hcm1vcg==" + } + }, + { + "id": 899, + "key": "minecraft:diamond_helmet", + "components": { + "minecraft:attribute_modifiers": "DQIAFm1pbmVjcmFmdDphcm1vci5oZWxtZXRACAAAAAAAAAAHARZtaW5lY3JhZnQ6YXJtb3IuaGVsbWV0QAAAAAAAAAAABwE=", + "minecraft:damage": "AwA=", + "minecraft:enchantable": "Gwo=", + "minecraft:enchantments": "CgAB", + "minecraft:equippable": "HARFARFtaW5lY3JhZnQ6ZGlhbW9uZAAAAQEB", + "minecraft:item_model": "BxhtaW5lY3JhZnQ6ZGlhbW9uZF9oZWxtZXQ=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWl0ZW0ubWluZWNyYWZ0LmRpYW1vbmRfaGVsbWV0AA==", + "minecraft:lore": "CAA=", + "minecraft:max_damage": "AusC", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=", + "minecraft:repairable": "HQAfbWluZWNyYWZ0OnJlcGFpcnNfZGlhbW9uZF9hcm1vcg==" + } + }, + { + "id": 900, + "key": "minecraft:diamond_chestplate", + "components": { + "minecraft:attribute_modifiers": "DQIAGm1pbmVjcmFmdDphcm1vci5jaGVzdHBsYXRlQCAAAAAAAAAABgEabWluZWNyYWZ0OmFybW9yLmNoZXN0cGxhdGVAAAAAAAAAAAAGAQ==", + "minecraft:damage": "AwA=", + "minecraft:enchantable": "Gwo=", + "minecraft:enchantments": "CgAB", + "minecraft:equippable": "HANFARFtaW5lY3JhZnQ6ZGlhbW9uZAAAAQEB", + "minecraft:item_model": "BxxtaW5lY3JhZnQ6ZGlhbW9uZF9jaGVzdHBsYXRl", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWl0ZW0ubWluZWNyYWZ0LmRpYW1vbmRfY2hlc3RwbGF0ZQA=", + "minecraft:lore": "CAA=", + "minecraft:max_damage": "ApAE", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=", + "minecraft:repairable": "HQAfbWluZWNyYWZ0OnJlcGFpcnNfZGlhbW9uZF9hcm1vcg==" + } + }, + { + "id": 901, + "key": "minecraft:diamond_leggings", + "components": { + "minecraft:attribute_modifiers": "DQIAGG1pbmVjcmFmdDphcm1vci5sZWdnaW5nc0AYAAAAAAAAAAUBGG1pbmVjcmFmdDphcm1vci5sZWdnaW5nc0AAAAAAAAAAAAUB", + "minecraft:damage": "AwA=", + "minecraft:enchantable": "Gwo=", + "minecraft:enchantments": "CgAB", + "minecraft:equippable": "HAJFARFtaW5lY3JhZnQ6ZGlhbW9uZAAAAQEB", + "minecraft:item_model": "BxptaW5lY3JhZnQ6ZGlhbW9uZF9sZWdnaW5ncw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2l0ZW0ubWluZWNyYWZ0LmRpYW1vbmRfbGVnZ2luZ3MA", + "minecraft:lore": "CAA=", + "minecraft:max_damage": "Au8D", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=", + "minecraft:repairable": "HQAfbWluZWNyYWZ0OnJlcGFpcnNfZGlhbW9uZF9hcm1vcg==" + } + }, + { + "id": 902, + "key": "minecraft:diamond_boots", + "components": { + "minecraft:attribute_modifiers": "DQIAFW1pbmVjcmFmdDphcm1vci5ib290c0AIAAAAAAAAAAQBFW1pbmVjcmFmdDphcm1vci5ib290c0AAAAAAAAAAAAQB", + "minecraft:damage": "AwA=", + "minecraft:enchantable": "Gwo=", + "minecraft:enchantments": "CgAB", + "minecraft:equippable": "HAFFARFtaW5lY3JhZnQ6ZGlhbW9uZAAAAQEB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6ZGlhbW9uZF9ib290cw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGl0ZW0ubWluZWNyYWZ0LmRpYW1vbmRfYm9vdHMA", + "minecraft:lore": "CAA=", + "minecraft:max_damage": "Aq0D", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=", + "minecraft:repairable": "HQAfbWluZWNyYWZ0OnJlcGFpcnNfZGlhbW9uZF9hcm1vcg==" + } + }, + { + "id": 903, + "key": "minecraft:golden_helmet", + "components": { + "minecraft:attribute_modifiers": "DQIAFm1pbmVjcmFmdDphcm1vci5oZWxtZXRAAAAAAAAAAAAHARZtaW5lY3JhZnQ6YXJtb3IuaGVsbWV0AAAAAAAAAAAABwE=", + "minecraft:damage": "AwA=", + "minecraft:enchantable": "Gxk=", + "minecraft:enchantments": "CgAB", + "minecraft:equippable": "HARIAQ5taW5lY3JhZnQ6Z29sZAAAAQEB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6Z29sZGVuX2hlbG1ldA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGl0ZW0ubWluZWNyYWZ0LmdvbGRlbl9oZWxtZXQA", + "minecraft:lore": "CAA=", + "minecraft:max_damage": "Ak0=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=", + "minecraft:repairable": "HQAcbWluZWNyYWZ0OnJlcGFpcnNfZ29sZF9hcm1vcg==" + } + }, + { + "id": 904, + "key": "minecraft:golden_chestplate", + "components": { + "minecraft:attribute_modifiers": "DQIAGm1pbmVjcmFmdDphcm1vci5jaGVzdHBsYXRlQBQAAAAAAAAABgEabWluZWNyYWZ0OmFybW9yLmNoZXN0cGxhdGUAAAAAAAAAAAAGAQ==", + "minecraft:damage": "AwA=", + "minecraft:enchantable": "Gxk=", + "minecraft:enchantments": "CgAB", + "minecraft:equippable": "HANIAQ5taW5lY3JhZnQ6Z29sZAAAAQEB", + "minecraft:item_model": "BxttaW5lY3JhZnQ6Z29sZGVuX2NoZXN0cGxhdGU=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGl0ZW0ubWluZWNyYWZ0LmdvbGRlbl9jaGVzdHBsYXRlAA==", + "minecraft:lore": "CAA=", + "minecraft:max_damage": "AnA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=", + "minecraft:repairable": "HQAcbWluZWNyYWZ0OnJlcGFpcnNfZ29sZF9hcm1vcg==" + } + }, + { + "id": 905, + "key": "minecraft:golden_leggings", + "components": { + "minecraft:attribute_modifiers": "DQIAGG1pbmVjcmFmdDphcm1vci5sZWdnaW5nc0AIAAAAAAAAAAUBGG1pbmVjcmFmdDphcm1vci5sZWdnaW5ncwAAAAAAAAAAAAUB", + "minecraft:damage": "AwA=", + "minecraft:enchantable": "Gxk=", + "minecraft:enchantments": "CgAB", + "minecraft:equippable": "HAJIAQ5taW5lY3JhZnQ6Z29sZAAAAQEB", + "minecraft:item_model": "BxltaW5lY3JhZnQ6Z29sZGVuX2xlZ2dpbmdz", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHml0ZW0ubWluZWNyYWZ0LmdvbGRlbl9sZWdnaW5ncwA=", + "minecraft:lore": "CAA=", + "minecraft:max_damage": "Amk=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=", + "minecraft:repairable": "HQAcbWluZWNyYWZ0OnJlcGFpcnNfZ29sZF9hcm1vcg==" + } + }, + { + "id": 906, + "key": "minecraft:golden_boots", + "components": { + "minecraft:attribute_modifiers": "DQIAFW1pbmVjcmFmdDphcm1vci5ib290cz/wAAAAAAAAAAQBFW1pbmVjcmFmdDphcm1vci5ib290cwAAAAAAAAAAAAQB", + "minecraft:damage": "AwA=", + "minecraft:enchantable": "Gxk=", + "minecraft:enchantments": "CgAB", + "minecraft:equippable": "HAFIAQ5taW5lY3JhZnQ6Z29sZAAAAQEB", + "minecraft:item_model": "BxZtaW5lY3JhZnQ6Z29sZGVuX2Jvb3Rz", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2l0ZW0ubWluZWNyYWZ0LmdvbGRlbl9ib290cwA=", + "minecraft:lore": "CAA=", + "minecraft:max_damage": "Als=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=", + "minecraft:repairable": "HQAcbWluZWNyYWZ0OnJlcGFpcnNfZ29sZF9hcm1vcg==" + } + }, + { + "id": 907, + "key": "minecraft:netherite_helmet", + "components": { + "minecraft:attribute_modifiers": "DQMAFm1pbmVjcmFmdDphcm1vci5oZWxtZXRACAAAAAAAAAAHARZtaW5lY3JhZnQ6YXJtb3IuaGVsbWV0QAgAAAAAAAAABw8WbWluZWNyYWZ0OmFybW9yLmhlbG1ldD+5mZmgAAAAAAcB", + "minecraft:damage": "AwA=", + "minecraft:damage_resistant": "GRFtaW5lY3JhZnQ6aXNfZmlyZQ==", + "minecraft:enchantable": "Gw8=", + "minecraft:enchantments": "CgAB", + "minecraft:equippable": "HARLARNtaW5lY3JhZnQ6bmV0aGVyaXRlAAABAQE=", + "minecraft:item_model": "BxptaW5lY3JhZnQ6bmV0aGVyaXRlX2hlbG1ldA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2l0ZW0ubWluZWNyYWZ0Lm5ldGhlcml0ZV9oZWxtZXQA", + "minecraft:lore": "CAA=", + "minecraft:max_damage": "ApcD", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=", + "minecraft:repairable": "HQAhbWluZWNyYWZ0OnJlcGFpcnNfbmV0aGVyaXRlX2FybW9y" + } + }, + { + "id": 908, + "key": "minecraft:netherite_chestplate", + "components": { + "minecraft:attribute_modifiers": "DQMAGm1pbmVjcmFmdDphcm1vci5jaGVzdHBsYXRlQCAAAAAAAAAABgEabWluZWNyYWZ0OmFybW9yLmNoZXN0cGxhdGVACAAAAAAAAAAGDxptaW5lY3JhZnQ6YXJtb3IuY2hlc3RwbGF0ZT+5mZmgAAAAAAYB", + "minecraft:damage": "AwA=", + "minecraft:damage_resistant": "GRFtaW5lY3JhZnQ6aXNfZmlyZQ==", + "minecraft:enchantable": "Gw8=", + "minecraft:enchantments": "CgAB", + "minecraft:equippable": "HANLARNtaW5lY3JhZnQ6bmV0aGVyaXRlAAABAQE=", + "minecraft:item_model": "Bx5taW5lY3JhZnQ6bmV0aGVyaXRlX2NoZXN0cGxhdGU=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2l0ZW0ubWluZWNyYWZ0Lm5ldGhlcml0ZV9jaGVzdHBsYXRlAA==", + "minecraft:lore": "CAA=", + "minecraft:max_damage": "AtAE", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=", + "minecraft:repairable": "HQAhbWluZWNyYWZ0OnJlcGFpcnNfbmV0aGVyaXRlX2FybW9y" + } + }, + { + "id": 909, + "key": "minecraft:netherite_leggings", + "components": { + "minecraft:attribute_modifiers": "DQMAGG1pbmVjcmFmdDphcm1vci5sZWdnaW5nc0AYAAAAAAAAAAUBGG1pbmVjcmFmdDphcm1vci5sZWdnaW5nc0AIAAAAAAAAAAUPGG1pbmVjcmFmdDphcm1vci5sZWdnaW5ncz+5mZmgAAAAAAUB", + "minecraft:damage": "AwA=", + "minecraft:damage_resistant": "GRFtaW5lY3JhZnQ6aXNfZmlyZQ==", + "minecraft:enchantable": "Gw8=", + "minecraft:enchantments": "CgAB", + "minecraft:equippable": "HAJLARNtaW5lY3JhZnQ6bmV0aGVyaXRlAAABAQE=", + "minecraft:item_model": "BxxtaW5lY3JhZnQ6bmV0aGVyaXRlX2xlZ2dpbmdz", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWl0ZW0ubWluZWNyYWZ0Lm5ldGhlcml0ZV9sZWdnaW5ncwA=", + "minecraft:lore": "CAA=", + "minecraft:max_damage": "AqsE", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=", + "minecraft:repairable": "HQAhbWluZWNyYWZ0OnJlcGFpcnNfbmV0aGVyaXRlX2FybW9y" + } + }, + { + "id": 910, + "key": "minecraft:netherite_boots", + "components": { + "minecraft:attribute_modifiers": "DQMAFW1pbmVjcmFmdDphcm1vci5ib290c0AIAAAAAAAAAAQBFW1pbmVjcmFmdDphcm1vci5ib290c0AIAAAAAAAAAAQPFW1pbmVjcmFmdDphcm1vci5ib290cz+5mZmgAAAAAAQB", + "minecraft:damage": "AwA=", + "minecraft:damage_resistant": "GRFtaW5lY3JhZnQ6aXNfZmlyZQ==", + "minecraft:enchantable": "Gw8=", + "minecraft:enchantments": "CgAB", + "minecraft:equippable": "HAFLARNtaW5lY3JhZnQ6bmV0aGVyaXRlAAABAQE=", + "minecraft:item_model": "BxltaW5lY3JhZnQ6bmV0aGVyaXRlX2Jvb3Rz", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHml0ZW0ubWluZWNyYWZ0Lm5ldGhlcml0ZV9ib290cwA=", + "minecraft:lore": "CAA=", + "minecraft:max_damage": "AuED", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=", + "minecraft:repairable": "HQAhbWluZWNyYWZ0OnJlcGFpcnNfbmV0aGVyaXRlX2FybW9y" + } + }, + { + "id": 911, + "key": "minecraft:flint", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bw9taW5lY3JhZnQ6ZmxpbnQ=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFGl0ZW0ubWluZWNyYWZ0LmZsaW50AA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 912, + "key": "minecraft:porkchop", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:consumable": "Fj/MzM0B2gQBAA==", + "minecraft:enchantments": "CgAB", + "minecraft:food": "FQM/5mZnAA==", + "minecraft:item_model": "BxJtaW5lY3JhZnQ6cG9ya2Nob3A=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAF2l0ZW0ubWluZWNyYWZ0LnBvcmtjaG9wAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 913, + "key": "minecraft:cooked_porkchop", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:consumable": "Fj/MzM0B2gQBAA==", + "minecraft:enchantments": "CgAB", + "minecraft:food": "FQhBTMzNAA==", + "minecraft:item_model": "BxltaW5lY3JhZnQ6Y29va2VkX3BvcmtjaG9w", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHml0ZW0ubWluZWNyYWZ0LmNvb2tlZF9wb3JrY2hvcAA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 914, + "key": "minecraft:painting", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxJtaW5lY3JhZnQ6cGFpbnRpbmc=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAF2l0ZW0ubWluZWNyYWZ0LnBhaW50aW5nAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 915, + "key": "minecraft:golden_apple", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:consumable": "Fj/MzM0B2gQBAQACCQFkAAEBABUA4BIAAQEAP4AAAA==", + "minecraft:enchantments": "CgAB", + "minecraft:food": "FQRBGZmaAQ==", + "minecraft:item_model": "BxZtaW5lY3JhZnQ6Z29sZGVuX2FwcGxl", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2l0ZW0ubWluZWNyYWZ0LmdvbGRlbl9hcHBsZQA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 916, + "key": "minecraft:enchanted_golden_apple", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:consumable": "Fj/MzM0B2gQBAQAECQGQAwABAQAKAPAuAAEBAAsA8C4AAQEAFQPgEgABAQA/gAAA", + "minecraft:enchantment_glint_override": "EwE=", + "minecraft:enchantments": "CgAB", + "minecraft:food": "FQRBGZmaAQ==", + "minecraft:item_model": "ByBtaW5lY3JhZnQ6ZW5jaGFudGVkX2dvbGRlbl9hcHBsZQ==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWl0ZW0ubWluZWNyYWZ0LmVuY2hhbnRlZF9nb2xkZW5fYXBwbGUA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQI=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 917, + "key": "minecraft:oak_sign", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxJtaW5lY3JhZnQ6b2FrX3NpZ24=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGGJsb2NrLm1pbmVjcmFmdC5vYWtfc2lnbgA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "ARA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 918, + "key": "minecraft:spruce_sign", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6c3BydWNlX3NpZ24=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5zcHJ1Y2Vfc2lnbgA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "ARA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 919, + "key": "minecraft:birch_sign", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxRtaW5lY3JhZnQ6YmlyY2hfc2lnbg==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC5iaXJjaF9zaWduAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "ARA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 920, + "key": "minecraft:jungle_sign", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6anVuZ2xlX3NpZ24=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5qdW5nbGVfc2lnbgA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "ARA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 921, + "key": "minecraft:acacia_sign", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6YWNhY2lhX3NpZ24=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5hY2FjaWFfc2lnbgA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "ARA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 922, + "key": "minecraft:cherry_sign", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6Y2hlcnJ5X3NpZ24=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5jaGVycnlfc2lnbgA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "ARA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 923, + "key": "minecraft:dark_oak_sign", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6ZGFya19vYWtfc2lnbg==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5kYXJrX29ha19zaWduAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "ARA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 924, + "key": "minecraft:pale_oak_sign", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6cGFsZV9vYWtfc2lnbg==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5wYWxlX29ha19zaWduAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "ARA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 925, + "key": "minecraft:mangrove_sign", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6bWFuZ3JvdmVfc2lnbg==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5tYW5ncm92ZV9zaWduAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "ARA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 926, + "key": "minecraft:bamboo_sign", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6YmFtYm9vX3NpZ24=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5iYW1ib29fc2lnbgA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "ARA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 927, + "key": "minecraft:crimson_sign", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxZtaW5lY3JhZnQ6Y3JpbXNvbl9zaWdu", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC5jcmltc29uX3NpZ24A", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "ARA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 928, + "key": "minecraft:warped_sign", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6d2FycGVkX3NpZ24=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC53YXJwZWRfc2lnbgA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "ARA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 929, + "key": "minecraft:oak_hanging_sign", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxptaW5lY3JhZnQ6b2FrX2hhbmdpbmdfc2lnbg==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGJsb2NrLm1pbmVjcmFmdC5vYWtfaGFuZ2luZ19zaWduAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "ARA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 930, + "key": "minecraft:spruce_hanging_sign", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx1taW5lY3JhZnQ6c3BydWNlX2hhbmdpbmdfc2lnbg==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2Jsb2NrLm1pbmVjcmFmdC5zcHJ1Y2VfaGFuZ2luZ19zaWduAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "ARA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 931, + "key": "minecraft:birch_hanging_sign", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxxtaW5lY3JhZnQ6YmlyY2hfaGFuZ2luZ19zaWdu", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAImJsb2NrLm1pbmVjcmFmdC5iaXJjaF9oYW5naW5nX3NpZ24A", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "ARA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 932, + "key": "minecraft:jungle_hanging_sign", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx1taW5lY3JhZnQ6anVuZ2xlX2hhbmdpbmdfc2lnbg==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2Jsb2NrLm1pbmVjcmFmdC5qdW5nbGVfaGFuZ2luZ19zaWduAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "ARA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 933, + "key": "minecraft:acacia_hanging_sign", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx1taW5lY3JhZnQ6YWNhY2lhX2hhbmdpbmdfc2lnbg==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2Jsb2NrLm1pbmVjcmFmdC5hY2FjaWFfaGFuZ2luZ19zaWduAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "ARA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 934, + "key": "minecraft:cherry_hanging_sign", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx1taW5lY3JhZnQ6Y2hlcnJ5X2hhbmdpbmdfc2lnbg==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2Jsb2NrLm1pbmVjcmFmdC5jaGVycnlfaGFuZ2luZ19zaWduAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "ARA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 935, + "key": "minecraft:dark_oak_hanging_sign", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx9taW5lY3JhZnQ6ZGFya19vYWtfaGFuZ2luZ19zaWdu", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWJsb2NrLm1pbmVjcmFmdC5kYXJrX29ha19oYW5naW5nX3NpZ24A", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "ARA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 936, + "key": "minecraft:pale_oak_hanging_sign", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx9taW5lY3JhZnQ6cGFsZV9vYWtfaGFuZ2luZ19zaWdu", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWJsb2NrLm1pbmVjcmFmdC5wYWxlX29ha19oYW5naW5nX3NpZ24A", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "ARA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 937, + "key": "minecraft:mangrove_hanging_sign", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx9taW5lY3JhZnQ6bWFuZ3JvdmVfaGFuZ2luZ19zaWdu", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWJsb2NrLm1pbmVjcmFmdC5tYW5ncm92ZV9oYW5naW5nX3NpZ24A", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "ARA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 938, + "key": "minecraft:bamboo_hanging_sign", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx1taW5lY3JhZnQ6YmFtYm9vX2hhbmdpbmdfc2lnbg==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2Jsb2NrLm1pbmVjcmFmdC5iYW1ib29faGFuZ2luZ19zaWduAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "ARA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 939, + "key": "minecraft:crimson_hanging_sign", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx5taW5lY3JhZnQ6Y3JpbXNvbl9oYW5naW5nX3NpZ24=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJGJsb2NrLm1pbmVjcmFmdC5jcmltc29uX2hhbmdpbmdfc2lnbgA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "ARA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 940, + "key": "minecraft:warped_hanging_sign", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx1taW5lY3JhZnQ6d2FycGVkX2hhbmdpbmdfc2lnbg==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2Jsb2NrLm1pbmVjcmFmdC53YXJwZWRfaGFuZ2luZ19zaWduAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "ARA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 941, + "key": "minecraft:bucket", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxBtaW5lY3JhZnQ6YnVja2V0", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFWl0ZW0ubWluZWNyYWZ0LmJ1Y2tldAA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "ARA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 942, + "key": "minecraft:water_bucket", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxZtaW5lY3JhZnQ6d2F0ZXJfYnVja2V0", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2l0ZW0ubWluZWNyYWZ0LndhdGVyX2J1Y2tldAA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 943, + "key": "minecraft:lava_bucket", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6bGF2YV9idWNrZXQ=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGml0ZW0ubWluZWNyYWZ0LmxhdmFfYnVja2V0AA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 944, + "key": "minecraft:powder_snow_bucket", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxxtaW5lY3JhZnQ6cG93ZGVyX3Nub3dfYnVja2V0", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWl0ZW0ubWluZWNyYWZ0LnBvd2Rlcl9zbm93X2J1Y2tldAA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 945, + "key": "minecraft:snowball", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxJtaW5lY3JhZnQ6c25vd2JhbGw=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAF2l0ZW0ubWluZWNyYWZ0LnNub3diYWxsAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "ARA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 946, + "key": "minecraft:leather", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxFtaW5lY3JhZnQ6bGVhdGhlcg==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFml0ZW0ubWluZWNyYWZ0LmxlYXRoZXIA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 947, + "key": "minecraft:milk_bucket", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:consumable": "Fj/MzM0C2QQAAQI=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6bWlsa19idWNrZXQ=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGml0ZW0ubWluZWNyYWZ0Lm1pbGtfYnVja2V0AA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=", + "minecraft:use_remainder": "FwGtBwAA" + } + }, + { + "id": 948, + "key": "minecraft:pufferfish_bucket", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:bucket_entity_data": "MAoA", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxttaW5lY3JhZnQ6cHVmZmVyZmlzaF9idWNrZXQ=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGl0ZW0ubWluZWNyYWZ0LnB1ZmZlcmZpc2hfYnVja2V0AA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 949, + "key": "minecraft:salmon_bucket", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:bucket_entity_data": "MAoA", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6c2FsbW9uX2J1Y2tldA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGl0ZW0ubWluZWNyYWZ0LnNhbG1vbl9idWNrZXQA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 950, + "key": "minecraft:cod_bucket", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:bucket_entity_data": "MAoA", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxRtaW5lY3JhZnQ6Y29kX2J1Y2tldA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGWl0ZW0ubWluZWNyYWZ0LmNvZF9idWNrZXQA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 951, + "key": "minecraft:tropical_fish_bucket", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:bucket_entity_data": "MAoA", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx5taW5lY3JhZnQ6dHJvcGljYWxfZmlzaF9idWNrZXQ=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2l0ZW0ubWluZWNyYWZ0LnRyb3BpY2FsX2Zpc2hfYnVja2V0AA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 952, + "key": "minecraft:axolotl_bucket", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:bucket_entity_data": "MAoA", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxhtaW5lY3JhZnQ6YXhvbG90bF9idWNrZXQ=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWl0ZW0ubWluZWNyYWZ0LmF4b2xvdGxfYnVja2V0AA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 953, + "key": "minecraft:tadpole_bucket", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:bucket_entity_data": "MAoA", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxhtaW5lY3JhZnQ6dGFkcG9sZV9idWNrZXQ=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWl0ZW0ubWluZWNyYWZ0LnRhZHBvbGVfYnVja2V0AA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 954, + "key": "minecraft:brick", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bw9taW5lY3JhZnQ6YnJpY2s=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFGl0ZW0ubWluZWNyYWZ0LmJyaWNrAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 955, + "key": "minecraft:clay_ball", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxNtaW5lY3JhZnQ6Y2xheV9iYWxs", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGGl0ZW0ubWluZWNyYWZ0LmNsYXlfYmFsbAA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 956, + "key": "minecraft:dried_kelp_block", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxptaW5lY3JhZnQ6ZHJpZWRfa2VscF9ibG9jaw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGJsb2NrLm1pbmVjcmFmdC5kcmllZF9rZWxwX2Jsb2NrAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 957, + "key": "minecraft:paper", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bw9taW5lY3JhZnQ6cGFwZXI=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFGl0ZW0ubWluZWNyYWZ0LnBhcGVyAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 958, + "key": "minecraft:book", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantable": "GwE=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bw5taW5lY3JhZnQ6Ym9vaw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAE2l0ZW0ubWluZWNyYWZ0LmJvb2sA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 959, + "key": "minecraft:slime_ball", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxRtaW5lY3JhZnQ6c2xpbWVfYmFsbA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGWl0ZW0ubWluZWNyYWZ0LnNsaW1lX2JhbGwA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 960, + "key": "minecraft:egg", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bw1taW5lY3JhZnQ6ZWdn", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAEml0ZW0ubWluZWNyYWZ0LmVnZwA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "ARA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 961, + "key": "minecraft:compass", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxFtaW5lY3JhZnQ6Y29tcGFzcw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFml0ZW0ubWluZWNyYWZ0LmNvbXBhc3MA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 962, + "key": "minecraft:recovery_compass", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxptaW5lY3JhZnQ6cmVjb3ZlcnlfY29tcGFzcw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2l0ZW0ubWluZWNyYWZ0LnJlY292ZXJ5X2NvbXBhc3MA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQE=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 963, + "key": "minecraft:bundle", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:bundle_contents": "KAA=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxBtaW5lY3JhZnQ6YnVuZGxl", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFWl0ZW0ubWluZWNyYWZ0LmJ1bmRsZQA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 964, + "key": "minecraft:white_bundle", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:bundle_contents": "KAA=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxZtaW5lY3JhZnQ6d2hpdGVfYnVuZGxl", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2l0ZW0ubWluZWNyYWZ0LndoaXRlX2J1bmRsZQA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 965, + "key": "minecraft:orange_bundle", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:bundle_contents": "KAA=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6b3JhbmdlX2J1bmRsZQ==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGl0ZW0ubWluZWNyYWZ0Lm9yYW5nZV9idW5kbGUA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 966, + "key": "minecraft:magenta_bundle", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:bundle_contents": "KAA=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxhtaW5lY3JhZnQ6bWFnZW50YV9idW5kbGU=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWl0ZW0ubWluZWNyYWZ0Lm1hZ2VudGFfYnVuZGxlAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 967, + "key": "minecraft:light_blue_bundle", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:bundle_contents": "KAA=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxttaW5lY3JhZnQ6bGlnaHRfYmx1ZV9idW5kbGU=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGl0ZW0ubWluZWNyYWZ0LmxpZ2h0X2JsdWVfYnVuZGxlAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 968, + "key": "minecraft:yellow_bundle", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:bundle_contents": "KAA=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6eWVsbG93X2J1bmRsZQ==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGl0ZW0ubWluZWNyYWZ0LnllbGxvd19idW5kbGUA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 969, + "key": "minecraft:lime_bundle", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:bundle_contents": "KAA=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6bGltZV9idW5kbGU=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGml0ZW0ubWluZWNyYWZ0LmxpbWVfYnVuZGxlAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 970, + "key": "minecraft:pink_bundle", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:bundle_contents": "KAA=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6cGlua19idW5kbGU=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGml0ZW0ubWluZWNyYWZ0LnBpbmtfYnVuZGxlAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 971, + "key": "minecraft:gray_bundle", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:bundle_contents": "KAA=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6Z3JheV9idW5kbGU=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGml0ZW0ubWluZWNyYWZ0LmdyYXlfYnVuZGxlAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 972, + "key": "minecraft:light_gray_bundle", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:bundle_contents": "KAA=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxttaW5lY3JhZnQ6bGlnaHRfZ3JheV9idW5kbGU=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGl0ZW0ubWluZWNyYWZ0LmxpZ2h0X2dyYXlfYnVuZGxlAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 973, + "key": "minecraft:cyan_bundle", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:bundle_contents": "KAA=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6Y3lhbl9idW5kbGU=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGml0ZW0ubWluZWNyYWZ0LmN5YW5fYnVuZGxlAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 974, + "key": "minecraft:purple_bundle", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:bundle_contents": "KAA=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6cHVycGxlX2J1bmRsZQ==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGl0ZW0ubWluZWNyYWZ0LnB1cnBsZV9idW5kbGUA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 975, + "key": "minecraft:blue_bundle", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:bundle_contents": "KAA=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6Ymx1ZV9idW5kbGU=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGml0ZW0ubWluZWNyYWZ0LmJsdWVfYnVuZGxlAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 976, + "key": "minecraft:brown_bundle", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:bundle_contents": "KAA=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxZtaW5lY3JhZnQ6YnJvd25fYnVuZGxl", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2l0ZW0ubWluZWNyYWZ0LmJyb3duX2J1bmRsZQA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 977, + "key": "minecraft:green_bundle", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:bundle_contents": "KAA=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxZtaW5lY3JhZnQ6Z3JlZW5fYnVuZGxl", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2l0ZW0ubWluZWNyYWZ0LmdyZWVuX2J1bmRsZQA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 978, + "key": "minecraft:red_bundle", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:bundle_contents": "KAA=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxRtaW5lY3JhZnQ6cmVkX2J1bmRsZQ==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGWl0ZW0ubWluZWNyYWZ0LnJlZF9idW5kbGUA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 979, + "key": "minecraft:black_bundle", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:bundle_contents": "KAA=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxZtaW5lY3JhZnQ6YmxhY2tfYnVuZGxl", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2l0ZW0ubWluZWNyYWZ0LmJsYWNrX2J1bmRsZQA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 980, + "key": "minecraft:fishing_rod", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:damage": "AwA=", + "minecraft:enchantable": "GwE=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6ZmlzaGluZ19yb2Q=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGml0ZW0ubWluZWNyYWZ0LmZpc2hpbmdfcm9kAA==", + "minecraft:lore": "CAA=", + "minecraft:max_damage": "AkA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 981, + "key": "minecraft:clock", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bw9taW5lY3JhZnQ6Y2xvY2s=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFGl0ZW0ubWluZWNyYWZ0LmNsb2NrAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 982, + "key": "minecraft:spyglass", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxJtaW5lY3JhZnQ6c3B5Z2xhc3M=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAF2l0ZW0ubWluZWNyYWZ0LnNweWdsYXNzAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 983, + "key": "minecraft:glowstone_dust", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxhtaW5lY3JhZnQ6Z2xvd3N0b25lX2R1c3Q=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWl0ZW0ubWluZWNyYWZ0Lmdsb3dzdG9uZV9kdXN0AA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 984, + "key": "minecraft:cod", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:consumable": "Fj/MzM0B2gQBAA==", + "minecraft:enchantments": "CgAB", + "minecraft:food": "FQI+zMzNAA==", + "minecraft:item_model": "Bw1taW5lY3JhZnQ6Y29k", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAEml0ZW0ubWluZWNyYWZ0LmNvZAA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 985, + "key": "minecraft:salmon", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:consumable": "Fj/MzM0B2gQBAA==", + "minecraft:enchantments": "CgAB", + "minecraft:food": "FQI+zMzNAA==", + "minecraft:item_model": "BxBtaW5lY3JhZnQ6c2FsbW9u", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFWl0ZW0ubWluZWNyYWZ0LnNhbG1vbgA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 986, + "key": "minecraft:tropical_fish", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:consumable": "Fj/MzM0B2gQBAA==", + "minecraft:enchantments": "CgAB", + "minecraft:food": "FQE+TMzNAA==", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6dHJvcGljYWxfZmlzaA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGl0ZW0ubWluZWNyYWZ0LnRyb3BpY2FsX2Zpc2gA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 987, + "key": "minecraft:pufferfish", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:consumable": "Fj/MzM0B2gQBAQADEgGwCQABAQAQAqwCAAEBAAgArAIAAQEAP4AAAA==", + "minecraft:enchantments": "CgAB", + "minecraft:food": "FQE+TMzNAA==", + "minecraft:item_model": "BxRtaW5lY3JhZnQ6cHVmZmVyZmlzaA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGWl0ZW0ubWluZWNyYWZ0LnB1ZmZlcmZpc2gA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 988, + "key": "minecraft:cooked_cod", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:consumable": "Fj/MzM0B2gQBAA==", + "minecraft:enchantments": "CgAB", + "minecraft:food": "FQVAwAAAAA==", + "minecraft:item_model": "BxRtaW5lY3JhZnQ6Y29va2VkX2NvZA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGWl0ZW0ubWluZWNyYWZ0LmNvb2tlZF9jb2QA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 989, + "key": "minecraft:cooked_salmon", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:consumable": "Fj/MzM0B2gQBAA==", + "minecraft:enchantments": "CgAB", + "minecraft:food": "FQZBGZmaAA==", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6Y29va2VkX3NhbG1vbg==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGl0ZW0ubWluZWNyYWZ0LmNvb2tlZF9zYWxtb24A", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 990, + "key": "minecraft:ink_sac", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxFtaW5lY3JhZnQ6aW5rX3NhYw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFml0ZW0ubWluZWNyYWZ0Lmlua19zYWMA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 991, + "key": "minecraft:glow_ink_sac", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxZtaW5lY3JhZnQ6Z2xvd19pbmtfc2Fj", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2l0ZW0ubWluZWNyYWZ0Lmdsb3dfaW5rX3NhYwA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 992, + "key": "minecraft:cocoa_beans", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6Y29jb2FfYmVhbnM=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGml0ZW0ubWluZWNyYWZ0LmNvY29hX2JlYW5zAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 993, + "key": "minecraft:white_dye", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxNtaW5lY3JhZnQ6d2hpdGVfZHll", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGGl0ZW0ubWluZWNyYWZ0LndoaXRlX2R5ZQA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 994, + "key": "minecraft:orange_dye", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxRtaW5lY3JhZnQ6b3JhbmdlX2R5ZQ==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGWl0ZW0ubWluZWNyYWZ0Lm9yYW5nZV9keWUA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 995, + "key": "minecraft:magenta_dye", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6bWFnZW50YV9keWU=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGml0ZW0ubWluZWNyYWZ0Lm1hZ2VudGFfZHllAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 996, + "key": "minecraft:light_blue_dye", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxhtaW5lY3JhZnQ6bGlnaHRfYmx1ZV9keWU=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWl0ZW0ubWluZWNyYWZ0LmxpZ2h0X2JsdWVfZHllAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 997, + "key": "minecraft:yellow_dye", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxRtaW5lY3JhZnQ6eWVsbG93X2R5ZQ==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGWl0ZW0ubWluZWNyYWZ0LnllbGxvd19keWUA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 998, + "key": "minecraft:lime_dye", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxJtaW5lY3JhZnQ6bGltZV9keWU=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAF2l0ZW0ubWluZWNyYWZ0LmxpbWVfZHllAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 999, + "key": "minecraft:pink_dye", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxJtaW5lY3JhZnQ6cGlua19keWU=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAF2l0ZW0ubWluZWNyYWZ0LnBpbmtfZHllAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1000, + "key": "minecraft:gray_dye", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxJtaW5lY3JhZnQ6Z3JheV9keWU=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAF2l0ZW0ubWluZWNyYWZ0LmdyYXlfZHllAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1001, + "key": "minecraft:light_gray_dye", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxhtaW5lY3JhZnQ6bGlnaHRfZ3JheV9keWU=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWl0ZW0ubWluZWNyYWZ0LmxpZ2h0X2dyYXlfZHllAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1002, + "key": "minecraft:cyan_dye", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxJtaW5lY3JhZnQ6Y3lhbl9keWU=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAF2l0ZW0ubWluZWNyYWZ0LmN5YW5fZHllAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1003, + "key": "minecraft:purple_dye", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxRtaW5lY3JhZnQ6cHVycGxlX2R5ZQ==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGWl0ZW0ubWluZWNyYWZ0LnB1cnBsZV9keWUA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1004, + "key": "minecraft:blue_dye", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxJtaW5lY3JhZnQ6Ymx1ZV9keWU=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAF2l0ZW0ubWluZWNyYWZ0LmJsdWVfZHllAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1005, + "key": "minecraft:brown_dye", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxNtaW5lY3JhZnQ6YnJvd25fZHll", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGGl0ZW0ubWluZWNyYWZ0LmJyb3duX2R5ZQA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1006, + "key": "minecraft:green_dye", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxNtaW5lY3JhZnQ6Z3JlZW5fZHll", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGGl0ZW0ubWluZWNyYWZ0LmdyZWVuX2R5ZQA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1007, + "key": "minecraft:red_dye", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxFtaW5lY3JhZnQ6cmVkX2R5ZQ==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFml0ZW0ubWluZWNyYWZ0LnJlZF9keWUA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1008, + "key": "minecraft:black_dye", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxNtaW5lY3JhZnQ6YmxhY2tfZHll", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGGl0ZW0ubWluZWNyYWZ0LmJsYWNrX2R5ZQA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1009, + "key": "minecraft:bone_meal", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxNtaW5lY3JhZnQ6Ym9uZV9tZWFs", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGGl0ZW0ubWluZWNyYWZ0LmJvbmVfbWVhbAA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1010, + "key": "minecraft:bone", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bw5taW5lY3JhZnQ6Ym9uZQ==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAE2l0ZW0ubWluZWNyYWZ0LmJvbmUA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1011, + "key": "minecraft:sugar", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bw9taW5lY3JhZnQ6c3VnYXI=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFGl0ZW0ubWluZWNyYWZ0LnN1Z2FyAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1012, + "key": "minecraft:cake", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bw5taW5lY3JhZnQ6Y2FrZQ==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFGJsb2NrLm1pbmVjcmFmdC5jYWtlAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1013, + "key": "minecraft:white_bed", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxNtaW5lY3JhZnQ6d2hpdGVfYmVk", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGWJsb2NrLm1pbmVjcmFmdC53aGl0ZV9iZWQA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1014, + "key": "minecraft:orange_bed", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxRtaW5lY3JhZnQ6b3JhbmdlX2JlZA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC5vcmFuZ2VfYmVkAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1015, + "key": "minecraft:magenta_bed", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6bWFnZW50YV9iZWQ=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5tYWdlbnRhX2JlZAA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1016, + "key": "minecraft:light_blue_bed", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxhtaW5lY3JhZnQ6bGlnaHRfYmx1ZV9iZWQ=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC5saWdodF9ibHVlX2JlZAA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1017, + "key": "minecraft:yellow_bed", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxRtaW5lY3JhZnQ6eWVsbG93X2JlZA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC55ZWxsb3dfYmVkAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1018, + "key": "minecraft:lime_bed", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxJtaW5lY3JhZnQ6bGltZV9iZWQ=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGGJsb2NrLm1pbmVjcmFmdC5saW1lX2JlZAA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1019, + "key": "minecraft:pink_bed", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxJtaW5lY3JhZnQ6cGlua19iZWQ=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGGJsb2NrLm1pbmVjcmFmdC5waW5rX2JlZAA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1020, + "key": "minecraft:gray_bed", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxJtaW5lY3JhZnQ6Z3JheV9iZWQ=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGGJsb2NrLm1pbmVjcmFmdC5ncmF5X2JlZAA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1021, + "key": "minecraft:light_gray_bed", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxhtaW5lY3JhZnQ6bGlnaHRfZ3JheV9iZWQ=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC5saWdodF9ncmF5X2JlZAA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1022, + "key": "minecraft:cyan_bed", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxJtaW5lY3JhZnQ6Y3lhbl9iZWQ=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGGJsb2NrLm1pbmVjcmFmdC5jeWFuX2JlZAA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1023, + "key": "minecraft:purple_bed", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxRtaW5lY3JhZnQ6cHVycGxlX2JlZA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC5wdXJwbGVfYmVkAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1024, + "key": "minecraft:blue_bed", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxJtaW5lY3JhZnQ6Ymx1ZV9iZWQ=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGGJsb2NrLm1pbmVjcmFmdC5ibHVlX2JlZAA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1025, + "key": "minecraft:brown_bed", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxNtaW5lY3JhZnQ6YnJvd25fYmVk", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGWJsb2NrLm1pbmVjcmFmdC5icm93bl9iZWQA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1026, + "key": "minecraft:green_bed", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxNtaW5lY3JhZnQ6Z3JlZW5fYmVk", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGWJsb2NrLm1pbmVjcmFmdC5ncmVlbl9iZWQA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1027, + "key": "minecraft:red_bed", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxFtaW5lY3JhZnQ6cmVkX2JlZA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAF2Jsb2NrLm1pbmVjcmFmdC5yZWRfYmVkAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1028, + "key": "minecraft:black_bed", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxNtaW5lY3JhZnQ6YmxhY2tfYmVk", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGWJsb2NrLm1pbmVjcmFmdC5ibGFja19iZWQA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1029, + "key": "minecraft:cookie", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:consumable": "Fj/MzM0B2gQBAA==", + "minecraft:enchantments": "CgAB", + "minecraft:food": "FQI+zMzNAA==", + "minecraft:item_model": "BxBtaW5lY3JhZnQ6Y29va2ll", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFWl0ZW0ubWluZWNyYWZ0LmNvb2tpZQA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1030, + "key": "minecraft:crafter", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:container": "PgA=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxFtaW5lY3JhZnQ6Y3JhZnRlcg==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAF2Jsb2NrLm1pbmVjcmFmdC5jcmFmdGVyAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1031, + "key": "minecraft:filled_map", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxRtaW5lY3JhZnQ6ZmlsbGVkX21hcA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGWl0ZW0ubWluZWNyYWZ0LmZpbGxlZF9tYXAA", + "minecraft:lore": "CAA=", + "minecraft:map_color": "IwBGQC4=", + "minecraft:map_decorations": "JQoA", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1032, + "key": "minecraft:shears", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:damage": "AwA=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxBtaW5lY3JhZnQ6c2hlYXJz", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFWl0ZW0ubWluZWNyYWZ0LnNoZWFycwA=", + "minecraft:lore": "CAA=", + "minecraft:max_damage": "Au4B", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=", + "minecraft:tool": "GgQCgQEBQXAAAAEBABBtaW5lY3JhZnQ6bGVhdmVzAUFwAAAAAA5taW5lY3JhZnQ6d29vbAFAoAAAAAPLAswCAUAAAAAAP4AAAAE=" + } + }, + { + "id": 1033, + "key": "minecraft:melon_slice", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:consumable": "Fj/MzM0B2gQBAA==", + "minecraft:enchantments": "CgAB", + "minecraft:food": "FQI/mZmaAA==", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6bWVsb25fc2xpY2U=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGml0ZW0ubWluZWNyYWZ0Lm1lbG9uX3NsaWNlAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1034, + "key": "minecraft:dried_kelp", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:consumable": "Fj9MzM0B2gQBAA==", + "minecraft:enchantments": "CgAB", + "minecraft:food": "FQE/GZmaAA==", + "minecraft:item_model": "BxRtaW5lY3JhZnQ6ZHJpZWRfa2VscA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGWl0ZW0ubWluZWNyYWZ0LmRyaWVkX2tlbHAA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1035, + "key": "minecraft:pumpkin_seeds", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6cHVtcGtpbl9zZWVkcw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGl0ZW0ubWluZWNyYWZ0LnB1bXBraW5fc2VlZHMA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1036, + "key": "minecraft:melon_seeds", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6bWVsb25fc2VlZHM=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGml0ZW0ubWluZWNyYWZ0Lm1lbG9uX3NlZWRzAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1037, + "key": "minecraft:beef", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:consumable": "Fj/MzM0B2gQBAA==", + "minecraft:enchantments": "CgAB", + "minecraft:food": "FQM/5mZnAA==", + "minecraft:item_model": "Bw5taW5lY3JhZnQ6YmVlZg==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAE2l0ZW0ubWluZWNyYWZ0LmJlZWYA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1038, + "key": "minecraft:cooked_beef", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:consumable": "Fj/MzM0B2gQBAA==", + "minecraft:enchantments": "CgAB", + "minecraft:food": "FQhBTMzNAA==", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6Y29va2VkX2JlZWY=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGml0ZW0ubWluZWNyYWZ0LmNvb2tlZF9iZWVmAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1039, + "key": "minecraft:chicken", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:consumable": "Fj/MzM0B2gQBAQABEADYBAABAQA+mZma", + "minecraft:enchantments": "CgAB", + "minecraft:food": "FQI/mZmaAA==", + "minecraft:item_model": "BxFtaW5lY3JhZnQ6Y2hpY2tlbg==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFml0ZW0ubWluZWNyYWZ0LmNoaWNrZW4A", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1040, + "key": "minecraft:cooked_chicken", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:consumable": "Fj/MzM0B2gQBAA==", + "minecraft:enchantments": "CgAB", + "minecraft:food": "FQZA5mZnAA==", + "minecraft:item_model": "BxhtaW5lY3JhZnQ6Y29va2VkX2NoaWNrZW4=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWl0ZW0ubWluZWNyYWZ0LmNvb2tlZF9jaGlja2VuAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1041, + "key": "minecraft:rotten_flesh", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:consumable": "Fj/MzM0B2gQBAQABEADYBAABAQA/TMzN", + "minecraft:enchantments": "CgAB", + "minecraft:food": "FQQ/TMzNAA==", + "minecraft:item_model": "BxZtaW5lY3JhZnQ6cm90dGVuX2ZsZXNo", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2l0ZW0ubWluZWNyYWZ0LnJvdHRlbl9mbGVzaAA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1042, + "key": "minecraft:ender_pearl", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6ZW5kZXJfcGVhcmw=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGml0ZW0ubWluZWNyYWZ0LmVuZGVyX3BlYXJsAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "ARA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=", + "minecraft:use_cooldown": "GD+AAAAA" + } + }, + { + "id": 1043, + "key": "minecraft:blaze_rod", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxNtaW5lY3JhZnQ6YmxhemVfcm9k", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGGl0ZW0ubWluZWNyYWZ0LmJsYXplX3JvZAA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1044, + "key": "minecraft:ghast_tear", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxRtaW5lY3JhZnQ6Z2hhc3RfdGVhcg==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGWl0ZW0ubWluZWNyYWZ0LmdoYXN0X3RlYXIA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1045, + "key": "minecraft:gold_nugget", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6Z29sZF9udWdnZXQ=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGml0ZW0ubWluZWNyYWZ0LmdvbGRfbnVnZ2V0AA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1046, + "key": "minecraft:nether_wart", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6bmV0aGVyX3dhcnQ=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGml0ZW0ubWluZWNyYWZ0Lm5ldGhlcl93YXJ0AA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1047, + "key": "minecraft:glass_bottle", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxZtaW5lY3JhZnQ6Z2xhc3NfYm90dGxl", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2l0ZW0ubWluZWNyYWZ0LmdsYXNzX2JvdHRsZQA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1048, + "key": "minecraft:potion", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:consumable": "Fj/MzM0C2QQAAA==", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxBtaW5lY3JhZnQ6cG90aW9u", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFWl0ZW0ubWluZWNyYWZ0LnBvdGlvbgA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:potion_contents": "KQAAAAA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=", + "minecraft:use_remainder": "FwGXCAAA" + } + }, + { + "id": 1049, + "key": "minecraft:spider_eye", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:consumable": "Fj/MzM0B2gQBAQABEgBkAAEBAD+AAAA=", + "minecraft:enchantments": "CgAB", + "minecraft:food": "FQJATMzNAA==", + "minecraft:item_model": "BxRtaW5lY3JhZnQ6c3BpZGVyX2V5ZQ==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGWl0ZW0ubWluZWNyYWZ0LnNwaWRlcl9leWUA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1050, + "key": "minecraft:fermented_spider_eye", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx5taW5lY3JhZnQ6ZmVybWVudGVkX3NwaWRlcl9leWU=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2l0ZW0ubWluZWNyYWZ0LmZlcm1lbnRlZF9zcGlkZXJfZXllAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1051, + "key": "minecraft:blaze_powder", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxZtaW5lY3JhZnQ6YmxhemVfcG93ZGVy", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2l0ZW0ubWluZWNyYWZ0LmJsYXplX3Bvd2RlcgA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1052, + "key": "minecraft:magma_cream", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6bWFnbWFfY3JlYW0=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGml0ZW0ubWluZWNyYWZ0Lm1hZ21hX2NyZWFtAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1053, + "key": "minecraft:brewing_stand", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:container": "PgA=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6YnJld2luZ19zdGFuZA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5icmV3aW5nX3N0YW5kAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1054, + "key": "minecraft:cauldron", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxJtaW5lY3JhZnQ6Y2F1bGRyb24=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGGJsb2NrLm1pbmVjcmFmdC5jYXVsZHJvbgA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1055, + "key": "minecraft:ender_eye", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxNtaW5lY3JhZnQ6ZW5kZXJfZXll", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGGl0ZW0ubWluZWNyYWZ0LmVuZGVyX2V5ZQA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1056, + "key": "minecraft:glistering_melon_slice", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByBtaW5lY3JhZnQ6Z2xpc3RlcmluZ19tZWxvbl9zbGljZQ==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWl0ZW0ubWluZWNyYWZ0LmdsaXN0ZXJpbmdfbWVsb25fc2xpY2UA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1057, + "key": "minecraft:armadillo_spawn_egg", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx1taW5lY3JhZnQ6YXJtYWRpbGxvX3NwYXduX2VnZw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIml0ZW0ubWluZWNyYWZ0LmFybWFkaWxsb19zcGF3bl9lZ2cA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1058, + "key": "minecraft:allay_spawn_egg", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxltaW5lY3JhZnQ6YWxsYXlfc3Bhd25fZWdn", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHml0ZW0ubWluZWNyYWZ0LmFsbGF5X3NwYXduX2VnZwA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1059, + "key": "minecraft:axolotl_spawn_egg", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxttaW5lY3JhZnQ6YXhvbG90bF9zcGF3bl9lZ2c=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGl0ZW0ubWluZWNyYWZ0LmF4b2xvdGxfc3Bhd25fZWdnAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1060, + "key": "minecraft:bat_spawn_egg", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6YmF0X3NwYXduX2VnZw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGl0ZW0ubWluZWNyYWZ0LmJhdF9zcGF3bl9lZ2cA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1061, + "key": "minecraft:bee_spawn_egg", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6YmVlX3NwYXduX2VnZw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGl0ZW0ubWluZWNyYWZ0LmJlZV9zcGF3bl9lZ2cA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1062, + "key": "minecraft:blaze_spawn_egg", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxltaW5lY3JhZnQ6YmxhemVfc3Bhd25fZWdn", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHml0ZW0ubWluZWNyYWZ0LmJsYXplX3NwYXduX2VnZwA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1063, + "key": "minecraft:bogged_spawn_egg", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxptaW5lY3JhZnQ6Ym9nZ2VkX3NwYXduX2VnZw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2l0ZW0ubWluZWNyYWZ0LmJvZ2dlZF9zcGF3bl9lZ2cA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1064, + "key": "minecraft:breeze_spawn_egg", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxptaW5lY3JhZnQ6YnJlZXplX3NwYXduX2VnZw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2l0ZW0ubWluZWNyYWZ0LmJyZWV6ZV9zcGF3bl9lZ2cA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1065, + "key": "minecraft:cat_spawn_egg", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6Y2F0X3NwYXduX2VnZw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGl0ZW0ubWluZWNyYWZ0LmNhdF9zcGF3bl9lZ2cA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1066, + "key": "minecraft:camel_spawn_egg", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxltaW5lY3JhZnQ6Y2FtZWxfc3Bhd25fZWdn", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHml0ZW0ubWluZWNyYWZ0LmNhbWVsX3NwYXduX2VnZwA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1067, + "key": "minecraft:cave_spider_spawn_egg", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx9taW5lY3JhZnQ6Y2F2ZV9zcGlkZXJfc3Bhd25fZWdn", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJGl0ZW0ubWluZWNyYWZ0LmNhdmVfc3BpZGVyX3NwYXduX2VnZwA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1068, + "key": "minecraft:chicken_spawn_egg", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxttaW5lY3JhZnQ6Y2hpY2tlbl9zcGF3bl9lZ2c=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGl0ZW0ubWluZWNyYWZ0LmNoaWNrZW5fc3Bhd25fZWdnAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1069, + "key": "minecraft:cod_spawn_egg", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6Y29kX3NwYXduX2VnZw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGl0ZW0ubWluZWNyYWZ0LmNvZF9zcGF3bl9lZ2cA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1070, + "key": "minecraft:cow_spawn_egg", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6Y293X3NwYXduX2VnZw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGl0ZW0ubWluZWNyYWZ0LmNvd19zcGF3bl9lZ2cA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1071, + "key": "minecraft:creeper_spawn_egg", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxttaW5lY3JhZnQ6Y3JlZXBlcl9zcGF3bl9lZ2c=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGl0ZW0ubWluZWNyYWZ0LmNyZWVwZXJfc3Bhd25fZWdnAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1072, + "key": "minecraft:dolphin_spawn_egg", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxttaW5lY3JhZnQ6ZG9scGhpbl9zcGF3bl9lZ2c=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGl0ZW0ubWluZWNyYWZ0LmRvbHBoaW5fc3Bhd25fZWdnAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1073, + "key": "minecraft:donkey_spawn_egg", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxptaW5lY3JhZnQ6ZG9ua2V5X3NwYXduX2VnZw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2l0ZW0ubWluZWNyYWZ0LmRvbmtleV9zcGF3bl9lZ2cA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1074, + "key": "minecraft:drowned_spawn_egg", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxttaW5lY3JhZnQ6ZHJvd25lZF9zcGF3bl9lZ2c=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGl0ZW0ubWluZWNyYWZ0LmRyb3duZWRfc3Bhd25fZWdnAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1075, + "key": "minecraft:elder_guardian_spawn_egg", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByJtaW5lY3JhZnQ6ZWxkZXJfZ3VhcmRpYW5fc3Bhd25fZWdn", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJ2l0ZW0ubWluZWNyYWZ0LmVsZGVyX2d1YXJkaWFuX3NwYXduX2VnZwA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1076, + "key": "minecraft:ender_dragon_spawn_egg", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByBtaW5lY3JhZnQ6ZW5kZXJfZHJhZ29uX3NwYXduX2VnZw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWl0ZW0ubWluZWNyYWZ0LmVuZGVyX2RyYWdvbl9zcGF3bl9lZ2cA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1077, + "key": "minecraft:enderman_spawn_egg", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxxtaW5lY3JhZnQ6ZW5kZXJtYW5fc3Bhd25fZWdn", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWl0ZW0ubWluZWNyYWZ0LmVuZGVybWFuX3NwYXduX2VnZwA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1078, + "key": "minecraft:endermite_spawn_egg", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx1taW5lY3JhZnQ6ZW5kZXJtaXRlX3NwYXduX2VnZw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIml0ZW0ubWluZWNyYWZ0LmVuZGVybWl0ZV9zcGF3bl9lZ2cA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1079, + "key": "minecraft:evoker_spawn_egg", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxptaW5lY3JhZnQ6ZXZva2VyX3NwYXduX2VnZw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2l0ZW0ubWluZWNyYWZ0LmV2b2tlcl9zcGF3bl9lZ2cA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1080, + "key": "minecraft:fox_spawn_egg", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6Zm94X3NwYXduX2VnZw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGl0ZW0ubWluZWNyYWZ0LmZveF9zcGF3bl9lZ2cA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1081, + "key": "minecraft:frog_spawn_egg", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxhtaW5lY3JhZnQ6ZnJvZ19zcGF3bl9lZ2c=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWl0ZW0ubWluZWNyYWZ0LmZyb2dfc3Bhd25fZWdnAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1082, + "key": "minecraft:ghast_spawn_egg", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxltaW5lY3JhZnQ6Z2hhc3Rfc3Bhd25fZWdn", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHml0ZW0ubWluZWNyYWZ0LmdoYXN0X3NwYXduX2VnZwA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1083, + "key": "minecraft:glow_squid_spawn_egg", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx5taW5lY3JhZnQ6Z2xvd19zcXVpZF9zcGF3bl9lZ2c=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2l0ZW0ubWluZWNyYWZ0Lmdsb3dfc3F1aWRfc3Bhd25fZWdnAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1084, + "key": "minecraft:goat_spawn_egg", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxhtaW5lY3JhZnQ6Z29hdF9zcGF3bl9lZ2c=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWl0ZW0ubWluZWNyYWZ0LmdvYXRfc3Bhd25fZWdnAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1085, + "key": "minecraft:guardian_spawn_egg", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxxtaW5lY3JhZnQ6Z3VhcmRpYW5fc3Bhd25fZWdn", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWl0ZW0ubWluZWNyYWZ0Lmd1YXJkaWFuX3NwYXduX2VnZwA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1086, + "key": "minecraft:hoglin_spawn_egg", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxptaW5lY3JhZnQ6aG9nbGluX3NwYXduX2VnZw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2l0ZW0ubWluZWNyYWZ0LmhvZ2xpbl9zcGF3bl9lZ2cA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1087, + "key": "minecraft:horse_spawn_egg", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxltaW5lY3JhZnQ6aG9yc2Vfc3Bhd25fZWdn", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHml0ZW0ubWluZWNyYWZ0LmhvcnNlX3NwYXduX2VnZwA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1088, + "key": "minecraft:husk_spawn_egg", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxhtaW5lY3JhZnQ6aHVza19zcGF3bl9lZ2c=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWl0ZW0ubWluZWNyYWZ0Lmh1c2tfc3Bhd25fZWdnAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1089, + "key": "minecraft:iron_golem_spawn_egg", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx5taW5lY3JhZnQ6aXJvbl9nb2xlbV9zcGF3bl9lZ2c=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2l0ZW0ubWluZWNyYWZ0Lmlyb25fZ29sZW1fc3Bhd25fZWdnAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1090, + "key": "minecraft:llama_spawn_egg", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxltaW5lY3JhZnQ6bGxhbWFfc3Bhd25fZWdn", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHml0ZW0ubWluZWNyYWZ0LmxsYW1hX3NwYXduX2VnZwA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1091, + "key": "minecraft:magma_cube_spawn_egg", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx5taW5lY3JhZnQ6bWFnbWFfY3ViZV9zcGF3bl9lZ2c=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2l0ZW0ubWluZWNyYWZ0Lm1hZ21hX2N1YmVfc3Bhd25fZWdnAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1092, + "key": "minecraft:mooshroom_spawn_egg", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx1taW5lY3JhZnQ6bW9vc2hyb29tX3NwYXduX2VnZw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIml0ZW0ubWluZWNyYWZ0Lm1vb3Nocm9vbV9zcGF3bl9lZ2cA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1093, + "key": "minecraft:mule_spawn_egg", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxhtaW5lY3JhZnQ6bXVsZV9zcGF3bl9lZ2c=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWl0ZW0ubWluZWNyYWZ0Lm11bGVfc3Bhd25fZWdnAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1094, + "key": "minecraft:ocelot_spawn_egg", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxptaW5lY3JhZnQ6b2NlbG90X3NwYXduX2VnZw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2l0ZW0ubWluZWNyYWZ0Lm9jZWxvdF9zcGF3bl9lZ2cA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1095, + "key": "minecraft:panda_spawn_egg", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxltaW5lY3JhZnQ6cGFuZGFfc3Bhd25fZWdn", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHml0ZW0ubWluZWNyYWZ0LnBhbmRhX3NwYXduX2VnZwA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1096, + "key": "minecraft:parrot_spawn_egg", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxptaW5lY3JhZnQ6cGFycm90X3NwYXduX2VnZw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2l0ZW0ubWluZWNyYWZ0LnBhcnJvdF9zcGF3bl9lZ2cA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1097, + "key": "minecraft:phantom_spawn_egg", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxttaW5lY3JhZnQ6cGhhbnRvbV9zcGF3bl9lZ2c=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGl0ZW0ubWluZWNyYWZ0LnBoYW50b21fc3Bhd25fZWdnAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1098, + "key": "minecraft:pig_spawn_egg", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6cGlnX3NwYXduX2VnZw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGl0ZW0ubWluZWNyYWZ0LnBpZ19zcGF3bl9lZ2cA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1099, + "key": "minecraft:piglin_spawn_egg", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxptaW5lY3JhZnQ6cGlnbGluX3NwYXduX2VnZw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2l0ZW0ubWluZWNyYWZ0LnBpZ2xpbl9zcGF3bl9lZ2cA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1100, + "key": "minecraft:piglin_brute_spawn_egg", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByBtaW5lY3JhZnQ6cGlnbGluX2JydXRlX3NwYXduX2VnZw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWl0ZW0ubWluZWNyYWZ0LnBpZ2xpbl9icnV0ZV9zcGF3bl9lZ2cA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1101, + "key": "minecraft:pillager_spawn_egg", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxxtaW5lY3JhZnQ6cGlsbGFnZXJfc3Bhd25fZWdn", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWl0ZW0ubWluZWNyYWZ0LnBpbGxhZ2VyX3NwYXduX2VnZwA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1102, + "key": "minecraft:polar_bear_spawn_egg", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx5taW5lY3JhZnQ6cG9sYXJfYmVhcl9zcGF3bl9lZ2c=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2l0ZW0ubWluZWNyYWZ0LnBvbGFyX2JlYXJfc3Bhd25fZWdnAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1103, + "key": "minecraft:pufferfish_spawn_egg", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx5taW5lY3JhZnQ6cHVmZmVyZmlzaF9zcGF3bl9lZ2c=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2l0ZW0ubWluZWNyYWZ0LnB1ZmZlcmZpc2hfc3Bhd25fZWdnAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1104, + "key": "minecraft:rabbit_spawn_egg", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxptaW5lY3JhZnQ6cmFiYml0X3NwYXduX2VnZw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2l0ZW0ubWluZWNyYWZ0LnJhYmJpdF9zcGF3bl9lZ2cA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1105, + "key": "minecraft:ravager_spawn_egg", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxttaW5lY3JhZnQ6cmF2YWdlcl9zcGF3bl9lZ2c=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGl0ZW0ubWluZWNyYWZ0LnJhdmFnZXJfc3Bhd25fZWdnAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1106, + "key": "minecraft:salmon_spawn_egg", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxptaW5lY3JhZnQ6c2FsbW9uX3NwYXduX2VnZw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2l0ZW0ubWluZWNyYWZ0LnNhbG1vbl9zcGF3bl9lZ2cA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1107, + "key": "minecraft:sheep_spawn_egg", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxltaW5lY3JhZnQ6c2hlZXBfc3Bhd25fZWdn", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHml0ZW0ubWluZWNyYWZ0LnNoZWVwX3NwYXduX2VnZwA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1108, + "key": "minecraft:shulker_spawn_egg", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxttaW5lY3JhZnQ6c2h1bGtlcl9zcGF3bl9lZ2c=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGl0ZW0ubWluZWNyYWZ0LnNodWxrZXJfc3Bhd25fZWdnAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1109, + "key": "minecraft:silverfish_spawn_egg", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx5taW5lY3JhZnQ6c2lsdmVyZmlzaF9zcGF3bl9lZ2c=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2l0ZW0ubWluZWNyYWZ0LnNpbHZlcmZpc2hfc3Bhd25fZWdnAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1110, + "key": "minecraft:skeleton_spawn_egg", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxxtaW5lY3JhZnQ6c2tlbGV0b25fc3Bhd25fZWdn", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWl0ZW0ubWluZWNyYWZ0LnNrZWxldG9uX3NwYXduX2VnZwA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1111, + "key": "minecraft:skeleton_horse_spawn_egg", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByJtaW5lY3JhZnQ6c2tlbGV0b25faG9yc2Vfc3Bhd25fZWdn", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJ2l0ZW0ubWluZWNyYWZ0LnNrZWxldG9uX2hvcnNlX3NwYXduX2VnZwA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1112, + "key": "minecraft:slime_spawn_egg", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxltaW5lY3JhZnQ6c2xpbWVfc3Bhd25fZWdn", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHml0ZW0ubWluZWNyYWZ0LnNsaW1lX3NwYXduX2VnZwA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1113, + "key": "minecraft:sniffer_spawn_egg", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxttaW5lY3JhZnQ6c25pZmZlcl9zcGF3bl9lZ2c=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGl0ZW0ubWluZWNyYWZ0LnNuaWZmZXJfc3Bhd25fZWdnAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1114, + "key": "minecraft:snow_golem_spawn_egg", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx5taW5lY3JhZnQ6c25vd19nb2xlbV9zcGF3bl9lZ2c=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2l0ZW0ubWluZWNyYWZ0LnNub3dfZ29sZW1fc3Bhd25fZWdnAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1115, + "key": "minecraft:spider_spawn_egg", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxptaW5lY3JhZnQ6c3BpZGVyX3NwYXduX2VnZw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2l0ZW0ubWluZWNyYWZ0LnNwaWRlcl9zcGF3bl9lZ2cA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1116, + "key": "minecraft:squid_spawn_egg", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxltaW5lY3JhZnQ6c3F1aWRfc3Bhd25fZWdn", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHml0ZW0ubWluZWNyYWZ0LnNxdWlkX3NwYXduX2VnZwA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1117, + "key": "minecraft:stray_spawn_egg", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxltaW5lY3JhZnQ6c3RyYXlfc3Bhd25fZWdn", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHml0ZW0ubWluZWNyYWZ0LnN0cmF5X3NwYXduX2VnZwA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1118, + "key": "minecraft:strider_spawn_egg", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxttaW5lY3JhZnQ6c3RyaWRlcl9zcGF3bl9lZ2c=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGl0ZW0ubWluZWNyYWZ0LnN0cmlkZXJfc3Bhd25fZWdnAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1119, + "key": "minecraft:tadpole_spawn_egg", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxttaW5lY3JhZnQ6dGFkcG9sZV9zcGF3bl9lZ2c=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGl0ZW0ubWluZWNyYWZ0LnRhZHBvbGVfc3Bhd25fZWdnAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1120, + "key": "minecraft:trader_llama_spawn_egg", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByBtaW5lY3JhZnQ6dHJhZGVyX2xsYW1hX3NwYXduX2VnZw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWl0ZW0ubWluZWNyYWZ0LnRyYWRlcl9sbGFtYV9zcGF3bl9lZ2cA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1121, + "key": "minecraft:tropical_fish_spawn_egg", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByFtaW5lY3JhZnQ6dHJvcGljYWxfZmlzaF9zcGF3bl9lZ2c=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJml0ZW0ubWluZWNyYWZ0LnRyb3BpY2FsX2Zpc2hfc3Bhd25fZWdnAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1122, + "key": "minecraft:turtle_spawn_egg", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxptaW5lY3JhZnQ6dHVydGxlX3NwYXduX2VnZw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2l0ZW0ubWluZWNyYWZ0LnR1cnRsZV9zcGF3bl9lZ2cA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1123, + "key": "minecraft:vex_spawn_egg", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6dmV4X3NwYXduX2VnZw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGl0ZW0ubWluZWNyYWZ0LnZleF9zcGF3bl9lZ2cA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1124, + "key": "minecraft:villager_spawn_egg", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxxtaW5lY3JhZnQ6dmlsbGFnZXJfc3Bhd25fZWdn", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWl0ZW0ubWluZWNyYWZ0LnZpbGxhZ2VyX3NwYXduX2VnZwA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1125, + "key": "minecraft:vindicator_spawn_egg", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx5taW5lY3JhZnQ6dmluZGljYXRvcl9zcGF3bl9lZ2c=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2l0ZW0ubWluZWNyYWZ0LnZpbmRpY2F0b3Jfc3Bhd25fZWdnAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1126, + "key": "minecraft:wandering_trader_spawn_egg", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByRtaW5lY3JhZnQ6d2FuZGVyaW5nX3RyYWRlcl9zcGF3bl9lZ2c=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAKWl0ZW0ubWluZWNyYWZ0LndhbmRlcmluZ190cmFkZXJfc3Bhd25fZWdnAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1127, + "key": "minecraft:warden_spawn_egg", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxptaW5lY3JhZnQ6d2FyZGVuX3NwYXduX2VnZw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2l0ZW0ubWluZWNyYWZ0LndhcmRlbl9zcGF3bl9lZ2cA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1128, + "key": "minecraft:witch_spawn_egg", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxltaW5lY3JhZnQ6d2l0Y2hfc3Bhd25fZWdn", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHml0ZW0ubWluZWNyYWZ0LndpdGNoX3NwYXduX2VnZwA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1129, + "key": "minecraft:wither_spawn_egg", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxptaW5lY3JhZnQ6d2l0aGVyX3NwYXduX2VnZw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2l0ZW0ubWluZWNyYWZ0LndpdGhlcl9zcGF3bl9lZ2cA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1130, + "key": "minecraft:wither_skeleton_spawn_egg", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByNtaW5lY3JhZnQ6d2l0aGVyX3NrZWxldG9uX3NwYXduX2VnZw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAKGl0ZW0ubWluZWNyYWZ0LndpdGhlcl9za2VsZXRvbl9zcGF3bl9lZ2cA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1131, + "key": "minecraft:wolf_spawn_egg", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxhtaW5lY3JhZnQ6d29sZl9zcGF3bl9lZ2c=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWl0ZW0ubWluZWNyYWZ0LndvbGZfc3Bhd25fZWdnAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1132, + "key": "minecraft:zoglin_spawn_egg", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxptaW5lY3JhZnQ6em9nbGluX3NwYXduX2VnZw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2l0ZW0ubWluZWNyYWZ0LnpvZ2xpbl9zcGF3bl9lZ2cA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1133, + "key": "minecraft:creaking_spawn_egg", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxxtaW5lY3JhZnQ6Y3JlYWtpbmdfc3Bhd25fZWdn", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWl0ZW0ubWluZWNyYWZ0LmNyZWFraW5nX3NwYXduX2VnZwA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1134, + "key": "minecraft:zombie_spawn_egg", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxptaW5lY3JhZnQ6em9tYmllX3NwYXduX2VnZw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2l0ZW0ubWluZWNyYWZ0LnpvbWJpZV9zcGF3bl9lZ2cA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1135, + "key": "minecraft:zombie_horse_spawn_egg", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByBtaW5lY3JhZnQ6em9tYmllX2hvcnNlX3NwYXduX2VnZw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWl0ZW0ubWluZWNyYWZ0LnpvbWJpZV9ob3JzZV9zcGF3bl9lZ2cA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1136, + "key": "minecraft:zombie_villager_spawn_egg", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByNtaW5lY3JhZnQ6em9tYmllX3ZpbGxhZ2VyX3NwYXduX2VnZw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAKGl0ZW0ubWluZWNyYWZ0LnpvbWJpZV92aWxsYWdlcl9zcGF3bl9lZ2cA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1137, + "key": "minecraft:zombified_piglin_spawn_egg", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByRtaW5lY3JhZnQ6em9tYmlmaWVkX3BpZ2xpbl9zcGF3bl9lZ2c=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAKWl0ZW0ubWluZWNyYWZ0LnpvbWJpZmllZF9waWdsaW5fc3Bhd25fZWdnAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1138, + "key": "minecraft:experience_bottle", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantment_glint_override": "EwE=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxttaW5lY3JhZnQ6ZXhwZXJpZW5jZV9ib3R0bGU=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGl0ZW0ubWluZWNyYWZ0LmV4cGVyaWVuY2VfYm90dGxlAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQE=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1139, + "key": "minecraft:fire_charge", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6ZmlyZV9jaGFyZ2U=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGml0ZW0ubWluZWNyYWZ0LmZpcmVfY2hhcmdlAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1140, + "key": "minecraft:wind_charge", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6d2luZF9jaGFyZ2U=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGml0ZW0ubWluZWNyYWZ0LndpbmRfY2hhcmdlAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=", + "minecraft:use_cooldown": "GD8AAAAA" + } + }, + { + "id": 1141, + "key": "minecraft:writable_book", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6d3JpdGFibGVfYm9vaw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGl0ZW0ubWluZWNyYWZ0LndyaXRhYmxlX2Jvb2sA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=", + "minecraft:writable_book_content": "KwA=" + } + }, + { + "id": 1142, + "key": "minecraft:written_book", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantment_glint_override": "EwE=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxZtaW5lY3JhZnQ6d3JpdHRlbl9ib29r", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2l0ZW0ubWluZWNyYWZ0LndyaXR0ZW5fYm9vawA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "ARA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1143, + "key": "minecraft:breeze_rod", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxRtaW5lY3JhZnQ6YnJlZXplX3JvZA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGWl0ZW0ubWluZWNyYWZ0LmJyZWV6ZV9yb2QA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1144, + "key": "minecraft:mace", + "components": { + "minecraft:attribute_modifiers": "DQICHG1pbmVjcmFmdDpiYXNlX2F0dGFja19kYW1hZ2VAFAAAAAAAAAABBBttaW5lY3JhZnQ6YmFzZV9hdHRhY2tfc3BlZWTACzMzQAAAAAABAQ==", + "minecraft:damage": "AwA=", + "minecraft:enchantable": "Gw8=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bw5taW5lY3JhZnQ6bWFjZQ==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAE2l0ZW0ubWluZWNyYWZ0Lm1hY2UA", + "minecraft:lore": "CAA=", + "minecraft:max_damage": "AvQD", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQM=", + "minecraft:repair_cost": "EQA=", + "minecraft:repairable": "HQL3CA==", + "minecraft:tool": "GgA/gAAAAg==" + } + }, + { + "id": 1145, + "key": "minecraft:item_frame", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxRtaW5lY3JhZnQ6aXRlbV9mcmFtZQ==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGWl0ZW0ubWluZWNyYWZ0Lml0ZW1fZnJhbWUA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1146, + "key": "minecraft:glow_item_frame", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxltaW5lY3JhZnQ6Z2xvd19pdGVtX2ZyYW1l", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHml0ZW0ubWluZWNyYWZ0Lmdsb3dfaXRlbV9mcmFtZQA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1147, + "key": "minecraft:flower_pot", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxRtaW5lY3JhZnQ6Zmxvd2VyX3BvdA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC5mbG93ZXJfcG90AA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1148, + "key": "minecraft:carrot", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:consumable": "Fj/MzM0B2gQBAA==", + "minecraft:enchantments": "CgAB", + "minecraft:food": "FQNAZmZnAA==", + "minecraft:item_model": "BxBtaW5lY3JhZnQ6Y2Fycm90", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFWl0ZW0ubWluZWNyYWZ0LmNhcnJvdAA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1149, + "key": "minecraft:potato", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:consumable": "Fj/MzM0B2gQBAA==", + "minecraft:enchantments": "CgAB", + "minecraft:food": "FQE/GZmaAA==", + "minecraft:item_model": "BxBtaW5lY3JhZnQ6cG90YXRv", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFWl0ZW0ubWluZWNyYWZ0LnBvdGF0bwA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1150, + "key": "minecraft:baked_potato", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:consumable": "Fj/MzM0B2gQBAA==", + "minecraft:enchantments": "CgAB", + "minecraft:food": "FQVAwAAAAA==", + "minecraft:item_model": "BxZtaW5lY3JhZnQ6YmFrZWRfcG90YXRv", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2l0ZW0ubWluZWNyYWZ0LmJha2VkX3BvdGF0bwA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1151, + "key": "minecraft:poisonous_potato", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:consumable": "Fj/MzM0B2gQBAQABEgBkAAEBAD8ZmZo=", + "minecraft:enchantments": "CgAB", + "minecraft:food": "FQI/mZmaAA==", + "minecraft:item_model": "BxptaW5lY3JhZnQ6cG9pc29ub3VzX3BvdGF0bw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2l0ZW0ubWluZWNyYWZ0LnBvaXNvbm91c19wb3RhdG8A", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1152, + "key": "minecraft:map", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bw1taW5lY3JhZnQ6bWFw", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAEml0ZW0ubWluZWNyYWZ0Lm1hcAA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1153, + "key": "minecraft:golden_carrot", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:consumable": "Fj/MzM0B2gQBAA==", + "minecraft:enchantments": "CgAB", + "minecraft:food": "FQZBZmZnAA==", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6Z29sZGVuX2NhcnJvdA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGl0ZW0ubWluZWNyYWZ0LmdvbGRlbl9jYXJyb3QA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1154, + "key": "minecraft:skeleton_skull", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:equippable": "HARHAAAAAQAB", + "minecraft:item_model": "BxhtaW5lY3JhZnQ6c2tlbGV0b25fc2t1bGw=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC5za2VsZXRvbl9za3VsbAA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQE=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1155, + "key": "minecraft:wither_skeleton_skull", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:equippable": "HARHAAAAAQAB", + "minecraft:item_model": "Bx9taW5lY3JhZnQ6d2l0aGVyX3NrZWxldG9uX3NrdWxs", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWJsb2NrLm1pbmVjcmFmdC53aXRoZXJfc2tlbGV0b25fc2t1bGwA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQI=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1156, + "key": "minecraft:player_head", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:equippable": "HARHAAAAAQAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6cGxheWVyX2hlYWQ=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5wbGF5ZXJfaGVhZAA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQE=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1157, + "key": "minecraft:zombie_head", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:equippable": "HARHAAAAAQAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6em9tYmllX2hlYWQ=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC56b21iaWVfaGVhZAA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQE=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1158, + "key": "minecraft:creeper_head", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:equippable": "HARHAAAAAQAB", + "minecraft:item_model": "BxZtaW5lY3JhZnQ6Y3JlZXBlcl9oZWFk", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC5jcmVlcGVyX2hlYWQA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQE=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1159, + "key": "minecraft:dragon_head", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:equippable": "HARHAAAAAQAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6ZHJhZ29uX2hlYWQ=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5kcmFnb25faGVhZAA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQM=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1160, + "key": "minecraft:piglin_head", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:equippable": "HARHAAAAAQAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6cGlnbGluX2hlYWQ=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5waWdsaW5faGVhZAA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQE=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1161, + "key": "minecraft:nether_star", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:damage_resistant": "GRZtaW5lY3JhZnQ6aXNfZXhwbG9zaW9u", + "minecraft:enchantment_glint_override": "EwE=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6bmV0aGVyX3N0YXI=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGml0ZW0ubWluZWNyYWZ0Lm5ldGhlcl9zdGFyAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQI=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1162, + "key": "minecraft:pumpkin_pie", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:consumable": "Fj/MzM0B2gQBAA==", + "minecraft:enchantments": "CgAB", + "minecraft:food": "FQhAmZmaAA==", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6cHVtcGtpbl9waWU=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGml0ZW0ubWluZWNyYWZ0LnB1bXBraW5fcGllAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1163, + "key": "minecraft:firework_rocket", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:fireworks": "OAEA", + "minecraft:item_model": "BxltaW5lY3JhZnQ6ZmlyZXdvcmtfcm9ja2V0", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHml0ZW0ubWluZWNyYWZ0LmZpcmV3b3JrX3JvY2tldAA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1164, + "key": "minecraft:firework_star", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6ZmlyZXdvcmtfc3Rhcg==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGl0ZW0ubWluZWNyYWZ0LmZpcmV3b3JrX3N0YXIA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1165, + "key": "minecraft:enchanted_book", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantment_glint_override": "EwE=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxhtaW5lY3JhZnQ6ZW5jaGFudGVkX2Jvb2s=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWl0ZW0ubWluZWNyYWZ0LmVuY2hhbnRlZF9ib29rAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQE=", + "minecraft:repair_cost": "EQA=", + "minecraft:stored_enchantments": "IQAB" + } + }, + { + "id": 1166, + "key": "minecraft:nether_brick", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxZtaW5lY3JhZnQ6bmV0aGVyX2JyaWNr", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2l0ZW0ubWluZWNyYWZ0Lm5ldGhlcl9icmljawA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1167, + "key": "minecraft:resin_brick", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6cmVzaW5fYnJpY2s=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGml0ZW0ubWluZWNyYWZ0LnJlc2luX2JyaWNrAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1168, + "key": "minecraft:prismarine_shard", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxptaW5lY3JhZnQ6cHJpc21hcmluZV9zaGFyZA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2l0ZW0ubWluZWNyYWZ0LnByaXNtYXJpbmVfc2hhcmQA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1169, + "key": "minecraft:prismarine_crystals", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx1taW5lY3JhZnQ6cHJpc21hcmluZV9jcnlzdGFscw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIml0ZW0ubWluZWNyYWZ0LnByaXNtYXJpbmVfY3J5c3RhbHMA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1170, + "key": "minecraft:rabbit", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:consumable": "Fj/MzM0B2gQBAA==", + "minecraft:enchantments": "CgAB", + "minecraft:food": "FQM/5mZnAA==", + "minecraft:item_model": "BxBtaW5lY3JhZnQ6cmFiYml0", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFWl0ZW0ubWluZWNyYWZ0LnJhYmJpdAA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1171, + "key": "minecraft:cooked_rabbit", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:consumable": "Fj/MzM0B2gQBAA==", + "minecraft:enchantments": "CgAB", + "minecraft:food": "FQVAwAAAAA==", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6Y29va2VkX3JhYmJpdA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGl0ZW0ubWluZWNyYWZ0LmNvb2tlZF9yYWJiaXQA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1172, + "key": "minecraft:rabbit_stew", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:consumable": "Fj/MzM0B2gQBAA==", + "minecraft:enchantments": "CgAB", + "minecraft:food": "FQpBQAAAAA==", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6cmFiYml0X3N0ZXc=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGml0ZW0ubWluZWNyYWZ0LnJhYmJpdF9zdGV3AA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=", + "minecraft:use_remainder": "FwG+BgAA" + } + }, + { + "id": 1173, + "key": "minecraft:rabbit_foot", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6cmFiYml0X2Zvb3Q=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGml0ZW0ubWluZWNyYWZ0LnJhYmJpdF9mb290AA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1174, + "key": "minecraft:rabbit_hide", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6cmFiYml0X2hpZGU=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGml0ZW0ubWluZWNyYWZ0LnJhYmJpdF9oaWRlAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1175, + "key": "minecraft:armor_stand", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6YXJtb3Jfc3RhbmQ=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGml0ZW0ubWluZWNyYWZ0LmFybW9yX3N0YW5kAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "ARA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1176, + "key": "minecraft:iron_horse_armor", + "components": { + "minecraft:attribute_modifiers": "DQIAFG1pbmVjcmFmdDphcm1vci5ib2R5QBQAAAAAAAAACQEUbWluZWNyYWZ0OmFybW9yLmJvZHkAAAAAAAAAAAAJAQ==", + "minecraft:enchantments": "CgAB", + "minecraft:equippable": "HAblBQEObWluZWNyYWZ0Omlyb24AAQI/AQEA", + "minecraft:item_model": "BxptaW5lY3JhZnQ6aXJvbl9ob3JzZV9hcm1vcg==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2l0ZW0ubWluZWNyYWZ0Lmlyb25faG9yc2VfYXJtb3IA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1177, + "key": "minecraft:golden_horse_armor", + "components": { + "minecraft:attribute_modifiers": "DQIAFG1pbmVjcmFmdDphcm1vci5ib2R5QBwAAAAAAAAACQEUbWluZWNyYWZ0OmFybW9yLmJvZHkAAAAAAAAAAAAJAQ==", + "minecraft:enchantments": "CgAB", + "minecraft:equippable": "HAblBQEObWluZWNyYWZ0OmdvbGQAAQI/AQEA", + "minecraft:item_model": "BxxtaW5lY3JhZnQ6Z29sZGVuX2hvcnNlX2FybW9y", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWl0ZW0ubWluZWNyYWZ0LmdvbGRlbl9ob3JzZV9hcm1vcgA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1178, + "key": "minecraft:diamond_horse_armor", + "components": { + "minecraft:attribute_modifiers": "DQIAFG1pbmVjcmFmdDphcm1vci5ib2R5QCYAAAAAAAAACQEUbWluZWNyYWZ0OmFybW9yLmJvZHlAAAAAAAAAAAAJAQ==", + "minecraft:enchantments": "CgAB", + "minecraft:equippable": "HAblBQERbWluZWNyYWZ0OmRpYW1vbmQAAQI/AQEA", + "minecraft:item_model": "Bx1taW5lY3JhZnQ6ZGlhbW9uZF9ob3JzZV9hcm1vcg==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIml0ZW0ubWluZWNyYWZ0LmRpYW1vbmRfaG9yc2VfYXJtb3IA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1179, + "key": "minecraft:leather_horse_armor", + "components": { + "minecraft:attribute_modifiers": "DQIAFG1pbmVjcmFmdDphcm1vci5ib2R5QAgAAAAAAAAACQEUbWluZWNyYWZ0OmFybW9yLmJvZHkAAAAAAAAAAAAJAQ==", + "minecraft:enchantments": "CgAB", + "minecraft:equippable": "HAblBQERbWluZWNyYWZ0OmxlYXRoZXIAAQI/AQEA", + "minecraft:item_model": "Bx1taW5lY3JhZnQ6bGVhdGhlcl9ob3JzZV9hcm1vcg==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIml0ZW0ubWluZWNyYWZ0LmxlYXRoZXJfaG9yc2VfYXJtb3IA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1180, + "key": "minecraft:lead", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bw5taW5lY3JhZnQ6bGVhZA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAE2l0ZW0ubWluZWNyYWZ0LmxlYWQA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1181, + "key": "minecraft:name_tag", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxJtaW5lY3JhZnQ6bmFtZV90YWc=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAF2l0ZW0ubWluZWNyYWZ0Lm5hbWVfdGFnAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1182, + "key": "minecraft:command_block_minecart", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByBtaW5lY3JhZnQ6Y29tbWFuZF9ibG9ja19taW5lY2FydA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWl0ZW0ubWluZWNyYWZ0LmNvbW1hbmRfYmxvY2tfbWluZWNhcnQA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQM=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1183, + "key": "minecraft:mutton", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:consumable": "Fj/MzM0B2gQBAA==", + "minecraft:enchantments": "CgAB", + "minecraft:food": "FQI/mZmaAA==", + "minecraft:item_model": "BxBtaW5lY3JhZnQ6bXV0dG9u", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFWl0ZW0ubWluZWNyYWZ0Lm11dHRvbgA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1184, + "key": "minecraft:cooked_mutton", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:consumable": "Fj/MzM0B2gQBAA==", + "minecraft:enchantments": "CgAB", + "minecraft:food": "FQZBGZmaAA==", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6Y29va2VkX211dHRvbg==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGl0ZW0ubWluZWNyYWZ0LmNvb2tlZF9tdXR0b24A", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1185, + "key": "minecraft:white_banner", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:banner_patterns": "OwA=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxZtaW5lY3JhZnQ6d2hpdGVfYmFubmVy", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC53aGl0ZV9iYW5uZXIA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "ARA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1186, + "key": "minecraft:orange_banner", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:banner_patterns": "OwA=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6b3JhbmdlX2Jhbm5lcg==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5vcmFuZ2VfYmFubmVyAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "ARA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1187, + "key": "minecraft:magenta_banner", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:banner_patterns": "OwA=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxhtaW5lY3JhZnQ6bWFnZW50YV9iYW5uZXI=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC5tYWdlbnRhX2Jhbm5lcgA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "ARA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1188, + "key": "minecraft:light_blue_banner", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:banner_patterns": "OwA=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxttaW5lY3JhZnQ6bGlnaHRfYmx1ZV9iYW5uZXI=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWJsb2NrLm1pbmVjcmFmdC5saWdodF9ibHVlX2Jhbm5lcgA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "ARA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1189, + "key": "minecraft:yellow_banner", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:banner_patterns": "OwA=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6eWVsbG93X2Jhbm5lcg==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC55ZWxsb3dfYmFubmVyAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "ARA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1190, + "key": "minecraft:lime_banner", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:banner_patterns": "OwA=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6bGltZV9iYW5uZXI=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5saW1lX2Jhbm5lcgA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "ARA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1191, + "key": "minecraft:pink_banner", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:banner_patterns": "OwA=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6cGlua19iYW5uZXI=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5waW5rX2Jhbm5lcgA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "ARA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1192, + "key": "minecraft:gray_banner", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:banner_patterns": "OwA=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6Z3JheV9iYW5uZXI=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5ncmF5X2Jhbm5lcgA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "ARA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1193, + "key": "minecraft:light_gray_banner", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:banner_patterns": "OwA=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxttaW5lY3JhZnQ6bGlnaHRfZ3JheV9iYW5uZXI=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWJsb2NrLm1pbmVjcmFmdC5saWdodF9ncmF5X2Jhbm5lcgA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "ARA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1194, + "key": "minecraft:cyan_banner", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:banner_patterns": "OwA=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6Y3lhbl9iYW5uZXI=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5jeWFuX2Jhbm5lcgA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "ARA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1195, + "key": "minecraft:purple_banner", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:banner_patterns": "OwA=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6cHVycGxlX2Jhbm5lcg==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5wdXJwbGVfYmFubmVyAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "ARA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1196, + "key": "minecraft:blue_banner", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:banner_patterns": "OwA=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6Ymx1ZV9iYW5uZXI=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5ibHVlX2Jhbm5lcgA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "ARA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1197, + "key": "minecraft:brown_banner", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:banner_patterns": "OwA=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxZtaW5lY3JhZnQ6YnJvd25fYmFubmVy", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC5icm93bl9iYW5uZXIA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "ARA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1198, + "key": "minecraft:green_banner", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:banner_patterns": "OwA=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxZtaW5lY3JhZnQ6Z3JlZW5fYmFubmVy", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC5ncmVlbl9iYW5uZXIA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "ARA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1199, + "key": "minecraft:red_banner", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:banner_patterns": "OwA=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxRtaW5lY3JhZnQ6cmVkX2Jhbm5lcg==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC5yZWRfYmFubmVyAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "ARA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1200, + "key": "minecraft:black_banner", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:banner_patterns": "OwA=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxZtaW5lY3JhZnQ6YmxhY2tfYmFubmVy", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC5ibGFja19iYW5uZXIA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "ARA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1201, + "key": "minecraft:end_crystal", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantment_glint_override": "EwE=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6ZW5kX2NyeXN0YWw=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGml0ZW0ubWluZWNyYWZ0LmVuZF9jcnlzdGFsAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1202, + "key": "minecraft:chorus_fruit", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:consumable": "Fj/MzM0B2gQBAQNBgAAA", + "minecraft:enchantments": "CgAB", + "minecraft:food": "FQRAGZmaAQ==", + "minecraft:item_model": "BxZtaW5lY3JhZnQ6Y2hvcnVzX2ZydWl0", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2l0ZW0ubWluZWNyYWZ0LmNob3J1c19mcnVpdAA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=", + "minecraft:use_cooldown": "GD+AAAAA" + } + }, + { + "id": 1203, + "key": "minecraft:popped_chorus_fruit", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx1taW5lY3JhZnQ6cG9wcGVkX2Nob3J1c19mcnVpdA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIml0ZW0ubWluZWNyYWZ0LnBvcHBlZF9jaG9ydXNfZnJ1aXQA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1204, + "key": "minecraft:torchflower_seeds", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxttaW5lY3JhZnQ6dG9yY2hmbG93ZXJfc2VlZHM=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGl0ZW0ubWluZWNyYWZ0LnRvcmNoZmxvd2VyX3NlZWRzAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1205, + "key": "minecraft:pitcher_pod", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6cGl0Y2hlcl9wb2Q=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGml0ZW0ubWluZWNyYWZ0LnBpdGNoZXJfcG9kAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1206, + "key": "minecraft:beetroot", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:consumable": "Fj/MzM0B2gQBAA==", + "minecraft:enchantments": "CgAB", + "minecraft:food": "FQE/mZmaAA==", + "minecraft:item_model": "BxJtaW5lY3JhZnQ6YmVldHJvb3Q=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAF2l0ZW0ubWluZWNyYWZ0LmJlZXRyb290AA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1207, + "key": "minecraft:beetroot_seeds", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxhtaW5lY3JhZnQ6YmVldHJvb3Rfc2VlZHM=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWl0ZW0ubWluZWNyYWZ0LmJlZXRyb290X3NlZWRzAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1208, + "key": "minecraft:beetroot_soup", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:consumable": "Fj/MzM0B2gQBAA==", + "minecraft:enchantments": "CgAB", + "minecraft:food": "FQZA5mZnAA==", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6YmVldHJvb3Rfc291cA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGl0ZW0ubWluZWNyYWZ0LmJlZXRyb290X3NvdXAA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=", + "minecraft:use_remainder": "FwG+BgAA" + } + }, + { + "id": 1209, + "key": "minecraft:dragon_breath", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6ZHJhZ29uX2JyZWF0aA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGl0ZW0ubWluZWNyYWZ0LmRyYWdvbl9icmVhdGgA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQE=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1210, + "key": "minecraft:splash_potion", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6c3BsYXNoX3BvdGlvbg==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGl0ZW0ubWluZWNyYWZ0LnNwbGFzaF9wb3Rpb24A", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:potion_contents": "KQAAAAA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1211, + "key": "minecraft:spectral_arrow", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxhtaW5lY3JhZnQ6c3BlY3RyYWxfYXJyb3c=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWl0ZW0ubWluZWNyYWZ0LnNwZWN0cmFsX2Fycm93AA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1212, + "key": "minecraft:tipped_arrow", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxZtaW5lY3JhZnQ6dGlwcGVkX2Fycm93", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2l0ZW0ubWluZWNyYWZ0LnRpcHBlZF9hcnJvdwA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:potion_contents": "KQAAAAA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1213, + "key": "minecraft:lingering_potion", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxptaW5lY3JhZnQ6bGluZ2VyaW5nX3BvdGlvbg==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2l0ZW0ubWluZWNyYWZ0LmxpbmdlcmluZ19wb3Rpb24A", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:potion_contents": "KQAAAAA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1214, + "key": "minecraft:shield", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:banner_patterns": "OwA=", + "minecraft:damage": "AwA=", + "minecraft:enchantments": "CgAB", + "minecraft:equippable": "HAVHAAAAAQAB", + "minecraft:item_model": "BxBtaW5lY3JhZnQ6c2hpZWxk", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFWl0ZW0ubWluZWNyYWZ0LnNoaWVsZAA=", + "minecraft:lore": "CAA=", + "minecraft:max_damage": "AtAC", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=", + "minecraft:repairable": "HQAfbWluZWNyYWZ0Ondvb2Rlbl90b29sX21hdGVyaWFscw==" + } + }, + { + "id": 1215, + "key": "minecraft:totem_of_undying", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:death_protection": "IAICAAMJAYQHAAEBABUBZAABAQALAKAGAAEBAD+AAAA=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxptaW5lY3JhZnQ6dG90ZW1fb2ZfdW5keWluZw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2l0ZW0ubWluZWNyYWZ0LnRvdGVtX29mX3VuZHlpbmcA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQE=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1216, + "key": "minecraft:shulker_shell", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6c2h1bGtlcl9zaGVsbA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGl0ZW0ubWluZWNyYWZ0LnNodWxrZXJfc2hlbGwA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1217, + "key": "minecraft:iron_nugget", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6aXJvbl9udWdnZXQ=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGml0ZW0ubWluZWNyYWZ0Lmlyb25fbnVnZ2V0AA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1218, + "key": "minecraft:knowledge_book", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxhtaW5lY3JhZnQ6a25vd2xlZGdlX2Jvb2s=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWl0ZW0ubWluZWNyYWZ0Lmtub3dsZWRnZV9ib29rAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQM=", + "minecraft:recipes": "NQkAAAAAAA==", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1219, + "key": "minecraft:debug_stick", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:debug_stick_state": "LgoA", + "minecraft:enchantment_glint_override": "EwE=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6ZGVidWdfc3RpY2s=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGml0ZW0ubWluZWNyYWZ0LmRlYnVnX3N0aWNrAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQM=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1220, + "key": "minecraft:music_disc_13", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6bXVzaWNfZGlzY18xMw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGl0ZW0ubWluZWNyYWZ0Lm11c2ljX2Rpc2NfMTMA", + "minecraft:jukebox_playable": "NAAMbWluZWNyYWZ0OjEzAQ==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQE=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1221, + "key": "minecraft:music_disc_cat", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxhtaW5lY3JhZnQ6bXVzaWNfZGlzY19jYXQ=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWl0ZW0ubWluZWNyYWZ0Lm11c2ljX2Rpc2NfY2F0AA==", + "minecraft:jukebox_playable": "NAANbWluZWNyYWZ0OmNhdAE=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQE=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1222, + "key": "minecraft:music_disc_blocks", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxttaW5lY3JhZnQ6bXVzaWNfZGlzY19ibG9ja3M=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGl0ZW0ubWluZWNyYWZ0Lm11c2ljX2Rpc2NfYmxvY2tzAA==", + "minecraft:jukebox_playable": "NAAQbWluZWNyYWZ0OmJsb2NrcwE=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQE=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1223, + "key": "minecraft:music_disc_chirp", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxptaW5lY3JhZnQ6bXVzaWNfZGlzY19jaGlycA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2l0ZW0ubWluZWNyYWZ0Lm11c2ljX2Rpc2NfY2hpcnAA", + "minecraft:jukebox_playable": "NAAPbWluZWNyYWZ0OmNoaXJwAQ==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQE=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1224, + "key": "minecraft:music_disc_creator", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxxtaW5lY3JhZnQ6bXVzaWNfZGlzY19jcmVhdG9y", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWl0ZW0ubWluZWNyYWZ0Lm11c2ljX2Rpc2NfY3JlYXRvcgA=", + "minecraft:jukebox_playable": "NAARbWluZWNyYWZ0OmNyZWF0b3IB", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQI=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1225, + "key": "minecraft:music_disc_creator_music_box", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByZtaW5lY3JhZnQ6bXVzaWNfZGlzY19jcmVhdG9yX211c2ljX2JveA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAK2l0ZW0ubWluZWNyYWZ0Lm11c2ljX2Rpc2NfY3JlYXRvcl9tdXNpY19ib3gA", + "minecraft:jukebox_playable": "NAAbbWluZWNyYWZ0OmNyZWF0b3JfbXVzaWNfYm94AQ==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQE=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1226, + "key": "minecraft:music_disc_far", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxhtaW5lY3JhZnQ6bXVzaWNfZGlzY19mYXI=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWl0ZW0ubWluZWNyYWZ0Lm11c2ljX2Rpc2NfZmFyAA==", + "minecraft:jukebox_playable": "NAANbWluZWNyYWZ0OmZhcgE=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQE=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1227, + "key": "minecraft:music_disc_mall", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxltaW5lY3JhZnQ6bXVzaWNfZGlzY19tYWxs", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHml0ZW0ubWluZWNyYWZ0Lm11c2ljX2Rpc2NfbWFsbAA=", + "minecraft:jukebox_playable": "NAAObWluZWNyYWZ0Om1hbGwB", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQE=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1228, + "key": "minecraft:music_disc_mellohi", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxxtaW5lY3JhZnQ6bXVzaWNfZGlzY19tZWxsb2hp", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWl0ZW0ubWluZWNyYWZ0Lm11c2ljX2Rpc2NfbWVsbG9oaQA=", + "minecraft:jukebox_playable": "NAARbWluZWNyYWZ0Om1lbGxvaGkB", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQE=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1229, + "key": "minecraft:music_disc_stal", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxltaW5lY3JhZnQ6bXVzaWNfZGlzY19zdGFs", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHml0ZW0ubWluZWNyYWZ0Lm11c2ljX2Rpc2Nfc3RhbAA=", + "minecraft:jukebox_playable": "NAAObWluZWNyYWZ0OnN0YWwB", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQE=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1230, + "key": "minecraft:music_disc_strad", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxptaW5lY3JhZnQ6bXVzaWNfZGlzY19zdHJhZA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2l0ZW0ubWluZWNyYWZ0Lm11c2ljX2Rpc2Nfc3RyYWQA", + "minecraft:jukebox_playable": "NAAPbWluZWNyYWZ0OnN0cmFkAQ==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQE=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1231, + "key": "minecraft:music_disc_ward", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxltaW5lY3JhZnQ6bXVzaWNfZGlzY193YXJk", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHml0ZW0ubWluZWNyYWZ0Lm11c2ljX2Rpc2Nfd2FyZAA=", + "minecraft:jukebox_playable": "NAAObWluZWNyYWZ0OndhcmQB", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQE=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1232, + "key": "minecraft:music_disc_11", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6bXVzaWNfZGlzY18xMQ==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGl0ZW0ubWluZWNyYWZ0Lm11c2ljX2Rpc2NfMTEA", + "minecraft:jukebox_playable": "NAAMbWluZWNyYWZ0OjExAQ==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQE=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1233, + "key": "minecraft:music_disc_wait", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxltaW5lY3JhZnQ6bXVzaWNfZGlzY193YWl0", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHml0ZW0ubWluZWNyYWZ0Lm11c2ljX2Rpc2Nfd2FpdAA=", + "minecraft:jukebox_playable": "NAAObWluZWNyYWZ0OndhaXQB", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQE=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1234, + "key": "minecraft:music_disc_otherside", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx5taW5lY3JhZnQ6bXVzaWNfZGlzY19vdGhlcnNpZGU=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2l0ZW0ubWluZWNyYWZ0Lm11c2ljX2Rpc2Nfb3RoZXJzaWRlAA==", + "minecraft:jukebox_playable": "NAATbWluZWNyYWZ0Om90aGVyc2lkZQE=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQI=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1235, + "key": "minecraft:music_disc_relic", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxptaW5lY3JhZnQ6bXVzaWNfZGlzY19yZWxpYw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2l0ZW0ubWluZWNyYWZ0Lm11c2ljX2Rpc2NfcmVsaWMA", + "minecraft:jukebox_playable": "NAAPbWluZWNyYWZ0OnJlbGljAQ==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQE=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1236, + "key": "minecraft:music_disc_5", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxZtaW5lY3JhZnQ6bXVzaWNfZGlzY181", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2l0ZW0ubWluZWNyYWZ0Lm11c2ljX2Rpc2NfNQA=", + "minecraft:jukebox_playable": "NAALbWluZWNyYWZ0OjUB", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQE=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1237, + "key": "minecraft:music_disc_pigstep", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxxtaW5lY3JhZnQ6bXVzaWNfZGlzY19waWdzdGVw", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWl0ZW0ubWluZWNyYWZ0Lm11c2ljX2Rpc2NfcGlnc3RlcAA=", + "minecraft:jukebox_playable": "NAARbWluZWNyYWZ0OnBpZ3N0ZXAB", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQI=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1238, + "key": "minecraft:music_disc_precipice", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx5taW5lY3JhZnQ6bXVzaWNfZGlzY19wcmVjaXBpY2U=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2l0ZW0ubWluZWNyYWZ0Lm11c2ljX2Rpc2NfcHJlY2lwaWNlAA==", + "minecraft:jukebox_playable": "NAATbWluZWNyYWZ0OnByZWNpcGljZQE=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQE=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1239, + "key": "minecraft:disc_fragment_5", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxltaW5lY3JhZnQ6ZGlzY19mcmFnbWVudF81", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHml0ZW0ubWluZWNyYWZ0LmRpc2NfZnJhZ21lbnRfNQA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQE=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1240, + "key": "minecraft:trident", + "components": { + "minecraft:attribute_modifiers": "DQICHG1pbmVjcmFmdDpiYXNlX2F0dGFja19kYW1hZ2VAIAAAAAAAAAABBBttaW5lY3JhZnQ6YmFzZV9hdHRhY2tfc3BlZWTABzMzQAAAAAABAQ==", + "minecraft:damage": "AwA=", + "minecraft:enchantable": "GwE=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxFtaW5lY3JhZnQ6dHJpZGVudA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFml0ZW0ubWluZWNyYWZ0LnRyaWRlbnQA", + "minecraft:lore": "CAA=", + "minecraft:max_damage": "AvoB", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQI=", + "minecraft:repair_cost": "EQA=", + "minecraft:tool": "GgA/gAAAAg==" + } + }, + { + "id": 1241, + "key": "minecraft:nautilus_shell", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxhtaW5lY3JhZnQ6bmF1dGlsdXNfc2hlbGw=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWl0ZW0ubWluZWNyYWZ0Lm5hdXRpbHVzX3NoZWxsAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQE=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1242, + "key": "minecraft:heart_of_the_sea", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxptaW5lY3JhZnQ6aGVhcnRfb2ZfdGhlX3NlYQ==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2l0ZW0ubWluZWNyYWZ0LmhlYXJ0X29mX3RoZV9zZWEA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQE=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1243, + "key": "minecraft:crossbow", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:charged_projectiles": "JwA=", + "minecraft:damage": "AwA=", + "minecraft:enchantable": "GwE=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxJtaW5lY3JhZnQ6Y3Jvc3Nib3c=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAF2l0ZW0ubWluZWNyYWZ0LmNyb3NzYm93AA==", + "minecraft:lore": "CAA=", + "minecraft:max_damage": "AtED", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1244, + "key": "minecraft:suspicious_stew", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:consumable": "Fj/MzM0B2gQBAA==", + "minecraft:enchantments": "CgAB", + "minecraft:food": "FQZA5mZnAQ==", + "minecraft:item_model": "BxltaW5lY3JhZnQ6c3VzcGljaW91c19zdGV3", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHml0ZW0ubWluZWNyYWZ0LnN1c3BpY2lvdXNfc3RldwA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=", + "minecraft:suspicious_stew_effects": "KgA=", + "minecraft:use_remainder": "FwG+BgAA" + } + }, + { + "id": 1245, + "key": "minecraft:loom", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bw5taW5lY3JhZnQ6bG9vbQ==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFGJsb2NrLm1pbmVjcmFmdC5sb29tAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1246, + "key": "minecraft:flower_banner_pattern", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx9taW5lY3JhZnQ6Zmxvd2VyX2Jhbm5lcl9wYXR0ZXJu", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJGl0ZW0ubWluZWNyYWZ0LmZsb3dlcl9iYW5uZXJfcGF0dGVybgA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1247, + "key": "minecraft:creeper_banner_pattern", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByBtaW5lY3JhZnQ6Y3JlZXBlcl9iYW5uZXJfcGF0dGVybg==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWl0ZW0ubWluZWNyYWZ0LmNyZWVwZXJfYmFubmVyX3BhdHRlcm4A", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQE=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1248, + "key": "minecraft:skull_banner_pattern", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx5taW5lY3JhZnQ6c2t1bGxfYmFubmVyX3BhdHRlcm4=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2l0ZW0ubWluZWNyYWZ0LnNrdWxsX2Jhbm5lcl9wYXR0ZXJuAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQI=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1249, + "key": "minecraft:mojang_banner_pattern", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx9taW5lY3JhZnQ6bW9qYW5nX2Jhbm5lcl9wYXR0ZXJu", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJGl0ZW0ubWluZWNyYWZ0Lm1vamFuZ19iYW5uZXJfcGF0dGVybgA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQI=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1250, + "key": "minecraft:globe_banner_pattern", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx5taW5lY3JhZnQ6Z2xvYmVfYmFubmVyX3BhdHRlcm4=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2l0ZW0ubWluZWNyYWZ0Lmdsb2JlX2Jhbm5lcl9wYXR0ZXJuAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1251, + "key": "minecraft:piglin_banner_pattern", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx9taW5lY3JhZnQ6cGlnbGluX2Jhbm5lcl9wYXR0ZXJu", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJGl0ZW0ubWluZWNyYWZ0LnBpZ2xpbl9iYW5uZXJfcGF0dGVybgA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQE=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1252, + "key": "minecraft:flow_banner_pattern", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx1taW5lY3JhZnQ6Zmxvd19iYW5uZXJfcGF0dGVybg==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIml0ZW0ubWluZWNyYWZ0LmZsb3dfYmFubmVyX3BhdHRlcm4A", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQI=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1253, + "key": "minecraft:guster_banner_pattern", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx9taW5lY3JhZnQ6Z3VzdGVyX2Jhbm5lcl9wYXR0ZXJu", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJGl0ZW0ubWluZWNyYWZ0Lmd1c3Rlcl9iYW5uZXJfcGF0dGVybgA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQI=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1254, + "key": "minecraft:field_masoned_banner_pattern", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByZtaW5lY3JhZnQ6ZmllbGRfbWFzb25lZF9iYW5uZXJfcGF0dGVybg==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAK2l0ZW0ubWluZWNyYWZ0LmZpZWxkX21hc29uZWRfYmFubmVyX3BhdHRlcm4A", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1255, + "key": "minecraft:bordure_indented_banner_pattern", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByltaW5lY3JhZnQ6Ym9yZHVyZV9pbmRlbnRlZF9iYW5uZXJfcGF0dGVybg==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUALml0ZW0ubWluZWNyYWZ0LmJvcmR1cmVfaW5kZW50ZWRfYmFubmVyX3BhdHRlcm4A", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1256, + "key": "minecraft:goat_horn", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxNtaW5lY3JhZnQ6Z29hdF9ob3Ju", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGGl0ZW0ubWluZWNyYWZ0LmdvYXRfaG9ybgA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQE=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1257, + "key": "minecraft:composter", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxNtaW5lY3JhZnQ6Y29tcG9zdGVy", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGWJsb2NrLm1pbmVjcmFmdC5jb21wb3N0ZXIA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1258, + "key": "minecraft:barrel", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:container": "PgA=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxBtaW5lY3JhZnQ6YmFycmVs", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFmJsb2NrLm1pbmVjcmFmdC5iYXJyZWwA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1259, + "key": "minecraft:smoker", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:container": "PgA=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxBtaW5lY3JhZnQ6c21va2Vy", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFmJsb2NrLm1pbmVjcmFmdC5zbW9rZXIA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1260, + "key": "minecraft:blast_furnace", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:container": "PgA=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6Ymxhc3RfZnVybmFjZQ==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5ibGFzdF9mdXJuYWNlAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1261, + "key": "minecraft:cartography_table", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxttaW5lY3JhZnQ6Y2FydG9ncmFwaHlfdGFibGU=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWJsb2NrLm1pbmVjcmFmdC5jYXJ0b2dyYXBoeV90YWJsZQA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1262, + "key": "minecraft:fletching_table", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxltaW5lY3JhZnQ6ZmxldGNoaW5nX3RhYmxl", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC5mbGV0Y2hpbmdfdGFibGUA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1263, + "key": "minecraft:grindstone", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxRtaW5lY3JhZnQ6Z3JpbmRzdG9uZQ==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC5ncmluZHN0b25lAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1264, + "key": "minecraft:smithing_table", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxhtaW5lY3JhZnQ6c21pdGhpbmdfdGFibGU=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC5zbWl0aGluZ190YWJsZQA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1265, + "key": "minecraft:stonecutter", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6c3RvbmVjdXR0ZXI=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5zdG9uZWN1dHRlcgA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1266, + "key": "minecraft:bell", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bw5taW5lY3JhZnQ6YmVsbA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFGJsb2NrLm1pbmVjcmFmdC5iZWxsAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1267, + "key": "minecraft:lantern", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxFtaW5lY3JhZnQ6bGFudGVybg==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAF2Jsb2NrLm1pbmVjcmFmdC5sYW50ZXJuAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1268, + "key": "minecraft:soul_lantern", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxZtaW5lY3JhZnQ6c291bF9sYW50ZXJu", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC5zb3VsX2xhbnRlcm4A", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1269, + "key": "minecraft:sweet_berries", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:consumable": "Fj/MzM0B2gQBAA==", + "minecraft:enchantments": "CgAB", + "minecraft:food": "FQI+zMzNAA==", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6c3dlZXRfYmVycmllcw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGl0ZW0ubWluZWNyYWZ0LnN3ZWV0X2JlcnJpZXMA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1270, + "key": "minecraft:glow_berries", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:consumable": "Fj/MzM0B2gQBAA==", + "minecraft:enchantments": "CgAB", + "minecraft:food": "FQI+zMzNAA==", + "minecraft:item_model": "BxZtaW5lY3JhZnQ6Z2xvd19iZXJyaWVz", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2l0ZW0ubWluZWNyYWZ0Lmdsb3dfYmVycmllcwA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1271, + "key": "minecraft:campfire", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:container": "PgA=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxJtaW5lY3JhZnQ6Y2FtcGZpcmU=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGGJsb2NrLm1pbmVjcmFmdC5jYW1wZmlyZQA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1272, + "key": "minecraft:soul_campfire", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:container": "PgA=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6c291bF9jYW1wZmlyZQ==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5zb3VsX2NhbXBmaXJlAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1273, + "key": "minecraft:shroomlight", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6c2hyb29tbGlnaHQ=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5zaHJvb21saWdodAA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1274, + "key": "minecraft:honeycomb", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxNtaW5lY3JhZnQ6aG9uZXljb21i", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGGl0ZW0ubWluZWNyYWZ0LmhvbmV5Y29tYgA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1275, + "key": "minecraft:bee_nest", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:bees": "QAA=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxJtaW5lY3JhZnQ6YmVlX25lc3Q=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGGJsb2NrLm1pbmVjcmFmdC5iZWVfbmVzdAA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1276, + "key": "minecraft:beehive", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:bees": "QAA=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxFtaW5lY3JhZnQ6YmVlaGl2ZQ==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAF2Jsb2NrLm1pbmVjcmFmdC5iZWVoaXZlAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1277, + "key": "minecraft:honey_bottle", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:consumable": "FkAAAAAC2gUAAQECEg==", + "minecraft:enchantments": "CgAB", + "minecraft:food": "FQY/mZmaAQ==", + "minecraft:item_model": "BxZtaW5lY3JhZnQ6aG9uZXlfYm90dGxl", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2l0ZW0ubWluZWNyYWZ0LmhvbmV5X2JvdHRsZQA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "ARA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=", + "minecraft:use_remainder": "FwGXCAAA" + } + }, + { + "id": 1278, + "key": "minecraft:honeycomb_block", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxltaW5lY3JhZnQ6aG9uZXljb21iX2Jsb2Nr", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC5ob25leWNvbWJfYmxvY2sA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1279, + "key": "minecraft:lodestone", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxNtaW5lY3JhZnQ6bG9kZXN0b25l", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGWJsb2NrLm1pbmVjcmFmdC5sb2Rlc3RvbmUA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1280, + "key": "minecraft:crying_obsidian", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxltaW5lY3JhZnQ6Y3J5aW5nX29ic2lkaWFu", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC5jcnlpbmdfb2JzaWRpYW4A", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1281, + "key": "minecraft:blackstone", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxRtaW5lY3JhZnQ6YmxhY2tzdG9uZQ==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC5ibGFja3N0b25lAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1282, + "key": "minecraft:blackstone_slab", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxltaW5lY3JhZnQ6YmxhY2tzdG9uZV9zbGFi", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC5ibGFja3N0b25lX3NsYWIA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1283, + "key": "minecraft:blackstone_stairs", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxttaW5lY3JhZnQ6YmxhY2tzdG9uZV9zdGFpcnM=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWJsb2NrLm1pbmVjcmFmdC5ibGFja3N0b25lX3N0YWlycwA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1284, + "key": "minecraft:gilded_blackstone", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxttaW5lY3JhZnQ6Z2lsZGVkX2JsYWNrc3RvbmU=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWJsb2NrLm1pbmVjcmFmdC5naWxkZWRfYmxhY2tzdG9uZQA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1285, + "key": "minecraft:polished_blackstone", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx1taW5lY3JhZnQ6cG9saXNoZWRfYmxhY2tzdG9uZQ==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2Jsb2NrLm1pbmVjcmFmdC5wb2xpc2hlZF9ibGFja3N0b25lAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1286, + "key": "minecraft:polished_blackstone_slab", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByJtaW5lY3JhZnQ6cG9saXNoZWRfYmxhY2tzdG9uZV9zbGFi", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAKGJsb2NrLm1pbmVjcmFmdC5wb2xpc2hlZF9ibGFja3N0b25lX3NsYWIA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1287, + "key": "minecraft:polished_blackstone_stairs", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByRtaW5lY3JhZnQ6cG9saXNoZWRfYmxhY2tzdG9uZV9zdGFpcnM=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAKmJsb2NrLm1pbmVjcmFmdC5wb2xpc2hlZF9ibGFja3N0b25lX3N0YWlycwA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1288, + "key": "minecraft:chiseled_polished_blackstone", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByZtaW5lY3JhZnQ6Y2hpc2VsZWRfcG9saXNoZWRfYmxhY2tzdG9uZQ==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUALGJsb2NrLm1pbmVjcmFmdC5jaGlzZWxlZF9wb2xpc2hlZF9ibGFja3N0b25lAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1289, + "key": "minecraft:polished_blackstone_bricks", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByRtaW5lY3JhZnQ6cG9saXNoZWRfYmxhY2tzdG9uZV9icmlja3M=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAKmJsb2NrLm1pbmVjcmFmdC5wb2xpc2hlZF9ibGFja3N0b25lX2JyaWNrcwA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1290, + "key": "minecraft:polished_blackstone_brick_slab", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByhtaW5lY3JhZnQ6cG9saXNoZWRfYmxhY2tzdG9uZV9icmlja19zbGFi", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUALmJsb2NrLm1pbmVjcmFmdC5wb2xpc2hlZF9ibGFja3N0b25lX2JyaWNrX3NsYWIA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1291, + "key": "minecraft:polished_blackstone_brick_stairs", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByptaW5lY3JhZnQ6cG9saXNoZWRfYmxhY2tzdG9uZV9icmlja19zdGFpcnM=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAMGJsb2NrLm1pbmVjcmFmdC5wb2xpc2hlZF9ibGFja3N0b25lX2JyaWNrX3N0YWlycwA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1292, + "key": "minecraft:cracked_polished_blackstone_bricks", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByxtaW5lY3JhZnQ6Y3JhY2tlZF9wb2xpc2hlZF9ibGFja3N0b25lX2JyaWNrcw==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAMmJsb2NrLm1pbmVjcmFmdC5jcmFja2VkX3BvbGlzaGVkX2JsYWNrc3RvbmVfYnJpY2tzAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1293, + "key": "minecraft:respawn_anchor", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxhtaW5lY3JhZnQ6cmVzcGF3bl9hbmNob3I=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC5yZXNwYXduX2FuY2hvcgA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1294, + "key": "minecraft:candle", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxBtaW5lY3JhZnQ6Y2FuZGxl", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFmJsb2NrLm1pbmVjcmFmdC5jYW5kbGUA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1295, + "key": "minecraft:white_candle", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxZtaW5lY3JhZnQ6d2hpdGVfY2FuZGxl", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC53aGl0ZV9jYW5kbGUA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1296, + "key": "minecraft:orange_candle", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6b3JhbmdlX2NhbmRsZQ==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5vcmFuZ2VfY2FuZGxlAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1297, + "key": "minecraft:magenta_candle", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxhtaW5lY3JhZnQ6bWFnZW50YV9jYW5kbGU=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC5tYWdlbnRhX2NhbmRsZQA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1298, + "key": "minecraft:light_blue_candle", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxttaW5lY3JhZnQ6bGlnaHRfYmx1ZV9jYW5kbGU=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWJsb2NrLm1pbmVjcmFmdC5saWdodF9ibHVlX2NhbmRsZQA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1299, + "key": "minecraft:yellow_candle", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6eWVsbG93X2NhbmRsZQ==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC55ZWxsb3dfY2FuZGxlAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1300, + "key": "minecraft:lime_candle", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6bGltZV9jYW5kbGU=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5saW1lX2NhbmRsZQA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1301, + "key": "minecraft:pink_candle", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6cGlua19jYW5kbGU=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5waW5rX2NhbmRsZQA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1302, + "key": "minecraft:gray_candle", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6Z3JheV9jYW5kbGU=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5ncmF5X2NhbmRsZQA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1303, + "key": "minecraft:light_gray_candle", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxttaW5lY3JhZnQ6bGlnaHRfZ3JheV9jYW5kbGU=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWJsb2NrLm1pbmVjcmFmdC5saWdodF9ncmF5X2NhbmRsZQA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1304, + "key": "minecraft:cyan_candle", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6Y3lhbl9jYW5kbGU=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5jeWFuX2NhbmRsZQA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1305, + "key": "minecraft:purple_candle", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6cHVycGxlX2NhbmRsZQ==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5wdXJwbGVfY2FuZGxlAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1306, + "key": "minecraft:blue_candle", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6Ymx1ZV9jYW5kbGU=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5ibHVlX2NhbmRsZQA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1307, + "key": "minecraft:brown_candle", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxZtaW5lY3JhZnQ6YnJvd25fY2FuZGxl", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC5icm93bl9jYW5kbGUA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1308, + "key": "minecraft:green_candle", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxZtaW5lY3JhZnQ6Z3JlZW5fY2FuZGxl", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC5ncmVlbl9jYW5kbGUA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1309, + "key": "minecraft:red_candle", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxRtaW5lY3JhZnQ6cmVkX2NhbmRsZQ==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC5yZWRfY2FuZGxlAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1310, + "key": "minecraft:black_candle", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxZtaW5lY3JhZnQ6YmxhY2tfY2FuZGxl", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC5ibGFja19jYW5kbGUA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1311, + "key": "minecraft:small_amethyst_bud", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxxtaW5lY3JhZnQ6c21hbGxfYW1ldGh5c3RfYnVk", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAImJsb2NrLm1pbmVjcmFmdC5zbWFsbF9hbWV0aHlzdF9idWQA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1312, + "key": "minecraft:medium_amethyst_bud", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx1taW5lY3JhZnQ6bWVkaXVtX2FtZXRoeXN0X2J1ZA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2Jsb2NrLm1pbmVjcmFmdC5tZWRpdW1fYW1ldGh5c3RfYnVkAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1313, + "key": "minecraft:large_amethyst_bud", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxxtaW5lY3JhZnQ6bGFyZ2VfYW1ldGh5c3RfYnVk", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAImJsb2NrLm1pbmVjcmFmdC5sYXJnZV9hbWV0aHlzdF9idWQA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1314, + "key": "minecraft:amethyst_cluster", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxptaW5lY3JhZnQ6YW1ldGh5c3RfY2x1c3Rlcg==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGJsb2NrLm1pbmVjcmFmdC5hbWV0aHlzdF9jbHVzdGVyAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1315, + "key": "minecraft:pointed_dripstone", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxttaW5lY3JhZnQ6cG9pbnRlZF9kcmlwc3RvbmU=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWJsb2NrLm1pbmVjcmFmdC5wb2ludGVkX2RyaXBzdG9uZQA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1316, + "key": "minecraft:ochre_froglight", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxltaW5lY3JhZnQ6b2NocmVfZnJvZ2xpZ2h0", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC5vY2hyZV9mcm9nbGlnaHQA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1317, + "key": "minecraft:verdant_froglight", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxttaW5lY3JhZnQ6dmVyZGFudF9mcm9nbGlnaHQ=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWJsb2NrLm1pbmVjcmFmdC52ZXJkYW50X2Zyb2dsaWdodAA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1318, + "key": "minecraft:pearlescent_froglight", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx9taW5lY3JhZnQ6cGVhcmxlc2NlbnRfZnJvZ2xpZ2h0", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWJsb2NrLm1pbmVjcmFmdC5wZWFybGVzY2VudF9mcm9nbGlnaHQA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1319, + "key": "minecraft:frogspawn", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxNtaW5lY3JhZnQ6ZnJvZ3NwYXdu", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGWJsb2NrLm1pbmVjcmFmdC5mcm9nc3Bhd24A", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1320, + "key": "minecraft:echo_shard", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxRtaW5lY3JhZnQ6ZWNob19zaGFyZA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGWl0ZW0ubWluZWNyYWZ0LmVjaG9fc2hhcmQA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQE=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1321, + "key": "minecraft:brush", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:damage": "AwA=", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bw9taW5lY3JhZnQ6YnJ1c2g=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFGl0ZW0ubWluZWNyYWZ0LmJydXNoAA==", + "minecraft:lore": "CAA=", + "minecraft:max_damage": "AkA=", + "minecraft:max_stack_size": "AQE=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1322, + "key": "minecraft:netherite_upgrade_smithing_template", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "By1taW5lY3JhZnQ6bmV0aGVyaXRlX3VwZ3JhZGVfc21pdGhpbmdfdGVtcGxhdGU=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAMml0ZW0ubWluZWNyYWZ0Lm5ldGhlcml0ZV91cGdyYWRlX3NtaXRoaW5nX3RlbXBsYXRlAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQE=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1323, + "key": "minecraft:sentry_armor_trim_smithing_template", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "By1taW5lY3JhZnQ6c2VudHJ5X2FybW9yX3RyaW1fc21pdGhpbmdfdGVtcGxhdGU=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAMml0ZW0ubWluZWNyYWZ0LnNlbnRyeV9hcm1vcl90cmltX3NtaXRoaW5nX3RlbXBsYXRlAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQE=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1324, + "key": "minecraft:dune_armor_trim_smithing_template", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByttaW5lY3JhZnQ6ZHVuZV9hcm1vcl90cmltX3NtaXRoaW5nX3RlbXBsYXRl", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAMGl0ZW0ubWluZWNyYWZ0LmR1bmVfYXJtb3JfdHJpbV9zbWl0aGluZ190ZW1wbGF0ZQA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQE=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1325, + "key": "minecraft:coast_armor_trim_smithing_template", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByxtaW5lY3JhZnQ6Y29hc3RfYXJtb3JfdHJpbV9zbWl0aGluZ190ZW1wbGF0ZQ==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAMWl0ZW0ubWluZWNyYWZ0LmNvYXN0X2FybW9yX3RyaW1fc21pdGhpbmdfdGVtcGxhdGUA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQE=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1326, + "key": "minecraft:wild_armor_trim_smithing_template", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByttaW5lY3JhZnQ6d2lsZF9hcm1vcl90cmltX3NtaXRoaW5nX3RlbXBsYXRl", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAMGl0ZW0ubWluZWNyYWZ0LndpbGRfYXJtb3JfdHJpbV9zbWl0aGluZ190ZW1wbGF0ZQA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQE=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1327, + "key": "minecraft:ward_armor_trim_smithing_template", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByttaW5lY3JhZnQ6d2FyZF9hcm1vcl90cmltX3NtaXRoaW5nX3RlbXBsYXRl", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAMGl0ZW0ubWluZWNyYWZ0LndhcmRfYXJtb3JfdHJpbV9zbWl0aGluZ190ZW1wbGF0ZQA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQI=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1328, + "key": "minecraft:eye_armor_trim_smithing_template", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByptaW5lY3JhZnQ6ZXllX2FybW9yX3RyaW1fc21pdGhpbmdfdGVtcGxhdGU=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAL2l0ZW0ubWluZWNyYWZ0LmV5ZV9hcm1vcl90cmltX3NtaXRoaW5nX3RlbXBsYXRlAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQI=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1329, + "key": "minecraft:vex_armor_trim_smithing_template", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByptaW5lY3JhZnQ6dmV4X2FybW9yX3RyaW1fc21pdGhpbmdfdGVtcGxhdGU=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAL2l0ZW0ubWluZWNyYWZ0LnZleF9hcm1vcl90cmltX3NtaXRoaW5nX3RlbXBsYXRlAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQI=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1330, + "key": "minecraft:tide_armor_trim_smithing_template", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByttaW5lY3JhZnQ6dGlkZV9hcm1vcl90cmltX3NtaXRoaW5nX3RlbXBsYXRl", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAMGl0ZW0ubWluZWNyYWZ0LnRpZGVfYXJtb3JfdHJpbV9zbWl0aGluZ190ZW1wbGF0ZQA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQE=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1331, + "key": "minecraft:snout_armor_trim_smithing_template", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByxtaW5lY3JhZnQ6c25vdXRfYXJtb3JfdHJpbV9zbWl0aGluZ190ZW1wbGF0ZQ==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAMWl0ZW0ubWluZWNyYWZ0LnNub3V0X2FybW9yX3RyaW1fc21pdGhpbmdfdGVtcGxhdGUA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQE=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1332, + "key": "minecraft:rib_armor_trim_smithing_template", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByptaW5lY3JhZnQ6cmliX2FybW9yX3RyaW1fc21pdGhpbmdfdGVtcGxhdGU=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAL2l0ZW0ubWluZWNyYWZ0LnJpYl9hcm1vcl90cmltX3NtaXRoaW5nX3RlbXBsYXRlAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQE=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1333, + "key": "minecraft:spire_armor_trim_smithing_template", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByxtaW5lY3JhZnQ6c3BpcmVfYXJtb3JfdHJpbV9zbWl0aGluZ190ZW1wbGF0ZQ==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAMWl0ZW0ubWluZWNyYWZ0LnNwaXJlX2FybW9yX3RyaW1fc21pdGhpbmdfdGVtcGxhdGUA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQI=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1334, + "key": "minecraft:wayfinder_armor_trim_smithing_template", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BzBtaW5lY3JhZnQ6d2F5ZmluZGVyX2FybW9yX3RyaW1fc21pdGhpbmdfdGVtcGxhdGU=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUANWl0ZW0ubWluZWNyYWZ0LndheWZpbmRlcl9hcm1vcl90cmltX3NtaXRoaW5nX3RlbXBsYXRlAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQE=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1335, + "key": "minecraft:shaper_armor_trim_smithing_template", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "By1taW5lY3JhZnQ6c2hhcGVyX2FybW9yX3RyaW1fc21pdGhpbmdfdGVtcGxhdGU=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAMml0ZW0ubWluZWNyYWZ0LnNoYXBlcl9hcm1vcl90cmltX3NtaXRoaW5nX3RlbXBsYXRlAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQE=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1336, + "key": "minecraft:silence_armor_trim_smithing_template", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "By5taW5lY3JhZnQ6c2lsZW5jZV9hcm1vcl90cmltX3NtaXRoaW5nX3RlbXBsYXRl", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAM2l0ZW0ubWluZWNyYWZ0LnNpbGVuY2VfYXJtb3JfdHJpbV9zbWl0aGluZ190ZW1wbGF0ZQA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQM=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1337, + "key": "minecraft:raiser_armor_trim_smithing_template", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "By1taW5lY3JhZnQ6cmFpc2VyX2FybW9yX3RyaW1fc21pdGhpbmdfdGVtcGxhdGU=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAMml0ZW0ubWluZWNyYWZ0LnJhaXNlcl9hcm1vcl90cmltX3NtaXRoaW5nX3RlbXBsYXRlAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQE=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1338, + "key": "minecraft:host_armor_trim_smithing_template", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByttaW5lY3JhZnQ6aG9zdF9hcm1vcl90cmltX3NtaXRoaW5nX3RlbXBsYXRl", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAMGl0ZW0ubWluZWNyYWZ0Lmhvc3RfYXJtb3JfdHJpbV9zbWl0aGluZ190ZW1wbGF0ZQA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQE=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1339, + "key": "minecraft:flow_armor_trim_smithing_template", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByttaW5lY3JhZnQ6Zmxvd19hcm1vcl90cmltX3NtaXRoaW5nX3RlbXBsYXRl", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAMGl0ZW0ubWluZWNyYWZ0LmZsb3dfYXJtb3JfdHJpbV9zbWl0aGluZ190ZW1wbGF0ZQA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQE=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1340, + "key": "minecraft:bolt_armor_trim_smithing_template", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByttaW5lY3JhZnQ6Ym9sdF9hcm1vcl90cmltX3NtaXRoaW5nX3RlbXBsYXRl", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAMGl0ZW0ubWluZWNyYWZ0LmJvbHRfYXJtb3JfdHJpbV9zbWl0aGluZ190ZW1wbGF0ZQA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQE=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1341, + "key": "minecraft:angler_pottery_sherd", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx5taW5lY3JhZnQ6YW5nbGVyX3BvdHRlcnlfc2hlcmQ=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2l0ZW0ubWluZWNyYWZ0LmFuZ2xlcl9wb3R0ZXJ5X3NoZXJkAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQE=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1342, + "key": "minecraft:archer_pottery_sherd", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx5taW5lY3JhZnQ6YXJjaGVyX3BvdHRlcnlfc2hlcmQ=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2l0ZW0ubWluZWNyYWZ0LmFyY2hlcl9wb3R0ZXJ5X3NoZXJkAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQE=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1343, + "key": "minecraft:arms_up_pottery_sherd", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx9taW5lY3JhZnQ6YXJtc191cF9wb3R0ZXJ5X3NoZXJk", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJGl0ZW0ubWluZWNyYWZ0LmFybXNfdXBfcG90dGVyeV9zaGVyZAA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQE=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1344, + "key": "minecraft:blade_pottery_sherd", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx1taW5lY3JhZnQ6YmxhZGVfcG90dGVyeV9zaGVyZA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIml0ZW0ubWluZWNyYWZ0LmJsYWRlX3BvdHRlcnlfc2hlcmQA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQE=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1345, + "key": "minecraft:brewer_pottery_sherd", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx5taW5lY3JhZnQ6YnJld2VyX3BvdHRlcnlfc2hlcmQ=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2l0ZW0ubWluZWNyYWZ0LmJyZXdlcl9wb3R0ZXJ5X3NoZXJkAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQE=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1346, + "key": "minecraft:burn_pottery_sherd", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxxtaW5lY3JhZnQ6YnVybl9wb3R0ZXJ5X3NoZXJk", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWl0ZW0ubWluZWNyYWZ0LmJ1cm5fcG90dGVyeV9zaGVyZAA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQE=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1347, + "key": "minecraft:danger_pottery_sherd", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx5taW5lY3JhZnQ6ZGFuZ2VyX3BvdHRlcnlfc2hlcmQ=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2l0ZW0ubWluZWNyYWZ0LmRhbmdlcl9wb3R0ZXJ5X3NoZXJkAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQE=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1348, + "key": "minecraft:explorer_pottery_sherd", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByBtaW5lY3JhZnQ6ZXhwbG9yZXJfcG90dGVyeV9zaGVyZA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWl0ZW0ubWluZWNyYWZ0LmV4cGxvcmVyX3BvdHRlcnlfc2hlcmQA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQE=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1349, + "key": "minecraft:flow_pottery_sherd", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxxtaW5lY3JhZnQ6Zmxvd19wb3R0ZXJ5X3NoZXJk", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWl0ZW0ubWluZWNyYWZ0LmZsb3dfcG90dGVyeV9zaGVyZAA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQE=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1350, + "key": "minecraft:friend_pottery_sherd", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx5taW5lY3JhZnQ6ZnJpZW5kX3BvdHRlcnlfc2hlcmQ=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2l0ZW0ubWluZWNyYWZ0LmZyaWVuZF9wb3R0ZXJ5X3NoZXJkAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQE=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1351, + "key": "minecraft:guster_pottery_sherd", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx5taW5lY3JhZnQ6Z3VzdGVyX3BvdHRlcnlfc2hlcmQ=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2l0ZW0ubWluZWNyYWZ0Lmd1c3Rlcl9wb3R0ZXJ5X3NoZXJkAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQE=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1352, + "key": "minecraft:heart_pottery_sherd", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx1taW5lY3JhZnQ6aGVhcnRfcG90dGVyeV9zaGVyZA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIml0ZW0ubWluZWNyYWZ0LmhlYXJ0X3BvdHRlcnlfc2hlcmQA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQE=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1353, + "key": "minecraft:heartbreak_pottery_sherd", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByJtaW5lY3JhZnQ6aGVhcnRicmVha19wb3R0ZXJ5X3NoZXJk", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJ2l0ZW0ubWluZWNyYWZ0LmhlYXJ0YnJlYWtfcG90dGVyeV9zaGVyZAA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQE=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1354, + "key": "minecraft:howl_pottery_sherd", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxxtaW5lY3JhZnQ6aG93bF9wb3R0ZXJ5X3NoZXJk", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWl0ZW0ubWluZWNyYWZ0Lmhvd2xfcG90dGVyeV9zaGVyZAA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQE=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1355, + "key": "minecraft:miner_pottery_sherd", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx1taW5lY3JhZnQ6bWluZXJfcG90dGVyeV9zaGVyZA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIml0ZW0ubWluZWNyYWZ0Lm1pbmVyX3BvdHRlcnlfc2hlcmQA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQE=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1356, + "key": "minecraft:mourner_pottery_sherd", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx9taW5lY3JhZnQ6bW91cm5lcl9wb3R0ZXJ5X3NoZXJk", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJGl0ZW0ubWluZWNyYWZ0Lm1vdXJuZXJfcG90dGVyeV9zaGVyZAA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQE=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1357, + "key": "minecraft:plenty_pottery_sherd", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx5taW5lY3JhZnQ6cGxlbnR5X3BvdHRlcnlfc2hlcmQ=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2l0ZW0ubWluZWNyYWZ0LnBsZW50eV9wb3R0ZXJ5X3NoZXJkAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQE=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1358, + "key": "minecraft:prize_pottery_sherd", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx1taW5lY3JhZnQ6cHJpemVfcG90dGVyeV9zaGVyZA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIml0ZW0ubWluZWNyYWZ0LnByaXplX3BvdHRlcnlfc2hlcmQA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQE=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1359, + "key": "minecraft:scrape_pottery_sherd", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx5taW5lY3JhZnQ6c2NyYXBlX3BvdHRlcnlfc2hlcmQ=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2l0ZW0ubWluZWNyYWZ0LnNjcmFwZV9wb3R0ZXJ5X3NoZXJkAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQE=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1360, + "key": "minecraft:sheaf_pottery_sherd", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx1taW5lY3JhZnQ6c2hlYWZfcG90dGVyeV9zaGVyZA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIml0ZW0ubWluZWNyYWZ0LnNoZWFmX3BvdHRlcnlfc2hlcmQA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQE=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1361, + "key": "minecraft:shelter_pottery_sherd", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx9taW5lY3JhZnQ6c2hlbHRlcl9wb3R0ZXJ5X3NoZXJk", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJGl0ZW0ubWluZWNyYWZ0LnNoZWx0ZXJfcG90dGVyeV9zaGVyZAA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQE=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1362, + "key": "minecraft:skull_pottery_sherd", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx1taW5lY3JhZnQ6c2t1bGxfcG90dGVyeV9zaGVyZA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIml0ZW0ubWluZWNyYWZ0LnNrdWxsX3BvdHRlcnlfc2hlcmQA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQE=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1363, + "key": "minecraft:snort_pottery_sherd", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx1taW5lY3JhZnQ6c25vcnRfcG90dGVyeV9zaGVyZA==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIml0ZW0ubWluZWNyYWZ0LnNub3J0X3BvdHRlcnlfc2hlcmQA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQE=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1364, + "key": "minecraft:copper_grate", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxZtaW5lY3JhZnQ6Y29wcGVyX2dyYXRl", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC5jb3BwZXJfZ3JhdGUA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1365, + "key": "minecraft:exposed_copper_grate", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx5taW5lY3JhZnQ6ZXhwb3NlZF9jb3BwZXJfZ3JhdGU=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJGJsb2NrLm1pbmVjcmFmdC5leHBvc2VkX2NvcHBlcl9ncmF0ZQA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1366, + "key": "minecraft:weathered_copper_grate", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByBtaW5lY3JhZnQ6d2VhdGhlcmVkX2NvcHBlcl9ncmF0ZQ==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJmJsb2NrLm1pbmVjcmFmdC53ZWF0aGVyZWRfY29wcGVyX2dyYXRlAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1367, + "key": "minecraft:oxidized_copper_grate", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx9taW5lY3JhZnQ6b3hpZGl6ZWRfY29wcGVyX2dyYXRl", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWJsb2NrLm1pbmVjcmFmdC5veGlkaXplZF9jb3BwZXJfZ3JhdGUA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1368, + "key": "minecraft:waxed_copper_grate", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxxtaW5lY3JhZnQ6d2F4ZWRfY29wcGVyX2dyYXRl", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAImJsb2NrLm1pbmVjcmFmdC53YXhlZF9jb3BwZXJfZ3JhdGUA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1369, + "key": "minecraft:waxed_exposed_copper_grate", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByRtaW5lY3JhZnQ6d2F4ZWRfZXhwb3NlZF9jb3BwZXJfZ3JhdGU=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAKmJsb2NrLm1pbmVjcmFmdC53YXhlZF9leHBvc2VkX2NvcHBlcl9ncmF0ZQA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1370, + "key": "minecraft:waxed_weathered_copper_grate", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByZtaW5lY3JhZnQ6d2F4ZWRfd2VhdGhlcmVkX2NvcHBlcl9ncmF0ZQ==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUALGJsb2NrLm1pbmVjcmFmdC53YXhlZF93ZWF0aGVyZWRfY29wcGVyX2dyYXRlAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1371, + "key": "minecraft:waxed_oxidized_copper_grate", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByVtaW5lY3JhZnQ6d2F4ZWRfb3hpZGl6ZWRfY29wcGVyX2dyYXRl", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAK2Jsb2NrLm1pbmVjcmFmdC53YXhlZF9veGlkaXplZF9jb3BwZXJfZ3JhdGUA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1372, + "key": "minecraft:copper_bulb", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxVtaW5lY3JhZnQ6Y29wcGVyX2J1bGI=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5jb3BwZXJfYnVsYgA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1373, + "key": "minecraft:exposed_copper_bulb", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx1taW5lY3JhZnQ6ZXhwb3NlZF9jb3BwZXJfYnVsYg==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2Jsb2NrLm1pbmVjcmFmdC5leHBvc2VkX2NvcHBlcl9idWxiAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1374, + "key": "minecraft:weathered_copper_bulb", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx9taW5lY3JhZnQ6d2VhdGhlcmVkX2NvcHBlcl9idWxi", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWJsb2NrLm1pbmVjcmFmdC53ZWF0aGVyZWRfY29wcGVyX2J1bGIA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1375, + "key": "minecraft:oxidized_copper_bulb", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bx5taW5lY3JhZnQ6b3hpZGl6ZWRfY29wcGVyX2J1bGI=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJGJsb2NrLm1pbmVjcmFmdC5veGlkaXplZF9jb3BwZXJfYnVsYgA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1376, + "key": "minecraft:waxed_copper_bulb", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxttaW5lY3JhZnQ6d2F4ZWRfY29wcGVyX2J1bGI=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWJsb2NrLm1pbmVjcmFmdC53YXhlZF9jb3BwZXJfYnVsYgA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1377, + "key": "minecraft:waxed_exposed_copper_bulb", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByNtaW5lY3JhZnQ6d2F4ZWRfZXhwb3NlZF9jb3BwZXJfYnVsYg==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAKWJsb2NrLm1pbmVjcmFmdC53YXhlZF9leHBvc2VkX2NvcHBlcl9idWxiAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1378, + "key": "minecraft:waxed_weathered_copper_bulb", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByVtaW5lY3JhZnQ6d2F4ZWRfd2VhdGhlcmVkX2NvcHBlcl9idWxi", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAK2Jsb2NrLm1pbmVjcmFmdC53YXhlZF93ZWF0aGVyZWRfY29wcGVyX2J1bGIA", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1379, + "key": "minecraft:waxed_oxidized_copper_bulb", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "ByRtaW5lY3JhZnQ6d2F4ZWRfb3hpZGl6ZWRfY29wcGVyX2J1bGI=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAKmJsb2NrLm1pbmVjcmFmdC53YXhlZF9veGlkaXplZF9jb3BwZXJfYnVsYgA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1380, + "key": "minecraft:trial_spawner", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxdtaW5lY3JhZnQ6dHJpYWxfc3Bhd25lcg==", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC50cmlhbF9zcGF3bmVyAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1381, + "key": "minecraft:trial_key", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxNtaW5lY3JhZnQ6dHJpYWxfa2V5", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGGl0ZW0ubWluZWNyYWZ0LnRyaWFsX2tleQA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1382, + "key": "minecraft:ominous_trial_key", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxttaW5lY3JhZnQ6b21pbm91c190cmlhbF9rZXk=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGl0ZW0ubWluZWNyYWZ0Lm9taW5vdXNfdHJpYWxfa2V5AA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1383, + "key": "minecraft:vault", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "Bw9taW5lY3JhZnQ6dmF1bHQ=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFWJsb2NrLm1pbmVjcmFmdC52YXVsdAA=", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:rarity": "CQA=", + "minecraft:repair_cost": "EQA=" + } + }, + { + "id": 1384, + "key": "minecraft:ominous_bottle", + "components": { + "minecraft:attribute_modifiers": "DQAB", + "minecraft:consumable": "Fj/MzM0C2QQAAQSMCA==", + "minecraft:enchantments": "CgAB", + "minecraft:item_model": "BxhtaW5lY3JhZnQ6b21pbm91c19ib3R0bGU=", + "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWl0ZW0ubWluZWNyYWZ0Lm9taW5vdXNfYm90dGxlAA==", + "minecraft:lore": "CAA=", + "minecraft:max_stack_size": "AUA=", + "minecraft:ominous_bottle_amplifier": "MwA=", + "minecraft:rarity": "CQE=", + "minecraft:repair_cost": "EQA=" + } + } +] diff --git a/core/src/main/resources/mappings b/core/src/main/resources/mappings index e1eafe2c5..452312f88 160000 --- a/core/src/main/resources/mappings +++ b/core/src/main/resources/mappings @@ -1 +1 @@ -Subproject commit e1eafe2c5304012d23acba80659459f7868fe2b1 +Subproject commit 452312f88317cce019b8f336f485ffa7b2c19557 From 92c7f9895b7fb0055d93433e04727c90ce9d37f6 Mon Sep 17 00:00:00 2001 From: onebeastchris Date: Thu, 5 Dec 2024 20:45:56 +0800 Subject: [PATCH 14/31] Implement new boat types --- .../org/geysermc/geyser/entity/EntityDefinitions.java | 4 ++++ .../java/org/geysermc/geyser/entity/type/BoatEntity.java | 9 ++++++++- .../java/org/geysermc/geyser/network/GameProtocol.java | 5 +++++ .../protocol/java/level/JavaBlockEventTranslator.java | 5 +++++ gradle/libs.versions.toml | 2 +- 5 files changed, 23 insertions(+), 2 deletions(-) diff --git a/core/src/main/java/org/geysermc/geyser/entity/EntityDefinitions.java b/core/src/main/java/org/geysermc/geyser/entity/EntityDefinitions.java index f48cf4053..8e485e14b 100644 --- a/core/src/main/java/org/geysermc/geyser/entity/EntityDefinitions.java +++ b/core/src/main/java/org/geysermc/geyser/entity/EntityDefinitions.java @@ -238,6 +238,8 @@ public final class EntityDefinitions { public static final EntityDefinition OAK_CHEST_BOAT; public static final EntityDefinition OCELOT; public static final EntityDefinition PAINTING; + public static final EntityDefinition PALE_OAK_BOAT; + public static final EntityDefinition PALE_OAK_CHEST_BOAT; public static final EntityDefinition PANDA; public static final EntityDefinition PARROT; public static final EntityDefinition PHANTOM; @@ -593,6 +595,7 @@ public final class EntityDefinitions { MANGROVE_BOAT = buildBoat(boatBase, EntityType.MANGROVE_BOAT, BoatEntity.BoatVariant.MANGROVE); OAK_BOAT = buildBoat(boatBase, EntityType.OAK_BOAT, BoatEntity.BoatVariant.OAK); SPRUCE_BOAT = buildBoat(boatBase, EntityType.SPRUCE_BOAT, BoatEntity.BoatVariant.SPRUCE); + PALE_OAK_BOAT = buildBoat(boatBase, EntityType.PALE_OAK_BOAT, BoatEntity.BoatVariant.PALE_OAK); EntityDefinition chestBoatBase = EntityDefinition.inherited(null, boatBase) .build(); @@ -606,6 +609,7 @@ public final class EntityDefinitions { MANGROVE_CHEST_BOAT = buildChestBoat(chestBoatBase, EntityType.MANGROVE_CHEST_BOAT, BoatEntity.BoatVariant.MANGROVE); OAK_CHEST_BOAT = buildChestBoat(chestBoatBase, EntityType.OAK_CHEST_BOAT, BoatEntity.BoatVariant.OAK); SPRUCE_CHEST_BOAT = buildChestBoat(chestBoatBase, EntityType.SPRUCE_CHEST_BOAT, BoatEntity.BoatVariant.SPRUCE); + PALE_OAK_CHEST_BOAT = buildChestBoat(chestBoatBase, EntityType.PALE_OAK_CHEST_BOAT, BoatEntity.BoatVariant.PALE_OAK); } EntityDefinition livingEntityBase = EntityDefinition.inherited(LivingEntity::new, entityBase) diff --git a/core/src/main/java/org/geysermc/geyser/entity/type/BoatEntity.java b/core/src/main/java/org/geysermc/geyser/entity/type/BoatEntity.java index 86accea17..6c7b6e122 100644 --- a/core/src/main/java/org/geysermc/geyser/entity/type/BoatEntity.java +++ b/core/src/main/java/org/geysermc/geyser/entity/type/BoatEntity.java @@ -34,6 +34,7 @@ import org.geysermc.geyser.entity.EntityDefinition; import org.geysermc.geyser.entity.EntityDefinitions; import org.geysermc.geyser.item.Items; import org.geysermc.geyser.item.type.Item; +import org.geysermc.geyser.network.GameProtocol; import org.geysermc.geyser.session.GeyserSession; import org.geysermc.geyser.util.InteractionResult; import org.geysermc.geyser.util.InteractiveTag; @@ -77,6 +78,11 @@ public class BoatEntity extends Entity implements Leashable, Tickable { super(session, entityId, geyserId, uuid, definition, position.add(0d, definition.offset(), 0d), motion, yaw + 90, 0, yaw + 90); this.variant = variant; + // TODO remove once 1.21.40 is dropped + if (variant == BoatVariant.PALE_OAK && GameProtocol.isPreWinterDrop(session)) { + variant = BoatVariant.BIRCH; + } + dirtyMetadata.put(EntityDataTypes.VARIANT, variant.ordinal()); // Required to be able to move on land 1.16.200+ or apply gravity not in the water 1.16.100+ @@ -238,7 +244,8 @@ public class BoatEntity extends Entity implements Leashable, Tickable { DARK_OAK(Items.DARK_OAK_BOAT, Items.DARK_OAK_CHEST_BOAT), MANGROVE(Items.MANGROVE_BOAT, Items.MANGROVE_CHEST_BOAT), BAMBOO(Items.BAMBOO_RAFT, Items.BAMBOO_CHEST_RAFT), - CHERRY(Items.CHERRY_BOAT, Items.CHERRY_CHEST_BOAT); + CHERRY(Items.CHERRY_BOAT, Items.CHERRY_CHEST_BOAT), + PALE_OAK(Items.PALE_OAK_BOAT, Items.PALE_OAK_CHEST_BOAT); private final Item pickItem; final Item chestPickItem; diff --git a/core/src/main/java/org/geysermc/geyser/network/GameProtocol.java b/core/src/main/java/org/geysermc/geyser/network/GameProtocol.java index c762cf5d3..bb7032d25 100644 --- a/core/src/main/java/org/geysermc/geyser/network/GameProtocol.java +++ b/core/src/main/java/org/geysermc/geyser/network/GameProtocol.java @@ -30,6 +30,7 @@ import org.cloudburstmc.protocol.bedrock.codec.BedrockCodec; import org.cloudburstmc.protocol.bedrock.codec.v748.Bedrock_v748; import org.cloudburstmc.protocol.bedrock.codec.v766.Bedrock_v766; import org.cloudburstmc.protocol.bedrock.netty.codec.packet.BedrockPacketCodec; +import org.geysermc.geyser.session.GeyserSession; import org.geysermc.mcprotocollib.protocol.codec.MinecraftCodec; import org.geysermc.mcprotocollib.protocol.codec.PacketCodec; @@ -84,6 +85,10 @@ public final class GameProtocol { /* Bedrock convenience methods to gatekeep features and easily remove the check on version removal */ + public static boolean isPreWinterDrop(GeyserSession session) { + return session.getUpstream().getProtocolVersion() == Bedrock_v748.CODEC.getProtocolVersion(); + } + /** * Gets the {@link PacketCodec} for Minecraft: Java Edition. * diff --git a/core/src/main/java/org/geysermc/geyser/translator/protocol/java/level/JavaBlockEventTranslator.java b/core/src/main/java/org/geysermc/geyser/translator/protocol/java/level/JavaBlockEventTranslator.java index c94468c17..917075976 100644 --- a/core/src/main/java/org/geysermc/geyser/translator/protocol/java/level/JavaBlockEventTranslator.java +++ b/core/src/main/java/org/geysermc/geyser/translator/protocol/java/level/JavaBlockEventTranslator.java @@ -62,6 +62,11 @@ public class JavaBlockEventTranslator extends PacketTranslator Date: Fri, 6 Dec 2024 21:18:42 +0800 Subject: [PATCH 15/31] start on implementing creaking --- README.md | 2 +- .../fabric/src/main/resources/fabric.mod.json | 2 +- ....modrinth-uploading-conventions.gradle.kts | 2 +- .../geyser/entity/EntityDefinitions.java | 9 ++ .../type/living/monster/CreakingEntity.java | 87 +++++++++++++++++++ .../geyser/session/GeyserSession.java | 5 +- .../entity/JavaEntityEventTranslator.java | 6 ++ gradle/libs.versions.toml | 2 +- 8 files changed, 110 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 83a1d5c0b..9f5c9d8d5 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,7 @@ The ultimate goal of this project is to allow Minecraft: Bedrock Edition users t Special thanks to the DragonProxy project for being a trailblazer in protocol translation and for all the team members who have joined us here! ## Supported Versions -Geyser is currently supporting Minecraft Bedrock 1.21.40 - 1.21.50 and Minecraft Java 1.21.2/1.21.3. For more information, please see [here](https://geysermc.org/wiki/geyser/supported-versions/). +Geyser is currently supporting Minecraft Bedrock 1.21.40 - 1.21.50 and Minecraft Java 1.21.4. For more information, please see [here](https://geysermc.org/wiki/geyser/supported-versions/). ## Setting Up Take a look [here](https://geysermc.org/wiki/geyser/setup/) for how to set up Geyser. diff --git a/bootstrap/mod/fabric/src/main/resources/fabric.mod.json b/bootstrap/mod/fabric/src/main/resources/fabric.mod.json index a801eb207..4f50768f4 100644 --- a/bootstrap/mod/fabric/src/main/resources/fabric.mod.json +++ b/bootstrap/mod/fabric/src/main/resources/fabric.mod.json @@ -25,6 +25,6 @@ "depends": { "fabricloader": ">=0.16.7", "fabric": "*", - "minecraft": ">=1.21.2" + "minecraft": ">=1.21.4" } } diff --git a/build-logic/src/main/kotlin/geyser.modrinth-uploading-conventions.gradle.kts b/build-logic/src/main/kotlin/geyser.modrinth-uploading-conventions.gradle.kts index 59f85d182..4f445f455 100644 --- a/build-logic/src/main/kotlin/geyser.modrinth-uploading-conventions.gradle.kts +++ b/build-logic/src/main/kotlin/geyser.modrinth-uploading-conventions.gradle.kts @@ -13,7 +13,7 @@ modrinth { versionNumber.set(projectVersion(project)) versionType.set("beta") changelog.set(System.getenv("CHANGELOG") ?: "") - gameVersions.addAll("1.21.2", libs.minecraft.get().version as String) + gameVersions.add(libs.minecraft.get().version as String) failSilently.set(true) syncBodyFrom.set(rootProject.file("README.md").readText()) diff --git a/core/src/main/java/org/geysermc/geyser/entity/EntityDefinitions.java b/core/src/main/java/org/geysermc/geyser/entity/EntityDefinitions.java index 8e485e14b..d284cba3f 100644 --- a/core/src/main/java/org/geysermc/geyser/entity/EntityDefinitions.java +++ b/core/src/main/java/org/geysermc/geyser/entity/EntityDefinitions.java @@ -684,6 +684,15 @@ public final class EntityDefinitions { .addTranslator(MetadataType.BOOLEAN, CreakingEntity::setActive) .addTranslator(MetadataType.BOOLEAN, CreakingEntity::setIsTearingDown) .addTranslator(MetadataType.OPTIONAL_POSITION, CreakingEntity::setHomePos) + .properties(new GeyserEntityProperties.Builder() + .addEnum("minecraft:creaking_state", + "neutral", + "hostile_observed", + "hostile_unobserved", + "twitching", + "crumbling") + .addInt("minecraft:creaking_swaying_ticks", 0, 6) + .build()) .build(); CREEPER = EntityDefinition.inherited(CreeperEntity::new, mobEntityBase) .type(EntityType.CREEPER) diff --git a/core/src/main/java/org/geysermc/geyser/entity/type/living/monster/CreakingEntity.java b/core/src/main/java/org/geysermc/geyser/entity/type/living/monster/CreakingEntity.java index 8cfaf7428..a1861ca69 100644 --- a/core/src/main/java/org/geysermc/geyser/entity/type/living/monster/CreakingEntity.java +++ b/core/src/main/java/org/geysermc/geyser/entity/type/living/monster/CreakingEntity.java @@ -27,6 +27,12 @@ package org.geysermc.geyser.entity.type.living.monster; import org.cloudburstmc.math.vector.Vector3f; import org.cloudburstmc.math.vector.Vector3i; +import org.cloudburstmc.nbt.NbtMap; +import org.cloudburstmc.protocol.bedrock.data.LevelEvent; +import org.cloudburstmc.protocol.bedrock.data.entity.EntityFlag; +import org.cloudburstmc.protocol.bedrock.packet.AddEntityPacket; +import org.cloudburstmc.protocol.bedrock.packet.LevelEventGenericPacket; +import org.geysermc.geyser.GeyserImpl; import org.geysermc.geyser.entity.EntityDefinition; import org.geysermc.geyser.session.GeyserSession; import org.geysermc.mcprotocollib.protocol.data.game.entity.metadata.EntityMetadata; @@ -36,19 +42,100 @@ import java.util.Optional; import java.util.UUID; public class CreakingEntity extends MonsterEntity { + + private Vector3i homePosition; + public CreakingEntity(GeyserSession session, int entityId, long geyserId, UUID uuid, EntityDefinition definition, Vector3f position, Vector3f motion, float yaw, float pitch, float headYaw) { super(session, entityId, geyserId, uuid, definition, position, motion, yaw, pitch, headYaw); } + @Override + protected void initializeMetadata() { + super.initializeMetadata(); + setFlag(EntityFlag.HIDDEN_WHEN_INVISIBLE, true); + setFlag(EntityFlag.FIRE_IMMUNE, true); + } + + @Override + public void addAdditionalSpawnData(AddEntityPacket addEntityPacket) { + propertyManager.add("minecraft:creaking_state", "neutral"); + propertyManager.add("minecraft:creaking_swaying_ticks", 0); + propertyManager.applyIntProperties(addEntityPacket.getProperties().getIntProperties()); + } + public void setCanMove(EntityMetadata> booleanEntityMetadata) { + if (booleanEntityMetadata.getValue()) { + setFlag(EntityFlag.BODY_ROTATION_BLOCKED, false); + + // unfreeze sound? SoundEvent.UNFREEZE + propertyManager.add("minecraft:creaking_state", "hostile_unobserved"); + updateBedrockEntityProperties(); + } else { + setFlag(EntityFlag.BODY_ROTATION_BLOCKED, true); + propertyManager.add("minecraft:creaking_state", "hostile_observed"); + updateBedrockEntityProperties(); + } + + GeyserImpl.getInstance().getLogger().warning("set can move; " + booleanEntityMetadata.toString()); } public void setActive(EntityMetadata> booleanEntityMetadata) { + if (booleanEntityMetadata.getValue()) { +// LevelSoundEvent2Packet addEntityPacket = new LevelSoundEvent2Packet(); +// addEntityPacket.setIdentifier("minecraft:creaking"); +// addEntityPacket.setPosition(position); +// addEntityPacket.setBabySound(false); +// addEntityPacket.setSound(SoundEvent.ACTIVATE); +// addEntityPacket.setExtraData(-1); +// session.sendUpstreamPacket(addEntityPacket); + +// setFlag(EntityFlag.HIDDEN_WHEN_INVISIBLE, true); +// setFlag(EntityFlag.BODY_ROTATION_BLOCKED, true); + } else { + propertyManager.add("minecraft:creaking_state", "neutral"); + } + GeyserImpl.getInstance().getLogger().warning("set active; " + booleanEntityMetadata.toString()); } public void setIsTearingDown(EntityMetadata> booleanEntityMetadata) { + GeyserImpl.getInstance().getLogger().warning("set isTearingDown; " + booleanEntityMetadata.toString()); + if (booleanEntityMetadata.getValue()) { + propertyManager.add("minecraft:creaking_state", "crumbling"); + updateBedrockEntityProperties(); +// LevelEventPacket levelEventPacket = new LevelEventPacket(); +// levelEventPacket.setType(ParticleType.CREAKING_CRUMBLE); +// levelEventPacket.setPosition(position); +// levelEventPacket.setData(0); + } } public void setHomePos(EntityMetadata,? extends MetadataType>> optionalEntityMetadata) { + if (optionalEntityMetadata.getValue().isPresent()) { + this.homePosition = optionalEntityMetadata.getValue().get(); + } else { + this.homePosition = null; + } + } + + public void createParticleBeam() { + if (this.homePosition != null) { + LevelEventGenericPacket levelEventGenericPacket = new LevelEventGenericPacket(); + levelEventGenericPacket.setType(LevelEvent.PARTICLE_CREAKING_HEART_TRIAL); + levelEventGenericPacket.setTag( + NbtMap.builder() + .putInt("CreakingAmount", 0) + .putFloat("CreakingX", position.getX()) + .putFloat("CreakingY", position.getY()) + .putFloat("CreakingZ", position.getZ()) + .putInt("HeartAmount", 20) + .putFloat("HeartX", homePosition.getX()) + .putFloat("HeartY", homePosition.getY()) + .putFloat("HeartZ", homePosition.getZ()) + .build() + ); + + GeyserImpl.getInstance().getLogger().warning(levelEventGenericPacket.toString()); + session.sendUpstreamPacket(levelEventGenericPacket); + } } } diff --git a/core/src/main/java/org/geysermc/geyser/session/GeyserSession.java b/core/src/main/java/org/geysermc/geyser/session/GeyserSession.java index d6fe6739b..cedf9ab66 100644 --- a/core/src/main/java/org/geysermc/geyser/session/GeyserSession.java +++ b/core/src/main/java/org/geysermc/geyser/session/GeyserSession.java @@ -1153,7 +1153,10 @@ public class GeyserSession implements GeyserConnection, GeyserCommandSource { @Override public void packetError(PacketErrorEvent event) { - geyser.getLogger().warning(GeyserLocale.getLocaleStringLog("geyser.network.downstream_error", event.getCause().getMessage())); + geyser.getLogger().warning(GeyserLocale.getLocaleStringLog("geyser.network.downstream_error", + (event.getPacketClass() != null ? "(" + event.getPacketClass().getSimpleName() + ")" : "") + + event.getCause().getMessage()) + ); if (geyser.getConfig().isDebugMode()) event.getCause().printStackTrace(); event.setSuppress(true); diff --git a/core/src/main/java/org/geysermc/geyser/translator/protocol/java/entity/JavaEntityEventTranslator.java b/core/src/main/java/org/geysermc/geyser/translator/protocol/java/entity/JavaEntityEventTranslator.java index 6c2e02cd3..d52a2b501 100644 --- a/core/src/main/java/org/geysermc/geyser/translator/protocol/java/entity/JavaEntityEventTranslator.java +++ b/core/src/main/java/org/geysermc/geyser/translator/protocol/java/entity/JavaEntityEventTranslator.java @@ -43,6 +43,7 @@ import org.geysermc.geyser.entity.type.EvokerFangsEntity; import org.geysermc.geyser.entity.type.FishingHookEntity; import org.geysermc.geyser.entity.type.LivingEntity; import org.geysermc.geyser.entity.type.living.animal.ArmadilloEntity; +import org.geysermc.geyser.entity.type.living.monster.CreakingEntity; import org.geysermc.geyser.entity.type.living.monster.WardenEntity; import org.geysermc.geyser.item.Items; import org.geysermc.geyser.session.GeyserSession; @@ -288,6 +289,11 @@ public class JavaEntityEventTranslator extends PacketTranslator Date: Sun, 8 Dec 2024 04:18:07 +0800 Subject: [PATCH 16/31] Some minor fixes, fix own block breaking progress not showing on the player's end --- .../geyser/entity/EntityDefinitions.java | 4 +- .../living/animal/tameable/WolfEntity.java | 9 ++-- .../type/living/monster/CreakingEntity.java | 21 +++++++--- .../updater/AnvilInventoryUpdater.java | 6 +-- .../geyser/session/cache/TagCache.java | 31 ++++++++++++++ .../session/cache/tags/GeyserHolderSet.java | 22 ---------- .../player/input/BedrockBlockActions.java | 4 +- .../java/JavaSelectKnownPacksTranslator.java | 2 +- .../entity/JavaEntityEventTranslator.java | 3 ++ .../level/JavaBlockDestructionTranslator.java | 7 +++- .../org/geysermc/geyser/util/BlockUtils.java | 41 +++++++------------ 11 files changed, 79 insertions(+), 71 deletions(-) diff --git a/core/src/main/java/org/geysermc/geyser/entity/EntityDefinitions.java b/core/src/main/java/org/geysermc/geyser/entity/EntityDefinitions.java index d284cba3f..dab8cb6e7 100644 --- a/core/src/main/java/org/geysermc/geyser/entity/EntityDefinitions.java +++ b/core/src/main/java/org/geysermc/geyser/entity/EntityDefinitions.java @@ -685,13 +685,13 @@ public final class EntityDefinitions { .addTranslator(MetadataType.BOOLEAN, CreakingEntity::setIsTearingDown) .addTranslator(MetadataType.OPTIONAL_POSITION, CreakingEntity::setHomePos) .properties(new GeyserEntityProperties.Builder() - .addEnum("minecraft:creaking_state", + .addEnum(CreakingEntity.CREAKING_STATE, "neutral", "hostile_observed", "hostile_unobserved", "twitching", "crumbling") - .addInt("minecraft:creaking_swaying_ticks", 0, 6) + .addInt(CreakingEntity.CREAKING_SWAYING_TICKS, 0, 6) .build()) .build(); CREEPER = EntityDefinition.inherited(CreeperEntity::new, mobEntityBase) diff --git a/core/src/main/java/org/geysermc/geyser/entity/type/living/animal/tameable/WolfEntity.java b/core/src/main/java/org/geysermc/geyser/entity/type/living/animal/tameable/WolfEntity.java index 67e5788c6..1b06f3860 100644 --- a/core/src/main/java/org/geysermc/geyser/entity/type/living/animal/tameable/WolfEntity.java +++ b/core/src/main/java/org/geysermc/geyser/entity/type/living/animal/tameable/WolfEntity.java @@ -38,8 +38,6 @@ import org.geysermc.geyser.item.enchantment.EnchantmentComponent; import org.geysermc.geyser.item.type.DyeItem; import org.geysermc.geyser.item.type.Item; import org.geysermc.geyser.session.GeyserSession; -import org.geysermc.geyser.session.cache.registry.JavaRegistries; -import org.geysermc.geyser.session.cache.tags.GeyserHolderSet; import org.geysermc.geyser.session.cache.tags.ItemTag; import org.geysermc.geyser.session.cache.tags.Tag; import org.geysermc.geyser.util.InteractionResult; @@ -62,7 +60,7 @@ import java.util.UUID; public class WolfEntity extends TameableEntity { private byte collarColor = 14; // Red - default - private GeyserHolderSet repairableItems = null; + private HolderSet repairableItems = null; private boolean isCurseOfBinding = false; public WolfEntity(GeyserSession session, int entityId, long geyserId, UUID uuid, EntityDefinition definition, Vector3f position, Vector3f motion, float yaw, float pitch, float headYaw) { @@ -130,8 +128,7 @@ public class WolfEntity extends TameableEntity { public void setBody(ItemStack stack) { super.setBody(stack); isCurseOfBinding = ItemUtils.hasEffect(session, stack, EnchantmentComponent.PREVENT_ARMOR_CHANGE); - HolderSet set = GeyserItemStack.from(stack).getComponent(DataComponentType.REPAIRABLE); - repairableItems = GeyserHolderSet.convertHolderSet(JavaRegistries.ITEM, set); + repairableItems = GeyserItemStack.from(stack).getComponent(DataComponentType.REPAIRABLE); } @Override @@ -166,7 +163,7 @@ public class WolfEntity extends TameableEntity { return InteractiveTag.REMOVE_WOLF_ARMOR; } if (getFlag(EntityFlag.SITTING) && - session.getTagCache().is(repairableItems, itemInHand.asItem()) && + session.getTagCache().isItem(repairableItems, itemInHand.asItem()) && this.body.isValid() && this.body.getTag() != null && this.body.getTag().getInt("Damage") > 0) { return InteractiveTag.REPAIR_WOLF_ARMOR; diff --git a/core/src/main/java/org/geysermc/geyser/entity/type/living/monster/CreakingEntity.java b/core/src/main/java/org/geysermc/geyser/entity/type/living/monster/CreakingEntity.java index a1861ca69..1f2ddc37c 100644 --- a/core/src/main/java/org/geysermc/geyser/entity/type/living/monster/CreakingEntity.java +++ b/core/src/main/java/org/geysermc/geyser/entity/type/living/monster/CreakingEntity.java @@ -41,10 +41,21 @@ import org.geysermc.mcprotocollib.protocol.data.game.entity.metadata.MetadataTyp import java.util.Optional; import java.util.UUID; +/* + * Relevant bits: + * - LevelSoundEvent2Packet(sound=SPAWN, position=(233.5, 112.295, 4717.5), extraData=-1, identifier=minecraft:creaking, babySound=false, relativeVolumeDisabled=false) + * - [11:29:34:768] [CLIENT BOUND] - LevelSoundEvent2Packet(sound=CREAKING_HEART_SPAWN, position=(233.0, 110.0, 4717.0), extraData=-1, identifier=minecraft:creaking, babySound=false, relativeVolumeDisabled=false) + * - [11:29:34:768] [CLIENT BOUND] - LevelSoundEvent2Packet(sound=CREAKING_HEART_SPAWN, position=(235.0, 113.0, 4722.0), extraData=13734, identifier=, babySound=false, relativeVolumeDisabled=false) + * - [11:29:34:768] [CLIENT BOUND] - LevelEventPacket(type=PARTICLE_MOB_BLOCK_SPAWN, position=(233.0, 110.0, 4717.0), data=769) + * + */ public class CreakingEntity extends MonsterEntity { private Vector3i homePosition; + public static final String CREAKING_STATE = "minecraft:creaking_state"; + public static final String CREAKING_SWAYING_TICKS = "minecraft:creaking_swaying_ticks"; + public CreakingEntity(GeyserSession session, int entityId, long geyserId, UUID uuid, EntityDefinition definition, Vector3f position, Vector3f motion, float yaw, float pitch, float headYaw) { super(session, entityId, geyserId, uuid, definition, position, motion, yaw, pitch, headYaw); } @@ -58,7 +69,7 @@ public class CreakingEntity extends MonsterEntity { @Override public void addAdditionalSpawnData(AddEntityPacket addEntityPacket) { - propertyManager.add("minecraft:creaking_state", "neutral"); + propertyManager.add(CREAKING_STATE, "neutral"); propertyManager.add("minecraft:creaking_swaying_ticks", 0); propertyManager.applyIntProperties(addEntityPacket.getProperties().getIntProperties()); } @@ -68,11 +79,11 @@ public class CreakingEntity extends MonsterEntity { setFlag(EntityFlag.BODY_ROTATION_BLOCKED, false); // unfreeze sound? SoundEvent.UNFREEZE - propertyManager.add("minecraft:creaking_state", "hostile_unobserved"); + propertyManager.add(CREAKING_STATE, "hostile_unobserved"); updateBedrockEntityProperties(); } else { setFlag(EntityFlag.BODY_ROTATION_BLOCKED, true); - propertyManager.add("minecraft:creaking_state", "hostile_observed"); + propertyManager.add(CREAKING_STATE, "hostile_observed"); updateBedrockEntityProperties(); } @@ -92,7 +103,7 @@ public class CreakingEntity extends MonsterEntity { // setFlag(EntityFlag.HIDDEN_WHEN_INVISIBLE, true); // setFlag(EntityFlag.BODY_ROTATION_BLOCKED, true); } else { - propertyManager.add("minecraft:creaking_state", "neutral"); + propertyManager.add(CREAKING_STATE, "neutral"); } GeyserImpl.getInstance().getLogger().warning("set active; " + booleanEntityMetadata.toString()); } @@ -100,7 +111,7 @@ public class CreakingEntity extends MonsterEntity { public void setIsTearingDown(EntityMetadata> booleanEntityMetadata) { GeyserImpl.getInstance().getLogger().warning("set isTearingDown; " + booleanEntityMetadata.toString()); if (booleanEntityMetadata.getValue()) { - propertyManager.add("minecraft:creaking_state", "crumbling"); + propertyManager.add(CREAKING_STATE, "crumbling"); updateBedrockEntityProperties(); // LevelEventPacket levelEventPacket = new LevelEventPacket(); // levelEventPacket.setType(ParticleType.CREAKING_CRUMBLE); diff --git a/core/src/main/java/org/geysermc/geyser/inventory/updater/AnvilInventoryUpdater.java b/core/src/main/java/org/geysermc/geyser/inventory/updater/AnvilInventoryUpdater.java index 459d8adf8..3ea78a942 100644 --- a/core/src/main/java/org/geysermc/geyser/inventory/updater/AnvilInventoryUpdater.java +++ b/core/src/main/java/org/geysermc/geyser/inventory/updater/AnvilInventoryUpdater.java @@ -40,10 +40,7 @@ import org.geysermc.geyser.inventory.Inventory; import org.geysermc.geyser.inventory.item.BedrockEnchantment; import org.geysermc.geyser.item.Items; import org.geysermc.geyser.item.enchantment.Enchantment; -import org.geysermc.geyser.item.type.Item; import org.geysermc.geyser.session.GeyserSession; -import org.geysermc.geyser.session.cache.registry.JavaRegistries; -import org.geysermc.geyser.session.cache.tags.GeyserHolderSet; import org.geysermc.geyser.translator.inventory.InventoryTranslator; import org.geysermc.geyser.translator.text.MessageTranslator; import org.geysermc.mcprotocollib.protocol.data.game.entity.player.GameMode; @@ -403,8 +400,7 @@ public class AnvilInventoryUpdater extends InventoryUpdater { return false; } - GeyserHolderSet set = GeyserHolderSet.convertHolderSet(JavaRegistries.ITEM, repairable); - return session.getTagCache().is(set, material.asItem()); + return session.getTagCache().isItem(repairable, material.asItem()); } private boolean isRenaming(GeyserSession session, AnvilContainer anvilContainer, boolean bedrock) { diff --git a/core/src/main/java/org/geysermc/geyser/session/cache/TagCache.java b/core/src/main/java/org/geysermc/geyser/session/cache/TagCache.java index 26b6aad96..c77081eb0 100644 --- a/core/src/main/java/org/geysermc/geyser/session/cache/TagCache.java +++ b/core/src/main/java/org/geysermc/geyser/session/cache/TagCache.java @@ -28,16 +28,19 @@ package org.geysermc.geyser.session.cache; import it.unimi.dsi.fastutil.ints.IntArrays; import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap; import net.kyori.adventure.key.Key; +import org.checkerframework.checker.nullness.qual.NonNull; import org.checkerframework.checker.nullness.qual.Nullable; import org.geysermc.geyser.GeyserLogger; import org.geysermc.geyser.inventory.GeyserItemStack; import org.geysermc.geyser.item.type.Item; +import org.geysermc.geyser.level.block.type.Block; import org.geysermc.geyser.session.GeyserSession; import org.geysermc.geyser.session.cache.registry.JavaRegistries; import org.geysermc.geyser.session.cache.registry.JavaRegistryKey; import org.geysermc.geyser.session.cache.tags.GeyserHolderSet; import org.geysermc.geyser.session.cache.tags.Tag; import org.geysermc.geyser.util.MinecraftKey; +import org.geysermc.mcprotocollib.protocol.data.game.item.component.HolderSet; import org.geysermc.mcprotocollib.protocol.packet.common.clientbound.ClientboundUpdateTagsPacket; import javax.annotation.ParametersAreNonnullByDefault; @@ -127,6 +130,34 @@ public final class TagCache { return contains(holderSet.resolveRaw(this), holderSet.getRegistry().toNetworkId(session, object)); } + /** + * Accessible via the {@link #isItem(HolderSet, Item)} method. + * @return true if the specified network ID is in the given {@link HolderSet} set. + */ + private boolean is(@Nullable HolderSet holderSet, @NonNull JavaRegistryKey registry, int id) { + if (holderSet == null) { + return false; + } + + int[] entries = holderSet.resolve(key -> { + if (key.value().startsWith("#")) { + key = Key.key(key.namespace(), key.value().substring(1)); + } + return getRaw(new Tag<>(registry, key)); + }); + + return contains(entries, id); + } + + public boolean isItem(@Nullable HolderSet holderSet, @NonNull Item item) { + return is(holderSet, JavaRegistries.ITEM, item.javaId()); + } + + public boolean isBlock(@Nullable HolderSet holderSet, @NonNull Block block) { + return is(holderSet, JavaRegistries.BLOCK, block.javaId()); + } + + public List get(Tag tag) { return mapRawArray(session, getRaw(tag), tag.registry()); } diff --git a/core/src/main/java/org/geysermc/geyser/session/cache/tags/GeyserHolderSet.java b/core/src/main/java/org/geysermc/geyser/session/cache/tags/GeyserHolderSet.java index 0e0d117a4..c77f0a642 100644 --- a/core/src/main/java/org/geysermc/geyser/session/cache/tags/GeyserHolderSet.java +++ b/core/src/main/java/org/geysermc/geyser/session/cache/tags/GeyserHolderSet.java @@ -33,7 +33,6 @@ import org.checkerframework.checker.nullness.qual.Nullable; import org.geysermc.geyser.session.GeyserSession; import org.geysermc.geyser.session.cache.TagCache; import org.geysermc.geyser.session.cache.registry.JavaRegistryKey; -import org.geysermc.mcprotocollib.protocol.data.game.item.component.HolderSet; import java.util.List; import java.util.Objects; @@ -88,27 +87,6 @@ public final class GeyserHolderSet { return tagCache.getRaw(Objects.requireNonNull(tag, "HolderSet must have a tag if it doesn't have a list of IDs")); } - /** - * Reads a MCPL {@link HolderSet} and turns it into a GeyserHolderSet. - * @param registry the registry the HolderSet contains IDs from. - * @param holderSet the HolderSet as the MCPL HolderSet object - */ - public static GeyserHolderSet convertHolderSet(@NonNull JavaRegistryKey registry, @Nullable HolderSet holderSet) { - if (holderSet == null) { - return new GeyserHolderSet<>(registry, IntArrays.EMPTY_ARRAY); - } - - if (holderSet.getHolders() != null) { - return new GeyserHolderSet<>(registry, holderSet.getHolders()); - } - - if (holderSet.getLocation() != null) { - return new GeyserHolderSet<>(registry, new Tag<>(registry, holderSet.getLocation())); - } - - throw new IllegalStateException("HolderSet must have a tag or a list of IDs! " + holderSet); - } - /** * Reads a HolderSet from an object from NBT. * diff --git a/core/src/main/java/org/geysermc/geyser/translator/protocol/bedrock/entity/player/input/BedrockBlockActions.java b/core/src/main/java/org/geysermc/geyser/translator/protocol/bedrock/entity/player/input/BedrockBlockActions.java index ea386ebcf..b8facaa10 100644 --- a/core/src/main/java/org/geysermc/geyser/translator/protocol/bedrock/entity/player/input/BedrockBlockActions.java +++ b/core/src/main/java/org/geysermc/geyser/translator/protocol/bedrock/entity/player/input/BedrockBlockActions.java @@ -89,7 +89,7 @@ final class BedrockBlockActions { LevelEventPacket startBreak = new LevelEventPacket(); startBreak.setType(LevelEvent.BLOCK_START_BREAK); startBreak.setPosition(vector.toFloat()); - double breakTime = BlockUtils.getSessionBreakTime(session, BlockState.of(blockState).block()) * 20; // TODO afdaöwelfunöwoaenf + double breakTime = BlockUtils.getSessionBreakTimeTicks(session, BlockState.of(blockState).block()); // If the block is custom or the breaking item is custom, we must keep track of break time ourselves GeyserItemStack item = session.getPlayerInventory().getItemInHand(); @@ -137,7 +137,7 @@ final class BedrockBlockActions { Direction direction = Direction.VALUES[blockFace]; spawnBlockBreakParticles(session, direction, vector, breakingBlockState); - double breakTime = BlockUtils.getSessionBreakTime(session, breakingBlockState.block()) * 20; + double breakTime = BlockUtils.getSessionBreakTimeTicks(session, breakingBlockState.block()); // If the block is custom, we must keep track of when it should break ourselves long blockBreakStartTime = session.getBlockBreakStartTime(); if (blockBreakStartTime != 0) { diff --git a/core/src/main/java/org/geysermc/geyser/translator/protocol/java/JavaSelectKnownPacksTranslator.java b/core/src/main/java/org/geysermc/geyser/translator/protocol/java/JavaSelectKnownPacksTranslator.java index 67717febb..f2ab22e60 100644 --- a/core/src/main/java/org/geysermc/geyser/translator/protocol/java/JavaSelectKnownPacksTranslator.java +++ b/core/src/main/java/org/geysermc/geyser/translator/protocol/java/JavaSelectKnownPacksTranslator.java @@ -40,7 +40,7 @@ import java.util.Set; @Translator(packet = ClientboundSelectKnownPacks.class) public class JavaSelectKnownPacksTranslator extends PacketTranslator { // todo: dump from client? - private static final Set KNOWN_PACK_IDS = Set.of("core", "winter_drop", "trade_rebalance", "redstone_experiments", "minecart_improvements"); + private static final Set KNOWN_PACK_IDS = Set.of("core", "trade_rebalance", "redstone_experiments", "minecart_improvements"); @Override public void translate(GeyserSession session, ClientboundSelectKnownPacks packet) { diff --git a/core/src/main/java/org/geysermc/geyser/translator/protocol/java/entity/JavaEntityEventTranslator.java b/core/src/main/java/org/geysermc/geyser/translator/protocol/java/entity/JavaEntityEventTranslator.java index d52a2b501..504348b5b 100644 --- a/core/src/main/java/org/geysermc/geyser/translator/protocol/java/entity/JavaEntityEventTranslator.java +++ b/core/src/main/java/org/geysermc/geyser/translator/protocol/java/entity/JavaEntityEventTranslator.java @@ -37,6 +37,7 @@ import org.cloudburstmc.protocol.bedrock.packet.LevelSoundEvent2Packet; import org.cloudburstmc.protocol.bedrock.packet.PlaySoundPacket; import org.cloudburstmc.protocol.bedrock.packet.SetEntityDataPacket; import org.cloudburstmc.protocol.bedrock.packet.SetEntityMotionPacket; +import org.geysermc.geyser.GeyserImpl; import org.geysermc.geyser.entity.EntityDefinitions; import org.geysermc.geyser.entity.type.Entity; import org.geysermc.geyser.entity.type.EvokerFangsEntity; @@ -294,6 +295,8 @@ public class JavaEntityEventTranslator extends PacketTranslator set = GeyserHolderSet.convertHolderSet(JavaRegistries.BLOCK, rule.getBlocks()); - if (session.getTagCache().is(set, block)) { + if (session.getTagCache().isBlock(rule.getBlocks(), block)) { return rule.getCorrectForDrops(); } } @@ -84,8 +81,7 @@ public final class BlockUtils { for (ToolData.Rule rule : tool.getRules()) { if (rule.getSpeed() != null) { - GeyserHolderSet set = GeyserHolderSet.convertHolderSet(JavaRegistries.BLOCK, rule.getBlocks()); - if (session.getTagCache().is(set, block)) { + if (session.getTagCache().isBlock(rule.getBlocks(), block)) { return rule.getSpeed(); } } @@ -94,8 +90,8 @@ public final class BlockUtils { return tool.getDefaultMiningSpeed(); } - private static float getPlayerDestroySpeed(GeyserSession session, BlockState blockState, GeyserItemStack itemInHand) { - float destroySpeed = getItemDestroySpeed(session, blockState.block(), itemInHand); + private static float getPlayerDestroySpeed(GeyserSession session, Block block, GeyserItemStack itemInHand) { + float destroySpeed = getItemDestroySpeed(session, block, itemInHand); EntityEffectCache effectCache = session.getEffectCache(); if (destroySpeed > 1.0F) { @@ -133,17 +129,8 @@ public final class BlockUtils { return Math.max(cache.getHaste(), cache.getConduitPower()); } - public int getDestroyStage(GeyserSession session) { - return session.getDestroyProgress() > 0F ? (int) session.getDestroyProgress() * 10 : -1; - } - - // TODO 1.21.4 this changed probably; no more tiers - public static double getBreakTime(GeyserSession session, Block block, ItemMapping item, @Nullable DataComponents components, boolean isSessionPlayer) { - return 0.0; // TODO 1.21.4 - } - - public static double getSessionBreakTime(GeyserSession session, Block block) { - return 0.0; // TODO 1.21.4 + public static double getSessionBreakTimeTicks(GeyserSession session, Block block) { + return Math.ceil(1 / getBlockMiningProgressPerTick(session, block, session.getPlayerInventory().getItemInHand())); } /** From f610a0d12ba590deb7f4d793814cf3db461804bb Mon Sep 17 00:00:00 2001 From: onebeastchris Date: Sun, 8 Dec 2024 05:34:10 +0800 Subject: [PATCH 17/31] Tidy up creaking entity code, remove debugging --- .../type/living/monster/CreakingEntity.java | 50 +++---------------- .../geyser/network/UpstreamPacketHandler.java | 9 ---- .../geyser/session/GeyserSession.java | 3 -- ...SetLocalPlayerAsInitializedTranslator.java | 1 - .../player/input/BedrockBlockActions.java | 1 - core/src/main/resources/mappings | 2 +- 6 files changed, 8 insertions(+), 58 deletions(-) diff --git a/core/src/main/java/org/geysermc/geyser/entity/type/living/monster/CreakingEntity.java b/core/src/main/java/org/geysermc/geyser/entity/type/living/monster/CreakingEntity.java index 1f2ddc37c..1a26eb43b 100644 --- a/core/src/main/java/org/geysermc/geyser/entity/type/living/monster/CreakingEntity.java +++ b/core/src/main/java/org/geysermc/geyser/entity/type/living/monster/CreakingEntity.java @@ -32,7 +32,6 @@ import org.cloudburstmc.protocol.bedrock.data.LevelEvent; import org.cloudburstmc.protocol.bedrock.data.entity.EntityFlag; import org.cloudburstmc.protocol.bedrock.packet.AddEntityPacket; import org.cloudburstmc.protocol.bedrock.packet.LevelEventGenericPacket; -import org.geysermc.geyser.GeyserImpl; import org.geysermc.geyser.entity.EntityDefinition; import org.geysermc.geyser.session.GeyserSession; import org.geysermc.mcprotocollib.protocol.data.game.entity.metadata.EntityMetadata; @@ -41,14 +40,7 @@ import org.geysermc.mcprotocollib.protocol.data.game.entity.metadata.MetadataTyp import java.util.Optional; import java.util.UUID; -/* - * Relevant bits: - * - LevelSoundEvent2Packet(sound=SPAWN, position=(233.5, 112.295, 4717.5), extraData=-1, identifier=minecraft:creaking, babySound=false, relativeVolumeDisabled=false) - * - [11:29:34:768] [CLIENT BOUND] - LevelSoundEvent2Packet(sound=CREAKING_HEART_SPAWN, position=(233.0, 110.0, 4717.0), extraData=-1, identifier=minecraft:creaking, babySound=false, relativeVolumeDisabled=false) - * - [11:29:34:768] [CLIENT BOUND] - LevelSoundEvent2Packet(sound=CREAKING_HEART_SPAWN, position=(235.0, 113.0, 4722.0), extraData=13734, identifier=, babySound=false, relativeVolumeDisabled=false) - * - [11:29:34:768] [CLIENT BOUND] - LevelEventPacket(type=PARTICLE_MOB_BLOCK_SPAWN, position=(233.0, 110.0, 4717.0), data=769) - * - */ + public class CreakingEntity extends MonsterEntity { private Vector3i homePosition; @@ -70,53 +62,26 @@ public class CreakingEntity extends MonsterEntity { @Override public void addAdditionalSpawnData(AddEntityPacket addEntityPacket) { propertyManager.add(CREAKING_STATE, "neutral"); - propertyManager.add("minecraft:creaking_swaying_ticks", 0); + propertyManager.add(CREAKING_SWAYING_TICKS, 0); propertyManager.applyIntProperties(addEntityPacket.getProperties().getIntProperties()); } public void setCanMove(EntityMetadata> booleanEntityMetadata) { - if (booleanEntityMetadata.getValue()) { - setFlag(EntityFlag.BODY_ROTATION_BLOCKED, false); - - // unfreeze sound? SoundEvent.UNFREEZE - propertyManager.add(CREAKING_STATE, "hostile_unobserved"); - updateBedrockEntityProperties(); - } else { - setFlag(EntityFlag.BODY_ROTATION_BLOCKED, true); - propertyManager.add(CREAKING_STATE, "hostile_observed"); - updateBedrockEntityProperties(); - } - - GeyserImpl.getInstance().getLogger().warning("set can move; " + booleanEntityMetadata.toString()); + setFlag(EntityFlag.BODY_ROTATION_BLOCKED, !booleanEntityMetadata.getValue()); + propertyManager.add(CREAKING_STATE, booleanEntityMetadata.getValue() ? "hostile_unobserved" : "hostile_observed"); + updateBedrockEntityProperties(); } public void setActive(EntityMetadata> booleanEntityMetadata) { - if (booleanEntityMetadata.getValue()) { -// LevelSoundEvent2Packet addEntityPacket = new LevelSoundEvent2Packet(); -// addEntityPacket.setIdentifier("minecraft:creaking"); -// addEntityPacket.setPosition(position); -// addEntityPacket.setBabySound(false); -// addEntityPacket.setSound(SoundEvent.ACTIVATE); -// addEntityPacket.setExtraData(-1); -// session.sendUpstreamPacket(addEntityPacket); - -// setFlag(EntityFlag.HIDDEN_WHEN_INVISIBLE, true); -// setFlag(EntityFlag.BODY_ROTATION_BLOCKED, true); - } else { + if (!booleanEntityMetadata.getValue()) { propertyManager.add(CREAKING_STATE, "neutral"); } - GeyserImpl.getInstance().getLogger().warning("set active; " + booleanEntityMetadata.toString()); } public void setIsTearingDown(EntityMetadata> booleanEntityMetadata) { - GeyserImpl.getInstance().getLogger().warning("set isTearingDown; " + booleanEntityMetadata.toString()); if (booleanEntityMetadata.getValue()) { propertyManager.add(CREAKING_STATE, "crumbling"); updateBedrockEntityProperties(); -// LevelEventPacket levelEventPacket = new LevelEventPacket(); -// levelEventPacket.setType(ParticleType.CREAKING_CRUMBLE); -// levelEventPacket.setPosition(position); -// levelEventPacket.setData(0); } } @@ -134,7 +99,7 @@ public class CreakingEntity extends MonsterEntity { levelEventGenericPacket.setType(LevelEvent.PARTICLE_CREAKING_HEART_TRIAL); levelEventGenericPacket.setTag( NbtMap.builder() - .putInt("CreakingAmount", 0) + .putInt("CreakingAmount", 20) .putFloat("CreakingX", position.getX()) .putFloat("CreakingY", position.getY()) .putFloat("CreakingZ", position.getZ()) @@ -145,7 +110,6 @@ public class CreakingEntity extends MonsterEntity { .build() ); - GeyserImpl.getInstance().getLogger().warning(levelEventGenericPacket.toString()); session.sendUpstreamPacket(levelEventGenericPacket); } } diff --git a/core/src/main/java/org/geysermc/geyser/network/UpstreamPacketHandler.java b/core/src/main/java/org/geysermc/geyser/network/UpstreamPacketHandler.java index dfebb93dc..c67ea6545 100644 --- a/core/src/main/java/org/geysermc/geyser/network/UpstreamPacketHandler.java +++ b/core/src/main/java/org/geysermc/geyser/network/UpstreamPacketHandler.java @@ -30,7 +30,6 @@ import org.cloudburstmc.math.vector.Vector2f; import org.cloudburstmc.protocol.bedrock.BedrockDisconnectReasons; import org.cloudburstmc.protocol.bedrock.codec.BedrockCodec; import org.cloudburstmc.protocol.bedrock.codec.compat.BedrockCompat; -import org.cloudburstmc.protocol.bedrock.data.ExperimentData; import org.cloudburstmc.protocol.bedrock.data.PacketCompressionAlgorithm; import org.cloudburstmc.protocol.bedrock.data.ResourcePackType; import org.cloudburstmc.protocol.bedrock.netty.codec.compression.CompressionStrategy; @@ -249,14 +248,6 @@ public class UpstreamPacketHandler extends LoggingPacketHandler { stackPacket.getResourcePacks().add(new ResourcePackStackPacket.Entry(header.uuid().toString(), header.version().toString(), "")); } - if (GeyserImpl.getInstance().getConfig().isAddNonBedrockItems()) { - // Allow custom items to work - stackPacket.getExperiments().add(new ExperimentData("data_driven_items", true)); - } - - // Required for experimental 1.21 features - stackPacket.getExperiments().add(new ExperimentData("updateAnnouncedLive2023", true)); - session.sendUpstreamPacket(stackPacket); break; diff --git a/core/src/main/java/org/geysermc/geyser/session/GeyserSession.java b/core/src/main/java/org/geysermc/geyser/session/GeyserSession.java index cedf9ab66..b61cb7815 100644 --- a/core/src/main/java/org/geysermc/geyser/session/GeyserSession.java +++ b/core/src/main/java/org/geysermc/geyser/session/GeyserSession.java @@ -150,7 +150,6 @@ import org.geysermc.geyser.item.type.BlockItem; import org.geysermc.geyser.level.BedrockDimension; import org.geysermc.geyser.level.JavaDimension; import org.geysermc.geyser.level.physics.CollisionManager; -import org.geysermc.geyser.network.GameProtocol; import org.geysermc.geyser.network.netty.LocalSession; import org.geysermc.geyser.registry.Registries; import org.geysermc.geyser.registry.type.BlockMappings; @@ -1671,8 +1670,6 @@ public class GeyserSession implements GeyserConnection, GeyserCommandSource { startGamePacket.getExperiments().add(new ExperimentData("upcoming_creator_features", true)); // Needed for certain molang queries used in blocks and items startGamePacket.getExperiments().add(new ExperimentData("experimental_molang_features", true)); - // Required for experimental 1.21 features - startGamePacket.getExperiments().add(new ExperimentData("updateAnnouncedLive2023", true)); startGamePacket.setVanillaVersion("*"); startGamePacket.setInventoriesServerAuthoritative(true); diff --git a/core/src/main/java/org/geysermc/geyser/translator/protocol/bedrock/BedrockSetLocalPlayerAsInitializedTranslator.java b/core/src/main/java/org/geysermc/geyser/translator/protocol/bedrock/BedrockSetLocalPlayerAsInitializedTranslator.java index fcbd3bb8c..556d8cd8d 100644 --- a/core/src/main/java/org/geysermc/geyser/translator/protocol/bedrock/BedrockSetLocalPlayerAsInitializedTranslator.java +++ b/core/src/main/java/org/geysermc/geyser/translator/protocol/bedrock/BedrockSetLocalPlayerAsInitializedTranslator.java @@ -40,7 +40,6 @@ import org.geysermc.mcprotocollib.protocol.packet.ingame.serverbound.Serverbound public class BedrockSetLocalPlayerAsInitializedTranslator extends PacketTranslator { @Override public void translate(GeyserSession session, SetLocalPlayerAsInitializedPacket packet) { - GeyserImpl.getInstance().getLogger().info(packet.toString()); if (session.getPlayerEntity().getGeyserId() == packet.getRuntimeEntityId()) { if (!session.getUpstream().isInitialized()) { session.getUpstream().setInitialized(true); diff --git a/core/src/main/java/org/geysermc/geyser/translator/protocol/bedrock/entity/player/input/BedrockBlockActions.java b/core/src/main/java/org/geysermc/geyser/translator/protocol/bedrock/entity/player/input/BedrockBlockActions.java index b8facaa10..c604f5be1 100644 --- a/core/src/main/java/org/geysermc/geyser/translator/protocol/bedrock/entity/player/input/BedrockBlockActions.java +++ b/core/src/main/java/org/geysermc/geyser/translator/protocol/bedrock/entity/player/input/BedrockBlockActions.java @@ -170,7 +170,6 @@ final class BedrockBlockActions { if (session.getGameMode() != GameMode.CREATIVE) { // As of 1.16.210: item frame items are taken out here. // Survival also sends START_BREAK, but by attaching our process here adventure mode also works - GeyserImpl.getInstance().getLogger().warning("abort break, not creative - item frame???"); Entity itemFrameEntity = ItemFrameEntity.getItemFrameEntity(session, vector); if (itemFrameEntity != null) { ServerboundInteractPacket interactPacket = new ServerboundInteractPacket(itemFrameEntity.getEntityId(), diff --git a/core/src/main/resources/mappings b/core/src/main/resources/mappings index 452312f88..64032d788 160000 --- a/core/src/main/resources/mappings +++ b/core/src/main/resources/mappings @@ -1 +1 @@ -Subproject commit 452312f88317cce019b8f336f485ffa7b2c19557 +Subproject commit 64032d7886e128858044e7e786479af3f1e876c8 From c298061d4dea3569a285b425bc4442d9e8445adc Mon Sep 17 00:00:00 2001 From: onebeastchris Date: Sun, 8 Dec 2024 06:18:42 +0800 Subject: [PATCH 18/31] address review --- .../geyser/translator/inventory/LoomInventoryTranslator.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/core/src/main/java/org/geysermc/geyser/translator/inventory/LoomInventoryTranslator.java b/core/src/main/java/org/geysermc/geyser/translator/inventory/LoomInventoryTranslator.java index e294442f9..1fef4c4fd 100644 --- a/core/src/main/java/org/geysermc/geyser/translator/inventory/LoomInventoryTranslator.java +++ b/core/src/main/java/org/geysermc/geyser/translator/inventory/LoomInventoryTranslator.java @@ -156,7 +156,10 @@ public class LoomInventoryTranslator extends AbstractBlockInventoryTranslator { inputCopy.setNetId(session.getNextItemNetId()); BannerPatternLayer bannerPatternLayer = BannerItem.getJavaBannerPattern(session, pattern); // TODO if (bannerPatternLayer != null) { - List patternsList = inputCopy.getComponentOrFallback(DataComponentType.BANNER_PATTERNS, new ArrayList<>()); + List patternsList = inputCopy.getComponent(DataComponentType.BANNER_PATTERNS); + if (patternsList == null) { + patternsList = new ArrayList<>(); + } patternsList.add(bannerPatternLayer); inputCopy.getOrCreateComponents().put(DataComponentType.BANNER_PATTERNS, patternsList); } From bd3377bfcc0e09368ec4e85a0a78ae4678911877 Mon Sep 17 00:00:00 2001 From: onebeastchris Date: Sun, 8 Dec 2024 06:20:32 +0800 Subject: [PATCH 19/31] update mappings --- core/src/main/resources/mappings | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/main/resources/mappings b/core/src/main/resources/mappings index 64032d788..e8089e117 160000 --- a/core/src/main/resources/mappings +++ b/core/src/main/resources/mappings @@ -1 +1 @@ -Subproject commit 64032d7886e128858044e7e786479af3f1e876c8 +Subproject commit e8089e117605e60a5ced120926c49fae7617c665 From 1210639087d64b78213410b57df09508ab3149aa Mon Sep 17 00:00:00 2001 From: onebeastchris Date: Sun, 8 Dec 2024 22:54:51 +0800 Subject: [PATCH 20/31] update item tags for 1.21.50 items --- .../resources/bedrock/item_tags.1_21_50.json | 39 +++++++++++++++---- 1 file changed, 31 insertions(+), 8 deletions(-) diff --git a/core/src/main/resources/bedrock/item_tags.1_21_50.json b/core/src/main/resources/bedrock/item_tags.1_21_50.json index d9e63ed26..b8b94d6f3 100644 --- a/core/src/main/resources/bedrock/item_tags.1_21_50.json +++ b/core/src/main/resources/bedrock/item_tags.1_21_50.json @@ -6,6 +6,7 @@ "minecraft:banner" ], "minecraft:boat": [ + "minecraft:pale_oak_chest_boat", "minecraft:cherry_chest_boat", "minecraft:oak_chest_boat", "minecraft:mangrove_boat", @@ -23,9 +24,11 @@ "minecraft:mangrove_chest_boat", "minecraft:cherry_boat", "minecraft:bamboo_raft", - "minecraft:bamboo_chest_raft" + "minecraft:bamboo_chest_raft", + "minecraft:pale_oak_boat" ], "minecraft:boats": [ + "minecraft:pale_oak_chest_boat", "minecraft:cherry_chest_boat", "minecraft:oak_chest_boat", "minecraft:mangrove_boat", @@ -43,7 +46,8 @@ "minecraft:mangrove_chest_boat", "minecraft:cherry_boat", "minecraft:bamboo_raft", - "minecraft:bamboo_chest_raft" + "minecraft:bamboo_chest_raft", + "minecraft:pale_oak_boat" ], "minecraft:bookshelf_books": [ "minecraft:written_book", @@ -151,7 +155,8 @@ "minecraft:oxidized_copper_door", "minecraft:waxed_copper_door", "minecraft:waxed_exposed_copper_door", - "minecraft:waxed_oxidized_copper_door" + "minecraft:waxed_oxidized_copper_door", + "minecraft:pale_oak_door" ], "minecraft:golden_tier": [ "minecraft:golden_sword", @@ -170,6 +175,7 @@ "minecraft:hanging_sign": [ "minecraft:mangrove_hanging_sign", "minecraft:bamboo_hanging_sign", + "minecraft:pale_oak_hanging_sign", "minecraft:spruce_hanging_sign", "minecraft:birch_hanging_sign", "minecraft:cherry_hanging_sign", @@ -318,6 +324,9 @@ "minecraft:golden_pickaxe", "minecraft:netherite_pickaxe" ], + "minecraft:is_shears": [ + "minecraft:shears" + ], "minecraft:is_shovel": [ "minecraft:iron_shovel", "minecraft:wooden_shovel", @@ -382,6 +391,7 @@ "minecraft:writable_book" ], "minecraft:logs": [ + "minecraft:stripped_oak_log", "minecraft:mangrove_wood", "minecraft:spruce_wood", "minecraft:stripped_cherry_wood", @@ -390,12 +400,14 @@ "minecraft:spruce_log", "minecraft:acacia_wood", "minecraft:stripped_acacia_wood", + "minecraft:pale_oak_wood", "minecraft:stripped_warped_hyphae", "minecraft:acacia_log", "minecraft:stripped_warped_stem", "minecraft:oak_log", "minecraft:birch_log", "minecraft:jungle_log", + "minecraft:stripped_pale_oak_wood", "minecraft:dark_oak_log", "minecraft:jungle_wood", "minecraft:stripped_jungle_wood", @@ -405,10 +417,10 @@ "minecraft:stripped_oak_wood", "minecraft:stripped_birch_wood", "minecraft:stripped_dark_oak_wood", - "minecraft:stripped_oak_log", "minecraft:stripped_dark_oak_log", "minecraft:mangrove_log", "minecraft:stripped_jungle_log", + "minecraft:stripped_pale_oak_log", "minecraft:stripped_mangrove_wood", "minecraft:crimson_hyphae", "minecraft:stripped_cherry_log", @@ -416,6 +428,7 @@ "minecraft:stripped_acacia_log", "minecraft:crimson_stem", "minecraft:warped_hyphae", + "minecraft:pale_oak_log", "minecraft:stripped_spruce_log", "minecraft:warped_stem", "minecraft:stripped_crimson_hyphae", @@ -424,6 +437,7 @@ "minecraft:stripped_mangrove_log" ], "minecraft:logs_that_burn": [ + "minecraft:stripped_oak_log", "minecraft:mangrove_wood", "minecraft:spruce_wood", "minecraft:stripped_cherry_wood", @@ -431,10 +445,12 @@ "minecraft:spruce_log", "minecraft:acacia_wood", "minecraft:stripped_acacia_wood", + "minecraft:pale_oak_wood", "minecraft:acacia_log", "minecraft:oak_log", "minecraft:birch_log", "minecraft:jungle_log", + "minecraft:stripped_pale_oak_wood", "minecraft:dark_oak_log", "minecraft:jungle_wood", "minecraft:stripped_jungle_wood", @@ -444,14 +460,15 @@ "minecraft:stripped_oak_wood", "minecraft:stripped_birch_wood", "minecraft:stripped_dark_oak_wood", - "minecraft:stripped_oak_log", "minecraft:stripped_dark_oak_log", "minecraft:mangrove_log", "minecraft:stripped_jungle_log", + "minecraft:stripped_pale_oak_log", "minecraft:stripped_mangrove_wood", "minecraft:stripped_cherry_log", "minecraft:stripped_birch_log", "minecraft:stripped_acacia_log", + "minecraft:pale_oak_log", "minecraft:stripped_spruce_log", "minecraft:cherry_wood", "minecraft:cherry_log", @@ -505,6 +522,7 @@ "minecraft:acacia_planks", "minecraft:bamboo_planks", "minecraft:warped_planks", + "minecraft:pale_oak_planks", "minecraft:crimson_planks", "minecraft:cherry_planks" ], @@ -521,6 +539,7 @@ "minecraft:bamboo_hanging_sign", "minecraft:warped_sign", "minecraft:spruce_sign", + "minecraft:pale_oak_hanging_sign", "minecraft:spruce_hanging_sign", "minecraft:acacia_sign", "minecraft:birch_hanging_sign", @@ -534,7 +553,8 @@ "minecraft:acacia_hanging_sign", "minecraft:dark_oak_hanging_sign", "minecraft:crimson_hanging_sign", - "minecraft:warped_hanging_sign" + "minecraft:warped_hanging_sign", + "minecraft:pale_oak_sign" ], "minecraft:soul_fire_base_blocks": [ "minecraft:soul_soil", @@ -596,6 +616,7 @@ "minecraft:piglin_spawn_egg", "minecraft:wither_skeleton_spawn_egg", "minecraft:donkey_spawn_egg", + "minecraft:creaking_spawn_egg", "minecraft:mule_spawn_egg", "minecraft:skeleton_horse_spawn_egg", "minecraft:zombie_horse_spawn_egg", @@ -667,6 +688,7 @@ "minecraft:golden_boots" ], "minecraft:trim_materials": [ + "minecraft:resin_brick", "minecraft:diamond", "minecraft:iron_ingot", "minecraft:gold_ingot", @@ -743,6 +765,7 @@ "minecraft:red_carpet", "minecraft:brown_carpet", "minecraft:light_blue_wool", + "minecraft:green_carpet", "minecraft:white_wool", "minecraft:magenta_wool", "minecraft:yellow_wool", @@ -756,8 +779,7 @@ "minecraft:orange_carpet", "minecraft:light_blue_carpet", "minecraft:gray_carpet", - "minecraft:light_gray_carpet", - "minecraft:green_carpet" + "minecraft:light_gray_carpet" ], "minecraft:warped_stems": [ "minecraft:stripped_warped_hyphae", @@ -771,6 +793,7 @@ "minecraft:spruce_slab", "minecraft:bamboo_slab", "minecraft:warped_slab", + "minecraft:pale_oak_slab", "minecraft:mangrove_slab", "minecraft:cherry_slab", "minecraft:jungle_slab", From 94c258a4c910ffe39e6ca3c09ec3ff492713f0c1 Mon Sep 17 00:00:00 2001 From: onebeastchris Date: Tue, 10 Dec 2024 01:26:36 +0800 Subject: [PATCH 21/31] Update loom (and gradle), create basic recipes when there are too many possible combinations, update adapters --- .../kotlin/geyser.base-conventions.gradle.kts | 4 +- .../java/JavaRecipeBookAddTranslator.java | 67 +++++++++++++++++-- gradle.properties | 3 - gradle/libs.versions.toml | 4 +- gradle/wrapper/gradle-wrapper.properties | 2 +- gradlew | 2 +- 6 files changed, 68 insertions(+), 14 deletions(-) diff --git a/build-logic/src/main/kotlin/geyser.base-conventions.gradle.kts b/build-logic/src/main/kotlin/geyser.base-conventions.gradle.kts index 093f0a8c0..045015fe1 100644 --- a/build-logic/src/main/kotlin/geyser.base-conventions.gradle.kts +++ b/build-logic/src/main/kotlin/geyser.base-conventions.gradle.kts @@ -26,8 +26,6 @@ dependencies { } repositories { - // mavenLocal() - mavenCentral() // Floodgate, Cumulus etc. @@ -69,4 +67,6 @@ repositories { // For Adventure snapshots maven("https://s01.oss.sonatype.org/content/repositories/snapshots/") + + //mavenLocal() } diff --git a/core/src/main/java/org/geysermc/geyser/translator/protocol/java/JavaRecipeBookAddTranslator.java b/core/src/main/java/org/geysermc/geyser/translator/protocol/java/JavaRecipeBookAddTranslator.java index 96c5951d5..8e83c9f55 100644 --- a/core/src/main/java/org/geysermc/geyser/translator/protocol/java/JavaRecipeBookAddTranslator.java +++ b/core/src/main/java/org/geysermc/geyser/translator/protocol/java/JavaRecipeBookAddTranslator.java @@ -28,6 +28,7 @@ package org.geysermc.geyser.translator.protocol.java; import com.google.common.collect.Lists; import it.unimi.dsi.fastutil.Pair; import it.unimi.dsi.fastutil.ints.Int2ObjectMap; +import it.unimi.dsi.fastutil.ints.IntComparators; import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap; import net.kyori.adventure.key.Key; import org.checkerframework.checker.nullness.qual.Nullable; @@ -75,12 +76,14 @@ import org.geysermc.mcprotocollib.protocol.packet.ingame.clientbound.Clientbound import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; +import java.util.Comparator; import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Objects; import java.util.Set; import java.util.UUID; +import java.util.stream.Collectors; @Translator(packet = ClientboundRecipeBookAddPacket.class) public class JavaRecipeBookAddTranslator extends PacketTranslator { @@ -386,10 +389,64 @@ public class JavaRecipeBookAddTranslator extends PacketTranslator descriptors.get(0)).toList()), - output - ); + + int totalSimpleRecipes = inputs.stream().mapToInt(List::size).max().orElse(1); + + // Sort inputs to create "uniform" simple recipes, if possible + inputs = inputs.stream() + .map(descriptors -> descriptors.stream() + .sorted(ItemDescriptorWithCountComparator.INSTANCE) + .collect(Collectors.toList())) + .collect(Collectors.toList()); + + List> finalRecipes = new ArrayList<>(totalSimpleRecipes); + for (int i = 0; i < totalSimpleRecipes; i++) { + int current = i; + finalRecipes.add(inputs.stream().map(descriptors -> { + if (descriptors.size() > current) { + return descriptors.get(current); + } + return descriptors.get(0); + }).toList()); + } + + return Pair.of(finalRecipes, output); + } + + static class ItemDescriptorWithCountComparator implements Comparator { + + static ItemDescriptorWithCountComparator INSTANCE = new ItemDescriptorWithCountComparator(); + + @Override + public int compare(ItemDescriptorWithCount o1, ItemDescriptorWithCount o2) { + String tag1 = null, tag2 = null; + + // Collect item tags first + if (o1.getDescriptor() instanceof ItemTagDescriptor itemTagDescriptor) { + tag1 = itemTagDescriptor.getItemTag(); + } + + if (o2.getDescriptor() instanceof ItemTagDescriptor itemTagDescriptor) { + tag2 = itemTagDescriptor.getItemTag(); + } + + if (tag1 != null || tag2 != null) { + if (tag1 != null && tag2 != null) { + return tag1.compareTo(tag2); // Just sort based on their string id + } + + if (tag1 != null) { + return -1; + } + + return 1; // the second is an item tag; which should be r + } + + if (o1.getDescriptor() instanceof DefaultDescriptor defaultDescriptor1 && o2.getDescriptor() instanceof DefaultDescriptor defaultDescriptor2) { + return IntComparators.NATURAL_COMPARATOR.compare(defaultDescriptor1.getItemId().getRuntimeId(), defaultDescriptor2.getItemId().getRuntimeId()); + } + + throw new IllegalStateException("Unable to compare unknown item descriptors: " + o1 + " and " + o2); + } } } diff --git a/gradle.properties b/gradle.properties index 473c104f4..c380ec371 100644 --- a/gradle.properties +++ b/gradle.properties @@ -6,9 +6,6 @@ org.gradle.parallel=true org.gradle.caching=true org.gradle.vfs.watch=false -# TODO remove once architectury loom updates to 1.8 -loom.ignoreDependencyLoomVersionValidation=true - group=org.geysermc id=geyser version=2.6.0-SNAPSHOT diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 686064926..1166bab35 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -25,7 +25,7 @@ jline = "3.21.0" terminalconsoleappender = "1.2.0" folia = "1.19.4-R0.1-SNAPSHOT" viaversion = "4.9.2" -adapters = "1.15-SNAPSHOT" +adapters = "1.16-SNAPSHOT" cloud = "2.0.0-rc.2" cloud-minecraft = "2.0.0-beta.9" cloud-minecraft-modded = "2.0.0-beta.10" @@ -46,7 +46,7 @@ mockito = "5.+" indra = "3.1.3" shadow = "8.1.1" architectury-plugin = "3.4-SNAPSHOT" -architectury-loom = "1.7-SNAPSHOT" +architectury-loom = "1.9-SNAPSHOT" minotaur = "2.8.7" lombok = "8.4" blossom = "2.1.0" diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index a4413138c..94113f200 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.8-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.11-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/gradlew b/gradlew index 1aa94a426..b740cf133 100755 --- a/gradlew +++ b/gradlew @@ -55,7 +55,7 @@ # Darwin, MinGW, and NonStop. # # (3) This script is generated from the Groovy template -# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt # within the Gradle project. # # You can find Gradle at https://github.com/gradle/gradle/. From 1f3590d48885d380fa1e06c8fbdced68d40b1d72 Mon Sep 17 00:00:00 2001 From: onebeastchris Date: Tue, 10 Dec 2024 03:01:09 +0800 Subject: [PATCH 22/31] revert map color changes --- .../org/geysermc/geyser/level/MapColor.java | 507 +++++++++--------- 1 file changed, 257 insertions(+), 250 deletions(-) diff --git a/core/src/main/java/org/geysermc/geyser/level/MapColor.java b/core/src/main/java/org/geysermc/geyser/level/MapColor.java index 4b891e9b7..a599f9146 100644 --- a/core/src/main/java/org/geysermc/geyser/level/MapColor.java +++ b/core/src/main/java/org/geysermc/geyser/level/MapColor.java @@ -26,261 +26,268 @@ package org.geysermc.geyser.level; public enum MapColor { - COLOR_0(0), - COLOR_1(0), - COLOR_2(0), - COLOR_3(0), - COLOR_4(-10912473), - COLOR_5(-9594576), - COLOR_6(-8408520), - COLOR_7(-12362211), - COLOR_8(-5331853), - COLOR_9(-2766452), - COLOR_10(-530013), - COLOR_11(-8225962), - COLOR_12(-7566196), - COLOR_13(-5526613), - COLOR_14(-3684409), - COLOR_15(-9868951), - COLOR_16(-4980736), - COLOR_17(-2359296), - COLOR_18(-65536), - COLOR_19(-7929856), - COLOR_20(-9408332), - COLOR_21(-7697700), - COLOR_22(-6250241), - COLOR_23(-11250553), - COLOR_24(-9079435), - COLOR_25(-7303024), - COLOR_26(-5789785), - COLOR_27(-10987432), - COLOR_28(-16754944), - COLOR_29(-16750080), - COLOR_30(-16745472), - COLOR_31(-16760576), - COLOR_32(-4934476), - COLOR_33(-2302756), - COLOR_34(-1), - COLOR_35(-7895161), - COLOR_36(-9210239), - COLOR_37(-7499618), - COLOR_38(-5986120), - COLOR_39(-11118495), - COLOR_40(-9810890), - COLOR_41(-8233406), - COLOR_42(-6853299), - COLOR_43(-11585240), - COLOR_44(-11579569), - COLOR_45(-10461088), - COLOR_46(-9408400), - COLOR_47(-12895429), - COLOR_48(-13816396), - COLOR_49(-13158436), - COLOR_50(-12566273), - COLOR_51(-14605945), - COLOR_52(-10202062), - COLOR_53(-8690114), - COLOR_54(-7375032), - COLOR_55(-11845850), - COLOR_56(-4935252), - COLOR_57(-2303533), - COLOR_58(-779), - COLOR_59(-7895679), - COLOR_60(-6792924), - COLOR_61(-4559572), - COLOR_62(-2588877), - COLOR_63(-9288933), - COLOR_64(-8571496), - COLOR_65(-6733382), - COLOR_66(-5092136), - COLOR_67(-10606478), - COLOR_68(-12030824), - COLOR_69(-10976070), - COLOR_70(-10053160), - COLOR_71(-13217422), - COLOR_72(-6184668), - COLOR_73(-3816148), - COLOR_74(-1710797), - COLOR_75(-8816357), - COLOR_76(-10907631), - COLOR_77(-9588715), - COLOR_78(-8401895), - COLOR_79(-12358643), - COLOR_80(-5613196), - COLOR_81(-3117682), - COLOR_82(-884827), - COLOR_83(-8371369), - COLOR_84(-13290187), - COLOR_85(-12500671), - COLOR_86(-11776948), - COLOR_87(-14145496), - COLOR_88(-9671572), - COLOR_89(-8092540), - COLOR_90(-6710887), - COLOR_91(-11447983), - COLOR_92(-13280916), - COLOR_93(-12489340), - COLOR_94(-11763815), - COLOR_95(-14138543), - COLOR_96(-10933123), - COLOR_97(-9619815), - COLOR_98(-8437838), - COLOR_99(-12377762), - COLOR_100(-14404227), - COLOR_101(-13876839), - COLOR_102(-13415246), - COLOR_103(-14997410), - COLOR_104(-12045020), - COLOR_105(-10993364), - COLOR_106(-10073037), - COLOR_107(-13228005), - COLOR_108(-12035804), - COLOR_109(-10982100), - COLOR_110(-10059981), - COLOR_111(-13221093), - COLOR_112(-9690076), - COLOR_113(-8115156), - COLOR_114(-6737101), - COLOR_115(-11461861), - COLOR_116(-15658735), - COLOR_117(-15395563), - COLOR_118(-15132391), - COLOR_119(-15921907), - COLOR_120(-5199818), - COLOR_121(-2634430), - COLOR_122(-332211), - COLOR_123(-8094168), - COLOR_124(-12543338), - COLOR_125(-11551561), - COLOR_126(-10691627), - COLOR_127(-13601936), - COLOR_128(-13346124), - COLOR_129(-12620068), - COLOR_130(-11894529), - COLOR_131(-14204025), - COLOR_132(-16738008), - COLOR_133(-16729294), - COLOR_134(-16721606), - COLOR_135(-16748002), - COLOR_136(-10798046), - COLOR_137(-9483734), - COLOR_138(-8301007), - COLOR_139(-12309223), - COLOR_140(-11599616), - COLOR_141(-10485504), - COLOR_142(-9436672), - COLOR_143(-12910336), - COLOR_144(-7111567), - COLOR_145(-4941686), - COLOR_146(-3034719), - COLOR_147(-9544363), - COLOR_148(-9422567), - COLOR_149(-7780833), - COLOR_150(-6335964), - COLOR_151(-11261165), - COLOR_152(-9880244), - COLOR_153(-8369315), - COLOR_154(-6989972), - COLOR_155(-11653575), - COLOR_156(-11580319), - COLOR_157(-10461833), - COLOR_158(-9409398), - COLOR_159(-12895927), - COLOR_160(-8168167), - COLOR_161(-6262241), - COLOR_162(-4553436), - COLOR_163(-10336749), - COLOR_164(-12037595), - COLOR_165(-10984403), - COLOR_166(-9997003), - COLOR_167(-13222628), - COLOR_168(-9423305), - COLOR_169(-7716285), - COLOR_170(-6271666), - COLOR_171(-11261911), - COLOR_172(-14148584), - COLOR_173(-13556962), - COLOR_174(-13031133), - COLOR_175(-14805742), - COLOR_176(-10532027), - COLOR_177(-9151404), - COLOR_178(-7902366), - COLOR_179(-12109773), - COLOR_180(-12763072), - COLOR_181(-11841713), - COLOR_182(-11051940), - COLOR_183(-13750224), - COLOR_184(-11128002), - COLOR_185(-9879989), - COLOR_186(-8763048), - COLOR_187(-12573138), - COLOR_188(-13292736), - COLOR_189(-12503729), - COLOR_190(-11780516), - COLOR_191(-14147536), - COLOR_192(-13294824), - COLOR_193(-12506338), - COLOR_194(-11783645), - COLOR_195(-14149102), - COLOR_196(-13289187), - COLOR_197(-12499420), - COLOR_198(-11775446), - COLOR_199(-14144746), - COLOR_200(-10212832), - COLOR_201(-8768729), - COLOR_202(-7455698), - COLOR_203(-11854056), - COLOR_204(-15069429), - COLOR_205(-14740979), - COLOR_206(-14346736), - COLOR_207(-15529208), - COLOR_208(-8052446), - COLOR_209(-6084310), - COLOR_210(-4378575), - COLOR_211(-10217191), - COLOR_212(-9950140), - COLOR_213(-8440237), - COLOR_214(-7061663), - COLOR_215(-11656909), - COLOR_216(-12578540), - COLOR_217(-11594471), - COLOR_218(-10741475), - COLOR_219(-13628145), - COLOR_220(-15771554), - COLOR_221(-15569805), - COLOR_222(-15303034), - COLOR_223(-16039354), - COLOR_224(-14130078), - COLOR_225(-13469064), - COLOR_226(-12939636), - COLOR_227(-14791862), - COLOR_228(-12837077), - COLOR_229(-11918027), - COLOR_230(-11129794), - COLOR_231(-13822176), - COLOR_232(-15827107), - COLOR_233(-15623310), - COLOR_234(-15420283), - COLOR_235(-16097466), - COLOR_236(-12171706), - COLOR_237(-11119018), - COLOR_238(-10197916), - COLOR_239(-13355980), - COLOR_240(-6784153), - COLOR_241(-4548994), - COLOR_242(-2576493), - COLOR_243(-9282483), - COLOR_244(-10914455), - COLOR_245(-9596799), - COLOR_246(-8411242), - COLOR_247(-12363697); + COLOR_0(-1, -1, -1), + COLOR_1(-1, -1, -1), + COLOR_2(-1, -1, -1), + COLOR_3(-1, -1, -1), + COLOR_4(89, 125, 39), + COLOR_5(109, 153, 48), + COLOR_6(127, 178, 56), + COLOR_7(67, 94, 29), + COLOR_8(174, 164, 115), + COLOR_9(213, 201, 140), + COLOR_10(247, 233, 163), + COLOR_11(130, 123, 86), + COLOR_12(140, 140, 140), + COLOR_13(171, 171, 171), + COLOR_14(199, 199, 199), + COLOR_15(105, 105, 105), + COLOR_16(180, 0, 0), + COLOR_17(220, 0, 0), + COLOR_18(255, 0, 0), + COLOR_19(135, 0, 0), + COLOR_20(112, 112, 180), + COLOR_21(138, 138, 220), + COLOR_22(160, 160, 255), + COLOR_23(84, 84, 135), + COLOR_24(117, 117, 117), + COLOR_25(144, 144, 144), + COLOR_26(167, 167, 167), + COLOR_27(88, 88, 88), + COLOR_28(0, 87, 0), + COLOR_29(0, 106, 0), + COLOR_30(0, 124, 0), + COLOR_31(0, 65, 0), + COLOR_32(180, 180, 180), + COLOR_33(220, 220, 220), + COLOR_34(255, 255, 255), + COLOR_35(135, 135, 135), + COLOR_36(115, 118, 129), + COLOR_37(141, 144, 158), + COLOR_38(164, 168, 184), + COLOR_39(86, 88, 97), + COLOR_40(106, 76, 54), + COLOR_41(130, 94, 66), + COLOR_42(151, 109, 77), + COLOR_43(79, 57, 40), + COLOR_44(79, 79, 79), + COLOR_45(96, 96, 96), + COLOR_46(112, 112, 112), + COLOR_47(59, 59, 59), + COLOR_48(45, 45, 180), + COLOR_49(55, 55, 220), + COLOR_50(64, 64, 255), + COLOR_51(33, 33, 135), + COLOR_52(100, 84, 50), + COLOR_53(123, 102, 62), + COLOR_54(143, 119, 72), + COLOR_55(75, 63, 38), + COLOR_56(180, 177, 172), + COLOR_57(220, 217, 211), + COLOR_58(255, 252, 245), + COLOR_59(135, 133, 129), + COLOR_60(152, 89, 36), + COLOR_61(186, 109, 44), + COLOR_62(216, 127, 51), + COLOR_63(114, 67, 27), + COLOR_64(125, 53, 152), + COLOR_65(153, 65, 186), + COLOR_66(178, 76, 216), + COLOR_67(94, 40, 114), + COLOR_68(72, 108, 152), + COLOR_69(88, 132, 186), + COLOR_70(102, 153, 216), + COLOR_71(54, 81, 114), + COLOR_72(161, 161, 36), + COLOR_73(197, 197, 44), + COLOR_74(229, 229, 51), + COLOR_75(121, 121, 27), + COLOR_76(89, 144, 17), + COLOR_77(109, 176, 21), + COLOR_78(127, 204, 25), + COLOR_79(67, 108, 13), + COLOR_80(170, 89, 116), + COLOR_81(208, 109, 142), + COLOR_82(242, 127, 165), + COLOR_83(128, 67, 87), + COLOR_84(53, 53, 53), + COLOR_85(65, 65, 65), + COLOR_86(76, 76, 76), + COLOR_87(40, 40, 40), + COLOR_88(108, 108, 108), + COLOR_89(132, 132, 132), + COLOR_90(153, 153, 153), + COLOR_91(81, 81, 81), + COLOR_92(53, 89, 108), + COLOR_93(65, 109, 132), + COLOR_94(76, 127, 153), + COLOR_95(40, 67, 81), + COLOR_96(89, 44, 125), + COLOR_97(109, 54, 153), + COLOR_98(127, 63, 178), + COLOR_99(67, 33, 94), + COLOR_100(36, 53, 125), + COLOR_101(44, 65, 153), + COLOR_102(51, 76, 178), + COLOR_103(27, 40, 94), + COLOR_104(72, 53, 36), + COLOR_105(88, 65, 44), + COLOR_106(102, 76, 51), + COLOR_107(54, 40, 27), + COLOR_108(72, 89, 36), + COLOR_109(88, 109, 44), + COLOR_110(102, 127, 51), + COLOR_111(54, 67, 27), + COLOR_112(108, 36, 36), + COLOR_113(132, 44, 44), + COLOR_114(153, 51, 51), + COLOR_115(81, 27, 27), + COLOR_116(17, 17, 17), + COLOR_117(21, 21, 21), + COLOR_118(25, 25, 25), + COLOR_119(13, 13, 13), + COLOR_120(176, 168, 54), + COLOR_121(215, 205, 66), + COLOR_122(250, 238, 77), + COLOR_123(132, 126, 40), + COLOR_124(64, 154, 150), + COLOR_125(79, 188, 183), + COLOR_126(92, 219, 213), + COLOR_127(48, 115, 112), + COLOR_128(52, 90, 180), + COLOR_129(63, 110, 220), + COLOR_130(74, 128, 255), + COLOR_131(39, 67, 135), + COLOR_132(0, 153, 40), + COLOR_133(0, 187, 50), + COLOR_134(0, 217, 58), + COLOR_135(0, 114, 30), + COLOR_136(91, 60, 34), + COLOR_137(111, 74, 42), + COLOR_138(129, 86, 49), + COLOR_139(68, 45, 25), + COLOR_140(79, 1, 0), + COLOR_141(96, 1, 0), + COLOR_142(112, 2, 0), + COLOR_143(59, 1, 0), + COLOR_144(147, 124, 113), + COLOR_145(180, 152, 138), + COLOR_146(209, 177, 161), + COLOR_147(110, 93, 85), + COLOR_148(112, 57, 25), + COLOR_149(137, 70, 31), + COLOR_150(159, 82, 36), + COLOR_151(84, 43, 19), + COLOR_152(105, 61, 76), + COLOR_153(128, 75, 93), + COLOR_154(149, 87, 108), + COLOR_155(78, 46, 57), + COLOR_156(79, 76, 97), + COLOR_157(96, 93, 119), + COLOR_158(112, 108, 138), + COLOR_159(59, 57, 73), + COLOR_160(131, 93, 25), + COLOR_161(160, 114, 31), + COLOR_162(186, 133, 36), + COLOR_163(98, 70, 19), + COLOR_164(72, 82, 37), + COLOR_165(88, 100, 45), + COLOR_166(103, 117, 53), + COLOR_167(54, 61, 28), + COLOR_168(112, 54, 55), + COLOR_169(138, 66, 67), + COLOR_170(160, 77, 78), + COLOR_171(84, 40, 41), + COLOR_172(40, 28, 24), + COLOR_173(49, 35, 30), + COLOR_174(57, 41, 35), + COLOR_175(30, 21, 18), + COLOR_176(95, 75, 69), + COLOR_177(116, 92, 84), + COLOR_178(135, 107, 98), + COLOR_179(71, 56, 51), + COLOR_180(61, 64, 64), + COLOR_181(75, 79, 79), + COLOR_182(87, 92, 92), + COLOR_183(46, 48, 48), + COLOR_184(86, 51, 62), + COLOR_185(105, 62, 75), + COLOR_186(122, 73, 88), + COLOR_187(64, 38, 46), + COLOR_188(53, 43, 64), + COLOR_189(65, 53, 79), + COLOR_190(76, 62, 92), + COLOR_191(40, 32, 48), + COLOR_192(53, 35, 24), + COLOR_193(65, 43, 30), + COLOR_194(76, 50, 35), + COLOR_195(40, 26, 18), + COLOR_196(53, 57, 29), + COLOR_197(65, 70, 36), + COLOR_198(76, 82, 42), + COLOR_199(40, 43, 22), + COLOR_200(100, 42, 32), + COLOR_201(122, 51, 39), + COLOR_202(142, 60, 46), + COLOR_203(75, 31, 24), + COLOR_204(26, 15, 11), + COLOR_205(31, 18, 13), + COLOR_206(37, 22, 16), + COLOR_207(19, 11, 8), + COLOR_208(133, 33, 34), + COLOR_209(163, 41, 42), + COLOR_210(189, 48, 49), + COLOR_211(100, 25, 25), + COLOR_212(104, 44, 68), + COLOR_213(127, 54, 83), + COLOR_214(148, 63, 97), + COLOR_215(78, 33, 51), + COLOR_216(64, 17, 20), + COLOR_217(79, 21, 25), + COLOR_218(92, 25, 29), + COLOR_219(48, 13, 15), + COLOR_220(15, 88, 94), + COLOR_221(18, 108, 115), + COLOR_222(22, 126, 134), + COLOR_223(11, 66, 70), + COLOR_224(40, 100, 98), + COLOR_225(50, 122, 120), + COLOR_226(58, 142, 140), + COLOR_227(30, 75, 74), + COLOR_228(60, 31, 43), + COLOR_229(74, 37, 53), + COLOR_230(86, 44, 62), + COLOR_231(45, 23, 32), + COLOR_232(14, 127, 93), + COLOR_233(17, 155, 114), + COLOR_234(20, 180, 133), + COLOR_235(10, 95, 70), + COLOR_236(70, 70, 70), + COLOR_237(86, 86, 86), + COLOR_238(100, 100, 100), + COLOR_239(52, 52, 52), + COLOR_240(152, 123, 103), + COLOR_241(186, 150, 126), + COLOR_242(216, 175, 147), + COLOR_243(114, 92, 77), + COLOR_244(89, 117, 105), + COLOR_245(109, 144, 129), + COLOR_246(127, 167, 150), + COLOR_247(67, 88, 79); private static final MapColor[] VALUES = values(); private final int value; - MapColor(int value) { - this.value = value; + MapColor(int red, int green, int blue) { + int alpha = 255; + if (red == -1 && green == -1 && blue == -1) + alpha = 0; // transparent + + this.value = ((alpha & 0xFF) << 24) | + ((red & 0xFF) << 16) | + ((green & 0xFF) << 8) | + (blue & 0xFF); } public static MapColor fromId(int id) { From c575689f2e8cbc8c70882c064f585bdfe5ee01ad Mon Sep 17 00:00:00 2001 From: onebeastchris Date: Tue, 10 Dec 2024 03:11:57 +0800 Subject: [PATCH 23/31] let's not spam debug mode with an unused entity event --- .../protocol/java/entity/JavaEntityEventTranslator.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/core/src/main/java/org/geysermc/geyser/translator/protocol/java/entity/JavaEntityEventTranslator.java b/core/src/main/java/org/geysermc/geyser/translator/protocol/java/entity/JavaEntityEventTranslator.java index 504348b5b..2e2734410 100644 --- a/core/src/main/java/org/geysermc/geyser/translator/protocol/java/entity/JavaEntityEventTranslator.java +++ b/core/src/main/java/org/geysermc/geyser/translator/protocol/java/entity/JavaEntityEventTranslator.java @@ -295,6 +295,9 @@ public class JavaEntityEventTranslator extends PacketTranslator Date: Mon, 9 Dec 2024 22:42:40 -0500 Subject: [PATCH 24/31] Some touch-ups --- .../main/kotlin/geyser.base-conventions.gradle.kts | 4 ++-- .../type/living/animal/tameable/WolfEntity.java | 6 +++++- .../entity/type/living/monster/CreakingEntity.java | 11 +++++++---- .../java/org/geysermc/geyser/item/type/Item.java | 12 +++++++++--- 4 files changed, 23 insertions(+), 10 deletions(-) diff --git a/build-logic/src/main/kotlin/geyser.base-conventions.gradle.kts b/build-logic/src/main/kotlin/geyser.base-conventions.gradle.kts index 045015fe1..093f0a8c0 100644 --- a/build-logic/src/main/kotlin/geyser.base-conventions.gradle.kts +++ b/build-logic/src/main/kotlin/geyser.base-conventions.gradle.kts @@ -26,6 +26,8 @@ dependencies { } repositories { + // mavenLocal() + mavenCentral() // Floodgate, Cumulus etc. @@ -67,6 +69,4 @@ repositories { // For Adventure snapshots maven("https://s01.oss.sonatype.org/content/repositories/snapshots/") - - //mavenLocal() } diff --git a/core/src/main/java/org/geysermc/geyser/entity/type/living/animal/tameable/WolfEntity.java b/core/src/main/java/org/geysermc/geyser/entity/type/living/animal/tameable/WolfEntity.java index 1b06f3860..ff2d57aef 100644 --- a/core/src/main/java/org/geysermc/geyser/entity/type/living/animal/tameable/WolfEntity.java +++ b/core/src/main/java/org/geysermc/geyser/entity/type/living/animal/tameable/WolfEntity.java @@ -128,7 +128,11 @@ public class WolfEntity extends TameableEntity { public void setBody(ItemStack stack) { super.setBody(stack); isCurseOfBinding = ItemUtils.hasEffect(session, stack, EnchantmentComponent.PREVENT_ARMOR_CHANGE); - repairableItems = GeyserItemStack.from(stack).getComponent(DataComponentType.REPAIRABLE); + if (stack != null && stack.getDataComponents() != null) { + repairableItems = stack.getDataComponents().get(DataComponentType.REPAIRABLE); + } else { + repairableItems = null; + } } @Override diff --git a/core/src/main/java/org/geysermc/geyser/entity/type/living/monster/CreakingEntity.java b/core/src/main/java/org/geysermc/geyser/entity/type/living/monster/CreakingEntity.java index 1a26eb43b..1b9fdd8a4 100644 --- a/core/src/main/java/org/geysermc/geyser/entity/type/living/monster/CreakingEntity.java +++ b/core/src/main/java/org/geysermc/geyser/entity/type/living/monster/CreakingEntity.java @@ -40,14 +40,12 @@ import org.geysermc.mcprotocollib.protocol.data.game.entity.metadata.MetadataTyp import java.util.Optional; import java.util.UUID; - public class CreakingEntity extends MonsterEntity { - - private Vector3i homePosition; - public static final String CREAKING_STATE = "minecraft:creaking_state"; public static final String CREAKING_SWAYING_TICKS = "minecraft:creaking_swaying_ticks"; + private Vector3i homePosition; + public CreakingEntity(GeyserSession session, int entityId, long geyserId, UUID uuid, EntityDefinition definition, Vector3f position, Vector3f motion, float yaw, float pitch, float headYaw) { super(session, entityId, geyserId, uuid, definition, position, motion, yaw, pitch, headYaw); } @@ -62,6 +60,11 @@ public class CreakingEntity extends MonsterEntity { @Override public void addAdditionalSpawnData(AddEntityPacket addEntityPacket) { propertyManager.add(CREAKING_STATE, "neutral"); + // also, the creaking seems to have this minecraft:creaking_swaying_ticks thingy + // which i guess is responsible for some animation? + // it's sent over the network, all 6 "stages" 50ms in between of each other. + // no clue what it's used for tbh, so i'm not gonna bother implementing it + // - chris propertyManager.add(CREAKING_SWAYING_TICKS, 0); propertyManager.applyIntProperties(addEntityPacket.getProperties().getIntProperties()); } diff --git a/core/src/main/java/org/geysermc/geyser/item/type/Item.java b/core/src/main/java/org/geysermc/geyser/item/type/Item.java index b12ab4d67..51750e7b1 100644 --- a/core/src/main/java/org/geysermc/geyser/item/type/Item.java +++ b/core/src/main/java/org/geysermc/geyser/item/type/Item.java @@ -49,10 +49,12 @@ import org.geysermc.geyser.text.MinecraftLocale; import org.geysermc.geyser.translator.item.BedrockItemBuilder; import org.geysermc.geyser.translator.text.MessageTranslator; import org.geysermc.geyser.util.MinecraftKey; +import org.geysermc.mcprotocollib.protocol.data.game.item.component.DataComponent; import org.geysermc.mcprotocollib.protocol.data.game.item.component.DataComponentType; import org.geysermc.mcprotocollib.protocol.data.game.item.component.DataComponents; import org.geysermc.mcprotocollib.protocol.data.game.item.component.DyedItemColor; import org.geysermc.mcprotocollib.protocol.data.game.item.component.ItemEnchantments; +import org.jetbrains.annotations.UnmodifiableView; import java.util.ArrayList; import java.util.HashMap; @@ -103,14 +105,18 @@ public class Item { * Otherwise, prefer using GeyserItemStack's getComponent */ @NonNull + @UnmodifiableView public DataComponents gatherComponents(DataComponents others) { if (others == null) { return baseComponents; } - DataComponents components = baseComponents.clone(); - components.getDataComponents().putAll(others.getDataComponents()); - return new DataComponents(ImmutableMap.copyOf(components.getDataComponents())); + //noinspection UnstableApiUsage + var builder = ImmutableMap., DataComponent>builderWithExpectedSize( + baseComponents.getDataComponents().size() + others.getDataComponents().size()); + builder.putAll(baseComponents.getDataComponents()); + builder.putAll(others.getDataComponents()); + return new DataComponents(builder.build()); } @Nullable From 8779eab5e5e11a781dd04e558744aff3f9228bb1 Mon Sep 17 00:00:00 2001 From: onebeastchris Date: Tue, 10 Dec 2024 20:44:29 +0800 Subject: [PATCH 25/31] Revert a change, ensure that gathering all components works and doesn't throw due to duplicate keys --- .../entity/type/living/animal/tameable/WolfEntity.java | 6 +----- .../main/java/org/geysermc/geyser/item/type/Item.java | 10 +++------- 2 files changed, 4 insertions(+), 12 deletions(-) diff --git a/core/src/main/java/org/geysermc/geyser/entity/type/living/animal/tameable/WolfEntity.java b/core/src/main/java/org/geysermc/geyser/entity/type/living/animal/tameable/WolfEntity.java index ff2d57aef..1b06f3860 100644 --- a/core/src/main/java/org/geysermc/geyser/entity/type/living/animal/tameable/WolfEntity.java +++ b/core/src/main/java/org/geysermc/geyser/entity/type/living/animal/tameable/WolfEntity.java @@ -128,11 +128,7 @@ public class WolfEntity extends TameableEntity { public void setBody(ItemStack stack) { super.setBody(stack); isCurseOfBinding = ItemUtils.hasEffect(session, stack, EnchantmentComponent.PREVENT_ARMOR_CHANGE); - if (stack != null && stack.getDataComponents() != null) { - repairableItems = stack.getDataComponents().get(DataComponentType.REPAIRABLE); - } else { - repairableItems = null; - } + repairableItems = GeyserItemStack.from(stack).getComponent(DataComponentType.REPAIRABLE); } @Override diff --git a/core/src/main/java/org/geysermc/geyser/item/type/Item.java b/core/src/main/java/org/geysermc/geyser/item/type/Item.java index 51750e7b1..c5dff3ad0 100644 --- a/core/src/main/java/org/geysermc/geyser/item/type/Item.java +++ b/core/src/main/java/org/geysermc/geyser/item/type/Item.java @@ -49,7 +49,6 @@ import org.geysermc.geyser.text.MinecraftLocale; import org.geysermc.geyser.translator.item.BedrockItemBuilder; import org.geysermc.geyser.translator.text.MessageTranslator; import org.geysermc.geyser.util.MinecraftKey; -import org.geysermc.mcprotocollib.protocol.data.game.item.component.DataComponent; import org.geysermc.mcprotocollib.protocol.data.game.item.component.DataComponentType; import org.geysermc.mcprotocollib.protocol.data.game.item.component.DataComponents; import org.geysermc.mcprotocollib.protocol.data.game.item.component.DyedItemColor; @@ -111,12 +110,9 @@ public class Item { return baseComponents; } - //noinspection UnstableApiUsage - var builder = ImmutableMap., DataComponent>builderWithExpectedSize( - baseComponents.getDataComponents().size() + others.getDataComponents().size()); - builder.putAll(baseComponents.getDataComponents()); - builder.putAll(others.getDataComponents()); - return new DataComponents(builder.build()); + DataComponents components = baseComponents.clone(); + components.getDataComponents().putAll(others.getDataComponents()); + return new DataComponents(ImmutableMap.copyOf(components.getDataComponents())); } @Nullable From 94d77b403b4ee26516438d58e6fd7f8ac6a52128 Mon Sep 17 00:00:00 2001 From: onebeastchris Date: Tue, 10 Dec 2024 23:13:32 +0800 Subject: [PATCH 26/31] Add some code comments, update BungeeCord version check --- .../bungeecord/GeyserBungeePlugin.java | 2 +- .../living/animal/tameable/WolfEntity.java | 1 + .../geyser/inventory/GeyserItemStack.java | 13 +++++++++++++ .../org/geysermc/geyser/item/type/Item.java | 18 +++++++++++++++--- 4 files changed, 30 insertions(+), 4 deletions(-) diff --git a/bootstrap/bungeecord/src/main/java/org/geysermc/geyser/platform/bungeecord/GeyserBungeePlugin.java b/bootstrap/bungeecord/src/main/java/org/geysermc/geyser/platform/bungeecord/GeyserBungeePlugin.java index 7adfd488f..290bf2a4e 100644 --- a/bootstrap/bungeecord/src/main/java/org/geysermc/geyser/platform/bungeecord/GeyserBungeePlugin.java +++ b/bootstrap/bungeecord/src/main/java/org/geysermc/geyser/platform/bungeecord/GeyserBungeePlugin.java @@ -83,7 +83,7 @@ public class GeyserBungeePlugin extends Plugin implements GeyserBootstrap { // Copied from ViaVersion. // https://github.com/ViaVersion/ViaVersion/blob/b8072aad86695cc8ec6f5e4103e43baf3abf6cc5/bungee/src/main/java/us/myles/ViaVersion/BungeePlugin.java#L43 try { - ProtocolConstants.class.getField("MINECRAFT_1_21"); + ProtocolConstants.class.getField("MINECRAFT_1_21_4"); } catch (NoSuchFieldException e) { geyserLogger.error(" / \\"); geyserLogger.error(" / \\"); diff --git a/core/src/main/java/org/geysermc/geyser/entity/type/living/animal/tameable/WolfEntity.java b/core/src/main/java/org/geysermc/geyser/entity/type/living/animal/tameable/WolfEntity.java index 1b06f3860..b108c9fbe 100644 --- a/core/src/main/java/org/geysermc/geyser/entity/type/living/animal/tameable/WolfEntity.java +++ b/core/src/main/java/org/geysermc/geyser/entity/type/living/animal/tameable/WolfEntity.java @@ -128,6 +128,7 @@ public class WolfEntity extends TameableEntity { public void setBody(ItemStack stack) { super.setBody(stack); isCurseOfBinding = ItemUtils.hasEffect(session, stack, EnchantmentComponent.PREVENT_ARMOR_CHANGE); + // Not using ItemStack#getDataComponents as that wouldn't include default item components repairableItems = GeyserItemStack.from(stack).getComponent(DataComponentType.REPAIRABLE); } diff --git a/core/src/main/java/org/geysermc/geyser/inventory/GeyserItemStack.java b/core/src/main/java/org/geysermc/geyser/inventory/GeyserItemStack.java index c595ea1b5..4ddff305e 100644 --- a/core/src/main/java/org/geysermc/geyser/inventory/GeyserItemStack.java +++ b/core/src/main/java/org/geysermc/geyser/inventory/GeyserItemStack.java @@ -125,6 +125,10 @@ public class GeyserItemStack { return isEmpty() ? null : components; } + /** + * @return whether this GeyserItemStack has any additional components on top of + * the base item components. + */ public boolean hasNonBaseComponents() { return components != null; } @@ -137,6 +141,15 @@ public class GeyserItemStack { return components; } + /** + * Returns the stored data component for a given {@link DataComponentType}, or null. + *

+ * This method will first check the additional components that may exist, + * and fallback to the item's default (or, "base") components if need be. + * @param type the {@link DataComponentType} to query + * @return the value for said type, or null. + * @param the value's type + */ @Nullable public T getComponent(@NonNull DataComponentType type) { if (components == null) { diff --git a/core/src/main/java/org/geysermc/geyser/item/type/Item.java b/core/src/main/java/org/geysermc/geyser/item/type/Item.java index c5dff3ad0..19789e086 100644 --- a/core/src/main/java/org/geysermc/geyser/item/type/Item.java +++ b/core/src/main/java/org/geysermc/geyser/item/type/Item.java @@ -100,21 +100,33 @@ public class Item { } /** - * Returns a modifiable DataComponents map. Should only be used when it must be modified. - * Otherwise, prefer using GeyserItemStack's getComponent + * Returns an unmodifiable {@link DataComponents} view containing known data components. + * Optionally, additional components can be provided to replace (or add to) + * the items' base components. + * To add data components, use {@link GeyserItemStack#getOrCreateComponents()}. */ @NonNull @UnmodifiableView - public DataComponents gatherComponents(DataComponents others) { + public DataComponents gatherComponents(@Nullable DataComponents others) { if (others == null) { return baseComponents; } + // Start with the base components that always exist DataComponents components = baseComponents.clone(); + // Add all additional components; these can override base components! + // e.g. custom stack size components.getDataComponents().putAll(others.getDataComponents()); + + // Return an unmodified map of the merged components return new DataComponents(ImmutableMap.copyOf(components.getDataComponents())); } + /** + * Returns this items value (or null) for a specific {@link DataComponentType}. + * Prefer using {@link GeyserItemStack#getComponent(DataComponentType)} + * to also query additional components that would override the default ones. + */ @Nullable public T getComponent(@NonNull DataComponentType type) { return baseComponents.get(type); From 5b90b114b52131da79e9579adb359041c9b703b2 Mon Sep 17 00:00:00 2001 From: onebeastchris Date: Wed, 11 Dec 2024 01:28:30 +0800 Subject: [PATCH 27/31] Remove unneeded code in CodecProcessor, make Bungee version checker automatically check for the required version --- .../bungeecord/GeyserBungeePlugin.java | 25 ++--- .../geyser/network/CodecProcessor.java | 96 ++----------------- 2 files changed, 20 insertions(+), 101 deletions(-) diff --git a/bootstrap/bungeecord/src/main/java/org/geysermc/geyser/platform/bungeecord/GeyserBungeePlugin.java b/bootstrap/bungeecord/src/main/java/org/geysermc/geyser/platform/bungeecord/GeyserBungeePlugin.java index 290bf2a4e..918c13b93 100644 --- a/bootstrap/bungeecord/src/main/java/org/geysermc/geyser/platform/bungeecord/GeyserBungeePlugin.java +++ b/bootstrap/bungeecord/src/main/java/org/geysermc/geyser/platform/bungeecord/GeyserBungeePlugin.java @@ -41,6 +41,7 @@ import org.geysermc.geyser.command.CommandSourceConverter; import org.geysermc.geyser.command.GeyserCommandSource; import org.geysermc.geyser.configuration.GeyserConfiguration; import org.geysermc.geyser.dump.BootstrapDumpInfo; +import org.geysermc.geyser.network.GameProtocol; import org.geysermc.geyser.ping.GeyserLegacyPingPassthrough; import org.geysermc.geyser.ping.IGeyserPingPassthrough; import org.geysermc.geyser.platform.bungeecord.command.BungeeCommandSource; @@ -58,6 +59,7 @@ import java.net.SocketAddress; import java.nio.file.Path; import java.nio.file.Paths; import java.util.Collection; +import java.util.List; import java.util.Optional; import java.util.UUID; import java.util.concurrent.TimeUnit; @@ -80,18 +82,19 @@ public class GeyserBungeePlugin extends Plugin implements GeyserBootstrap { public void onGeyserInitialize() { GeyserLocale.init(this); - // Copied from ViaVersion. - // https://github.com/ViaVersion/ViaVersion/blob/b8072aad86695cc8ec6f5e4103e43baf3abf6cc5/bungee/src/main/java/us/myles/ViaVersion/BungeePlugin.java#L43 try { - ProtocolConstants.class.getField("MINECRAFT_1_21_4"); - } catch (NoSuchFieldException e) { - geyserLogger.error(" / \\"); - geyserLogger.error(" / \\"); - geyserLogger.error(" / | \\"); - geyserLogger.error(" / | \\ " + GeyserLocale.getLocaleStringLog("geyser.bootstrap.unsupported_proxy", getProxy().getName())); - geyserLogger.error(" / \\ " + GeyserLocale.getLocaleStringLog("geyser.may_not_work_as_intended_all_caps")); - geyserLogger.error(" / o \\"); - geyserLogger.error("/_____________\\"); + List supportedProtocols = ProtocolConstants.SUPPORTED_VERSION_IDS; + if (!supportedProtocols.contains(GameProtocol.getJavaProtocolVersion())) { + geyserLogger.error(" / \\"); + geyserLogger.error(" / \\"); + geyserLogger.error(" / | \\"); + geyserLogger.error(" / | \\ " + GeyserLocale.getLocaleStringLog("geyser.bootstrap.unsupported_proxy", getProxy().getName())); + geyserLogger.error(" / \\ " + GeyserLocale.getLocaleStringLog("geyser.may_not_work_as_intended_all_caps")); + geyserLogger.error(" / o \\"); + geyserLogger.error("/_____________\\"); + } + } catch (Throwable e) { + geyserLogger.warning("Unable to check the versions supported by this proxy! " + e.getMessage()); } if (!this.loadConfig()) { diff --git a/core/src/main/java/org/geysermc/geyser/network/CodecProcessor.java b/core/src/main/java/org/geysermc/geyser/network/CodecProcessor.java index 15aa8bc2c..de654ed62 100644 --- a/core/src/main/java/org/geysermc/geyser/network/CodecProcessor.java +++ b/core/src/main/java/org/geysermc/geyser/network/CodecProcessor.java @@ -35,17 +35,11 @@ import org.cloudburstmc.protocol.bedrock.codec.v291.serializer.MoveEntityAbsolut import org.cloudburstmc.protocol.bedrock.codec.v291.serializer.PlayerHotbarSerializer_v291; import org.cloudburstmc.protocol.bedrock.codec.v291.serializer.SetEntityLinkSerializer_v291; import org.cloudburstmc.protocol.bedrock.codec.v390.serializer.PlayerSkinSerializer_v390; -import org.cloudburstmc.protocol.bedrock.codec.v407.serializer.InventoryContentSerializer_v407; -import org.cloudburstmc.protocol.bedrock.codec.v407.serializer.InventorySlotSerializer_v407; import org.cloudburstmc.protocol.bedrock.codec.v419.serializer.MovePlayerSerializer_v419; import org.cloudburstmc.protocol.bedrock.codec.v486.serializer.BossEventSerializer_v486; import org.cloudburstmc.protocol.bedrock.codec.v557.serializer.SetEntityDataSerializer_v557; import org.cloudburstmc.protocol.bedrock.codec.v662.serializer.SetEntityMotionSerializer_v662; -import org.cloudburstmc.protocol.bedrock.codec.v712.serializer.InventoryContentSerializer_v712; -import org.cloudburstmc.protocol.bedrock.codec.v712.serializer.InventorySlotSerializer_v712; import org.cloudburstmc.protocol.bedrock.codec.v712.serializer.MobArmorEquipmentSerializer_v712; -import org.cloudburstmc.protocol.bedrock.codec.v729.serializer.InventoryContentSerializer_v729; -import org.cloudburstmc.protocol.bedrock.codec.v729.serializer.InventorySlotSerializer_v729; import org.cloudburstmc.protocol.bedrock.codec.v748.serializer.InventoryContentSerializer_v748; import org.cloudburstmc.protocol.bedrock.codec.v748.serializer.InventorySlotSerializer_v748; import org.cloudburstmc.protocol.bedrock.packet.AnvilDamagePacket; @@ -95,6 +89,7 @@ import org.cloudburstmc.protocol.common.util.VarInts; /** * Processes the Bedrock codec to remove or modify unused or unsafe packets and fields. */ +@SuppressWarnings("deprecation") class CodecProcessor { /** @@ -126,27 +121,9 @@ class CodecProcessor { public void deserialize(ByteBuf buffer, BedrockCodecHelper helper, BedrockPacket packet) { } }; - /** * Serializer that throws an exception when trying to deserialize InventoryContentPacket since server-auth inventory is used. */ - private static final BedrockPacketSerializer INVENTORY_CONTENT_SERIALIZER_V407 = new InventoryContentSerializer_v407() { - @Override - public void deserialize(ByteBuf buffer, BedrockCodecHelper helper, InventoryContentPacket packet) { - throw new IllegalArgumentException("Client cannot send InventoryContentPacket in server-auth inventory environment!"); - } - }; - - /** - * Serializer that throws an exception when trying to deserialize InventoryContentPacket since server-auth inventory is used. - */ - private static final BedrockPacketSerializer INVENTORY_CONTENT_SERIALIZER_V712 = new InventoryContentSerializer_v712() { - @Override - public void deserialize(ByteBuf buffer, BedrockCodecHelper helper, InventoryContentPacket packet) { - throw new IllegalArgumentException("Client cannot send InventoryContentPacket in server-auth inventory environment!"); - } - }; - private static final BedrockPacketSerializer INVENTORY_CONTENT_SERIALIZER_V748 = new InventoryContentSerializer_v748() { @Override public void deserialize(ByteBuf buffer, BedrockCodecHelper helper, InventoryContentPacket packet) { @@ -154,40 +131,9 @@ class CodecProcessor { } }; - private static final BedrockPacketSerializer INVENTORY_CONTENT_SERIALIZER_V729 = new InventoryContentSerializer_v729() { - @Override - public void deserialize(ByteBuf buffer, BedrockCodecHelper helper, InventoryContentPacket packet) { - throw new IllegalArgumentException("Client cannot send InventoryContentPacket in server-auth inventory environment!"); - } - }; - - /** - * Serializer that throws an exception when trying to deserialize InventorySlotPacket since server-auth inventory is used. - */ - private static final BedrockPacketSerializer INVENTORY_SLOT_SERIALIZER_V407 = new InventorySlotSerializer_v407() { - @Override - public void deserialize(ByteBuf buffer, BedrockCodecHelper helper, InventorySlotPacket packet) { - throw new IllegalArgumentException("Client cannot send InventorySlotPacket in server-auth inventory environment!"); - } - }; - /* * Serializer that throws an exception when trying to deserialize InventorySlotPacket since server-auth inventory is used. */ - private static final BedrockPacketSerializer INVENTORY_SLOT_SERIALIZER_V712 = new InventorySlotSerializer_v712() { - @Override - public void deserialize(ByteBuf buffer, BedrockCodecHelper helper, InventorySlotPacket packet) { - throw new IllegalArgumentException("Client cannot send InventorySlotPacket in server-auth inventory environment!"); - } - }; - - private static final BedrockPacketSerializer INVENTORY_SLOT_SERIALIZER_V729 = new InventorySlotSerializer_v729() { - @Override - public void deserialize(ByteBuf buffer, BedrockCodecHelper helper, InventorySlotPacket packet) { - throw new IllegalArgumentException("Client cannot send InventorySlotPacket in server-auth inventory environment!"); - } - }; - private static final BedrockPacketSerializer INVENTORY_SLOT_SERIALIZER_V748 = new InventorySlotSerializer_v748() { @Override public void deserialize(ByteBuf buffer, BedrockCodecHelper helper, InventorySlotPacket packet) { @@ -297,32 +243,6 @@ class CodecProcessor { @SuppressWarnings("unchecked") static BedrockCodec processCodec(BedrockCodec codec) { - boolean is748OrAbove = codec.getProtocolVersion() >= 748; - boolean is729OrAbove = codec.getProtocolVersion() >= 729; - boolean is712OrAbove = codec.getProtocolVersion() >= 712; - - BedrockPacketSerializer inventoryContentSerializer; - if (is748OrAbove) { - inventoryContentSerializer = INVENTORY_CONTENT_SERIALIZER_V748; - } else if (is729OrAbove) { - inventoryContentSerializer = INVENTORY_CONTENT_SERIALIZER_V729; - } else if (is712OrAbove) { - inventoryContentSerializer = INVENTORY_CONTENT_SERIALIZER_V712; - } else { - inventoryContentSerializer = INVENTORY_CONTENT_SERIALIZER_V407; - } - - BedrockPacketSerializer inventorySlotSerializer; - if (is748OrAbove) { - inventorySlotSerializer = INVENTORY_SLOT_SERIALIZER_V748; - } else if (is729OrAbove) { - inventorySlotSerializer = INVENTORY_SLOT_SERIALIZER_V729; - } else if (is712OrAbove) { - inventorySlotSerializer = INVENTORY_SLOT_SERIALIZER_V712; - } else { - inventorySlotSerializer = INVENTORY_SLOT_SERIALIZER_V407; - } - BedrockCodec.Builder codecBuilder = codec.toBuilder() // Illegal unused serverbound EDU packets .updateSerializer(PhotoTransferPacket.class, ILLEGAL_SERIALIZER) @@ -350,15 +270,15 @@ class CodecProcessor { .updateSerializer(AnvilDamagePacket.class, IGNORED_SERIALIZER) .updateSerializer(RefreshEntitlementsPacket.class, IGNORED_SERIALIZER) // Illegal when serverbound due to Geyser specific setup - .updateSerializer(InventoryContentPacket.class, inventoryContentSerializer) - .updateSerializer(InventorySlotPacket.class, inventorySlotSerializer) + .updateSerializer(InventoryContentPacket.class, INVENTORY_CONTENT_SERIALIZER_V748) + .updateSerializer(InventorySlotPacket.class, INVENTORY_SLOT_SERIALIZER_V748) .updateSerializer(MovePlayerPacket.class, MOVE_PLAYER_SERIALIZER) .updateSerializer(MoveEntityAbsolutePacket.class, MOVE_ENTITY_SERIALIZER) .updateSerializer(RiderJumpPacket.class, ILLEGAL_SERIALIZER) .updateSerializer(PlayerInputPacket.class, ILLEGAL_SERIALIZER) // Ignored only when serverbound .updateSerializer(BossEventPacket.class, BOSS_EVENT_SERIALIZER) - .updateSerializer(MobArmorEquipmentPacket.class, is712OrAbove ? MOB_ARMOR_EQUIPMENT_SERIALIZER_V712 : MOB_ARMOR_EQUIPMENT_SERIALIZER_V291) + .updateSerializer(MobArmorEquipmentPacket.class, MOB_ARMOR_EQUIPMENT_SERIALIZER_V712) .updateSerializer(PlayerHotbarPacket.class, PLAYER_HOTBAR_SERIALIZER) .updateSerializer(PlayerSkinPacket.class, PLAYER_SKIN_SERIALIZER) .updateSerializer(SetEntityDataPacket.class, SET_ENTITY_DATA_SERIALIZER) @@ -373,12 +293,8 @@ class CodecProcessor { // Ignored bidirectional packets .updateSerializer(ClientCacheStatusPacket.class, IGNORED_SERIALIZER) .updateSerializer(SimpleEventPacket.class, IGNORED_SERIALIZER) - .updateSerializer(MultiplayerSettingsPacket.class, IGNORED_SERIALIZER); - - if (codec.getProtocolVersion() < 685) { - // Ignored bidirectional packets - codecBuilder.updateSerializer(TickSyncPacket.class, IGNORED_SERIALIZER); - } + .updateSerializer(MultiplayerSettingsPacket.class, IGNORED_SERIALIZER) + .updateSerializer(TickSyncPacket.class, IGNORED_SERIALIZER); return codecBuilder.build(); } From b843be58d00b49044fe79c2028299a9ba7703919 Mon Sep 17 00:00:00 2001 From: onebeastchris Date: Wed, 11 Dec 2024 01:41:08 +0800 Subject: [PATCH 28/31] don't set an illegal serializer for removed packet --- .../main/java/org/geysermc/geyser/network/CodecProcessor.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/core/src/main/java/org/geysermc/geyser/network/CodecProcessor.java b/core/src/main/java/org/geysermc/geyser/network/CodecProcessor.java index de654ed62..b3f3af5ff 100644 --- a/core/src/main/java/org/geysermc/geyser/network/CodecProcessor.java +++ b/core/src/main/java/org/geysermc/geyser/network/CodecProcessor.java @@ -83,7 +83,6 @@ import org.cloudburstmc.protocol.bedrock.packet.SettingsCommandPacket; import org.cloudburstmc.protocol.bedrock.packet.SimpleEventPacket; import org.cloudburstmc.protocol.bedrock.packet.SubChunkRequestPacket; import org.cloudburstmc.protocol.bedrock.packet.SubClientLoginPacket; -import org.cloudburstmc.protocol.bedrock.packet.TickSyncPacket; import org.cloudburstmc.protocol.common.util.VarInts; /** @@ -293,8 +292,7 @@ class CodecProcessor { // Ignored bidirectional packets .updateSerializer(ClientCacheStatusPacket.class, IGNORED_SERIALIZER) .updateSerializer(SimpleEventPacket.class, IGNORED_SERIALIZER) - .updateSerializer(MultiplayerSettingsPacket.class, IGNORED_SERIALIZER) - .updateSerializer(TickSyncPacket.class, IGNORED_SERIALIZER); + .updateSerializer(MultiplayerSettingsPacket.class, IGNORED_SERIALIZER); return codecBuilder.build(); } From 4d12c291087b371fc6ef937dfebc4c4e5e4c7474 Mon Sep 17 00:00:00 2001 From: Eclipse Date: Tue, 10 Dec 2024 21:22:39 +0000 Subject: [PATCH 29/31] Fix default attribute modifiers, add more equipment slot group names for attribute modifiers (#5211) --- .../translator/item/ItemTranslator.java | 53 ++++++++++--------- 1 file changed, 29 insertions(+), 24 deletions(-) diff --git a/core/src/main/java/org/geysermc/geyser/translator/item/ItemTranslator.java b/core/src/main/java/org/geysermc/geyser/translator/item/ItemTranslator.java index 54bbe086c..691a320e5 100644 --- a/core/src/main/java/org/geysermc/geyser/translator/item/ItemTranslator.java +++ b/core/src/main/java/org/geysermc/geyser/translator/item/ItemTranslator.java @@ -25,6 +25,7 @@ package org.geysermc.geyser.translator.item; +import net.kyori.adventure.key.Key; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.TranslatableComponent; import net.kyori.adventure.text.format.NamedTextColor; @@ -38,6 +39,7 @@ import org.cloudburstmc.protocol.bedrock.data.definitions.ItemDefinition; import org.cloudburstmc.protocol.bedrock.data.inventory.ItemData; import org.geysermc.geyser.GeyserImpl; import org.geysermc.geyser.api.block.custom.CustomBlockData; +import org.geysermc.geyser.entity.attribute.GeyserAttributeType; import org.geysermc.geyser.inventory.GeyserItemStack; import org.geysermc.geyser.item.Items; import org.geysermc.geyser.item.components.Rarity; @@ -52,6 +54,7 @@ import org.geysermc.geyser.text.ChatColor; import org.geysermc.geyser.text.MinecraftLocale; import org.geysermc.geyser.translator.text.MessageTranslator; import org.geysermc.geyser.util.InventoryUtils; +import org.geysermc.geyser.util.MinecraftKey; import org.geysermc.mcprotocollib.auth.GameProfile; import org.geysermc.mcprotocollib.auth.GameProfile.Texture; import org.geysermc.mcprotocollib.auth.GameProfile.TextureType; @@ -89,16 +92,21 @@ public final class ItemTranslator { ItemAttributeModifiers.EquipmentSlotGroup.FEET }; private static final DecimalFormat ATTRIBUTE_FORMAT = new DecimalFormat("0.#####"); + private static final Key BASE_ATTACK_DAMAGE_ID = MinecraftKey.key("base_attack_damage"); + private static final Key BASE_ATTACK_SPEED_ID = MinecraftKey.key("base_attack_speed"); static { - // These are the only slots that are used and have translation strings + // Maps slot groups to their respective translation names, ordered in their Java edition order in the item tooltip SLOT_NAMES = new EnumMap<>(ItemAttributeModifiers.EquipmentSlotGroup.class); + SLOT_NAMES.put(ItemAttributeModifiers.EquipmentSlotGroup.ANY, "any"); SLOT_NAMES.put(ItemAttributeModifiers.EquipmentSlotGroup.MAIN_HAND, "mainhand"); SLOT_NAMES.put(ItemAttributeModifiers.EquipmentSlotGroup.OFF_HAND, "offhand"); + SLOT_NAMES.put(ItemAttributeModifiers.EquipmentSlotGroup.HAND, "hand"); SLOT_NAMES.put(ItemAttributeModifiers.EquipmentSlotGroup.FEET, "feet"); SLOT_NAMES.put(ItemAttributeModifiers.EquipmentSlotGroup.LEGS, "legs"); SLOT_NAMES.put(ItemAttributeModifiers.EquipmentSlotGroup.CHEST, "chest"); SLOT_NAMES.put(ItemAttributeModifiers.EquipmentSlotGroup.HEAD, "head"); + SLOT_NAMES.put(ItemAttributeModifiers.EquipmentSlotGroup.ARMOR, "armor"); SLOT_NAMES.put(ItemAttributeModifiers.EquipmentSlotGroup.BODY, "body"); } @@ -175,7 +183,7 @@ public final class ItemTranslator { ItemAttributeModifiers attributeModifiers = components.get(DataComponentType.ATTRIBUTE_MODIFIERS); if (attributeModifiers != null && attributeModifiers.isShowInTooltip() && !hideTooltips) { // only add if attribute modifiers do not indicate to hide them - addAttributeLore(attributeModifiers, nbtBuilder, session.locale()); + addAttributeLore(session, attributeModifiers, nbtBuilder, session.locale()); } if (session.isAdvancedTooltips() && !hideTooltips) { @@ -229,31 +237,17 @@ public final class ItemTranslator { * @param modifiers the attribute modifiers of the ItemStack * @param language the locale of the player */ - private static void addAttributeLore(ItemAttributeModifiers modifiers, BedrockItemBuilder builder, String language) { + private static void addAttributeLore(GeyserSession session, ItemAttributeModifiers modifiers, BedrockItemBuilder builder, String language) { // maps each slot to the modifiers applied when in such slot Map> slotsToModifiers = new HashMap<>(); for (ItemAttributeModifiers.Entry entry : modifiers.getModifiers()) { // convert the modifier tag to a lore entry - String loreEntry = attributeToLore(entry.getAttribute(), entry.getModifier(), language); + String loreEntry = attributeToLore(session, entry.getAttribute(), entry.getModifier(), language); if (loreEntry == null) { continue; // invalid or failed } - ItemAttributeModifiers.EquipmentSlotGroup slotGroup = entry.getSlot(); - if (slotGroup == ItemAttributeModifiers.EquipmentSlotGroup.ARMOR) { - // modifier applies to all armor slots - for (ItemAttributeModifiers.EquipmentSlotGroup slot : ARMOR_SLOT_NAMES) { - slotsToModifiers.computeIfAbsent(slot, s -> new ArrayList<>()).add(loreEntry); - } - } else if (slotGroup == ItemAttributeModifiers.EquipmentSlotGroup.ANY) { - // modifier applies to all slots implicitly - for (var slot : SLOT_NAMES.keySet()) { - slotsToModifiers.computeIfAbsent(slot, s -> new ArrayList<>()).add(loreEntry); - } - } else { - // modifier applies to only the specified slot - slotsToModifiers.computeIfAbsent(slotGroup, s -> new ArrayList<>()).add(loreEntry); - } + slotsToModifiers.computeIfAbsent(entry.getSlot(), s -> new ArrayList<>()).add(loreEntry); } // iterate through the small array, not the map, so that ordering matches Java Edition @@ -279,7 +273,7 @@ public final class ItemTranslator { } @Nullable - private static String attributeToLore(int attribute, ItemAttributeModifiers.AttributeModifier modifier, String language) { + private static String attributeToLore(GeyserSession session, int attribute, ItemAttributeModifiers.AttributeModifier modifier, String language) { double amount = modifier.getAmount(); if (amount == 0) { return null; @@ -289,24 +283,35 @@ public final class ItemTranslator { // the namespace does not need to be present, but if it is, the java client ignores it as of pre-1.20.5 ModifierOperation operation = modifier.getOperation(); + boolean baseModifier = false; String operationTotal = switch (operation) { case ADD -> { - if (name.equals("generic.knockback_resistance")) { + if (name.equals("knockback_resistance")) { amount *= 10; } + + if (modifier.getId().equals(BASE_ATTACK_DAMAGE_ID)) { + amount += session.getPlayerEntity().attributeOrDefault(GeyserAttributeType.ATTACK_DAMAGE); + baseModifier = true; + } else if (modifier.getId().equals(BASE_ATTACK_SPEED_ID)) { + amount += session.getPlayerEntity().attributeOrDefault(GeyserAttributeType.ATTACK_SPEED); + baseModifier = true; + } + yield ATTRIBUTE_FORMAT.format(amount); } case ADD_MULTIPLIED_BASE, ADD_MULTIPLIED_TOTAL -> ATTRIBUTE_FORMAT.format(amount * 100) + "%"; }; - if (amount > 0) { + if (amount > 0 && !baseModifier) { operationTotal = "+" + operationTotal; } + Component attributeComponent = Component.text() .resetStyle() - .color(amount > 0 ? NamedTextColor.BLUE : NamedTextColor.RED) - .append(Component.text(operationTotal + " "), Component.translatable("attribute.name." + name)) + .color(baseModifier ? NamedTextColor.DARK_GREEN : amount > 0 ? NamedTextColor.BLUE : NamedTextColor.RED) + .append(Component.text(" " + operationTotal + " "), Component.translatable("attribute.name." + name)) .build(); return MessageTranslator.convertMessage(attributeComponent, language); From b36bc9e95accc97b22d6993c0fd71fc6650c2e57 Mon Sep 17 00:00:00 2001 From: onebeastchris Date: Wed, 11 Dec 2024 23:31:23 +0800 Subject: [PATCH 30/31] Indicate 1.21.51 support --- .../main/java/org/geysermc/geyser/network/GameProtocol.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/core/src/main/java/org/geysermc/geyser/network/GameProtocol.java b/core/src/main/java/org/geysermc/geyser/network/GameProtocol.java index bb7032d25..7aaeef87d 100644 --- a/core/src/main/java/org/geysermc/geyser/network/GameProtocol.java +++ b/core/src/main/java/org/geysermc/geyser/network/GameProtocol.java @@ -48,7 +48,7 @@ public final class GameProtocol { * release of the game that Geyser supports. */ public static final BedrockCodec DEFAULT_BEDROCK_CODEC = CodecProcessor.processCodec(Bedrock_v766.CODEC.toBuilder() - .minecraftVersion("1.21.50") + .minecraftVersion("1.21.51") .build()); /** @@ -66,7 +66,9 @@ public final class GameProtocol { SUPPORTED_BEDROCK_CODECS.add(CodecProcessor.processCodec(Bedrock_v748.CODEC.toBuilder() .minecraftVersion("1.21.40 - 1.21.44") .build())); - SUPPORTED_BEDROCK_CODECS.add(DEFAULT_BEDROCK_CODEC); + SUPPORTED_BEDROCK_CODECS.add(DEFAULT_BEDROCK_CODEC.toBuilder() + .minecraftVersion("1.21.50 - 1.21.51") + .build()); } /** From f24ba549df44c2effec31b9ba82d319321b1129a Mon Sep 17 00:00:00 2001 From: onebeastchris Date: Thu, 12 Dec 2024 09:13:04 +0800 Subject: [PATCH 31/31] Target master branch for mappings --- core/src/main/resources/mappings | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/main/resources/mappings b/core/src/main/resources/mappings index e8089e117..8707dd144 160000 --- a/core/src/main/resources/mappings +++ b/core/src/main/resources/mappings @@ -1 +1 @@ -Subproject commit e8089e117605e60a5ced120926c49fae7617c665 +Subproject commit 8707dd144b20632f4a2f4b5497d8e5fb211e6c93