diff --git a/README.md b/README.md index 27180ffa9..b3a785a9d 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.70 - 1.21.101 and Minecraft Java 1.21.7 - 1.21.8. For more information, please see [here](https://geysermc.org/wiki/geyser/supported-versions/). +Geyser is currently supporting Minecraft Bedrock 1.21.90 - 1.21.113 and Minecraft Java 1.21.9 - 1.21.10. 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/api/src/main/java/org/geysermc/geyser/api/block/custom/nonvanilla/JavaBlockState.java b/api/src/main/java/org/geysermc/geyser/api/block/custom/nonvanilla/JavaBlockState.java index 61b868cc3..c1950f965 100644 --- a/api/src/main/java/org/geysermc/geyser/api/block/custom/nonvanilla/JavaBlockState.java +++ b/api/src/main/java/org/geysermc/geyser/api/block/custom/nonvanilla/JavaBlockState.java @@ -59,7 +59,9 @@ public interface JavaBlockState { * Gets the pick item of the block state * * @return the pick item of the block state + * @deprecated the pick item is sent by the Java server */ + @Deprecated @Nullable String pickItem(); /** @@ -103,6 +105,7 @@ public interface JavaBlockState { Builder canBreakWithHand(boolean canBreakWithHand); + @Deprecated Builder pickItem(@Nullable String pickItem); Builder pistonBehavior(@Nullable String pistonBehavior); diff --git a/api/src/main/java/org/geysermc/geyser/api/entity/property/BatchPropertyUpdater.java b/api/src/main/java/org/geysermc/geyser/api/entity/property/BatchPropertyUpdater.java new file mode 100644 index 000000000..308d23cd1 --- /dev/null +++ b/api/src/main/java/org/geysermc/geyser/api/entity/property/BatchPropertyUpdater.java @@ -0,0 +1,69 @@ +/* + * Copyright (c) 2025 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.api.entity.property; + +import org.checkerframework.checker.nullness.qual.NonNull; +import org.checkerframework.checker.nullness.qual.Nullable; +import org.geysermc.geyser.api.event.lifecycle.GeyserDefineEntityPropertiesEvent; + +/** + * Collects property changes to be applied as a single, batched update to an entity. + *

+ * Notes: + *

+ * + *
{@code
+ * entity.updatePropertiesBatched(updater -> {
+ *     updater.update(SOME_FLOAT_PROPERTY, 0.15f);
+ *     updater.update(SOME_BOOLEAN_PROPERTY, true);
+ *     updater.update(SOME_INT_PROPERTY, null); // reset to default
+ * });
+ * }
+ * + * @since 2.9.0 + */ +@FunctionalInterface +public interface BatchPropertyUpdater { + + /** + * Queues an update for the given property within the current batch. + *

+ * If {@code value} is {@code null}, the property will be reset to its default value + * as declared when the property was registered during the {@link GeyserDefineEntityPropertiesEvent}. + * + * @param property a {@link GeyserEntityProperty} registered for the target entity type + * @param value the new value, or {@code null} to reset to the default + * @param the property's value type + * + * @since 2.9.0 + */ + void update(@NonNull GeyserEntityProperty property, @Nullable T value); +} diff --git a/api/src/main/java/org/geysermc/geyser/api/entity/property/GeyserEntityProperty.java b/api/src/main/java/org/geysermc/geyser/api/entity/property/GeyserEntityProperty.java new file mode 100644 index 000000000..9489a9946 --- /dev/null +++ b/api/src/main/java/org/geysermc/geyser/api/entity/property/GeyserEntityProperty.java @@ -0,0 +1,65 @@ +/* + * Copyright (c) 2025 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.api.entity.property; + +import org.checkerframework.checker.nullness.qual.NonNull; +import org.geysermc.geyser.api.util.Identifier; + +/** + * Represents a property that can be attached to an entity. + *

+ * Entity properties are used to describe metadata about an entity, such as + * integers, floats, booleans, or enums. + * @see + * Official documentation for info + * + * @param the type of value stored by this property + * + * @since 2.9.0 + */ +public interface GeyserEntityProperty { + + /** + * Gets the unique name of this property. + * Custom properties cannot use the vanilla namespace + * to avoid collisions with vanilla entity properties. + * + * @return the property identifier + * @since 2.9.0 + */ + @NonNull + Identifier identifier(); + + /** + * Gets the default value of this property which + * is set upon spawning entities. + * + * @return the default value of this property + * @since 2.9.0 + */ + @NonNull + T defaultValue(); +} diff --git a/core/src/main/java/org/geysermc/geyser/level/block/type/HoneyBlock.java b/api/src/main/java/org/geysermc/geyser/api/entity/property/type/GeyserBooleanEntityProperty.java similarity index 77% rename from core/src/main/java/org/geysermc/geyser/level/block/type/HoneyBlock.java rename to api/src/main/java/org/geysermc/geyser/api/entity/property/type/GeyserBooleanEntityProperty.java index 642240915..1c988d5d7 100644 --- a/core/src/main/java/org/geysermc/geyser/level/block/type/HoneyBlock.java +++ b/api/src/main/java/org/geysermc/geyser/api/entity/property/type/GeyserBooleanEntityProperty.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2024 GeyserMC. http://geysermc.org + * Copyright (c) 2025 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 @@ -23,10 +23,13 @@ * @link https://github.com/GeyserMC/Geyser */ -package org.geysermc.geyser.level.block.type; +package org.geysermc.geyser.api.entity.property.type; -public class HoneyBlock extends Block { - public HoneyBlock(String javaIdentifier, Builder builder) { - super(javaIdentifier, builder); - } +import org.geysermc.geyser.api.entity.property.GeyserEntityProperty; + +/** + * Represents a boolean entity property. + * @since 2.9.0 + */ +public interface GeyserBooleanEntityProperty extends GeyserEntityProperty { } diff --git a/core/src/main/java/org/geysermc/geyser/level/block/type/SpawnerBlock.java b/api/src/main/java/org/geysermc/geyser/api/entity/property/type/GeyserEnumEntityProperty.java similarity index 65% rename from core/src/main/java/org/geysermc/geyser/level/block/type/SpawnerBlock.java rename to api/src/main/java/org/geysermc/geyser/api/entity/property/type/GeyserEnumEntityProperty.java index 968499d11..283111c7f 100644 --- a/core/src/main/java/org/geysermc/geyser/level/block/type/SpawnerBlock.java +++ b/api/src/main/java/org/geysermc/geyser/api/entity/property/type/GeyserEnumEntityProperty.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2024 GeyserMC. http://geysermc.org + * Copyright (c) 2025 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 @@ -23,10 +23,20 @@ * @link https://github.com/GeyserMC/Geyser */ -package org.geysermc.geyser.level.block.type; +package org.geysermc.geyser.api.entity.property.type; -public class SpawnerBlock extends Block { - public SpawnerBlock(String javaIdentifier, Builder builder) { - super(javaIdentifier, builder); - } +import org.geysermc.geyser.api.entity.property.GeyserEntityProperty; + +/** + * Represents a Java enum-backed enum property. + * There are a few key limitations: + *

+ * + * @param the enum type + * @since 2.9.0 + */ +public interface GeyserEnumEntityProperty> extends GeyserEntityProperty { } diff --git a/api/src/main/java/org/geysermc/geyser/api/entity/property/type/GeyserFloatEntityProperty.java b/api/src/main/java/org/geysermc/geyser/api/entity/property/type/GeyserFloatEntityProperty.java new file mode 100644 index 000000000..8337e09fa --- /dev/null +++ b/api/src/main/java/org/geysermc/geyser/api/entity/property/type/GeyserFloatEntityProperty.java @@ -0,0 +1,52 @@ +/* + * Copyright (c) 2025 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.api.entity.property.type; + +import org.geysermc.geyser.api.entity.property.GeyserEntityProperty; +import org.geysermc.geyser.api.event.lifecycle.GeyserDefineEntityPropertiesEvent; +import org.geysermc.geyser.api.util.Identifier; + +/** + * Represents a float-backed entity property with inclusive bounds. + * Values associated with this property must be always within the {@code [min(), max()]} bounds. + * + * @see GeyserDefineEntityPropertiesEvent#registerFloatProperty(Identifier, Identifier, float, float, Float) + * @since 2.9.0 + */ +public interface GeyserFloatEntityProperty extends GeyserEntityProperty { + + /** + * @return the inclusive lower bound for this property + * @since 2.9.0 + */ + float min(); + + /** + * @return the inclusive upper bound for this property + * @since 2.9.0 + */ + float max(); +} diff --git a/api/src/main/java/org/geysermc/geyser/api/entity/property/type/GeyserIntEntityProperty.java b/api/src/main/java/org/geysermc/geyser/api/entity/property/type/GeyserIntEntityProperty.java new file mode 100644 index 000000000..36c4996bd --- /dev/null +++ b/api/src/main/java/org/geysermc/geyser/api/entity/property/type/GeyserIntEntityProperty.java @@ -0,0 +1,57 @@ +/* + * Copyright (c) 2025 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.api.entity.property.type; + +import org.geysermc.geyser.api.entity.property.GeyserEntityProperty; +import org.geysermc.geyser.api.event.lifecycle.GeyserDefineEntityPropertiesEvent; +import org.geysermc.geyser.api.util.Identifier; + +/** + * Represents an int-backed entity property with inclusive bounds. + * There are a few key limitations: + *
    + *
  • Values must be always within the {@code [min(), max()]} bounds
  • + *
  • Molang evaluation uses floats under the hood; very large integers can lose precision. + * Prefer keeping values in a practical range to avoid rounding issues.
  • + *
+ * + * @see GeyserDefineEntityPropertiesEvent#registerIntegerProperty(Identifier, Identifier, int, int, Integer) + * @since 2.9.0 + */ +public interface GeyserIntEntityProperty extends GeyserEntityProperty { + + /** + * @return the inclusive lower bound for this property + * @since 2.9.0 + */ + int min(); + + /** + * @return the inclusive upper bound for this property + * @since 2.9.0 + */ + int max(); +} diff --git a/core/src/main/java/org/geysermc/geyser/level/block/type/PistonHeadBlock.java b/api/src/main/java/org/geysermc/geyser/api/entity/property/type/GeyserStringEnumProperty.java similarity index 61% rename from core/src/main/java/org/geysermc/geyser/level/block/type/PistonHeadBlock.java rename to api/src/main/java/org/geysermc/geyser/api/entity/property/type/GeyserStringEnumProperty.java index 8a6b4f41c..ebd541ef7 100644 --- a/core/src/main/java/org/geysermc/geyser/level/block/type/PistonHeadBlock.java +++ b/api/src/main/java/org/geysermc/geyser/api/entity/property/type/GeyserStringEnumProperty.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2024 GeyserMC. http://geysermc.org + * Copyright (c) 2025 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 @@ -23,20 +23,27 @@ * @link https://github.com/GeyserMC/Geyser */ -package org.geysermc.geyser.level.block.type; +package org.geysermc.geyser.api.entity.property.type; -import org.geysermc.geyser.level.block.Blocks; -import org.geysermc.geyser.level.block.property.Properties; -import org.geysermc.mcprotocollib.protocol.data.game.item.ItemStack; +import org.geysermc.geyser.api.entity.property.GeyserEntityProperty; -public class PistonHeadBlock extends Block { - public PistonHeadBlock(String javaIdentifier, Builder builder) { - super(javaIdentifier, builder); - } +import java.util.List; - @Override - public ItemStack pickItem(BlockState state) { - Block block = state.getValue(Properties.PISTON_TYPE).equals("sticky") ? Blocks.STICKY_PISTON : Blocks.PISTON; - return new ItemStack(block.asItem().javaId()); - } +/** + * Represents a string-backed enum property. + * There are a few key limitations: + *
    + *
  • There cannot be more than 16 values
  • + *
  • The values' names cannot be longer than 32 chars, must start with a letter, and may contain numbers and underscores
  • + *
+ * + * @since 2.9.0 + */ +public interface GeyserStringEnumProperty extends GeyserEntityProperty { + + /** + * @return an unmodifiable list of all registered values + * @since 2.9.0 + */ + List values(); } diff --git a/api/src/main/java/org/geysermc/geyser/api/entity/type/GeyserEntity.java b/api/src/main/java/org/geysermc/geyser/api/entity/type/GeyserEntity.java index 02acb4e21..1f8698518 100644 --- a/api/src/main/java/org/geysermc/geyser/api/entity/type/GeyserEntity.java +++ b/api/src/main/java/org/geysermc/geyser/api/entity/type/GeyserEntity.java @@ -26,9 +26,17 @@ package org.geysermc.geyser.api.entity.type; import org.checkerframework.checker.index.qual.NonNegative; +import org.checkerframework.checker.nullness.qual.NonNull; +import org.checkerframework.checker.nullness.qual.Nullable; +import org.geysermc.geyser.api.connection.GeyserConnection; +import org.geysermc.geyser.api.entity.property.BatchPropertyUpdater; +import org.geysermc.geyser.api.entity.property.GeyserEntityProperty; +import org.geysermc.geyser.api.event.lifecycle.GeyserDefineEntityPropertiesEvent; + +import java.util.function.Consumer; /** - * Represents a unique instance of an entity. Each {@link org.geysermc.geyser.api.connection.GeyserConnection} + * Represents a unique instance of an entity. Each {@link GeyserConnection} * have their own sets of entities - no two instances will share the same GeyserEntity instance. */ public interface GeyserEntity { @@ -37,4 +45,24 @@ public interface GeyserEntity { */ @NonNegative int javaId(); + + /** + * Updates an entity property with a new value. + * If the new value is null, the property is reset to the default value. + * + * @param property a {@link GeyserEntityProperty} registered for this type in the {@link GeyserDefineEntityPropertiesEvent} + * @param value the new property value + * @param the type of the value + * @since 2.9.0 + */ + default void updateProperty(@NonNull GeyserEntityProperty property, @Nullable T value) { + this.updatePropertiesBatched(consumer -> consumer.update(property, value)); + } + + /** + * Updates multiple properties with just one update packet. + * @see BatchPropertyUpdater + * @since 2.9.0 + */ + void updatePropertiesBatched(Consumer consumer); } diff --git a/api/src/main/java/org/geysermc/geyser/api/event/bedrock/SessionAcceptCodeOfConductEvent.java b/api/src/main/java/org/geysermc/geyser/api/event/bedrock/SessionAcceptCodeOfConductEvent.java new file mode 100644 index 000000000..0df79765e --- /dev/null +++ b/api/src/main/java/org/geysermc/geyser/api/event/bedrock/SessionAcceptCodeOfConductEvent.java @@ -0,0 +1,75 @@ +/* + * Copyright (c) 2025 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.api.event.bedrock; + +import org.checkerframework.checker.nullness.qual.NonNull; +import org.geysermc.geyser.api.connection.GeyserConnection; +import org.geysermc.geyser.api.event.connection.ConnectionEvent; +import org.geysermc.geyser.api.event.java.ServerCodeOfConductEvent; + +/** + * Fired when a player accepts a code of conduct sent by the Java server. API users can listen to this event + * to store the acceptance in a cache, and tell Geyser not to do so. + * + *

Java clients cache acceptance locally, but bedrock clients don't. Normally Geyser uses a simple JSON file to implement this, + * but an alternative solution may be preferred when using multiple Geyser instances. Such a solution can be implemented through this event and {@link ServerCodeOfConductEvent}.

+ * + * @see ServerCodeOfConductEvent + * @since 2.9.0 + */ +public class SessionAcceptCodeOfConductEvent extends ConnectionEvent { + private final String codeOfConduct; + private boolean skipSaving = false; + + public SessionAcceptCodeOfConductEvent(@NonNull GeyserConnection connection, String codeOfConduct) { + super(connection); + this.codeOfConduct = codeOfConduct; + } + + /** + * @return the code of conduct sent by the server + * @since 2.9.0 + */ + public String codeOfConduct() { + return codeOfConduct; + } + + /** + * @return {@code true} if Geyser should not save the acceptance of the code of conduct in its own cache (through a JSON file), because it was saved elsewhere + * @since 2.9.0 + */ + public boolean shouldSkipSaving() { + return skipSaving; + } + + /** + * Sets {@link SessionAcceptCodeOfConductEvent#shouldSkipSaving()} to {@code true}. + * @since 2.9.0 + */ + public void skipSaving() { + this.skipSaving = true; + } +} diff --git a/api/src/main/java/org/geysermc/geyser/api/event/java/ServerCodeOfConductEvent.java b/api/src/main/java/org/geysermc/geyser/api/event/java/ServerCodeOfConductEvent.java new file mode 100644 index 000000000..d40094fb6 --- /dev/null +++ b/api/src/main/java/org/geysermc/geyser/api/event/java/ServerCodeOfConductEvent.java @@ -0,0 +1,76 @@ +/* + * Copyright (c) 2025 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.api.event.java; + +import org.checkerframework.checker.nullness.qual.NonNull; +import org.geysermc.geyser.api.connection.GeyserConnection; +import org.geysermc.geyser.api.event.bedrock.SessionAcceptCodeOfConductEvent; +import org.geysermc.geyser.api.event.connection.ConnectionEvent; + +/** + * Fired when the Java server sends a code of conduct during the configuration phase. + * API users can listen to this event and tell Geyser the player has accepted the code of conduct before, which will result in the + * code of conduct not being shown to the player. + * + *

Java clients cache this locally, but bedrock clients don't. Normally Geyser uses a simple JSON file to implement this, + * but an alternative solution may be preferred when using multiple Geyser instances. Such a solution can be implemented through this event and {@link SessionAcceptCodeOfConductEvent}.

+ * + * @see SessionAcceptCodeOfConductEvent + * @since 2.9.0 + */ +public final class ServerCodeOfConductEvent extends ConnectionEvent { + private final String codeOfConduct; + private boolean hasAccepted = false; + + public ServerCodeOfConductEvent(@NonNull GeyserConnection connection, String codeOfConduct) { + super(connection); + this.codeOfConduct = codeOfConduct; + } + + /** + * @return the code of conduct sent by the server + * @since 2.9.0 + */ + public String codeOfConduct() { + return codeOfConduct; + } + + /** + * @return {@code true} if Geyser should not show the code of conduct to the player, because they have already accepted it + * @since 2.9.0 + */ + public boolean accepted() { + return hasAccepted; + } + + /** + * Sets {@link ServerCodeOfConductEvent#accepted()} to {@code true}. + * @since 2.9.0 + */ + public void accept() { + this.hasAccepted = true; + } +} diff --git a/api/src/main/java/org/geysermc/geyser/api/event/lifecycle/GeyserDefineEntityPropertiesEvent.java b/api/src/main/java/org/geysermc/geyser/api/event/lifecycle/GeyserDefineEntityPropertiesEvent.java new file mode 100644 index 000000000..ef8380041 --- /dev/null +++ b/api/src/main/java/org/geysermc/geyser/api/event/lifecycle/GeyserDefineEntityPropertiesEvent.java @@ -0,0 +1,242 @@ +/* + * Copyright (c) 2025 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.api.event.lifecycle; + +import org.checkerframework.checker.nullness.qual.NonNull; +import org.checkerframework.checker.nullness.qual.Nullable; +import org.geysermc.event.Event; +import org.geysermc.geyser.api.entity.EntityData; +import org.geysermc.geyser.api.entity.property.GeyserEntityProperty; +import org.geysermc.geyser.api.entity.property.type.GeyserBooleanEntityProperty; +import org.geysermc.geyser.api.entity.property.type.GeyserEnumEntityProperty; +import org.geysermc.geyser.api.entity.property.type.GeyserFloatEntityProperty; +import org.geysermc.geyser.api.entity.property.type.GeyserIntEntityProperty; +import org.geysermc.geyser.api.entity.property.type.GeyserStringEnumProperty; +import org.geysermc.geyser.api.entity.type.GeyserEntity; +import org.geysermc.geyser.api.util.Identifier; + +import java.util.Collection; +import java.util.List; +import java.util.function.Consumer; + +/** + * Lifecycle event fired during Geyser's startup to allow custom entity properties + * to be registered for a specific entity type. + *

+ * Listeners can add new properties for any entity by passing the target entity's + * identifier (e.g., {@code Identifier.of("player")}) to the registration methods. + * The returned {@link GeyserEntityProperty} is used to identify the properties and to + * update the value of a specific entity instance. + * + *

Example usage

+ *
{@code
+ * public void onDefine(GeyserDefineEntityPropertiesEvent event) {
+ *     Identifier player = Identifier.of("player");
+ *     GeyserFloatEntityProperty ANIMATION_SPEED =
+ *         event.registerFloatProperty(player, Identifier.of("my_group:animation_speed"), 0.0f, 1.0f, 0.1f);
+ *     GeyserBooleanEntityProperty SHOW_SHORTS =
+ *         event.registerBooleanProperty(player, Identifier.of("my_group:show_shorts"), false);
+ * }
+ * }
+ * + * Retrieving entity instances is possible with the {@link EntityData#entityByJavaId(int)} method, or + * {@link EntityData#playerEntity()} for the connection player entity. + * To update the value of a property on a specific entity, use {@link GeyserEntity#updateProperty(GeyserEntityProperty, Object)}, + * or {@link GeyserEntity#updatePropertiesBatched(Consumer)} to update multiple properties efficiently at once. + * + *

Notes: + *

    + *
  • Default values must fall within the provided bounds.
  • + *
  • There cannot be more than 32 properties registered per entity type in total
  • + *
  • {@link #properties(Identifier)} returns properties registered for the given entity + * (including those added earlier in the same callback), including vanilla properties.
  • + *
+ * + * @since 2.9.0 + */ +public interface GeyserDefineEntityPropertiesEvent extends Event { + + /** + * Returns an unmodifiable view of all properties that have been registered + * so far for the given entity type. This includes entity properties used for vanilla gameplay, + * such as those used for creaking animations. + * + * @param entityType the Java edition entity type identifier + * @return an unmodifiable collection of registered properties + * + * @since 2.9.0 + */ + Collection> properties(@NonNull Identifier entityType); + + /** + * Registers a {@code float}-backed entity property. + * + * @param entityType the Java edition entity type identifier + * @param propertyIdentifier the unique property identifier + * @param min the minimum allowed value (inclusive) + * @param max the maximum allowed value (inclusive) + * @param defaultValue the default value assigned initially on entity spawn - if null, it will be the minimum value + * @return the created float property + * + * @since 2.9.0 + */ + GeyserFloatEntityProperty registerFloatProperty(@NonNull Identifier entityType, @NonNull Identifier propertyIdentifier, float min, float max, @Nullable Float defaultValue); + + /** + * Registers a {@code float}-backed entity property with a default value set to the minimum value. + * @see #registerFloatProperty(Identifier, Identifier, float, float, Float) + * + * @param entityType the Java edition entity type identifier + * @param propertyIdentifier the unique property identifier + * @param min the minimum allowed value (inclusive) + * @param max the maximum allowed value (inclusive) + * @return the created float property + * + * @since 2.9.0 + */ + default GeyserFloatEntityProperty registerFloatProperty(@NonNull Identifier entityType, @NonNull Identifier propertyIdentifier, float min, float max) { + return registerFloatProperty(entityType, propertyIdentifier, min, max, null); + } + + /** + * Registers an {@code int}-backed entity property. + * + * @param entityType the Java edition entity type identifier + * @param propertyIdentifier the unique property identifier + * @param min the minimum allowed value (inclusive) + * @param max the maximum allowed value (inclusive) + * @param defaultValue the default value assigned initially on entity spawn - if null, it will be the minimum value + * @return the created int property + * + * @since 2.9.0 + */ + GeyserIntEntityProperty registerIntegerProperty(@NonNull Identifier entityType, @NonNull Identifier propertyIdentifier, int min, int max, @Nullable Integer defaultValue); + + /** + * Registers an {@code int}-backed entity property with a default value set to the minimum value. + * + * @param entityType the Java edition entity type identifier + * @param propertyIdentifier the unique property identifier + * @param min the minimum allowed value (inclusive) + * @param max the maximum allowed value (inclusive) + * @return the created int property + * + * @since 2.9.0 + */ + default GeyserIntEntityProperty registerIntegerProperty(@NonNull Identifier entityType, @NonNull Identifier propertyIdentifier, int min, int max) { + return registerIntegerProperty(entityType, propertyIdentifier, min, max, null); + } + + /** + * Registers a {@code boolean}-backed entity property. + * + * @param entityType the Java edition entity type identifier + * @param propertyIdentifier the unique property identifier + * @param defaultValue the default boolean value + * @return the created boolean property handle + * + * @since 2.9.0 + */ + GeyserBooleanEntityProperty registerBooleanProperty(@NonNull Identifier entityType, @NonNull Identifier propertyIdentifier, boolean defaultValue); + + /** + * Registers a {@code boolean}-backed entity property with a default of {@code false}. + * @see #registerBooleanProperty(Identifier, Identifier, boolean) + * + * @param entityType the Java edition entity type identifier + * @param propertyIdentifier the unique property identifier + * @return the created boolean property + * @since 2.9.0 + */ + default GeyserBooleanEntityProperty registerBooleanProperty(@NonNull Identifier entityType, @NonNull Identifier propertyIdentifier) { + return registerBooleanProperty(entityType, propertyIdentifier, false); + } + + /** + * Registers a typed {@linkplain Enum enum}-backed entity property. + *

+ * The enum constants define the allowed values. If {@code defaultValue} is {@code null}, + * the first enum value is set as the default. + * @see GeyserEnumEntityProperty for further limitations + * + * @param entityType the Java edition entity type identifier + * @param propertyIdentifier the unique property identifier + * @param enumClass the enum class that defines allowed values + * @param defaultValue the default enum value, or {@code null} for the first enum value to be the default + * @param the enum type + * @return the created enum property + * + * @since 2.9.0 + */ + > GeyserEnumEntityProperty registerEnumProperty(@NonNull Identifier entityType, @NonNull Identifier propertyIdentifier, @NonNull Class enumClass, @Nullable E defaultValue); + + /** + * Registers a typed {@linkplain Enum enum}-backed entity property with the first value set as the default. + * @see #registerEnumProperty(Identifier, Identifier, Class, Enum) + * + * @param entityType the Java edition entity type identifier + * @param propertyIdentifier the unique property identifier + * @param enumClass the enum class that defines allowed values + * @param the enum type + * @return the created enum property + * + * @since 2.9.0 + */ + default > GeyserEnumEntityProperty registerEnumProperty(@NonNull Identifier entityType, @NonNull Identifier propertyIdentifier, @NonNull Class enumClass) { + return registerEnumProperty(entityType, propertyIdentifier, enumClass, null); + } + + /** + * Registers a string-backed "enum-like" entity property where the set of allowed values + * is defined by the provided list. If {@code defaultValue} is {@code null}, the first value is used as the default + * on entity spawn. The default must be one of the values in {@code values}. + * @see GeyserStringEnumProperty + * + * @param entityType the Java edition entity type identifier + * @param propertyIdentifier the unique property identifier + * @param values the allowed string values + * @param defaultValue the default string value, or {@code null} for the first value to be used + * @return the created string-enum property + * + * @since 2.9.0 + */ + GeyserStringEnumProperty registerEnumProperty(@NonNull Identifier entityType, @NonNull Identifier propertyIdentifier, @NonNull List values, @Nullable String defaultValue); + + /** + * Registers a string-backed "enum-like" entity property with the first value as the default. + * @see #registerEnumProperty(Identifier, Identifier, List, String) + * + * @param entityType the Java edition entity type identifier + * @param propertyIdentifier the unique property identifier + * @param values the allowed string values + * @return the created string-enum property handle + * + * @since 2.9.0 + */ + default GeyserStringEnumProperty registerEnumProperty(@NonNull Identifier entityType, @NonNull Identifier propertyIdentifier, @NonNull List values) { + return registerEnumProperty(entityType, propertyIdentifier, values, null); + } +} diff --git a/api/src/main/java/org/geysermc/geyser/api/util/Identifier.java b/api/src/main/java/org/geysermc/geyser/api/util/Identifier.java new file mode 100644 index 000000000..e82a695d1 --- /dev/null +++ b/api/src/main/java/org/geysermc/geyser/api/util/Identifier.java @@ -0,0 +1,116 @@ +/* + * Copyright (c) 2024-2025 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.api.util; + +import org.checkerframework.checker.nullness.qual.NonNull; +import org.geysermc.geyser.api.GeyserApi; + +/** + * An identifying object for representing unique objects. + * This identifier consists of two parts: + *

    + *
  • + * a namespace, which is usually a name identifying your work + *
  • + *
  • + * a path, which holds a value. + *
  • + *
+ * + * Examples of identifiers: + *
    + *
  • {@code minecraft:fox}
  • + *
  • {@code geysermc:one_fun_example}
  • + *
+ * + * If this identifier is referencing anything not in the + * vanilla Minecraft game, the namespace cannot be "minecraft". + * Further, paths cannot contain colons ({@code :}). + * + * @since 2.9.0 + */ +public interface Identifier { + + /** + * The namespace for Minecraft. + * @since 2.9.0 + */ + String DEFAULT_NAMESPACE = "minecraft"; + + /** + * Attempts to create a new identifier from a namespace and path. + * + * @return the identifier for this namespace and path + * @throws IllegalArgumentException if either namespace or path are invalid. + * @since 2.9.0 + */ + static Identifier of(@NonNull String namespace, @NonNull String path) { + return GeyserApi.api().provider(Identifier.class, namespace, path); + } + + /** + * Attempts to create a new identifier from a string representation. + * + * @return the identifier for this namespace and path + * @throws IllegalArgumentException if either the namespace or path are invalid + * @since 2.9.0 + */ + static Identifier of(String identifier) { + String[] split = identifier.split(":"); + String namespace; + String path; + if (split.length == 1) { + namespace = DEFAULT_NAMESPACE; + path = split[0]; + } else if (split.length == 2) { + namespace = split[0]; + path = split[1]; + } else { + throw new IllegalArgumentException("':' in identifier path: " + identifier); + } + return of(namespace, path); + } + + /** + * @return the namespace of this identifier. + * @since 2.9.0 + */ + String namespace(); + + /** + * @return the path of this identifier. + * @since 2.9.0 + */ + String path(); + + /** + * Checks whether this identifier is using the "minecraft" namespace. + * @since 2.9.0 + */ + default boolean vanilla() { + return namespace().equals(DEFAULT_NAMESPACE); + } +} diff --git a/bootstrap/bungeecord/build.gradle.kts b/bootstrap/bungeecord/build.gradle.kts index 573312e5d..5f593975e 100644 --- a/bootstrap/bungeecord/build.gradle.kts +++ b/bootstrap/bungeecord/build.gradle.kts @@ -8,7 +8,10 @@ dependencies { implementation(libs.cloud.bungee) implementation(libs.adventure.text.serializer.bungeecord) - compileOnlyApi(libs.bungeecord.proxy) + compileOnlyApi(libs.bungeecord.proxy) { + isTransitive = false + } + compileOnlyApi(libs.bungeecord.api) } platformRelocate("net.md_5.bungee.jni") 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 22d53dbf8..32d37ca59 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 @@ -273,6 +273,11 @@ public class GeyserBungeePlugin extends Plugin implements GeyserBootstrap { return Paths.get(getProxy().getName().equals("BungeeCord") ? "proxy.log.0" : "logs/latest.log"); } + @Override + public @NonNull String getServerPlatform() { + return getProxy().getName(); + } + @Nullable @Override public SocketAddress getSocketAddress() { diff --git a/bootstrap/mod/fabric/build.gradle.kts b/bootstrap/mod/fabric/build.gradle.kts index 2c6093f3f..ddf492e93 100644 --- a/bootstrap/mod/fabric/build.gradle.kts +++ b/bootstrap/mod/fabric/build.gradle.kts @@ -8,8 +8,6 @@ architectury { fabric() } -val includeTransitive: Configuration = configurations.getByName("includeTransitive") - dependencies { modImplementation(libs.fabric.loader) modApi(libs.fabric.api) diff --git a/bootstrap/mod/fabric/src/main/resources/fabric.mod.json b/bootstrap/mod/fabric/src/main/resources/fabric.mod.json index 69071cea4..b042bb252 100644 --- a/bootstrap/mod/fabric/src/main/resources/fabric.mod.json +++ b/bootstrap/mod/fabric/src/main/resources/fabric.mod.json @@ -23,8 +23,8 @@ "geyser.mixins.json" ], "depends": { - "fabricloader": ">=0.16.7", + "fabricloader": ">=0.17.2", "fabric-api": "*", - "minecraft": ">=1.21.6" + "minecraft": ">=1.21.9" } } diff --git a/bootstrap/mod/neoforge/build.gradle.kts b/bootstrap/mod/neoforge/build.gradle.kts index 35e646277..e40fe17f9 100644 --- a/bootstrap/mod/neoforge/build.gradle.kts +++ b/bootstrap/mod/neoforge/build.gradle.kts @@ -13,8 +13,6 @@ architectury { provided("org.cloudburstmc.math", "api") provided("com.google.errorprone", "error_prone_annotations") -val includeTransitive: Configuration = configurations.getByName("includeTransitive") - dependencies { // See https://github.com/google/guava/issues/6618 modules { diff --git a/bootstrap/mod/neoforge/src/main/java/org/geysermc/geyser/platform/neoforge/GeyserNeoForgeBootstrap.java b/bootstrap/mod/neoforge/src/main/java/org/geysermc/geyser/platform/neoforge/GeyserNeoForgeBootstrap.java index aa731befc..803a06b6e 100644 --- a/bootstrap/mod/neoforge/src/main/java/org/geysermc/geyser/platform/neoforge/GeyserNeoForgeBootstrap.java +++ b/bootstrap/mod/neoforge/src/main/java/org/geysermc/geyser/platform/neoforge/GeyserNeoForgeBootstrap.java @@ -111,7 +111,7 @@ public class GeyserNeoForgeBootstrap extends GeyserModBootstrap { @Override public boolean isServer() { - return FMLLoader.getDist().isDedicatedServer(); + return FMLLoader.getCurrent().getDist().isDedicatedServer(); } private void onPermissionGather(PermissionGatherEvent.Nodes event) { diff --git a/bootstrap/mod/neoforge/src/main/java/org/geysermc/geyser/platform/neoforge/GeyserNeoForgeDumpInfo.java b/bootstrap/mod/neoforge/src/main/java/org/geysermc/geyser/platform/neoforge/GeyserNeoForgeDumpInfo.java index c8104f2d4..280de6a64 100644 --- a/bootstrap/mod/neoforge/src/main/java/org/geysermc/geyser/platform/neoforge/GeyserNeoForgeDumpInfo.java +++ b/bootstrap/mod/neoforge/src/main/java/org/geysermc/geyser/platform/neoforge/GeyserNeoForgeDumpInfo.java @@ -55,10 +55,10 @@ public class GeyserNeoForgeDumpInfo extends BootstrapDumpInfo { private final List mods; public GeyserNeoForgeDumpInfo(MinecraftServer server) { - this.platformName = FMLLoader.launcherHandlerName(); - this.platformVersion = FMLLoader.versionInfo().neoForgeVersion(); - this.minecraftVersion = FMLLoader.versionInfo().mcVersion(); - this.dist = FMLLoader.getDist(); + this.platformName = server.getServerModName(); + this.platformVersion = FMLLoader.getCurrent().getVersionInfo().neoForgeVersion(); + this.minecraftVersion = FMLLoader.getCurrent().getVersionInfo().mcVersion(); + this.dist = FMLLoader.getCurrent().getDist(); this.serverIP = server.getLocalIp() == null ? "unknown" : server.getLocalIp(); this.serverPort = server.getPort(); this.onlineMode = server.usesAuthentication(); diff --git a/bootstrap/mod/neoforge/src/main/java/org/geysermc/geyser/platform/neoforge/GeyserNeoForgePlatform.java b/bootstrap/mod/neoforge/src/main/java/org/geysermc/geyser/platform/neoforge/GeyserNeoForgePlatform.java index c314009fb..603f00f46 100644 --- a/bootstrap/mod/neoforge/src/main/java/org/geysermc/geyser/platform/neoforge/GeyserNeoForgePlatform.java +++ b/bootstrap/mod/neoforge/src/main/java/org/geysermc/geyser/platform/neoforge/GeyserNeoForgePlatform.java @@ -38,7 +38,6 @@ import org.geysermc.geyser.platform.mod.platform.GeyserModPlatform; import java.io.IOException; import java.io.InputStream; -import java.nio.file.Files; import java.nio.file.Path; public class GeyserNeoForgePlatform implements GeyserModPlatform { @@ -82,8 +81,7 @@ public class GeyserNeoForgePlatform implements GeyserModPlatform { @Override public @Nullable InputStream resolveResource(@NonNull String resource) { try { - Path path = container.getModInfo().getOwningFile().getFile().findResource(resource); - return Files.newInputStream(path); + return container.getModInfo().getOwningFile().getFile().getContents().openFile(resource); } catch (IOException e) { return null; } diff --git a/bootstrap/mod/neoforge/src/main/java/org/geysermc/geyser/platform/neoforge/PermissionUtils.java b/bootstrap/mod/neoforge/src/main/java/org/geysermc/geyser/platform/neoforge/PermissionUtils.java index 5755e407f..6ed5bc608 100644 --- a/bootstrap/mod/neoforge/src/main/java/org/geysermc/geyser/platform/neoforge/PermissionUtils.java +++ b/bootstrap/mod/neoforge/src/main/java/org/geysermc/geyser/platform/neoforge/PermissionUtils.java @@ -71,7 +71,7 @@ public class PermissionUtils { case FALSE -> false; case NOT_SET -> { if (player != null) { - yield player.createCommandSourceStack().hasPermission(Objects.requireNonNull(player.getServer()).getOperatorUserPermissionLevel()); + yield player.createCommandSourceStack().hasPermission(Objects.requireNonNull(player.level()).getServer().operatorUserPermissionLevel()); } yield false; // NeoForge javadocs say player is null in the case of an offline player. } diff --git a/bootstrap/mod/neoforge/src/main/resources/META-INF/neoforge.mods.toml b/bootstrap/mod/neoforge/src/main/resources/META-INF/neoforge.mods.toml index 3f1fe574d..7eb124724 100644 --- a/bootstrap/mod/neoforge/src/main/resources/META-INF/neoforge.mods.toml +++ b/bootstrap/mod/neoforge/src/main/resources/META-INF/neoforge.mods.toml @@ -16,12 +16,12 @@ config = "geyser_neoforge.mixins.json" [[dependencies.geyser_neoforge]] modId="neoforge" type="required" - versionRange="[21.6.0-beta,)" + versionRange="[21.9.14-beta,)" ordering="NONE" side="BOTH" [[dependencies.geyser_neoforge]] modId="minecraft" type="required" - versionRange="[1.21.6,)" + versionRange="[1.21.9,)" ordering="NONE" side="BOTH" diff --git a/bootstrap/mod/src/main/java/org/geysermc/geyser/platform/mod/GeyserModBootstrap.java b/bootstrap/mod/src/main/java/org/geysermc/geyser/platform/mod/GeyserModBootstrap.java index b80c560fc..f8e8e5ee0 100644 --- a/bootstrap/mod/src/main/java/org/geysermc/geyser/platform/mod/GeyserModBootstrap.java +++ b/bootstrap/mod/src/main/java/org/geysermc/geyser/platform/mod/GeyserModBootstrap.java @@ -226,4 +226,9 @@ public abstract class GeyserModBootstrap implements GeyserBootstrap { public InputStream getResourceOrNull(String resource) { return this.platform.resolveResource(resource); } + + @Override + public @NonNull String getServerPlatform() { + return server.getServerModName(); + } } diff --git a/bootstrap/mod/src/main/java/org/geysermc/geyser/platform/mod/GeyserModUpdateListener.java b/bootstrap/mod/src/main/java/org/geysermc/geyser/platform/mod/GeyserModUpdateListener.java index ec34766dc..360619284 100644 --- a/bootstrap/mod/src/main/java/org/geysermc/geyser/platform/mod/GeyserModUpdateListener.java +++ b/bootstrap/mod/src/main/java/org/geysermc/geyser/platform/mod/GeyserModUpdateListener.java @@ -26,17 +26,21 @@ package org.geysermc.geyser.platform.mod; import net.minecraft.server.level.ServerPlayer; +import org.geysermc.geyser.GeyserImpl; import org.geysermc.geyser.Permissions; import org.geysermc.geyser.platform.mod.command.ModCommandSource; import org.geysermc.geyser.util.VersionCheckUtils; public final class GeyserModUpdateListener { public static void onPlayReady(ServerPlayer player) { - // Should be creating this in the supplier, but we need it for the permission check. - // Not a big deal currently because ModCommandSource doesn't load locale, so don't need to try to wait for it. - ModCommandSource source = new ModCommandSource(player.createCommandSourceStack()); - if (source.hasPermission(Permissions.CHECK_UPDATE)) { - VersionCheckUtils.checkForGeyserUpdate(() -> source); + // We could just not register the listener, but, this allows config reloading + if (GeyserImpl.getInstance().config().notifyOnNewBedrockUpdate()) { + // Should be creating this in the supplier, but we need it for the permission check. + // Not a big deal currently because ModCommandSource doesn't load locale, so don't need to try to wait for it. + ModCommandSource source = new ModCommandSource(player.createCommandSourceStack()); + if (source.hasPermission(Permissions.CHECK_UPDATE)) { + VersionCheckUtils.checkForGeyserUpdate(() -> source); + } } } diff --git a/bootstrap/mod/src/main/java/org/geysermc/geyser/platform/mod/mixin/server/DedicatedServerMixin.java b/bootstrap/mod/src/main/java/org/geysermc/geyser/platform/mod/mixin/server/DedicatedServerMixin.java index 3b809d321..84e3303c9 100644 --- a/bootstrap/mod/src/main/java/org/geysermc/geyser/platform/mod/mixin/server/DedicatedServerMixin.java +++ b/bootstrap/mod/src/main/java/org/geysermc/geyser/platform/mod/mixin/server/DedicatedServerMixin.java @@ -30,7 +30,7 @@ import net.minecraft.server.MinecraftServer; import net.minecraft.server.Services; import net.minecraft.server.WorldStem; import net.minecraft.server.dedicated.DedicatedServer; -import net.minecraft.server.level.progress.ChunkProgressListenerFactory; +import net.minecraft.server.level.progress.LevelLoadListener; import net.minecraft.server.packs.repository.PackRepository; import net.minecraft.world.level.storage.LevelStorageSource; import org.geysermc.geyser.platform.mod.GeyserServerPortGetter; @@ -40,8 +40,9 @@ import java.net.Proxy; @Mixin(DedicatedServer.class) public abstract class DedicatedServerMixin extends MinecraftServer implements GeyserServerPortGetter { - public DedicatedServerMixin(Thread thread, LevelStorageSource.LevelStorageAccess levelStorageAccess, PackRepository packRepository, WorldStem worldStem, Proxy proxy, DataFixer dataFixer, Services services, ChunkProgressListenerFactory chunkProgressListenerFactory) { - super(thread, levelStorageAccess, packRepository, worldStem, proxy, dataFixer, services, chunkProgressListenerFactory); + + public DedicatedServerMixin(Thread thread, LevelStorageSource.LevelStorageAccess levelStorageAccess, PackRepository packRepository, WorldStem worldStem, Proxy proxy, DataFixer dataFixer, Services services, LevelLoadListener levelLoadListener) { + super(thread, levelStorageAccess, packRepository, worldStem, proxy, dataFixer, services, levelLoadListener); } @Override diff --git a/bootstrap/spigot/build.gradle.kts b/bootstrap/spigot/build.gradle.kts index c74694e84..7d27971e8 100644 --- a/bootstrap/spigot/build.gradle.kts +++ b/bootstrap/spigot/build.gradle.kts @@ -80,7 +80,7 @@ modrinth { uploadFile.set(tasks.getByPath("shadowJar")) gameVersions.addAll("1.16.5", "1.17", "1.17.1", "1.18", "1.18.1", "1.18.2", "1.19", "1.19.1", "1.19.2", "1.19.3", "1.19.4", "1.20", "1.20.1", "1.20.2", "1.20.3", "1.20.4", "1.20.5", "1.20.6", - "1.21", "1.21.1", "1.21.2", "1.21.3", "1.21.4", "1.21.5", "1.21.6") + "1.21", "1.21.1", "1.21.2", "1.21.3", "1.21.4", "1.21.5", "1.21.6", "1.21.7", "1.21.8") loaders.addAll("spigot", "paper") } diff --git a/bootstrap/spigot/src/main/java/org/geysermc/geyser/platform/spigot/GeyserSpigotCompressionDisabler.java b/bootstrap/spigot/src/main/java/org/geysermc/geyser/platform/spigot/GeyserSpigotCompressionDisabler.java index 2a6056df9..f0fa71ab2 100644 --- a/bootstrap/spigot/src/main/java/org/geysermc/geyser/platform/spigot/GeyserSpigotCompressionDisabler.java +++ b/bootstrap/spigot/src/main/java/org/geysermc/geyser/platform/spigot/GeyserSpigotCompressionDisabler.java @@ -96,19 +96,31 @@ public class GeyserSpigotCompressionDisabler extends ChannelOutboundHandlerAdapt private static Class findCompressionPacket() throws ClassNotFoundException { try { - return Class.forName("net.minecraft.network.protocol.login.PacketLoginOutSetCompression"); + // Mojmaps + return Class.forName("net.minecraft.network.protocol.login.ClientboundLoginCompressionPacket"); } catch (ClassNotFoundException e) { - String prefix = Bukkit.getServer().getClass().getPackage().getName().replace("org.bukkit.craftbukkit", "net.minecraft.server"); - return Class.forName(prefix + ".PacketLoginOutSetCompression"); + try { + // Spigot mappings + return Class.forName("net.minecraft.network.protocol.login.PacketLoginOutSetCompression"); + } catch (ClassNotFoundException ex) { + String prefix = Bukkit.getServer().getClass().getPackage().getName().replace("org.bukkit.craftbukkit", "net.minecraft.server"); + return Class.forName(prefix + ".PacketLoginOutSetCompression"); + } } } private static Class findLoginSuccessPacket() throws ClassNotFoundException { try { - return Class.forName("net.minecraft.network.protocol.login.PacketLoginOutSuccess"); + // Mojmaps + return Class.forName("net.minecraft.network.protocol.login.ClientboundLoginFinishedPacket"); } catch (ClassNotFoundException e) { - String prefix = Bukkit.getServer().getClass().getPackage().getName().replace("org.bukkit.craftbukkit", "net.minecraft.server"); - return Class.forName(prefix + ".PacketLoginOutSuccess"); + try { + // Spigot mappings + return Class.forName("net.minecraft.network.protocol.login.PacketLoginOutSuccess"); + } catch (ClassNotFoundException ex) { + String prefix = Bukkit.getServer().getClass().getPackage().getName().replace("org.bukkit.craftbukkit", "net.minecraft.server"); + return Class.forName(prefix + ".PacketLoginOutSuccess"); + } } } } diff --git a/bootstrap/spigot/src/main/java/org/geysermc/geyser/platform/spigot/GeyserSpigotPlugin.java b/bootstrap/spigot/src/main/java/org/geysermc/geyser/platform/spigot/GeyserSpigotPlugin.java index 6e5bd337b..f8ed33740 100644 --- a/bootstrap/spigot/src/main/java/org/geysermc/geyser/platform/spigot/GeyserSpigotPlugin.java +++ b/bootstrap/spigot/src/main/java/org/geysermc/geyser/platform/spigot/GeyserSpigotPlugin.java @@ -406,6 +406,11 @@ public class GeyserSpigotPlugin extends JavaPlugin implements GeyserBootstrap { return this.minecraftVersion; } + @Override + public @NonNull String getServerPlatform() { + return Bukkit.getName(); + } + @Override public SocketAddress getSocketAddress() { return this.geyserInjector.getServerSocketAddress(); diff --git a/bootstrap/standalone/src/main/java/org/geysermc/geyser/platform/standalone/GeyserStandaloneBootstrap.java b/bootstrap/standalone/src/main/java/org/geysermc/geyser/platform/standalone/GeyserStandaloneBootstrap.java index a32f7e2e3..cb18661f7 100644 --- a/bootstrap/standalone/src/main/java/org/geysermc/geyser/platform/standalone/GeyserStandaloneBootstrap.java +++ b/bootstrap/standalone/src/main/java/org/geysermc/geyser/platform/standalone/GeyserStandaloneBootstrap.java @@ -275,6 +275,11 @@ public class GeyserStandaloneBootstrap implements GeyserBootstrap { return new GeyserStandaloneDumpInfo(this); } + @Override + public @NonNull String getServerPlatform() { + return PlatformType.STANDALONE.platformName(); + } + @NonNull @Override public String getServerBindAddress() { diff --git a/bootstrap/velocity/src/main/java/org/geysermc/geyser/platform/velocity/GeyserVelocityPlugin.java b/bootstrap/velocity/src/main/java/org/geysermc/geyser/platform/velocity/GeyserVelocityPlugin.java index 4319de95e..4f8c87900 100644 --- a/bootstrap/velocity/src/main/java/org/geysermc/geyser/platform/velocity/GeyserVelocityPlugin.java +++ b/bootstrap/velocity/src/main/java/org/geysermc/geyser/platform/velocity/GeyserVelocityPlugin.java @@ -233,6 +233,11 @@ public class GeyserVelocityPlugin implements GeyserBootstrap { return new GeyserVelocityDumpInfo(proxyServer); } + @Override + public @NonNull String getServerPlatform() { + return proxyServer.getVersion().getName(); + } + @Nullable @Override public SocketAddress getSocketAddress() { diff --git a/bootstrap/viaproxy/src/main/java/org/geysermc/geyser/platform/viaproxy/GeyserViaProxyPlugin.java b/bootstrap/viaproxy/src/main/java/org/geysermc/geyser/platform/viaproxy/GeyserViaProxyPlugin.java index c00e27a22..71cc0c04b 100644 --- a/bootstrap/viaproxy/src/main/java/org/geysermc/geyser/platform/viaproxy/GeyserViaProxyPlugin.java +++ b/bootstrap/viaproxy/src/main/java/org/geysermc/geyser/platform/viaproxy/GeyserViaProxyPlugin.java @@ -240,6 +240,11 @@ public class GeyserViaProxyPlugin extends ViaProxyPlugin implements GeyserBootst return new GeyserViaProxyDumpInfo(); } + @Override + public @NonNull String getServerPlatform() { + return PlatformType.VIAPROXY.platformName(); + } + @NonNull @Override public String getServerBindAddress() { diff --git a/build-logic/src/main/kotlin/geyser.modded-conventions.gradle.kts b/build-logic/src/main/kotlin/geyser.modded-conventions.gradle.kts index b157c0e53..903d82258 100644 --- a/build-logic/src/main/kotlin/geyser.modded-conventions.gradle.kts +++ b/build-logic/src/main/kotlin/geyser.modded-conventions.gradle.kts @@ -96,8 +96,8 @@ tasks { afterEvaluate { val providedDependencies = providedDependencies[project.name]!! - val shadedDependencies = configurations.getByName("shadowBundle") - .dependencies.stream().map { dependency -> "${dependency.group}:${dependency.name}" }.toList() + val shadedDependencies = configurations.getByName("shadowBundle").resolvedConfiguration.resolvedArtifacts.stream() + .map { dependency -> "${dependency.moduleVersion.id.module}" }.toList() // Now: Include all transitive dependencies that aren't excluded configurations["includeTransitive"].resolvedConfiguration.resolvedArtifacts.forEach { dep -> 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 fd3b0371a..db2d3b850 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.7", libs.minecraft.get().version as String) + gameVersions.addAll("1.21.9", 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/GeyserBootstrap.java b/core/src/main/java/org/geysermc/geyser/GeyserBootstrap.java index bb4d8fa8c..aa0d651b9 100644 --- a/core/src/main/java/org/geysermc/geyser/GeyserBootstrap.java +++ b/core/src/main/java/org/geysermc/geyser/GeyserBootstrap.java @@ -161,6 +161,11 @@ public interface GeyserBootstrap { return Paths.get("logs/latest.log"); } + /** + * @return the name of the server platform Geyser is running on. + */ + @NonNull String getServerPlatform(); + /** * Get an InputStream for the given resource path. * Overridden on platforms that have different class loader properties. diff --git a/core/src/main/java/org/geysermc/geyser/GeyserImpl.java b/core/src/main/java/org/geysermc/geyser/GeyserImpl.java index dd88cb40b..18ce9fec2 100644 --- a/core/src/main/java/org/geysermc/geyser/GeyserImpl.java +++ b/core/src/main/java/org/geysermc/geyser/GeyserImpl.java @@ -98,6 +98,7 @@ import org.geysermc.geyser.text.GeyserLocale; import org.geysermc.geyser.text.MinecraftLocale; import org.geysermc.geyser.translator.text.MessageTranslator; import org.geysermc.geyser.util.AssetUtils; +import org.geysermc.geyser.util.CodeOfConductManager; import org.geysermc.geyser.util.JsonUtils; import org.geysermc.geyser.util.NewsHandler; import org.geysermc.geyser.util.VersionCheckUtils; @@ -149,7 +150,7 @@ public class GeyserImpl implements GeyserApi, EventRegistrar { */ public static final String OAUTH_CLIENT_ID = "204cefd1-4818-4de1-b98d-513fae875d88"; - private static final String IP_REGEX = "\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\b"; + private static final Pattern IP_REGEX = Pattern.compile("\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\b"); private final SessionManager sessionManager = new SessionManager(); @@ -301,7 +302,10 @@ public class GeyserImpl implements GeyserApi, EventRegistrar { if (isReloading) { // If we're reloading, the default locale in the config might have changed. GeyserLocale.finalizeDefaultLocale(this); + } else { + CodeOfConductManager.load(); } + GeyserLogger logger = bootstrap.getGeyserLogger(); GeyserConfig config = bootstrap.config(); @@ -427,7 +431,7 @@ public class GeyserImpl implements GeyserApi, EventRegistrar { if (!(config instanceof GeyserPluginConfig)) { String remoteAddress = config.java().address(); // Filters whether it is not an IP address or localhost, because otherwise it is not possible to find out an SRV entry. - if (!remoteAddress.matches(IP_REGEX) && !remoteAddress.equalsIgnoreCase("localhost")) { + if (!IP_REGEX.matcher(remoteAddress).matches() && !remoteAddress.equalsIgnoreCase("localhost")) { String[] record = WebUtils.findSrvRecord(this, remoteAddress); if (record != null) { int remotePort = Integer.parseInt(record[2]); @@ -528,7 +532,18 @@ public class GeyserImpl implements GeyserApi, EventRegistrar { metrics.addCustomChart(new SingleLineChart("players", sessionManager::size)); // Prevent unwanted words best we can metrics.addCustomChart(new SimplePie("authMode", () -> config.java().authType().toString().toLowerCase(Locale.ROOT))); - metrics.addCustomChart(new SimplePie("platform", platformType()::platformName)); + + Map> platformTypeMap = new HashMap<>(); + Map serverPlatform = new HashMap<>(); + serverPlatform.put(bootstrap.getServerPlatform(), 1); + platformTypeMap.put(platformType().platformName(), serverPlatform); + + metrics.addCustomChart(new DrilldownPie("platform", () -> { + // By the end, we should return, for example: + // Geyser-Spigot => (Paper, 1) + return platformTypeMap; + })); + metrics.addCustomChart(new SimplePie("defaultLocale", GeyserLocale::getDefaultLocale)); metrics.addCustomChart(new SimplePie("version", () -> GeyserImpl.VERSION)); metrics.addCustomChart(new SimplePie("javaHaProxyProtocol", () -> String.valueOf(config.java().useHaproxyProtocol()))); @@ -566,7 +581,7 @@ public class GeyserImpl implements GeyserApi, EventRegistrar { if (minecraftVersion != null) { Map> versionMap = new HashMap<>(); Map platformMap = new HashMap<>(); - platformMap.put(platformType().platformName(), 1); + platformMap.put(bootstrap.getServerPlatform(), 1); versionMap.put(minecraftVersion, platformMap); metrics.addCustomChart(new DrilldownPie("minecraftServerVersion", () -> { @@ -732,6 +747,7 @@ public class GeyserImpl implements GeyserApi, EventRegistrar { runIfNonNull(erosionUnixListener, UnixSocketClientListener::close); ResourcePackLoader.clear(); + CodeOfConductManager.getInstance().save(); this.setEnabled(false); } diff --git a/core/src/main/java/org/geysermc/geyser/command/standalone/PermissionConfiguration.java b/core/src/main/java/org/geysermc/geyser/command/standalone/PermissionConfiguration.java index a8e1ee9dd..b77a6bc0c 100644 --- a/core/src/main/java/org/geysermc/geyser/command/standalone/PermissionConfiguration.java +++ b/core/src/main/java/org/geysermc/geyser/command/standalone/PermissionConfiguration.java @@ -37,4 +37,6 @@ import java.util.Set; public class PermissionConfiguration { private Set defaultPermissions = Collections.emptySet(); + + private Set defaultDeniedPermissions = Collections.emptySet(); } diff --git a/core/src/main/java/org/geysermc/geyser/command/standalone/StandaloneCloudCommandManager.java b/core/src/main/java/org/geysermc/geyser/command/standalone/StandaloneCloudCommandManager.java index 99c53f319..87aab8045 100644 --- a/core/src/main/java/org/geysermc/geyser/command/standalone/StandaloneCloudCommandManager.java +++ b/core/src/main/java/org/geysermc/geyser/command/standalone/StandaloneCloudCommandManager.java @@ -59,6 +59,11 @@ public class StandaloneCloudCommandManager extends CommandManager basePermissions = new ObjectOpenHashSet<>(); + /** + * Any permissions that all connections do not have + */ + private final Set baseDeniedPermissions = new ObjectOpenHashSet<>(); + public StandaloneCloudCommandManager(GeyserImpl geyser) { super(ExecutionCoordinator.simpleCoordinator(), CommandRegistrationHandler.nullCommandRegistrationHandler()); // simpleCoordinator: execute commands immediately on the calling thread. @@ -74,6 +79,7 @@ public class StandaloneCloudCommandManager extends CommandManager(EntityFactory factory, Entit float width, float height, float offset, GeyserEntityProperties registeredProperties, List> translators) { public static Builder inherited(EntityFactory factory, EntityDefinition parent) { - return new Builder<>(factory, parent.entityType, parent.identifier, parent.width, parent.height, parent.offset, parent.registeredProperties, new ObjectArrayList<>(parent.translators)); + return new Builder<>(factory, parent.entityType, parent.identifier, parent.width, parent.height, parent.offset, new ObjectArrayList<>(parent.translators)); } public static Builder builder(EntityFactory factory) { @@ -89,7 +90,7 @@ public record EntityDefinition(EntityFactory factory, Entit private float width; private float height; private float offset = 0.00001f; - private GeyserEntityProperties registeredProperties; + private GeyserEntityProperties.Builder propertiesBuilder; private final List> translators; private Builder(EntityFactory factory) { @@ -97,14 +98,13 @@ public record EntityDefinition(EntityFactory factory, Entit translators = new ObjectArrayList<>(); } - public Builder(EntityFactory factory, EntityType type, String identifier, float width, float height, float offset, GeyserEntityProperties registeredProperties, List> translators) { + public Builder(EntityFactory factory, EntityType type, String identifier, float width, float height, float offset, List> translators) { this.factory = factory; this.type = type; this.identifier = identifier; this.width = width; this.height = height; this.offset = offset; - this.registeredProperties = registeredProperties; this.translators = translators; } @@ -131,8 +131,11 @@ public record EntityDefinition(EntityFactory factory, Entit return this; } - public Builder properties(GeyserEntityProperties registeredProperties) { - this.registeredProperties = registeredProperties; + public Builder property(PropertyType propertyType) { + if (this.propertiesBuilder == null) { + this.propertiesBuilder = new GeyserEntityProperties.Builder(this.identifier); + } + propertiesBuilder.add(propertyType); return this; } @@ -158,13 +161,11 @@ public record EntityDefinition(EntityFactory factory, Entit if (identifier == null && type != null) { identifier = "minecraft:" + type.name().toLowerCase(Locale.ROOT); } + GeyserEntityProperties registeredProperties = propertiesBuilder == null ? null : propertiesBuilder.build(); EntityDefinition definition = new EntityDefinition<>(factory, type, identifier, width, height, offset, registeredProperties, translators); if (register && definition.entityType() != null) { Registries.ENTITY_DEFINITIONS.get().putIfAbsent(definition.entityType(), definition); Registries.JAVA_ENTITY_IDENTIFIERS.get().putIfAbsent("minecraft:" + type.name().toLowerCase(Locale.ROOT), definition); - if (definition.registeredProperties() != null) { - Registries.BEDROCK_ENTITY_PROPERTIES.get().add(definition.registeredProperties().toNbtMap(identifier)); - } } return definition; } 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 960369de7..fbe8b7883 100644 --- a/core/src/main/java/org/geysermc/geyser/entity/EntityDefinitions.java +++ b/core/src/main/java/org/geysermc/geyser/entity/EntityDefinitions.java @@ -25,10 +25,23 @@ package org.geysermc.geyser.entity; +import org.checkerframework.checker.nullness.qual.NonNull; +import org.checkerframework.checker.nullness.qual.Nullable; import org.cloudburstmc.protocol.bedrock.data.entity.EntityDataTypes; import org.cloudburstmc.protocol.bedrock.data.entity.EntityFlag; +import org.geysermc.geyser.GeyserImpl; +import org.geysermc.geyser.api.entity.property.GeyserEntityProperty; +import org.geysermc.geyser.api.entity.property.type.GeyserFloatEntityProperty; +import org.geysermc.geyser.api.entity.property.type.GeyserStringEnumProperty; +import org.geysermc.geyser.api.event.lifecycle.GeyserDefineEntityPropertiesEvent; +import org.geysermc.geyser.api.util.Identifier; import org.geysermc.geyser.entity.factory.EntityFactory; -import org.geysermc.geyser.entity.properties.VanillaEntityProperties; +import org.geysermc.geyser.entity.properties.type.BooleanProperty; +import org.geysermc.geyser.entity.properties.type.EnumProperty; +import org.geysermc.geyser.entity.properties.type.FloatProperty; +import org.geysermc.geyser.entity.properties.type.IntProperty; +import org.geysermc.geyser.entity.properties.type.PropertyType; +import org.geysermc.geyser.entity.properties.type.StringEnumProperty; import org.geysermc.geyser.entity.type.AbstractArrowEntity; import org.geysermc.geyser.entity.type.AbstractWindChargeEntity; import org.geysermc.geyser.entity.type.AreaEffectCloudEntity; @@ -37,8 +50,6 @@ import org.geysermc.geyser.entity.type.BoatEntity; import org.geysermc.geyser.entity.type.ChestBoatEntity; import org.geysermc.geyser.entity.type.CommandBlockMinecartEntity; import org.geysermc.geyser.entity.type.DisplayBaseEntity; -import org.geysermc.geyser.entity.type.HangingEntity; -import org.geysermc.geyser.entity.type.ThrowableEggEntity; import org.geysermc.geyser.entity.type.EnderCrystalEntity; import org.geysermc.geyser.entity.type.EnderEyeEntity; import org.geysermc.geyser.entity.type.Entity; @@ -49,6 +60,7 @@ import org.geysermc.geyser.entity.type.FireballEntity; import org.geysermc.geyser.entity.type.FireworkEntity; import org.geysermc.geyser.entity.type.FishingHookEntity; import org.geysermc.geyser.entity.type.FurnaceMinecartEntity; +import org.geysermc.geyser.entity.type.HangingEntity; import org.geysermc.geyser.entity.type.InteractionEntity; import org.geysermc.geyser.entity.type.ItemEntity; import org.geysermc.geyser.entity.type.ItemFrameEntity; @@ -60,6 +72,7 @@ import org.geysermc.geyser.entity.type.PaintingEntity; import org.geysermc.geyser.entity.type.SpawnerMinecartEntity; import org.geysermc.geyser.entity.type.TNTEntity; import org.geysermc.geyser.entity.type.TextDisplayEntity; +import org.geysermc.geyser.entity.type.ThrowableEggEntity; import org.geysermc.geyser.entity.type.ThrowableEntity; import org.geysermc.geyser.entity.type.ThrowableItemEntity; import org.geysermc.geyser.entity.type.ThrownPotionEntity; @@ -70,6 +83,7 @@ import org.geysermc.geyser.entity.type.living.AgeableEntity; import org.geysermc.geyser.entity.type.living.AllayEntity; import org.geysermc.geyser.entity.type.living.ArmorStandEntity; import org.geysermc.geyser.entity.type.living.BatEntity; +import org.geysermc.geyser.entity.type.living.CopperGolemEntity; import org.geysermc.geyser.entity.type.living.DolphinEntity; import org.geysermc.geyser.entity.type.living.GlowSquidEntity; import org.geysermc.geyser.entity.type.living.IronGolemEntity; @@ -82,17 +96,14 @@ import org.geysermc.geyser.entity.type.living.TadpoleEntity; import org.geysermc.geyser.entity.type.living.animal.ArmadilloEntity; import org.geysermc.geyser.entity.type.living.animal.AxolotlEntity; import org.geysermc.geyser.entity.type.living.animal.BeeEntity; -import org.geysermc.geyser.entity.type.living.animal.HappyGhastEntity; -import org.geysermc.geyser.entity.type.living.animal.farm.ChickenEntity; -import org.geysermc.geyser.entity.type.living.animal.farm.CowEntity; import org.geysermc.geyser.entity.type.living.animal.FoxEntity; import org.geysermc.geyser.entity.type.living.animal.FrogEntity; import org.geysermc.geyser.entity.type.living.animal.GoatEntity; +import org.geysermc.geyser.entity.type.living.animal.HappyGhastEntity; import org.geysermc.geyser.entity.type.living.animal.HoglinEntity; import org.geysermc.geyser.entity.type.living.animal.MooshroomEntity; import org.geysermc.geyser.entity.type.living.animal.OcelotEntity; import org.geysermc.geyser.entity.type.living.animal.PandaEntity; -import org.geysermc.geyser.entity.type.living.animal.farm.PigEntity; import org.geysermc.geyser.entity.type.living.animal.PolarBearEntity; import org.geysermc.geyser.entity.type.living.animal.PufferFishEntity; import org.geysermc.geyser.entity.type.living.animal.RabbitEntity; @@ -101,6 +112,10 @@ import org.geysermc.geyser.entity.type.living.animal.SnifferEntity; import org.geysermc.geyser.entity.type.living.animal.StriderEntity; import org.geysermc.geyser.entity.type.living.animal.TropicalFishEntity; import org.geysermc.geyser.entity.type.living.animal.TurtleEntity; +import org.geysermc.geyser.entity.type.living.animal.farm.ChickenEntity; +import org.geysermc.geyser.entity.type.living.animal.farm.CowEntity; +import org.geysermc.geyser.entity.type.living.animal.farm.PigEntity; +import org.geysermc.geyser.entity.type.living.animal.farm.TemperatureVariantAnimal; import org.geysermc.geyser.entity.type.living.animal.horse.AbstractHorseEntity; import org.geysermc.geyser.entity.type.living.animal.horse.CamelEntity; import org.geysermc.geyser.entity.type.living.animal.horse.ChestedHorseEntity; @@ -147,6 +162,8 @@ import org.geysermc.geyser.entity.type.living.monster.raid.RaidParticipantEntity import org.geysermc.geyser.entity.type.living.monster.raid.RavagerEntity; import org.geysermc.geyser.entity.type.living.monster.raid.SpellcasterIllagerEntity; import org.geysermc.geyser.entity.type.living.monster.raid.VindicatorEntity; +import org.geysermc.geyser.entity.type.player.AvatarEntity; +import org.geysermc.geyser.entity.type.player.MannequinEntity; import org.geysermc.geyser.entity.type.player.PlayerEntity; import org.geysermc.geyser.registry.Registries; import org.geysermc.geyser.translator.text.MessageTranslator; @@ -155,6 +172,10 @@ import org.geysermc.mcprotocollib.protocol.data.game.entity.metadata.type.Boolea import org.geysermc.mcprotocollib.protocol.data.game.entity.metadata.type.FloatEntityMetadata; import org.geysermc.mcprotocollib.protocol.data.game.entity.type.EntityType; +import java.util.Collection; +import java.util.List; +import java.util.Objects; + public final class EntityDefinitions { public static final EntityDefinition ACACIA_BOAT; public static final EntityDefinition ACACIA_CHEST_BOAT; @@ -182,6 +203,7 @@ public final class EntityDefinitions { public static final EntityDefinition CHEST_MINECART; public static final EntityDefinition CHICKEN; public static final EntityDefinition COD; + public static final EntityDefinition COPPER_GOLEM; public static final EntityDefinition COMMAND_BLOCK_MINECART; public static final EntityDefinition COW; public static final EntityDefinition CREAKING; @@ -236,6 +258,7 @@ public final class EntityDefinitions { public static final EntityDefinition MAGMA_CUBE; public static final EntityDefinition MANGROVE_BOAT; public static final EntityDefinition MANGROVE_CHEST_BOAT; + public static final EntityDefinition MANNEQUIN; public static final EntityDefinition MINECART; public static final EntityDefinition MOOSHROOM; public static final EntityDefinition MULE; @@ -464,7 +487,7 @@ public final class EntityDefinitions { EGG = EntityDefinition.inherited(ThrowableEggEntity::new, throwableItemBase) .type(EntityType.EGG) .heightAndWidth(0.25f) - .properties(VanillaEntityProperties.CLIMATE_VARIANT) + .property(TemperatureVariantAnimal.TEMPERATE_VARIANT_PROPERTY) .build(); ENDER_PEARL = EntityDefinition.inherited(ThrowableItemEntity::new, throwableItemBase) .type(EntityType.ENDER_PEARL) @@ -651,16 +674,27 @@ public final class EntityDefinitions { .addTranslator(MetadataTypes.ROTATIONS, ArmorStandEntity::setLeftLegRotation) .addTranslator(MetadataTypes.ROTATIONS, ArmorStandEntity::setRightLegRotation) .build(); - PLAYER = EntityDefinition.inherited(null, livingEntityBase) + + EntityDefinition avatarEntityBase = EntityDefinition.inherited(null, livingEntityBase) + .height(1.8f).width(0.6f) + .offset(1.62f) + .addTranslator(null) // Player main hand + .addTranslator(MetadataTypes.BYTE, AvatarEntity::setSkinVisibility) + .build(); + + MANNEQUIN = EntityDefinition.inherited(MannequinEntity::new, avatarEntityBase) + .type(EntityType.MANNEQUIN) + .addTranslator(MetadataTypes.RESOLVABLE_PROFILE, MannequinEntity::setProfile) + .addTranslator(null) // Immovable + .addTranslator(MetadataTypes.OPTIONAL_COMPONENT, MannequinEntity::setDescription) + .build(); + + PLAYER = EntityDefinition.inherited(null, avatarEntityBase) .type(EntityType.PLAYER) - .height(1.8f).width(0.6f) - .offset(1.62f) .addTranslator(MetadataTypes.FLOAT, PlayerEntity::setAbsorptionHearts) .addTranslator(null) // Player score - .addTranslator(MetadataTypes.BYTE, PlayerEntity::setSkinVisibility) - .addTranslator(null) // Player main hand - .addTranslator(MetadataTypes.COMPOUND_TAG, PlayerEntity::setLeftParrot) - .addTranslator(MetadataTypes.COMPOUND_TAG, PlayerEntity::setRightParrot) + .addTranslator(MetadataTypes.OPTIONAL_UNSIGNED_INT, PlayerEntity::setLeftParrot) + .addTranslator(MetadataTypes.OPTIONAL_UNSIGNED_INT, PlayerEntity::setRightParrot) .build(); EntityDefinition mobEntityBase = EntityDefinition.inherited(MobEntity::new, livingEntityBase) @@ -694,6 +728,15 @@ public final class EntityDefinitions { .type(EntityType.BREEZE) .height(1.77f).width(0.6f) .build(); + COPPER_GOLEM = EntityDefinition.inherited(CopperGolemEntity::new, mobEntityBase) + .type(EntityType.COPPER_GOLEM) + .height(0.49f).width(0.98f) + .addTranslator(MetadataTypes.WEATHERING_COPPER_STATE, CopperGolemEntity::setWeatheringState) + .addTranslator(MetadataTypes.COPPER_GOLEM_STATE, CopperGolemEntity::setGolemState) + .property(CopperGolemEntity.CHEST_INTERACTION_PROPERTY) + .property(CopperGolemEntity.HAS_FLOWER_PROPERTY) + .property(CopperGolemEntity.OXIDATION_LEVEL_STATE_ENUM_PROPERTY) + .build(); CREAKING = EntityDefinition.inherited(CreakingEntity::new, mobEntityBase) .type(EntityType.CREAKING) .height(2.7f).width(0.9f) @@ -701,7 +744,8 @@ public final class EntityDefinitions { .addTranslator(MetadataTypes.BOOLEAN, CreakingEntity::setActive) .addTranslator(MetadataTypes.BOOLEAN, CreakingEntity::setIsTearingDown) .addTranslator(MetadataTypes.OPTIONAL_BLOCK_POS, CreakingEntity::setHomePos) - .properties(VanillaEntityProperties.CREAKING) + .property(CreakingEntity.STATE_PROPERTY) + .property(CreakingEntity.SWAYING_TICKS_PROPERTY) .build(); CREEPER = EntityDefinition.inherited(CreeperEntity::new, mobEntityBase) .type(EntityType.CREEPER) @@ -954,7 +998,7 @@ public final class EntityDefinitions { ARMADILLO = EntityDefinition.inherited(ArmadilloEntity::new, ageableEntityBase) .type(EntityType.ARMADILLO) .height(0.65f).width(0.7f) - .properties(VanillaEntityProperties.ARMADILLO) + .property(ArmadilloEntity.STATE_PROPERTY) .addTranslator(MetadataTypes.ARMADILLO_STATE, ArmadilloEntity::setArmadilloState) .build(); AXOLOTL = EntityDefinition.inherited(AxolotlEntity::new, ageableEntityBase) @@ -967,20 +1011,20 @@ public final class EntityDefinitions { BEE = EntityDefinition.inherited(BeeEntity::new, ageableEntityBase) .type(EntityType.BEE) .heightAndWidth(0.6f) - .properties(VanillaEntityProperties.BEE) + .property(BeeEntity.NECTAR_PROPERTY) .addTranslator(MetadataTypes.BYTE, BeeEntity::setBeeFlags) .addTranslator(MetadataTypes.INT, BeeEntity::setAngerTime) .build(); CHICKEN = EntityDefinition.inherited(ChickenEntity::new, ageableEntityBase) .type(EntityType.CHICKEN) .height(0.7f).width(0.4f) - .properties(VanillaEntityProperties.CLIMATE_VARIANT) + .property(TemperatureVariantAnimal.TEMPERATE_VARIANT_PROPERTY) .addTranslator(MetadataTypes.CHICKEN_VARIANT, ChickenEntity::setVariant) .build(); COW = EntityDefinition.inherited(CowEntity::new, ageableEntityBase) .type(EntityType.COW) .height(1.4f).width(0.9f) - .properties(VanillaEntityProperties.CLIMATE_VARIANT) + .property(TemperatureVariantAnimal.TEMPERATE_VARIANT_PROPERTY) .addTranslator(MetadataTypes.COW_VARIANT, CowEntity::setVariant) .build(); FOX = EntityDefinition.inherited(FoxEntity::new, ageableEntityBase) @@ -1000,7 +1044,7 @@ public final class EntityDefinitions { HAPPY_GHAST = EntityDefinition.inherited(HappyGhastEntity::new, ageableEntityBase) .type(EntityType.HAPPY_GHAST) .heightAndWidth(4f) - .properties(VanillaEntityProperties.HAPPY_GHAST) + .property(HappyGhastEntity.CAN_MOVE_PROPERTY) .addTranslator(null) // Is leash holder .addTranslator(MetadataTypes.BOOLEAN, HappyGhastEntity::setStaysStill) .build(); @@ -1039,7 +1083,7 @@ public final class EntityDefinitions { PIG = EntityDefinition.inherited(PigEntity::new, ageableEntityBase) .type(EntityType.PIG) .heightAndWidth(0.9f) - .properties(VanillaEntityProperties.CLIMATE_VARIANT) + .property(TemperatureVariantAnimal.TEMPERATE_VARIANT_PROPERTY) .addTranslator(MetadataTypes.INT, PigEntity::setBoost) .addTranslator(MetadataTypes.PIG_VARIANT, PigEntity::setVariant) .build(); @@ -1185,7 +1229,7 @@ public final class EntityDefinitions { WOLF = EntityDefinition.inherited(WolfEntity::new, tameableEntityBase) .type(EntityType.WOLF) .height(0.85f).width(0.6f) - .properties(VanillaEntityProperties.WOLF_SOUND_VARIANT) + .property(WolfEntity.SOUND_VARIANT) // "Begging" on wiki.vg, "Interested" in Nukkit - the tilt of the head .addTranslator(MetadataTypes.BOOLEAN, (wolfEntity, entityMetadata) -> wolfEntity.setFlag(EntityFlag.INTERESTED, ((BooleanEntityMetadata) entityMetadata).getPrimitiveValue())) .addTranslator(MetadataTypes.INT, WolfEntity::setCollarColor) @@ -1219,7 +1263,95 @@ public final class EntityDefinitions { } public static void init() { - // no-op + // entities would be initialized before this event is called + GeyserImpl.getInstance().getEventBus().fire(new GeyserDefineEntityPropertiesEvent() { + @Override + public GeyserFloatEntityProperty registerFloatProperty(@NonNull Identifier identifier, @NonNull Identifier propertyId, float min, float max, @Nullable Float defaultValue) { + Objects.requireNonNull(identifier); + Objects.requireNonNull(propertyId); + if (propertyId.vanilla()) { + throw new IllegalArgumentException("Cannot register custom property in vanilla namespace! " + propertyId); + } + FloatProperty property = new FloatProperty(propertyId, min, max, defaultValue); + registerProperty(identifier, property); + return property; + } + + @Override + public IntProperty registerIntegerProperty(@NonNull Identifier identifier, @NonNull Identifier propertyId, int min, int max, @Nullable Integer defaultValue) { + Objects.requireNonNull(identifier); + Objects.requireNonNull(propertyId); + if (propertyId.vanilla()) { + throw new IllegalArgumentException("Cannot register custom property in vanilla namespace! " + propertyId); + } + IntProperty property = new IntProperty(propertyId, min, max, defaultValue); + registerProperty(identifier, property); + return property; + } + + @Override + public BooleanProperty registerBooleanProperty(@NonNull Identifier identifier, @NonNull Identifier propertyId, boolean defaultValue) { + Objects.requireNonNull(identifier); + Objects.requireNonNull(propertyId); + if (propertyId.vanilla()) { + throw new IllegalArgumentException("Cannot register custom property in vanilla namespace! " + propertyId); + } + BooleanProperty property = new BooleanProperty(propertyId, defaultValue); + registerProperty(identifier, property); + return property; + } + + @Override + public > EnumProperty registerEnumProperty(@NonNull Identifier identifier, @NonNull Identifier propertyId, @NonNull Class enumClass, @Nullable E defaultValue) { + Objects.requireNonNull(identifier); + Objects.requireNonNull(propertyId); + Objects.requireNonNull(enumClass); + if (propertyId.vanilla()) { + throw new IllegalArgumentException("Cannot register custom property in vanilla namespace! " + propertyId); + } + EnumProperty property = new EnumProperty<>(propertyId, enumClass, defaultValue == null ? enumClass.getEnumConstants()[0] : defaultValue); + registerProperty(identifier, property); + return property; + } + + @Override + public GeyserStringEnumProperty registerEnumProperty(@NonNull Identifier identifier, @NonNull Identifier propertyId, @NonNull List values, @Nullable String defaultValue) { + Objects.requireNonNull(identifier); + Objects.requireNonNull(propertyId); + Objects.requireNonNull(values); + if (propertyId.vanilla()) { + throw new IllegalArgumentException("Cannot register custom property in vanilla namespace! " + propertyId); + } + StringEnumProperty property = new StringEnumProperty(propertyId, values, defaultValue); + registerProperty(identifier, property); + return property; + } + + @Override + public Collection> properties(@NonNull Identifier identifier) { + Objects.requireNonNull(identifier); + var definition = Registries.JAVA_ENTITY_IDENTIFIERS.get(identifier.toString()); + if (definition == null) { + throw new IllegalArgumentException("Unknown entity type: " + identifier); + } + return List.copyOf(definition.registeredProperties().getProperties()); + } + }); + + for (var definition : Registries.ENTITY_DEFINITIONS.get().values()) { + if (definition.registeredProperties() != null) { + Registries.BEDROCK_ENTITY_PROPERTIES.get().add(definition.registeredProperties().toNbtMap(definition.identifier())); + } + } + } + + private static void registerProperty(Identifier entityType, PropertyType property) { + var definition = Registries.JAVA_ENTITY_IDENTIFIERS.get(entityType.toString()); + if (definition == null) { + throw new IllegalArgumentException("Unknown entity type: " + entityType); + } + + definition.registeredProperties().add(entityType.toString(), property); } private EntityDefinitions() { diff --git a/core/src/main/java/org/geysermc/geyser/entity/GeyserEntityData.java b/core/src/main/java/org/geysermc/geyser/entity/GeyserEntityData.java index 6f8f2525f..e0267ff13 100644 --- a/core/src/main/java/org/geysermc/geyser/entity/GeyserEntityData.java +++ b/core/src/main/java/org/geysermc/geyser/entity/GeyserEntityData.java @@ -44,7 +44,6 @@ import java.util.concurrent.CompletableFuture; public class GeyserEntityData implements EntityData { private final GeyserSession session; - private final Set movementLockOwners = new HashSet<>(); public GeyserEntityData(GeyserSession session) { diff --git a/core/src/main/java/org/geysermc/geyser/entity/properties/GeyserEntityProperties.java b/core/src/main/java/org/geysermc/geyser/entity/properties/GeyserEntityProperties.java index eaa7b7448..fa9439998 100644 --- a/core/src/main/java/org/geysermc/geyser/entity/properties/GeyserEntityProperties.java +++ b/core/src/main/java/org/geysermc/geyser/entity/properties/GeyserEntityProperties.java @@ -31,36 +31,38 @@ import it.unimi.dsi.fastutil.objects.ObjectArrayList; import lombok.EqualsAndHashCode; import lombok.ToString; import org.checkerframework.checker.nullness.qual.NonNull; +import org.checkerframework.checker.nullness.qual.Nullable; import org.cloudburstmc.nbt.NbtMap; import org.cloudburstmc.nbt.NbtMapBuilder; import org.cloudburstmc.nbt.NbtType; -import org.geysermc.geyser.entity.properties.type.BooleanProperty; -import org.geysermc.geyser.entity.properties.type.EnumProperty; -import org.geysermc.geyser.entity.properties.type.FloatProperty; -import org.geysermc.geyser.entity.properties.type.IntProperty; +import org.cloudburstmc.protocol.bedrock.data.entity.EntityProperty; import org.geysermc.geyser.entity.properties.type.PropertyType; +import org.geysermc.geyser.registry.Registries; import java.util.ArrayList; -import java.util.Arrays; import java.util.List; +import java.util.Objects; +import java.util.regex.Pattern; @EqualsAndHashCode @ToString public class GeyserEntityProperties { - private final ObjectArrayList properties; + + private final static Pattern ENTITY_PROPERTY_PATTERN = Pattern.compile("^[a-z0-9_.:-]*:[a-z0-9_.:-]*$"); + + private final ObjectArrayList> properties; private final Object2IntMap propertyIndices; - private GeyserEntityProperties(ObjectArrayList properties, - Object2IntMap propertyIndices) { - this.properties = properties; - this.propertyIndices = propertyIndices; + private GeyserEntityProperties() { + this.properties = new ObjectArrayList<>(); + this.propertyIndices = new Object2IntOpenHashMap<>(); } public NbtMap toNbtMap(String entityType) { NbtMapBuilder mapBuilder = NbtMap.builder(); List nbtProperties = new ArrayList<>(); - for (PropertyType property : properties) { + for (PropertyType property : properties) { nbtProperties.add(property.nbtMap()); } mapBuilder.putList("properties", NbtType.COMPOUND, nbtProperties); @@ -68,7 +70,30 @@ public class GeyserEntityProperties { return mapBuilder.putString("type", entityType).build(); } - public @NonNull List getProperties() { + public void add(String entityType, @NonNull PropertyType property) { + if (!Registries.BEDROCK_ENTITY_PROPERTIES.get().isEmpty()) { + throw new IllegalStateException("Cannot add properties outside the GeyserDefineEntityProperties event!"); + } + + if (this.properties.size() > 32) { + throw new IllegalArgumentException("Cannot register more than 32 properties for entity type " + entityType); + } + + Objects.requireNonNull(property, "property cannot be null!"); + String name = property.identifier().toString(); + if (propertyIndices.containsKey(name)) { + throw new IllegalArgumentException( + "Property with name " + name + " already exists on builder!"); + } else if (!ENTITY_PROPERTY_PATTERN.matcher(name).matches()) { + throw new IllegalArgumentException( + "Cannot register property with name " + name + " because property name is invalid! Must match: " + ENTITY_PROPERTY_PATTERN.pattern() + ); + } + this.properties.add(property); + propertyIndices.put(name, properties.size() - 1); + } + + public @NonNull List> getProperties() { return properties; } @@ -77,89 +102,24 @@ public class GeyserEntityProperties { } public static class Builder { - private final ObjectArrayList properties = new ObjectArrayList<>(); - private final Object2IntMap propertyIndices = new Object2IntOpenHashMap<>(); + private GeyserEntityProperties properties; + private final String identifier; - public Builder addInt(@NonNull String name, int min, int max) { - if (propertyIndices.containsKey(name)) { - throw new IllegalArgumentException( - "Property with name " + name + " already exists on builder!"); + public Builder(String identifier) { + this.identifier = identifier; + } + + public Builder add(@NonNull PropertyType property) { + Objects.requireNonNull(property, "property cannot be null!"); + if (properties == null) { + properties = new GeyserEntityProperties(); } - PropertyType property = new IntProperty(name, min, max); - this.properties.add(property); - propertyIndices.put(name, properties.size() - 1); + properties.add(identifier, property); return this; } - public Builder addInt(@NonNull String name) { - if (propertyIndices.containsKey(name)) { - throw new IllegalArgumentException( - "Property with name " + name + " already exists on builder!"); - } - PropertyType property = new IntProperty(name, Integer.MIN_VALUE, Integer.MAX_VALUE); - this.properties.add(property); - propertyIndices.put(name, properties.size() - 1); - return this; - } - - public Builder addFloat(@NonNull String name, float min, float max) { - if (propertyIndices.containsKey(name)) { - throw new IllegalArgumentException( - "Property with name " + name + " already exists on builder!"); - } - PropertyType property = new FloatProperty(name, min, max); - this.properties.add(property); - propertyIndices.put(name, properties.size() - 1); - return this; - } - - public Builder addFloat(@NonNull String name) { - if (propertyIndices.containsKey(name)) { - throw new IllegalArgumentException( - "Property with name " + name + " already exists on builder!"); - } - PropertyType property = new FloatProperty(name, Float.MIN_NORMAL, Float.MAX_VALUE); - this.properties.add(property); - propertyIndices.put(name, properties.size() - 1); - return this; - } - - public Builder addBoolean(@NonNull String name) { - if (propertyIndices.containsKey(name)) { - throw new IllegalArgumentException( - "Property with name " + name + " already exists on builder!"); - } - PropertyType property = new BooleanProperty(name); - this.properties.add(property); - propertyIndices.put(name, properties.size() - 1); - return this; - } - - public Builder addEnum(@NonNull String name, List values) { - if (propertyIndices.containsKey(name)) { - throw new IllegalArgumentException( - "Property with name " + name + " already exists on builder!"); - } - PropertyType property = new EnumProperty(name, values); - this.properties.add(property); - propertyIndices.put(name, properties.size() - 1); - return this; - } - - public Builder addEnum(@NonNull String name, String... values) { - if (propertyIndices.containsKey(name)) { - throw new IllegalArgumentException( - "Property with name " + name + " already exists on builder!"); - } - List valuesList = Arrays.asList(values); // Convert array to list - PropertyType property = new EnumProperty(name, valuesList); - this.properties.add(property); - propertyIndices.put(name, properties.size() - 1); - return this; - } - - public GeyserEntityProperties build() { - return new GeyserEntityProperties(properties, propertyIndices); + public @Nullable GeyserEntityProperties build() { + return properties; } } } diff --git a/core/src/main/java/org/geysermc/geyser/entity/properties/GeyserEntityPropertyManager.java b/core/src/main/java/org/geysermc/geyser/entity/properties/GeyserEntityPropertyManager.java index 29026b172..a5f189cc7 100644 --- a/core/src/main/java/org/geysermc/geyser/entity/properties/GeyserEntityPropertyManager.java +++ b/core/src/main/java/org/geysermc/geyser/entity/properties/GeyserEntityPropertyManager.java @@ -25,10 +25,12 @@ package org.geysermc.geyser.entity.properties; -import it.unimi.dsi.fastutil.objects.ObjectArrayList; +import it.unimi.dsi.fastutil.objects.Object2ObjectArrayMap; +import it.unimi.dsi.fastutil.objects.Object2ObjectMap; +import org.cloudburstmc.nbt.NbtMap; +import org.cloudburstmc.protocol.bedrock.data.entity.EntityProperty; import org.cloudburstmc.protocol.bedrock.data.entity.FloatEntityProperty; import org.cloudburstmc.protocol.bedrock.data.entity.IntEntityProperty; -import org.geysermc.geyser.entity.properties.type.EnumProperty; import org.geysermc.geyser.entity.properties.type.PropertyType; import java.util.List; @@ -36,34 +38,29 @@ import java.util.List; public class GeyserEntityPropertyManager { private final GeyserEntityProperties properties; - - private final ObjectArrayList intEntityProperties = new ObjectArrayList<>(); - private final ObjectArrayList floatEntityProperties = new ObjectArrayList<>(); + private final Object2ObjectMap intEntityProperties = new Object2ObjectArrayMap<>(); + private final Object2ObjectMap floatEntityProperties = new Object2ObjectArrayMap<>(); public GeyserEntityPropertyManager(GeyserEntityProperties properties) { this.properties = properties; + for (PropertyType property : properties.getProperties()) { + String name = property.identifier().toString(); + int index = properties.getPropertyIndex(name); + addProperty(name, property.defaultValue(index)); + } } - public void add(String propertyName, int value) { - int index = properties.getPropertyIndex(propertyName); - intEntityProperties.add(new IntEntityProperty(index, value)); + public void addProperty(PropertyType propertyType, T value) { + int index = properties.getPropertyIndex(propertyType.identifier().toString()); + this.addProperty(propertyType.identifier().toString(), propertyType.createValue(index, value)); } - public void add(String propertyName, boolean value) { - int index = properties.getPropertyIndex(propertyName); - intEntityProperties.add(new IntEntityProperty(index, value ? 1 : 0)); - } - - public void add(String propertyName, String value) { - int index = properties.getPropertyIndex(propertyName); - PropertyType property = properties.getProperties().get(index); - int enumIndex = ((EnumProperty) property).getIndex(value); - intEntityProperties.add(new IntEntityProperty(index, enumIndex)); - } - - public void add(String propertyName, float value) { - int index = properties.getPropertyIndex(propertyName); - floatEntityProperties.add(new FloatEntityProperty(index, value)); + private void addProperty(String propertyName, EntityProperty entityProperty) { + if (entityProperty instanceof FloatEntityProperty floatEntityProperty) { + floatEntityProperties.put(propertyName, floatEntityProperty); + } else if (entityProperty instanceof IntEntityProperty intEntityProperty) { + intEntityProperties.put(propertyName, intEntityProperty); + } } public boolean hasFloatProperties() { @@ -78,21 +75,17 @@ public class GeyserEntityPropertyManager { return hasFloatProperties() || hasIntProperties(); } - public ObjectArrayList intProperties() { - return this.intEntityProperties; - } - public void applyIntProperties(List properties) { - properties.addAll(intEntityProperties); + properties.addAll(intEntityProperties.values()); intEntityProperties.clear(); } - public ObjectArrayList floatProperties() { - return this.floatEntityProperties; - } - public void applyFloatProperties(List properties) { - properties.addAll(floatEntityProperties); + properties.addAll(floatEntityProperties.values()); floatEntityProperties.clear(); } -} \ No newline at end of file + + public NbtMap toNbtMap(String entityType) { + return this.properties.toNbtMap(entityType); + } +} diff --git a/core/src/main/java/org/geysermc/geyser/entity/properties/VanillaEntityProperties.java b/core/src/main/java/org/geysermc/geyser/entity/properties/VanillaEntityProperties.java deleted file mode 100644 index 06a715f18..000000000 --- a/core/src/main/java/org/geysermc/geyser/entity/properties/VanillaEntityProperties.java +++ /dev/null @@ -1,78 +0,0 @@ -/* - * Copyright (c) 2025 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.properties; - -import org.geysermc.geyser.entity.type.living.monster.CreakingEntity; - -public class VanillaEntityProperties { - - public static final String CLIMATE_VARIANT_ID = "minecraft:climate_variant"; - - public static final GeyserEntityProperties ARMADILLO = new GeyserEntityProperties.Builder() - .addEnum("minecraft:armadillo_state", - "unrolled", - "rolled_up", - "rolled_up_peeking", - "rolled_up_relaxing", - "rolled_up_unrolling") - .build(); - - public static final GeyserEntityProperties BEE = new GeyserEntityProperties.Builder() - .addBoolean("minecraft:has_nectar") - .build(); - - public static final GeyserEntityProperties CLIMATE_VARIANT = new GeyserEntityProperties.Builder() - .addEnum(CLIMATE_VARIANT_ID, - "temperate", - "warm", - "cold") - .build(); - - public static final GeyserEntityProperties CREAKING = new GeyserEntityProperties.Builder() - .addEnum(CreakingEntity.CREAKING_STATE, - "neutral", - "hostile_observed", - "hostile_unobserved", - "twitching", - "crumbling") - .addInt(CreakingEntity.CREAKING_SWAYING_TICKS, 0, 6) - .build(); - - public static final GeyserEntityProperties HAPPY_GHAST = new GeyserEntityProperties.Builder() - .addBoolean("minecraft:can_move") - .build(); - - public static final GeyserEntityProperties WOLF_SOUND_VARIANT = new GeyserEntityProperties.Builder() - .addEnum("minecraft:sound_variant", - "default", - "big", - "cute", - "grumpy", - "mad", - "puglin", - "sad") - .build(); -} diff --git a/core/src/main/java/org/geysermc/geyser/entity/properties/type/AbstractEnumProperty.java b/core/src/main/java/org/geysermc/geyser/entity/properties/type/AbstractEnumProperty.java new file mode 100644 index 000000000..0c921b54e --- /dev/null +++ b/core/src/main/java/org/geysermc/geyser/entity/properties/type/AbstractEnumProperty.java @@ -0,0 +1,88 @@ +/* + * Copyright (c) 2025 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.properties.type; + +import org.checkerframework.checker.nullness.qual.Nullable; +import org.cloudburstmc.nbt.NbtMap; +import org.cloudburstmc.nbt.NbtType; +import org.cloudburstmc.protocol.bedrock.data.entity.IntEntityProperty; +import org.geysermc.geyser.api.util.Identifier; + +import java.util.List; +import java.util.regex.Pattern; + +public interface AbstractEnumProperty extends PropertyType { + + Pattern VALUE_VALIDATION_REGEX = Pattern.compile("^[A-Za-z][A-Za-z0-9_]{0,31}$"); + + @Override + default NbtMap nbtMap() { + return NbtMap.builder() + .putString("name", identifier().toString()) + .putList("enum", NbtType.STRING, allBedrockValues()) + .putInt("type", 3) + .build(); + } + + default void validateAllValues(Identifier name, List values) { + if (values.size() > 16) { + throw new IllegalArgumentException("Cannot register enum property with name " + name + " because it has more than 16 values!"); + } + + for (String value : values) { + if (!VALUE_VALIDATION_REGEX.matcher(value).matches()) { + throw new IllegalArgumentException( + "Cannot register enum property with name " + name + " and value " + value + + " because enum values can only contain alphanumeric characters and underscores." + ); + } + } + } + + List allBedrockValues(); + + @Override + default IntEntityProperty defaultValue(int index) { + return new IntEntityProperty(index, defaultIndex()); + } + + @Override + default IntEntityProperty createValue(int index, @Nullable T value) { + if (value == null) { + return defaultValue(index); + } + + int valueIndex = indexOf(value); + if (valueIndex == -1) { + throw new IllegalArgumentException("Enum value " + value + " is not a valid enum value!"); + } + return new IntEntityProperty(index, valueIndex); + } + + int indexOf(T value); + + int defaultIndex(); +} diff --git a/core/src/main/java/org/geysermc/geyser/entity/properties/type/BooleanProperty.java b/core/src/main/java/org/geysermc/geyser/entity/properties/type/BooleanProperty.java index 6fc64ad4b..9bbb1cc2d 100644 --- a/core/src/main/java/org/geysermc/geyser/entity/properties/type/BooleanProperty.java +++ b/core/src/main/java/org/geysermc/geyser/entity/properties/type/BooleanProperty.java @@ -26,19 +26,33 @@ package org.geysermc.geyser.entity.properties.type; import org.cloudburstmc.nbt.NbtMap; +import org.cloudburstmc.protocol.bedrock.data.entity.IntEntityProperty; +import org.geysermc.geyser.api.entity.property.type.GeyserBooleanEntityProperty; +import org.geysermc.geyser.api.util.Identifier; -public class BooleanProperty implements PropertyType { - private final String name; - - public BooleanProperty(String name) { - this.name = name; - } +public record BooleanProperty( + Identifier identifier, + Boolean defaultValue +) implements PropertyType, GeyserBooleanEntityProperty { @Override public NbtMap nbtMap() { return NbtMap.builder() - .putString("name", name) + .putString("name", identifier.toString()) .putInt("type", 2) .build(); } -} \ No newline at end of file + + @Override + public IntEntityProperty defaultValue(int index) { + return createValue(index, defaultValue != null && defaultValue); + } + + @Override + public IntEntityProperty createValue(int index, Boolean value) { + if (value == null) { + return defaultValue(index); + } + return new IntEntityProperty(index, value ? 1 : 0); + } +} diff --git a/core/src/main/java/org/geysermc/geyser/entity/properties/type/EnumProperty.java b/core/src/main/java/org/geysermc/geyser/entity/properties/type/EnumProperty.java index 05e12ba61..42fbb6a81 100644 --- a/core/src/main/java/org/geysermc/geyser/entity/properties/type/EnumProperty.java +++ b/core/src/main/java/org/geysermc/geyser/entity/properties/type/EnumProperty.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2019-2024 GeyserMC. http://geysermc.org + * Copyright (c) 2025 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 @@ -25,37 +25,40 @@ package org.geysermc.geyser.entity.properties.type; -import it.unimi.dsi.fastutil.objects.Object2IntMap; -import it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap; -import org.cloudburstmc.nbt.NbtMap; -import org.cloudburstmc.nbt.NbtType; +import org.geysermc.geyser.api.entity.property.type.GeyserEnumEntityProperty; +import org.geysermc.geyser.api.util.Identifier; +import java.util.Arrays; import java.util.List; +import java.util.Locale; -public class EnumProperty implements PropertyType { - private final String name; - private final List values; - private final Object2IntMap valueIndexMap; +public record EnumProperty>( + Identifier identifier, + Class enumClass, + E defaultValue +) implements AbstractEnumProperty, GeyserEnumEntityProperty { - public EnumProperty(String name, List values) { - this.name = name; - this.values = values; - this.valueIndexMap = new Object2IntOpenHashMap<>(values.size()); - for (int i = 0; i < values.size(); i++) { - valueIndexMap.put(values.get(i), i); - } + public EnumProperty { + validateAllValues(identifier, Arrays.stream(enumClass.getEnumConstants()).map(value -> value.name().toLowerCase(Locale.ROOT)).toList()); + } + + public List values() { + return List.of(enumClass.getEnumConstants()); + } + + public List allBedrockValues() { + return values().stream().map( + value -> value.name().toLowerCase(Locale.ROOT) + ).toList(); } @Override - public NbtMap nbtMap() { - return NbtMap.builder() - .putString("name", name) - .putList("enum", NbtType.STRING, values) - .putInt("type", 3) - .build(); + public int indexOf(E value) { + return value.ordinal(); } - public int getIndex(String value) { - return valueIndexMap.getOrDefault(value, -1); + @Override + public int defaultIndex() { + return defaultValue.ordinal(); } -} \ No newline at end of file +} diff --git a/core/src/main/java/org/geysermc/geyser/entity/properties/type/FloatProperty.java b/core/src/main/java/org/geysermc/geyser/entity/properties/type/FloatProperty.java index 8b808ebc3..16997dc8a 100644 --- a/core/src/main/java/org/geysermc/geyser/entity/properties/type/FloatProperty.java +++ b/core/src/main/java/org/geysermc/geyser/entity/properties/type/FloatProperty.java @@ -26,25 +26,48 @@ package org.geysermc.geyser.entity.properties.type; import org.cloudburstmc.nbt.NbtMap; +import org.cloudburstmc.protocol.bedrock.data.entity.FloatEntityProperty; +import org.geysermc.geyser.api.entity.property.type.GeyserFloatEntityProperty; +import org.geysermc.geyser.api.util.Identifier; -public class FloatProperty implements PropertyType { - private final String name; - private final float max; - private final float min; +public record FloatProperty( + Identifier identifier, + float max, + float min, + Float defaultValue +) implements PropertyType, GeyserFloatEntityProperty { - public FloatProperty(String name, float min, float max) { - this.name = name; - this.max = max; - this.min = min; + public FloatProperty { + if (min > max) { + throw new IllegalArgumentException("Cannot create float entity property (%s) with a minimum value (%s) greater than maximum (%s)!" + .formatted(identifier, min, max)); + } + if (defaultValue < min || defaultValue > max) { + throw new IllegalArgumentException("Cannot create float entity property (%s) with a default value (%s) outside of the range (%s - %s)!" + .formatted(identifier, defaultValue, min, max)); + } } @Override public NbtMap nbtMap() { return NbtMap.builder() - .putString("name", name) + .putString("name", identifier.toString()) .putFloat("max", max) .putFloat("min", min) .putInt("type", 1) .build(); } -} \ No newline at end of file + + @Override + public FloatEntityProperty defaultValue(int index) { + return createValue(index, defaultValue == null ? min : defaultValue); + } + + @Override + public FloatEntityProperty createValue(int index, Float value) { + if (value == null) { + return defaultValue(index); + } + return new FloatEntityProperty(index, value); + } +} diff --git a/core/src/main/java/org/geysermc/geyser/entity/properties/type/IntProperty.java b/core/src/main/java/org/geysermc/geyser/entity/properties/type/IntProperty.java index 9e38db7c7..966277696 100644 --- a/core/src/main/java/org/geysermc/geyser/entity/properties/type/IntProperty.java +++ b/core/src/main/java/org/geysermc/geyser/entity/properties/type/IntProperty.java @@ -26,25 +26,53 @@ package org.geysermc.geyser.entity.properties.type; import org.cloudburstmc.nbt.NbtMap; +import org.cloudburstmc.protocol.bedrock.data.entity.IntEntityProperty; +import org.geysermc.geyser.GeyserImpl; +import org.geysermc.geyser.api.entity.property.type.GeyserIntEntityProperty; +import org.geysermc.geyser.api.util.Identifier; -public class IntProperty implements PropertyType { - private final String name; - private final int max; - private final int min; +public record IntProperty( + Identifier identifier, + int max, + int min, + Integer defaultValue +) implements PropertyType, GeyserIntEntityProperty { - public IntProperty(String name, int min, int max) { - this.name = name; - this.max = max; - this.min = min; + public IntProperty { + if (min > max) { + throw new IllegalArgumentException("Cannot create int entity property (%s) with a minimum value (%s) greater than maximum (%s)!" + .formatted(identifier, min, max)); + } + if (defaultValue < min || defaultValue > max) { + throw new IllegalArgumentException("Cannot create int entity property (%s) with a default value (%s) outside of the range (%s - %s)!" + .formatted(identifier, defaultValue, min, max)); + } + if (min < -1000000 || max > 1000000) { + // https://learn.microsoft.com/en-us/minecraft/creator/documents/introductiontoentityproperties?view=minecraft-bedrock-stable#a-note-on-large-integer-entity-property-values + GeyserImpl.getInstance().getLogger().warning("Using int entity properties with min / max values larger than +- 1 million is not recommended!"); + } } @Override public NbtMap nbtMap() { return NbtMap.builder() - .putString("name", name) + .putString("name", identifier.toString()) .putInt("max", max) .putInt("min", min) .putInt("type", 0) .build(); } -} \ No newline at end of file + + @Override + public IntEntityProperty defaultValue(int index) { + return createValue(index, defaultValue == null ? min : defaultValue); + } + + @Override + public IntEntityProperty createValue(int index, Integer value) { + if (value == null) { + return defaultValue(index); + } + return new IntEntityProperty(index, value); + } +} diff --git a/core/src/main/java/org/geysermc/geyser/entity/properties/type/PropertyType.java b/core/src/main/java/org/geysermc/geyser/entity/properties/type/PropertyType.java index a64d7246a..cd1471273 100644 --- a/core/src/main/java/org/geysermc/geyser/entity/properties/type/PropertyType.java +++ b/core/src/main/java/org/geysermc/geyser/entity/properties/type/PropertyType.java @@ -25,8 +25,20 @@ package org.geysermc.geyser.entity.properties.type; +import org.checkerframework.checker.nullness.qual.Nullable; import org.cloudburstmc.nbt.NbtMap; +import org.cloudburstmc.protocol.bedrock.data.entity.EntityProperty; +import org.geysermc.geyser.api.entity.property.GeyserEntityProperty; +import org.geysermc.geyser.entity.properties.GeyserEntityPropertyManager; -public interface PropertyType { +public interface PropertyType extends GeyserEntityProperty { NbtMap nbtMap(); -} \ No newline at end of file + + NetworkRepresentation defaultValue(int index); + + NetworkRepresentation createValue(int index, @Nullable Type value); + + default void apply(GeyserEntityPropertyManager manager, Type value) { + manager.addProperty(this, value); + } +} diff --git a/core/src/main/java/org/geysermc/geyser/entity/properties/type/StringEnumProperty.java b/core/src/main/java/org/geysermc/geyser/entity/properties/type/StringEnumProperty.java new file mode 100644 index 000000000..278f60c7f --- /dev/null +++ b/core/src/main/java/org/geysermc/geyser/entity/properties/type/StringEnumProperty.java @@ -0,0 +1,66 @@ +/* + * 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.entity.properties.type; + +import org.checkerframework.checker.nullness.qual.NonNull; +import org.checkerframework.checker.nullness.qual.Nullable; +import org.geysermc.geyser.api.entity.property.type.GeyserStringEnumProperty; +import org.geysermc.geyser.api.util.Identifier; + +import java.util.List; + +public record StringEnumProperty( + Identifier identifier, + List values, + int defaultIndex +) implements AbstractEnumProperty, GeyserStringEnumProperty { + + public StringEnumProperty { + if (defaultIndex < 0) { + throw new IllegalArgumentException("Unable to find default value for enum property with name " + identifier); + } + validateAllValues(identifier, values); + } + + public StringEnumProperty(Identifier name, List values, @Nullable String defaultValue) { + this(name, values, defaultValue == null ? 0 : values.indexOf(defaultValue)); + } + + @Override + public List allBedrockValues() { + return values; + } + + @Override + public int indexOf(String value) { + return values.indexOf(value); + } + + @Override + public @NonNull String defaultValue() { + return values.get(defaultIndex); + } +} 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 0ba1c1277..3b77b1eec 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 @@ -33,7 +33,6 @@ import org.cloudburstmc.protocol.bedrock.packet.AnimatePacket; import org.cloudburstmc.protocol.bedrock.packet.MoveEntityAbsolutePacket; import org.geysermc.geyser.entity.EntityDefinition; import org.geysermc.geyser.entity.EntityDefinitions; -import org.geysermc.geyser.network.GameProtocol; import org.geysermc.geyser.session.GeyserSession; import org.geysermc.geyser.util.InteractionResult; import org.geysermc.geyser.util.InteractiveTag; @@ -208,19 +207,11 @@ public class BoatEntity extends Entity implements Leashable, Tickable { if (isPaddlingLeft) { paddleTimeLeft += ROWING_SPEED; - if (GameProtocol.is1_21_80orHigher(session)) { - dirtyMetadata.put(EntityDataTypes.ROW_TIME_LEFT, paddleTimeLeft); - } else { - sendAnimationPacket(session, rower, AnimatePacket.Action.ROW_LEFT, paddleTimeLeft); - } + dirtyMetadata.put(EntityDataTypes.ROW_TIME_LEFT, paddleTimeLeft); } if (isPaddlingRight) { paddleTimeRight += ROWING_SPEED; - if (GameProtocol.is1_21_80orHigher(session)) { - dirtyMetadata.put(EntityDataTypes.ROW_TIME_RIGHT, paddleTimeRight); - } else { - sendAnimationPacket(session, rower, AnimatePacket.Action.ROW_RIGHT, paddleTimeRight); - } + dirtyMetadata.put(EntityDataTypes.ROW_TIME_RIGHT, paddleTimeRight); } } diff --git a/core/src/main/java/org/geysermc/geyser/entity/type/Entity.java b/core/src/main/java/org/geysermc/geyser/entity/type/Entity.java index edffd4bbd..4692cc9a1 100644 --- a/core/src/main/java/org/geysermc/geyser/entity/type/Entity.java +++ b/core/src/main/java/org/geysermc/geyser/entity/type/Entity.java @@ -29,22 +29,28 @@ import lombok.AccessLevel; import lombok.Getter; import lombok.Setter; import net.kyori.adventure.text.Component; +import org.checkerframework.checker.nullness.qual.NonNull; import org.checkerframework.checker.nullness.qual.Nullable; import org.cloudburstmc.math.vector.Vector2f; import org.cloudburstmc.math.vector.Vector3f; import org.cloudburstmc.protocol.bedrock.data.entity.EntityDataTypes; import org.cloudburstmc.protocol.bedrock.data.entity.EntityEventType; import org.cloudburstmc.protocol.bedrock.data.entity.EntityFlag; +import org.cloudburstmc.protocol.bedrock.data.entity.EntityProperty; import org.cloudburstmc.protocol.bedrock.packet.AddEntityPacket; import org.cloudburstmc.protocol.bedrock.packet.EntityEventPacket; import org.cloudburstmc.protocol.bedrock.packet.MoveEntityAbsolutePacket; import org.cloudburstmc.protocol.bedrock.packet.MoveEntityDeltaPacket; import org.cloudburstmc.protocol.bedrock.packet.RemoveEntityPacket; import org.cloudburstmc.protocol.bedrock.packet.SetEntityDataPacket; +import org.geysermc.geyser.api.entity.property.BatchPropertyUpdater; +import org.geysermc.geyser.api.entity.property.GeyserEntityProperty; import org.geysermc.geyser.api.entity.type.GeyserEntity; import org.geysermc.geyser.entity.EntityDefinition; import org.geysermc.geyser.entity.GeyserDirtyMetadata; +import org.geysermc.geyser.entity.properties.GeyserEntityProperties; import org.geysermc.geyser.entity.properties.GeyserEntityPropertyManager; +import org.geysermc.geyser.entity.properties.type.PropertyType; import org.geysermc.geyser.entity.type.living.MobEntity; import org.geysermc.geyser.entity.type.player.PlayerEntity; import org.geysermc.geyser.item.Items; @@ -71,6 +77,7 @@ import java.util.List; import java.util.Objects; import java.util.Optional; import java.util.UUID; +import java.util.function.Consumer; @Getter @Setter @@ -118,7 +125,7 @@ public class Entity implements GeyserEntity { @Setter(AccessLevel.NONE) private float boundingBoxWidth; @Setter(AccessLevel.NONE) - private String displayName; + protected String displayName; @Setter(AccessLevel.NONE) protected boolean silent = false; /* Metadata end */ @@ -201,6 +208,10 @@ public class Entity implements GeyserEntity { addEntityPacket.setBodyRotation(yaw); // TODO: This should be bodyYaw addEntityPacket.getMetadata().putFlags(flags); dirtyMetadata.apply(addEntityPacket.getMetadata()); + if (propertyManager != null) { + propertyManager.applyIntProperties(addEntityPacket.getProperties().getIntProperties()); + propertyManager.applyFloatProperties(addEntityPacket.getProperties().getFloatProperties()); + } addAdditionalSpawnData(addEntityPacket); valid = true; @@ -672,7 +683,7 @@ public class Entity implements GeyserEntity { // Note this might be client side. Has yet to be an issue though, as of Java 1.21. return InteractiveTag.REMOVE_LEASH; } - if (session.getPlayerInventory().getItemInHand(hand).asItem() == Items.LEAD && leashable.canBeLeashed()) { + if (session.getPlayerInventory().getItemInHand(hand).is(Items.LEAD) && leashable.canBeLeashed()) { // We shall leash return InteractiveTag.LEASH; } @@ -701,7 +712,7 @@ public class Entity implements GeyserEntity { // Has yet to be an issue though, as of Java 1.21. return InteractionResult.SUCCESS; } - if (session.getPlayerInventory().getItemInHand(hand).asItem() == Items.LEAD + if (session.getPlayerInventory().getItemInHand(hand).is(Items.LEAD) && !(session.getEntityCache().getEntityByGeyserId(leashable.leashHolderBedrockId()) instanceof PlayerEntity)) { // We shall leash return InteractionResult.SUCCESS; @@ -752,4 +763,42 @@ public class Entity implements GeyserEntity { packet.setData(data); session.sendUpstreamPacket(packet); } + + @Override + public void updatePropertiesBatched(Consumer consumer) { + if (this.propertyManager != null) { + Objects.requireNonNull(consumer); + GeyserEntityProperties propertyDefinitions = definition.registeredProperties(); + consumer.accept(new BatchPropertyUpdater() { + @Override + public void update(@NonNull GeyserEntityProperty property, @Nullable T value) { + Objects.requireNonNull(property, "property must not be null!"); + if (!(property instanceof PropertyType propertyType)) { + throw new IllegalArgumentException("Invalid property implementation! Got: " + property.getClass().getSimpleName()); + } + int index = propertyDefinitions.getPropertyIndex(property.identifier().toString()); + if (index < 0) { + throw new IllegalArgumentException("No property with the name " + property.identifier() + " has been registered."); + } + + var expectedProperty = propertyDefinitions.getProperties().get(index); + if (!expectedProperty.equals(propertyType)) { + throw new IllegalArgumentException("The supplied property was not registered with this entity type!"); + } + + propertyType.apply(propertyManager, value); + } + }); + + if (propertyManager.hasProperties()) { + SetEntityDataPacket packet = new SetEntityDataPacket(); + packet.setRuntimeEntityId(getGeyserId()); + propertyManager.applyFloatProperties(packet.getProperties().getFloatProperties()); + propertyManager.applyIntProperties(packet.getProperties().getIntProperties()); + session.sendUpstreamPacket(packet); + } + } else { + throw new IllegalArgumentException("Given entity has no registered properties!"); + } + } } diff --git a/core/src/main/java/org/geysermc/geyser/entity/type/LivingEntity.java b/core/src/main/java/org/geysermc/geyser/entity/type/LivingEntity.java index 92048eb25..d6d880d0a 100644 --- a/core/src/main/java/org/geysermc/geyser/entity/type/LivingEntity.java +++ b/core/src/main/java/org/geysermc/geyser/entity/type/LivingEntity.java @@ -35,7 +35,6 @@ import org.cloudburstmc.protocol.bedrock.data.AttributeData; import org.cloudburstmc.protocol.bedrock.data.entity.EntityDataTypes; import org.cloudburstmc.protocol.bedrock.data.entity.EntityFlag; import org.cloudburstmc.protocol.bedrock.data.inventory.ContainerId; -import org.cloudburstmc.protocol.bedrock.data.inventory.ItemData; import org.cloudburstmc.protocol.bedrock.packet.MobArmorEquipmentPacket; import org.cloudburstmc.protocol.bedrock.packet.MobEquipmentPacket; import org.cloudburstmc.protocol.bedrock.packet.UpdateAttributesPacket; @@ -46,9 +45,10 @@ import org.geysermc.geyser.entity.vehicle.ClientVehicle; import org.geysermc.geyser.entity.vehicle.HappyGhastVehicleComponent; import org.geysermc.geyser.inventory.GeyserItemStack; import org.geysermc.geyser.item.Items; -import org.geysermc.geyser.registry.type.ItemMapping; +import org.geysermc.geyser.item.type.Item; import org.geysermc.geyser.scoreboard.Team; import org.geysermc.geyser.session.GeyserSession; +import org.geysermc.geyser.session.cache.tags.ItemTag; import org.geysermc.geyser.translator.item.ItemTranslator; import org.geysermc.geyser.util.AttributeUtils; import org.geysermc.geyser.util.EntityUtils; @@ -82,15 +82,6 @@ import java.util.UUID; public class LivingEntity extends Entity { protected EnumMap equipment = new EnumMap<>(EquipmentSlot.class); - protected ItemData helmet = ItemData.AIR; - protected ItemData chestplate = ItemData.AIR; - protected ItemData leggings = ItemData.AIR; - protected ItemData boots = ItemData.AIR; - protected ItemData body = ItemData.AIR; - protected ItemData saddle = ItemData.AIR; - protected ItemData hand = ItemData.AIR; - protected ItemData offhand = ItemData.AIR; - @Getter(value = AccessLevel.NONE) protected float health = 1f; // The default value in Java Edition before any entity metadata is sent @Getter(value = AccessLevel.NONE) @@ -118,34 +109,48 @@ public class LivingEntity extends Entity { super(session, entityId, geyserId, uuid, definition, position, motion, yaw, pitch, headYaw); } + public GeyserItemStack getItemInSlot(EquipmentSlot slot) { + GeyserItemStack stack = equipment.get(slot); + if (stack == null) { + return GeyserItemStack.EMPTY; + } + return stack; + } + + public GeyserItemStack getMainHandItem() { + return getItemInSlot(EquipmentSlot.MAIN_HAND); + } + + public GeyserItemStack getOffHandItem() { + return getItemInSlot(EquipmentSlot.OFF_HAND); + } + + public boolean isHolding(Item item) { + return getMainHandItem().is(item) || getOffHandItem().is(item); + } + public void setHelmet(GeyserItemStack stack) { this.equipment.put(EquipmentSlot.HELMET, stack); - this.helmet = ItemTranslator.translateToBedrock(session, stack); } public void setChestplate(GeyserItemStack stack) { this.equipment.put(EquipmentSlot.CHESTPLATE, stack); - this.chestplate = ItemTranslator.translateToBedrock(session, stack); } public void setLeggings(GeyserItemStack stack) { this.equipment.put(EquipmentSlot.LEGGINGS, stack); - this.leggings = ItemTranslator.translateToBedrock(session, stack); } public void setBoots(GeyserItemStack stack) { this.equipment.put(EquipmentSlot.BOOTS, stack); - this.boots = ItemTranslator.translateToBedrock(session, stack); } public void setBody(GeyserItemStack stack) { this.equipment.put(EquipmentSlot.BODY, stack); - this.body = ItemTranslator.translateToBedrock(session, stack); } public void setSaddle(GeyserItemStack stack) { this.equipment.put(EquipmentSlot.SADDLE, stack); - this.saddle = ItemTranslator.translateToBedrock(session, stack); boolean saddled = false; if (!stack.isEmpty()) { @@ -158,12 +163,10 @@ public class LivingEntity extends Entity { public void setHand(GeyserItemStack stack) { this.equipment.put(EquipmentSlot.MAIN_HAND, stack); - this.hand = ItemTranslator.translateToBedrock(session, stack); } public void setOffhand(GeyserItemStack stack) { this.equipment.put(EquipmentSlot.OFF_HAND, stack); - this.offhand = ItemTranslator.translateToBedrock(session, stack); } protected void updateSaddled(boolean saddled) { @@ -178,13 +181,9 @@ public class LivingEntity extends Entity { } public void switchHands() { - GeyserItemStack javaOffhand = this.equipment.get(EquipmentSlot.OFF_HAND); + GeyserItemStack offhand = this.equipment.get(EquipmentSlot.OFF_HAND); this.equipment.put(EquipmentSlot.OFF_HAND, this.equipment.get(EquipmentSlot.MAIN_HAND)); - this.equipment.put(EquipmentSlot.MAIN_HAND, javaOffhand); - - ItemData bedrockOffhand = this.offhand; - this.offhand = this.hand; - this.hand = bedrockOffhand; + this.equipment.put(EquipmentSlot.MAIN_HAND, offhand); } @Override @@ -279,11 +278,10 @@ public class LivingEntity extends Entity { } protected boolean hasShield(boolean offhand) { - ItemMapping shieldMapping = session.getItemMappings().getStoredItems().shield(); if (offhand) { - return this.offhand.getDefinition().equals(shieldMapping.getBedrockDefinition()); + return getOffHandItem().is(Items.SHIELD); } else { - return hand.getDefinition().equals(shieldMapping.getBedrockDefinition()); + return getMainHandItem().is(Items.SHIELD); } } @@ -342,7 +340,7 @@ public class LivingEntity extends Entity { @Override public InteractionResult interact(Hand hand) { GeyserItemStack itemStack = session.getPlayerInventory().getItemInHand(hand); - if (itemStack.asItem() == Items.NAME_TAG) { + if (itemStack.is(Items.NAME_TAG)) { InteractionResult result = checkInteractWithNameTag(itemStack); if (result.consumesAction()) { return result; @@ -394,39 +392,38 @@ public class LivingEntity extends Entity { return InteractionResult.PASS; } - public void updateArmor(GeyserSession session) { + public void updateArmor() { if (!valid) return; - ItemData helmet = this.helmet; - ItemData chestplate = this.chestplate; + GeyserItemStack helmet = getItemInSlot(EquipmentSlot.HELMET); + GeyserItemStack chestplate = getItemInSlot(EquipmentSlot.CHESTPLATE); // If an entity has a banner on them, it will be in the helmet slot in Java but the chestplate spot in Bedrock // But don't overwrite the chestplate if it isn't empty - ItemMapping banner = session.getItemMappings().getStoredItems().banner(); - if (ItemData.AIR.equals(chestplate) && helmet.getDefinition().equals(banner.getBedrockDefinition())) { - chestplate = this.helmet; - helmet = ItemData.AIR; - } else if (chestplate.getDefinition().equals(banner.getBedrockDefinition())) { + if (chestplate.isEmpty() && helmet.is(session, ItemTag.BANNERS)) { + chestplate = helmet; + helmet = GeyserItemStack.EMPTY; + } else if (chestplate.is(session, ItemTag.BANNERS)) { // Prevent chestplate banners from showing erroneously - chestplate = ItemData.AIR; + chestplate = GeyserItemStack.EMPTY; } MobArmorEquipmentPacket armorEquipmentPacket = new MobArmorEquipmentPacket(); armorEquipmentPacket.setRuntimeEntityId(geyserId); - armorEquipmentPacket.setHelmet(helmet); - armorEquipmentPacket.setChestplate(chestplate); - armorEquipmentPacket.setLeggings(leggings); - armorEquipmentPacket.setBoots(boots); - armorEquipmentPacket.setBody(body); + armorEquipmentPacket.setHelmet(ItemTranslator.translateToBedrock(session, helmet)); + armorEquipmentPacket.setChestplate(ItemTranslator.translateToBedrock(session, chestplate)); + armorEquipmentPacket.setLeggings(ItemTranslator.translateToBedrock(session, getItemInSlot(EquipmentSlot.LEGGINGS))); + armorEquipmentPacket.setBoots(ItemTranslator.translateToBedrock(session, getItemInSlot(EquipmentSlot.BOOTS))); + armorEquipmentPacket.setBody(ItemTranslator.translateToBedrock(session, getItemInSlot(EquipmentSlot.BODY))); session.sendUpstreamPacket(armorEquipmentPacket); } - public void updateMainHand(GeyserSession session) { + public void updateMainHand() { if (!valid) return; MobEquipmentPacket handPacket = new MobEquipmentPacket(); handPacket.setRuntimeEntityId(geyserId); - handPacket.setItem(hand); + handPacket.setItem(ItemTranslator.translateToBedrock(session, getMainHandItem())); handPacket.setHotbarSlot(-1); handPacket.setInventorySlot(0); handPacket.setContainerId(ContainerId.INVENTORY); @@ -434,12 +431,12 @@ public class LivingEntity extends Entity { session.sendUpstreamPacket(handPacket); } - public void updateOffHand(GeyserSession session) { + public void updateOffHand() { if (!valid) return; MobEquipmentPacket offHandPacket = new MobEquipmentPacket(); offHandPacket.setRuntimeEntityId(geyserId); - offHandPacket.setItem(offhand); + offHandPacket.setItem(ItemTranslator.translateToBedrock(session, getOffHandItem())); offHandPacket.setHotbarSlot(-1); offHandPacket.setInventorySlot(0); offHandPacket.setContainerId(ContainerId.OFFHAND); diff --git a/core/src/main/java/org/geysermc/geyser/entity/type/PaintingEntity.java b/core/src/main/java/org/geysermc/geyser/entity/type/PaintingEntity.java index 2b9c569de..ea3600768 100644 --- a/core/src/main/java/org/geysermc/geyser/entity/type/PaintingEntity.java +++ b/core/src/main/java/org/geysermc/geyser/entity/type/PaintingEntity.java @@ -29,7 +29,6 @@ import org.cloudburstmc.math.vector.Vector3f; import org.cloudburstmc.protocol.bedrock.packet.AddPaintingPacket; import org.geysermc.geyser.entity.EntityDefinition; import org.geysermc.geyser.level.PaintingType; -import org.geysermc.geyser.network.GameProtocol; import org.geysermc.geyser.session.GeyserSession; import org.geysermc.geyser.session.cache.registry.JavaRegistries; import org.geysermc.mcprotocollib.protocol.data.game.Holder; @@ -79,10 +78,6 @@ public class PaintingEntity extends HangingEntity { return; } - if (type == PaintingType.DENNIS && !GameProtocol.is1_21_90orHigher(session)) { - type = PaintingType.TIDES; - } - AddPaintingPacket addPaintingPacket = new AddPaintingPacket(); addPaintingPacket.setUniqueEntityId(geyserId); addPaintingPacket.setRuntimeEntityId(geyserId); diff --git a/core/src/main/java/org/geysermc/geyser/entity/type/ThrowableEggEntity.java b/core/src/main/java/org/geysermc/geyser/entity/type/ThrowableEggEntity.java index 3167ed305..a32762abe 100644 --- a/core/src/main/java/org/geysermc/geyser/entity/type/ThrowableEggEntity.java +++ b/core/src/main/java/org/geysermc/geyser/entity/type/ThrowableEggEntity.java @@ -28,9 +28,7 @@ package org.geysermc.geyser.entity.type; import lombok.Getter; import net.kyori.adventure.key.Key; import org.cloudburstmc.math.vector.Vector3f; -import org.cloudburstmc.protocol.bedrock.packet.AddEntityPacket; import org.geysermc.geyser.entity.EntityDefinition; -import org.geysermc.geyser.entity.properties.VanillaEntityProperties; import org.geysermc.geyser.entity.type.living.animal.farm.TemperatureVariantAnimal; import org.geysermc.geyser.inventory.GeyserItemStack; import org.geysermc.geyser.item.Items; @@ -41,7 +39,6 @@ import org.geysermc.mcprotocollib.protocol.data.game.entity.metadata.EntityMetad import org.geysermc.mcprotocollib.protocol.data.game.item.ItemStack; import org.geysermc.mcprotocollib.protocol.data.game.item.component.DataComponentTypes; -import java.util.Locale; import java.util.UUID; @Getter @@ -54,31 +51,25 @@ public class ThrowableEggEntity extends ThrowableItemEntity { super(session, entityId, geyserId, uuid, definition, position, motion, yaw, pitch, headYaw); } - @Override - public void addAdditionalSpawnData(AddEntityPacket addEntityPacket) { - propertyManager.add(VanillaEntityProperties.CLIMATE_VARIANT_ID, "temperate"); - propertyManager.applyIntProperties(addEntityPacket.getProperties().getIntProperties()); - } - @Override public void setItem(EntityMetadata entityMetadata) { GeyserItemStack stack = GeyserItemStack.from(entityMetadata.getValue()); - propertyManager.add(VanillaEntityProperties.CLIMATE_VARIANT_ID, getVariantOrFallback(session, stack)); + TemperatureVariantAnimal.TEMPERATE_VARIANT_PROPERTY.apply(propertyManager, getVariantOrFallback(session, stack)); updateBedrockEntityProperties(); this.itemStack = stack; } - private static String getVariantOrFallback(GeyserSession session, GeyserItemStack stack) { + private static TemperatureVariantAnimal.BuiltInVariant getVariantOrFallback(GeyserSession session, GeyserItemStack stack) { Holder holder = stack.getComponent(DataComponentTypes.CHICKEN_VARIANT); if (holder != null) { Key chickenVariant = holder.getOrCompute(id -> JavaRegistries.CHICKEN_VARIANT.key(session, id)); for (var variant : TemperatureVariantAnimal.BuiltInVariant.values()) { if (chickenVariant.asMinimalString().equalsIgnoreCase(variant.name())) { - return chickenVariant.asMinimalString().toLowerCase(Locale.ROOT); + return variant; } } } - return TemperatureVariantAnimal.BuiltInVariant.TEMPERATE.toBedrock(); + return TemperatureVariantAnimal.BuiltInVariant.TEMPERATE; } } diff --git a/core/src/main/java/org/geysermc/geyser/entity/type/living/AllayEntity.java b/core/src/main/java/org/geysermc/geyser/entity/type/living/AllayEntity.java index 01a42e527..e87e20236 100644 --- a/core/src/main/java/org/geysermc/geyser/entity/type/living/AllayEntity.java +++ b/core/src/main/java/org/geysermc/geyser/entity/type/living/AllayEntity.java @@ -30,8 +30,8 @@ import org.cloudburstmc.math.vector.Vector3f; import org.cloudburstmc.protocol.bedrock.data.entity.EntityFlag; import org.geysermc.geyser.entity.EntityDefinition; import org.geysermc.geyser.inventory.GeyserItemStack; -import org.geysermc.geyser.item.Items; import org.geysermc.geyser.session.GeyserSession; +import org.geysermc.geyser.session.cache.tags.ItemTag; import org.geysermc.geyser.util.InteractionResult; import org.geysermc.geyser.util.InteractiveTag; import org.geysermc.mcprotocollib.protocol.data.game.entity.metadata.type.BooleanEntityMetadata; @@ -60,9 +60,9 @@ public class AllayEntity extends MobEntity { if (this.canDuplicate && getFlag(EntityFlag.DANCING) && isDuplicationItem(itemInHand)) { // Maybe better as another tag? return InteractiveTag.GIVE_ITEM_TO_ALLAY; - } else if (!this.hand.isValid() && !itemInHand.isEmpty()) { + } else if (getMainHandItem().isEmpty() && !itemInHand.isEmpty()) { return InteractiveTag.GIVE_ITEM_TO_ALLAY; - } else if (this.hand.isValid() && hand == Hand.MAIN_HAND && itemInHand.isEmpty()) { + } else if (!getMainHandItem().isEmpty() && hand == Hand.MAIN_HAND && itemInHand.isEmpty()) { // Seems like there isn't a good tag for this yet return InteractiveTag.GIVE_ITEM_TO_ALLAY; } else { @@ -76,10 +76,10 @@ public class AllayEntity extends MobEntity { if (this.canDuplicate && getFlag(EntityFlag.DANCING) && isDuplicationItem(itemInHand)) { //TOCHECK sound return InteractionResult.SUCCESS; - } else if (!this.hand.isValid() && !itemInHand.isEmpty()) { + } else if (getMainHandItem().isEmpty() && !itemInHand.isEmpty()) { //TODO play sound? return InteractionResult.SUCCESS; - } else if (this.hand.isValid() && hand == Hand.MAIN_HAND && itemInHand.isEmpty()) { + } else if (!getMainHandItem().isEmpty() && hand == Hand.MAIN_HAND && itemInHand.isEmpty()) { //TOCHECK also play sound here? return InteractionResult.SUCCESS; } else { @@ -88,6 +88,6 @@ public class AllayEntity extends MobEntity { } private boolean isDuplicationItem(GeyserItemStack itemStack) { - return itemStack.asItem() == Items.AMETHYST_SHARD; + return itemStack.is(session, ItemTag.DUPLICATES_ALLAYS); } } diff --git a/core/src/main/java/org/geysermc/geyser/entity/type/living/ArmorStandEntity.java b/core/src/main/java/org/geysermc/geyser/entity/type/living/ArmorStandEntity.java index afbdcca31..956d641bb 100644 --- a/core/src/main/java/org/geysermc/geyser/entity/type/living/ArmorStandEntity.java +++ b/core/src/main/java/org/geysermc/geyser/entity/type/living/ArmorStandEntity.java @@ -32,7 +32,6 @@ import org.cloudburstmc.math.vector.Vector3f; import org.cloudburstmc.protocol.bedrock.data.entity.EntityDataType; import org.cloudburstmc.protocol.bedrock.data.entity.EntityDataTypes; import org.cloudburstmc.protocol.bedrock.data.entity.EntityFlag; -import org.cloudburstmc.protocol.bedrock.data.inventory.ItemData; import org.geysermc.geyser.entity.EntityDefinition; import org.geysermc.geyser.entity.EntityDefinitions; import org.geysermc.geyser.entity.type.LivingEntity; @@ -42,6 +41,7 @@ import org.geysermc.geyser.scoreboard.Team; import org.geysermc.geyser.session.GeyserSession; import org.geysermc.geyser.util.InteractionResult; import org.geysermc.geyser.util.MathUtils; +import org.geysermc.mcprotocollib.protocol.data.game.entity.EquipmentSlot; import org.geysermc.mcprotocollib.protocol.data.game.entity.metadata.EntityMetadata; import org.geysermc.mcprotocollib.protocol.data.game.entity.metadata.type.BooleanEntityMetadata; import org.geysermc.mcprotocollib.protocol.data.game.entity.metadata.type.ByteEntityMetadata; @@ -257,7 +257,7 @@ public class ArmorStandEntity extends LivingEntity { @Override public InteractionResult interactAt(Hand hand) { - if (!isMarker && session.getPlayerInventory().getItemInHand(hand).asItem() != Items.NAME_TAG) { + if (!isMarker && !session.getPlayerInventory().getItemInHand(hand).is(Items.NAME_TAG)) { // Java Edition returns SUCCESS if in spectator mode, but this is overridden with an earlier check on the client return InteractionResult.CONSUME; } else { @@ -332,8 +332,7 @@ public class ArmorStandEntity extends LivingEntity { return; } boolean isNametagEmpty = nametag.isEmpty(); - if (!isNametagEmpty && (!helmet.equals(ItemData.AIR) || !chestplate.equals(ItemData.AIR) || !leggings.equals(ItemData.AIR) - || !boots.equals(ItemData.AIR) || !hand.equals(ItemData.AIR) || !offhand.equals(ItemData.AIR))) { + if (!isNametagEmpty && hasAnyEquipment()) { // Reset scale of the proper armor stand setScale(getScale()); // Set the proper armor stand to invisible to show armor @@ -396,6 +395,12 @@ public class ArmorStandEntity extends LivingEntity { } } + private boolean hasAnyEquipment() { + return (!getItemInSlot(EquipmentSlot.HELMET).isEmpty() || !getItemInSlot(EquipmentSlot.CHESTPLATE).isEmpty() + || !getItemInSlot(EquipmentSlot.LEGGINGS).isEmpty() || !getItemInSlot(EquipmentSlot.BOOTS).isEmpty() + || !getMainHandItem().isEmpty() || !getOffHandItem().isEmpty()); + } + @Override public float getBoundingBoxWidth() { // For consistency with getBoundingBoxHeight() diff --git a/core/src/main/java/org/geysermc/geyser/entity/type/living/CopperGolemEntity.java b/core/src/main/java/org/geysermc/geyser/entity/type/living/CopperGolemEntity.java new file mode 100644 index 000000000..946d96169 --- /dev/null +++ b/core/src/main/java/org/geysermc/geyser/entity/type/living/CopperGolemEntity.java @@ -0,0 +1,147 @@ +/* + * Copyright (c) 2025 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; + +import org.checkerframework.checker.nullness.qual.NonNull; +import org.cloudburstmc.math.vector.Vector3f; +import org.geysermc.geyser.entity.EntityDefinition; +import org.geysermc.geyser.entity.properties.type.BooleanProperty; +import org.geysermc.geyser.entity.properties.type.EnumProperty; +import org.geysermc.geyser.impl.IdentifierImpl; +import org.geysermc.geyser.inventory.GeyserItemStack; +import org.geysermc.geyser.item.Items; +import org.geysermc.geyser.session.GeyserSession; +import org.geysermc.geyser.session.cache.tags.ItemTag; +import org.geysermc.geyser.util.InteractionResult; +import org.geysermc.geyser.util.InteractiveTag; +import org.geysermc.mcprotocollib.protocol.data.game.entity.EquipmentSlot; +import org.geysermc.mcprotocollib.protocol.data.game.entity.metadata.CopperGolemState; +import org.geysermc.mcprotocollib.protocol.data.game.entity.metadata.EntityMetadata; +import org.geysermc.mcprotocollib.protocol.data.game.entity.metadata.MetadataType; +import org.geysermc.mcprotocollib.protocol.data.game.entity.metadata.WeatheringCopperState; +import org.geysermc.mcprotocollib.protocol.data.game.entity.player.Hand; + +import java.util.UUID; + +public class CopperGolemEntity extends GolemEntity { + public static final BooleanProperty HAS_FLOWER_PROPERTY = new BooleanProperty( + IdentifierImpl.of("has_flower"), + false + ); + + public static final EnumProperty CHEST_INTERACTION_PROPERTY = new EnumProperty<>( + IdentifierImpl.of("chest_interaction"), + ChestInteractionState.class, + ChestInteractionState.NONE + ); + + public static final EnumProperty OXIDATION_LEVEL_STATE_ENUM_PROPERTY = new EnumProperty<>( + IdentifierImpl.of("oxidation_level"), + OxidationLevelState.class, + OxidationLevelState.UNOXIDIZED + ); + + public enum ChestInteractionState { + NONE, + TAKE, + TAKE_FAIL, + PUT, + PUT_FAIL + } + + public enum OxidationLevelState { + UNOXIDIZED, + EXPOSED, + WEATHERED, + OXIDIZED + } + + public CopperGolemEntity(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 @NonNull InteractiveTag testMobInteraction(@NonNull Hand hand, @NonNull GeyserItemStack itemInHand) { + if (itemInHand.isEmpty() && !getMainHandItem().isEmpty()) { + return InteractiveTag.DROP_ITEM; + } else if (itemInHand.is(Items.SHEARS) && canBeSheared()) { + return InteractiveTag.SHEAR; + } else if (itemInHand.is(Items.HONEYCOMB)) { + return InteractiveTag.WAX_ON; + } else if (itemInHand.is(session, ItemTag.AXES)) { + // There is no way of knowing if the copper golem is waxed or not, + // so just always send a scrape tag :( + return InteractiveTag.SCRAPE; + } + + return super.testMobInteraction(hand, itemInHand); + } + + @Override + protected @NonNull InteractionResult mobInteract(@NonNull Hand usedHand, @NonNull GeyserItemStack itemInHand) { + if ((itemInHand.isEmpty() && !getMainHandItem().isEmpty()) || (itemInHand.is(Items.SHEARS) && canBeSheared())) { + return InteractionResult.SUCCESS; + } + + return InteractionResult.PASS; + } + + private boolean canBeSheared() { + return isAlive() && getItemInSlot(EquipmentSlot.HELMET).is(session, ItemTag.SHEARABLE_FROM_COPPER_GOLEM); + } + + @Override + public void setSaddle(GeyserItemStack stack) { + super.setSaddle(stack); + + // Equipment on Java, entity property on bedrock + HAS_FLOWER_PROPERTY.apply(propertyManager, stack.is(Items.POPPY)); + updateBedrockEntityProperties(); + } + + public void setWeatheringState(EntityMetadata> metadata) { + WeatheringCopperState state = metadata.getValue(); + OXIDATION_LEVEL_STATE_ENUM_PROPERTY.apply(propertyManager, switch (state) { + case UNAFFECTED -> OxidationLevelState.UNOXIDIZED; + case EXPOSED -> OxidationLevelState.EXPOSED; + case WEATHERED -> OxidationLevelState.WEATHERED; + case OXIDIZED -> OxidationLevelState.OXIDIZED; + }); + updateBedrockEntityProperties(); + } + + public void setGolemState(EntityMetadata> metadata) { + CopperGolemState state = metadata.getValue(); + CHEST_INTERACTION_PROPERTY.apply(propertyManager, switch (state) { + case IDLE -> ChestInteractionState.NONE; + case GETTING_ITEM -> ChestInteractionState.TAKE; + case GETTING_NO_ITEM -> ChestInteractionState.TAKE_FAIL; + case DROPPING_ITEM -> ChestInteractionState.PUT; + case DROPPING_NO_ITEM -> ChestInteractionState.PUT_FAIL; + }); + updateBedrockEntityProperties(); + } +} diff --git a/core/src/main/java/org/geysermc/geyser/entity/type/living/DolphinEntity.java b/core/src/main/java/org/geysermc/geyser/entity/type/living/DolphinEntity.java index 8c404be97..cb300a7c9 100644 --- a/core/src/main/java/org/geysermc/geyser/entity/type/living/DolphinEntity.java +++ b/core/src/main/java/org/geysermc/geyser/entity/type/living/DolphinEntity.java @@ -50,7 +50,7 @@ public class DolphinEntity extends AgeableWaterEntity { @NonNull @Override protected InteractiveTag testMobInteraction(@NonNull Hand hand, @NonNull GeyserItemStack itemInHand) { - if (!itemInHand.isEmpty() && session.getTagCache().is(ItemTag.FISHES, itemInHand)) { + if (!itemInHand.isEmpty() && itemInHand.is(session, ItemTag.FISHES)) { return InteractiveTag.FEED; } return super.testMobInteraction(hand, itemInHand); @@ -59,7 +59,7 @@ public class DolphinEntity extends AgeableWaterEntity { @NonNull @Override protected InteractionResult mobInteract(@NonNull Hand hand, @NonNull GeyserItemStack itemInHand) { - if (!itemInHand.isEmpty() && session.getTagCache().is(ItemTag.FISHES, itemInHand)) { + if (!itemInHand.isEmpty() && itemInHand.is(session, ItemTag.FISHES)) { // Feed return InteractionResult.SUCCESS; } diff --git a/core/src/main/java/org/geysermc/geyser/entity/type/living/IronGolemEntity.java b/core/src/main/java/org/geysermc/geyser/entity/type/living/IronGolemEntity.java index 58a349cc9..8cbed6373 100644 --- a/core/src/main/java/org/geysermc/geyser/entity/type/living/IronGolemEntity.java +++ b/core/src/main/java/org/geysermc/geyser/entity/type/living/IronGolemEntity.java @@ -54,7 +54,7 @@ public class IronGolemEntity extends GolemEntity { @NonNull @Override protected InteractionResult mobInteract(@NonNull Hand hand, @NonNull GeyserItemStack itemInHand) { - if (itemInHand.asItem() == Items.IRON_INGOT) { + if (itemInHand.is(Items.IRON_INGOT)) { if (health < maxHealth) { // Healing the iron golem return InteractionResult.SUCCESS; diff --git a/core/src/main/java/org/geysermc/geyser/entity/type/living/MobEntity.java b/core/src/main/java/org/geysermc/geyser/entity/type/living/MobEntity.java index 558bffd99..d6c00f694 100644 --- a/core/src/main/java/org/geysermc/geyser/entity/type/living/MobEntity.java +++ b/core/src/main/java/org/geysermc/geyser/entity/type/living/MobEntity.java @@ -85,7 +85,7 @@ public class MobEntity extends LivingEntity implements Leashable { return InteractiveTag.REMOVE_LEASH; } else { GeyserItemStack itemStack = session.getPlayerInventory().getItemInHand(hand); - if (itemStack.asItem() == Items.NAME_TAG) { + if (itemStack.is(Items.NAME_TAG)) { InteractionResult result = checkInteractWithNameTag(itemStack); if (result.consumesAction()) { return InteractiveTag.NAME; @@ -120,8 +120,10 @@ public class MobEntity extends LivingEntity implements Leashable { } for (EquipmentSlot slot : EquipmentSlot.values()) { - GeyserItemStack equipped = equipment.get(slot); - if (equipped == null || equipped.isEmpty()) continue; + GeyserItemStack equipped = getItemInSlot(slot); + if (equipped.isEmpty()) { + continue; + } Equippable equippable = equipped.getComponent(DataComponentTypes.EQUIPPABLE); if (equippable != null && equippable.canBeSheared()) { @@ -135,7 +137,7 @@ public class MobEntity extends LivingEntity implements Leashable { } private InteractionResult checkPriorityInteractions(GeyserItemStack itemInHand) { - if (itemInHand.asItem() == Items.NAME_TAG) { + if (itemInHand.is(Items.NAME_TAG)) { InteractionResult result = checkInteractWithNameTag(itemInHand); if (result.consumesAction()) { return result; diff --git a/core/src/main/java/org/geysermc/geyser/entity/type/living/SnowGolemEntity.java b/core/src/main/java/org/geysermc/geyser/entity/type/living/SnowGolemEntity.java index 50aa7b90e..f766cd402 100644 --- a/core/src/main/java/org/geysermc/geyser/entity/type/living/SnowGolemEntity.java +++ b/core/src/main/java/org/geysermc/geyser/entity/type/living/SnowGolemEntity.java @@ -54,7 +54,7 @@ public class SnowGolemEntity extends GolemEntity { @NonNull @Override protected InteractiveTag testMobInteraction(@NonNull Hand hand, @NonNull GeyserItemStack itemInHand) { - if (Items.SHEARS == itemInHand.asItem() && isAlive() && !getFlag(EntityFlag.SHEARED)) { + if (itemInHand.is(Items.SHEARS) && isAlive() && !getFlag(EntityFlag.SHEARED)) { // Shearing the snow golem return InteractiveTag.SHEAR; } @@ -64,7 +64,7 @@ public class SnowGolemEntity extends GolemEntity { @NonNull @Override protected InteractionResult mobInteract(@NonNull Hand hand, @NonNull GeyserItemStack itemInHand) { - if (Items.SHEARS == itemInHand.asItem() && isAlive() && !getFlag(EntityFlag.SHEARED)) { + if (itemInHand.is(Items.SHEARS) && isAlive() && !getFlag(EntityFlag.SHEARED)) { // Shearing the snow golem return InteractionResult.SUCCESS; } diff --git a/core/src/main/java/org/geysermc/geyser/entity/type/living/TadpoleEntity.java b/core/src/main/java/org/geysermc/geyser/entity/type/living/TadpoleEntity.java index 68cf763c3..42ef51f67 100644 --- a/core/src/main/java/org/geysermc/geyser/entity/type/living/TadpoleEntity.java +++ b/core/src/main/java/org/geysermc/geyser/entity/type/living/TadpoleEntity.java @@ -62,6 +62,6 @@ public class TadpoleEntity extends AbstractFishEntity { } private boolean isFood(GeyserItemStack itemStack) { - return session.getTagCache().is(ItemTag.FROG_FOOD, itemStack); + return itemStack.is(session, ItemTag.FROG_FOOD); } } diff --git a/core/src/main/java/org/geysermc/geyser/entity/type/living/animal/AnimalEntity.java b/core/src/main/java/org/geysermc/geyser/entity/type/living/animal/AnimalEntity.java index 57cbdc783..d0c097ec8 100644 --- a/core/src/main/java/org/geysermc/geyser/entity/type/living/animal/AnimalEntity.java +++ b/core/src/main/java/org/geysermc/geyser/entity/type/living/animal/AnimalEntity.java @@ -53,7 +53,7 @@ public abstract class AnimalEntity extends AgeableEntity { if (tag == null) { return false; } - return session.getTagCache().is(tag, itemStack); + return itemStack.is(session, tag); } /** diff --git a/core/src/main/java/org/geysermc/geyser/entity/type/living/animal/ArmadilloEntity.java b/core/src/main/java/org/geysermc/geyser/entity/type/living/animal/ArmadilloEntity.java index 2b443f5e4..0ebd92021 100644 --- a/core/src/main/java/org/geysermc/geyser/entity/type/living/animal/ArmadilloEntity.java +++ b/core/src/main/java/org/geysermc/geyser/entity/type/living/animal/ArmadilloEntity.java @@ -28,6 +28,8 @@ package org.geysermc.geyser.entity.type.living.animal; import org.checkerframework.checker.nullness.qual.Nullable; import org.cloudburstmc.math.vector.Vector3f; import org.geysermc.geyser.entity.EntityDefinition; +import org.geysermc.geyser.entity.properties.type.EnumProperty; +import org.geysermc.geyser.impl.IdentifierImpl; import org.geysermc.geyser.item.type.Item; import org.geysermc.geyser.session.GeyserSession; import org.geysermc.geyser.session.cache.tags.ItemTag; @@ -39,6 +41,13 @@ import java.util.UUID; import java.util.concurrent.TimeUnit; public class ArmadilloEntity extends AnimalEntity { + + public static final EnumProperty STATE_PROPERTY = new EnumProperty<>( + IdentifierImpl.of("armadillo_state"), + State.class, + State.UNROLLED + ); + private ArmadilloState armadilloState = ArmadilloState.IDLE; public ArmadilloEntity(GeyserSession session, int entityId, long geyserId, UUID uuid, @@ -50,10 +59,10 @@ public class ArmadilloEntity extends AnimalEntity { armadilloState = entityMetadata.getValue(); switch (armadilloState) { - case IDLE -> propertyManager.add("minecraft:armadillo_state", "unrolled"); - case ROLLING -> propertyManager.add("minecraft:armadillo_state", "rolled_up"); - case SCARED -> propertyManager.add("minecraft:armadillo_state", "rolled_up_relaxing"); - case UNROLLING -> propertyManager.add("minecraft:armadillo_state", "rolled_up_unrolling"); + case IDLE -> STATE_PROPERTY.apply(propertyManager, State.UNROLLED); + case ROLLING -> STATE_PROPERTY.apply(propertyManager, State.ROLLED_UP); + case SCARED -> STATE_PROPERTY.apply(propertyManager, State.ROLLED_UP_RELAXING); + case UNROLLING -> STATE_PROPERTY.apply(propertyManager, State.ROLLED_UP_UNROLLING); } updateBedrockEntityProperties(); @@ -62,13 +71,13 @@ public class ArmadilloEntity extends AnimalEntity { public void onPeeking() { // Technically we should wait if not currently scared if (armadilloState == ArmadilloState.SCARED) { - propertyManager.add("minecraft:armadillo_state", "rolled_up_peeking"); + STATE_PROPERTY.apply(propertyManager, State.ROLLED_UP_PEEKING); updateBedrockEntityProperties(); // Needed for consecutive peeks session.scheduleInEventLoop(() -> { if (armadilloState == ArmadilloState.SCARED) { - propertyManager.add("minecraft:armadillo_state", "rolled_up_relaxing"); + STATE_PROPERTY.apply(propertyManager, State.ROLLED_UP_RELAXING); updateBedrockEntityProperties(); } }, 250, TimeUnit.MILLISECONDS); @@ -80,4 +89,12 @@ public class ArmadilloEntity extends AnimalEntity { protected Tag getFoodTag() { return ItemTag.ARMADILLO_FOOD; } + + public enum State { + UNROLLED, + ROLLED_UP, + ROLLED_UP_PEEKING, + ROLLED_UP_RELAXING, + ROLLED_UP_UNROLLING + } } diff --git a/core/src/main/java/org/geysermc/geyser/entity/type/living/animal/BeeEntity.java b/core/src/main/java/org/geysermc/geyser/entity/type/living/animal/BeeEntity.java index 5f8956b6a..919af7c22 100644 --- a/core/src/main/java/org/geysermc/geyser/entity/type/living/animal/BeeEntity.java +++ b/core/src/main/java/org/geysermc/geyser/entity/type/living/animal/BeeEntity.java @@ -32,6 +32,8 @@ import org.cloudburstmc.protocol.bedrock.data.entity.EntityEventType; import org.cloudburstmc.protocol.bedrock.data.entity.EntityFlag; import org.cloudburstmc.protocol.bedrock.packet.EntityEventPacket; import org.geysermc.geyser.entity.EntityDefinition; +import org.geysermc.geyser.entity.properties.type.BooleanProperty; +import org.geysermc.geyser.impl.IdentifierImpl; import org.geysermc.geyser.item.type.Item; import org.geysermc.geyser.session.GeyserSession; import org.geysermc.geyser.session.cache.tags.ItemTag; @@ -43,6 +45,11 @@ import java.util.UUID; public class BeeEntity extends AnimalEntity { + public static final BooleanProperty NECTAR_PROPERTY = new BooleanProperty( + IdentifierImpl.of("has_nectar"), + false + ); + public BeeEntity(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); } @@ -60,7 +67,7 @@ public class BeeEntity extends AnimalEntity { // If the bee has stung dirtyMetadata.put(EntityDataTypes.MARK_VARIANT, (xd & 0x04) == 0x04 ? 1 : 0); // If the bee has nectar or not - propertyManager.add("minecraft:has_nectar", (xd & 0x08) == 0x08); + NECTAR_PROPERTY.apply(propertyManager, (xd & 0x08) == 0x08); updateBedrockEntityProperties(); } diff --git a/core/src/main/java/org/geysermc/geyser/entity/type/living/animal/GoatEntity.java b/core/src/main/java/org/geysermc/geyser/entity/type/living/animal/GoatEntity.java index b954bb7a5..02d7c62de 100644 --- a/core/src/main/java/org/geysermc/geyser/entity/type/living/animal/GoatEntity.java +++ b/core/src/main/java/org/geysermc/geyser/entity/type/living/animal/GoatEntity.java @@ -77,7 +77,7 @@ public class GoatEntity extends AnimalEntity { @NonNull @Override protected InteractionResult mobInteract(@NonNull Hand hand, @NonNull GeyserItemStack itemInHand) { - if (!getFlag(EntityFlag.BABY) && itemInHand.asItem() == Items.BUCKET) { + if (!getFlag(EntityFlag.BABY) && itemInHand.is(Items.BUCKET)) { session.playSoundEvent(isScreamer ? SoundEvent.MILK_SCREAMER : SoundEvent.MILK, position); return InteractionResult.SUCCESS; } else { diff --git a/core/src/main/java/org/geysermc/geyser/entity/type/living/animal/HappyGhastEntity.java b/core/src/main/java/org/geysermc/geyser/entity/type/living/animal/HappyGhastEntity.java index bdd8fe305..51f61c6bf 100644 --- a/core/src/main/java/org/geysermc/geyser/entity/type/living/animal/HappyGhastEntity.java +++ b/core/src/main/java/org/geysermc/geyser/entity/type/living/animal/HappyGhastEntity.java @@ -33,11 +33,13 @@ import org.cloudburstmc.math.vector.Vector3f; import org.cloudburstmc.protocol.bedrock.data.AttributeData; import org.cloudburstmc.protocol.bedrock.data.entity.EntityFlag; import org.geysermc.geyser.entity.EntityDefinition; +import org.geysermc.geyser.entity.properties.type.BooleanProperty; import org.geysermc.geyser.entity.type.Entity; import org.geysermc.geyser.entity.type.player.SessionPlayerEntity; import org.geysermc.geyser.entity.vehicle.ClientVehicle; import org.geysermc.geyser.entity.vehicle.HappyGhastVehicleComponent; import org.geysermc.geyser.entity.vehicle.VehicleComponent; +import org.geysermc.geyser.impl.IdentifierImpl; import org.geysermc.geyser.inventory.GeyserItemStack; import org.geysermc.geyser.item.Items; import org.geysermc.geyser.item.type.Item; @@ -61,6 +63,11 @@ public class HappyGhastEntity extends AnimalEntity implements ClientVehicle { public static final float[] X_OFFSETS = {0.0F, -1.7F, 0.0F, 1.7F}; public static final float[] Z_OFFSETS = {1.7F, 0.0F, -1.7F, 0.0F}; + public static final BooleanProperty CAN_MOVE_PROPERTY = new BooleanProperty( + IdentifierImpl.of("can_move"), + true + ); + private final HappyGhastVehicleComponent vehicleComponent = new HappyGhastVehicleComponent(this, 0.0f); private boolean staysStill; @@ -80,8 +87,6 @@ public class HappyGhastEntity extends AnimalEntity implements ClientVehicle { setFlag(EntityFlag.WASD_AIR_CONTROLLED, true); setFlag(EntityFlag.DOES_SERVER_AUTH_ONLY_DISMOUNT, true); - - propertyManager.add("minecraft:can_move", true); } @Override @@ -111,7 +116,7 @@ public class HappyGhastEntity extends AnimalEntity implements ClientVehicle { public void setStaysStill(BooleanEntityMetadata entityMetadata) { staysStill = entityMetadata.getPrimitiveValue(); - propertyManager.add("minecraft:can_move", !entityMetadata.getPrimitiveValue()); + CAN_MOVE_PROPERTY.apply(propertyManager, !entityMetadata.getPrimitiveValue()); updateBedrockEntityProperties(); } @@ -122,12 +127,12 @@ public class HappyGhastEntity extends AnimalEntity implements ClientVehicle { return super.testMobInteraction(hand, itemInHand); } else { if (!itemInHand.isEmpty()) { - if (session.getTagCache().is(ItemTag.HARNESSES, itemInHand)) { - if (this.equipment.get(EquipmentSlot.BODY) == null) { + if (itemInHand.is(session, ItemTag.HARNESSES)) { + if (getItemInSlot(EquipmentSlot.BODY).isEmpty()) { // Harnesses the ghast return InteractiveTag.EQUIP_HARNESS; } - } else if (itemInHand.asItem() == Items.SHEARS) { + } else if (itemInHand.is(Items.SHEARS)) { if (this.canShearEquipment() && !session.isSneaking()) { // Shears the harness off of the ghast return InteractiveTag.REMOVE_HARNESS; @@ -135,7 +140,7 @@ public class HappyGhastEntity extends AnimalEntity implements ClientVehicle { } } - if (this.equipment.get(EquipmentSlot.BODY) != null && !session.isSneaking()) { + if (!getItemInSlot(EquipmentSlot.BODY).isEmpty() && !session.isSneaking()) { // Rides happy ghast return InteractiveTag.RIDE_HORSE; } else { @@ -151,12 +156,12 @@ public class HappyGhastEntity extends AnimalEntity implements ClientVehicle { return super.mobInteract(hand, itemInHand); } else { if (!itemInHand.isEmpty()) { - if (session.getTagCache().is(ItemTag.HARNESSES, itemInHand)) { - if (this.equipment.get(EquipmentSlot.BODY) == null) { + if (itemInHand.is(session, ItemTag.HARNESSES)) { + if (getItemInSlot(EquipmentSlot.BODY).isEmpty()) { // Harnesses the ghast return InteractionResult.SUCCESS; } - } else if (itemInHand.asItem() == Items.SHEARS) { + } else if (itemInHand.is(Items.SHEARS)) { if (this.canShearEquipment() && !session.isSneaking()) { // Shears the harness off of the ghast return InteractionResult.SUCCESS; @@ -164,7 +169,7 @@ public class HappyGhastEntity extends AnimalEntity implements ClientVehicle { } } - if (this.equipment.get(EquipmentSlot.BODY) == null && !session.isSneaking()) { + if (!getItemInSlot(EquipmentSlot.BODY).isEmpty() && !session.isSneaking()) { // Rides happy ghast return InteractionResult.SUCCESS; } else { @@ -208,7 +213,7 @@ public class HappyGhastEntity extends AnimalEntity implements ClientVehicle { @Override public boolean isClientControlled() { - if (!hasBodyArmor() || getFlag(EntityFlag.NO_AI) || staysStill) { + if (!hasBodyArmor() || staysStill) { return false; } diff --git a/core/src/main/java/org/geysermc/geyser/entity/type/living/animal/MooshroomEntity.java b/core/src/main/java/org/geysermc/geyser/entity/type/living/animal/MooshroomEntity.java index 3314344cb..78f2ea025 100644 --- a/core/src/main/java/org/geysermc/geyser/entity/type/living/animal/MooshroomEntity.java +++ b/core/src/main/java/org/geysermc/geyser/entity/type/living/animal/MooshroomEntity.java @@ -63,10 +63,10 @@ public class MooshroomEntity extends CowEntity { @Override protected InteractiveTag testMobInteraction(@NonNull Hand hand, @NonNull GeyserItemStack itemInHand) { if (!isBaby()) { - if (itemInHand.asItem() == Items.BOWL) { + if (itemInHand.is(Items.BOWL)) { // Stew return InteractiveTag.MOOSHROOM_MILK_STEW; - } else if (isAlive() && itemInHand.asItem() == Items.SHEARS) { + } else if (isAlive() && itemInHand.is(Items.SHEARS)) { // Shear items return InteractiveTag.MOOSHROOM_SHEAR; } @@ -78,13 +78,13 @@ public class MooshroomEntity extends CowEntity { @Override protected InteractionResult mobInteract(@NonNull Hand hand, @NonNull GeyserItemStack itemInHand) { boolean isBaby = isBaby(); - if (!isBaby && itemInHand.asItem() == Items.BOWL) { + if (!isBaby && itemInHand.is(Items.BOWL)) { // Stew return InteractionResult.SUCCESS; - } else if (!isBaby && isAlive() && itemInHand.asItem() == Items.SHEARS) { + } else if (!isBaby && isAlive() && itemInHand.is(Items.SHEARS)) { // Shear items return InteractionResult.SUCCESS; - } else if (isBrown && session.getTagCache().is(ItemTag.SMALL_FLOWERS, itemInHand)) { + } else if (isBrown && itemInHand.is(session, ItemTag.SMALL_FLOWERS)) { // ? return InteractionResult.SUCCESS; } diff --git a/core/src/main/java/org/geysermc/geyser/entity/type/living/animal/PandaEntity.java b/core/src/main/java/org/geysermc/geyser/entity/type/living/animal/PandaEntity.java index 022e58bc0..358643b0e 100644 --- a/core/src/main/java/org/geysermc/geyser/entity/type/living/animal/PandaEntity.java +++ b/core/src/main/java/org/geysermc/geyser/entity/type/living/animal/PandaEntity.java @@ -64,7 +64,7 @@ public class PandaEntity extends AnimalEntity { packet.setRuntimeEntityId(geyserId); packet.setType(EntityEventType.EATING_ITEM); // As of 1.20.5 - pandas can eat cake - packet.setData(this.hand.getDefinition().getRuntimeId() << 16); + packet.setData(session.getItemMappings().getMapping(getMainHandItem()).getBedrockDefinition().getRuntimeId() << 16); session.sendUpstreamPacket(packet); } } diff --git a/core/src/main/java/org/geysermc/geyser/entity/type/living/animal/SheepEntity.java b/core/src/main/java/org/geysermc/geyser/entity/type/living/animal/SheepEntity.java index e26b0be61..35863071c 100644 --- a/core/src/main/java/org/geysermc/geyser/entity/type/living/animal/SheepEntity.java +++ b/core/src/main/java/org/geysermc/geyser/entity/type/living/animal/SheepEntity.java @@ -68,7 +68,7 @@ public class SheepEntity extends AnimalEntity { @NonNull @Override protected InteractiveTag testMobInteraction(@NonNull Hand hand, @NonNull GeyserItemStack itemInHand) { - if (itemInHand.asItem() == Items.SHEARS) { + if (itemInHand.is(Items.SHEARS)) { return InteractiveTag.SHEAR; } else { InteractiveTag tag = super.testMobInteraction(hand, itemInHand); @@ -86,7 +86,7 @@ public class SheepEntity extends AnimalEntity { @NonNull @Override protected InteractionResult mobInteract(@NonNull Hand hand, @NonNull GeyserItemStack itemInHand) { - if (itemInHand.asItem() == Items.SHEARS) { + if (itemInHand.is(Items.SHEARS)) { return InteractionResult.CONSUME; } else { InteractionResult superResult = super.mobInteract(hand, itemInHand); diff --git a/core/src/main/java/org/geysermc/geyser/entity/type/living/animal/StriderEntity.java b/core/src/main/java/org/geysermc/geyser/entity/type/living/animal/StriderEntity.java index 36a126687..186ecd2dd 100644 --- a/core/src/main/java/org/geysermc/geyser/entity/type/living/animal/StriderEntity.java +++ b/core/src/main/java/org/geysermc/geyser/entity/type/living/animal/StriderEntity.java @@ -29,7 +29,6 @@ import org.checkerframework.checker.nullness.qual.NonNull; import org.checkerframework.checker.nullness.qual.Nullable; import org.cloudburstmc.math.vector.Vector2f; import org.cloudburstmc.math.vector.Vector3f; -import org.cloudburstmc.protocol.bedrock.data.definitions.ItemDefinition; import org.cloudburstmc.protocol.bedrock.data.entity.EntityFlag; import org.geysermc.geyser.entity.EntityDefinition; import org.geysermc.geyser.entity.type.Entity; @@ -157,8 +156,7 @@ public class StriderEntity extends AnimalEntity implements Tickable, ClientVehic vehicleComponent.tickBoost(); } } else { // getHand() for session player seems to always return air - ItemDefinition itemDefinition = session.getItemMappings().getStoredItems().warpedFungusOnAStick().getBedrockDefinition(); - if (player.getHand().getDefinition() == itemDefinition || player.getOffhand().getDefinition() == itemDefinition) { + if (player.isHolding(Items.WARPED_FUNGUS_ON_A_STICK)) { vehicleComponent.tickBoost(); } } diff --git a/core/src/main/java/org/geysermc/geyser/entity/type/living/animal/farm/CowEntity.java b/core/src/main/java/org/geysermc/geyser/entity/type/living/animal/farm/CowEntity.java index de79e9a52..8c1a27b95 100644 --- a/core/src/main/java/org/geysermc/geyser/entity/type/living/animal/farm/CowEntity.java +++ b/core/src/main/java/org/geysermc/geyser/entity/type/living/animal/farm/CowEntity.java @@ -54,7 +54,7 @@ public class CowEntity extends TemperatureVariantAnimal { @NonNull @Override protected InteractiveTag testMobInteraction(@NonNull Hand hand, @NonNull GeyserItemStack itemInHand) { - if (getFlag(EntityFlag.BABY) || itemInHand.asItem() != Items.BUCKET) { + if (getFlag(EntityFlag.BABY) || !itemInHand.is(Items.BUCKET)) { return super.testMobInteraction(hand, itemInHand); } @@ -64,7 +64,7 @@ public class CowEntity extends TemperatureVariantAnimal { @NonNull @Override protected InteractionResult mobInteract(@NonNull Hand hand, @NonNull GeyserItemStack itemInHand) { - if (getFlag(EntityFlag.BABY) || itemInHand.asItem() != Items.BUCKET) { + if (getFlag(EntityFlag.BABY) || !itemInHand.is(Items.BUCKET)) { return super.mobInteract(hand, itemInHand); } diff --git a/core/src/main/java/org/geysermc/geyser/entity/type/living/animal/farm/PigEntity.java b/core/src/main/java/org/geysermc/geyser/entity/type/living/animal/farm/PigEntity.java index 7ae672bcc..bb629c3d7 100644 --- a/core/src/main/java/org/geysermc/geyser/entity/type/living/animal/farm/PigEntity.java +++ b/core/src/main/java/org/geysermc/geyser/entity/type/living/animal/farm/PigEntity.java @@ -29,7 +29,6 @@ import org.checkerframework.checker.nullness.qual.NonNull; import org.checkerframework.checker.nullness.qual.Nullable; import org.cloudburstmc.math.vector.Vector2f; import org.cloudburstmc.math.vector.Vector3f; -import org.cloudburstmc.protocol.bedrock.data.definitions.ItemDefinition; import org.cloudburstmc.protocol.bedrock.data.entity.EntityFlag; import org.geysermc.geyser.entity.EntityDefinition; import org.geysermc.geyser.entity.type.Tickable; @@ -116,8 +115,7 @@ public class PigEntity extends TemperatureVariantAnimal implements Tickable, Cli vehicleComponent.tickBoost(); } } else { // getHand() for session player seems to always return air - ItemDefinition itemDefinition = session.getItemMappings().getStoredItems().carrotOnAStick().getBedrockDefinition(); - if (player.getHand().getDefinition() == itemDefinition || player.getOffhand().getDefinition() == itemDefinition) { + if (player.isHolding(Items.CARROT_ON_A_STICK)) { vehicleComponent.tickBoost(); } } diff --git a/core/src/main/java/org/geysermc/geyser/entity/type/living/animal/farm/TemperatureVariantAnimal.java b/core/src/main/java/org/geysermc/geyser/entity/type/living/animal/farm/TemperatureVariantAnimal.java index b61a3a80d..9d772c8a2 100644 --- a/core/src/main/java/org/geysermc/geyser/entity/type/living/animal/farm/TemperatureVariantAnimal.java +++ b/core/src/main/java/org/geysermc/geyser/entity/type/living/animal/farm/TemperatureVariantAnimal.java @@ -26,19 +26,24 @@ package org.geysermc.geyser.entity.type.living.animal.farm; import org.cloudburstmc.math.vector.Vector3f; -import org.cloudburstmc.protocol.bedrock.packet.AddEntityPacket; import org.geysermc.geyser.entity.EntityDefinition; -import org.geysermc.geyser.entity.properties.VanillaEntityProperties; +import org.geysermc.geyser.entity.properties.type.EnumProperty; import org.geysermc.geyser.entity.type.living.animal.AnimalEntity; import org.geysermc.geyser.entity.type.living.animal.VariantHolder; +import org.geysermc.geyser.impl.IdentifierImpl; import org.geysermc.geyser.session.GeyserSession; import org.geysermc.geyser.session.cache.RegistryCache; -import java.util.Locale; import java.util.UUID; public abstract class TemperatureVariantAnimal extends AnimalEntity implements VariantHolder { + public static final EnumProperty TEMPERATE_VARIANT_PROPERTY = new EnumProperty<>( + IdentifierImpl.of("climate_variant"), + BuiltInVariant.class, + BuiltInVariant.TEMPERATE + ); + public static final RegistryCache.RegistryReader VARIANT_READER = VariantHolder.reader(BuiltInVariant.class, BuiltInVariant.TEMPERATE); public TemperatureVariantAnimal(GeyserSession session, int entityId, long geyserId, UUID uuid, EntityDefinition definition, @@ -46,25 +51,15 @@ public abstract class TemperatureVariantAnimal extends AnimalEntity implements V super(session, entityId, geyserId, uuid, definition, position, motion, yaw, pitch, headYaw); } - @Override - public void addAdditionalSpawnData(AddEntityPacket addEntityPacket) { - propertyManager.add(VanillaEntityProperties.CLIMATE_VARIANT_ID, "temperate"); - propertyManager.applyIntProperties(addEntityPacket.getProperties().getIntProperties()); - } - @Override public void setBedrockVariant(BuiltInVariant variant) { - propertyManager.add(VanillaEntityProperties.CLIMATE_VARIANT_ID, variant.toBedrock()); + TEMPERATE_VARIANT_PROPERTY.apply(propertyManager, variant); updateBedrockEntityProperties(); } public enum BuiltInVariant implements VariantHolder.BuiltIn { - COLD, TEMPERATE, - WARM; - - public String toBedrock() { - return name().toLowerCase(Locale.ROOT); - } + WARM, + COLD; } } diff --git a/core/src/main/java/org/geysermc/geyser/entity/type/living/animal/horse/AbstractHorseEntity.java b/core/src/main/java/org/geysermc/geyser/entity/type/living/animal/horse/AbstractHorseEntity.java index 8b0e77c73..65e2ed051 100644 --- a/core/src/main/java/org/geysermc/geyser/entity/type/living/animal/horse/AbstractHorseEntity.java +++ b/core/src/main/java/org/geysermc/geyser/entity/type/living/animal/horse/AbstractHorseEntity.java @@ -165,7 +165,7 @@ public class AbstractHorseEntity extends AnimalEntity { return InteractiveTag.ATTACH_CHEST; } - if (additionalTestForInventoryOpen(itemInHand) || !isBaby && !getFlag(EntityFlag.SADDLED) && itemInHand.asItem() == Items.SADDLE) { + if (additionalTestForInventoryOpen(itemInHand) || !isBaby && !getFlag(EntityFlag.SADDLED) && itemInHand.is(Items.SADDLE)) { // Will open the inventory to be saddled return InteractiveTag.OPEN_CONTAINER; } @@ -221,7 +221,7 @@ public class AbstractHorseEntity extends AnimalEntity { } // Note: yes, this code triggers for llamas too. lol (as of Java Edition 1.18.1) - if (additionalTestForInventoryOpen(itemInHand) || (!isBaby && !getFlag(EntityFlag.SADDLED) && itemInHand.asItem() == Items.SADDLE)) { + if (additionalTestForInventoryOpen(itemInHand) || (!isBaby && !getFlag(EntityFlag.SADDLED) && itemInHand.is(Items.SADDLE))) { // Will open the inventory to be saddled return InteractionResult.SUCCESS; } @@ -245,6 +245,7 @@ public class AbstractHorseEntity extends AnimalEntity { } protected boolean additionalTestForInventoryOpen(@NonNull GeyserItemStack itemInHand) { + // TODO this doesn't seem right anymore... (as of Java 1.21.9) return itemInHand.asItem().javaIdentifier().endsWith("_horse_armor"); } @@ -260,7 +261,7 @@ public class AbstractHorseEntity extends AnimalEntity { } else if (!passengers.isEmpty()) { return testHorseInteraction(hand, itemInHand); } else { - if (Items.SADDLE == itemInHand.asItem()) { + if (itemInHand.is(Items.SADDLE)) { return InteractiveTag.OPEN_CONTAINER; } diff --git a/core/src/main/java/org/geysermc/geyser/entity/type/living/animal/horse/ChestedHorseEntity.java b/core/src/main/java/org/geysermc/geyser/entity/type/living/animal/horse/ChestedHorseEntity.java index fc8584de3..491ca02df 100644 --- a/core/src/main/java/org/geysermc/geyser/entity/type/living/animal/horse/ChestedHorseEntity.java +++ b/core/src/main/java/org/geysermc/geyser/entity/type/living/animal/horse/ChestedHorseEntity.java @@ -54,7 +54,7 @@ public class ChestedHorseEntity extends AbstractHorseEntity { @Override protected boolean testForChest(@NonNull GeyserItemStack itemInHand) { - return itemInHand.asItem() == Items.CHEST && !getFlag(EntityFlag.CHESTED); + return itemInHand.is(Items.CHEST) && !getFlag(EntityFlag.CHESTED); } @Override diff --git a/core/src/main/java/org/geysermc/geyser/entity/type/living/animal/tameable/ParrotEntity.java b/core/src/main/java/org/geysermc/geyser/entity/type/living/animal/tameable/ParrotEntity.java index 95e9c901b..ef6121456 100644 --- a/core/src/main/java/org/geysermc/geyser/entity/type/living/animal/tameable/ParrotEntity.java +++ b/core/src/main/java/org/geysermc/geyser/entity/type/living/animal/tameable/ParrotEntity.java @@ -52,21 +52,21 @@ public class ParrotEntity extends TameableEntity { return null; } - private boolean isTameFood(Item item) { - return session.getTagCache().is(ItemTag.PARROT_FOOD, item); + private boolean isTameFood(GeyserItemStack item) { + return item.is(session, ItemTag.PARROT_FOOD); } - private boolean isPoisonousFood(Item item) { - return session.getTagCache().is(ItemTag.PARROT_POISONOUS_FOOD, item); + private boolean isPoisonousFood(GeyserItemStack item) { + return item.is(session, ItemTag.PARROT_POISONOUS_FOOD); } @NonNull @Override protected InteractiveTag testMobInteraction(@NonNull Hand hand, @NonNull GeyserItemStack itemInHand) { boolean tame = getFlag(EntityFlag.TAMED); - if (!tame && isTameFood(itemInHand.asItem())) { + if (!tame && isTameFood(itemInHand)) { return InteractiveTag.FEED; - } else if (isPoisonousFood(itemInHand.asItem())) { + } else if (isPoisonousFood(itemInHand)) { return InteractiveTag.FEED; } else if (onGround && tame && ownerBedrockId == session.getPlayerEntity().getGeyserId()) { // Sitting/standing @@ -79,9 +79,9 @@ public class ParrotEntity extends TameableEntity { @Override protected InteractionResult mobInteract(@NonNull Hand hand, @NonNull GeyserItemStack itemInHand) { boolean tame = getFlag(EntityFlag.TAMED); - if (!tame && isTameFood(itemInHand.asItem())) { + if (!tame && isTameFood(itemInHand)) { return InteractionResult.SUCCESS; - } else if (isPoisonousFood(itemInHand.asItem())) { + } else if (isPoisonousFood(itemInHand)) { return InteractionResult.SUCCESS; } else if (onGround && tame && ownerBedrockId == session.getPlayerEntity().getGeyserId()) { // Sitting/standing 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 46911480e..eee7a0052 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 @@ -30,10 +30,11 @@ import org.checkerframework.checker.nullness.qual.Nullable; import org.cloudburstmc.math.vector.Vector3f; import org.cloudburstmc.protocol.bedrock.data.entity.EntityDataTypes; import org.cloudburstmc.protocol.bedrock.data.entity.EntityFlag; -import org.cloudburstmc.protocol.bedrock.packet.AddEntityPacket; import org.cloudburstmc.protocol.bedrock.packet.UpdateAttributesPacket; import org.geysermc.geyser.entity.EntityDefinition; +import org.geysermc.geyser.entity.properties.type.StringEnumProperty; import org.geysermc.geyser.entity.type.living.animal.VariantIntHolder; +import org.geysermc.geyser.impl.IdentifierImpl; import org.geysermc.geyser.inventory.GeyserItemStack; import org.geysermc.geyser.item.Items; import org.geysermc.geyser.item.enchantment.EnchantmentComponent; @@ -47,6 +48,7 @@ import org.geysermc.geyser.session.cache.tags.Tag; import org.geysermc.geyser.util.InteractionResult; import org.geysermc.geyser.util.InteractiveTag; import org.geysermc.geyser.util.ItemUtils; +import org.geysermc.mcprotocollib.protocol.data.game.entity.EquipmentSlot; import org.geysermc.mcprotocollib.protocol.data.game.entity.metadata.type.ByteEntityMetadata; import org.geysermc.mcprotocollib.protocol.data.game.entity.metadata.type.IntEntityMetadata; import org.geysermc.mcprotocollib.protocol.data.game.entity.player.GameMode; @@ -55,9 +57,25 @@ import org.geysermc.mcprotocollib.protocol.data.game.item.component.DataComponen import org.geysermc.mcprotocollib.protocol.data.game.item.component.HolderSet; import java.util.Collections; +import java.util.List; import java.util.UUID; public class WolfEntity extends TameableEntity implements VariantIntHolder { + + public static final StringEnumProperty SOUND_VARIANT = new StringEnumProperty( + IdentifierImpl.of("sound_variant"), + List.of( + "default", + "big", + "cute", + "grumpy", + "mad", + "puglin", + "sad" + ), + null + ); + private byte collarColor = 14; // Red - default private HolderSet repairableItems = null; private boolean isCurseOfBinding = false; @@ -66,12 +84,6 @@ public class WolfEntity extends TameableEntity implements VariantIntHolder { super(session, entityId, geyserId, uuid, definition, position, motion, yaw, pitch, headYaw); } - @Override - public void addAdditionalSpawnData(AddEntityPacket addEntityPacket) { - propertyManager.add("minecraft:sound_variant", "default"); - propertyManager.applyIntProperties(addEntityPacket.getProperties().getIntProperties()); - } - @Override public void setTameableFlags(ByteEntityMetadata entityMetadata) { super.setTameableFlags(entityMetadata); @@ -146,7 +158,7 @@ public class WolfEntity extends TameableEntity implements VariantIntHolder { if (getFlag(EntityFlag.ANGRY)) { return InteractiveTag.NONE; } - if (itemInHand.asItem() == Items.BONE && !getFlag(EntityFlag.TAMED)) { + if (itemInHand.is(Items.BONE) && !getFlag(EntityFlag.TAMED)) { // Bone and untamed - can tame return InteractiveTag.TAME; } @@ -159,17 +171,15 @@ public class WolfEntity extends TameableEntity implements VariantIntHolder { return super.testMobInteraction(hand, itemInHand); } } - if (itemInHand.asItem() == Items.WOLF_ARMOR && !this.body.isValid() && !getFlag(EntityFlag.BABY)) { + if (itemInHand.is(Items.WOLF_ARMOR) && !getItemInSlot(EquipmentSlot.BODY).isEmpty() && !getFlag(EntityFlag.BABY)) { return InteractiveTag.EQUIP_WOLF_ARMOR; } - if (itemInHand.asItem() == Items.SHEARS && this.body.isValid() + if (itemInHand.is(Items.SHEARS) && !getItemInSlot(EquipmentSlot.BODY).isEmpty() && (!isCurseOfBinding || session.getGameMode().equals(GameMode.CREATIVE))) { return InteractiveTag.REMOVE_WOLF_ARMOR; } - if (getFlag(EntityFlag.SITTING) && - session.getTagCache().isItem(repairableItems, itemInHand.asItem()) && - this.body.isValid() && this.body.getTag() != null && - this.body.getTag().getInt("Damage") > 0) { + if (getFlag(EntityFlag.SITTING) && itemInHand.is(session, repairableItems) && + !getItemInSlot(EquipmentSlot.BODY).isEmpty() && getItemInSlot(EquipmentSlot.BODY).isDamaged()) { return InteractiveTag.REPAIR_WOLF_ARMOR; } // Tamed and owned by player - can sit/stand @@ -182,7 +192,7 @@ public class WolfEntity extends TameableEntity implements VariantIntHolder { @Override protected InteractionResult mobInteract(@NonNull Hand hand, @NonNull GeyserItemStack itemInHand) { if (ownerBedrockId == session.getPlayerEntity().getGeyserId() || getFlag(EntityFlag.TAMED) - || itemInHand.asItem() == Items.BONE && !getFlag(EntityFlag.ANGRY)) { + || itemInHand.is(Items.BONE) && !getFlag(EntityFlag.ANGRY)) { // Sitting toggle or feeding; not angry return InteractionResult.CONSUME; } else { diff --git a/core/src/main/java/org/geysermc/geyser/entity/type/living/merchant/AbstractMerchantEntity.java b/core/src/main/java/org/geysermc/geyser/entity/type/living/merchant/AbstractMerchantEntity.java index 2492aabd7..ecc517489 100644 --- a/core/src/main/java/org/geysermc/geyser/entity/type/living/merchant/AbstractMerchantEntity.java +++ b/core/src/main/java/org/geysermc/geyser/entity/type/living/merchant/AbstractMerchantEntity.java @@ -54,7 +54,7 @@ public class AbstractMerchantEntity extends AgeableEntity { @NonNull @Override protected InteractiveTag testMobInteraction(@NonNull Hand hand, @NonNull GeyserItemStack itemInHand) { - if (itemInHand.asItem() != Items.VILLAGER_SPAWN_EGG + if (!itemInHand.is(Items.VILLAGER_SPAWN_EGG) && (definition != EntityDefinitions.VILLAGER || !getFlag(EntityFlag.SLEEPING) && ((VillagerEntity) this).isCanTradeWith())) { // An additional check we know cannot work if (!isBaby()) { @@ -67,7 +67,7 @@ public class AbstractMerchantEntity extends AgeableEntity { @NonNull @Override protected InteractionResult mobInteract(@NonNull Hand hand, @NonNull GeyserItemStack itemInHand) { - if (itemInHand.asItem() != Items.VILLAGER_SPAWN_EGG + if (!itemInHand.is(Items.VILLAGER_SPAWN_EGG) && (definition != EntityDefinitions.VILLAGER || !getFlag(EntityFlag.SLEEPING)) && (definition != EntityDefinitions.WANDERING_TRADER || !getFlag(EntityFlag.BABY))) { // Trading time diff --git a/core/src/main/java/org/geysermc/geyser/entity/type/living/monster/AbstractSkeletonEntity.java b/core/src/main/java/org/geysermc/geyser/entity/type/living/monster/AbstractSkeletonEntity.java index d08fff06a..16b5cc01c 100644 --- a/core/src/main/java/org/geysermc/geyser/entity/type/living/monster/AbstractSkeletonEntity.java +++ b/core/src/main/java/org/geysermc/geyser/entity/type/living/monster/AbstractSkeletonEntity.java @@ -26,10 +26,10 @@ package org.geysermc.geyser.entity.type.living.monster; import org.cloudburstmc.math.vector.Vector3f; -import org.cloudburstmc.protocol.bedrock.data.definitions.ItemDefinition; import org.cloudburstmc.protocol.bedrock.data.entity.EntityDataTypes; import org.cloudburstmc.protocol.bedrock.data.entity.EntityFlag; import org.geysermc.geyser.entity.EntityDefinition; +import org.geysermc.geyser.item.Items; import org.geysermc.geyser.session.GeyserSession; import org.geysermc.mcprotocollib.protocol.data.game.entity.metadata.type.ByteEntityMetadata; @@ -49,8 +49,7 @@ public class AbstractSkeletonEntity extends MonsterEntity { dirtyMetadata.put(EntityDataTypes.TARGET_EID, ((xd & 4) == 4) ? geyserId : 0); if ((xd & 4) == 4) { - ItemDefinition bow = session.getItemMappings().getStoredItems().bow().getBedrockDefinition(); - setFlag(EntityFlag.FACING_TARGET_TO_RANGE_ATTACK, this.hand.getDefinition() == bow || this.offhand.getDefinition() == bow); + setFlag(EntityFlag.FACING_TARGET_TO_RANGE_ATTACK, isHolding(Items.BOW)); } else { setFlag(EntityFlag.FACING_TARGET_TO_RANGE_ATTACK, false); } diff --git a/core/src/main/java/org/geysermc/geyser/entity/type/living/monster/BoggedEntity.java b/core/src/main/java/org/geysermc/geyser/entity/type/living/monster/BoggedEntity.java index 806d58ed1..c4d8eeff3 100644 --- a/core/src/main/java/org/geysermc/geyser/entity/type/living/monster/BoggedEntity.java +++ b/core/src/main/java/org/geysermc/geyser/entity/type/living/monster/BoggedEntity.java @@ -53,7 +53,7 @@ public class BoggedEntity extends AbstractSkeletonEntity { @Override protected @NonNull InteractiveTag testMobInteraction(@NonNull Hand hand, @NonNull GeyserItemStack itemInHand) { - if (itemInHand.asItem() == Items.SHEARS && readyForShearing()) { + if (itemInHand.is(Items.SHEARS) && readyForShearing()) { return InteractiveTag.SHEAR; } return super.testMobInteraction(hand, itemInHand); @@ -61,7 +61,7 @@ public class BoggedEntity extends AbstractSkeletonEntity { @Override protected @NonNull InteractionResult mobInteract(@NonNull Hand hand, @NonNull GeyserItemStack itemInHand) { - if (itemInHand.asItem() == Items.SHEARS && readyForShearing()) { + if (itemInHand.is(Items.SHEARS) && readyForShearing()) { return InteractionResult.SUCCESS; } return super.mobInteract(hand, itemInHand); 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 166cdc053..dc9755a2b 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 @@ -30,9 +30,11 @@ 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.entity.EntityDefinition; +import org.geysermc.geyser.entity.properties.type.EnumProperty; +import org.geysermc.geyser.entity.properties.type.IntProperty; +import org.geysermc.geyser.impl.IdentifierImpl; 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; @@ -41,8 +43,23 @@ import java.util.Optional; import java.util.UUID; public class CreakingEntity extends MonsterEntity { - public static final String CREAKING_STATE = "minecraft:creaking_state"; - public static final String CREAKING_SWAYING_TICKS = "minecraft:creaking_swaying_ticks"; + + public static final EnumProperty STATE_PROPERTY = new EnumProperty<>( + IdentifierImpl.of("creaking_state"), + CreakingState.class, + CreakingState.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 + // update: this still holds true, even a refactor later :( + public static final IntProperty SWAYING_TICKS_PROPERTY = new IntProperty( + IdentifierImpl.of("creaking_swaying_ticks"), + 6, 0, 0 + ); private Vector3i homePosition; @@ -56,33 +73,21 @@ public class CreakingEntity extends MonsterEntity { setFlag(EntityFlag.FIRE_IMMUNE, true); } - @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()); - } - public void setCanMove(EntityMetadata> booleanEntityMetadata) { setFlag(EntityFlag.BODY_ROTATION_BLOCKED, !booleanEntityMetadata.getValue()); - propertyManager.add(CREAKING_STATE, booleanEntityMetadata.getValue() ? "hostile_unobserved" : "hostile_observed"); + STATE_PROPERTY.apply(propertyManager, booleanEntityMetadata.getValue() ? CreakingState.HOSTILE_UNOBSERVED : CreakingState.HOSTILE_OBSERVED); updateBedrockEntityProperties(); } public void setActive(EntityMetadata> booleanEntityMetadata) { if (!booleanEntityMetadata.getValue()) { - propertyManager.add(CREAKING_STATE, "neutral"); + STATE_PROPERTY.apply(propertyManager, CreakingState.NEUTRAL); } } public void setIsTearingDown(EntityMetadata> booleanEntityMetadata) { if (booleanEntityMetadata.getValue()) { - propertyManager.add(CREAKING_STATE, "crumbling"); + STATE_PROPERTY.apply(propertyManager, CreakingState.CRUMBLING); updateBedrockEntityProperties(); } } @@ -115,4 +120,12 @@ public class CreakingEntity extends MonsterEntity { session.sendUpstreamPacket(levelEventGenericPacket); } } + + public enum CreakingState { + NEUTRAL, + HOSTILE_OBSERVED, + HOSTILE_UNOBSERVED, + TWITCHING, + CRUMBLING + } } diff --git a/core/src/main/java/org/geysermc/geyser/entity/type/living/monster/CreeperEntity.java b/core/src/main/java/org/geysermc/geyser/entity/type/living/monster/CreeperEntity.java index 5f54d2942..cc58aa7aa 100644 --- a/core/src/main/java/org/geysermc/geyser/entity/type/living/monster/CreeperEntity.java +++ b/core/src/main/java/org/geysermc/geyser/entity/type/living/monster/CreeperEntity.java @@ -66,7 +66,7 @@ public class CreeperEntity extends MonsterEntity { @NonNull @Override protected InteractiveTag testMobInteraction(@NonNull Hand hand, @NonNull GeyserItemStack itemInHand) { - if (session.getTagCache().is(ItemTag.CREEPER_IGNITERS, itemInHand)) { + if (itemInHand.is(session, ItemTag.CREEPER_IGNITERS)) { return InteractiveTag.IGNITE_CREEPER; } else { return super.testMobInteraction(hand, itemInHand); @@ -76,7 +76,7 @@ public class CreeperEntity extends MonsterEntity { @NonNull @Override protected InteractionResult mobInteract(@NonNull Hand hand, @NonNull GeyserItemStack itemInHand) { - if (session.getTagCache().is(ItemTag.CREEPER_IGNITERS, itemInHand)) { + if (itemInHand.is(session, ItemTag.CREEPER_IGNITERS)) { // Ignite creeper - as of 1.19.3 session.playSoundEvent(SoundEvent.IGNITE, position); return InteractionResult.SUCCESS; diff --git a/core/src/main/java/org/geysermc/geyser/entity/type/living/monster/PiglinEntity.java b/core/src/main/java/org/geysermc/geyser/entity/type/living/monster/PiglinEntity.java index 36c412ba7..b35e6a17f 100644 --- a/core/src/main/java/org/geysermc/geyser/entity/type/living/monster/PiglinEntity.java +++ b/core/src/main/java/org/geysermc/geyser/entity/type/living/monster/PiglinEntity.java @@ -35,13 +35,13 @@ import org.cloudburstmc.protocol.bedrock.packet.MobEquipmentPacket; import org.geysermc.geyser.entity.EntityDefinition; import org.geysermc.geyser.inventory.GeyserItemStack; import org.geysermc.geyser.item.Items; -import org.geysermc.geyser.registry.type.ItemMapping; import org.geysermc.geyser.session.GeyserSession; import org.geysermc.geyser.session.cache.tags.ItemTag; import org.geysermc.geyser.util.InteractionResult; import org.geysermc.geyser.util.InteractiveTag; import org.geysermc.mcprotocollib.protocol.data.game.entity.metadata.type.BooleanEntityMetadata; import org.geysermc.mcprotocollib.protocol.data.game.entity.player.Hand; +import org.geysermc.mcprotocollib.protocol.data.game.item.component.DataComponentTypes; import java.util.UUID; @@ -71,17 +71,16 @@ public class PiglinEntity extends BasePiglinEntity { @Override public void setHand(GeyserItemStack stack) { - ItemMapping crossbow = session.getItemMappings().getStoredItems().crossbow(); - boolean toCrossbow = stack != null && stack.asItem() == crossbow.getJavaItem(); + boolean toCrossbow = stack != null && stack.is(Items.CROSSBOW); - if (toCrossbow ^ this.hand.getDefinition() == crossbow.getBedrockDefinition()) { // If switching to/from crossbow + if (toCrossbow ^ getMainHandItem().is(Items.CROSSBOW)) { // If switching to/from crossbow dirtyMetadata.put(EntityDataTypes.BLOCK, session.getBlockMappings().getDefinition(toCrossbow ? 0 : 1)); dirtyMetadata.put(EntityDataTypes.CHARGE_AMOUNT, (byte) 0); setFlag(EntityFlag.CHARGED, false); setFlag(EntityFlag.USING_ITEM, false); updateBedrockMetadata(); - if (this.hand.isValid()) { + if (!getMainHandItem().isEmpty()) { MobEquipmentPacket mobEquipmentPacket = new MobEquipmentPacket(); mobEquipmentPacket.setRuntimeEntityId(geyserId); mobEquipmentPacket.setContainerId(ContainerId.INVENTORY); @@ -96,11 +95,11 @@ public class PiglinEntity extends BasePiglinEntity { } @Override - public void updateMainHand(GeyserSession session) { - super.updateMainHand(session); + public void updateMainHand() { + super.updateMainHand(); - if (this.hand.getDefinition() == session.getItemMappings().getStoredItems().crossbow().getBedrockDefinition()) { - if (this.hand.getTag() != null && this.hand.getTag().containsKey("chargedItem")) { + if (getMainHandItem().is(Items.CROSSBOW)) { + if (getMainHandItem().getComponent(DataComponentTypes.CHARGED_PROJECTILES) != null) { dirtyMetadata.put(EntityDataTypes.CHARGE_AMOUNT, Byte.MAX_VALUE); setFlag(EntityFlag.CHARGING, false); setFlag(EntityFlag.CHARGED, true); @@ -116,12 +115,12 @@ public class PiglinEntity extends BasePiglinEntity { } @Override - public void updateOffHand(GeyserSession session) { + public void updateOffHand() { // Check if the Piglin is holding Gold and set the ADMIRING flag accordingly so its pose updates - setFlag(EntityFlag.ADMIRING, session.getTagCache().is(ItemTag.PIGLIN_LOVED, session.getItemMappings().getMapping(this.offhand).getJavaItem())); + setFlag(EntityFlag.ADMIRING, getOffHandItem().is(session, ItemTag.PIGLIN_LOVED)); super.updateBedrockMetadata(); - super.updateOffHand(session); + super.updateOffHand(); } @NonNull @@ -147,6 +146,6 @@ public class PiglinEntity extends BasePiglinEntity { } private boolean canGiveGoldTo(@NonNull GeyserItemStack itemInHand) { - return !getFlag(EntityFlag.BABY) && itemInHand.asItem() == Items.GOLD_INGOT && !getFlag(EntityFlag.ADMIRING); + return !getFlag(EntityFlag.BABY) && itemInHand.is(Items.GOLD_INGOT) && !getFlag(EntityFlag.ADMIRING); } } diff --git a/core/src/main/java/org/geysermc/geyser/entity/type/living/monster/ZombieVillagerEntity.java b/core/src/main/java/org/geysermc/geyser/entity/type/living/monster/ZombieVillagerEntity.java index 6e03e4f98..e09568102 100644 --- a/core/src/main/java/org/geysermc/geyser/entity/type/living/monster/ZombieVillagerEntity.java +++ b/core/src/main/java/org/geysermc/geyser/entity/type/living/monster/ZombieVillagerEntity.java @@ -70,7 +70,7 @@ public class ZombieVillagerEntity extends ZombieEntity { @NonNull @Override protected InteractiveTag testMobInteraction(@NonNull Hand hand, @NonNull GeyserItemStack itemInHand) { - if (itemInHand.asItem() == Items.GOLDEN_APPLE) { + if (itemInHand.is(Items.GOLDEN_APPLE)) { return InteractiveTag.CURE; } else { return super.testMobInteraction(hand, itemInHand); @@ -80,7 +80,7 @@ public class ZombieVillagerEntity extends ZombieEntity { @NonNull @Override protected InteractionResult mobInteract(@NonNull Hand hand, @NonNull GeyserItemStack itemInHand) { - if (itemInHand.asItem() == Items.GOLDEN_APPLE) { + if (itemInHand.is(Items.GOLDEN_APPLE)) { // The client doesn't know if the entity has weakness as that's not usually sent over the network return InteractionResult.CONSUME; } else { diff --git a/core/src/main/java/org/geysermc/geyser/entity/type/living/monster/raid/PillagerEntity.java b/core/src/main/java/org/geysermc/geyser/entity/type/living/monster/raid/PillagerEntity.java index fd7448e29..e73052286 100644 --- a/core/src/main/java/org/geysermc/geyser/entity/type/living/monster/raid/PillagerEntity.java +++ b/core/src/main/java/org/geysermc/geyser/entity/type/living/monster/raid/PillagerEntity.java @@ -28,11 +28,12 @@ package org.geysermc.geyser.entity.type.living.monster.raid; import org.cloudburstmc.math.vector.Vector3f; import org.cloudburstmc.protocol.bedrock.data.entity.EntityDataTypes; import org.cloudburstmc.protocol.bedrock.data.entity.EntityFlag; -import org.cloudburstmc.protocol.bedrock.data.inventory.ItemData; import org.geysermc.geyser.entity.EntityDefinition; -import org.geysermc.geyser.registry.type.ItemMapping; +import org.geysermc.geyser.inventory.GeyserItemStack; +import org.geysermc.geyser.item.Items; import org.geysermc.geyser.session.GeyserSession; import org.geysermc.mcprotocollib.protocol.data.game.entity.metadata.type.BooleanEntityMetadata; +import org.geysermc.mcprotocollib.protocol.data.game.item.component.DataComponentTypes; import java.util.UUID; @@ -49,33 +50,32 @@ public class PillagerEntity extends AbstractIllagerEntity { } @Override - public void updateMainHand(GeyserSession session) { + public void updateMainHand() { updateCrossbow(); - super.updateMainHand(session); + super.updateMainHand(); } @Override - public void updateOffHand(GeyserSession session) { + public void updateOffHand() { updateCrossbow(); - super.updateOffHand(session); + super.updateOffHand(); } /** * Check for a crossbow in either the mainhand or offhand. If one exists, indicate that the pillager should be posing */ protected void updateCrossbow() { - ItemMapping crossbow = session.getItemMappings().getStoredItems().crossbow(); - ItemData activeCrossbow = null; - if (this.hand.getDefinition() == crossbow.getBedrockDefinition()) { - activeCrossbow = this.hand; - } else if (this.offhand.getDefinition() == crossbow.getBedrockDefinition()) { - activeCrossbow = this.offhand; + GeyserItemStack activeCrossbow = null; + if (getMainHandItem().is(Items.CROSSBOW)) { + activeCrossbow = getMainHandItem(); + } else if (getOffHandItem().is(Items.CROSSBOW)) { + activeCrossbow = getOffHandItem(); } if (activeCrossbow != null) { - if (activeCrossbow.getTag() != null && activeCrossbow.getTag().containsKey("chargedItem")) { + if (activeCrossbow.getComponent(DataComponentTypes.CHARGED_PROJECTILES) != null) { dirtyMetadata.put(EntityDataTypes.CHARGE_AMOUNT, Byte.MAX_VALUE); setFlag(EntityFlag.CHARGING, false); setFlag(EntityFlag.CHARGED, true); diff --git a/core/src/main/java/org/geysermc/geyser/entity/type/player/AvatarEntity.java b/core/src/main/java/org/geysermc/geyser/entity/type/player/AvatarEntity.java new file mode 100644 index 000000000..f8bb7f658 --- /dev/null +++ b/core/src/main/java/org/geysermc/geyser/entity/type/player/AvatarEntity.java @@ -0,0 +1,361 @@ +/* + * Copyright (c) 2025 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.player; + +import lombok.Getter; +import lombok.Setter; +import net.kyori.adventure.text.Component; +import org.checkerframework.checker.nullness.qual.Nullable; +import org.cloudburstmc.math.vector.Vector3f; +import org.cloudburstmc.math.vector.Vector3i; +import org.cloudburstmc.protocol.bedrock.data.Ability; +import org.cloudburstmc.protocol.bedrock.data.AbilityLayer; +import org.cloudburstmc.protocol.bedrock.data.GameType; +import org.cloudburstmc.protocol.bedrock.data.PlayerPermission; +import org.cloudburstmc.protocol.bedrock.data.command.CommandPermission; +import org.cloudburstmc.protocol.bedrock.data.entity.EntityDataTypes; +import org.cloudburstmc.protocol.bedrock.data.entity.EntityFlag; +import org.cloudburstmc.protocol.bedrock.packet.AddPlayerPacket; +import org.cloudburstmc.protocol.bedrock.packet.MovePlayerPacket; +import org.geysermc.geyser.entity.EntityDefinition; +import org.geysermc.geyser.entity.type.LivingEntity; +import org.geysermc.geyser.level.block.Blocks; +import org.geysermc.geyser.session.GeyserSession; +import org.geysermc.geyser.skin.SkinManager; +import org.geysermc.geyser.skin.SkullSkinManager; +import org.geysermc.geyser.translator.item.ItemTranslator; +import org.geysermc.geyser.util.ChunkUtils; +import org.geysermc.mcprotocollib.auth.GameProfile; +import org.geysermc.mcprotocollib.protocol.data.game.entity.metadata.EntityMetadata; +import org.geysermc.mcprotocollib.protocol.data.game.entity.metadata.Pose; +import org.geysermc.mcprotocollib.protocol.data.game.entity.metadata.type.BooleanEntityMetadata; +import org.geysermc.mcprotocollib.protocol.data.game.entity.metadata.type.ByteEntityMetadata; +import org.geysermc.mcprotocollib.protocol.data.game.entity.player.ResolvableProfile; + +import java.util.Collections; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import java.util.UUID; + +public class AvatarEntity extends LivingEntity { + public static final float SNEAKING_POSE_HEIGHT = 1.5f; + protected static final List BASE_ABILITY_LAYER; + + @Getter + protected String username; + + /** + * The textures property from the GameProfile. + */ + @Getter + @Setter + @Nullable + protected String texturesProperty; // TODO no direct setter, rather one that updates the skin + + private String cachedScore = ""; + private boolean scoreVisible = true; + + @Getter + @Nullable + private Vector3i bedPosition; + + static { + AbilityLayer abilityLayer = new AbilityLayer(); + abilityLayer.setLayerType(AbilityLayer.Type.BASE); + Ability[] abilities = Ability.values(); + Collections.addAll(abilityLayer.getAbilitiesSet(), abilities); // Apparently all the abilities you're working with + Collections.addAll(abilityLayer.getAbilityValues(), abilities); // Apparently all the abilities the player can work with + BASE_ABILITY_LAYER = Collections.singletonList(abilityLayer); + } + + public AvatarEntity(GeyserSession session, int entityId, long geyserId, UUID uuid, EntityDefinition definition, + Vector3f position, Vector3f motion, float yaw, float pitch, float headYaw, String username) { + super(session, entityId, geyserId, uuid, definition, position, motion, yaw, pitch, headYaw); + this.username = username; + this.nametag = username; + } + + @Override + protected void initializeMetadata() { + super.initializeMetadata(); + // For the OptionalPack, set all bits as invisible by default as this matches Java Edition behavior + dirtyMetadata.put(EntityDataTypes.MARK_VARIANT, 0xff); + } + + @Override + public void spawnEntity() { + AddPlayerPacket addPlayerPacket = new AddPlayerPacket(); + addPlayerPacket.setUuid(uuid); + addPlayerPacket.setUsername(username); + addPlayerPacket.setRuntimeEntityId(geyserId); + addPlayerPacket.setUniqueEntityId(geyserId); + addPlayerPacket.setPosition(position.sub(0, definition.offset(), 0)); + addPlayerPacket.setRotation(getBedrockRotation()); + addPlayerPacket.setMotion(motion); + addPlayerPacket.setHand(ItemTranslator.translateToBedrock(session, getMainHandItem())); + addPlayerPacket.getAdventureSettings().setCommandPermission(CommandPermission.ANY); + addPlayerPacket.getAdventureSettings().setPlayerPermission(PlayerPermission.MEMBER); + addPlayerPacket.setDeviceId(""); + addPlayerPacket.setPlatformChatId(""); + addPlayerPacket.setGameType(GameType.SURVIVAL); //TODO + addPlayerPacket.setAbilityLayers(BASE_ABILITY_LAYER); // Recommended to be added since 1.19.10, but only needed here for permissions viewing + addPlayerPacket.getMetadata().putFlags(flags); + dirtyMetadata.apply(addPlayerPacket.getMetadata()); + + setFlagsDirty(false); + + valid = true; + session.sendUpstreamPacket(addPlayerPacket); + } + + @Override + public void moveAbsolute(Vector3f position, float yaw, float pitch, float headYaw, boolean isOnGround, boolean teleported) { + setPosition(position); + setYaw(yaw); + setPitch(pitch); + setHeadYaw(headYaw); + + setOnGround(isOnGround); + + MovePlayerPacket movePlayerPacket = new MovePlayerPacket(); + movePlayerPacket.setRuntimeEntityId(geyserId); + movePlayerPacket.setPosition(this.position); + movePlayerPacket.setRotation(getBedrockRotation()); + movePlayerPacket.setOnGround(isOnGround); + movePlayerPacket.setMode(this instanceof SessionPlayerEntity || teleported ? MovePlayerPacket.Mode.TELEPORT : MovePlayerPacket.Mode.NORMAL); + if (movePlayerPacket.getMode() == MovePlayerPacket.Mode.TELEPORT) { + movePlayerPacket.setTeleportationCause(MovePlayerPacket.TeleportationCause.BEHAVIOR); + } + + session.sendUpstreamPacket(movePlayerPacket); + + if (teleported && !(this instanceof SessionPlayerEntity)) { + // As of 1.19.0, head yaw seems to be ignored during teleports, also don't do this for session player. + updateHeadLookRotation(headYaw); + } + } + + @Override + public void moveRelative(double relX, double relY, double relZ, float yaw, float pitch, float headYaw, boolean isOnGround) { + setYaw(yaw); + setPitch(pitch); + setHeadYaw(headYaw); + this.position = Vector3f.from(position.getX() + relX, position.getY() + relY, position.getZ() + relZ); + + setOnGround(isOnGround); + + MovePlayerPacket movePlayerPacket = new MovePlayerPacket(); + movePlayerPacket.setRuntimeEntityId(geyserId); + movePlayerPacket.setPosition(position); + movePlayerPacket.setRotation(getBedrockRotation()); + movePlayerPacket.setOnGround(isOnGround); + movePlayerPacket.setMode(this instanceof SessionPlayerEntity ? MovePlayerPacket.Mode.TELEPORT : MovePlayerPacket.Mode.NORMAL); + // If the player is moved while sleeping, we have to adjust their y, so it appears + // correctly on Bedrock. This fixes GSit's lay. + if (getFlag(EntityFlag.SLEEPING)) { + if (bedPosition != null && (bedPosition.getY() == 0 || bedPosition.distanceSquared(position.toInt()) > 4)) { + // Force the player movement by using a teleport + movePlayerPacket.setPosition(Vector3f.from(position.getX(), position.getY() - definition.offset() + 0.2f, position.getZ())); + movePlayerPacket.setMode(MovePlayerPacket.Mode.TELEPORT); + } + } + + if (movePlayerPacket.getMode() == MovePlayerPacket.Mode.TELEPORT) { + movePlayerPacket.setTeleportationCause(MovePlayerPacket.TeleportationCause.BEHAVIOR); + } + + session.sendUpstreamPacket(movePlayerPacket); + } + + @Override + public void setPosition(Vector3f position) { + if (this.bedPosition != null) { + // As of Bedrock 1.21.22 and Fabric 1.21.1 + // Messes with Bedrock if we send this to the client itself, though. + super.setPosition(position.up(0.2f)); + } else { + super.setPosition(position.add(0, definition.offset(), 0)); + } + } + + @Override + public @Nullable Vector3i setBedPosition(EntityMetadata, ?> entityMetadata) { + bedPosition = super.setBedPosition(entityMetadata); + if (bedPosition != null) { + // Required to sync position of entity to bed + // Fixes https://github.com/GeyserMC/Geyser/issues/3595 on vanilla 1.19.3 servers - did not happen on Paper + this.setPosition(bedPosition.toFloat()); + + // TODO evaluate if needed + int bed = session.getGeyser().getWorldManager().getBlockAt(session, bedPosition); + // Bed has to be updated, or else player is floating in the air + ChunkUtils.updateBlock(session, bed, bedPosition); + + // Indicate that the player should enter the sleep cycle + // Has to be a byte or it does not work + // (Bed position is what actually triggers sleep - "pose" is only optional) + dirtyMetadata.put(EntityDataTypes.PLAYER_FLAGS, (byte) 2); + } else { + // Player is no longer sleeping + dirtyMetadata.put(EntityDataTypes.PLAYER_FLAGS, (byte) 0); + return null; + } + return bedPosition; + } + + public void setSkin(ResolvableProfile profile, boolean cape, Runnable after) { + SkinManager.resolveProfile(profile).thenAccept(resolved -> setSkin(resolved, cape, after)); + } + + public void setSkin(GameProfile profile, boolean cape, Runnable after) { + GameProfile.Property textures = profile.getProperty("textures"); + if (textures != null) { + setSkin(textures.getValue(), cape, after); + } else { + setSkin((String) null, cape, after); + } + } + + public void setSkin(String texturesProperty, boolean cape, Runnable after) { + if (Objects.equals(texturesProperty, this.texturesProperty)) { + return; + } + + this.texturesProperty = texturesProperty; + if (cape) { + SkinManager.requestAndHandleSkinAndCape(this, session, skin -> after.run()); + } else { + SkullSkinManager.requestAndHandleSkin(this, session, skin -> after.run()); + } + } + + public void setSkinVisibility(ByteEntityMetadata entityMetadata) { + // OptionalPack usage for toggling skin bits + // In Java Edition, a bit being set means that part should be enabled + // However, to ensure that the pack still works on other servers, we invert the bit so all values by default + // are true (0). + dirtyMetadata.put(EntityDataTypes.MARK_VARIANT, ~entityMetadata.getPrimitiveValue() & 0xff); + } + + @Override + public String getDisplayName() { + return username; + } + + @Override + public void setDisplayName(EntityMetadata, ?> entityMetadata) { + // Doesn't do anything for players + if (!(this instanceof PlayerEntity)) { + super.setDisplayName(entityMetadata); + } + } + + @Override + public void setDisplayNameVisible(BooleanEntityMetadata entityMetadata) { + // Doesn't do anything for players + if (!(this instanceof PlayerEntity)) { + super.setDisplayNameVisible(entityMetadata); + } + } + + public void setBelowNameText(String text) { + if (text == null) { + text = ""; + } + + boolean changed = !Objects.equals(cachedScore, text); + cachedScore = text; + if (scoreVisible && changed) { + dirtyMetadata.put(EntityDataTypes.SCORE, text); + } + } + + @Override + protected void scoreVisibility(boolean show) { + boolean visibilityChanged = scoreVisible != show; + scoreVisible = show; + if (!visibilityChanged) { + return; + } + // if the player has no cachedScore, we never have to change the score. + // hide = set to "" (does nothing), show = change from "" (does nothing) + if (cachedScore.isEmpty()) { + return; + } + dirtyMetadata.put(EntityDataTypes.SCORE, show ? cachedScore : ""); + } + + @Override + public void setPose(Pose pose) { + super.setPose(pose); + setFlag(EntityFlag.SWIMMING, false); + setFlag(EntityFlag.CRAWLING, false); + + if (pose == Pose.SWIMMING) { + // This is just for, so we know if player is swimming or crawling. + // TODO test, changed from position (field) to position() (method), which adds offset + if (session.getGeyser().getWorldManager().blockAt(session, position.toInt()).is(Blocks.WATER)) { + setFlag(EntityFlag.SWIMMING, true); + } else { + setFlag(EntityFlag.CRAWLING, true); + // Look at https://github.com/GeyserMC/Geyser/issues/5316, we're fixing this by spoofing player pitch to 0. + updateRotation(this.yaw, 0, this.onGround); + } + } + } + + @Override + public void setPitch(float pitch) { + super.setPitch(getFlag(EntityFlag.CRAWLING) ? 0 : pitch); + } + + @Override + public void setDimensionsFromPose(Pose pose) { + float height; + float width; + switch (pose) { + case SNEAKING -> { + height = SNEAKING_POSE_HEIGHT; + width = definition.width(); + } + case FALL_FLYING, SPIN_ATTACK, SWIMMING -> { + height = 0.6f; + width = definition.width(); + } + case DYING -> { + height = 0.2f; + width = 0.2f; + } + default -> { + super.setDimensionsFromPose(pose); + return; + } + } + setBoundingBoxWidth(width); + setBoundingBoxHeight(height); + } +} diff --git a/core/src/main/java/org/geysermc/geyser/entity/type/player/MannequinEntity.java b/core/src/main/java/org/geysermc/geyser/entity/type/player/MannequinEntity.java new file mode 100644 index 000000000..c45221a1a --- /dev/null +++ b/core/src/main/java/org/geysermc/geyser/entity/type/player/MannequinEntity.java @@ -0,0 +1,56 @@ +/* + * Copyright (c) 2025 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.player; + +import net.kyori.adventure.text.Component; +import org.cloudburstmc.math.vector.Vector3f; +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.player.ResolvableProfile; + +import java.util.Optional; +import java.util.UUID; + +public class MannequinEntity extends AvatarEntity { + + public MannequinEntity(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 setProfile(EntityMetadata entityMetadata) { + setSkin(entityMetadata.getValue(), true, () -> {}); + } + + @Override + public String getDisplayName() { + return displayName; + } + + public void setDescription(EntityMetadata, ?> entityMetadata) { + // TODO + } +} 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 a8ca770aa..4e1eb2dcb 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 @@ -27,73 +27,28 @@ package org.geysermc.geyser.entity.type.player; import lombok.Getter; import lombok.Setter; -import net.kyori.adventure.text.Component; import org.checkerframework.checker.nullness.qual.Nullable; import org.cloudburstmc.math.vector.Vector3f; -import org.cloudburstmc.math.vector.Vector3i; -import org.cloudburstmc.nbt.NbtMap; -import org.cloudburstmc.protocol.bedrock.data.Ability; -import org.cloudburstmc.protocol.bedrock.data.AbilityLayer; -import org.cloudburstmc.protocol.bedrock.data.GameType; -import org.cloudburstmc.protocol.bedrock.data.PlayerPermission; -import org.cloudburstmc.protocol.bedrock.data.command.CommandPermission; import org.cloudburstmc.protocol.bedrock.data.entity.EntityDataTypes; -import org.cloudburstmc.protocol.bedrock.data.entity.EntityFlag; import org.cloudburstmc.protocol.bedrock.data.entity.EntityLinkData; -import org.cloudburstmc.protocol.bedrock.data.inventory.ItemData; -import org.cloudburstmc.protocol.bedrock.packet.AddPlayerPacket; -import org.cloudburstmc.protocol.bedrock.packet.MovePlayerPacket; import org.cloudburstmc.protocol.bedrock.packet.SetEntityLinkPacket; import org.cloudburstmc.protocol.bedrock.packet.UpdateAttributesPacket; import org.geysermc.geyser.api.entity.type.player.GeyserPlayerEntity; import org.geysermc.geyser.entity.EntityDefinitions; import org.geysermc.geyser.entity.attribute.GeyserAttributeType; import org.geysermc.geyser.entity.type.Entity; -import org.geysermc.geyser.entity.type.LivingEntity; import org.geysermc.geyser.entity.type.living.animal.tameable.ParrotEntity; -import org.geysermc.geyser.level.block.Blocks; import org.geysermc.geyser.session.GeyserSession; -import org.geysermc.geyser.util.ChunkUtils; import org.geysermc.mcprotocollib.protocol.data.game.entity.metadata.EntityMetadata; -import org.geysermc.mcprotocollib.protocol.data.game.entity.metadata.Pose; -import org.geysermc.mcprotocollib.protocol.data.game.entity.metadata.type.BooleanEntityMetadata; -import org.geysermc.mcprotocollib.protocol.data.game.entity.metadata.type.ByteEntityMetadata; import org.geysermc.mcprotocollib.protocol.data.game.entity.metadata.type.FloatEntityMetadata; import java.util.Collections; -import java.util.List; -import java.util.Objects; -import java.util.Optional; +import java.util.OptionalInt; import java.util.UUID; import java.util.concurrent.TimeUnit; @Getter @Setter -public class PlayerEntity extends LivingEntity implements GeyserPlayerEntity { - public static final float SNEAKING_POSE_HEIGHT = 1.5f; - protected static final List BASE_ABILITY_LAYER; - - static { - AbilityLayer abilityLayer = new AbilityLayer(); - abilityLayer.setLayerType(AbilityLayer.Type.BASE); - Ability[] abilities = Ability.values(); - Collections.addAll(abilityLayer.getAbilitiesSet(), abilities); // Apparently all the abilities you're working with - Collections.addAll(abilityLayer.getAbilityValues(), abilities); // Apparently all the abilities the player can work with - BASE_ABILITY_LAYER = Collections.singletonList(abilityLayer); - } - - private String username; - - private String cachedScore = ""; - private boolean scoreVisible = true; - - /** - * The textures property from the GameProfile. - */ - @Nullable - private String texturesProperty; - - @Nullable - private Vector3i bedPosition; +public class PlayerEntity extends AvatarEntity implements GeyserPlayerEntity { /** * Saves the parrot currently on the player's left shoulder; otherwise null @@ -111,48 +66,17 @@ public class PlayerEntity extends LivingEntity implements GeyserPlayerEntity { public PlayerEntity(GeyserSession session, int entityId, long geyserId, UUID uuid, Vector3f position, Vector3f motion, float yaw, float pitch, float headYaw, String username, @Nullable String texturesProperty) { - super(session, entityId, geyserId, uuid, EntityDefinitions.PLAYER, position, motion, yaw, pitch, headYaw); - - this.username = username; - this.nametag = username; + super(session, entityId, geyserId, uuid, EntityDefinitions.PLAYER, position, motion, yaw, pitch, headYaw, username); this.texturesProperty = texturesProperty; } @Override protected void initializeMetadata() { super.initializeMetadata(); - // For the OptionalPack, set all bits as invisible by default as this matches Java Edition behavior - dirtyMetadata.put(EntityDataTypes.MARK_VARIANT, 0xff); - } - - @Override - public void spawnEntity() { - AddPlayerPacket addPlayerPacket = new AddPlayerPacket(); - addPlayerPacket.setUuid(uuid); - addPlayerPacket.setUsername(username); - addPlayerPacket.setRuntimeEntityId(geyserId); - addPlayerPacket.setUniqueEntityId(geyserId); - addPlayerPacket.setPosition(position.sub(0, definition.offset(), 0)); - addPlayerPacket.setRotation(getBedrockRotation()); - addPlayerPacket.setMotion(motion); - addPlayerPacket.setHand(hand); - addPlayerPacket.getAdventureSettings().setCommandPermission(CommandPermission.ANY); - addPlayerPacket.getAdventureSettings().setPlayerPermission(PlayerPermission.MEMBER); - addPlayerPacket.setDeviceId(""); - addPlayerPacket.setPlatformChatId(""); - addPlayerPacket.setGameType(GameType.SURVIVAL); //TODO - addPlayerPacket.setAbilityLayers(BASE_ABILITY_LAYER); // Recommended to be added since 1.19.10, but only needed here for permissions viewing - addPlayerPacket.getMetadata().putFlags(flags); // Since 1.20.60, the nametag does not show properly if this is not set :/ // The nametag does disappear properly when the player is invisible though. dirtyMetadata.put(EntityDataTypes.NAMETAG_ALWAYS_SHOW, (byte) 1); - dirtyMetadata.apply(addPlayerPacket.getMetadata()); - - setFlagsDirty(false); - - valid = true; - session.sendUpstreamPacket(addPlayerPacket); } @Override @@ -164,12 +88,6 @@ public class PlayerEntity extends LivingEntity implements GeyserPlayerEntity { this.nametag = username; this.equipment.clear(); - this.hand = ItemData.AIR; - this.offhand = ItemData.AIR; - this.boots = ItemData.AIR; - this.leggings = ItemData.AIR; - this.chestplate = ItemData.AIR; - this.helmet = ItemData.AIR; } public void resetMetadata() { @@ -179,8 +97,8 @@ public class PlayerEntity extends LivingEntity implements GeyserPlayerEntity { this.initializeMetadata(); // Explicitly reset all metadata not handled by initializeMetadata - setParrot(null, true); - setParrot(null, false); + setParrot(OptionalInt.empty(), true); + setParrot(OptionalInt.empty(), false); } public void sendPlayer() { @@ -192,30 +110,7 @@ public class PlayerEntity extends LivingEntity implements GeyserPlayerEntity { @Override public void moveAbsolute(Vector3f position, float yaw, float pitch, float headYaw, boolean isOnGround, boolean teleported) { - setPosition(position); - setYaw(yaw); - setPitch(pitch); - setHeadYaw(headYaw); - - setOnGround(isOnGround); - - MovePlayerPacket movePlayerPacket = new MovePlayerPacket(); - movePlayerPacket.setRuntimeEntityId(geyserId); - movePlayerPacket.setPosition(this.position); - movePlayerPacket.setRotation(getBedrockRotation()); - movePlayerPacket.setOnGround(isOnGround); - movePlayerPacket.setMode(this instanceof SessionPlayerEntity || teleported ? MovePlayerPacket.Mode.TELEPORT : MovePlayerPacket.Mode.NORMAL); - if (movePlayerPacket.getMode() == MovePlayerPacket.Mode.TELEPORT) { - movePlayerPacket.setTeleportationCause(MovePlayerPacket.TeleportationCause.BEHAVIOR); - } - - session.sendUpstreamPacket(movePlayerPacket); - - if (teleported && !(this instanceof SessionPlayerEntity)) { - // As of 1.19.0, head yaw seems to be ignored during teleports, also don't do this for session player. - updateHeadLookRotation(headYaw); - } - + super.moveAbsolute(position, yaw, pitch, headYaw, isOnGround, teleported); if (leftParrot != null) { leftParrot.moveAbsolute(position, yaw, pitch, headYaw, true, teleported); } @@ -226,34 +121,7 @@ public class PlayerEntity extends LivingEntity implements GeyserPlayerEntity { @Override public void moveRelative(double relX, double relY, double relZ, float yaw, float pitch, float headYaw, boolean isOnGround) { - setYaw(yaw); - setPitch(pitch); - setHeadYaw(headYaw); - this.position = Vector3f.from(position.getX() + relX, position.getY() + relY, position.getZ() + relZ); - - setOnGround(isOnGround); - - MovePlayerPacket movePlayerPacket = new MovePlayerPacket(); - movePlayerPacket.setRuntimeEntityId(geyserId); - movePlayerPacket.setPosition(position); - movePlayerPacket.setRotation(getBedrockRotation()); - movePlayerPacket.setOnGround(isOnGround); - movePlayerPacket.setMode(this instanceof SessionPlayerEntity ? MovePlayerPacket.Mode.TELEPORT : MovePlayerPacket.Mode.NORMAL); - // If the player is moved while sleeping, we have to adjust their y, so it appears - // correctly on Bedrock. This fixes GSit's lay. - if (getFlag(EntityFlag.SLEEPING)) { - if (bedPosition != null && (bedPosition.getY() == 0 || bedPosition.distanceSquared(position.toInt()) > 4)) { - // Force the player movement by using a teleport - movePlayerPacket.setPosition(Vector3f.from(position.getX(), position.getY() - definition.offset() + 0.2f, position.getZ())); - movePlayerPacket.setMode(MovePlayerPacket.Mode.TELEPORT); - } - } - - if (movePlayerPacket.getMode() == MovePlayerPacket.Mode.TELEPORT) { - movePlayerPacket.setTeleportationCause(MovePlayerPacket.TeleportationCause.BEHAVIOR); - } - - session.sendUpstreamPacket(movePlayerPacket); + super.moveRelative(relX, relY, relZ, yaw, pitch, headYaw, isOnGround); if (leftParrot != null) { leftParrot.moveRelative(relX, relY, relZ, yaw, pitch, headYaw, true); } @@ -262,42 +130,6 @@ public class PlayerEntity extends LivingEntity implements GeyserPlayerEntity { } } - @Override - public void setPosition(Vector3f position) { - if (this.bedPosition != null) { - // As of Bedrock 1.21.22 and Fabric 1.21.1 - // Messes with Bedrock if we send this to the client itself, though. - super.setPosition(position.up(0.2f)); - } else { - super.setPosition(position.add(0, definition.offset(), 0)); - } - } - - @Override - public @Nullable Vector3i setBedPosition(EntityMetadata, ?> entityMetadata) { - bedPosition = super.setBedPosition(entityMetadata); - if (bedPosition != null) { - // Required to sync position of entity to bed - // Fixes https://github.com/GeyserMC/Geyser/issues/3595 on vanilla 1.19.3 servers - did not happen on Paper - this.setPosition(bedPosition.toFloat()); - - // TODO evaluate if needed - int bed = session.getGeyser().getWorldManager().getBlockAt(session, bedPosition); - // Bed has to be updated, or else player is floating in the air - ChunkUtils.updateBlock(session, bed, bedPosition); - - // Indicate that the player should enter the sleep cycle - // Has to be a byte or it does not work - // (Bed position is what actually triggers sleep - "pose" is only optional) - dirtyMetadata.put(EntityDataTypes.PLAYER_FLAGS, (byte) 2); - } else { - // Player is no longer sleeping - dirtyMetadata.put(EntityDataTypes.PLAYER_FLAGS, (byte) 0); - return null; - } - return bedPosition; - } - public void setAbsorptionHearts(FloatEntityMetadata entityMetadata) { // Extra hearts - is not metadata but an attribute on Bedrock UpdateAttributesPacket attributesPacket = new UpdateAttributesPacket(); @@ -308,19 +140,11 @@ public class PlayerEntity extends LivingEntity implements GeyserPlayerEntity { session.sendUpstreamPacket(attributesPacket); } - public void setSkinVisibility(ByteEntityMetadata entityMetadata) { - // OptionalPack usage for toggling skin bits - // In Java Edition, a bit being set means that part should be enabled - // However, to ensure that the pack still works on other servers, we invert the bit so all values by default - // are true (0). - dirtyMetadata.put(EntityDataTypes.MARK_VARIANT, ~entityMetadata.getPrimitiveValue() & 0xff); - } - - public void setLeftParrot(EntityMetadata entityMetadata) { + public void setLeftParrot(EntityMetadata entityMetadata) { setParrot(entityMetadata.getValue(), true); } - public void setRightParrot(EntityMetadata entityMetadata) { + public void setRightParrot(EntityMetadata entityMetadata) { setParrot(entityMetadata.getValue(), false); } @@ -328,17 +152,17 @@ public class PlayerEntity extends LivingEntity implements GeyserPlayerEntity { * Sets the parrot occupying the shoulder. Bedrock Edition requires a full entity whereas Java Edition just * spawns it from the NBT data provided */ - protected void setParrot(NbtMap tag, boolean isLeft) { - if (tag != null && !tag.isEmpty()) { + protected void setParrot(OptionalInt variant, boolean isLeft) { + if (variant.isPresent()) { if ((isLeft && leftParrot != null) || (!isLeft && rightParrot != null)) { // No need to update a parrot's data when it already exists return; } - // The parrot is a separate entity in Bedrock, but part of the player entity in Java //TODO is a UUID provided in NBT? + // The parrot is a separate entity in Bedrock, but part of the player entity in Java ParrotEntity parrot = new ParrotEntity(session, 0, session.getEntityCache().getNextEntityId().incrementAndGet(), null, EntityDefinitions.PARROT, position, motion, getYaw(), getPitch(), getHeadYaw()); parrot.spawnEntity(); - parrot.getDirtyMetadata().put(EntityDataTypes.VARIANT, (Integer) tag.get("Variant")); + parrot.getDirtyMetadata().put(EntityDataTypes.VARIANT, variant.getAsInt()); // Different position whether the parrot is left or right float offset = isLeft ? 0.4f : -0.4f; parrot.getDirtyMetadata().put(EntityDataTypes.SEAT_OFFSET, Vector3f.from(offset, -0.22, -0.1)); @@ -368,21 +192,12 @@ public class PlayerEntity extends LivingEntity implements GeyserPlayerEntity { } } - @Override - public String getDisplayName() { - return username; - } - - @Override - public void setDisplayName(EntityMetadata, ?> entityMetadata) { - // Doesn't do anything for players - } - @Override public String teamIdentifier() { return username; } + // TODO test mannequins @Override protected void setNametag(@Nullable String nametag, boolean fromDisplayName) { // when fromDisplayName, LivingEntity will call scoreboard code. After that @@ -394,85 +209,8 @@ public class PlayerEntity extends LivingEntity implements GeyserPlayerEntity { super.setNametag(nametag, fromDisplayName); } - @Override - public void setDisplayNameVisible(BooleanEntityMetadata entityMetadata) { - // Doesn't do anything for players - } - - public void setBelowNameText(String text) { - if (text == null) { - text = ""; - } - - boolean changed = !Objects.equals(cachedScore, text); - cachedScore = text; - if (isScoreVisible() && changed) { - dirtyMetadata.put(EntityDataTypes.SCORE, text); - } - } - - @Override - protected void scoreVisibility(boolean show) { - boolean visibilityChanged = scoreVisible != show; - scoreVisible = show; - if (!visibilityChanged) { - return; - } - // if the player has no cachedScore, we never have to change the score. - // hide = set to "" (does nothing), show = change from "" (does nothing) - if (cachedScore.isEmpty()) { - return; - } - dirtyMetadata.put(EntityDataTypes.SCORE, show ? cachedScore : ""); - } - - @Override - public void setPose(Pose pose) { - super.setPose(pose); - setFlag(EntityFlag.SWIMMING, false); - setFlag(EntityFlag.CRAWLING, false); - - if (pose == Pose.SWIMMING) { - // This is just for, so we know if player is swimming or crawling. - if (session.getGeyser().getWorldManager().blockAt(session, this.position().toInt()).is(Blocks.WATER)) { - setFlag(EntityFlag.SWIMMING, true); - } else { - setFlag(EntityFlag.CRAWLING, true); - // Look at https://github.com/GeyserMC/Geyser/issues/5316, we're fixing this by spoofing player pitch to 0. - updateRotation(this.yaw, 0, this.onGround); - } - } - } - - @Override - public void setPitch(float pitch) { - super.setPitch(getFlag(EntityFlag.CRAWLING) ? 0 : pitch); - } - - @Override - public void setDimensionsFromPose(Pose pose) { - float height; - float width; - switch (pose) { - case SNEAKING -> { - height = SNEAKING_POSE_HEIGHT; - width = definition.width(); - } - case FALL_FLYING, SPIN_ATTACK, SWIMMING -> { - height = 0.6f; - width = definition.width(); - } - case DYING -> { - height = 0.2f; - width = 0.2f; - } - default -> { - super.setDimensionsFromPose(pose); - return; - } - } - setBoundingBoxWidth(width); - setBoundingBoxHeight(height); + public void setUsername(String username) { + this.username = username; } /** 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 c898bb645..a60dd0b78 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 @@ -42,6 +42,7 @@ import org.geysermc.geyser.entity.EntityDefinitions; import org.geysermc.geyser.entity.attribute.GeyserAttributeType; import org.geysermc.geyser.entity.type.BoatEntity; import org.geysermc.geyser.entity.type.Entity; +import org.geysermc.geyser.entity.type.LivingEntity; import org.geysermc.geyser.inventory.GeyserItemStack; import org.geysermc.geyser.item.Items; import org.geysermc.geyser.level.block.Blocks; @@ -79,11 +80,19 @@ public class SessionPlayerEntity extends PlayerEntity { */ @Getter protected final Map attributes = new Object2ObjectOpenHashMap<>(); + /** - * Java-only attribute + * Java-only attributes */ @Getter private double blockInteractionRange = GeyserAttributeType.BLOCK_INTERACTION_RANGE.getDefaultValue(); + @Getter + private double miningEfficiency = GeyserAttributeType.MINING_EFFICIENCY.getDefaultValue(); + @Getter + private double blockBreakSpeed = GeyserAttributeType.BLOCK_BREAK_SPEED.getDefaultValue(); + @Getter + private double submergedMiningSpeed = GeyserAttributeType.SUBMERGED_MINING_SPEED.getDefaultValue(); + /** * Used in PlayerInputTranslator for movement checks. */ @@ -313,20 +322,35 @@ public class SessionPlayerEntity extends PlayerEntity { protected boolean hasShield(boolean offhand) { // Must be overridden to point to the player's inventory cache if (offhand) { - return session.getPlayerInventory().getOffhand().asItem() == Items.SHIELD; + return session.getPlayerInventory().getOffhand().is(Items.SHIELD); } else { - return session.getPlayerInventory().getItemInHand().asItem() == Items.SHIELD; + return session.getPlayerInventory().getItemInHand().is(Items.SHIELD); } } @Override protected void updateAttribute(Attribute javaAttribute, List newAttributes) { - if (javaAttribute.getType() == AttributeType.Builtin.ATTACK_SPEED) { - session.setAttackSpeed(AttributeUtils.calculateValue(javaAttribute)); - } else if (javaAttribute.getType() == AttributeType.Builtin.BLOCK_INTERACTION_RANGE) { - this.blockInteractionRange = AttributeUtils.calculateValue(javaAttribute); - } else { - super.updateAttribute(javaAttribute, newAttributes); + if (javaAttribute.getType() instanceof AttributeType.Builtin type) { + switch (type) { + case ATTACK_SPEED -> { + session.setAttackSpeed(AttributeUtils.calculateValue(javaAttribute)); + } + case BLOCK_INTERACTION_RANGE -> { + this.blockInteractionRange = AttributeUtils.calculateValue(javaAttribute); + } + case MINING_EFFICIENCY -> { + this.miningEfficiency = AttributeUtils.calculateValue(javaAttribute); + } + case BLOCK_BREAK_SPEED -> { + this.blockBreakSpeed = AttributeUtils.calculateValue(javaAttribute); + } + case SUBMERGED_MINING_SPEED -> { + this.submergedMiningSpeed = AttributeUtils.calculateValue(javaAttribute); + } + default -> { + super.updateAttribute(javaAttribute, newAttributes); + } + } } } @@ -337,6 +361,10 @@ public class SessionPlayerEntity extends PlayerEntity { return attributeData; } + /** + * This will ONLY include attributes that have a Bedrock equivalent!!! + * see {@link LivingEntity#updateAttribute(Attribute, List)} + */ public float attributeOrDefault(GeyserAttributeType type) { var attribute = this.attributes.get(type); if (attribute == null) { @@ -369,6 +397,17 @@ public class SessionPlayerEntity extends PlayerEntity { super.setAbsorptionHearts(entityMetadata); } + @Override + public void setLivingEntityFlags(ByteEntityMetadata entityMetadata) { + super.setLivingEntityFlags(entityMetadata); + + // Forcefully update flags since we're not tracking thing like using item properly. + // For eg: when player start using item client-sided (and the USING_ITEM flag is false on geyser side) + // If the server disagree with the player using item state, it will send a metadata set USING_ITEM flag to false + // But since it never got set to true, nothing changed, causing the client to not receive the USING_ITEM flag they're supposed to. + this.forceFlagUpdate(); + } + @Override public void resetMetadata() { super.resetMetadata(); @@ -459,7 +498,7 @@ public class SessionPlayerEntity extends PlayerEntity { } Vector3i pos = getPosition().down(EntityDefinitions.PLAYER.offset()).toInt(); BlockState state = session.getGeyser().getWorldManager().blockAt(session, pos); - if (session.getTagCache().is(BlockTag.CLIMBABLE, state.block())) { + if (state.block().is(session, BlockTag.CLIMBABLE)) { return true; } @@ -500,7 +539,7 @@ public class SessionPlayerEntity extends PlayerEntity { } // Bedrock will NOT allow flight when not wearing an elytra; even if it doesn't have a glider component - if (entry.getKey() == EquipmentSlot.CHESTPLATE && !entry.getValue().asItem().equals(Items.ELYTRA)) { + if (entry.getKey() == EquipmentSlot.CHESTPLATE && !entry.getValue().is(Items.ELYTRA)) { return false; } } diff --git a/core/src/main/java/org/geysermc/geyser/entity/type/player/SkullPlayerEntity.java b/core/src/main/java/org/geysermc/geyser/entity/type/player/SkullPlayerEntity.java index 4c8d1d20b..2819d9486 100644 --- a/core/src/main/java/org/geysermc/geyser/entity/type/player/SkullPlayerEntity.java +++ b/core/src/main/java/org/geysermc/geyser/entity/type/player/SkullPlayerEntity.java @@ -34,6 +34,7 @@ import org.cloudburstmc.protocol.bedrock.data.command.CommandPermission; import org.cloudburstmc.protocol.bedrock.data.entity.EntityDataTypes; import org.cloudburstmc.protocol.bedrock.data.entity.EntityFlag; import org.cloudburstmc.protocol.bedrock.packet.AddPlayerPacket; +import org.geysermc.geyser.entity.EntityDefinitions; import org.geysermc.geyser.level.block.property.Properties; import org.geysermc.geyser.level.block.type.BlockState; import org.geysermc.geyser.level.block.type.WallSkullBlock; @@ -41,6 +42,7 @@ import org.geysermc.geyser.level.physics.Direction; import org.geysermc.geyser.session.GeyserSession; import org.geysermc.geyser.session.cache.SkullCache; import org.geysermc.geyser.skin.SkullSkinManager; +import org.geysermc.geyser.translator.item.ItemTranslator; import java.util.Objects; import java.util.UUID; @@ -50,7 +52,7 @@ import java.util.concurrent.TimeUnit; * A wrapper to handle skulls more effectively - skulls have to be treated as entities since there are no * custom player skulls in Bedrock. */ -public class SkullPlayerEntity extends PlayerEntity { +public class SkullPlayerEntity extends AvatarEntity { @Getter private UUID skullUUID; @@ -59,7 +61,7 @@ public class SkullPlayerEntity extends PlayerEntity { private Vector3i skullPosition; public SkullPlayerEntity(GeyserSession session, long geyserId) { - super(session, 0, geyserId, UUID.randomUUID(), Vector3f.ZERO, Vector3f.ZERO, 0, 0, 0, "", null); + super(session, 0, geyserId, UUID.randomUUID(), EntityDefinitions.PLAYER, Vector3f.ZERO, Vector3f.ZERO, 0, 0, 0, ""); } @Override @@ -73,51 +75,20 @@ public class SkullPlayerEntity extends PlayerEntity { setFlag(EntityFlag.INVISIBLE, true); // Until the skin is loaded } - /** - * Overwritten so each entity doesn't check for a linked entity - */ - @Override - public void spawnEntity() { - AddPlayerPacket addPlayerPacket = new AddPlayerPacket(); - addPlayerPacket.setUuid(getUuid()); - addPlayerPacket.setUsername(getUsername()); - addPlayerPacket.setRuntimeEntityId(geyserId); - addPlayerPacket.setUniqueEntityId(geyserId); - addPlayerPacket.setPosition(position.sub(0, definition.offset(), 0)); - addPlayerPacket.setRotation(getBedrockRotation()); - addPlayerPacket.setMotion(motion); - addPlayerPacket.setHand(hand); - addPlayerPacket.getAdventureSettings().setCommandPermission(CommandPermission.ANY); - addPlayerPacket.getAdventureSettings().setPlayerPermission(PlayerPermission.MEMBER); - addPlayerPacket.setDeviceId(""); - addPlayerPacket.setPlatformChatId(""); - addPlayerPacket.setGameType(GameType.SURVIVAL); - addPlayerPacket.setAbilityLayers(BASE_ABILITY_LAYER); - addPlayerPacket.getMetadata().putFlags(flags); - dirtyMetadata.apply(addPlayerPacket.getMetadata()); - - setFlagsDirty(false); - - valid = true; - session.sendUpstreamPacket(addPlayerPacket); - } - public void updateSkull(SkullCache.Skull skull) { skullPosition = skull.getPosition(); - if (!Objects.equals(skull.getTexturesProperty(), getTexturesProperty()) || !Objects.equals(skullUUID, skull.getUuid())) { + if (!Objects.equals(skull.getTexturesProperty(), texturesProperty) || !Objects.equals(skullUUID, skull.getUuid())) { // Make skull invisible as we change skins setFlag(EntityFlag.INVISIBLE, true); updateBedrockMetadata(); skullUUID = skull.getUuid(); - setTexturesProperty(skull.getTexturesProperty()); - - SkullSkinManager.requestAndHandleSkin(this, session, (skin -> session.scheduleInEventLoop(() -> { + setSkin(skull.getTexturesProperty(), false, () -> session.scheduleInEventLoop(() -> { // Delay to minimize split-second "player" pop-in setFlag(EntityFlag.INVISIBLE, false); updateBedrockMetadata(); - }, 250, TimeUnit.MILLISECONDS))); + }, 250, TimeUnit.MILLISECONDS)); } else { // Just a rotation/position change setFlag(EntityFlag.INVISIBLE, false); 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 44e922950..64796d052 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 @@ -683,7 +683,7 @@ public class VehicleComponent { } BlockState blockState = ctx.centerBlock(); - if (vehicle.getSession().getTagCache().is(BlockTag.CLIMBABLE, blockState.block())) { + if (blockState.block().is(vehicle.getSession(), BlockTag.CLIMBABLE)) { return true; } diff --git a/core/src/main/java/org/geysermc/geyser/extension/GeyserExtensionClassLoader.java b/core/src/main/java/org/geysermc/geyser/extension/GeyserExtensionClassLoader.java index dca11dfcd..a8f5c5584 100644 --- a/core/src/main/java/org/geysermc/geyser/extension/GeyserExtensionClassLoader.java +++ b/core/src/main/java/org/geysermc/geyser/extension/GeyserExtensionClassLoader.java @@ -40,11 +40,11 @@ import java.nio.file.Path; public class GeyserExtensionClassLoader extends URLClassLoader { private final GeyserExtensionLoader loader; - private final ExtensionDescription description; + private final GeyserExtensionDescription description; private final Object2ObjectMap> classes = new Object2ObjectOpenHashMap<>(); private boolean warnedForExternalClassAccess; - public GeyserExtensionClassLoader(GeyserExtensionLoader loader, ClassLoader parent, Path path, ExtensionDescription description) throws MalformedURLException { + public GeyserExtensionClassLoader(GeyserExtensionLoader loader, ClassLoader parent, Path path, GeyserExtensionDescription description) throws MalformedURLException { super(new URL[] { path.toUri().toURL() }, parent); this.loader = loader; this.description = description; @@ -89,7 +89,7 @@ public class GeyserExtensionClassLoader extends URLClassLoader { // If class is not found in current extension, check in the global class loader // This is used for classes that are not in the extension, but are in other extensions if (checkGlobal) { - if (!warnedForExternalClassAccess) { + if (!warnedForExternalClassAccess && this.description.dependencies().isEmpty()) { // Don't warn when the extension has dependencies, it is probably using it's dependencies! GeyserImpl.getInstance().getLogger().warning("Extension " + this.description.name() + " loads class " + name + " from an external source. " + "This can change at any time and break the extension, additionally to potentially causing unexpected behaviour!"); warnedForExternalClassAccess = true; diff --git a/core/src/main/java/org/geysermc/geyser/extension/GeyserExtensionDescription.java b/core/src/main/java/org/geysermc/geyser/extension/GeyserExtensionDescription.java index a84f12813..702ab0f68 100644 --- a/core/src/main/java/org/geysermc/geyser/extension/GeyserExtensionDescription.java +++ b/core/src/main/java/org/geysermc/geyser/extension/GeyserExtensionDescription.java @@ -47,7 +47,8 @@ public record GeyserExtensionDescription(@NonNull String id, int majorApiVersion, int minorApiVersion, @NonNull String version, - @NonNull List authors) implements ExtensionDescription { + @NonNull List authors, + @NonNull Map dependencies) implements ExtensionDescription { private static final Yaml YAML = new Yaml(new CustomClassLoaderConstructor(Source.class.getClassLoader(), new LoaderOptions())); @@ -94,7 +95,12 @@ public record GeyserExtensionDescription(@NonNull String id, authors.addAll(source.authors); } - return new GeyserExtensionDescription(id, name, main, humanApi, majorApi, minorApi, version, authors); + Map dependencies = new LinkedHashMap<>(); + if (source.dependencies != null) { + dependencies.putAll(source.dependencies); + } + + return new GeyserExtensionDescription(id, name, main, humanApi, majorApi, minorApi, version, authors, dependencies); } @NonNull @@ -116,5 +122,17 @@ public record GeyserExtensionDescription(@NonNull String id, String version; String author; List authors; + Map dependencies; + } + + @Getter + @Setter + public static class Dependency { + boolean required = true; // Defaults to true + LoadOrder load = LoadOrder.BEFORE; // Defaults to ensure the dependency loads before this extension + } + + public enum LoadOrder { + BEFORE, AFTER } } diff --git a/core/src/main/java/org/geysermc/geyser/extension/GeyserExtensionLoader.java b/core/src/main/java/org/geysermc/geyser/extension/GeyserExtensionLoader.java index 10cbcf556..2be6d2f8f 100644 --- a/core/src/main/java/org/geysermc/geyser/extension/GeyserExtensionLoader.java +++ b/core/src/main/java/org/geysermc/geyser/extension/GeyserExtensionLoader.java @@ -54,16 +54,21 @@ import java.nio.file.NoSuchFileException; import java.nio.file.Path; import java.nio.file.StandardCopyOption; import java.util.ArrayList; +import java.util.Collections; import java.util.HashMap; +import java.util.HashSet; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; +import java.util.Set; +import java.util.concurrent.atomic.AtomicReference; import java.util.function.BiConsumer; +import java.util.function.Consumer; import java.util.regex.Pattern; @RequiredArgsConstructor public class GeyserExtensionLoader extends ExtensionLoader { - private static final Pattern[] EXTENSION_FILTERS = new Pattern[] { Pattern.compile("^.+\\.jar$") }; + private static final Pattern EXTENSION_FILTER = Pattern.compile("^.+\\.jar$"); private final Object2ObjectMap> classes = new Object2ObjectOpenHashMap<>(); private final Map classLoaders = new HashMap<>(); @@ -133,8 +138,8 @@ public class GeyserExtensionLoader extends ExtensionLoader { } } - public Pattern[] extensionFilters() { - return EXTENSION_FILTERS; + public Pattern extensionFilter() { + return EXTENSION_FILTER; } public Class classByName(final String name) throws ClassNotFoundException{ @@ -167,6 +172,8 @@ public class GeyserExtensionLoader extends ExtensionLoader { Map extensions = new LinkedHashMap<>(); Map loadedExtensions = new LinkedHashMap<>(); + Map descriptions = new LinkedHashMap<>(); + Map extensionPaths = new LinkedHashMap<>(); Path updateDirectory = extensionsDirectory.resolve("update"); if (Files.isDirectory(updateDirectory)) { @@ -195,10 +202,126 @@ public class GeyserExtensionLoader extends ExtensionLoader { }); } - // Step 3: Load the extensions + // Step 3: Order the extensions to allow dependencies to load in the correct order this.processExtensionsFolder(extensionsDirectory, (path, description) -> { - String name = description.name(); String id = description.id(); + descriptions.put(id, description); + extensionPaths.put(id, path); + + }, (path, e) -> { + logger.error(GeyserLocale.getLocaleStringLog("geyser.extensions.load.failed_with_name", path.getFileName(), path.toAbsolutePath()), e); + }); + + // The graph to back out loading order (Funny I just learnt these too) + Map> loadOrderGraph = new HashMap<>(); + + // Looks like the graph needs to be prepopulated otherwise issues happen + for (String id : descriptions.keySet()) { + loadOrderGraph.putIfAbsent(id, new ArrayList<>()); + } + + for (GeyserExtensionDescription description : descriptions.values()) { + for (Map.Entry dependency : description.dependencies().entrySet()) { + String from = null; + String to = null; // Java complains if this isn't initialised, but not from, so, both null. + + // Check if the extension is even loaded + if (!descriptions.containsKey(dependency.getKey())) { + if (dependency.getValue().isRequired()) { // Only disable the extension if this dependency is required + // The extension we are checking is missing 1 or more dependencies + logger.error( + GeyserLocale.getLocaleStringLog( + "geyser.extensions.load.failed_dependency_missing", + description.id(), + dependency.getKey() + ) + ); + + descriptions.remove(description.id()); // Prevents it from being loaded later + } + + continue; + } + + if ( + !(description.humanApiVersion() >= 2 && + description.majorApiVersion() >= 9 && + description.minorApiVersion() >= 0) + ) { + logger.error( + GeyserLocale.getLocaleStringLog( + "geyser.extensions.load.failed_cannot_use_dependencies", + description.id(), + description.apiVersion() + ) + ); + + descriptions.remove(description.id()); // Prevents it from being loaded later + + continue; + } + + // Determine which way they should go in the graph + switch (dependency.getValue().getLoad()) { + case BEFORE -> { + from = dependency.getKey(); + to = description.id(); + } + case AFTER -> { + from = description.id(); + to = dependency.getKey(); + } + } + + loadOrderGraph.get(from).add(to); + } + } + + Set visited = new HashSet<>(); + List visiting = new ArrayList<>(); + List loadOrder = new ArrayList<>(); + + AtomicReference> sortMethod = new AtomicReference<>(); // yay, lambdas. This doesn't feel to suited to be a method + sortMethod.set((node) -> { + if (visiting.contains(node)) { + logger.error( + GeyserLocale.getLocaleStringLog( + "geyser.extensions.load.failed_cyclical_dependencies", + node, + visiting.get(visiting.indexOf(node) - 1) + ) + ); + + visiting.remove(node); + return; + } + + if (visited.contains(node)) return; + + visiting.add(node); + for (String neighbor : loadOrderGraph.get(node)) { + sortMethod.get().accept(neighbor); + } + visiting.remove(node); + visited.add(node); + loadOrder.add(node); + }); + + for (String ext : descriptions.keySet()) { + if (!visited.contains(ext)) { + // Time to sort the graph to get a load order, this reveals any cycles we may have + sortMethod.get().accept(ext); + } + } + Collections.reverse(loadOrder); // This is inverted due to how the graph is created + + // Step 4: Load the extensions + for (String id : loadOrder) { + // Grab path and description found from before, since we want a custom load order now + Path path = extensionPaths.get(id); + GeyserExtensionDescription description = descriptions.get(id); + + String name = description.name(); if (extensions.containsKey(id) || extensionManager.extension(id) != null) { logger.warning(GeyserLocale.getLocaleStringLog("geyser.extensions.load.duplicate", name, path.toString())); return; @@ -222,20 +345,22 @@ public class GeyserExtensionLoader extends ExtensionLoader { } } - GeyserExtensionContainer container = this.loadExtension(path, description); - extensions.put(id, path); - loadedExtensions.put(id, container); - }, (path, e) -> { - logger.error(GeyserLocale.getLocaleStringLog("geyser.extensions.load.failed_with_name", path.getFileName(), path.toAbsolutePath()), e); - }); + try { + GeyserExtensionContainer container = this.loadExtension(path, description); + extensions.put(id, path); + loadedExtensions.put(id, container); + } catch (Throwable e) { + logger.error(GeyserLocale.getLocaleStringLog("geyser.extensions.load.failed_with_name", path.getFileName(), path.toAbsolutePath()), e); + } + } - // Step 4: Register the extensions + // Step 5: Register the extensions for (GeyserExtensionContainer container : loadedExtensions.values()) { this.extensionContainers.put(container.extension(), container); this.register(container.extension(), extensionManager); } } catch (IOException ex) { - ex.printStackTrace(); + logger.error("Unable to read extensions.", ex); } } @@ -249,17 +374,15 @@ public class GeyserExtensionLoader extends ExtensionLoader { */ private void processExtensionsFolder(Path directory, ThrowingBiConsumer accept, BiConsumer reject) throws IOException { List extensionPaths = Files.list(directory).toList(); - Pattern[] extensionFilters = this.extensionFilters(); + Pattern extensionFilter = this.extensionFilter(); extensionPaths.forEach(path -> { if (Files.isDirectory(path)) { return; } // Only look at files that meet the extension filter - for (Pattern filter : extensionFilters) { - if (!filter.matcher(path.getFileName().toString()).matches()) { - return; - } + if (!extensionFilter.matcher(path.getFileName().toString()).matches()) { + return; } try { diff --git a/core/src/main/java/org/geysermc/geyser/impl/IdentifierImpl.java b/core/src/main/java/org/geysermc/geyser/impl/IdentifierImpl.java new file mode 100644 index 000000000..ca0324665 --- /dev/null +++ b/core/src/main/java/org/geysermc/geyser/impl/IdentifierImpl.java @@ -0,0 +1,65 @@ +/* + * Copyright (c) 2025 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.impl; + +import net.kyori.adventure.key.Key; +import org.geysermc.geyser.api.util.Identifier; +import org.geysermc.geyser.util.MinecraftKey; + +import java.util.Objects; + +public record IdentifierImpl(Key identifier) implements Identifier { + + public static IdentifierImpl of(String namespace, String value) throws IllegalArgumentException { + Objects.requireNonNull(namespace, "namespace cannot be null!"); + Objects.requireNonNull(value, "value cannot be null!"); + try { + return new IdentifierImpl(MinecraftKey.key(namespace, value)); + } catch (Throwable e) { + throw new IllegalArgumentException(e.getMessage()); + } + } + + // FIXME using the identifier interface from the API breaks tests + public static IdentifierImpl of(String value) { + return of(Identifier.DEFAULT_NAMESPACE, value); + } + + @Override + public String namespace() { + return identifier.namespace(); + } + + @Override + public String path() { + return identifier.value(); + } + + @Override + public String toString() { + return identifier.toString(); + } +} 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 5f4ce6b45..0de4580aa 100644 --- a/core/src/main/java/org/geysermc/geyser/inventory/GeyserItemStack.java +++ b/core/src/main/java/org/geysermc/geyser/inventory/GeyserItemStack.java @@ -40,11 +40,14 @@ import org.geysermc.geyser.registry.Registries; import org.geysermc.geyser.registry.type.ItemMapping; import org.geysermc.geyser.session.GeyserSession; import org.geysermc.geyser.session.cache.BundleCache; +import org.geysermc.geyser.session.cache.registry.JavaRegistries; +import org.geysermc.geyser.session.cache.tags.Tag; import org.geysermc.geyser.translator.item.ItemTranslator; 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.DataComponentTypes; import org.geysermc.mcprotocollib.protocol.data.game.item.component.DataComponents; +import org.geysermc.mcprotocollib.protocol.data.game.item.component.HolderSet; import org.geysermc.mcprotocollib.protocol.data.game.recipe.display.slot.EmptySlotDisplay; import org.geysermc.mcprotocollib.protocol.data.game.recipe.display.slot.ItemSlotDisplay; import org.geysermc.mcprotocollib.protocol.data.game.recipe.display.slot.ItemStackSlotDisplay; @@ -115,6 +118,22 @@ public class GeyserItemStack { return isEmpty() ? 0 : amount; } + public boolean is(Item item) { + return javaId == item.javaId(); + } + + public boolean is(GeyserSession session, Tag tag) { + return session.getTagCache().is(tag, javaId); + } + + public boolean is(GeyserSession session, HolderSet set) { + return session.getTagCache().is(set, JavaRegistries.ITEM, javaId); + } + + public boolean isSameItem(GeyserItemStack other) { + return javaId == other.javaId; + } + /** * Returns all components of this item - base and additional components sent over the network. * These are NOT modifiable! To add components, use {@link #getOrCreateComponents()}. @@ -248,6 +267,10 @@ public class GeyserItemStack { return new ItemStackSlotDisplay(this.getItemStack()); } + public int getMaxStackSize() { + return getComponentElseGet(DataComponentTypes.MAX_STACK_SIZE, () -> 1); + } + public int getMaxDamage() { return getComponentElseGet(DataComponentTypes.MAX_DAMAGE, () -> 0); } @@ -266,6 +289,10 @@ public class GeyserItemStack { return getComponent(DataComponentTypes.MAX_DAMAGE) != null && getComponent(DataComponentTypes.UNBREAKABLE) == null && getComponent(DataComponentTypes.DAMAGE) != null; } + public boolean isDamaged() { + return isDamageable() && getDamage() > 0; + } + public Item asItem() { if (isEmpty()) { return Items.AIR; diff --git a/core/src/main/java/org/geysermc/geyser/inventory/Inventory.java b/core/src/main/java/org/geysermc/geyser/inventory/Inventory.java index 2d8b0e351..414ad2951 100644 --- a/core/src/main/java/org/geysermc/geyser/inventory/Inventory.java +++ b/core/src/main/java/org/geysermc/geyser/inventory/Inventory.java @@ -148,7 +148,7 @@ public abstract class Inventory { items[slot] = newItem; // Lodestone caching - if (newItem.asItem() == Items.COMPASS) { + if (newItem.is(Items.COMPASS)) { var tracker = newItem.getComponent(DataComponentTypes.LODESTONE_TRACKER); if (tracker != null) { session.getLodestoneCache().cacheInventoryItem(newItem, tracker); diff --git a/core/src/main/java/org/geysermc/geyser/inventory/PlayerInventory.java b/core/src/main/java/org/geysermc/geyser/inventory/PlayerInventory.java index afc9a57b2..6c34aa7d5 100644 --- a/core/src/main/java/org/geysermc/geyser/inventory/PlayerInventory.java +++ b/core/src/main/java/org/geysermc/geyser/inventory/PlayerInventory.java @@ -71,7 +71,7 @@ public class PlayerInventory extends Inventory { * @return If the player is holding the item in either hand */ public boolean isHolding(@NonNull Item item) { - return getItemInHand().asItem() == item || getOffhand().asItem() == item; + return getItemInHand().is(item) || getOffhand().is(item); } public GeyserItemStack getItemInHand(@NonNull Hand hand) { @@ -98,10 +98,6 @@ public class PlayerInventory extends Inventory { ); } - public boolean eitherHandMatchesItem(@NonNull Item item) { - return getItemInHand().asItem() == item || getItemInHand(Hand.OFF_HAND).asItem() == item; - } - public void setItemInHand(@NonNull GeyserItemStack item) { if (36 + heldItemSlot > this.size) { GeyserImpl.getInstance().getLogger().debug("Held item slot was larger than expected!"); @@ -110,6 +106,11 @@ public class PlayerInventory extends Inventory { items[36 + heldItemSlot] = item; } + @Override + public boolean shouldConfirmContainerClose() { + return false; + } + public GeyserItemStack getOffhand() { return items[45]; } diff --git a/core/src/main/java/org/geysermc/geyser/inventory/StonecutterContainer.java b/core/src/main/java/org/geysermc/geyser/inventory/StonecutterContainer.java index e9d884cdd..8a33db7d2 100644 --- a/core/src/main/java/org/geysermc/geyser/inventory/StonecutterContainer.java +++ b/core/src/main/java/org/geysermc/geyser/inventory/StonecutterContainer.java @@ -45,7 +45,7 @@ public class StonecutterContainer extends Container { @Override public void setItem(int slot, @NonNull GeyserItemStack newItem, GeyserSession session) { - if (slot == 0 && newItem.getJavaId() != items[slot].getJavaId()) { + if (slot == 0 && !newItem.isSameItem(items[slot])) { // The pressed stonecutter button output resets whenever the input item changes this.stonecutterButton = -1; } diff --git a/core/src/main/java/org/geysermc/geyser/inventory/holder/BlockInventoryHolder.java b/core/src/main/java/org/geysermc/geyser/inventory/holder/BlockInventoryHolder.java index aac51a225..7b57540f9 100644 --- a/core/src/main/java/org/geysermc/geyser/inventory/holder/BlockInventoryHolder.java +++ b/core/src/main/java/org/geysermc/geyser/inventory/holder/BlockInventoryHolder.java @@ -25,6 +25,7 @@ package org.geysermc.geyser.inventory.holder; +import org.checkerframework.checker.nullness.qual.Nullable; import org.cloudburstmc.math.vector.Vector3i; import org.cloudburstmc.nbt.NbtMap; import org.cloudburstmc.protocol.bedrock.data.inventory.ContainerType; @@ -58,13 +59,19 @@ public class BlockInventoryHolder extends InventoryHolder { private final BlockState defaultJavaBlockState; private final ContainerType containerType; private final Set validBlocks; + private final @Nullable Class validBlockClass; public BlockInventoryHolder(Block defaultJavaBlock, ContainerType containerType, Block... validBlocks) { - this(defaultJavaBlock.defaultBlockState(), containerType, validBlocks); + this(defaultJavaBlock.defaultBlockState(), null, containerType, validBlocks); } public BlockInventoryHolder(BlockState defaultJavaBlockState, ContainerType containerType, Block... validBlocks) { + this(defaultJavaBlockState, null, containerType, validBlocks); + } + + public BlockInventoryHolder(BlockState defaultJavaBlockState, @Nullable Class validBlockClass, ContainerType containerType, Block... validBlocks) { this.defaultJavaBlockState = defaultJavaBlockState; + this.validBlockClass = validBlockClass; this.containerType = containerType; if (validBlocks != null) { Set validBlocksTemp = new HashSet<>(validBlocks.length + 1); @@ -134,7 +141,7 @@ public class BlockInventoryHolder extends InventoryHolder { // and the bedrock block is vanilla BlockState state = session.getGeyser().getWorldManager().blockAt(session, session.getLastInteractionBlockPosition()); if (!BlockRegistries.CUSTOM_BLOCK_STATE_OVERRIDES.get().containsKey(state.javaId())) { - if (isValidBlock(state)) { + if (isValidBlock(session, session.getLastInteractionBlockPosition(), state)) { // We can safely use this block container.setHolderPosition(session.getLastInteractionBlockPosition()); container.setUsingRealBlock(true, state.block()); @@ -161,7 +168,10 @@ public class BlockInventoryHolder extends InventoryHolder { /** * @return true if this Java block ID can be used for player inventory. */ - protected boolean isValidBlock(BlockState blockState) { + protected boolean isValidBlock(GeyserSession session, Vector3i position, BlockState blockState) { + if (this.validBlockClass != null && this.validBlockClass.isInstance(blockState.block())) { + return true; + } return this.validBlocks.contains(blockState.block()); } diff --git a/core/src/main/java/org/geysermc/geyser/inventory/item/StoredItemMappings.java b/core/src/main/java/org/geysermc/geyser/inventory/item/StoredItemMappings.java index f856af35c..a58c218f0 100644 --- a/core/src/main/java/org/geysermc/geyser/inventory/item/StoredItemMappings.java +++ b/core/src/main/java/org/geysermc/geyser/inventory/item/StoredItemMappings.java @@ -40,37 +40,25 @@ import java.util.Map; @Getter @Accessors(fluent = true) public class StoredItemMappings { - private final ItemMapping banner; private final ItemMapping barrier; - private final ItemMapping bow; - private final ItemMapping carrotOnAStick; private final ItemMapping compass; - private final ItemMapping crossbow; private final ItemMapping glassBottle; private final ItemMapping milkBucket; private final ItemMapping powderSnowBucket; - private final ItemMapping shield; private final ItemMapping totem; private final ItemMapping upgradeTemplate; - private final ItemMapping warpedFungusOnAStick; private final ItemMapping wheat; private final ItemMapping writableBook; private final ItemMapping writtenBook; public StoredItemMappings(Map itemMappings) { - this.banner = load(itemMappings, Items.WHITE_BANNER); // As of 1.17.10, all banners have the same Bedrock ID this.barrier = load(itemMappings, Items.BARRIER); - this.bow = load(itemMappings, Items.BOW); - this.carrotOnAStick = load(itemMappings, Items.CARROT_ON_A_STICK); this.compass = load(itemMappings, Items.COMPASS); - this.crossbow = load(itemMappings, Items.CROSSBOW); this.glassBottle = load(itemMappings, Items.GLASS_BOTTLE); this.milkBucket = load(itemMappings, Items.MILK_BUCKET); this.powderSnowBucket = load(itemMappings, Items.POWDER_SNOW_BUCKET); - this.shield = load(itemMappings, Items.SHIELD); this.totem = load(itemMappings, Items.TOTEM_OF_UNDYING); this.upgradeTemplate = load(itemMappings, Items.NETHERITE_UPGRADE_SMITHING_TEMPLATE); - this.warpedFungusOnAStick = load(itemMappings, Items.WARPED_FUNGUS_ON_A_STICK); this.wheat = load(itemMappings, Items.WHEAT); this.writableBook = load(itemMappings, Items.WRITABLE_BOOK); this.writtenBook = load(itemMappings, Items.WRITTEN_BOOK); diff --git a/core/src/main/java/org/geysermc/geyser/inventory/recipe/TrimRecipe.java b/core/src/main/java/org/geysermc/geyser/inventory/recipe/TrimRecipe.java index b7a9ac741..9b49f8577 100644 --- a/core/src/main/java/org/geysermc/geyser/inventory/recipe/TrimRecipe.java +++ b/core/src/main/java/org/geysermc/geyser/inventory/recipe/TrimRecipe.java @@ -35,6 +35,7 @@ import org.geysermc.geyser.item.type.Item; import org.geysermc.geyser.registry.Registries; import org.geysermc.geyser.registry.type.ItemMapping; import org.geysermc.geyser.session.cache.registry.RegistryEntryContext; +import org.geysermc.geyser.text.ChatColor; import org.geysermc.geyser.translator.text.MessageTranslator; import org.geysermc.mcprotocollib.protocol.data.game.Holder; import org.geysermc.mcprotocollib.protocol.data.game.item.component.ArmorTrim; @@ -63,6 +64,7 @@ public final class TrimRecipe { // Find the nearest legacy color from the style Java gives us to work with Component description = MessageTranslator.componentFromNbtTag(context.data().get("description")); String legacy = MessageTranslator.convertMessage(Component.space().style(description.style())); + String color = legacy.isBlank() ? ChatColor.WHITE : legacy.substring(2).trim(); int networkId = context.getNetworkId(context.id()); ItemMapping trimItem = null; @@ -81,15 +83,15 @@ public final class TrimRecipe { } // Just pick out the resulting color code, without RESET in front. - return new TrimMaterial(key, legacy.substring(2).trim(), trimItem.getBedrockIdentifier()); + return new TrimMaterial(key, color, trimItem.getBedrockIdentifier()); } - // TODO this is WRONG. this changed. FIXME in 1.21.5 public static TrimPattern readTrimPattern(RegistryEntryContext context) { String key = context.id().asMinimalString(); - String itemIdentifier = context.data().getString("template_item"); - ItemMapping itemMapping = context.session().getItemMappings().getMapping(itemIdentifier); + // Not ideal, Java edition also gives us a translatable description... Bedrock wants the template item + String identifier = context.id().asString() + "_armor_trim_smithing_template"; + ItemMapping itemMapping = context.session().getItemMappings().getMapping(identifier); if (itemMapping == null) { // This should never happen so not sure what to do here. itemMapping = ItemMapping.AIR; 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 bea3e0507..89af5842b 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 @@ -223,7 +223,7 @@ public class AnvilInventoryUpdater extends InventoryUpdater { if (!material.isEmpty()) { totalRepairCost += getRepairCost(material); if (isCombining(input, material)) { - if (hasDurability(input) && input.getJavaId() == material.getJavaId()) { + if (hasDurability(input) && input.isSameItem(material)) { cost += calcMergeRepairCost(input, material); } @@ -312,7 +312,7 @@ public class AnvilInventoryUpdater extends InventoryUpdater { for (Object2IntMap.Entry entry : getEnchantments(session, material).object2IntEntrySet()) { Enchantment enchantment = entry.getKey(); - boolean canApply = isEnchantedBook(input) || session.getTagCache().is(enchantment.supportedItems(), input.asItem()); + boolean canApply = isEnchantedBook(input) || enchantment.supportedItems().contains(session, input.asItem()); List incompatibleEnchantments = enchantment.exclusiveSet().resolve(session); for (Enchantment incompatible : incompatibleEnchantments) { @@ -388,11 +388,11 @@ public class AnvilInventoryUpdater extends InventoryUpdater { } private boolean isEnchantedBook(GeyserItemStack itemStack) { - return itemStack.asItem() == Items.ENCHANTED_BOOK; + return itemStack.is(Items.ENCHANTED_BOOK); } private boolean isCombining(GeyserItemStack input, GeyserItemStack material) { - return isEnchantedBook(material) || (input.getJavaId() == material.getJavaId() && hasDurability(input)); + return isEnchantedBook(material) || (input.isSameItem(material) && hasDurability(input)); } private boolean isRepairing(GeyserItemStack input, GeyserItemStack material, GeyserSession session) { @@ -401,7 +401,7 @@ public class AnvilInventoryUpdater extends InventoryUpdater { return false; } - return session.getTagCache().isItem(repairable, material.asItem()); + return material.is(session, repairable); } private boolean isRenaming(GeyserSession session, AnvilContainer anvilContainer, boolean bedrock) { 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 e86a93a42..d0bf6655d 100644 --- a/core/src/main/java/org/geysermc/geyser/item/Items.java +++ b/core/src/main/java/org/geysermc/geyser/item/Items.java @@ -371,6 +371,18 @@ public final class Items { public static final Item SMOOTH_SANDSTONE = register(new BlockItem(builder(), Blocks.SMOOTH_SANDSTONE)); public static final Item SMOOTH_STONE = register(new BlockItem(builder(), Blocks.SMOOTH_STONE)); public static final Item BRICKS = register(new BlockItem(builder(), Blocks.BRICKS)); + public static final Item ACACIA_SHELF = register(new BlockItem(builder(), Blocks.ACACIA_SHELF)); + public static final Item BAMBOO_SHELF = register(new BlockItem(builder(), Blocks.BAMBOO_SHELF)); + public static final Item BIRCH_SHELF = register(new BlockItem(builder(), Blocks.BIRCH_SHELF)); + public static final Item CHERRY_SHELF = register(new BlockItem(builder(), Blocks.CHERRY_SHELF)); + public static final Item CRIMSON_SHELF = register(new BlockItem(builder(), Blocks.CRIMSON_SHELF)); + public static final Item DARK_OAK_SHELF = register(new BlockItem(builder(), Blocks.DARK_OAK_SHELF)); + public static final Item JUNGLE_SHELF = register(new BlockItem(builder(), Blocks.JUNGLE_SHELF)); + public static final Item MANGROVE_SHELF = register(new BlockItem(builder(), Blocks.MANGROVE_SHELF)); + public static final Item OAK_SHELF = register(new BlockItem(builder(), Blocks.OAK_SHELF)); + public static final Item PALE_OAK_SHELF = register(new BlockItem(builder(), Blocks.PALE_OAK_SHELF)); + public static final Item SPRUCE_SHELF = register(new BlockItem(builder(), Blocks.SPRUCE_SHELF)); + public static final Item WARPED_SHELF = register(new BlockItem(builder(), Blocks.WARPED_SHELF)); public static final Item BOOKSHELF = register(new BlockItem(builder(), Blocks.BOOKSHELF)); public static final Item CHISELED_BOOKSHELF = register(new BlockItem(builder(), Blocks.CHISELED_BOOKSHELF)); public static final Item DECORATED_POT = register(new DecoratedPotItem(builder(), Blocks.DECORATED_POT)); @@ -420,6 +432,7 @@ public final class Items { public static final Item POLISHED_BASALT = register(new BlockItem(builder(), Blocks.POLISHED_BASALT)); public static final Item SMOOTH_BASALT = register(new BlockItem(builder(), Blocks.SMOOTH_BASALT)); public static final Item SOUL_TORCH = register(new BlockItem(builder(), Blocks.SOUL_TORCH, Blocks.SOUL_WALL_TORCH)); + public static final Item COPPER_TORCH = register(new BlockItem(builder(), Blocks.COPPER_TORCH, Blocks.COPPER_WALL_TORCH)); public static final Item GLOWSTONE = register(new BlockItem(builder(), Blocks.GLOWSTONE)); public static final Item INFESTED_STONE = register(new BlockItem(builder(), Blocks.INFESTED_STONE)); public static final Item INFESTED_COBBLESTONE = register(new BlockItem(builder(), Blocks.INFESTED_COBBLESTONE)); @@ -444,7 +457,23 @@ public final class Items { public static final Item RED_MUSHROOM_BLOCK = register(new BlockItem(builder(), Blocks.RED_MUSHROOM_BLOCK)); public static final Item MUSHROOM_STEM = register(new BlockItem(builder(), Blocks.MUSHROOM_STEM)); public static final Item IRON_BARS = register(new BlockItem(builder(), Blocks.IRON_BARS)); - public static final Item CHAIN = register(new BlockItem(builder(), Blocks.CHAIN)); + public static final Item COPPER_BARS = register(new BlockItem(builder(), Blocks.COPPER_BARS)); + public static final Item EXPOSED_COPPER_BARS = register(new BlockItem(builder(), Blocks.EXPOSED_COPPER_BARS)); + public static final Item WEATHERED_COPPER_BARS = register(new BlockItem(builder(), Blocks.WEATHERED_COPPER_BARS)); + public static final Item OXIDIZED_COPPER_BARS = register(new BlockItem(builder(), Blocks.OXIDIZED_COPPER_BARS)); + public static final Item WAXED_COPPER_BARS = register(new BlockItem(builder(), Blocks.WAXED_COPPER_BARS)); + public static final Item WAXED_EXPOSED_COPPER_BARS = register(new BlockItem(builder(), Blocks.WAXED_EXPOSED_COPPER_BARS)); + public static final Item WAXED_WEATHERED_COPPER_BARS = register(new BlockItem(builder(), Blocks.WAXED_WEATHERED_COPPER_BARS)); + public static final Item WAXED_OXIDIZED_COPPER_BARS = register(new BlockItem(builder(), Blocks.WAXED_OXIDIZED_COPPER_BARS)); + public static final Item IRON_CHAIN = register(new BlockItem(builder(), Blocks.IRON_CHAIN)); + public static final Item COPPER_CHAIN = register(new BlockItem(builder(), Blocks.COPPER_CHAIN)); + public static final Item EXPOSED_COPPER_CHAIN = register(new BlockItem(builder(), Blocks.EXPOSED_COPPER_CHAIN)); + public static final Item WEATHERED_COPPER_CHAIN = register(new BlockItem(builder(), Blocks.WEATHERED_COPPER_CHAIN)); + public static final Item OXIDIZED_COPPER_CHAIN = register(new BlockItem(builder(), Blocks.OXIDIZED_COPPER_CHAIN)); + public static final Item WAXED_COPPER_CHAIN = register(new BlockItem(builder(), Blocks.WAXED_COPPER_CHAIN)); + public static final Item WAXED_EXPOSED_COPPER_CHAIN = register(new BlockItem(builder(), Blocks.WAXED_EXPOSED_COPPER_CHAIN)); + public static final Item WAXED_WEATHERED_COPPER_CHAIN = register(new BlockItem(builder(), Blocks.WAXED_WEATHERED_COPPER_CHAIN)); + public static final Item WAXED_OXIDIZED_COPPER_CHAIN = register(new BlockItem(builder(), Blocks.WAXED_OXIDIZED_COPPER_CHAIN)); public static final Item GLASS_PANE = register(new BlockItem(builder(), Blocks.GLASS_PANE)); public static final Item MELON = register(new BlockItem(builder(), Blocks.MELON)); public static final Item VINE = register(new BlockItem(builder(), Blocks.VINE)); @@ -771,6 +800,13 @@ public final class Items { public static final Item TARGET = register(new BlockItem(builder(), Blocks.TARGET)); public static final Item LEVER = register(new BlockItem(builder(), Blocks.LEVER)); public static final Item LIGHTNING_ROD = register(new BlockItem(builder(), Blocks.LIGHTNING_ROD)); + public static final Item EXPOSED_LIGHTNING_ROD = register(new BlockItem(builder(), Blocks.EXPOSED_LIGHTNING_ROD)); + public static final Item WEATHERED_LIGHTNING_ROD = register(new BlockItem(builder(), Blocks.WEATHERED_LIGHTNING_ROD)); + public static final Item OXIDIZED_LIGHTNING_ROD = register(new BlockItem(builder(), Blocks.OXIDIZED_LIGHTNING_ROD)); + public static final Item WAXED_LIGHTNING_ROD = register(new BlockItem(builder(), Blocks.WAXED_LIGHTNING_ROD)); + public static final Item WAXED_EXPOSED_LIGHTNING_ROD = register(new BlockItem(builder(), Blocks.WAXED_EXPOSED_LIGHTNING_ROD)); + public static final Item WAXED_WEATHERED_LIGHTNING_ROD = register(new BlockItem(builder(), Blocks.WAXED_WEATHERED_LIGHTNING_ROD)); + public static final Item WAXED_OXIDIZED_LIGHTNING_ROD = register(new BlockItem(builder(), Blocks.WAXED_OXIDIZED_LIGHTNING_ROD)); public static final Item DAYLIGHT_DETECTOR = register(new BlockItem(builder(), Blocks.DAYLIGHT_DETECTOR)); public static final Item SCULK_SENSOR = register(new BlockItem(builder(), Blocks.SCULK_SENSOR)); public static final Item CALIBRATED_SCULK_SENSOR = register(new BlockItem(builder(), Blocks.CALIBRATED_SCULK_SENSOR)); @@ -946,6 +982,11 @@ public final class Items { 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 COPPER_SWORD = register(new Item("copper_sword", builder().attackDamage(5.0))); + public static final Item COPPER_SHOVEL = register(new Item("copper_shovel", builder().attackDamage(3.5))); + public static final Item COPPER_PICKAXE = register(new Item("copper_pickaxe", builder().attackDamage(3.0))); + public static final Item COPPER_AXE = register(new Item("copper_axe", builder().attackDamage(9.0))); + public static final Item COPPER_HOE = register(new Item("copper_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))); @@ -983,6 +1024,10 @@ public final class Items { 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 COPPER_HELMET = register(new ArmorItem("copper_helmet", builder())); + public static final Item COPPER_CHESTPLATE = register(new ArmorItem("copper_chestplate", builder())); + public static final Item COPPER_LEGGINGS = register(new ArmorItem("copper_leggings", builder())); + public static final Item COPPER_BOOTS = register(new ArmorItem("copper_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())); @@ -1148,7 +1193,7 @@ public final class Items { 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.POWDER_SNOW_CAULDRON, Blocks.WATER_CAULDRON)); + public static final Item CAULDRON = register(new BlockItem(builder(), Blocks.CAULDRON, Blocks.WATER_CAULDRON, Blocks.POWDER_SNOW_CAULDRON, Blocks.LAVA_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())); @@ -1164,6 +1209,7 @@ public final class Items { public static final Item CAVE_SPIDER_SPAWN_EGG = register(new SpawnEggItem("cave_spider_spawn_egg", builder())); public static final Item CHICKEN_SPAWN_EGG = register(new SpawnEggItem("chicken_spawn_egg", builder())); public static final Item COD_SPAWN_EGG = register(new SpawnEggItem("cod_spawn_egg", builder())); + public static final Item COPPER_GOLEM_SPAWN_EGG = register(new SpawnEggItem("copper_golem_spawn_egg", builder())); public static final Item COW_SPAWN_EGG = register(new SpawnEggItem("cow_spawn_egg", builder())); public static final Item CREEPER_SPAWN_EGG = register(new SpawnEggItem("creeper_spawn_egg", builder())); public static final Item DOLPHIN_SPAWN_EGG = register(new SpawnEggItem("dolphin_spawn_egg", builder())); @@ -1271,6 +1317,7 @@ public final class Items { 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())); + public static final Item COPPER_HORSE_ARMOR = register(new Item("copper_horse_armor", 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())); @@ -1313,6 +1360,7 @@ public final class Items { 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 COPPER_NUGGET = register(new Item("copper_nugget", builder())); 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())); @@ -1366,6 +1414,14 @@ public final class Items { public static final Item BELL = register(new BlockItem(builder(), Blocks.BELL)); public static final Item LANTERN = register(new BlockItem(builder(), Blocks.LANTERN)); public static final Item SOUL_LANTERN = register(new BlockItem(builder(), Blocks.SOUL_LANTERN)); + public static final Item COPPER_LANTERN = register(new BlockItem(builder(), Blocks.COPPER_LANTERN)); + public static final Item EXPOSED_COPPER_LANTERN = register(new BlockItem(builder(), Blocks.EXPOSED_COPPER_LANTERN)); + public static final Item WEATHERED_COPPER_LANTERN = register(new BlockItem(builder(), Blocks.WEATHERED_COPPER_LANTERN)); + public static final Item OXIDIZED_COPPER_LANTERN = register(new BlockItem(builder(), Blocks.OXIDIZED_COPPER_LANTERN)); + public static final Item WAXED_COPPER_LANTERN = register(new BlockItem(builder(), Blocks.WAXED_COPPER_LANTERN)); + public static final Item WAXED_EXPOSED_COPPER_LANTERN = register(new BlockItem(builder(), Blocks.WAXED_EXPOSED_COPPER_LANTERN)); + public static final Item WAXED_WEATHERED_COPPER_LANTERN = register(new BlockItem(builder(), Blocks.WAXED_WEATHERED_COPPER_LANTERN)); + public static final Item WAXED_OXIDIZED_COPPER_LANTERN = register(new BlockItem(builder(), Blocks.WAXED_OXIDIZED_COPPER_LANTERN)); public static final Item SWEET_BERRIES = register(new BlockItem("sweet_berries", builder(), Blocks.SWEET_BERRY_BUSH)); public static final Item GLOW_BERRIES = register(new BlockItem("glow_berries", builder(), Blocks.CAVE_VINES)); public static final Item CAMPFIRE = register(new BlockItem(builder(), Blocks.CAMPFIRE)); @@ -1477,6 +1533,22 @@ public final class Items { public static final Item WAXED_EXPOSED_COPPER_BULB = register(new BlockItem(builder(), Blocks.WAXED_EXPOSED_COPPER_BULB)); public static final Item WAXED_WEATHERED_COPPER_BULB = register(new BlockItem(builder(), Blocks.WAXED_WEATHERED_COPPER_BULB)); public static final Item WAXED_OXIDIZED_COPPER_BULB = register(new BlockItem(builder(), Blocks.WAXED_OXIDIZED_COPPER_BULB)); + public static final Item COPPER_CHEST = register(new BlockItem(builder(), Blocks.COPPER_CHEST)); + public static final Item EXPOSED_COPPER_CHEST = register(new BlockItem(builder(), Blocks.EXPOSED_COPPER_CHEST)); + public static final Item WEATHERED_COPPER_CHEST = register(new BlockItem(builder(), Blocks.WEATHERED_COPPER_CHEST)); + public static final Item OXIDIZED_COPPER_CHEST = register(new BlockItem(builder(), Blocks.OXIDIZED_COPPER_CHEST)); + public static final Item WAXED_COPPER_CHEST = register(new BlockItem(builder(), Blocks.WAXED_COPPER_CHEST)); + public static final Item WAXED_EXPOSED_COPPER_CHEST = register(new BlockItem(builder(), Blocks.WAXED_EXPOSED_COPPER_CHEST)); + public static final Item WAXED_WEATHERED_COPPER_CHEST = register(new BlockItem(builder(), Blocks.WAXED_WEATHERED_COPPER_CHEST)); + public static final Item WAXED_OXIDIZED_COPPER_CHEST = register(new BlockItem(builder(), Blocks.WAXED_OXIDIZED_COPPER_CHEST)); + public static final Item COPPER_GOLEM_STATUE = register(new BlockItem(builder(), Blocks.COPPER_GOLEM_STATUE)); + public static final Item EXPOSED_COPPER_GOLEM_STATUE = register(new BlockItem(builder(), Blocks.EXPOSED_COPPER_GOLEM_STATUE)); + public static final Item WEATHERED_COPPER_GOLEM_STATUE = register(new BlockItem(builder(), Blocks.WEATHERED_COPPER_GOLEM_STATUE)); + public static final Item OXIDIZED_COPPER_GOLEM_STATUE = register(new BlockItem(builder(), Blocks.OXIDIZED_COPPER_GOLEM_STATUE)); + public static final Item WAXED_COPPER_GOLEM_STATUE = register(new BlockItem(builder(), Blocks.WAXED_COPPER_GOLEM_STATUE)); + public static final Item WAXED_EXPOSED_COPPER_GOLEM_STATUE = register(new BlockItem(builder(), Blocks.WAXED_EXPOSED_COPPER_GOLEM_STATUE)); + public static final Item WAXED_WEATHERED_COPPER_GOLEM_STATUE = register(new BlockItem(builder(), Blocks.WAXED_WEATHERED_COPPER_GOLEM_STATUE)); + public static final Item WAXED_OXIDIZED_COPPER_GOLEM_STATUE = register(new BlockItem(builder(), Blocks.WAXED_OXIDIZED_COPPER_GOLEM_STATUE)); public static final Item TRIAL_SPAWNER = register(new BlockItem(builder(), Blocks.TRIAL_SPAWNER)); 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())); diff --git a/core/src/main/java/org/geysermc/geyser/item/hashing/DataComponentHashers.java b/core/src/main/java/org/geysermc/geyser/item/hashing/DataComponentHashers.java index b3343c9bb..ca9840994 100644 --- a/core/src/main/java/org/geysermc/geyser/item/hashing/DataComponentHashers.java +++ b/core/src/main/java/org/geysermc/geyser/item/hashing/DataComponentHashers.java @@ -74,6 +74,7 @@ import org.geysermc.mcprotocollib.protocol.data.game.item.component.MobEffectIns import org.geysermc.mcprotocollib.protocol.data.game.item.component.PotionContents; import org.geysermc.mcprotocollib.protocol.data.game.item.component.ToolData; import org.geysermc.mcprotocollib.protocol.data.game.item.component.TooltipDisplay; +import org.geysermc.mcprotocollib.protocol.data.game.item.component.TypedEntityData; import org.geysermc.mcprotocollib.protocol.data.game.item.component.Unit; import org.geysermc.mcprotocollib.protocol.data.game.item.component.UseCooldown; import org.geysermc.mcprotocollib.protocol.data.game.item.component.Weapon; @@ -213,9 +214,15 @@ public class DataComponentHashers { register(DataComponentTypes.TRIM, RegistryHasher.ARMOR_TRIM); register(DataComponentTypes.DEBUG_STICK_STATE, MinecraftHasher.NBT_MAP); - register(DataComponentTypes.ENTITY_DATA, MinecraftHasher.NBT_MAP); + registerMap(DataComponentTypes.ENTITY_DATA, builder -> builder + .accept("id", RegistryHasher.ENTITY_TYPE_KEY, TypedEntityData::type) + .inlineNbt(TypedEntityData::tag) + ); register(DataComponentTypes.BUCKET_ENTITY_DATA, MinecraftHasher.NBT_MAP); - register(DataComponentTypes.BLOCK_ENTITY_DATA, MinecraftHasher.NBT_MAP); + registerMap(DataComponentTypes.BLOCK_ENTITY_DATA, builder -> builder + .accept("id", RegistryHasher.BLOCK_ENTITY_TYPE_KEY, TypedEntityData::type) + .inlineNbt(TypedEntityData::tag) + ); register(DataComponentTypes.INSTRUMENT, RegistryHasher.INSTRUMENT_COMPONENT); register(DataComponentTypes.PROVIDES_TRIM_MATERIAL, RegistryHasher.PROVIDES_TRIM_MATERIAL); @@ -235,7 +242,7 @@ public class DataComponentHashers { .optional("flight_duration", MinecraftHasher.BYTE, fireworks -> (byte) fireworks.getFlightDuration(), (byte) 0) .optionalList("explosions", RegistryHasher.FIREWORK_EXPLOSION, Fireworks::getExplosions)); - register(DataComponentTypes.PROFILE, MinecraftHasher.GAME_PROFILE); + register(DataComponentTypes.PROFILE, MinecraftHasher.RESOLVABLE_PROFILE); register(DataComponentTypes.NOTE_BLOCK_SOUND, MinecraftHasher.KEY); register(DataComponentTypes.BANNER_PATTERNS, RegistryHasher.BANNER_PATTERN_LAYER.list()); register(DataComponentTypes.BASE_COLOR, MinecraftHasher.DYE_COLOR); diff --git a/core/src/main/java/org/geysermc/geyser/item/hashing/MapHasher.java b/core/src/main/java/org/geysermc/geyser/item/hashing/MapHasher.java index 2072ace29..187360308 100644 --- a/core/src/main/java/org/geysermc/geyser/item/hashing/MapHasher.java +++ b/core/src/main/java/org/geysermc/geyser/item/hashing/MapHasher.java @@ -26,6 +26,8 @@ package org.geysermc.geyser.item.hashing; import com.google.common.hash.HashCode; +import org.cloudburstmc.nbt.NbtList; +import org.cloudburstmc.nbt.NbtMap; import java.util.HashMap; import java.util.List; @@ -67,6 +69,14 @@ public class MapHasher { return this; } + private MapHasher accept(String key, Object value, HashCode valueHash) { + if (unhashed != null) { + unhashed.put(key, value); + } + map.put(encoder.string(key), valueHash); + return this; + } + /** * Adds a constant {@link Value} to the map. * @@ -82,6 +92,25 @@ public class MapHasher { return accept(key, hasher.hash(value, encoder)); } + public MapHasher inlineNbt(Function extractor) { + NbtMap nbtMap = extractor.apply(object); + for (String key : nbtMap.keySet()) { + Object value = nbtMap.get(key); + if (value instanceof NbtList list) { + accept(key, value, encoder.nbtList(list)); + } else { + nbtMap.listenForNumber(key, n -> accept(key, value, encoder.number(n))); + nbtMap.listenForString(key, s -> accept(key, value, encoder.string(s))); + nbtMap.listenForCompound(key, compound -> accept(key, value, encoder.nbtMap(compound))); + + nbtMap.listenForByteArray(key, bytes -> accept(key, value, encoder.byteArray(bytes))); + nbtMap.listenForIntArray(key, ints -> accept(key, value, encoder.intArray(ints))); + nbtMap.listenForLongArray(key, longs -> accept(key, value, encoder.longArray(longs))); + } + } + return this; + } + /** * Extracts a {@link Value} from a {@link Type} using the {@code extractor}, and adds it to the map. * diff --git a/core/src/main/java/org/geysermc/geyser/item/hashing/MinecraftHasher.java b/core/src/main/java/org/geysermc/geyser/item/hashing/MinecraftHasher.java index 08c79c049..7f135e2d6 100644 --- a/core/src/main/java/org/geysermc/geyser/item/hashing/MinecraftHasher.java +++ b/core/src/main/java/org/geysermc/geyser/item/hashing/MinecraftHasher.java @@ -37,6 +37,7 @@ import org.geysermc.geyser.session.GeyserSession; import org.geysermc.mcprotocollib.auth.GameProfile; import org.geysermc.mcprotocollib.protocol.data.game.entity.EquipmentSlot; import org.geysermc.mcprotocollib.protocol.data.game.entity.metadata.GlobalPos; +import org.geysermc.mcprotocollib.protocol.data.game.entity.player.ResolvableProfile; import org.geysermc.mcprotocollib.protocol.data.game.item.component.Filterable; import org.geysermc.mcprotocollib.protocol.data.game.item.component.ItemAttributeModifiers; import org.geysermc.mcprotocollib.protocol.data.game.item.component.Unit; @@ -45,6 +46,7 @@ import java.util.Collection; import java.util.List; import java.util.Locale; import java.util.Map; +import java.util.Optional; import java.util.UUID; import java.util.function.BiFunction; import java.util.function.Function; @@ -131,10 +133,15 @@ public interface MinecraftHasher { .accept("value", STRING, GameProfile.Property::getValue) .optionalNullable("signature", STRING, GameProfile.Property::getSignature)); - MinecraftHasher GAME_PROFILE = mapBuilder(builder -> builder - .optionalNullable("name", STRING, GameProfile::getName) - .optionalNullable("id", UUID, GameProfile::getId) - .optionalList("properties", GAME_PROFILE_PROPERTY, GameProfile::getProperties)); + MinecraftHasher RESOLVABLE_PROFILE = mapBuilder(builder -> builder + .optionalNullable("name", STRING, resolvableProfile -> resolvableProfile.getProfile().getName()) + .optionalNullable("id", UUID, resolvableProfile -> resolvableProfile.getProfile().getId()) + .optionalList("properties", GAME_PROFILE_PROPERTY, resolvableProfile -> resolvableProfile.getProfile().getProperties()) + .optionalNullable("texture", KEY, ResolvableProfile::getBody) + .optionalNullable("cape", KEY, ResolvableProfile::getCape) + .optionalNullable("elytra", KEY, ResolvableProfile::getElytra) + .optional("model", STRING, resolvableProfile -> Optional.ofNullable(resolvableProfile.getModel()).map(GameProfile.TextureModel::name)) + ); MinecraftHasher RARITY = fromIdEnum(Rarity.values(), Rarity::getName); diff --git a/core/src/main/java/org/geysermc/geyser/item/hashing/RegistryHasher.java b/core/src/main/java/org/geysermc/geyser/item/hashing/RegistryHasher.java index cd72874e5..85916592c 100644 --- a/core/src/main/java/org/geysermc/geyser/item/hashing/RegistryHasher.java +++ b/core/src/main/java/org/geysermc/geyser/item/hashing/RegistryHasher.java @@ -27,7 +27,6 @@ package org.geysermc.geyser.item.hashing; import com.google.common.hash.HashCode; import net.kyori.adventure.key.Key; -import org.cloudburstmc.nbt.NbtMap; import org.geysermc.geyser.inventory.item.Potion; import org.geysermc.geyser.item.hashing.data.ConsumeEffectType; import org.geysermc.geyser.item.hashing.data.FireworkExplosionShape; @@ -74,6 +73,7 @@ import org.geysermc.mcprotocollib.protocol.data.game.item.component.ProvidesTrim import org.geysermc.mcprotocollib.protocol.data.game.item.component.SuspiciousStewEffect; import org.geysermc.mcprotocollib.protocol.data.game.item.component.ToolData; import org.geysermc.mcprotocollib.protocol.data.game.item.component.Unit; +import org.geysermc.mcprotocollib.protocol.data.game.level.block.BlockEntityType; import org.geysermc.mcprotocollib.protocol.data.game.level.sound.BuiltinSound; import org.geysermc.mcprotocollib.protocol.data.game.level.sound.CustomSound; import org.geysermc.mcprotocollib.protocol.data.game.level.sound.Sound; @@ -110,6 +110,10 @@ public interface RegistryHasher extends MinecraftHasher { RegistryHasher ENTITY_TYPE = enumIdRegistry(EntityType.values()); + MinecraftHasher ENTITY_TYPE_KEY = enumRegistry(); + + MinecraftHasher BLOCK_ENTITY_TYPE_KEY = enumRegistry(); + RegistryHasher ENCHANTMENT = registry(JavaRegistries.ENCHANTMENT); RegistryHasher ATTRIBUTE = enumIdRegistry(AttributeType.Builtin.values(), AttributeType::getIdentifier); @@ -346,7 +350,8 @@ public interface RegistryHasher extends MinecraftHasher { .optional("has_twinkle", BOOL, Fireworks.FireworkExplosion::isHasTwinkle, false)); MinecraftHasher BEEHIVE_OCCUPANT = MinecraftHasher.mapBuilder(builder -> builder - .optional("entity_data", NBT_MAP, BeehiveOccupant::getEntityData, NbtMap.EMPTY) + .accept("id", RegistryHasher.ENTITY_TYPE_KEY, beehiveOccupant -> beehiveOccupant.getEntityData().type()) + .inlineNbt(beehiveOccupant -> beehiveOccupant.getEntityData().tag()) .accept("ticks_in_hive", INT, BeehiveOccupant::getTicksInHive) .accept("min_ticks_in_hive", INT, BeehiveOccupant::getMinTicksInHive)); diff --git a/core/src/main/java/org/geysermc/geyser/item/hashing/data/FireworkExplosionShape.java b/core/src/main/java/org/geysermc/geyser/item/hashing/data/FireworkExplosionShape.java index 316253e3e..bc880ef85 100644 --- a/core/src/main/java/org/geysermc/geyser/item/hashing/data/FireworkExplosionShape.java +++ b/core/src/main/java/org/geysermc/geyser/item/hashing/data/FireworkExplosionShape.java @@ -25,11 +25,22 @@ package org.geysermc.geyser.item.hashing.data; +import java.util.Locale; + // Ordered and named by Java ID public enum FireworkExplosionShape { SMALL_BALL, LARGE_BALL, STAR, CREEPER, - BURST + BURST; + + public static FireworkExplosionShape fromJavaIdentifier(String identifier) { + for (FireworkExplosionShape shape : values()) { + if (shape.name().toLowerCase(Locale.ROOT).equals(identifier)) { + return shape; + } + } + return null; + } } diff --git a/core/src/main/java/org/geysermc/geyser/item/parser/ItemStackParser.java b/core/src/main/java/org/geysermc/geyser/item/parser/ItemStackParser.java new file mode 100644 index 000000000..69b330791 --- /dev/null +++ b/core/src/main/java/org/geysermc/geyser/item/parser/ItemStackParser.java @@ -0,0 +1,273 @@ +/* + * Copyright (c) 2025 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.parser; + +import it.unimi.dsi.fastutil.ints.Int2IntMap; +import it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap; +import it.unimi.dsi.fastutil.objects.Reference2ObjectOpenHashMap; +import net.kyori.adventure.key.Key; +import org.checkerframework.checker.nullness.qual.Nullable; +import org.cloudburstmc.nbt.NbtMap; +import org.cloudburstmc.nbt.NbtMapBuilder; +import org.cloudburstmc.nbt.NbtType; +import org.cloudburstmc.protocol.bedrock.data.inventory.ItemData; +import org.geysermc.geyser.GeyserImpl; +import org.geysermc.geyser.inventory.item.DyeColor; +import org.geysermc.geyser.inventory.item.Potion; +import org.geysermc.geyser.item.Items; +import org.geysermc.geyser.item.hashing.data.FireworkExplosionShape; +import org.geysermc.geyser.item.type.Item; +import org.geysermc.geyser.registry.Registries; +import org.geysermc.geyser.session.GeyserSession; +import org.geysermc.geyser.session.cache.registry.JavaRegistries; +import org.geysermc.geyser.translator.item.BedrockItemBuilder; +import org.geysermc.geyser.translator.item.ItemTranslator; +import org.geysermc.geyser.translator.level.block.entity.SkullBlockEntityTranslator; +import org.geysermc.geyser.util.MinecraftKey; +import org.geysermc.mcprotocollib.protocol.data.game.Holder; +import org.geysermc.mcprotocollib.protocol.data.game.item.ItemStack; +import org.geysermc.mcprotocollib.protocol.data.game.item.component.BannerPatternLayer; +import org.geysermc.mcprotocollib.protocol.data.game.item.component.CustomModelData; +import org.geysermc.mcprotocollib.protocol.data.game.item.component.DataComponentType; +import org.geysermc.mcprotocollib.protocol.data.game.item.component.DataComponentTypes; +import org.geysermc.mcprotocollib.protocol.data.game.item.component.DataComponents; +import org.geysermc.mcprotocollib.protocol.data.game.item.component.Fireworks; +import org.geysermc.mcprotocollib.protocol.data.game.item.component.ItemEnchantments; +import org.geysermc.mcprotocollib.protocol.data.game.item.component.PotionContents; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.function.Function; + +/** + * Utility class to parse an item stack, or a data component patch, from NBT data. + * + *

This class does NOT parse all possible data components in a data component patch, only those that + * can visually change the way an item looks. This class should/is usually used for parsing block entity NBT data, + * such as for vault or shelf block entities.

+ * + *

Be sure to update this class for Java updates!

+ */ +// Lots of unchecked casting happens here. It should all be handled properly. +@SuppressWarnings("unchecked") +// TODO only log some things once (like was done in vault translator) +public final class ItemStackParser { + private static final Map, DataComponentParser> PARSERS = new Reference2ObjectOpenHashMap<>(); + + // We need the rawClass parameter here because the Raw type can't be inferred from the parser alone + private static void register(DataComponentType component, Class rawClass, DataComponentParser parser) { + if (PARSERS.containsKey(component)) { + throw new IllegalStateException("Duplicate data component parser registered for " + component); + } + PARSERS.put(component, parser); + } + + private static void registerSimple(DataComponentType component, Class rawClass, Function parser) { + register(component, rawClass, (session, raw) -> parser.apply(raw)); + } + + private static void registerSimple(DataComponentType component, Class parsedClass) { + registerSimple(component, parsedClass, Function.identity()); + } + + private static int javaItemIdentifierToNetworkId(String identifier) { + if (identifier == null || identifier.isEmpty()) { + return Items.AIR_ID; + } + + Item item = Registries.JAVA_ITEM_IDENTIFIERS.get(identifier); + if (item == null) { + GeyserImpl.getInstance().getLogger().warning("Received unknown item ID " + identifier + " whilst parsing NBT item stack!"); + return Items.AIR_ID; + } + return item.javaId(); + } + + private static ItemEnchantments parseEnchantments(GeyserSession session, NbtMap map) { + Int2IntMap enchantments = new Int2IntOpenHashMap(map.size()); + for (Map.Entry entry : map.entrySet()) { + enchantments.put(JavaRegistries.ENCHANTMENT.networkId(session, MinecraftKey.key(entry.getKey())), (int) entry.getValue()); + } + return new ItemEnchantments(enchantments); + } + + static { + // The various ignored null-warnings are for things that should never be null as they shouldn't be missing from the data component + // If they are null an exception will be thrown, but this will be caught with an error message logged + + register(DataComponentTypes.BANNER_PATTERNS, List.class, (session, raw) -> { + List casted = (List) raw; + List layers = new ArrayList<>(); + for (NbtMap layer : casted) { + DyeColor colour = DyeColor.getByJavaIdentifier(layer.getString("color")); + + // Patterns can be an ID or inline + Object pattern = layer.get("pattern"); + Holder patternHolder; + if (pattern instanceof String id) { + patternHolder = Holder.ofId(JavaRegistries.BANNER_PATTERN.networkId(session, MinecraftKey.key(id))); + } else { + NbtMap inline = (NbtMap) pattern; + Key assetId = MinecraftKey.key(inline.getString("asset_id")); + String translationKey = inline.getString("translation_key"); + patternHolder = Holder.ofCustom(new BannerPatternLayer.BannerPattern(assetId, translationKey)); + } + layers.add(new BannerPatternLayer(patternHolder, colour.ordinal())); + } + return layers; + }); + registerSimple(DataComponentTypes.BASE_COLOR, String.class, raw -> DyeColor.getByJavaIdentifier(raw).ordinal()); + register(DataComponentTypes.CHARGED_PROJECTILES, List.class, + (session, projectiles) -> projectiles.stream() + .map(object -> parseItemStack(session, (NbtMap) object)) + .toList()); + registerSimple(DataComponentTypes.CUSTOM_MODEL_DATA, NbtMap.class, raw -> { + List floats = raw.getList("floats", NbtType.FLOAT); + List flags = raw.getList("flags", NbtType.BYTE).stream().map(b -> b != 0).toList(); + List strings = raw.getList("strings", NbtType.STRING); + List colours = raw.getList("colors", NbtType.INT); + return new CustomModelData(floats, flags, strings, colours); + }); + registerSimple(DataComponentTypes.DYED_COLOR, Integer.class); + registerSimple(DataComponentTypes.ENCHANTMENT_GLINT_OVERRIDE, Boolean.class); + register(DataComponentTypes.ENCHANTMENTS, NbtMap.class, ItemStackParser::parseEnchantments); + registerSimple(DataComponentTypes.FIREWORK_EXPLOSION, NbtMap.class, raw -> { + FireworkExplosionShape shape = FireworkExplosionShape.fromJavaIdentifier(raw.getString("shape")); + List colours = raw.getList("colors", NbtType.INT); + List fadeColours = raw.getList("fade_colors", NbtType.INT); + boolean hasTrail = raw.getBoolean("has_trail"); + boolean hasTwinkle = raw.getBoolean("has_twinkle"); + return new Fireworks.FireworkExplosion(shape.ordinal(), + colours.stream() + .mapToInt(i -> i) // We need to do this because MCPL wants an int[] array + .toArray(), + fadeColours.stream() + .mapToInt(i -> i) + .toArray(), + hasTrail, hasTwinkle); + }); + registerSimple(DataComponentTypes.ITEM_MODEL, String.class, MinecraftKey::key); + registerSimple(DataComponentTypes.MAP_COLOR, Integer.class); + registerSimple(DataComponentTypes.POT_DECORATIONS, List.class, list -> list.stream() + .map(item -> javaItemIdentifierToNetworkId((String) item)) + .toList()); + register(DataComponentTypes.POTION_CONTENTS, NbtMap.class, (session, map) -> { + Potion potion = Potion.getByJavaIdentifier(map.getString("potion")); + int customColour = map.getInt("custom_color", -1); + // Not reading custom effects + String customName = map.getString("custom_name", null); + return new PotionContents(potion == null ? -1 : potion.ordinal(), customColour, List.of(), customName); + }); + registerSimple(DataComponentTypes.PROFILE, NbtMap.class, SkullBlockEntityTranslator::parseResolvableProfile); + register(DataComponentTypes.STORED_ENCHANTMENTS, NbtMap.class, ItemStackParser::parseEnchantments); + } + + private static void parseDataComponent(GeyserSession session, DataComponents patch, DataComponentType type, + DataComponentParser parser, Object raw) { + try { + patch.put((DataComponentType) type, parser.parse(session, (Raw) raw)); + } catch (ClassCastException exception) { + GeyserImpl.getInstance().getLogger().error("Received incorrect object type for component " + type + "!", exception); + } catch (Exception exception) { + GeyserImpl.getInstance().getLogger().error("Failed to parse component" + type + " from " + raw + "!", exception); + } + } + + public static @Nullable DataComponents parseDataComponentPatch(GeyserSession session, @Nullable NbtMap map) { + if (map == null || map.isEmpty()) { + return null; + } + + DataComponents patch = new DataComponents(new Reference2ObjectOpenHashMap<>()); + try { + for (Map.Entry patchEntry : map.entrySet()) { + String rawType = patchEntry.getKey(); + // When a component starts with a '!', indicates removal of the component from the default component set + boolean removal = rawType.startsWith("!"); + if (removal) { + rawType = rawType.substring(1); + } + + DataComponentType type = DataComponentTypes.fromKey(MinecraftKey.key(rawType)); + if (type == null) { + GeyserImpl.getInstance().getLogger().warning("Received unknown data component " + rawType + " in NBT data component patch: " + map); + } else if (removal) { + // Removals are easy, we don't have to parse anything + patch.put(type, null); + } else { + DataComponentParser parser = PARSERS.get(type); + if (parser != null) { + parseDataComponent(session, patch, type, parser, patchEntry.getValue()); + } else { + GeyserImpl.getInstance().getLogger().debug("Ignoring data component " + type + " whilst parsing NBT patch because there is no parser registered for it"); + } + } + } + } catch (Exception exception) { + GeyserImpl.getInstance().getLogger().error("Failed to parse data component patch from NBT data!", exception); + } + + return patch; + } + + public static ItemStack parseItemStack(GeyserSession session, @Nullable NbtMap map) { + if (map == null) { + return new ItemStack(Items.AIR_ID); + } + + try { + int id = javaItemIdentifierToNetworkId(map.getString("id")); + int count = map.getInt("count"); + DataComponents patch = parseDataComponentPatch(session, map.getCompound("components")); + return new ItemStack(id, count, patch); + } catch (Exception exception) { + GeyserImpl.getInstance().getLogger().error("Failed to parse item stack from NBT data!", exception); + } + return new ItemStack(Items.AIR_ID); + } + + /** + * Shorthand method for calling the following methods: + * + *
    + *
  • {@link ItemStackParser#parseItemStack(GeyserSession, NbtMap)}
  • + *
  • {@link ItemTranslator#translateToBedrock(GeyserSession, ItemStack)}
  • + *
  • {@link BedrockItemBuilder#createItemNbt(ItemData)}
  • + *
+ */ + public static NbtMapBuilder javaItemStackToBedrock(GeyserSession session, @Nullable NbtMap map) { + return BedrockItemBuilder.createItemNbt(ItemTranslator.translateToBedrock(session, parseItemStack(session, map))); + } + + private ItemStackParser() {} + + @FunctionalInterface + private interface DataComponentParser { + + Parsed parse(GeyserSession session, Raw raw) throws Exception; + } +} diff --git a/core/src/main/java/org/geysermc/geyser/item/type/CrossbowItem.java b/core/src/main/java/org/geysermc/geyser/item/type/CrossbowItem.java index 9eb95e4fb..27224f027 100644 --- a/core/src/main/java/org/geysermc/geyser/item/type/CrossbowItem.java +++ b/core/src/main/java/org/geysermc/geyser/item/type/CrossbowItem.java @@ -52,11 +52,8 @@ public class CrossbowItem extends Item { if (chargedProjectiles != null && !chargedProjectiles.isEmpty()) { ItemStack javaProjectile = chargedProjectiles.get(0); - ItemMapping projectileMapping = session.getItemMappings().getMapping(javaProjectile.getId()); ItemData itemData = ItemTranslator.translateToBedrock(session, javaProjectile); - - NbtMapBuilder newProjectile = BedrockItemBuilder.createItemNbt(projectileMapping, itemData.getCount(), itemData.getDamage()); - + NbtMapBuilder newProjectile = BedrockItemBuilder.createItemNbt(itemData); builder.putCompound("chargedItem", newProjectile.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 bf8d4786e..7c614255a 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 @@ -45,6 +45,7 @@ import org.geysermc.geyser.registry.type.ItemMapping; import org.geysermc.geyser.registry.type.ItemMappings; import org.geysermc.geyser.session.GeyserSession; import org.geysermc.geyser.session.cache.registry.JavaRegistries; +import org.geysermc.geyser.session.cache.tags.Tag; import org.geysermc.geyser.text.ChatColor; import org.geysermc.geyser.text.MinecraftLocale; import org.geysermc.geyser.translator.item.BedrockItemBuilder; @@ -53,6 +54,7 @@ import org.geysermc.geyser.util.MinecraftKey; import org.geysermc.mcprotocollib.protocol.data.game.item.component.DataComponentType; import org.geysermc.mcprotocollib.protocol.data.game.item.component.DataComponentTypes; import org.geysermc.mcprotocollib.protocol.data.game.item.component.DataComponents; +import org.geysermc.mcprotocollib.protocol.data.game.item.component.HolderSet; import org.geysermc.mcprotocollib.protocol.data.game.item.component.ItemEnchantments; import org.jetbrains.annotations.UnmodifiableView; @@ -101,6 +103,14 @@ public class Item { return baseComponents.getOrDefault(DataComponentTypes.MAX_STACK_SIZE, 1); } + public boolean is(GeyserSession session, Tag tag) { + return session.getTagCache().is(tag, javaId); + } + + public boolean is(GeyserSession session, HolderSet set) { + return session.getTagCache().is(set, JavaRegistries.ITEM, javaId); + } + /** * Returns an unmodifiable {@link DataComponents} view containing known data components. * Optionally, additional components can be provided to replace (or add to) @@ -256,6 +266,7 @@ public class Item { if (bedrockEnchantment == null) { String enchantmentTranslation = MinecraftLocale.getLocaleString(enchantment.description(), session.locale()); addJavaOnlyEnchantment(session, builder, enchantmentTranslation, level); + builder.addEnchantmentGlint(); return null; } diff --git a/core/src/main/java/org/geysermc/geyser/item/type/PlayerHeadItem.java b/core/src/main/java/org/geysermc/geyser/item/type/PlayerHeadItem.java index 1ead9f2ad..5184e7ac6 100644 --- a/core/src/main/java/org/geysermc/geyser/item/type/PlayerHeadItem.java +++ b/core/src/main/java/org/geysermc/geyser/item/type/PlayerHeadItem.java @@ -30,10 +30,12 @@ import org.geysermc.geyser.item.TooltipOptions; import org.geysermc.geyser.item.components.Rarity; import org.geysermc.geyser.level.block.type.Block; import org.geysermc.geyser.session.GeyserSession; +import org.geysermc.geyser.skin.SkinManager; import org.geysermc.geyser.text.ChatColor; import org.geysermc.geyser.text.MinecraftLocale; import org.geysermc.geyser.translator.item.BedrockItemBuilder; import org.geysermc.mcprotocollib.auth.GameProfile; +import org.geysermc.mcprotocollib.protocol.data.game.entity.player.ResolvableProfile; import org.geysermc.mcprotocollib.protocol.data.game.item.component.DataComponentTypes; import org.geysermc.mcprotocollib.protocol.data.game.item.component.DataComponents; @@ -49,18 +51,25 @@ public class PlayerHeadItem extends BlockItem { // Use the correct color, determined by the rarity of the item char rarity = Rarity.fromId(components.getOrDefault(DataComponentTypes.RARITY, Rarity.COMMON.ordinal())).getColor(); - GameProfile profile = components.get(DataComponentTypes.PROFILE); + ResolvableProfile profile = components.get(DataComponentTypes.PROFILE); if (profile != null) { - String name = profile.getName(); - if (name != null) { - // Add correct name of player skull - String displayName = ChatColor.RESET + ChatColor.ESCAPE + rarity + + // Ideally we'd update the item once the profile is resolved, + // but there's no good way of doing this as we don't know where the item is in an inventory after we have translated it + // So, we request a resolve here, and if the profile has already been resolved it will be returned instantly from cache. + // If not, the next time the item will be translated the profile will probably have been resolved + GameProfile resolved = SkinManager.resolveProfile(profile).getNow(null); + if (resolved != null) { + String name = resolved.getName(); + if (name != null) { + // Add correct name of player skull + String displayName = ChatColor.RESET + ChatColor.ESCAPE + rarity + MinecraftLocale.getLocaleString("block.minecraft.player_head.named", session.locale()).replace("%s", name); - builder.setCustomName(displayName); - } else { - // No name found so default to "Player Head" - builder.setCustomName(ChatColor.RESET + ChatColor.ESCAPE + rarity + + builder.setCustomName(displayName); + } else { + // No name found so default to "Player Head" + builder.setCustomName(ChatColor.RESET + ChatColor.ESCAPE + rarity + MinecraftLocale.getLocaleString("block.minecraft.player_head", session.locale())); + } } } } diff --git a/core/src/main/java/org/geysermc/geyser/level/GameRule.java b/core/src/main/java/org/geysermc/geyser/level/GameRule.java index 8a1af095a..a77d5f09c 100644 --- a/core/src/main/java/org/geysermc/geyser/level/GameRule.java +++ b/core/src/main/java/org/geysermc/geyser/level/GameRule.java @@ -68,7 +68,12 @@ public enum GameRule { SPAWNRADIUS("spawnRadius", 10), SPECTATORSGENERATECHUNKS("spectatorsGenerateChunks", true), // JE only UNIVERSALANGER("universalAnger", false), - LOCATORBAR("locatorBar", true); + LOCATORBAR("locatorBar", true), + ALLOWENTERINGNETHERUSINGPORTALS("allowEnteringNetherUsingPortals", true), // JE only + COMMANDBLOCKSENABLED("commandBlocksEnabled", true), + PVP("pvp", true), + SPAWNMONSTERS("spawnMonsters", true), + SPAWNERBLOCKSENABLED("spawnerBlocksEnabled", true); public static final GameRule[] VALUES = values(); 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 2f3cdfa00..875328738 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 @@ -25,10 +25,24 @@ package org.geysermc.geyser.level.block; -import org.geysermc.geyser.item.Items; import org.geysermc.geyser.level.block.property.ChestType; import org.geysermc.geyser.level.block.property.FrontAndTop; -import org.geysermc.geyser.level.block.type.*; +import org.geysermc.geyser.level.block.type.BannerBlock; +import org.geysermc.geyser.level.block.type.BedBlock; +import org.geysermc.geyser.level.block.type.Block; +import org.geysermc.geyser.level.block.type.ButtonBlock; +import org.geysermc.geyser.level.block.type.CauldronBlock; +import org.geysermc.geyser.level.block.type.ChestBlock; +import org.geysermc.geyser.level.block.type.DoorBlock; +import org.geysermc.geyser.level.block.type.FlowerPotBlock; +import org.geysermc.geyser.level.block.type.FurnaceBlock; +import org.geysermc.geyser.level.block.type.LecternBlock; +import org.geysermc.geyser.level.block.type.MovingPistonBlock; +import org.geysermc.geyser.level.block.type.PistonBlock; +import org.geysermc.geyser.level.block.type.SkullBlock; +import org.geysermc.geyser.level.block.type.TrapDoorBlock; +import org.geysermc.geyser.level.block.type.WallSkullBlock; +import org.geysermc.geyser.level.block.type.WaterBlock; import org.geysermc.geyser.level.physics.Axis; import org.geysermc.geyser.level.physics.Direction; import org.geysermc.geyser.level.physics.PistonBehavior; @@ -329,12 +343,12 @@ public final class Blocks { public static final Block SHORT_DRY_GRASS = register(new Block("short_dry_grass", builder().pushReaction(PistonBehavior.DESTROY))); public static final Block TALL_DRY_GRASS = register(new Block("tall_dry_grass", builder().pushReaction(PistonBehavior.DESTROY))); public static final Block SEAGRASS = register(new Block("seagrass", builder().pushReaction(PistonBehavior.DESTROY))); - public static final Block TALL_SEAGRASS = register(new Block("tall_seagrass", builder().pushReaction(PistonBehavior.DESTROY).pickItem(() -> Items.SEAGRASS) + public static final Block TALL_SEAGRASS = register(new Block("tall_seagrass", builder().pushReaction(PistonBehavior.DESTROY) .enumState(DOUBLE_BLOCK_HALF))); public static final Block PISTON = register(new PistonBlock("piston", builder().destroyTime(1.5f).pushReaction(PistonBehavior.BLOCK) .booleanState(EXTENDED) .enumState(FACING, Direction.NORTH, Direction.EAST, Direction.SOUTH, Direction.WEST, Direction.UP, Direction.DOWN))); - public static final Block PISTON_HEAD = register(new PistonHeadBlock("piston_head", builder().destroyTime(1.5f).pushReaction(PistonBehavior.BLOCK) + public static final Block PISTON_HEAD = register(new Block("piston_head", builder().destroyTime(1.5f).pushReaction(PistonBehavior.BLOCK) .enumState(FACING, Direction.NORTH, Direction.EAST, Direction.SOUTH, Direction.WEST, Direction.UP, Direction.DOWN) .booleanState(SHORT) .enumState(PISTON_TYPE))); @@ -381,12 +395,72 @@ public final class Blocks { public static final Block BOOKSHELF = register(new Block("bookshelf", builder().destroyTime(1.5f))); public static final Block CHISELED_BOOKSHELF = register(new Block("chiseled_bookshelf", builder().setBlockEntity(BlockEntityType.CHISELED_BOOKSHELF).destroyTime(1.5f) .enumState(HORIZONTAL_FACING, Direction.NORTH, Direction.SOUTH, Direction.WEST, Direction.EAST) - .booleanState(CHISELED_BOOKSHELF_SLOT_0_OCCUPIED) - .booleanState(CHISELED_BOOKSHELF_SLOT_1_OCCUPIED) - .booleanState(CHISELED_BOOKSHELF_SLOT_2_OCCUPIED) - .booleanState(CHISELED_BOOKSHELF_SLOT_3_OCCUPIED) - .booleanState(CHISELED_BOOKSHELF_SLOT_4_OCCUPIED) - .booleanState(CHISELED_BOOKSHELF_SLOT_5_OCCUPIED))); + .booleanState(SLOT_0_OCCUPIED) + .booleanState(SLOT_1_OCCUPIED) + .booleanState(SLOT_2_OCCUPIED) + .booleanState(SLOT_3_OCCUPIED) + .booleanState(SLOT_4_OCCUPIED) + .booleanState(SLOT_5_OCCUPIED))); + public static final Block ACACIA_SHELF = register(new Block("acacia_shelf", builder().setBlockEntity(BlockEntityType.SHELF).destroyTime(2.0f) + .enumState(HORIZONTAL_FACING, Direction.NORTH, Direction.SOUTH, Direction.WEST, Direction.EAST) + .booleanState(POWERED) + .enumState(SIDE_CHAIN_PART) + .booleanState(WATERLOGGED))); + public static final Block BAMBOO_SHELF = register(new Block("bamboo_shelf", builder().setBlockEntity(BlockEntityType.SHELF).destroyTime(2.0f) + .enumState(HORIZONTAL_FACING, Direction.NORTH, Direction.SOUTH, Direction.WEST, Direction.EAST) + .booleanState(POWERED) + .enumState(SIDE_CHAIN_PART) + .booleanState(WATERLOGGED))); + public static final Block BIRCH_SHELF = register(new Block("birch_shelf", builder().setBlockEntity(BlockEntityType.SHELF).destroyTime(2.0f) + .enumState(HORIZONTAL_FACING, Direction.NORTH, Direction.SOUTH, Direction.WEST, Direction.EAST) + .booleanState(POWERED) + .enumState(SIDE_CHAIN_PART) + .booleanState(WATERLOGGED))); + public static final Block CHERRY_SHELF = register(new Block("cherry_shelf", builder().setBlockEntity(BlockEntityType.SHELF).destroyTime(2.0f) + .enumState(HORIZONTAL_FACING, Direction.NORTH, Direction.SOUTH, Direction.WEST, Direction.EAST) + .booleanState(POWERED) + .enumState(SIDE_CHAIN_PART) + .booleanState(WATERLOGGED))); + public static final Block CRIMSON_SHELF = register(new Block("crimson_shelf", builder().setBlockEntity(BlockEntityType.SHELF).destroyTime(2.0f) + .enumState(HORIZONTAL_FACING, Direction.NORTH, Direction.SOUTH, Direction.WEST, Direction.EAST) + .booleanState(POWERED) + .enumState(SIDE_CHAIN_PART) + .booleanState(WATERLOGGED))); + public static final Block DARK_OAK_SHELF = register(new Block("dark_oak_shelf", builder().setBlockEntity(BlockEntityType.SHELF).destroyTime(2.0f) + .enumState(HORIZONTAL_FACING, Direction.NORTH, Direction.SOUTH, Direction.WEST, Direction.EAST) + .booleanState(POWERED) + .enumState(SIDE_CHAIN_PART) + .booleanState(WATERLOGGED))); + public static final Block JUNGLE_SHELF = register(new Block("jungle_shelf", builder().setBlockEntity(BlockEntityType.SHELF).destroyTime(2.0f) + .enumState(HORIZONTAL_FACING, Direction.NORTH, Direction.SOUTH, Direction.WEST, Direction.EAST) + .booleanState(POWERED) + .enumState(SIDE_CHAIN_PART) + .booleanState(WATERLOGGED))); + public static final Block MANGROVE_SHELF = register(new Block("mangrove_shelf", builder().setBlockEntity(BlockEntityType.SHELF).destroyTime(2.0f) + .enumState(HORIZONTAL_FACING, Direction.NORTH, Direction.SOUTH, Direction.WEST, Direction.EAST) + .booleanState(POWERED) + .enumState(SIDE_CHAIN_PART) + .booleanState(WATERLOGGED))); + public static final Block OAK_SHELF = register(new Block("oak_shelf", builder().setBlockEntity(BlockEntityType.SHELF).destroyTime(2.0f) + .enumState(HORIZONTAL_FACING, Direction.NORTH, Direction.SOUTH, Direction.WEST, Direction.EAST) + .booleanState(POWERED) + .enumState(SIDE_CHAIN_PART) + .booleanState(WATERLOGGED))); + public static final Block PALE_OAK_SHELF = register(new Block("pale_oak_shelf", builder().setBlockEntity(BlockEntityType.SHELF).destroyTime(2.0f) + .enumState(HORIZONTAL_FACING, Direction.NORTH, Direction.SOUTH, Direction.WEST, Direction.EAST) + .booleanState(POWERED) + .enumState(SIDE_CHAIN_PART) + .booleanState(WATERLOGGED))); + public static final Block SPRUCE_SHELF = register(new Block("spruce_shelf", builder().setBlockEntity(BlockEntityType.SHELF).destroyTime(2.0f) + .enumState(HORIZONTAL_FACING, Direction.NORTH, Direction.SOUTH, Direction.WEST, Direction.EAST) + .booleanState(POWERED) + .enumState(SIDE_CHAIN_PART) + .booleanState(WATERLOGGED))); + public static final Block WARPED_SHELF = register(new Block("warped_shelf", builder().setBlockEntity(BlockEntityType.SHELF).destroyTime(2.0f) + .enumState(HORIZONTAL_FACING, Direction.NORTH, Direction.SOUTH, Direction.WEST, Direction.EAST) + .booleanState(POWERED) + .enumState(SIDE_CHAIN_PART) + .booleanState(WATERLOGGED))); public static final Block MOSSY_COBBLESTONE = register(new Block("mossy_cobblestone", builder().requiresCorrectToolForDrops().destroyTime(2.0f))); public static final Block OBSIDIAN = register(new Block("obsidian", builder().requiresCorrectToolForDrops().destroyTime(50.0f))); public static final Block TORCH = register(new Block("torch", builder().pushReaction(PistonBehavior.DESTROY))); @@ -400,7 +474,7 @@ public final class Blocks { .booleanState(UP) .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 SPAWNER = register(new Block("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(10.0f) .enumState(AXIS, Axis.VALUES) .enumState(CREAKING_HEART_STATE) @@ -665,6 +739,9 @@ public final class Blocks { public static final Block SOUL_TORCH = register(new Block("soul_torch", builder().pushReaction(PistonBehavior.DESTROY))); public static final Block SOUL_WALL_TORCH = register(new Block("soul_wall_torch", builder().pushReaction(PistonBehavior.DESTROY) .enumState(HORIZONTAL_FACING, Direction.NORTH, Direction.SOUTH, Direction.WEST, Direction.EAST))); + public static final Block COPPER_TORCH = register(new Block("copper_torch", builder().pushReaction(PistonBehavior.DESTROY))); + public static final Block COPPER_WALL_TORCH = register(new Block("copper_wall_torch", builder().pushReaction(PistonBehavior.DESTROY) + .enumState(HORIZONTAL_FACING, Direction.NORTH, Direction.SOUTH, Direction.WEST, Direction.EAST))); public static final Block GLOWSTONE = register(new Block("glowstone", builder().destroyTime(0.3f))); public static final Block NETHER_PORTAL = register(new Block("nether_portal", builder().destroyTime(-1.0f).pushReaction(PistonBehavior.BLOCK) .enumState(HORIZONTAL_AXIS, Axis.X, Axis.Z))); @@ -794,7 +871,79 @@ public final class Blocks { .booleanState(SOUTH) .booleanState(WATERLOGGED) .booleanState(WEST))); - public static final Block CHAIN = register(new Block("chain", builder().requiresCorrectToolForDrops().destroyTime(5.0f) + public static final Block COPPER_BARS = register(new Block("copper_bars", builder().requiresCorrectToolForDrops().destroyTime(5.0f) + .booleanState(EAST) + .booleanState(NORTH) + .booleanState(SOUTH) + .booleanState(WATERLOGGED) + .booleanState(WEST))); + public static final Block EXPOSED_COPPER_BARS = register(new Block("exposed_copper_bars", builder().requiresCorrectToolForDrops().destroyTime(5.0f) + .booleanState(EAST) + .booleanState(NORTH) + .booleanState(SOUTH) + .booleanState(WATERLOGGED) + .booleanState(WEST))); + public static final Block WEATHERED_COPPER_BARS = register(new Block("weathered_copper_bars", builder().requiresCorrectToolForDrops().destroyTime(5.0f) + .booleanState(EAST) + .booleanState(NORTH) + .booleanState(SOUTH) + .booleanState(WATERLOGGED) + .booleanState(WEST))); + public static final Block OXIDIZED_COPPER_BARS = register(new Block("oxidized_copper_bars", builder().requiresCorrectToolForDrops().destroyTime(5.0f) + .booleanState(EAST) + .booleanState(NORTH) + .booleanState(SOUTH) + .booleanState(WATERLOGGED) + .booleanState(WEST))); + public static final Block WAXED_COPPER_BARS = register(new Block("waxed_copper_bars", builder().requiresCorrectToolForDrops().destroyTime(5.0f) + .booleanState(EAST) + .booleanState(NORTH) + .booleanState(SOUTH) + .booleanState(WATERLOGGED) + .booleanState(WEST))); + public static final Block WAXED_EXPOSED_COPPER_BARS = register(new Block("waxed_exposed_copper_bars", builder().requiresCorrectToolForDrops().destroyTime(5.0f) + .booleanState(EAST) + .booleanState(NORTH) + .booleanState(SOUTH) + .booleanState(WATERLOGGED) + .booleanState(WEST))); + public static final Block WAXED_WEATHERED_COPPER_BARS = register(new Block("waxed_weathered_copper_bars", builder().requiresCorrectToolForDrops().destroyTime(5.0f) + .booleanState(EAST) + .booleanState(NORTH) + .booleanState(SOUTH) + .booleanState(WATERLOGGED) + .booleanState(WEST))); + public static final Block WAXED_OXIDIZED_COPPER_BARS = register(new Block("waxed_oxidized_copper_bars", builder().requiresCorrectToolForDrops().destroyTime(5.0f) + .booleanState(EAST) + .booleanState(NORTH) + .booleanState(SOUTH) + .booleanState(WATERLOGGED) + .booleanState(WEST))); + public static final Block IRON_CHAIN = register(new Block("iron_chain", builder().requiresCorrectToolForDrops().destroyTime(5.0f) + .enumState(AXIS, Axis.VALUES) + .booleanState(WATERLOGGED))); + public static final Block COPPER_CHAIN = register(new Block("copper_chain", builder().requiresCorrectToolForDrops().destroyTime(5.0f) + .enumState(AXIS, Axis.VALUES) + .booleanState(WATERLOGGED))); + public static final Block EXPOSED_COPPER_CHAIN = register(new Block("exposed_copper_chain", builder().requiresCorrectToolForDrops().destroyTime(5.0f) + .enumState(AXIS, Axis.VALUES) + .booleanState(WATERLOGGED))); + public static final Block WEATHERED_COPPER_CHAIN = register(new Block("weathered_copper_chain", builder().requiresCorrectToolForDrops().destroyTime(5.0f) + .enumState(AXIS, Axis.VALUES) + .booleanState(WATERLOGGED))); + public static final Block OXIDIZED_COPPER_CHAIN = register(new Block("oxidized_copper_chain", builder().requiresCorrectToolForDrops().destroyTime(5.0f) + .enumState(AXIS, Axis.VALUES) + .booleanState(WATERLOGGED))); + public static final Block WAXED_COPPER_CHAIN = register(new Block("waxed_copper_chain", builder().requiresCorrectToolForDrops().destroyTime(5.0f) + .enumState(AXIS, Axis.VALUES) + .booleanState(WATERLOGGED))); + public static final Block WAXED_EXPOSED_COPPER_CHAIN = register(new Block("waxed_exposed_copper_chain", builder().requiresCorrectToolForDrops().destroyTime(5.0f) + .enumState(AXIS, Axis.VALUES) + .booleanState(WATERLOGGED))); + public static final Block WAXED_WEATHERED_COPPER_CHAIN = register(new Block("waxed_weathered_copper_chain", builder().requiresCorrectToolForDrops().destroyTime(5.0f) + .enumState(AXIS, Axis.VALUES) + .booleanState(WATERLOGGED))); + public static final Block WAXED_OXIDIZED_COPPER_CHAIN = register(new Block("waxed_oxidized_copper_chain", builder().requiresCorrectToolForDrops().destroyTime(5.0f) .enumState(AXIS, Axis.VALUES) .booleanState(WATERLOGGED))); public static final Block GLASS_PANE = register(new Block("glass_pane", builder().destroyTime(0.3f) @@ -805,9 +954,9 @@ public final class Blocks { .booleanState(WEST))); public static final Block PUMPKIN = register(new Block("pumpkin", builder().destroyTime(1.0f).pushReaction(PistonBehavior.DESTROY))); public static final Block MELON = register(new Block("melon", builder().destroyTime(1.0f).pushReaction(PistonBehavior.DESTROY))); - public static final Block ATTACHED_PUMPKIN_STEM = register(new Block("attached_pumpkin_stem", builder().pushReaction(PistonBehavior.DESTROY).pickItem(() -> Items.PUMPKIN_SEEDS) + public static final Block ATTACHED_PUMPKIN_STEM = register(new Block("attached_pumpkin_stem", builder().pushReaction(PistonBehavior.DESTROY) .enumState(HORIZONTAL_FACING, Direction.NORTH, Direction.SOUTH, Direction.WEST, Direction.EAST))); - public static final Block ATTACHED_MELON_STEM = register(new Block("attached_melon_stem", builder().pushReaction(PistonBehavior.DESTROY).pickItem(() -> Items.MELON_SEEDS) + public static final Block ATTACHED_MELON_STEM = register(new Block("attached_melon_stem", builder().pushReaction(PistonBehavior.DESTROY) .enumState(HORIZONTAL_FACING, Direction.NORTH, Direction.SOUTH, Direction.WEST, Direction.EAST))); public static final Block PUMPKIN_STEM = register(new Block("pumpkin_stem", builder().pushReaction(PistonBehavior.DESTROY) .intState(AGE_7))); @@ -1797,7 +1946,7 @@ public final class Blocks { public static final Block BLACK_CONCRETE_POWDER = register(new Block("black_concrete_powder", builder().destroyTime(0.5f))); public static final Block KELP = register(new Block("kelp", builder().pushReaction(PistonBehavior.DESTROY) .intState(AGE_25))); - public static final Block KELP_PLANT = register(new Block("kelp_plant", builder().pushReaction(PistonBehavior.DESTROY).pickItem(() -> Items.KELP))); + public static final Block KELP_PLANT = register(new Block("kelp_plant", builder().pushReaction(PistonBehavior.DESTROY))); public static final Block DRIED_KELP_BLOCK = register(new Block("dried_kelp_block", builder().destroyTime(0.5f))); public static final Block TURTLE_EGG = register(new Block("turtle_egg", builder().destroyTime(0.5f).pushReaction(PistonBehavior.DESTROY) .intState(EGGS) @@ -1894,7 +2043,7 @@ public final class Blocks { public static final Block BLUE_ICE = register(new Block("blue_ice", builder().destroyTime(2.8f))); public static final Block CONDUIT = register(new Block("conduit", builder().setBlockEntity(BlockEntityType.CONDUIT).destroyTime(3.0f) .booleanState(WATERLOGGED))); - public static final Block BAMBOO_SAPLING = register(new Block("bamboo_sapling", builder().destroyTime(1.0f).pushReaction(PistonBehavior.DESTROY).pickItem(() -> Items.BAMBOO))); + public static final Block BAMBOO_SAPLING = register(new Block("bamboo_sapling", builder().destroyTime(1.0f).pushReaction(PistonBehavior.DESTROY))); public static final Block BAMBOO = register(new Block("bamboo", builder().destroyTime(1.0f).pushReaction(PistonBehavior.DESTROY) .intState(AGE_1) .enumState(BAMBOO_LEAVES) @@ -2141,6 +2290,30 @@ public final class Blocks { 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 COPPER_LANTERN = register(new Block("copper_lantern", builder().destroyTime(3.5f).pushReaction(PistonBehavior.DESTROY) + .booleanState(HANGING) + .booleanState(WATERLOGGED))); + public static final Block EXPOSED_COPPER_LANTERN = register(new Block("exposed_copper_lantern", builder().destroyTime(3.5f).pushReaction(PistonBehavior.DESTROY) + .booleanState(HANGING) + .booleanState(WATERLOGGED))); + public static final Block WEATHERED_COPPER_LANTERN = register(new Block("weathered_copper_lantern", builder().destroyTime(3.5f).pushReaction(PistonBehavior.DESTROY) + .booleanState(HANGING) + .booleanState(WATERLOGGED))); + public static final Block OXIDIZED_COPPER_LANTERN = register(new Block("oxidized_copper_lantern", builder().destroyTime(3.5f).pushReaction(PistonBehavior.DESTROY) + .booleanState(HANGING) + .booleanState(WATERLOGGED))); + public static final Block WAXED_COPPER_LANTERN = register(new Block("waxed_copper_lantern", builder().destroyTime(3.5f).pushReaction(PistonBehavior.DESTROY) + .booleanState(HANGING) + .booleanState(WATERLOGGED))); + public static final Block WAXED_EXPOSED_COPPER_LANTERN = register(new Block("waxed_exposed_copper_lantern", builder().destroyTime(3.5f).pushReaction(PistonBehavior.DESTROY) + .booleanState(HANGING) + .booleanState(WATERLOGGED))); + public static final Block WAXED_WEATHERED_COPPER_LANTERN = register(new Block("waxed_weathered_copper_lantern", builder().destroyTime(3.5f).pushReaction(PistonBehavior.DESTROY) + .booleanState(HANGING) + .booleanState(WATERLOGGED))); + public static final Block WAXED_OXIDIZED_COPPER_LANTERN = register(new Block("waxed_oxidized_copper_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) .enumState(HORIZONTAL_FACING, Direction.NORTH, Direction.SOUTH, Direction.WEST, Direction.EAST) .booleanState(LIT) @@ -2179,10 +2352,10 @@ public final class Blocks { public static final Block SHROOMLIGHT = register(new Block("shroomlight", builder().destroyTime(1.0f))); public static final Block WEEPING_VINES = register(new Block("weeping_vines", builder().pushReaction(PistonBehavior.DESTROY) .intState(AGE_25))); - public static final Block WEEPING_VINES_PLANT = register(new Block("weeping_vines_plant", builder().pushReaction(PistonBehavior.DESTROY).pickItem(() -> Items.WEEPING_VINES))); + public static final Block WEEPING_VINES_PLANT = register(new Block("weeping_vines_plant", builder().pushReaction(PistonBehavior.DESTROY))); public static final Block TWISTING_VINES = register(new Block("twisting_vines", builder().pushReaction(PistonBehavior.DESTROY) .intState(AGE_25))); - public static final Block TWISTING_VINES_PLANT = register(new Block("twisting_vines_plant", builder().pushReaction(PistonBehavior.DESTROY).pickItem(() -> Items.TWISTING_VINES))); + public static final Block TWISTING_VINES_PLANT = register(new Block("twisting_vines_plant", builder().pushReaction(PistonBehavior.DESTROY))); public static final Block CRIMSON_ROOTS = register(new Block("crimson_roots", builder().pushReaction(PistonBehavior.DESTROY))); public static final Block CRIMSON_PLANKS = register(new Block("crimson_planks", builder().destroyTime(2.0f))); public static final Block WARPED_PLANKS = register(new Block("warped_planks", builder().destroyTime(2.0f))); @@ -2289,7 +2462,7 @@ public final class Blocks { public static final Block BEEHIVE = register(new Block("beehive", builder().setBlockEntity(BlockEntityType.BEEHIVE).destroyTime(0.6f) .enumState(HORIZONTAL_FACING, Direction.NORTH, Direction.SOUTH, Direction.WEST, Direction.EAST) .intState(LEVEL_HONEY))); - public static final Block HONEY_BLOCK = register(new HoneyBlock("honey_block", builder())); + public static final Block HONEY_BLOCK = register(new Block("honey_block", builder())); public static final Block HONEYCOMB_BLOCK = register(new Block("honeycomb_block", builder().destroyTime(0.6f))); public static final Block NETHERITE_BLOCK = register(new Block("netherite_block", builder().requiresCorrectToolForDrops().destroyTime(50.0f))); public static final Block ANCIENT_DEBRIS = register(new Block("ancient_debris", builder().requiresCorrectToolForDrops().destroyTime(30.0f))); @@ -2429,39 +2602,39 @@ public final class Blocks { .intState(CANDLES) .booleanState(LIT) .booleanState(WATERLOGGED))); - public static final Block CANDLE_CAKE = register(new Block("candle_cake", builder().destroyTime(0.5f).pushReaction(PistonBehavior.DESTROY).pickItem(() -> Items.CAKE) + public static final Block CANDLE_CAKE = register(new Block("candle_cake", builder().destroyTime(0.5f).pushReaction(PistonBehavior.DESTROY) .booleanState(LIT))); - public static final Block WHITE_CANDLE_CAKE = register(new Block("white_candle_cake", builder().destroyTime(0.5f).pushReaction(PistonBehavior.DESTROY).pickItem(() -> Items.CAKE) + public static final Block WHITE_CANDLE_CAKE = register(new Block("white_candle_cake", builder().destroyTime(0.5f).pushReaction(PistonBehavior.DESTROY) .booleanState(LIT))); - public static final Block ORANGE_CANDLE_CAKE = register(new Block("orange_candle_cake", builder().destroyTime(0.5f).pushReaction(PistonBehavior.DESTROY).pickItem(() -> Items.CAKE) + public static final Block ORANGE_CANDLE_CAKE = register(new Block("orange_candle_cake", builder().destroyTime(0.5f).pushReaction(PistonBehavior.DESTROY) .booleanState(LIT))); - public static final Block MAGENTA_CANDLE_CAKE = register(new Block("magenta_candle_cake", builder().destroyTime(0.5f).pushReaction(PistonBehavior.DESTROY).pickItem(() -> Items.CAKE) + public static final Block MAGENTA_CANDLE_CAKE = register(new Block("magenta_candle_cake", builder().destroyTime(0.5f).pushReaction(PistonBehavior.DESTROY) .booleanState(LIT))); - public static final Block LIGHT_BLUE_CANDLE_CAKE = register(new Block("light_blue_candle_cake", builder().destroyTime(0.5f).pushReaction(PistonBehavior.DESTROY).pickItem(() -> Items.CAKE) + public static final Block LIGHT_BLUE_CANDLE_CAKE = register(new Block("light_blue_candle_cake", builder().destroyTime(0.5f).pushReaction(PistonBehavior.DESTROY) .booleanState(LIT))); - public static final Block YELLOW_CANDLE_CAKE = register(new Block("yellow_candle_cake", builder().destroyTime(0.5f).pushReaction(PistonBehavior.DESTROY).pickItem(() -> Items.CAKE) + public static final Block YELLOW_CANDLE_CAKE = register(new Block("yellow_candle_cake", builder().destroyTime(0.5f).pushReaction(PistonBehavior.DESTROY) .booleanState(LIT))); - public static final Block LIME_CANDLE_CAKE = register(new Block("lime_candle_cake", builder().destroyTime(0.5f).pushReaction(PistonBehavior.DESTROY).pickItem(() -> Items.CAKE) + public static final Block LIME_CANDLE_CAKE = register(new Block("lime_candle_cake", builder().destroyTime(0.5f).pushReaction(PistonBehavior.DESTROY) .booleanState(LIT))); - public static final Block PINK_CANDLE_CAKE = register(new Block("pink_candle_cake", builder().destroyTime(0.5f).pushReaction(PistonBehavior.DESTROY).pickItem(() -> Items.CAKE) + public static final Block PINK_CANDLE_CAKE = register(new Block("pink_candle_cake", builder().destroyTime(0.5f).pushReaction(PistonBehavior.DESTROY) .booleanState(LIT))); - public static final Block GRAY_CANDLE_CAKE = register(new Block("gray_candle_cake", builder().destroyTime(0.5f).pushReaction(PistonBehavior.DESTROY).pickItem(() -> Items.CAKE) + public static final Block GRAY_CANDLE_CAKE = register(new Block("gray_candle_cake", builder().destroyTime(0.5f).pushReaction(PistonBehavior.DESTROY) .booleanState(LIT))); - public static final Block LIGHT_GRAY_CANDLE_CAKE = register(new Block("light_gray_candle_cake", builder().destroyTime(0.5f).pushReaction(PistonBehavior.DESTROY).pickItem(() -> Items.CAKE) + public static final Block LIGHT_GRAY_CANDLE_CAKE = register(new Block("light_gray_candle_cake", builder().destroyTime(0.5f).pushReaction(PistonBehavior.DESTROY) .booleanState(LIT))); - public static final Block CYAN_CANDLE_CAKE = register(new Block("cyan_candle_cake", builder().destroyTime(0.5f).pushReaction(PistonBehavior.DESTROY).pickItem(() -> Items.CAKE) + public static final Block CYAN_CANDLE_CAKE = register(new Block("cyan_candle_cake", builder().destroyTime(0.5f).pushReaction(PistonBehavior.DESTROY) .booleanState(LIT))); - public static final Block PURPLE_CANDLE_CAKE = register(new Block("purple_candle_cake", builder().destroyTime(0.5f).pushReaction(PistonBehavior.DESTROY).pickItem(() -> Items.CAKE) + public static final Block PURPLE_CANDLE_CAKE = register(new Block("purple_candle_cake", builder().destroyTime(0.5f).pushReaction(PistonBehavior.DESTROY) .booleanState(LIT))); - public static final Block BLUE_CANDLE_CAKE = register(new Block("blue_candle_cake", builder().destroyTime(0.5f).pushReaction(PistonBehavior.DESTROY).pickItem(() -> Items.CAKE) + public static final Block BLUE_CANDLE_CAKE = register(new Block("blue_candle_cake", builder().destroyTime(0.5f).pushReaction(PistonBehavior.DESTROY) .booleanState(LIT))); - public static final Block BROWN_CANDLE_CAKE = register(new Block("brown_candle_cake", builder().destroyTime(0.5f).pushReaction(PistonBehavior.DESTROY).pickItem(() -> Items.CAKE) + public static final Block BROWN_CANDLE_CAKE = register(new Block("brown_candle_cake", builder().destroyTime(0.5f).pushReaction(PistonBehavior.DESTROY) .booleanState(LIT))); - public static final Block GREEN_CANDLE_CAKE = register(new Block("green_candle_cake", builder().destroyTime(0.5f).pushReaction(PistonBehavior.DESTROY).pickItem(() -> Items.CAKE) + public static final Block GREEN_CANDLE_CAKE = register(new Block("green_candle_cake", builder().destroyTime(0.5f).pushReaction(PistonBehavior.DESTROY) .booleanState(LIT))); - public static final Block RED_CANDLE_CAKE = register(new Block("red_candle_cake", builder().destroyTime(0.5f).pushReaction(PistonBehavior.DESTROY).pickItem(() -> Items.CAKE) + public static final Block RED_CANDLE_CAKE = register(new Block("red_candle_cake", builder().destroyTime(0.5f).pushReaction(PistonBehavior.DESTROY) .booleanState(LIT))); - public static final Block BLACK_CANDLE_CAKE = register(new Block("black_candle_cake", builder().destroyTime(0.5f).pushReaction(PistonBehavior.DESTROY).pickItem(() -> Items.CAKE) + public static final Block BLACK_CANDLE_CAKE = register(new Block("black_candle_cake", builder().destroyTime(0.5f).pushReaction(PistonBehavior.DESTROY) .booleanState(LIT))); public static final Block AMETHYST_BLOCK = register(new Block("amethyst_block", builder().requiresCorrectToolForDrops().destroyTime(1.5f))); public static final Block BUDDING_AMETHYST = register(new Block("budding_amethyst", builder().requiresCorrectToolForDrops().destroyTime(1.5f).pushReaction(PistonBehavior.DESTROY))); @@ -2780,10 +2953,102 @@ public final class Blocks { public static final Block WAXED_OXIDIZED_COPPER_BULB = register(new Block("waxed_oxidized_copper_bulb", builder().requiresCorrectToolForDrops().destroyTime(3.0f) .booleanState(LIT) .booleanState(POWERED))); + public static final Block COPPER_CHEST = register(new ChestBlock("copper_chest", builder().setBlockEntity(BlockEntityType.CHEST).requiresCorrectToolForDrops().destroyTime(3.0f) + .enumState(HORIZONTAL_FACING, Direction.NORTH, Direction.SOUTH, Direction.WEST, Direction.EAST) + .enumState(CHEST_TYPE, ChestType.VALUES) + .booleanState(WATERLOGGED))); + public static final Block EXPOSED_COPPER_CHEST = register(new ChestBlock("exposed_copper_chest", builder().setBlockEntity(BlockEntityType.CHEST).requiresCorrectToolForDrops().destroyTime(3.0f) + .enumState(HORIZONTAL_FACING, Direction.NORTH, Direction.SOUTH, Direction.WEST, Direction.EAST) + .enumState(CHEST_TYPE, ChestType.VALUES) + .booleanState(WATERLOGGED))); + public static final Block WEATHERED_COPPER_CHEST = register(new ChestBlock("weathered_copper_chest", builder().setBlockEntity(BlockEntityType.CHEST).requiresCorrectToolForDrops().destroyTime(3.0f) + .enumState(HORIZONTAL_FACING, Direction.NORTH, Direction.SOUTH, Direction.WEST, Direction.EAST) + .enumState(CHEST_TYPE, ChestType.VALUES) + .booleanState(WATERLOGGED))); + public static final Block OXIDIZED_COPPER_CHEST = register(new ChestBlock("oxidized_copper_chest", builder().setBlockEntity(BlockEntityType.CHEST).requiresCorrectToolForDrops().destroyTime(3.0f) + .enumState(HORIZONTAL_FACING, Direction.NORTH, Direction.SOUTH, Direction.WEST, Direction.EAST) + .enumState(CHEST_TYPE, ChestType.VALUES) + .booleanState(WATERLOGGED))); + public static final Block WAXED_COPPER_CHEST = register(new ChestBlock("waxed_copper_chest", builder().setBlockEntity(BlockEntityType.CHEST).requiresCorrectToolForDrops().destroyTime(3.0f) + .enumState(HORIZONTAL_FACING, Direction.NORTH, Direction.SOUTH, Direction.WEST, Direction.EAST) + .enumState(CHEST_TYPE, ChestType.VALUES) + .booleanState(WATERLOGGED))); + public static final Block WAXED_EXPOSED_COPPER_CHEST = register(new ChestBlock("waxed_exposed_copper_chest", builder().setBlockEntity(BlockEntityType.CHEST).requiresCorrectToolForDrops().destroyTime(3.0f) + .enumState(HORIZONTAL_FACING, Direction.NORTH, Direction.SOUTH, Direction.WEST, Direction.EAST) + .enumState(CHEST_TYPE, ChestType.VALUES) + .booleanState(WATERLOGGED))); + public static final Block WAXED_WEATHERED_COPPER_CHEST = register(new ChestBlock("waxed_weathered_copper_chest", builder().setBlockEntity(BlockEntityType.CHEST).requiresCorrectToolForDrops().destroyTime(3.0f) + .enumState(HORIZONTAL_FACING, Direction.NORTH, Direction.SOUTH, Direction.WEST, Direction.EAST) + .enumState(CHEST_TYPE, ChestType.VALUES) + .booleanState(WATERLOGGED))); + public static final Block WAXED_OXIDIZED_COPPER_CHEST = register(new ChestBlock("waxed_oxidized_copper_chest", builder().setBlockEntity(BlockEntityType.CHEST).requiresCorrectToolForDrops().destroyTime(3.0f) + .enumState(HORIZONTAL_FACING, Direction.NORTH, Direction.SOUTH, Direction.WEST, Direction.EAST) + .enumState(CHEST_TYPE, ChestType.VALUES) + .booleanState(WATERLOGGED))); + public static final Block COPPER_GOLEM_STATUE = register(new Block("copper_golem_statue", builder().setBlockEntity(BlockEntityType.COPPER_GOLEM_STATUE).destroyTime(3.0f).pushReaction(PistonBehavior.DESTROY) + .enumState(COPPER_GOLEM_POSE) + .enumState(HORIZONTAL_FACING, Direction.NORTH, Direction.SOUTH, Direction.WEST, Direction.EAST) + .booleanState(WATERLOGGED))); + public static final Block EXPOSED_COPPER_GOLEM_STATUE = register(new Block("exposed_copper_golem_statue", builder().setBlockEntity(BlockEntityType.COPPER_GOLEM_STATUE).destroyTime(3.0f).pushReaction(PistonBehavior.DESTROY) + .enumState(COPPER_GOLEM_POSE) + .enumState(HORIZONTAL_FACING, Direction.NORTH, Direction.SOUTH, Direction.WEST, Direction.EAST) + .booleanState(WATERLOGGED))); + public static final Block WEATHERED_COPPER_GOLEM_STATUE = register(new Block("weathered_copper_golem_statue", builder().setBlockEntity(BlockEntityType.COPPER_GOLEM_STATUE).destroyTime(3.0f).pushReaction(PistonBehavior.DESTROY) + .enumState(COPPER_GOLEM_POSE) + .enumState(HORIZONTAL_FACING, Direction.NORTH, Direction.SOUTH, Direction.WEST, Direction.EAST) + .booleanState(WATERLOGGED))); + public static final Block OXIDIZED_COPPER_GOLEM_STATUE = register(new Block("oxidized_copper_golem_statue", builder().setBlockEntity(BlockEntityType.COPPER_GOLEM_STATUE).destroyTime(3.0f).pushReaction(PistonBehavior.DESTROY) + .enumState(COPPER_GOLEM_POSE) + .enumState(HORIZONTAL_FACING, Direction.NORTH, Direction.SOUTH, Direction.WEST, Direction.EAST) + .booleanState(WATERLOGGED))); + public static final Block WAXED_COPPER_GOLEM_STATUE = register(new Block("waxed_copper_golem_statue", builder().setBlockEntity(BlockEntityType.COPPER_GOLEM_STATUE).destroyTime(3.0f).pushReaction(PistonBehavior.DESTROY) + .enumState(COPPER_GOLEM_POSE) + .enumState(HORIZONTAL_FACING, Direction.NORTH, Direction.SOUTH, Direction.WEST, Direction.EAST) + .booleanState(WATERLOGGED))); + public static final Block WAXED_EXPOSED_COPPER_GOLEM_STATUE = register(new Block("waxed_exposed_copper_golem_statue", builder().setBlockEntity(BlockEntityType.COPPER_GOLEM_STATUE).destroyTime(3.0f).pushReaction(PistonBehavior.DESTROY) + .enumState(COPPER_GOLEM_POSE) + .enumState(HORIZONTAL_FACING, Direction.NORTH, Direction.SOUTH, Direction.WEST, Direction.EAST) + .booleanState(WATERLOGGED))); + public static final Block WAXED_WEATHERED_COPPER_GOLEM_STATUE = register(new Block("waxed_weathered_copper_golem_statue", builder().setBlockEntity(BlockEntityType.COPPER_GOLEM_STATUE).destroyTime(3.0f).pushReaction(PistonBehavior.DESTROY) + .enumState(COPPER_GOLEM_POSE) + .enumState(HORIZONTAL_FACING, Direction.NORTH, Direction.SOUTH, Direction.WEST, Direction.EAST) + .booleanState(WATERLOGGED))); + public static final Block WAXED_OXIDIZED_COPPER_GOLEM_STATUE = register(new Block("waxed_oxidized_copper_golem_statue", builder().setBlockEntity(BlockEntityType.COPPER_GOLEM_STATUE).destroyTime(3.0f).pushReaction(PistonBehavior.DESTROY) + .enumState(COPPER_GOLEM_POSE) + .enumState(HORIZONTAL_FACING, Direction.NORTH, Direction.SOUTH, Direction.WEST, Direction.EAST) + .booleanState(WATERLOGGED))); public static final Block LIGHTNING_ROD = register(new Block("lightning_rod", builder().requiresCorrectToolForDrops().destroyTime(3.0f) .enumState(FACING, Direction.NORTH, Direction.EAST, Direction.SOUTH, Direction.WEST, Direction.UP, Direction.DOWN) .booleanState(POWERED) .booleanState(WATERLOGGED))); + public static final Block EXPOSED_LIGHTNING_ROD = register(new Block("exposed_lightning_rod", builder().requiresCorrectToolForDrops().destroyTime(3.0f) + .enumState(FACING, Direction.NORTH, Direction.EAST, Direction.SOUTH, Direction.WEST, Direction.UP, Direction.DOWN) + .booleanState(POWERED) + .booleanState(WATERLOGGED))); + public static final Block WEATHERED_LIGHTNING_ROD = register(new Block("weathered_lightning_rod", builder().requiresCorrectToolForDrops().destroyTime(3.0f) + .enumState(FACING, Direction.NORTH, Direction.EAST, Direction.SOUTH, Direction.WEST, Direction.UP, Direction.DOWN) + .booleanState(POWERED) + .booleanState(WATERLOGGED))); + public static final Block OXIDIZED_LIGHTNING_ROD = register(new Block("oxidized_lightning_rod", builder().requiresCorrectToolForDrops().destroyTime(3.0f) + .enumState(FACING, Direction.NORTH, Direction.EAST, Direction.SOUTH, Direction.WEST, Direction.UP, Direction.DOWN) + .booleanState(POWERED) + .booleanState(WATERLOGGED))); + public static final Block WAXED_LIGHTNING_ROD = register(new Block("waxed_lightning_rod", builder().requiresCorrectToolForDrops().destroyTime(3.0f) + .enumState(FACING, Direction.NORTH, Direction.EAST, Direction.SOUTH, Direction.WEST, Direction.UP, Direction.DOWN) + .booleanState(POWERED) + .booleanState(WATERLOGGED))); + public static final Block WAXED_EXPOSED_LIGHTNING_ROD = register(new Block("waxed_exposed_lightning_rod", builder().requiresCorrectToolForDrops().destroyTime(3.0f) + .enumState(FACING, Direction.NORTH, Direction.EAST, Direction.SOUTH, Direction.WEST, Direction.UP, Direction.DOWN) + .booleanState(POWERED) + .booleanState(WATERLOGGED))); + public static final Block WAXED_WEATHERED_LIGHTNING_ROD = register(new Block("waxed_weathered_lightning_rod", builder().requiresCorrectToolForDrops().destroyTime(3.0f) + .enumState(FACING, Direction.NORTH, Direction.EAST, Direction.SOUTH, Direction.WEST, Direction.UP, Direction.DOWN) + .booleanState(POWERED) + .booleanState(WATERLOGGED))); + public static final Block WAXED_OXIDIZED_LIGHTNING_ROD = register(new Block("waxed_oxidized_lightning_rod", builder().requiresCorrectToolForDrops().destroyTime(3.0f) + .enumState(FACING, Direction.NORTH, Direction.EAST, Direction.SOUTH, Direction.WEST, Direction.UP, Direction.DOWN) + .booleanState(POWERED) + .booleanState(WATERLOGGED))); public static final Block POINTED_DRIPSTONE = register(new Block("pointed_dripstone", builder().destroyTime(1.5f).pushReaction(PistonBehavior.DESTROY) .enumState(DRIPSTONE_THICKNESS) .enumState(VERTICAL_DIRECTION, Direction.UP, Direction.DOWN) @@ -2792,7 +3057,7 @@ public final class Blocks { public static final Block CAVE_VINES = register(new Block("cave_vines", builder().pushReaction(PistonBehavior.DESTROY) .intState(AGE_25) .booleanState(BERRIES))); - public static final Block CAVE_VINES_PLANT = register(new Block("cave_vines_plant", builder().pushReaction(PistonBehavior.DESTROY).pickItem(() -> Items.GLOW_BERRIES) + public static final Block CAVE_VINES_PLANT = register(new Block("cave_vines_plant", builder().pushReaction(PistonBehavior.DESTROY) .booleanState(BERRIES))); public static final Block SPORE_BLOSSOM = register(new Block("spore_blossom", builder().pushReaction(PistonBehavior.DESTROY))); public static final Block AZALEA = register(new Block("azalea", builder().pushReaction(PistonBehavior.DESTROY))); diff --git a/core/src/main/java/org/geysermc/geyser/level/block/GeyserJavaBlockState.java b/core/src/main/java/org/geysermc/geyser/level/block/GeyserJavaBlockState.java index 782f664fc..5848d0a76 100644 --- a/core/src/main/java/org/geysermc/geyser/level/block/GeyserJavaBlockState.java +++ b/core/src/main/java/org/geysermc/geyser/level/block/GeyserJavaBlockState.java @@ -14,7 +14,6 @@ public class GeyserJavaBlockState implements JavaBlockState { boolean waterlogged; JavaBoundingBox[] collision; boolean canBreakWithHand; - String pickItem; String pistonBehavior; private GeyserJavaBlockState(Builder builder) { @@ -25,7 +24,6 @@ public class GeyserJavaBlockState implements JavaBlockState { this.waterlogged = builder.waterlogged; this.collision = builder.collision; this.canBreakWithHand = builder.canBreakWithHand; - this.pickItem = builder.pickItem; this.pistonBehavior = builder.pistonBehavior; } @@ -66,7 +64,7 @@ public class GeyserJavaBlockState implements JavaBlockState { @Override public @Nullable String pickItem() { - return pickItem; + return null; } @Override @@ -88,7 +86,6 @@ public class GeyserJavaBlockState implements JavaBlockState { private boolean waterlogged; private JavaBoundingBox[] collision; private boolean canBreakWithHand; - private String pickItem; private String pistonBehavior; @Override @@ -134,8 +131,8 @@ public class GeyserJavaBlockState implements JavaBlockState { } @Override + @Deprecated public Builder pickItem(@Nullable String pickItem) { - this.pickItem = pickItem; return this; } diff --git a/core/src/main/java/org/geysermc/geyser/level/block/property/BasicEnumProperty.java b/core/src/main/java/org/geysermc/geyser/level/block/property/BasicEnumProperty.java index c34392504..91119f2b3 100644 --- a/core/src/main/java/org/geysermc/geyser/level/block/property/BasicEnumProperty.java +++ b/core/src/main/java/org/geysermc/geyser/level/block/property/BasicEnumProperty.java @@ -26,6 +26,7 @@ package org.geysermc.geyser.level.block.property; import java.util.List; +import java.util.Optional; /** * Represents enums we don't need classes for in Geyser. @@ -57,6 +58,11 @@ public final class BasicEnumProperty extends Property { return (T) this.values; } + @Override + public Optional valueOf(String string) { + return values.contains(string) ? Optional.of(string) : Optional.empty(); + } + public static BasicEnumProperty create(String name, String... values) { return new BasicEnumProperty(name, List.of(values)); } diff --git a/core/src/main/java/org/geysermc/geyser/level/block/property/BooleanProperty.java b/core/src/main/java/org/geysermc/geyser/level/block/property/BooleanProperty.java index 56877f537..2d17fac66 100644 --- a/core/src/main/java/org/geysermc/geyser/level/block/property/BooleanProperty.java +++ b/core/src/main/java/org/geysermc/geyser/level/block/property/BooleanProperty.java @@ -25,6 +25,8 @@ package org.geysermc.geyser.level.block.property; +import java.util.Optional; + public final class BooleanProperty extends Property { private BooleanProperty(String name) { super(name); @@ -40,6 +42,16 @@ public final class BooleanProperty extends Property { return value ? 0 : 1; } + @Override + public Optional valueOf(String string) { + // Not using Boolean.parseBoolean because that will return false for any string not "true" + return switch (string) { + case "true" -> Optional.of(true); + case "false" -> Optional.of(false); + default -> Optional.empty(); + }; + } + public static BooleanProperty create(String name) { return new BooleanProperty(name); } diff --git a/core/src/main/java/org/geysermc/geyser/level/block/property/EnumProperty.java b/core/src/main/java/org/geysermc/geyser/level/block/property/EnumProperty.java index e31f665f9..3aecb1465 100644 --- a/core/src/main/java/org/geysermc/geyser/level/block/property/EnumProperty.java +++ b/core/src/main/java/org/geysermc/geyser/level/block/property/EnumProperty.java @@ -25,31 +25,43 @@ package org.geysermc.geyser.level.block.property; -import it.unimi.dsi.fastutil.ints.IntArrayList; -import it.unimi.dsi.fastutil.ints.IntList; +import java.util.Locale; +import java.util.Optional; public final class EnumProperty> extends Property { - private final IntList ordinalValues; + private final T[] values; /** * @param values all possible values of this enum. */ private EnumProperty(String name, T[] values) { super(name); - this.ordinalValues = new IntArrayList(values.length); - for (T anEnum : values) { - this.ordinalValues.add(anEnum.ordinal()); - } + this.values = values; } @Override public int valuesCount() { - return this.ordinalValues.size(); + return values.length; } @Override public int indexOf(T value) { - return this.ordinalValues.indexOf(value.ordinal()); + for (int i = 0; i < values.length; i++) { + if (value == values[i]) { + return i; + } + } + throw new IllegalArgumentException("Property " + this + " does not have value " + value); + } + + @Override + public Optional valueOf(String string) { + for (T value : values) { + if (value.name().toLowerCase(Locale.ROOT).equals(string)) { + return Optional.of(value); + } + } + return Optional.empty(); } @SafeVarargs diff --git a/core/src/main/java/org/geysermc/geyser/level/block/property/IntegerProperty.java b/core/src/main/java/org/geysermc/geyser/level/block/property/IntegerProperty.java index a772f414d..cce11e15d 100644 --- a/core/src/main/java/org/geysermc/geyser/level/block/property/IntegerProperty.java +++ b/core/src/main/java/org/geysermc/geyser/level/block/property/IntegerProperty.java @@ -25,6 +25,8 @@ package org.geysermc.geyser.level.block.property; +import java.util.Optional; + public final class IntegerProperty extends Property { private final int offset; private final int valuesCount; @@ -53,6 +55,16 @@ public final class IntegerProperty extends Property { return this.offset + this.valuesCount; } + @Override + public Optional valueOf(String string) { + try { + int value = Integer.parseInt(string); + return value >= low() && value <= high() ? Optional.of(value) : Optional.empty(); + } catch (NumberFormatException exception) { + return Optional.empty(); + } + } + public static IntegerProperty create(String name, int low, int high) { return new IntegerProperty(name, low, high); } 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 5506130e3..df3a0c3cc 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 @@ -90,6 +90,7 @@ public final class Properties { public static final BasicEnumProperty WEST_REDSTONE = BasicEnumProperty.create("west", "up", "side", "none"); public static final BasicEnumProperty DOUBLE_BLOCK_HALF = BasicEnumProperty.create("half", "upper", "lower"); public static final BasicEnumProperty HALF = BasicEnumProperty.create("half", "top", "bottom"); + public static final BasicEnumProperty SIDE_CHAIN_PART = BasicEnumProperty.create("side_chain", "unconnected", "right", "center", "left"); public static final BasicEnumProperty RAIL_SHAPE = BasicEnumProperty.create("shape", "north_south", "east_west", "ascending_east", "ascending_west", "ascending_north", "ascending_south", "south_east", "south_west", "north_west", "north_east"); public static final BasicEnumProperty RAIL_SHAPE_STRAIGHT = BasicEnumProperty.create("shape", "north_south", "east_west", "ascending_east", "ascending_west", "ascending_north", "ascending_south"); public static final IntegerProperty AGE_1 = IntegerProperty.create("age", 0, 1); @@ -135,12 +136,12 @@ public final class Properties { public static final EnumProperty VERTICAL_DIRECTION = EnumProperty.create("vertical_direction", Direction.UP, Direction.DOWN); public static final BasicEnumProperty DRIPSTONE_THICKNESS = BasicEnumProperty.create("thickness", "tip_merge", "tip", "frustum", "middle", "base"); public static final BasicEnumProperty SCULK_SENSOR_PHASE = BasicEnumProperty.create("sculk_sensor_phase", "inactive", "active", "cooldown"); - public static final BooleanProperty CHISELED_BOOKSHELF_SLOT_0_OCCUPIED = BooleanProperty.create("slot_0_occupied"); - public static final BooleanProperty CHISELED_BOOKSHELF_SLOT_1_OCCUPIED = BooleanProperty.create("slot_1_occupied"); - public static final BooleanProperty CHISELED_BOOKSHELF_SLOT_2_OCCUPIED = BooleanProperty.create("slot_2_occupied"); - public static final BooleanProperty CHISELED_BOOKSHELF_SLOT_3_OCCUPIED = BooleanProperty.create("slot_3_occupied"); - public static final BooleanProperty CHISELED_BOOKSHELF_SLOT_4_OCCUPIED = BooleanProperty.create("slot_4_occupied"); - public static final BooleanProperty CHISELED_BOOKSHELF_SLOT_5_OCCUPIED = BooleanProperty.create("slot_5_occupied"); + public static final BooleanProperty SLOT_0_OCCUPIED = BooleanProperty.create("slot_0_occupied"); + public static final BooleanProperty SLOT_1_OCCUPIED = BooleanProperty.create("slot_1_occupied"); + public static final BooleanProperty SLOT_2_OCCUPIED = BooleanProperty.create("slot_2_occupied"); + public static final BooleanProperty SLOT_3_OCCUPIED = BooleanProperty.create("slot_3_occupied"); + public static final BooleanProperty SLOT_4_OCCUPIED = BooleanProperty.create("slot_4_occupied"); + public static final BooleanProperty SLOT_5_OCCUPIED = BooleanProperty.create("slot_5_occupied"); public static final IntegerProperty DUSTED = IntegerProperty.create("dusted", 0, 3); public static final BooleanProperty CRACKED = BooleanProperty.create("cracked"); public static final BooleanProperty CRAFTING = BooleanProperty.create("crafting"); @@ -150,4 +151,5 @@ public final class Properties { public static final BooleanProperty OMINOUS = BooleanProperty.create("ominous"); public static final BasicEnumProperty TEST_BLOCK_MODE = BasicEnumProperty.create("mode", "start", "log", "fail", "accept"); public static final BooleanProperty MAP = BooleanProperty.create("map"); + public static final BasicEnumProperty COPPER_GOLEM_POSE = BasicEnumProperty.create("copper_golem_pose", "standing", "sitting", "running", "star"); } diff --git a/core/src/main/java/org/geysermc/geyser/level/block/property/Property.java b/core/src/main/java/org/geysermc/geyser/level/block/property/Property.java index 0c4713124..e38da7588 100644 --- a/core/src/main/java/org/geysermc/geyser/level/block/property/Property.java +++ b/core/src/main/java/org/geysermc/geyser/level/block/property/Property.java @@ -25,6 +25,8 @@ package org.geysermc.geyser.level.block.property; +import java.util.Optional; + public abstract class Property> { private final String name; @@ -40,6 +42,8 @@ public abstract class Property> { public abstract int indexOf(T value); + public abstract Optional valueOf(String string); + @Override public String toString() { return getClass().getSimpleName() + "[" + name + "]"; diff --git a/core/src/main/java/org/geysermc/geyser/level/block/type/Block.java b/core/src/main/java/org/geysermc/geyser/level/block/type/Block.java index 3ac4e8f3a..a32328c35 100644 --- a/core/src/main/java/org/geysermc/geyser/level/block/type/Block.java +++ b/core/src/main/java/org/geysermc/geyser/level/block/type/Block.java @@ -41,12 +41,17 @@ import org.geysermc.geyser.level.block.property.Property; import org.geysermc.geyser.level.physics.PistonBehavior; import org.geysermc.geyser.registry.BlockRegistries; import org.geysermc.geyser.session.GeyserSession; -import org.geysermc.mcprotocollib.protocol.data.game.item.ItemStack; +import org.geysermc.geyser.session.cache.registry.JavaRegistries; +import org.geysermc.geyser.session.cache.tags.Tag; +import org.geysermc.mcprotocollib.protocol.data.game.item.component.HolderSet; import org.geysermc.mcprotocollib.protocol.data.game.level.block.BlockEntityType; import org.intellij.lang.annotations.Subst; -import java.util.*; -import java.util.function.Supplier; +import java.util.ArrayList; +import java.util.Collections; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; import java.util.stream.Stream; public class Block { @@ -60,11 +65,6 @@ public class Block { private final @Nullable BlockEntityType blockEntityType; private final float destroyTime; private final @NonNull PistonBehavior pushReaction; - /** - * Used for classes we don't have implemented yet that override Mojmap getCloneItemStack with their own item. - * A supplier prevents any issues arising where the Items class finishes before the Blocks class. - */ - private final Supplier pickItem; protected Item item = null; private int javaId = -1; @@ -80,7 +80,6 @@ public class Block { this.blockEntityType = builder.blockEntityType; this.destroyTime = builder.destroyTime; this.pushReaction = builder.pushReaction; - this.pickItem = builder.pickItem; BlockState firstState = builder.build(this).get(0); this.propertyKeys = builder.propertyKeys; // Ensure this is not null before iterating over states @@ -158,13 +157,6 @@ public class Block { return this.item; } - public ItemStack pickItem(BlockState state) { - if (this.pickItem != null) { - return new ItemStack(this.pickItem.get().javaId()); - } - return new ItemStack(this.asItem().javaId()); - } - /** * Should only be ran on block creation. Can be overridden. * @param firstState the first state created from this block @@ -215,6 +207,14 @@ public class Block { this.javaId = javaId; } + public boolean is(GeyserSession session, Tag tag) { + return session.getTagCache().is(tag, javaId); + } + + public boolean is(GeyserSession session, HolderSet set) { + return session.getTagCache().is(set, JavaRegistries.BLOCK, javaId); + } + @Override public String toString() { return "Block{" + @@ -223,7 +223,7 @@ public class Block { '}'; } - Property[] propertyKeys() { + public Property[] propertyKeys() { return propertyKeys; } @@ -237,7 +237,6 @@ public class Block { private BlockEntityType blockEntityType = null; private PistonBehavior pushReaction = PistonBehavior.NORMAL; private float destroyTime; - private Supplier pickItem; // We'll use this field after building private Property[] propertyKeys = null; @@ -294,11 +293,6 @@ public class Block { return this; } - public Builder pickItem(Supplier pickItem) { - this.pickItem = pickItem; - return this; - } - public Builder javaId(int javaId) { this.javaId = javaId; return this; diff --git a/core/src/main/java/org/geysermc/geyser/level/block/type/FlowerPotBlock.java b/core/src/main/java/org/geysermc/geyser/level/block/type/FlowerPotBlock.java index 5107616af..28cddb2c8 100644 --- a/core/src/main/java/org/geysermc/geyser/level/block/type/FlowerPotBlock.java +++ b/core/src/main/java/org/geysermc/geyser/level/block/type/FlowerPotBlock.java @@ -34,7 +34,6 @@ import org.geysermc.geyser.session.GeyserSession; import org.geysermc.geyser.translator.level.block.entity.BedrockChunkWantsBlockEntityTag; import org.geysermc.geyser.translator.level.block.entity.BlockEntityTranslator; import org.geysermc.geyser.util.BlockEntityUtils; -import org.geysermc.mcprotocollib.protocol.data.game.item.ItemStack; public class FlowerPotBlock extends Block implements BedrockChunkWantsBlockEntityTag { private final Block flower; @@ -78,14 +77,6 @@ public class FlowerPotBlock extends Block implements BedrockChunkWantsBlockEntit return tagBuilder.build(); } - @Override - public ItemStack pickItem(BlockState state) { - if (this.flower != Blocks.AIR) { - return new ItemStack(this.flower.asItem().javaId()); - } - return super.pickItem(state); - } - public Block flower() { return flower; } diff --git a/core/src/main/java/org/geysermc/geyser/level/block/type/SkullBlock.java b/core/src/main/java/org/geysermc/geyser/level/block/type/SkullBlock.java index d41d160f8..76b532919 100644 --- a/core/src/main/java/org/geysermc/geyser/level/block/type/SkullBlock.java +++ b/core/src/main/java/org/geysermc/geyser/level/block/type/SkullBlock.java @@ -25,20 +25,10 @@ package org.geysermc.geyser.level.block.type; -import org.geysermc.mcprotocollib.auth.GameProfile; import org.cloudburstmc.math.vector.Vector3i; -import org.cloudburstmc.nbt.NbtMap; -import org.cloudburstmc.nbt.NbtMapBuilder; import org.cloudburstmc.protocol.bedrock.data.definitions.BlockDefinition; -import org.geysermc.geyser.inventory.GeyserItemStack; import org.geysermc.geyser.session.GeyserSession; import org.geysermc.geyser.session.cache.SkullCache; -import org.geysermc.mcprotocollib.protocol.data.game.item.ItemStack; -import org.geysermc.mcprotocollib.protocol.data.game.item.component.DataComponentTypes; -import org.geysermc.mcprotocollib.protocol.data.game.item.component.DataComponents; - -import java.util.Collections; -import java.util.UUID; public class SkullBlock extends Block { private final Type type; @@ -65,32 +55,6 @@ public class SkullBlock extends Block { // It's not an empty skull. } - public ItemStack pickItem(GeyserSession session, BlockState state, Vector3i position) { - SkullCache.Skull skull = session.getSkullCache().getSkulls().get(position); - if (skull == null) { - return new ItemStack(pickItem(state).getId()); - } - - GeyserItemStack itemStack = GeyserItemStack.of(pickItem(state).getId(), 1); - // This is a universal block entity behavior, but hardcode how it works for now. - NbtMapBuilder builder = NbtMap.builder() - .putString("id", "minecraft:skull") - .putInt("x", position.getX()) - .putInt("y", position.getY()) - .putInt("z", position.getZ()); - DataComponents components = itemStack.getOrCreateComponents(); - components.put(DataComponentTypes.BLOCK_ENTITY_DATA, builder.build()); - - UUID uuid = skull.getUuid(); - String texturesProperty = skull.getTexturesProperty(); - GameProfile profile = new GameProfile(uuid, null); - if (texturesProperty != null) { - profile.setProperties(Collections.singletonList(new GameProfile.Property("textures", texturesProperty))); - } - components.put(DataComponentTypes.PROFILE, profile); - return itemStack.getItemStack(); - } - public Type skullType() { return type; } diff --git a/core/src/main/java/org/geysermc/geyser/level/physics/Direction.java b/core/src/main/java/org/geysermc/geyser/level/physics/Direction.java index 4821734f3..d4e304f76 100644 --- a/core/src/main/java/org/geysermc/geyser/level/physics/Direction.java +++ b/core/src/main/java/org/geysermc/geyser/level/physics/Direction.java @@ -26,8 +26,12 @@ package org.geysermc.geyser.level.physics; import lombok.Getter; +import lombok.experimental.Accessors; import org.checkerframework.checker.nullness.qual.NonNull; import org.cloudburstmc.math.vector.Vector3i; +import org.geysermc.geyser.GeyserImpl; + +import java.util.function.ToIntFunction; public enum Direction { DOWN(1, Vector3i.from(0, -1, 0), Axis.Y, org.geysermc.mcprotocollib.protocol.data.game.entity.object.Direction.DOWN), @@ -45,13 +49,15 @@ public enum Direction { private final Vector3i unitVector; @Getter private final Axis axis; - private final org.geysermc.mcprotocollib.protocol.data.game.entity.object.Direction pistonValue; + @Getter + @Accessors(fluent = true) + private final org.geysermc.mcprotocollib.protocol.data.game.entity.object.Direction mcpl; - Direction(int reversedId, Vector3i unitVector, Axis axis, org.geysermc.mcprotocollib.protocol.data.game.entity.object.Direction pistonValue) { + Direction(int reversedId, Vector3i unitVector, Axis axis, org.geysermc.mcprotocollib.protocol.data.game.entity.object.Direction mcpl) { this.reversedId = reversedId; this.unitVector = unitVector; this.axis = axis; - this.pistonValue = pistonValue; + this.mcpl = mcpl; } public Direction reversed() { @@ -66,12 +72,21 @@ public enum Direction { return axis == Axis.X || axis == Axis.Z; } - public static @NonNull Direction fromPistonValue(org.geysermc.mcprotocollib.protocol.data.game.entity.object.Direction pistonValue) { + public static @NonNull Direction fromMCPL(org.geysermc.mcprotocollib.protocol.data.game.entity.object.Direction mcpl) { for (Direction direction : VALUES) { - if (direction.pistonValue == pistonValue) { + if (direction.mcpl == mcpl) { return direction; } } throw new IllegalStateException(); } + + public static Direction getUntrusted(T source, ToIntFunction idExtractor) { + int id = idExtractor.applyAsInt(source); + if (id < 0 || id >= VALUES.length) { + GeyserImpl.getInstance().getLogger().warning("Received invalid direction from " + source + " (ID was " + id + ")"); + return DOWN; // Default to DOWN when receiving an invalid ID + } + return Direction.VALUES[id]; + } } 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 f215a6733..060005240 100644 --- a/core/src/main/java/org/geysermc/geyser/network/GameProtocol.java +++ b/core/src/main/java/org/geysermc/geyser/network/GameProtocol.java @@ -29,11 +29,10 @@ import it.unimi.dsi.fastutil.ints.IntArrayList; import it.unimi.dsi.fastutil.ints.IntList; import org.checkerframework.checker.nullness.qual.Nullable; import org.cloudburstmc.protocol.bedrock.codec.BedrockCodec; -import org.cloudburstmc.protocol.bedrock.codec.v786.Bedrock_v786; -import org.cloudburstmc.protocol.bedrock.codec.v800.Bedrock_v800; import org.cloudburstmc.protocol.bedrock.codec.v818.Bedrock_v818; import org.cloudburstmc.protocol.bedrock.codec.v819.Bedrock_v819; import org.cloudburstmc.protocol.bedrock.codec.v827.Bedrock_v827; +import org.cloudburstmc.protocol.bedrock.codec.v844.Bedrock_v844; import org.cloudburstmc.protocol.bedrock.netty.codec.packet.BedrockPacketCodec; import org.geysermc.geyser.api.util.MinecraftVersion; import org.geysermc.geyser.impl.MinecraftVersionImpl; @@ -84,11 +83,10 @@ public final class GameProtocol { static { // Strict ordering - register(Bedrock_v786.CODEC, "1.21.70", "1.21.71", "1.21.72", "1.21.73"); - register(Bedrock_v800.CODEC, "1.21.80", "1.21.81", "1.21.82", "1.21.83", "1.21.84"); register(Bedrock_v818.CODEC, "1.21.90", "1.21.91", "1.21.92"); register(Bedrock_v819.CODEC, "1.21.93", "1.21.94"); register(Bedrock_v827.CODEC, "1.21.100", "1.21.101"); + register(Bedrock_v844.CODEC, "1.21.111", "1.21.112", "1.21.113"); MinecraftVersion latestBedrock = SUPPORTED_BEDROCK_VERSIONS.get(SUPPORTED_BEDROCK_VERSIONS.size() - 1); DEFAULT_BEDROCK_VERSION = latestBedrock.versionString(); @@ -140,20 +138,16 @@ public final class GameProtocol { /* Bedrock convenience methods to gatekeep features and easily remove the check on version removal */ - public static boolean isTheOneVersionWithBrokenForms(GeyserSession session) { - return session.protocolVersion() == Bedrock_v786.CODEC.getProtocolVersion(); + public static boolean is1_21_100(GeyserSession session) { + return session.protocolVersion() == Bedrock_v827.CODEC.getProtocolVersion(); } - public static boolean is1_21_80orHigher(GeyserSession session) { - return session.protocolVersion() >= Bedrock_v800.CODEC.getProtocolVersion(); + public static boolean is1_21_110orHigher(GeyserSession session) { + return is1_21_110orHigher(session.protocolVersion()); } - public static boolean is1_21_90orHigher(GeyserSession session) { - return session.protocolVersion() >= Bedrock_v818.CODEC.getProtocolVersion(); - } - - public static boolean is1_21_80(GeyserSession session) { - return session.protocolVersion() == Bedrock_v800.CODEC.getProtocolVersion(); + public static boolean is1_21_110orHigher(int protocolVersion) { + return protocolVersion >= Bedrock_v844.CODEC.getProtocolVersion(); } /** @@ -162,7 +156,7 @@ public final class GameProtocol { * @return the supported Minecraft: Java Edition version names */ public static List getJavaVersions() { - return List.of(DEFAULT_JAVA_CODEC.getMinecraftVersion(), "1.21.8"); + return List.of(DEFAULT_JAVA_CODEC.getMinecraftVersion()); } /** @@ -180,7 +174,7 @@ public final class GameProtocol { * @return the supported Minecraft: Java Edition version */ public static String getJavaMinecraftVersion() { - return "1.21.8"; + return "1.21.10"; } /** 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 f58bdf5dc..5b4d3a45e 100644 --- a/core/src/main/java/org/geysermc/geyser/network/UpstreamPacketHandler.java +++ b/core/src/main/java/org/geysermc/geyser/network/UpstreamPacketHandler.java @@ -151,14 +151,14 @@ public class UpstreamPacketHandler extends LoggingPacketHandler { } @Override - public void onDisconnect(String reason) { + public void onDisconnect(CharSequence reason) { // Use our own disconnect messages for these reasons - if (BedrockDisconnectReasons.CLOSED.equals(reason)) { + if (BedrockDisconnectReasons.CLOSED.contentEquals(reason)) { this.session.getUpstream().getSession().setDisconnectReason(GeyserLocale.getLocaleStringLog("geyser.network.disconnect.closed_by_remote_peer")); - } else if (BedrockDisconnectReasons.TIMEOUT.equals(reason)) { + } else if (BedrockDisconnectReasons.TIMEOUT.contentEquals(reason)) { this.session.getUpstream().getSession().setDisconnectReason(GeyserLocale.getLocaleStringLog("geyser.network.disconnect.timed_out")); } - this.session.disconnect(this.session.getUpstream().getSession().getDisconnectReason()); + this.session.disconnect(this.session.getUpstream().getSession().getDisconnectReason().toString()); } @Override @@ -288,16 +288,10 @@ public class UpstreamPacketHandler extends LoggingPacketHandler { stackPacket.setForcedToAccept(false); // Leaving this as false allows the player to choose to download or not stackPacket.setGameVersion(session.getClientData().getGameVersion()); stackPacket.getResourcePacks().addAll(this.resourcePackLoadEvent.orderedPacks()); - // Allows Vibrant Visuals to be toggled in the settings - if (session.isAllowVibrantVisuals() && !GameProtocol.is1_21_90orHigher(session)) { - stackPacket.getExperiments().add(new ExperimentData("experimental_graphics", true)); - } - if (GameProtocol.is1_21_80(session)) { - // Support happy ghasts in .80 - stackPacket.getExperiments().add(new ExperimentData("y_2025_drop_2", true)); - // Enables the locator bar for 1.21.80 clients - stackPacket.getExperiments().add(new ExperimentData("locator_bar", true)); + if (GameProtocol.is1_21_100(session)) { + // Support copper age drop features (or some of them) in 1.21.100 + stackPacket.getExperiments().add(new ExperimentData("y_2025_drop_3", true)); } session.sendUpstreamPacket(stackPacket); 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 d2c0e26b2..5aed0d5a5 100644 --- a/core/src/main/java/org/geysermc/geyser/registry/Registries.java +++ b/core/src/main/java/org/geysermc/geyser/registry/Registries.java @@ -29,6 +29,7 @@ import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap; import it.unimi.dsi.fastutil.objects.Object2IntMap; import it.unimi.dsi.fastutil.objects.Object2ObjectMap; import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap; +import net.kyori.adventure.key.Key; import org.cloudburstmc.nbt.NbtMap; import org.cloudburstmc.nbt.NbtMapBuilder; import org.cloudburstmc.protocol.bedrock.data.biome.BiomeDefinitions; @@ -56,6 +57,7 @@ import org.geysermc.geyser.registry.provider.ProviderSupplier; import org.geysermc.geyser.registry.type.ItemMappings; import org.geysermc.geyser.registry.type.ParticleMapping; import org.geysermc.geyser.registry.type.SoundMapping; +import org.geysermc.geyser.registry.type.UtilMappings; import org.geysermc.geyser.translator.level.block.entity.BlockEntityTranslator; import org.geysermc.geyser.translator.level.event.LevelEventTranslator; import org.geysermc.geyser.translator.sound.SoundInteractionTranslator; @@ -197,6 +199,21 @@ public final class Registries { */ public static final SimpleMappedDeferredRegistry> SOUND_TRANSLATORS = SimpleMappedDeferredRegistry.create("org.geysermc.geyser.translator.sound.SoundTranslator", SoundTranslatorRegistryLoader::new); + /** + * A registry containing all of Java's "game master blocks" - blocks that can't be broken without operator permission level 2 or higher. + */ + public static final ListDeferredRegistry GAME_MASTER_BLOCKS = ListDeferredRegistry.create(UtilMappings::gameMasterBlocks, RegistryLoaders.UTIL_MAPPINGS_KEYS); + + /** + * A registry containing all block entities Java considers "dangerous" - these have a red warning in the item tooltip on Java. + */ + public static final ListDeferredRegistry DANGEROUS_BLOCK_ENTITIES = ListDeferredRegistry.create(UtilMappings::dangerousBlockEntities, RegistryLoaders.UTIL_MAPPINGS_KEYS); + + /** + * A registry containing all entities Java considers "dangerous" - spawn eggs of these entities have a red warning in the item tooltip on Java. + */ + public static final ListDeferredRegistry DANGEROUS_ENTITIES = ListDeferredRegistry.create(UtilMappings::dangerousEntities, RegistryLoaders.UTIL_MAPPINGS_KEYS); + public static void load() { if (loaded) return; loaded = true; @@ -216,6 +233,10 @@ public final class Registries { SOUNDS.load(); SOUND_LEVEL_EVENTS.load(); SOUND_TRANSLATORS.load(); + + GAME_MASTER_BLOCKS.load(); + DANGEROUS_BLOCK_ENTITIES.load(); + DANGEROUS_ENTITIES.load(); } public static void populate() { diff --git a/core/src/main/java/org/geysermc/geyser/registry/loader/ProviderRegistryLoader.java b/core/src/main/java/org/geysermc/geyser/registry/loader/ProviderRegistryLoader.java index b1f62ca99..48e08cc9c 100644 --- a/core/src/main/java/org/geysermc/geyser/registry/loader/ProviderRegistryLoader.java +++ b/core/src/main/java/org/geysermc/geyser/registry/loader/ProviderRegistryLoader.java @@ -44,8 +44,10 @@ import org.geysermc.geyser.api.pack.UrlPackCodec; import org.geysermc.geyser.api.pack.option.PriorityOption; import org.geysermc.geyser.api.pack.option.SubpackOption; import org.geysermc.geyser.api.pack.option.UrlFallbackOption; +import org.geysermc.geyser.api.util.Identifier; import org.geysermc.geyser.event.GeyserEventRegistrar; import org.geysermc.geyser.extension.command.GeyserExtensionCommand; +import org.geysermc.geyser.impl.IdentifierImpl; import org.geysermc.geyser.impl.camera.GeyserCameraFade; import org.geysermc.geyser.impl.camera.GeyserCameraPosition; import org.geysermc.geyser.item.GeyserCustomItemData; @@ -74,6 +76,9 @@ public class ProviderRegistryLoader implements RegistryLoader, Prov @Override public Map, ProviderSupplier> load(Map, ProviderSupplier> providers) { + // misc + providers.put(Identifier.class, args -> IdentifierImpl.of((String) args[0], (String) args[1])); + // commands providers.put(Command.Builder.class, args -> new GeyserExtensionCommand.Builder<>((Extension) args[0])); diff --git a/core/src/main/java/org/geysermc/geyser/registry/loader/RegistryLoaders.java b/core/src/main/java/org/geysermc/geyser/registry/loader/RegistryLoaders.java index 0b26e0178..af4810f31 100644 --- a/core/src/main/java/org/geysermc/geyser/registry/loader/RegistryLoaders.java +++ b/core/src/main/java/org/geysermc/geyser/registry/loader/RegistryLoaders.java @@ -25,8 +25,11 @@ package org.geysermc.geyser.registry.loader; +import net.kyori.adventure.key.Key; import org.checkerframework.checker.nullness.qual.NonNull; +import org.geysermc.geyser.registry.type.UtilMappings; +import java.util.List; import java.util.function.Supplier; /** @@ -48,6 +51,8 @@ public final class RegistryLoaders { */ public static final ResourcePackLoader RESOURCE_PACKS = new ResourcePackLoader(); + public static final UtilMappings.Loader> UTIL_MAPPINGS_KEYS = new UtilMappings.Loader<>(); + /** * Wraps the surrounding {@link Supplier} in a {@link RegistryLoader} which does * not take in any input value. 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 a69cc815b..a3b58a3f2 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 @@ -44,11 +44,10 @@ import org.cloudburstmc.nbt.NbtMap; import org.cloudburstmc.nbt.NbtMapBuilder; import org.cloudburstmc.nbt.NbtType; import org.cloudburstmc.nbt.NbtUtils; -import org.cloudburstmc.protocol.bedrock.codec.v786.Bedrock_v786; -import org.cloudburstmc.protocol.bedrock.codec.v800.Bedrock_v800; import org.cloudburstmc.protocol.bedrock.codec.v818.Bedrock_v818; import org.cloudburstmc.protocol.bedrock.codec.v819.Bedrock_v819; import org.cloudburstmc.protocol.bedrock.codec.v827.Bedrock_v827; +import org.cloudburstmc.protocol.bedrock.codec.v844.Bedrock_v844; import org.cloudburstmc.protocol.bedrock.data.BlockPropertyData; import org.cloudburstmc.protocol.bedrock.data.definitions.BlockDefinition; import org.geysermc.geyser.GeyserImpl; @@ -61,7 +60,8 @@ 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.registry.BlockRegistries; -import org.geysermc.geyser.registry.populator.conversion.Conversion800_786; +import org.geysermc.geyser.registry.populator.conversion.Conversion827_819; +import org.geysermc.geyser.registry.populator.conversion.Conversion844_827; import org.geysermc.geyser.registry.type.BlockMappings; import org.geysermc.geyser.registry.type.GeyserBedrockBlock; import org.geysermc.geyser.util.JsonUtils; @@ -122,11 +122,10 @@ public final class BlockRegistryPopulator { private static void registerBedrockBlocks() { var blockMappers = ImmutableMap., Remapper>builder() - .put(ObjectIntPair.of("1_21_70", Bedrock_v786.CODEC.getProtocolVersion()), Conversion800_786::remapBlock) - .put(ObjectIntPair.of("1_21_80", Bedrock_v800.CODEC.getProtocolVersion()), tag -> tag) - .put(ObjectIntPair.of("1_21_90", Bedrock_v818.CODEC.getProtocolVersion()), tag -> tag) - .put(ObjectIntPair.of("1_21_90", Bedrock_v819.CODEC.getProtocolVersion()), tag -> tag) - .put(ObjectIntPair.of("1_21_100", Bedrock_v827.CODEC.getProtocolVersion()), tag -> tag) + .put(ObjectIntPair.of("1_21_90", Bedrock_v818.CODEC.getProtocolVersion()), Conversion827_819::remapBlock) + .put(ObjectIntPair.of("1_21_90", Bedrock_v819.CODEC.getProtocolVersion()), Conversion827_819::remapBlock) + .put(ObjectIntPair.of("1_21_100", Bedrock_v827.CODEC.getProtocolVersion()), Conversion844_827::remapBlock) + .put(ObjectIntPair.of("1_21_110", Bedrock_v844.CODEC.getProtocolVersion()), tag -> tag) .build(); // We can keep this strong as nothing should be garbage collected diff --git a/core/src/main/java/org/geysermc/geyser/registry/populator/CustomBlockRegistryPopulator.java b/core/src/main/java/org/geysermc/geyser/registry/populator/CustomBlockRegistryPopulator.java index 4d33666ed..898b29015 100644 --- a/core/src/main/java/org/geysermc/geyser/registry/populator/CustomBlockRegistryPopulator.java +++ b/core/src/main/java/org/geysermc/geyser/registry/populator/CustomBlockRegistryPopulator.java @@ -50,7 +50,6 @@ import org.geysermc.geyser.api.block.custom.property.CustomBlockProperty; import org.geysermc.geyser.api.block.custom.property.PropertyType; import org.geysermc.geyser.api.event.lifecycle.GeyserDefineCustomBlocksEvent; import org.geysermc.geyser.api.util.CreativeCategory; -import org.geysermc.geyser.item.Items; import org.geysermc.geyser.level.block.Blocks; import org.geysermc.geyser.level.block.GeyserCustomBlockComponents; import org.geysermc.geyser.level.block.GeyserCustomBlockData; @@ -58,17 +57,15 @@ import org.geysermc.geyser.level.block.GeyserCustomBlockState; import org.geysermc.geyser.level.block.GeyserGeometryComponent; import org.geysermc.geyser.level.block.GeyserMaterialInstance; import org.geysermc.geyser.level.block.type.Block; -import org.geysermc.geyser.level.block.type.BlockState; import org.geysermc.geyser.level.physics.BoundingBox; import org.geysermc.geyser.level.physics.PistonBehavior; +import org.geysermc.geyser.network.GameProtocol; import org.geysermc.geyser.registry.BlockRegistries; -import org.geysermc.geyser.registry.Registries; import org.geysermc.geyser.registry.mappings.MappingsConfigReader; import org.geysermc.geyser.registry.type.CustomSkull; import org.geysermc.geyser.translator.collision.OtherCollision; import org.geysermc.geyser.util.BlockUtils; import org.geysermc.geyser.util.MathUtils; -import org.geysermc.mcprotocollib.protocol.data.game.item.ItemStack; import java.util.ArrayList; import java.util.Arrays; @@ -284,21 +281,7 @@ public class CustomBlockRegistryPopulator { builder.requiresCorrectToolForDrops(); } String cleanJavaIdentifier = BlockUtils.getCleanIdentifier(javaBlockState.identifier()); - String pickItem = javaBlockState.pickItem(); - Block block = new Block(cleanJavaIdentifier, builder) { - @Override - public ItemStack pickItem(BlockState state) { - if (this.item == null) { - this.item = Registries.JAVA_ITEM_IDENTIFIERS.get(pickItem); - if (this.item == null) { - GeyserImpl.getInstance().getLogger().warning("We could not find item " + pickItem - + " for getting the item for block " + javaBlockState.identifier()); - this.item = Items.AIR; - } - } - return new ItemStack(this.item.javaId()); - } - }; + Block block = new Block(cleanJavaIdentifier, builder); block.setJavaId(javaBlockState.stateGroupId()); BlockRegistries.JAVA_BLOCKS.registerWithAnyIndex(javaBlockState.stateGroupId(), block, Blocks.AIR); @@ -466,8 +449,14 @@ public class CustomBlockRegistryPopulator { MaterialInstance materialInstance = entry.getValue(); NbtMapBuilder materialBuilder = NbtMap.builder() .putString("render_method", materialInstance.renderMethod()) - .putBoolean("face_dimming", materialInstance.faceDimming()) - .putBoolean("ambient_occlusion", materialInstance.faceDimming()); + .putBoolean("ambient_occlusion", materialInstance.ambientOcclusion()); + + if (GameProtocol.is1_21_110orHigher(protocolVersion)) { + materialBuilder.putBoolean("packed_bools", materialInstance.faceDimming()); + } else { + materialBuilder.putBoolean("face_dimming", materialInstance.faceDimming()); + } + // Texture can be unspecified when blocks.json is used in RP (https://wiki.bedrock.dev/blocks/blocks-stable.html#minecraft-material-instances) if (materialInstance.texture() != null) { materialBuilder.putString("texture", materialInstance.texture()); 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 4b92c6250..5790aff53 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 @@ -49,7 +49,6 @@ 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.DataComponentTypes; -import org.geysermc.mcprotocollib.protocol.data.game.item.component.DataComponentTypes; import org.geysermc.mcprotocollib.protocol.data.game.item.component.DataComponents; import java.util.ArrayList; @@ -346,7 +345,7 @@ public class CustomItemRegistryPopulator { .putString("event", "tool_durability") .putString("target", "self") .build()) - .putBoolean("use_efficiency", true) + .putBoolean("use_efficiency", false) .build() ); diff --git a/core/src/main/java/org/geysermc/geyser/registry/populator/CustomSkullRegistryPopulator.java b/core/src/main/java/org/geysermc/geyser/registry/populator/CustomSkullRegistryPopulator.java index 3aa33e00e..4328f8978 100644 --- a/core/src/main/java/org/geysermc/geyser/registry/populator/CustomSkullRegistryPopulator.java +++ b/core/src/main/java/org/geysermc/geyser/registry/populator/CustomSkullRegistryPopulator.java @@ -46,11 +46,15 @@ import java.io.IOException; import java.nio.file.Path; import java.util.ArrayList; import java.util.List; +import java.util.UUID; import java.util.concurrent.ExecutionException; import java.util.function.Function; +import java.util.regex.Pattern; public class CustomSkullRegistryPopulator { + private static final Pattern SKULL_HASH_PATTERN = Pattern.compile("^[a-fA-F0-9]+$"); + public static void populate() { SkullResourcePackManager.SKULL_SKINS.clear(); // Remove skins after reloading BlockRegistries.CUSTOM_SKULLS.set(Object2ObjectMaps.emptyMap()); @@ -117,8 +121,8 @@ public class CustomSkullRegistryPopulator { }); skinHashes.forEach((skinHash) -> { - if (!skinHash.matches("^[a-fA-F0-9]+$")) { - GeyserImpl.getInstance().getLogger().error("Skin hash " + skinHash + " does not match required format ^[a-fA-F0-9]{64}$ and will not be added as a custom block."); + if (!SKULL_HASH_PATTERN.matcher(skinHash).matches()) { + GeyserImpl.getInstance().getLogger().error("Skin hash " + skinHash + " does not match required format ^[a-fA-F0-9]+$ and will not be added as a custom block."); return; } @@ -176,15 +180,14 @@ public class CustomSkullRegistryPopulator { */ private static @Nullable String getProfileFromUuid(String uuid) { try { - String uuidDigits = uuid.replace("-", ""); - if (uuidDigits.length() != 32) { - GeyserImpl.getInstance().getLogger().error("Invalid skull uuid " + uuid + " This skull will not be added as a custom block."); - return null; - } - return SkinProvider.requestTexturesFromUUID(uuid).get(); + UUID parsed = UUID.fromString(uuid); + return SkinProvider.requestTexturesFromUUID(parsed).get(); } catch (InterruptedException | ExecutionException e) { GeyserImpl.getInstance().getLogger().error("Unable to request skull textures for " + uuid + " This skull will not be added as a custom block.", e); return null; + } catch (IllegalArgumentException e) { + GeyserImpl.getInstance().getLogger().error("Invalid skull uuid " + uuid + " This skull will not be added as a custom block."); + return null; } } } 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 ef3168f41..78e6156a4 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 @@ -57,7 +57,7 @@ public final class DataComponentRegistryPopulator { public static void populate() { GeyserBootstrap bootstrap = GeyserImpl.getInstance().getBootstrap(); List defaultComponents; - try (InputStream stream = bootstrap.getResourceOrThrow("java/item_data_components.json")) { + try (InputStream stream = bootstrap.getResourceOrThrow("mappings/item_data_components.json")) { //noinspection deprecation - 1.16.5 breaks otherwise JsonElement rootElement = new JsonParser().parse(new InputStreamReader(stream)); JsonArray jsonArray = rootElement.getAsJsonArray(); 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 116086997..394c9c27c 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 @@ -45,11 +45,10 @@ import org.cloudburstmc.nbt.NbtMap; import org.cloudburstmc.nbt.NbtMapBuilder; import org.cloudburstmc.nbt.NbtType; import org.cloudburstmc.nbt.NbtUtils; -import org.cloudburstmc.protocol.bedrock.codec.v786.Bedrock_v786; -import org.cloudburstmc.protocol.bedrock.codec.v800.Bedrock_v800; import org.cloudburstmc.protocol.bedrock.codec.v818.Bedrock_v818; import org.cloudburstmc.protocol.bedrock.codec.v819.Bedrock_v819; import org.cloudburstmc.protocol.bedrock.codec.v827.Bedrock_v827; +import org.cloudburstmc.protocol.bedrock.codec.v844.Bedrock_v844; import org.cloudburstmc.protocol.bedrock.data.definitions.BlockDefinition; import org.cloudburstmc.protocol.bedrock.data.definitions.ItemDefinition; import org.cloudburstmc.protocol.bedrock.data.definitions.SimpleItemDefinition; @@ -74,6 +73,7 @@ import org.geysermc.geyser.item.type.Item; import org.geysermc.geyser.level.block.property.Properties; import org.geysermc.geyser.registry.BlockRegistries; import org.geysermc.geyser.registry.Registries; +import org.geysermc.geyser.registry.populator.conversion.Conversion844_827; import org.geysermc.geyser.registry.type.BlockMappings; import org.geysermc.geyser.registry.type.GeyserBedrockBlock; import org.geysermc.geyser.registry.type.GeyserMappingItem; @@ -109,6 +109,10 @@ public class ItemRegistryPopulator { public PaletteVersion(String version, int protocolVersion, Map javaOnlyItems) { this(version, protocolVersion, javaOnlyItems, (item, mapping) -> mapping); } + + public PaletteVersion(String version, int protocolVersion, Remapper remapper) { + this(version, protocolVersion, Collections.emptyMap(), remapper); + } } @FunctionalInterface @@ -118,39 +122,82 @@ public class ItemRegistryPopulator { } public static void populate() { - // Fallbacks for 1.21.6 items (1.21.6 -> 1.21.5) - Map itemFallbacks = new HashMap<>(); - itemFallbacks.put(Items.BLACK_HARNESS, Items.SADDLE); - itemFallbacks.put(Items.BLUE_HARNESS, Items.SADDLE); - itemFallbacks.put(Items.BROWN_HARNESS, Items.SADDLE); - itemFallbacks.put(Items.RED_HARNESS, Items.SADDLE); - itemFallbacks.put(Items.GREEN_HARNESS, Items.SADDLE); - itemFallbacks.put(Items.YELLOW_HARNESS, Items.SADDLE); - itemFallbacks.put(Items.ORANGE_HARNESS, Items.SADDLE); - itemFallbacks.put(Items.MAGENTA_HARNESS, Items.SADDLE); - itemFallbacks.put(Items.LIGHT_BLUE_HARNESS, Items.SADDLE); - itemFallbacks.put(Items.LIME_HARNESS, Items.SADDLE); - itemFallbacks.put(Items.PINK_HARNESS, Items.SADDLE); - itemFallbacks.put(Items.GRAY_HARNESS, Items.SADDLE); - itemFallbacks.put(Items.CYAN_HARNESS, Items.SADDLE); - itemFallbacks.put(Items.PURPLE_HARNESS, Items.SADDLE); - itemFallbacks.put(Items.LIGHT_GRAY_HARNESS, Items.SADDLE); - itemFallbacks.put(Items.WHITE_HARNESS, Items.SADDLE); - itemFallbacks.put(Items.HAPPY_GHAST_SPAWN_EGG, Items.EGG); - itemFallbacks.put(Items.DRIED_GHAST, Items.PLAYER_HEAD); - itemFallbacks.put(Items.MUSIC_DISC_TEARS, Items.MUSIC_DISC_5); - itemFallbacks.put(Items.MUSIC_DISC_LAVA_CHICKEN, Items.MUSIC_DISC_CHIRP); + Map eightTwoSevenFallbacks = new HashMap<>(); + eightTwoSevenFallbacks.put(Items.ACACIA_SHELF, Items.CHISELED_BOOKSHELF); + eightTwoSevenFallbacks.put(Items.BAMBOO_SHELF, Items.CHISELED_BOOKSHELF); + eightTwoSevenFallbacks.put(Items.BIRCH_SHELF, Items.CHISELED_BOOKSHELF); + eightTwoSevenFallbacks.put(Items.CHERRY_SHELF, Items.CHISELED_BOOKSHELF); + eightTwoSevenFallbacks.put(Items.CRIMSON_SHELF, Items.CHISELED_BOOKSHELF); + eightTwoSevenFallbacks.put(Items.DARK_OAK_SHELF, Items.CHISELED_BOOKSHELF); + eightTwoSevenFallbacks.put(Items.JUNGLE_SHELF, Items.CHISELED_BOOKSHELF); + eightTwoSevenFallbacks.put(Items.MANGROVE_SHELF, Items.CHISELED_BOOKSHELF); + eightTwoSevenFallbacks.put(Items.OAK_SHELF, Items.CHISELED_BOOKSHELF); + eightTwoSevenFallbacks.put(Items.PALE_OAK_SHELF, Items.CHISELED_BOOKSHELF); + eightTwoSevenFallbacks.put(Items.SPRUCE_SHELF, Items.CHISELED_BOOKSHELF); + eightTwoSevenFallbacks.put(Items.WARPED_SHELF, Items.CHISELED_BOOKSHELF); + eightTwoSevenFallbacks.put(Items.COPPER_BARS, Items.IRON_BARS); + eightTwoSevenFallbacks.put(Items.EXPOSED_COPPER_BARS, Items.IRON_BARS); + eightTwoSevenFallbacks.put(Items.WEATHERED_COPPER_BARS, Items.IRON_BARS); + eightTwoSevenFallbacks.put(Items.OXIDIZED_COPPER_BARS, Items.IRON_BARS); + eightTwoSevenFallbacks.put(Items.WAXED_COPPER_BARS, Items.IRON_BARS); + eightTwoSevenFallbacks.put(Items.WAXED_EXPOSED_COPPER_BARS, Items.IRON_BARS); + eightTwoSevenFallbacks.put(Items.WAXED_WEATHERED_COPPER_BARS, Items.IRON_BARS); + eightTwoSevenFallbacks.put(Items.WAXED_OXIDIZED_COPPER_BARS, Items.IRON_BARS); + eightTwoSevenFallbacks.put(Items.COPPER_GOLEM_STATUE, Items.ARMOR_STAND); + eightTwoSevenFallbacks.put(Items.EXPOSED_COPPER_GOLEM_STATUE, Items.ARMOR_STAND); + eightTwoSevenFallbacks.put(Items.WEATHERED_COPPER_GOLEM_STATUE, Items.ARMOR_STAND); + eightTwoSevenFallbacks.put(Items.OXIDIZED_COPPER_GOLEM_STATUE, Items.ARMOR_STAND); + eightTwoSevenFallbacks.put(Items.WAXED_COPPER_GOLEM_STATUE, Items.ARMOR_STAND); + eightTwoSevenFallbacks.put(Items.WAXED_EXPOSED_COPPER_GOLEM_STATUE, Items.ARMOR_STAND); + eightTwoSevenFallbacks.put(Items.WAXED_WEATHERED_COPPER_GOLEM_STATUE, Items.ARMOR_STAND); + eightTwoSevenFallbacks.put(Items.WAXED_OXIDIZED_COPPER_GOLEM_STATUE, Items.ARMOR_STAND); + eightTwoSevenFallbacks.put(Items.COPPER_LANTERN, Items.LANTERN); + eightTwoSevenFallbacks.put(Items.EXPOSED_COPPER_LANTERN, Items.LANTERN); + eightTwoSevenFallbacks.put(Items.WEATHERED_COPPER_LANTERN, Items.LANTERN); + eightTwoSevenFallbacks.put(Items.OXIDIZED_COPPER_LANTERN, Items.LANTERN); + eightTwoSevenFallbacks.put(Items.WAXED_COPPER_LANTERN, Items.LANTERN); + eightTwoSevenFallbacks.put(Items.WAXED_EXPOSED_COPPER_LANTERN, Items.LANTERN); + eightTwoSevenFallbacks.put(Items.WAXED_WEATHERED_COPPER_LANTERN, Items.LANTERN); + eightTwoSevenFallbacks.put(Items.WAXED_OXIDIZED_COPPER_LANTERN, Items.LANTERN); + eightTwoSevenFallbacks.put(Items.EXPOSED_LIGHTNING_ROD, Items.LIGHTNING_ROD); + eightTwoSevenFallbacks.put(Items.WEATHERED_LIGHTNING_ROD, Items.LIGHTNING_ROD); + eightTwoSevenFallbacks.put(Items.OXIDIZED_LIGHTNING_ROD, Items.LIGHTNING_ROD); + eightTwoSevenFallbacks.put(Items.WAXED_LIGHTNING_ROD, Items.LIGHTNING_ROD); + eightTwoSevenFallbacks.put(Items.WAXED_EXPOSED_LIGHTNING_ROD, Items.LIGHTNING_ROD); + eightTwoSevenFallbacks.put(Items.WAXED_WEATHERED_LIGHTNING_ROD, Items.LIGHTNING_ROD); + eightTwoSevenFallbacks.put(Items.WAXED_OXIDIZED_LIGHTNING_ROD, Items.LIGHTNING_ROD); + eightTwoSevenFallbacks.put(Items.COPPER_TORCH, Items.TORCH); + eightTwoSevenFallbacks.put(Items.COPPER_HORSE_ARMOR, Items.LEATHER_HORSE_ARMOR); - Map fallbacks1_21_80 = new HashMap<>(); - fallbacks1_21_80.put(Items.MUSIC_DISC_LAVA_CHICKEN, Items.MUSIC_DISC_CHIRP); - fallbacks1_21_80.put(Items.MUSIC_DISC_TEARS, Items.MUSIC_DISC_5); + Map eightOneNineFallbacks = new HashMap<>(eightTwoSevenFallbacks); + eightOneNineFallbacks.put(Items.COPPER_CHEST, Items.CHEST); + eightOneNineFallbacks.put(Items.EXPOSED_COPPER_CHEST, Items.CHEST); + eightOneNineFallbacks.put(Items.WEATHERED_COPPER_CHEST, Items.CHEST); + eightOneNineFallbacks.put(Items.OXIDIZED_COPPER_CHEST, Items.CHEST); + eightOneNineFallbacks.put(Items.WAXED_COPPER_CHEST, Items.CHEST); + eightOneNineFallbacks.put(Items.WAXED_EXPOSED_COPPER_CHEST, Items.CHEST); + eightOneNineFallbacks.put(Items.WAXED_WEATHERED_COPPER_CHEST, Items.CHEST); + eightOneNineFallbacks.put(Items.WAXED_OXIDIZED_COPPER_CHEST, Items.CHEST); + eightOneNineFallbacks.put(Items.COPPER_HELMET, Items.LEATHER_HELMET); + eightOneNineFallbacks.put(Items.COPPER_CHESTPLATE, Items.LEATHER_CHESTPLATE); + eightOneNineFallbacks.put(Items.COPPER_LEGGINGS, Items.LEATHER_LEGGINGS); + eightOneNineFallbacks.put(Items.COPPER_BOOTS, Items.LEATHER_BOOTS); + eightOneNineFallbacks.put(Items.COPPER_NUGGET, Items.IRON_NUGGET); + eightOneNineFallbacks.put(Items.COPPER_SWORD, Items.STONE_SWORD); + eightOneNineFallbacks.put(Items.COPPER_PICKAXE, Items.STONE_PICKAXE); + eightOneNineFallbacks.put(Items.COPPER_SHOVEL, Items.STONE_SHOVEL); + eightOneNineFallbacks.put(Items.COPPER_AXE, Items.STONE_AXE); + eightOneNineFallbacks.put(Items.COPPER_HOE, Items.STONE_HOE); + eightOneNineFallbacks.put(Items.COPPER_GOLEM_SPAWN_EGG, Items.IRON_GOLEM_SPAWN_EGG); + + Map eightOneEightFallbacks = new HashMap<>(eightOneNineFallbacks); + eightOneEightFallbacks.put(Items.MUSIC_DISC_LAVA_CHICKEN, Items.MUSIC_DISC_CHIRP); List paletteVersions = new ArrayList<>(4); - paletteVersions.add(new PaletteVersion("1_21_70", Bedrock_v786.CODEC.getProtocolVersion(), itemFallbacks)); - paletteVersions.add(new PaletteVersion("1_21_80", Bedrock_v800.CODEC.getProtocolVersion(), fallbacks1_21_80)); - paletteVersions.add(new PaletteVersion("1_21_90", Bedrock_v818.CODEC.getProtocolVersion(), Map.of(Items.MUSIC_DISC_LAVA_CHICKEN, Items.MUSIC_DISC_CHIRP))); - paletteVersions.add(new PaletteVersion("1_21_93", Bedrock_v819.CODEC.getProtocolVersion())); - paletteVersions.add(new PaletteVersion("1_21_100", Bedrock_v827.CODEC.getProtocolVersion())); + paletteVersions.add(new PaletteVersion("1_21_90", Bedrock_v818.CODEC.getProtocolVersion(), eightOneEightFallbacks, Conversion844_827::remapItem)); + paletteVersions.add(new PaletteVersion("1_21_93", Bedrock_v819.CODEC.getProtocolVersion(), eightOneNineFallbacks, Conversion844_827::remapItem)); + paletteVersions.add(new PaletteVersion("1_21_100", Bedrock_v827.CODEC.getProtocolVersion(), eightTwoSevenFallbacks, Conversion844_827::remapItem)); + paletteVersions.add(new PaletteVersion("1_21_110", Bedrock_v844.CODEC.getProtocolVersion())); GeyserBootstrap bootstrap = GeyserImpl.getInstance().getBootstrap(); diff --git a/core/src/main/java/org/geysermc/geyser/registry/populator/TagRegistryPopulator.java b/core/src/main/java/org/geysermc/geyser/registry/populator/TagRegistryPopulator.java index aa8f42f9a..a27a83176 100644 --- a/core/src/main/java/org/geysermc/geyser/registry/populator/TagRegistryPopulator.java +++ b/core/src/main/java/org/geysermc/geyser/registry/populator/TagRegistryPopulator.java @@ -33,9 +33,10 @@ import it.unimi.dsi.fastutil.ints.IntArrayList; import it.unimi.dsi.fastutil.ints.IntList; import it.unimi.dsi.fastutil.objects.Object2ObjectOpenCustomHashMap; import it.unimi.dsi.fastutil.objects.ObjectIntPair; -import org.cloudburstmc.protocol.bedrock.codec.v786.Bedrock_v786; -import org.cloudburstmc.protocol.bedrock.codec.v800.Bedrock_v800; import org.cloudburstmc.protocol.bedrock.codec.v818.Bedrock_v818; +import org.cloudburstmc.protocol.bedrock.codec.v819.Bedrock_v819; +import org.cloudburstmc.protocol.bedrock.codec.v827.Bedrock_v827; +import org.cloudburstmc.protocol.bedrock.codec.v844.Bedrock_v844; import org.geysermc.geyser.GeyserBootstrap; import org.geysermc.geyser.GeyserImpl; import org.geysermc.geyser.item.type.Item; @@ -68,10 +69,11 @@ public final class TagRegistryPopulator { }; List> paletteVersions = List.of( - ObjectIntPair.of("1_21_70", Bedrock_v786.CODEC.getProtocolVersion()), - // Not a typo, they're the same file - ObjectIntPair.of("1_21_70", Bedrock_v800.CODEC.getProtocolVersion()), - ObjectIntPair.of("1_21_70", Bedrock_v818.CODEC.getProtocolVersion()) + ObjectIntPair.of("1_21_90", Bedrock_v818.CODEC.getProtocolVersion()), + // Not a typo, it's the same file + ObjectIntPair.of("1_21_90", Bedrock_v819.CODEC.getProtocolVersion()), + ObjectIntPair.of("1_21_100", Bedrock_v827.CODEC.getProtocolVersion()), + ObjectIntPair.of("1_21_110", Bedrock_v844.CODEC.getProtocolVersion()) ); Type type = new TypeToken>>() {}.getType(); diff --git a/core/src/main/java/org/geysermc/geyser/registry/populator/conversion/Conversion800_786.java b/core/src/main/java/org/geysermc/geyser/registry/populator/conversion/Conversion827_819.java similarity index 88% rename from core/src/main/java/org/geysermc/geyser/registry/populator/conversion/Conversion800_786.java rename to core/src/main/java/org/geysermc/geyser/registry/populator/conversion/Conversion827_819.java index 034424445..c04e70615 100644 --- a/core/src/main/java/org/geysermc/geyser/registry/populator/conversion/Conversion800_786.java +++ b/core/src/main/java/org/geysermc/geyser/registry/populator/conversion/Conversion827_819.java @@ -27,13 +27,14 @@ package org.geysermc.geyser.registry.populator.conversion; import org.cloudburstmc.nbt.NbtMap; -public class Conversion800_786 { +public class Conversion827_819 { public static NbtMap remapBlock(NbtMap nbtMap) { + nbtMap = Conversion844_827.remapBlock(nbtMap); final String name = nbtMap.getString("name"); - if (name.equals("minecraft:dried_ghast")) { - return ConversionHelper.withoutStates("unknown"); + if (name.endsWith("copper_chest")) { + return ConversionHelper.withName(nbtMap, "chest"); } return nbtMap; diff --git a/core/src/main/java/org/geysermc/geyser/registry/populator/conversion/Conversion844_827.java b/core/src/main/java/org/geysermc/geyser/registry/populator/conversion/Conversion844_827.java new file mode 100644 index 000000000..511d27407 --- /dev/null +++ b/core/src/main/java/org/geysermc/geyser/registry/populator/conversion/Conversion844_827.java @@ -0,0 +1,66 @@ +/* + * Copyright (c) 2025 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.conversion; + +import org.cloudburstmc.nbt.NbtMap; +import org.cloudburstmc.nbt.NbtMapBuilder; +import org.geysermc.geyser.item.Items; +import org.geysermc.geyser.item.type.Item; +import org.geysermc.geyser.registry.type.GeyserMappingItem; + +public class Conversion844_827 { + + public static NbtMap remapBlock(NbtMap nbtMap) { + final String name = nbtMap.getString("name"); + if (name.equals("minecraft:iron_chain") || name.endsWith("copper_chain")) { + return ConversionHelper.withName(nbtMap, "chain"); + } else if (name.endsWith("lightning_rod")) { + NbtMapBuilder statesWithoutPoweredBit = nbtMap.getCompound("states").toBuilder(); + statesWithoutPoweredBit.remove("powered_bit"); + return nbtMap.toBuilder() + .putString("name", "minecraft:lightning_rod") + .putCompound("states", statesWithoutPoweredBit.build()) + .build(); + } else if (name.endsWith("_shelf") || name.endsWith("copper_golem_statue")) { + return ConversionHelper.withoutStates("unknown"); + } else if (name.equals("minecraft:copper_torch")) { + return ConversionHelper.withName(nbtMap, "torch"); + } else if (name.endsWith("copper_bars")) { + return ConversionHelper.withName(nbtMap, "iron_bars"); + } else if (name.endsWith("copper_lantern")) { + return ConversionHelper.withName(nbtMap, "lantern"); + } + + return nbtMap; + } + + public static GeyserMappingItem remapItem(Item item, GeyserMappingItem mapping) { + if (item == Items.IRON_CHAIN || item.javaIdentifier().endsWith("copper_chain")) { + return mapping.withBedrockIdentifier("minecraft:chain"); + } + return mapping; + } +} diff --git a/core/src/main/java/org/geysermc/geyser/registry/type/ItemMappings.java b/core/src/main/java/org/geysermc/geyser/registry/type/ItemMappings.java index 7e63a5999..b0ffe13b2 100644 --- a/core/src/main/java/org/geysermc/geyser/registry/type/ItemMappings.java +++ b/core/src/main/java/org/geysermc/geyser/registry/type/ItemMappings.java @@ -38,6 +38,7 @@ import org.cloudburstmc.protocol.bedrock.data.inventory.ItemData; import org.cloudburstmc.protocol.common.DefinitionRegistry; import org.geysermc.geyser.GeyserImpl; import org.geysermc.geyser.api.block.custom.CustomBlockData; +import org.geysermc.geyser.inventory.GeyserItemStack; import org.geysermc.geyser.inventory.item.StoredItemMappings; import org.geysermc.geyser.item.Items; import org.geysermc.geyser.item.type.Item; @@ -75,11 +76,21 @@ public class ItemMappings implements DefinitionRegistry { Object2ObjectMap customBlockItemDefinitions; + /** + * Gets an {@link ItemMapping} from the given {@link GeyserItemStack}. + * + * @param itemStack the itemstack + * @return an item entry from the given item stack + */ + public ItemMapping getMapping(@NonNull GeyserItemStack itemStack) { + return this.getMapping(itemStack.getJavaId()); + } + /** * Gets an {@link ItemMapping} from the given {@link ItemStack}. * * @param itemStack the itemstack - * @return an item entry from the given java edition identifier + * @return an item entry from the given java edition item stack */ @NonNull public ItemMapping getMapping(@NonNull ItemStack itemStack) { diff --git a/core/src/main/java/org/geysermc/geyser/registry/type/UtilMappings.java b/core/src/main/java/org/geysermc/geyser/registry/type/UtilMappings.java new file mode 100644 index 000000000..da54b1e00 --- /dev/null +++ b/core/src/main/java/org/geysermc/geyser/registry/type/UtilMappings.java @@ -0,0 +1,91 @@ +/* + * Copyright (c) 2025 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.type; + +import com.google.gson.JsonObject; +import com.google.gson.JsonParser; +import net.kyori.adventure.key.Key; +import org.geysermc.geyser.GeyserImpl; +import org.geysermc.geyser.registry.loader.RegistryLoader; +import org.geysermc.geyser.util.MinecraftKey; + +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.util.ArrayList; +import java.util.List; +import java.util.function.Function; + +/** + * Used to load and store the {@code mappings/util.json} file. When adding new fields to util mappings, be sure to create a proper registry for them + * in {@link org.geysermc.geyser.registry.Registries}. Use {@link org.geysermc.geyser.registry.loader.RegistryLoaders#UTIL_MAPPINGS_KEYS} (or create a new loader if loading something + * other than keys). + */ +public record UtilMappings(List gameMasterBlocks, List dangerousBlockEntities, List dangerousEntities) { + private static final String INPUT = "mappings/util.json"; + private static UtilMappings loaded = null; + + /** + * Gets the loaded util mappings, or loads them if they weren't yet. + */ + private static UtilMappings get() { + if (loaded == null) { + try (InputStream utilInput = GeyserImpl.getInstance().getBootstrap().getResourceOrThrow(INPUT)) { + //noinspection deprecation - 1.16.5 breaks otherwise + JsonObject utilJson = new JsonParser().parse(new InputStreamReader(utilInput)).getAsJsonObject(); + + List gameMasterBlocks = new ArrayList<>(); + List dangerousBlockEntities = new ArrayList<>(); + List dangerousEntities = new ArrayList<>(); + + utilJson.get("game_master_blocks").getAsJsonArray() + .forEach(element -> gameMasterBlocks.add(MinecraftKey.key(element.getAsString()))); + utilJson.get("dangerous_block_entities").getAsJsonArray() + .forEach(element -> dangerousBlockEntities.add(MinecraftKey.key(element.getAsString()))); + utilJson.get("dangerous_entities").getAsJsonArray() + .forEach(element -> dangerousEntities.add(MinecraftKey.key(element.getAsString()))); + + loaded = new UtilMappings(List.copyOf(gameMasterBlocks), List.copyOf(dangerousBlockEntities), List.copyOf(dangerousEntities)); + } catch (IOException e) { + throw new AssertionError("Failed to load " + INPUT); + } + } + return loaded; + } + + /** + * Simply gets a field of the loaded {@link UtilMappings} object. Instead of re-opening the util mappings file every time a field is loaded, + * the mappings are parsed once by {@link UtilMappings#get()} and kept in a static variable. + * Loader input is a function that extracts the field to get from the {@link UtilMappings} object. + */ + public static class Loader implements RegistryLoader, T> { + + @Override + public T load(Function input) { + return input.apply(UtilMappings.get()); + } + } +} 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 95ad521c5..b1ea95442 100644 --- a/core/src/main/java/org/geysermc/geyser/session/GeyserSession.java +++ b/core/src/main/java/org/geysermc/geyser/session/GeyserSession.java @@ -51,7 +51,6 @@ import org.checkerframework.checker.nullness.qual.Nullable; import org.checkerframework.common.value.qual.IntRange; import org.cloudburstmc.math.vector.Vector2f; import org.cloudburstmc.math.vector.Vector2i; -import org.cloudburstmc.math.vector.Vector3d; import org.cloudburstmc.math.vector.Vector3f; import org.cloudburstmc.math.vector.Vector3i; import org.cloudburstmc.nbt.NbtMap; @@ -83,7 +82,6 @@ import org.cloudburstmc.protocol.bedrock.packet.BedrockPacket; import org.cloudburstmc.protocol.bedrock.packet.BiomeDefinitionListPacket; import org.cloudburstmc.protocol.bedrock.packet.CameraPresetsPacket; import org.cloudburstmc.protocol.bedrock.packet.ChunkRadiusUpdatedPacket; -import org.cloudburstmc.protocol.bedrock.packet.ClientboundCloseFormPacket; import org.cloudburstmc.protocol.bedrock.packet.CreativeContentPacket; import org.cloudburstmc.protocol.bedrock.packet.DimensionDataPacket; import org.cloudburstmc.protocol.bedrock.packet.EmoteListPacket; @@ -161,6 +159,7 @@ import org.geysermc.geyser.registry.type.ItemMappings; import org.geysermc.geyser.session.auth.AuthData; import org.geysermc.geyser.session.auth.BedrockClientData; import org.geysermc.geyser.session.cache.AdvancementsCache; +import org.geysermc.geyser.session.cache.BlockBreakHandler; import org.geysermc.geyser.session.cache.BookEditCache; import org.geysermc.geyser.session.cache.BundleCache; import org.geysermc.geyser.session.cache.ChunkCache; @@ -211,6 +210,7 @@ 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.entity.player.HandPreference; import org.geysermc.mcprotocollib.protocol.data.game.entity.player.PlayerAction; +import org.geysermc.mcprotocollib.protocol.data.game.entity.player.ResolvableProfile; import org.geysermc.mcprotocollib.protocol.data.game.setting.ChatVisibility; import org.geysermc.mcprotocollib.protocol.data.game.setting.ParticleStatus; import org.geysermc.mcprotocollib.protocol.data.game.setting.SkinPart; @@ -218,9 +218,9 @@ import org.geysermc.mcprotocollib.protocol.data.game.statistic.CustomStatistic; import org.geysermc.mcprotocollib.protocol.data.game.statistic.Statistic; import org.geysermc.mcprotocollib.protocol.data.handshake.HandshakeIntent; import org.geysermc.mcprotocollib.protocol.packet.common.serverbound.ServerboundClientInformationPacket; +import org.geysermc.mcprotocollib.protocol.packet.configuration.serverbound.ServerboundAcceptCodeOfConductPacket; import org.geysermc.mcprotocollib.protocol.packet.ingame.serverbound.ServerboundChatCommandSignedPacket; import org.geysermc.mcprotocollib.protocol.packet.ingame.serverbound.ServerboundChatPacket; -import org.geysermc.mcprotocollib.protocol.packet.ingame.serverbound.ServerboundClientTickEndPacket; import org.geysermc.mcprotocollib.protocol.packet.ingame.serverbound.player.ServerboundPlayerAbilitiesPacket; import org.geysermc.mcprotocollib.protocol.packet.ingame.serverbound.player.ServerboundPlayerActionPacket; import org.geysermc.mcprotocollib.protocol.packet.ingame.serverbound.player.ServerboundUseItemPacket; @@ -297,6 +297,12 @@ public class GeyserSession implements GeyserConnection, GeyserCommandSource { private final WaypointCache waypointCache; private final WorldCache worldCache; + /** + * Handles block breaking and break animation progress caching. + */ + @Setter + private BlockBreakHandler blockBreakHandler; + @Setter private TeleportCache unconfirmedTeleport; @@ -389,7 +395,7 @@ public class GeyserSession implements GeyserConnection, GeyserCommandSource { * A map of all players (and their heads) that are wearing a player head with a custom texture. * Our workaround for these players is to give them a custom skin and geometry to emulate wearing a custom skull. */ - private final Map playerWithCustomHeads = new Object2ObjectOpenHashMap<>(); + private final Map playerWithCustomHeads = new Object2ObjectOpenHashMap<>(); @Setter private boolean droppingLecternBook; @@ -464,9 +470,6 @@ public class GeyserSession implements GeyserConnection, GeyserCommandSource { @Setter private BedrockDimension bedrockDimension = this.bedrockOverworldDimension; - @Setter - private int breakingBlock; - @Setter private Vector3i lastBlockPlacePosition; @@ -577,12 +580,6 @@ public class GeyserSession implements GeyserConnection, GeyserCommandSource { @Setter private long lastInteractionTime; - /** - * Stores when the player started to break a block. Used to allow correct break time for custom blocks. - */ - @Setter - private long blockBreakStartTime; - /** * Stores whether the player intended to place a bucket. */ @@ -744,6 +741,9 @@ public class GeyserSession implements GeyserConnection, GeyserCommandSource { @Setter private boolean allowVibrantVisuals = true; + @Accessors(fluent = true) + private boolean hasAcceptedCodeOfConduct = false; + public GeyserSession(GeyserImpl geyser, BedrockServerSession bedrockServerSession, EventLoop tickEventLoop) { this.geyser = geyser; this.upstream = new UpstreamSession(bedrockServerSession); @@ -772,8 +772,8 @@ public class GeyserSession implements GeyserConnection, GeyserCommandSource { this.entityData = new GeyserEntityData(this); this.worldBorder = new WorldBorder(this); - this.collisionManager = new CollisionManager(this); + this.blockBreakHandler = new BlockBreakHandler(this); this.playerEntity = new SessionPlayerEntity(this); collisionManager.updatePlayerBoundingBox(this.playerEntity.getPosition()); @@ -832,15 +832,9 @@ public class GeyserSession implements GeyserConnection, GeyserCommandSource { ChunkUtils.sendEmptyChunks(this, playerEntity.getPosition().toInt(), 0, false); - if (GameProtocol.is1_21_80orHigher(this)) { - BiomeDefinitionListPacket biomeDefinitionListPacket = new BiomeDefinitionListPacket(); - biomeDefinitionListPacket.setBiomes(Registries.BIOMES.get()); - upstream.sendPacket(biomeDefinitionListPacket); - } else { - BiomeDefinitionListPacket biomeDefinitionListPacket = new BiomeDefinitionListPacket(); - biomeDefinitionListPacket.setDefinitions(Registries.BIOMES_NBT.get()); - upstream.sendPacket(biomeDefinitionListPacket); - } + BiomeDefinitionListPacket biomeDefinitionListPacket = new BiomeDefinitionListPacket(); + biomeDefinitionListPacket.setBiomes(Registries.BIOMES.get()); + upstream.sendPacket(biomeDefinitionListPacket); AvailableEntityIdentifiersPacket entityPacket = new AvailableEntityIdentifiersPacket(); entityPacket.setIdentifiers(Registries.BEDROCK_ENTITY_IDENTIFIERS.get()); @@ -1446,9 +1440,9 @@ public class GeyserSession implements GeyserConnection, GeyserCommandSource { return false; } - if (playerInventoryHolder.inventory().getItemInHand().asItem() == Items.SHIELD) { + if (playerInventoryHolder.inventory().getItemInHand().is(Items.SHIELD)) { useItem(Hand.MAIN_HAND); - } else if (playerInventoryHolder.inventory().getOffhand().asItem() == Items.SHIELD) { + } else if (playerInventoryHolder.inventory().getOffhand().is(Items.SHIELD)) { useItem(Hand.OFF_HAND); } else { // No blocking @@ -1677,14 +1671,36 @@ public class GeyserSession implements GeyserConnection, GeyserCommandSource { public boolean sendForm(@NonNull Form form) { // First close any dialogs that are open. This won't execute the dialog's closing action. dialogManager.close(); - return doSendForm(form); + // Also close all currently open forms. + if (formCache.hasFormOpen()) { + closeForm(); + } + + // Cache this form, let's see whether we can open it immediately + formCache.addForm(form); + + // Also close current inventories, otherwise the form will not show + if (inventoryHolder != null) { + // We'll open the form when the client confirms current inventory being closed + InventoryUtils.sendJavaContainerClose(inventoryHolder); + InventoryUtils.closeInventory(this, inventoryHolder, true); + } + + // Open the current form, unless we're in the process of closing another + // If we're waiting, the form will be sent when Bedrock confirms closing + // If we don't wait, the client rejects the form as it is busy + if (!isClosingInventory() && upstream.isInitialized()) { + formCache.resendAllForms(); + } + + return true; } /** * Sends a form without first closing any open dialog. This should only be used by {@link org.geysermc.geyser.session.dialog.Dialog}s. */ - public boolean sendDialogForm(@NonNull Form form) { - return doSendForm(form); + public void sendDialogForm(@NonNull Form form) { + doSendForm(form); } private boolean doSendForm(@NonNull Form form) { @@ -1692,6 +1708,23 @@ public class GeyserSession implements GeyserConnection, GeyserCommandSource { return true; } + public void acceptCodeOfConduct() { + if (hasAcceptedCodeOfConduct) { + return; + } + hasAcceptedCodeOfConduct = true; + sendDownstreamConfigurationPacket(ServerboundAcceptCodeOfConductPacket.INSTANCE); + } + + public void prepareForConfigurationForm() { + if (!sentSpawnPacket) { + connect(); + } + // Disable time progression whilst the form is open + // Once logged into the game this is set correctly when receiving a time packet from the server + setDaylightCycle(false); + } + public @NonNull PlayerInventory getPlayerInventory() { return this.playerInventoryHolder.inventory(); } @@ -1705,7 +1738,7 @@ public class GeyserSession implements GeyserConnection, GeyserCommandSource { @Override public boolean sendForm(@NonNull FormBuilder formBuilder) { - formCache.showForm(formBuilder.build()); + sendForm(formBuilder.build()); return true; } @@ -1792,15 +1825,10 @@ 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)); - // Allows Vibrant Visuals to appear in the settings menu - if (allowVibrantVisuals && !GameProtocol.is1_21_90orHigher(this)) { - startGamePacket.getExperiments().add(new ExperimentData("experimental_graphics", true)); - } - // Enables 2025 Content Drop 2 features - if (GameProtocol.is1_21_80(this)) { - startGamePacket.getExperiments().add(new ExperimentData("y_2025_drop_2", true)); - // Enables the locator bar for 1.21.80 clients - startGamePacket.getExperiments().add(new ExperimentData("locator_bar", true)); + + // Enable 2025 Content Drop 3 features on 1.21.100 + if (GameProtocol.is1_21_100(this)) { + startGamePacket.getExperiments().add(new ExperimentData("y_2025_drop_3", true)); } startGamePacket.setVanillaVersion("*"); @@ -1814,7 +1842,14 @@ public class GeyserSession implements GeyserConnection, GeyserCommandSource { startGamePacket.setAuthoritativeMovementMode(AuthoritativeMovementMode.SERVER); startGamePacket.setRewindHistorySize(0); - startGamePacket.setServerAuthoritativeBlockBreaking(false); + // Server authorative block breaking results in the client always sending + // positions for block breaking actions, which is easier to validate + // It does *not* mean we can dictate the break speed server-sided :( + startGamePacket.setServerAuthoritativeBlockBreaking(true); + + if (playerEntity.getPropertyManager() != null) { + startGamePacket.setPlayerPropertyData(playerEntity.getPropertyManager().toNbtMap("minecraft:player")); + } startGamePacket.setServerId(""); startGamePacket.setWorldId(""); @@ -1893,6 +1928,10 @@ public class GeyserSession implements GeyserConnection, GeyserCommandSource { sendDownstreamPacket(packet, ProtocolState.GAME); } + public void sendDownstreamConfigurationPacket(Packet packet) { + sendDownstreamPacket(packet, ProtocolState.CONFIGURATION); + } + /** * Send a packet to the remote server if in the login state. * @@ -2271,11 +2310,17 @@ public class GeyserSession implements GeyserConnection, GeyserCommandSource { @Override public @NonNull String version() { + if (clientData == null) { + return "unknown"; + } return clientData.getGameVersion(); } @Override public @NonNull BedrockPlatform platform() { + if (clientData == null) { + return BedrockPlatform.UNKNOWN; + } return BedrockPlatform.values()[clientData.getDeviceOs().ordinal()]; //todo } @@ -2401,7 +2446,7 @@ public class GeyserSession implements GeyserConnection, GeyserCommandSource { @Override public void closeForm() { - sendUpstreamPacket(new ClientboundCloseFormPacket()); + formCache.closeForms(); } public void addCommandEnum(String name, String enums) { @@ -2422,4 +2467,8 @@ public class GeyserSession implements GeyserConnection, GeyserCommandSource { packet.setSoftEnum(new CommandEnumData(name, Collections.singletonMap(enums, Collections.emptySet()), true)); sendUpstreamPacket(packet); } + + public String getDebugInfo() { + return "Username: %s, DeviceOs: %s, Version: %s".formatted(bedrockUsername(), platform(), version()); + } } diff --git a/core/src/main/java/org/geysermc/geyser/session/auth/AuthData.java b/core/src/main/java/org/geysermc/geyser/session/auth/AuthData.java index 99b7ae3af..7e7171824 100644 --- a/core/src/main/java/org/geysermc/geyser/session/auth/AuthData.java +++ b/core/src/main/java/org/geysermc/geyser/session/auth/AuthData.java @@ -27,5 +27,13 @@ package org.geysermc.geyser.session.auth; import java.util.UUID; -public record AuthData(String name, UUID uuid, String xuid) { +/** + * A class holding some basic information of the connected user. + * + * @param name The gamertag of the user + * @param uuid Also known as identity + * @param xuid The xuid of the user + * @param issuedAt The unix time (in seconds) that the JWT was issued + */ +public record AuthData(String name, UUID uuid, String xuid, long issuedAt) { } diff --git a/core/src/main/java/org/geysermc/geyser/session/cache/BlockBreakHandler.java b/core/src/main/java/org/geysermc/geyser/session/cache/BlockBreakHandler.java new file mode 100644 index 000000000..041f76c03 --- /dev/null +++ b/core/src/main/java/org/geysermc/geyser/session/cache/BlockBreakHandler.java @@ -0,0 +1,636 @@ +/* + * Copyright (c) 2025 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.session.cache; + +import com.google.common.cache.Cache; +import com.google.common.cache.CacheBuilder; +import it.unimi.dsi.fastutil.Pair; +import lombok.Getter; +import lombok.Setter; +import org.checkerframework.checker.nullness.qual.NonNull; +import org.checkerframework.checker.nullness.qual.Nullable; +import org.cloudburstmc.math.vector.Vector3f; +import org.cloudburstmc.math.vector.Vector3i; +import org.cloudburstmc.protocol.bedrock.data.LevelEvent; +import org.cloudburstmc.protocol.bedrock.data.PlayerActionType; +import org.cloudburstmc.protocol.bedrock.data.PlayerAuthInputData; +import org.cloudburstmc.protocol.bedrock.data.PlayerBlockActionData; +import org.cloudburstmc.protocol.bedrock.data.definitions.ItemDefinition; +import org.cloudburstmc.protocol.bedrock.packet.LevelEventPacket; +import org.cloudburstmc.protocol.bedrock.packet.PlayerAuthInputPacket; +import org.geysermc.geyser.GeyserImpl; +import org.geysermc.geyser.api.block.custom.CustomBlockState; +import org.geysermc.geyser.entity.EntityDefinitions; +import org.geysermc.geyser.entity.type.Entity; +import org.geysermc.geyser.entity.type.ItemFrameEntity; +import org.geysermc.geyser.inventory.GeyserItemStack; +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.level.physics.Direction; +import org.geysermc.geyser.registry.BlockRegistries; +import org.geysermc.geyser.registry.Registries; +import org.geysermc.geyser.registry.type.ItemMapping; +import org.geysermc.geyser.session.GeyserSession; +import org.geysermc.geyser.translator.item.CustomItemTranslator; +import org.geysermc.geyser.translator.protocol.bedrock.BedrockInventoryTransactionTranslator; +import org.geysermc.geyser.translator.protocol.java.level.JavaBlockDestructionTranslator; +import org.geysermc.geyser.util.BlockUtils; +import org.geysermc.mcprotocollib.protocol.data.game.entity.player.BlockBreakStage; +import org.geysermc.mcprotocollib.protocol.data.game.entity.player.InteractAction; +import org.geysermc.mcprotocollib.protocol.data.game.entity.player.PlayerAction; +import org.geysermc.mcprotocollib.protocol.data.game.item.component.AdventureModePredicate; +import org.geysermc.mcprotocollib.protocol.data.game.item.component.DataComponentTypes; +import org.geysermc.mcprotocollib.protocol.data.game.item.component.ToolData; +import org.geysermc.mcprotocollib.protocol.packet.ingame.serverbound.player.ServerboundInteractPacket; +import org.geysermc.mcprotocollib.protocol.packet.ingame.serverbound.player.ServerboundPlayerActionPacket; + +import java.util.HashSet; +import java.util.Objects; +import java.util.Set; +import java.util.concurrent.TimeUnit; + +/** + * Class responsible for block breaking handling. This is designed to be extensible + * by extensions (not officially supported!). + */ +public class BlockBreakHandler { + + protected final GeyserSession session; + + /** + * The position of the current block being broken. + * Null indicates no block breaking in progress. + */ + @Getter + protected @Nullable Vector3i currentBlockPos = null; + + /** + * The current block state that is being broken. + * Null indicates no block breaking in progress. + */ + protected @Nullable BlockState currentBlockState = null; + + /** + * Indicates that we should re-check the current block state for changes + */ + @Setter + protected @Nullable Integer updatedServerBlockStateId; + + /** + * Whether we must break the block ourselves. + * Only set when keeping track of custom blocks / custom items breaking blocks. + */ + protected boolean serverSideBlockBreaking = false; + + /** + * The current block breaking progress + */ + protected float currentProgress = 0.0F; + + /** + * The last known face of the block the client was breaking. + * Only set when keeping track of custom blocks / custom items breaking blocks. + */ + protected Direction currentBlockFace = null; + + /** + * The last item used to break blocks. + * Used to track whether block breaking should be re-started as the item changed + */ + protected GeyserItemStack currentItemStack = null; + + /** + * The last block position that was broken. + * Used to ignore subsequent block actions from the Bedrock client. + */ + protected Vector3i lastMinedPosition = null; + + /** + * Caches all blocks we had to restore e.g. due to out-of-range or being unable to mine + * in order to avoid duplicate corrections. + */ + protected Set restoredBlocks = new HashSet<>(2); + + /** + * Used to ignore subsequent block interactions after an item frame interaction + */ + protected @Nullable Vector3i itemFramePos = null; + + /** + * See {@link JavaBlockDestructionTranslator} for usage and explanation + */ + @Getter + private final Cache> destructionStageCache = CacheBuilder.newBuilder() + .maximumSize(200) + .expireAfterWrite(3, TimeUnit.MINUTES) + .build(); + + /** + * Used to cache adventure mode can break predicate lookups + */ + private final BlockPredicateCache blockPredicateCache = new BlockPredicateCache(); + + public BlockBreakHandler(final GeyserSession session) { + this.session = session; + } + + /** + * Main entrypoint that handles block breaking actions, if present. Ticks the handler if no breaking actions were performed. + * @param packet the player auth input packet + */ + public void handlePlayerAuthInputPacket(PlayerAuthInputPacket packet) { + if (packet.getInputData().contains(PlayerAuthInputData.PERFORM_BLOCK_ACTIONS)) { + handleBlockBreakActions(packet); + restoredBlocks.clear(); + this.itemFramePos = null; + } else { + tick(packet.getTick()); + } + } + + protected void tick(long tick) { + // We need to manually check if a block should be destroyed, and send the client progress updates, when mining a custom block, or with a custom item + // This is because, in CustomItemRegistryPopulator#computeToolProperties, we set a block break speed of 0, + // meaning the client will only ever send START_BREAK for breaking blocks, and nothing else (as long as no efficiency is applied, lol) + // We also want to tick destroying to ensure that the currently held item did not change + + // Check lastBlockBreakFace, currentBlockPos and currentBlockState, just in case + if (currentBlockFace != null && currentBlockPos != null && currentBlockState != null) { + handleContinueDestroy(currentBlockPos, getCurrentBlockState(currentBlockPos), currentBlockFace, false, false, session.getClientTicks()); + } + } + + protected void handleBlockBreakActions(PlayerAuthInputPacket packet) { + for (int i = 0; i < packet.getPlayerActions().size(); i++) { + PlayerBlockActionData actionData = packet.getPlayerActions().get(i); + Vector3i position = actionData.getBlockPosition(); + // Worth noting: the bedrock client, as of version 1.21.101, sends weird values for the face, outside the [0;6] range, when sending ABORT_BREAK + // Not sure why, but, blockFace isn't used for ABORT_BREAK, so it's fine + // This is why blockFace is individually turned into a Direction in each of the switch statements, except for the ABORT_BREAK one + switch (actionData.getAction()) { + case DROP_ITEM -> { + ServerboundPlayerActionPacket dropItemPacket = new ServerboundPlayerActionPacket(PlayerAction.DROP_ITEM, + position, Direction.getUntrusted(actionData, PlayerBlockActionData::getFace).mcpl(), 0); + session.sendDownstreamGamePacket(dropItemPacket); + } + case START_BREAK -> { + // New block being broken -> ignore previously mined position since that's no longer relevant + this.lastMinedPosition = null; + + if (testForItemFrameEntity(position) || abortDueToBlockRestoring(position)) { + continue; + } + + BlockState state = getCurrentBlockState(position); + if (!canBreak(position, state, actionData.getAction())) { + BlockUtils.sendBedrockStopBlockBreak(session, position.toFloat()); + restoredBlocks.add(position); + continue; + } + + handleStartBreak(position, state, Direction.getUntrusted(actionData, PlayerBlockActionData::getFace), packet.getTick()); + } + case BLOCK_CONTINUE_DESTROY -> { + if (testForItemFrameEntity(position) || testForLastBreakPosOrReset(position) || abortDueToBlockRestoring(position)) { + continue; + } + + // The client loves to send this block action alongside BLOCK_PREDICT_DESTROY in the same packet; + // we can skip handling this action about the current position if the next action is also about it + if (Objects.equals(currentBlockPos, position) && i < packet.getPlayerActions().size() - 1) { + PlayerBlockActionData nextAction = packet.getPlayerActions().get(i + 1); + if (Objects.equals(nextAction.getBlockPosition(), position)) { + continue; + } + } + + BlockState state = getCurrentBlockState(position); + if (!canBreak(position, state, actionData.getAction())) { + BlockUtils.sendBedrockStopBlockBreak(session, position.toFloat()); + restoredBlocks.add(position); + + // Also abort old / "current" block breaking, if there is one in progress + if (!Objects.equals(currentBlockPos, position)) { + handleAbortBreaking(position); + } + continue; + } + + handleContinueDestroy(position, state, Direction.getUntrusted(actionData, PlayerBlockActionData::getFace), false, true, packet.getTick()); + } + case BLOCK_PREDICT_DESTROY -> { + if (testForItemFrameEntity(position)) { + continue; + } + + // At this point it's safe to assume that we won't get subsequent block actions on this position + // so reset it and return since we've already broken the block + if (Objects.equals(lastMinedPosition, position)) { + lastMinedPosition = null; + continue; + } + + // Not using abortDueToBlockRestoring method here as we're fully restoring the block, + // to counteract Bedrock's own client-side prediction + if (!restoredBlocks.isEmpty()) { + BlockUtils.restoreCorrectBlock(session, position); + continue; + } + + BlockState state = getCurrentBlockState(position); + boolean valid = currentBlockPos != null && Objects.equals(position, currentBlockPos); + if (!canBreak(position, state, actionData.getAction()) || !valid) { + if (!valid) { + GeyserImpl.getInstance().getLogger().warning("Player %s tried to break block at %s (%s), without starting to destroy it!" + .formatted(session.bedrockUsername(), position, currentBlockPos)); + handleAbortBreaking(currentBlockPos); + } + BlockUtils.stopBreakAndRestoreBlock(session, position, state); + restoredBlocks.add(position); + continue; + } + + handlePredictDestroy(position, state, Direction.getUntrusted(actionData, PlayerBlockActionData::getFace), packet.getTick()); + } + case ABORT_BREAK -> { + // Also handles item frame interactions in adventure mode + if (testForItemFrameEntity(position)) { + continue; + } + + handleAbortBreaking(position); + } + default -> { + GeyserImpl.getInstance().getLogger().warning("Unknown block break action (%s) received! (origin: %s)!" + .formatted(actionData.getAction(), session.getDebugInfo())); + GeyserImpl.getInstance().getLogger().debug("Odd packet: " + packet); + session.disconnect("Invalid block breaking action received!"); + } + } + } + } + + protected void handleStartBreak(@NonNull Vector3i position, @NonNull BlockState state, Direction blockFace, long tick) { + GeyserItemStack item = session.getPlayerInventory().getItemInHand(); + + // Account for fire - the client likes to hit the block behind. + Vector3i fireBlockPos = BlockUtils.getBlockPosition(position, blockFace); + Block possibleFireBlock = session.getGeyser().getWorldManager().blockAt(session, fireBlockPos).block(); + if (possibleFireBlock == Blocks.FIRE || possibleFireBlock == Blocks.SOUL_FIRE) { + ServerboundPlayerActionPacket startBreakingPacket = new ServerboundPlayerActionPacket(PlayerAction.START_DIGGING, fireBlockPos, + blockFace.mcpl(), session.getWorldCache().nextPredictionSequence()); + session.sendDownstreamGamePacket(startBreakingPacket); + } + + // % block breaking progress in this tick + float breakProgress = calculateBreakProgress(state, position, item); + + // insta-breaking should be treated differently; don't send STOP_BREAK for these + if (session.isInstabuild() || breakProgress >= 1.0F) { + // Avoid sending STOP_BREAK for instantly broken blocks + destroyBlock(state, position, blockFace, true); + this.lastMinedPosition = position; + } else { + // If the block is custom or the breaking item is custom, we must keep track of break time ourselves + ItemMapping mapping = item.getMapping(session); + ItemDefinition customItem = mapping.isTool() ? CustomItemTranslator.getCustomItem(item.getComponents(), mapping) : null; + CustomBlockState blockStateOverride = BlockRegistries.CUSTOM_BLOCK_STATE_OVERRIDES.get(state.javaId()); + SkullCache.Skull skull = session.getSkullCache().getSkulls().get(position); + + this.serverSideBlockBreaking = false; + if (BlockRegistries.NON_VANILLA_BLOCK_IDS.get().get(state.javaId()) || blockStateOverride != null || + customItem != null || (skull != null && skull.getBlockDefinition() != null)) { + this.serverSideBlockBreaking = true; + } + + LevelEventPacket startBreak = new LevelEventPacket(); + startBreak.setType(LevelEvent.BLOCK_START_BREAK); + startBreak.setPosition(position.toFloat()); + startBreak.setData((int) (65535 / BlockUtils.reciprocal(breakProgress))); + session.sendUpstreamPacket(startBreak); + + BlockUtils.spawnBlockBreakParticles(session, blockFace, position, state); + + this.currentBlockFace = blockFace; + this.currentBlockPos = position; + this.currentBlockState = state; + this.currentItemStack = item; + // The Java client calls MultiPlayerGameMode#startDestroyBlock which would set this to zero, + // but also #continueDestroyBlock in the same tick to advance the break progress. + this.currentProgress = breakProgress; + + session.sendDownstreamGamePacket(new ServerboundPlayerActionPacket(PlayerAction.START_DIGGING, position, + blockFace.mcpl(), session.getWorldCache().nextPredictionSequence())); + } + } + + protected void handleContinueDestroy(@NonNull Vector3i position, @NonNull BlockState state, @NonNull Direction blockFace, boolean bedrockDestroyed, boolean sendParticles, long tick) { + // Position mismatch == we break a new block! Bedrock won't send START_BREAK when continuously mining + // That applies in creative mode too! (last test in 1.21.100) + // Further: We should also "start" breaking te block anew if the held item changes. + // As of 1.21.100 it seems like this is in fact NOT done by BDS! + if (currentBlockState != null && Objects.equals(position, currentBlockPos) && sameItemStack()) { + this.currentBlockFace = blockFace; + + final float newProgress = calculateBreakProgress(state, position, session.getPlayerInventory().getItemInHand()); + this.currentProgress = this.currentProgress + newProgress; + double totalBreakTime = BlockUtils.reciprocal(newProgress); + + if (sendParticles || (serverSideBlockBreaking && currentProgress % 4 == 0)) { + BlockUtils.spawnBlockBreakParticles(session, blockFace, position, state); + } + + // let's be a bit lenient here; the Vanilla server is as well + if (mayBreak(currentProgress, bedrockDestroyed)) { + destroyBlock(state, position, blockFace, false); + if (!bedrockDestroyed) { + // Only store it if we need to ignore subsequent Bedrock block actions + this.lastMinedPosition = position; + } + return; + } else if (bedrockDestroyed) { + BlockUtils.restoreCorrectBlock(session, position, state); + } + + // Update the break time in the event that player conditions changed (jumping, effects applied) + LevelEventPacket updateBreak = new LevelEventPacket(); + updateBreak.setType(LevelEvent.BLOCK_UPDATE_BREAK); + updateBreak.setPosition(position.toFloat()); + updateBreak.setData((int) (65535 / totalBreakTime)); + session.sendUpstreamPacket(updateBreak); + } else { + // Don't store last mined position; we don't want to ignore any actions now that we switched! + this.lastMinedPosition = null; + // We have switched - either between blocks, or are between the stack we're using to break the block + if (currentBlockPos != null) { + LevelEventPacket updateBreak = new LevelEventPacket(); + updateBreak.setType(LevelEvent.BLOCK_UPDATE_BREAK); + updateBreak.setPosition(position.toFloat()); + updateBreak.setData(0); + session.sendUpstreamPacketImmediately(updateBreak); + + // Prevent ghost blocks when Bedrock thinks it destroyed a block and wants to "move on", + // while it wasn't actually destroyed on our end. + if (bedrockDestroyed) { + BlockUtils.restoreCorrectBlock(session, currentBlockPos, currentBlockState); + } + + handleAbortBreaking(currentBlockPos); + } + + handleStartBreak(position, state, blockFace, tick); + } + } + + protected void handlePredictDestroy(Vector3i position, BlockState state, Direction blockFace, long tick) { + handleContinueDestroy(position, state, blockFace, true, true, tick); + } + + private void handleAbortBreaking(Vector3i position) { + // Bedrock edition "confirms" it stopped breaking blocks by sending an abort packet + // We don't forward those as a Java client wouldn't send those either + if (currentBlockPos != null) { + ServerboundPlayerActionPacket abortBreakingPacket = new ServerboundPlayerActionPacket(PlayerAction.CANCEL_DIGGING, currentBlockPos, + Direction.DOWN.mcpl(), 0); + session.sendDownstreamGamePacket(abortBreakingPacket); + } + + BlockUtils.sendBedrockStopBlockBreak(session, position.toFloat()); + this.clearCurrentVariables(); + } + + /** + * Tests for a previous item frame block interaction, or the presence + * of an item frame at the position. + * @return whether block breaking must stop due to an item frame interaction + */ + protected boolean testForItemFrameEntity(Vector3i position) { + if (itemFramePos != null && itemFramePos.equals(position)) { + return true; + } + + Entity itemFrameEntity = ItemFrameEntity.getItemFrameEntity(session, position); + if (itemFrameEntity != null) { + ServerboundInteractPacket attackPacket = new ServerboundInteractPacket(itemFrameEntity.getEntityId(), + InteractAction.ATTACK, session.isSneaking()); + session.sendDownstreamGamePacket(attackPacket); + itemFramePos = position; + return true; + } + return false; + } + + /** + * Tests whether the block action should be processed by testing whether + * this action (or any other block action in this tick) was already rejected before + */ + private boolean abortDueToBlockRestoring(Vector3i position) { + // If it already contains our position, we can assume that a stop / restore was already sent + if (restoredBlocks.contains(position)) { + return true; + } + + // We don't want to continue handling even new blocks as those could be e.g. behind a block which is not broken + if (!restoredBlocks.isEmpty()) { + BlockUtils.sendBedrockStopBlockBreak(session, position.toFloat()); + restoredBlocks.add(position); + + if (currentBlockPos != null && !Objects.equals(position, currentBlockPos)) { + restoredBlocks.add(currentBlockPos); + handleAbortBreaking(currentBlockPos); + } + + return true; + } + return false; + } + + /** + * Checks whether a block interaction may proceed, or whether it must be interrupted. + * This includes world border, "hands busy" (boat steering), and GameMode checks. + */ + @SuppressWarnings("BooleanMethodIsAlwaysInverted") + protected boolean canBreak(Vector3i vector, BlockState state, PlayerActionType action) { + if (session.isHandsBusy() || !session.getWorldBorder().isInsideBorderBoundaries()) { + return false; + } + + switch (session.getGameMode()) { + case SPECTATOR -> { + return false; + } + case ADVENTURE -> { + if (!blockPredicateCache.calculatePredicate(session, state, session.getPlayerInventory().getItemInHand())) { + return false; + } + } + } + + Vector3f playerPosition = session.getPlayerEntity().getPosition(); + playerPosition = playerPosition.down(EntityDefinitions.PLAYER.offset() - session.getEyeHeight()); + return BedrockInventoryTransactionTranslator.canInteractWithBlock(session, playerPosition, vector); + } + + protected boolean canDestroyBlock(BlockState state) { + boolean instabuild = session.isInstabuild(); + if (instabuild) { + ToolData data = session.getPlayerInventory().getItemInHand().getComponent(DataComponentTypes.TOOL); + if (data != null && !data.isCanDestroyBlocksInCreative()) { + return false; + } + } + + if (Registries.GAME_MASTER_BLOCKS.get().contains(state.block().javaIdentifier())) { + if (!instabuild || session.getOpPermissionLevel() < 2) { + return false; + } + } + + return !state.is(Blocks.AIR); + } + + protected boolean mayBreak(float progress, boolean bedrockDestroyed) { + // We're tolerant here to account for e.g. obsidian breaking speeds not matching 1:1 :( + return (serverSideBlockBreaking && progress >= 1.0F) || (bedrockDestroyed && progress >= 0.7F); + } + + protected void destroyBlock(BlockState state, Vector3i vector, Direction direction, boolean instamine) { + // Send java packet + session.sendDownstreamGamePacket(new ServerboundPlayerActionPacket(instamine ? PlayerAction.START_DIGGING : PlayerAction.FINISH_DIGGING, + vector, direction.mcpl(), session.getWorldCache().nextPredictionSequence())); + session.getWorldCache().markPositionInSequence(vector); + + if (canDestroyBlock(state)) { + BlockUtils.spawnBlockBreakParticles(session, direction, vector, state); + BlockUtils.sendBedrockBlockDestroy(session, vector.toFloat(), state.javaId()); + } else { + BlockUtils.restoreCorrectBlock(session, vector, state); + } + clearCurrentVariables(); + } + + protected float calculateBreakProgress(BlockState state, Vector3i vector, GeyserItemStack stack) { + return BlockUtils.getBlockMiningProgressPerTick(session, state.block(), stack); + } + + /** + * Helper method to ignore all insta-break actions that were already sent to the Java server. + * This ensures that Geyser does not send a FINISH_DIGGING player action for instantly mined blocks, + * or those mined while in creative mode. + */ + protected boolean testForLastBreakPosOrReset(Vector3i position) { + if (Objects.equals(lastMinedPosition, position)) { + return true; + } + lastMinedPosition = null; + return false; + } + + private boolean sameItemStack() { + if (currentItemStack == null) { + return false; + } + GeyserItemStack stack = session.getPlayerInventory().getItemInHand(); + if (currentItemStack.isEmpty() && stack.isEmpty()) { + return true; + } + if (currentItemStack.getJavaId() != stack.getJavaId()) { + return false; + } + + return Objects.equals(stack.getComponents(), currentItemStack.getComponents()); + } + + private @NonNull BlockState getCurrentBlockState(Vector3i position) { + if (Objects.equals(position, currentBlockPos)) { + if (updatedServerBlockStateId != null) { + BlockState updated = BlockState.of(updatedServerBlockStateId); + this.updatedServerBlockStateId = null; + return updated; + } + + if (currentBlockState != null) { + return currentBlockState; + } + } + + this.updatedServerBlockStateId = null; + return session.getGeyser().getWorldManager().blockAt(session, position); + } + + /** + * Resets variables after a block was broken. + */ + protected void clearCurrentVariables() { + this.currentBlockPos = null; + this.currentBlockState = null; + this.currentBlockFace = null; + this.currentProgress = 0.0F; + this.currentItemStack = null; + this.updatedServerBlockStateId = null; + } + + /** + * Resets the handler, including variables that persist across single packets + */ + public void reset() { + clearCurrentVariables(); + this.lastMinedPosition = null; + this.destructionStageCache.invalidateAll(); + } + + private static class BlockPredicateCache { + private BlockState lastBlockState; + private GeyserItemStack lastItemStack; + private Boolean lastResult; + + private boolean calculatePredicate(GeyserSession session, BlockState state, GeyserItemStack stack) { + // An empty stack will never pass + if (stack.isEmpty()) { + return false; + } + + AdventureModePredicate canBreak = stack.getComponent(DataComponentTypes.CAN_BREAK); + if (canBreak == null) { // Neither will a stack without can_break + return false; + } else if (state.equals(lastBlockState) && stack.equals(lastItemStack) && lastResult != null) { // Check lastResult just in case. + return lastResult; + } + + this.lastBlockState = state; + this.lastItemStack = stack; + + // Any of the predicates have to match for the stack to match + for (AdventureModePredicate.BlockPredicate predicate : canBreak.getPredicates()) { + if (BlockUtils.blockMatchesPredicate(session, state, predicate)) { + return lastResult = true; + } + } + return lastResult = false; + } + } +} diff --git a/core/src/main/java/org/geysermc/geyser/session/cache/BookEditCache.java b/core/src/main/java/org/geysermc/geyser/session/cache/BookEditCache.java index 90f22afd6..50b45a3a1 100644 --- a/core/src/main/java/org/geysermc/geyser/session/cache/BookEditCache.java +++ b/core/src/main/java/org/geysermc/geyser/session/cache/BookEditCache.java @@ -64,7 +64,7 @@ public class BookEditCache { } // Don't send the update if the player is not holding a book, shouldn't happen if we catch all interactions GeyserItemStack itemStack = session.getPlayerInventory().getItemInHand(); - if (itemStack == null || itemStack.asItem() != Items.WRITABLE_BOOK) { + if (itemStack == null || !itemStack.is(Items.WRITABLE_BOOK)) { packet = null; return; } diff --git a/core/src/main/java/org/geysermc/geyser/session/cache/BundleCache.java b/core/src/main/java/org/geysermc/geyser/session/cache/BundleCache.java index 941c04b30..cb9677bff 100644 --- a/core/src/main/java/org/geysermc/geyser/session/cache/BundleCache.java +++ b/core/src/main/java/org/geysermc/geyser/session/cache/BundleCache.java @@ -65,7 +65,7 @@ public final class BundleCache { public void initialize(GeyserItemStack itemStack) { // Message before 1.21.4 - "Can't check for BUNDLE_CONTENTS, which may be missing if the bundle is empty." // Now irrelevant, but keeping as-is for the time being. - if (session.getTagCache().is(ItemTag.BUNDLES, itemStack)) { + if (itemStack.is(session, ItemTag.BUNDLES)) { if (itemStack.getBundleData() != null) { session.getGeyser().getLogger().warning("Stack has bundle data already! It should not!"); if (session.getGeyser().getLogger().isDebug()) { @@ -231,7 +231,7 @@ public final class BundleCache { * if Bedrock sends its own. */ public void awaitRelease() { - if (session.getTagCache().is(ItemTag.BUNDLES, session.getPlayerInventory().getItemInHand())) { + if (session.getPlayerInventory().getItemInHand().is(session, ItemTag.BUNDLES)) { releaseTick = session.getTicks() + 1; } } diff --git a/core/src/main/java/org/geysermc/geyser/session/cache/ChunkCache.java b/core/src/main/java/org/geysermc/geyser/session/cache/ChunkCache.java index fd9ec7ea8..464b99383 100644 --- a/core/src/main/java/org/geysermc/geyser/session/cache/ChunkCache.java +++ b/core/src/main/java/org/geysermc/geyser/session/cache/ChunkCache.java @@ -31,6 +31,7 @@ import lombok.Setter; import org.geysermc.geyser.GeyserImpl; import org.geysermc.geyser.level.block.type.Block; import org.geysermc.geyser.level.chunk.GeyserChunk; +import org.geysermc.geyser.registry.BlockRegistries; import org.geysermc.geyser.session.GeyserSession; import org.geysermc.geyser.util.MathUtils; import org.geysermc.mcprotocollib.protocol.data.game.chunk.DataPalette; @@ -89,9 +90,7 @@ public class ChunkCache { previouslyEmpty = true; if (block != Block.JAVA_AIR_ID) { // A previously empty chunk, which is no longer empty as a block has been added to it - palette = DataPalette.createForChunk(); - // Fixes the chunk assuming that all blocks is the `block` variable we are updating. /shrug - palette.getPalette().stateToId(Block.JAVA_AIR_ID); + palette = DataPalette.createForBlockState(Block.JAVA_AIR_ID, BlockRegistries.BLOCK_STATES.get().size()); chunk.sections()[(y - minY) >> 4] = palette; } else { // Nothing to update diff --git a/core/src/main/java/org/geysermc/geyser/session/cache/FormCache.java b/core/src/main/java/org/geysermc/geyser/session/cache/FormCache.java index 3fadc01bd..27f27b87a 100644 --- a/core/src/main/java/org/geysermc/geyser/session/cache/FormCache.java +++ b/core/src/main/java/org/geysermc/geyser/session/cache/FormCache.java @@ -25,34 +25,26 @@ package org.geysermc.geyser.session.cache; -import com.google.gson.Gson; -import com.google.gson.JsonArray; import it.unimi.dsi.fastutil.ints.Int2ObjectMap; import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap; import it.unimi.dsi.fastutil.ints.IntArrayList; import it.unimi.dsi.fastutil.ints.IntList; import lombok.RequiredArgsConstructor; +import org.cloudburstmc.protocol.bedrock.packet.ClientboundCloseFormPacket; import org.cloudburstmc.protocol.bedrock.packet.ModalFormRequestPacket; import org.cloudburstmc.protocol.bedrock.packet.ModalFormResponsePacket; import org.cloudburstmc.protocol.bedrock.packet.NetworkStackLatencyPacket; -import org.geysermc.cumulus.component.util.ComponentType; -import org.geysermc.cumulus.form.CustomForm; import org.geysermc.cumulus.form.Form; import org.geysermc.cumulus.form.SimpleForm; import org.geysermc.cumulus.form.impl.FormDefinitions; import org.geysermc.geyser.GeyserImpl; -import org.geysermc.geyser.network.GameProtocol; import org.geysermc.geyser.session.GeyserSession; -import java.util.ArrayList; -import java.util.List; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicInteger; @RequiredArgsConstructor public class FormCache { - private static final Gson GSON_TEMP = new Gson(); - /** * The magnitude of this doesn't actually matter, but it must be negative so that * BedrockNetworkStackLatencyTranslator can detect the hack. @@ -62,10 +54,15 @@ public class FormCache { private final FormDefinitions formDefinitions = FormDefinitions.instance(); private final AtomicInteger formIdCounter = new AtomicInteger(0); private final Int2ObjectMap
forms = new Int2ObjectOpenHashMap<>(); + private final IntList sentFormIds = new IntArrayList(); private final GeyserSession session; public boolean hasFormOpen() { - return !forms.isEmpty(); + // If forms is empty it implies that there are no forms to show + // so technically this returns "has forms to show" or "has open" + // Forms are only queued in specific circumstances, such as waiting on + // previous inventories to close + return !forms.isEmpty() && !sentFormIds.isEmpty(); } public int addForm(Form form) { @@ -85,6 +82,9 @@ public class FormCache { private void sendForm(int formId, Form form) { String jsonData = formDefinitions.codecFor(form).jsonData(form); + // Store that this form has been sent + sentFormIds.add(formId); + ModalFormRequestPacket formRequestPacket = new ModalFormRequestPacket(); formRequestPacket.setFormId(formId); formRequestPacket.setFormData(jsonData); @@ -110,56 +110,30 @@ public class FormCache { public void handleResponse(ModalFormResponsePacket response) { Form form = forms.remove(response.getFormId()); + this.sentFormIds.rem(response.getFormId()); if (form == null) { return; } - String responseData = response.getFormData(); - // TODO drop once 1.21.70 is no longer supported - if (form instanceof CustomForm customForm && GameProtocol.isTheOneVersionWithBrokenForms(session) && response.getCancelReason().isEmpty()) { - // Labels are no longer included as a json null, so we have to manually add them for now. - IntList labelIndexes = new IntArrayList(); - for (int i = 0; i < customForm.content().size(); i++) { - var component = customForm.content().get(i); - if (component == null) { - continue; - } - if (component.type() == ComponentType.LABEL) { - labelIndexes.add(i); - } - } - if (!labelIndexes.isEmpty()) { - // If the form only has labels, the response is the literal - // null (with a newline char) instead of a json array - if (responseData.startsWith("null")) { - List newResponse = new ArrayList<>(); - for (int i = 0; i < labelIndexes.size(); i++) { - newResponse.add(null); - } - responseData = GSON_TEMP.toJson(newResponse); - } else { - JsonArray responseDataArray = GSON_TEMP.fromJson(responseData, JsonArray.class); - List newResponse = new ArrayList<>(); - - int handledLabelCount = 0; - for (int i = 0; i < responseDataArray.size() + labelIndexes.size(); i++) { - if (labelIndexes.contains(i)) { - newResponse.add(null); - handledLabelCount++; - continue; - } - newResponse.add(responseDataArray.get(i - handledLabelCount)); - } - responseData = GSON_TEMP.toJson(newResponse); - } - } - } - try { formDefinitions.definitionFor(form) - .handleFormResponse(form, responseData); + .handleFormResponse(form, response.getFormData()); } catch (Exception e) { GeyserImpl.getInstance().getLogger().error("Error while processing form response!", e); } } + + public void closeForms() { + if (!forms.isEmpty()) { + // Check if there are any forms that have not been sent to the client yet + for (Int2ObjectMap.Entry entry : forms.int2ObjectEntrySet()) { + if (!sentFormIds.contains(entry.getIntKey())) { + // This will send the form, but close it instantly with the packet later + // ...thereby clearing our list! + sendForm(entry.getIntKey(), entry.getValue()); + } + } + session.sendUpstreamPacket(new ClientboundCloseFormPacket()); + } + } } diff --git a/core/src/main/java/org/geysermc/geyser/session/cache/InputCache.java b/core/src/main/java/org/geysermc/geyser/session/cache/InputCache.java index 91327ad33..7042c4c2a 100644 --- a/core/src/main/java/org/geysermc/geyser/session/cache/InputCache.java +++ b/core/src/main/java/org/geysermc/geyser/session/cache/InputCache.java @@ -29,6 +29,7 @@ import lombok.Getter; import lombok.Setter; import org.checkerframework.checker.nullness.qual.MonotonicNonNull; import org.cloudburstmc.math.vector.Vector2f; +import org.cloudburstmc.protocol.bedrock.data.InputInteractionModel; import org.cloudburstmc.protocol.bedrock.data.InputMode; import org.cloudburstmc.protocol.bedrock.data.PlayerAuthInputData; import org.cloudburstmc.protocol.bedrock.packet.PlayerAuthInputPacket; @@ -61,14 +62,54 @@ public final class InputCache { var oldInputPacket = this.inputPacket; this.inputMode = packet.getInputMode(); + /* + Brief introduction to how Bedrock sends movement inputs! It's mainly based on the following: + (as of 1.21.111) + 1. inputmode: + - MOUSE: same as Java edition; will send up/down/left/right inputs via input flags + - GAMEPAD: indicates the use of a controller with joysticks, sends an "analogue movement vector" instead + - TOUCH: see interaction model! + - MOTION_CONTROLLER: what even is this + + 2. Interaction model (here, only really relevant for us when the inputmode is "touch"): + - CLASSIC: shows "wasd" keys on the client; like input-mode MOUSE would, additionally up_left / up_right / down_left / down_right + - CROSSHAIR / TOUCH: NO wasd, analogue movement vector instead + + Hence, we'll also need to check for this fun edge-case! + */ + boolean isMobileAndClassicMovement = inputMode == InputMode.TOUCH && packet.getInputInteractionModel() == InputInteractionModel.CLASSIC; + boolean up, down, left, right; - if (this.inputMode == InputMode.MOUSE) { + if (this.inputMode == InputMode.MOUSE || isMobileAndClassicMovement) { up = bedrockInput.contains(PlayerAuthInputData.UP); down = bedrockInput.contains(PlayerAuthInputData.DOWN); left = bedrockInput.contains(PlayerAuthInputData.LEFT); right = bedrockInput.contains(PlayerAuthInputData.RIGHT); + + if (isMobileAndClassicMovement) { + // These are the buttons in the corners of the touch area + if (bedrockInput.contains(PlayerAuthInputData.UP_LEFT)) { + up = true; + left = true; + } + + if (bedrockInput.contains(PlayerAuthInputData.UP_RIGHT)) { + up = true; + right = true; + } + + if (bedrockInput.contains(PlayerAuthInputData.DOWN_LEFT)) { + down = true; + left = true; + } + + if (bedrockInput.contains(PlayerAuthInputData.DOWN_RIGHT)) { + down = true; + right = true; + } + } } else { - // The above flags don't fire TODO test console + // The above flags don't fire Vector2f analogMovement = packet.getAnalogMoveVector(); up = analogMovement.getY() > 0; down = analogMovement.getY() < 0; @@ -78,7 +119,6 @@ public final class InputCache { boolean sneaking = isSneaking(bedrockInput); - // TODO when is UP_LEFT, etc. used? this.inputPacket = this.inputPacket .withForward(up) .withBackward(down) @@ -133,7 +173,7 @@ public final class InputCache { public boolean isSneaking(Set authInputData) { // Flying doesn't send start / stop fly cases; might as well return early if (session.isFlying()) { - // Of course e.g. mobile handles it differently with a descend case, while + // Of course e.g. mobile devices handle it differently with a descend case, while // e.g. Win10 sends SNEAK_DOWN. Why? We'll never know. return authInputData.contains(PlayerAuthInputData.DESCEND) || authInputData.contains(PlayerAuthInputData.SNEAK_DOWN); } diff --git a/core/src/main/java/org/geysermc/geyser/session/cache/SkullCache.java b/core/src/main/java/org/geysermc/geyser/session/cache/SkullCache.java index 53853e6e1..074728f4d 100644 --- a/core/src/main/java/org/geysermc/geyser/session/cache/SkullCache.java +++ b/core/src/main/java/org/geysermc/geyser/session/cache/SkullCache.java @@ -43,6 +43,7 @@ import org.geysermc.geyser.registry.BlockRegistries; import org.geysermc.geyser.registry.type.CustomSkull; import org.geysermc.geyser.session.GeyserSession; import org.geysermc.geyser.skin.SkinManager; +import org.geysermc.mcprotocollib.auth.GameProfile; import java.io.IOException; import java.util.*; @@ -74,6 +75,14 @@ public class SkullCache { this.skullRenderDistanceSquared = distance * distance; } + public Skull putSkull(Vector3i position, GameProfile resolved, BlockState blockState) { + GameProfile.Property textures = resolved.getProperty("textures"); + if (textures != null) { + return putSkull(position, resolved.getId(), textures.getValue(), blockState); + } + return null; + } + public Skull putSkull(Vector3i position, UUID uuid, String texturesProperty, BlockState blockState) { Skull skull = skulls.computeIfAbsent(position, Skull::new); skull.uuid = uuid; 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 57ce7ecbf..28990e1e2 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 @@ -31,9 +31,6 @@ 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; @@ -43,7 +40,6 @@ 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; import java.util.Arrays; import java.util.List; import java.util.Map; @@ -52,8 +48,19 @@ import java.util.Map; * Manages information sent from the {@link ClientboundUpdateTagsPacket}. If that packet is not sent, all lists here * will remain empty, matching Java Edition behavior. Looking up a tag that wasn't listed in that packet will return an empty array. * Only tags from registries in {@link JavaRegistries} are stored. Read {@link JavaRegistryKey} for more information. + * + *

To simply check if an element is in a tag, it's preferred to use the element's "{@code is}" method, if available. For example:

+ * + *
    + *
  • {@link org.geysermc.geyser.level.block.type.Block#is(GeyserSession, Tag)}
  • + *
  • {@link org.geysermc.geyser.level.block.type.Block#is(GeyserSession, HolderSet)}
  • + *
  • {@link org.geysermc.geyser.item.type.Item#is(GeyserSession, Tag)}
  • + *
  • {@link org.geysermc.geyser.item.type.Item#is(GeyserSession, HolderSet)}
  • + *
  • {@link org.geysermc.geyser.inventory.GeyserItemStack#is(GeyserSession, Tag)}
  • + *
  • {@link org.geysermc.geyser.inventory.GeyserItemStack#is(GeyserSession, HolderSet)}
  • + *
  • {@link GeyserHolderSet#contains(GeyserSession, Object)}
  • + *
*/ -@ParametersAreNonnullByDefault public final class TagCache { private final GeyserSession session; private final Map, int[]> tags = new Object2ObjectOpenHashMap<>(); @@ -109,37 +116,40 @@ public final class TagCache { } } - public boolean is(Tag tag, T object) { + /** + * Should only be used when the network ID of an element is already known. If not, prefer using the {@link TagCache#is(Tag, Object)} shorthand method. + */ + public boolean is(@NonNull Tag tag, int id) { + return contains(getRaw(tag), id); + } + + public boolean is(@NonNull Tag tag, @NonNull T object) { return contains(getRaw(tag), tag.registry().networkId(session, object)); } /** - * @return true if the item tag is present and contains this item stack's Java ID. + * Prefer using {@link GeyserHolderSet#contains(GeyserSession, Object)}. + * + * @return true if the specified network ID is in the given {@link GeyserHolderSet}. */ - public boolean is(Tag tag, GeyserItemStack itemStack) { - return is(tag, itemStack.asItem()); - } - - /** - * @return true if the specified network ID is in the given holder set. - */ - public boolean is(@Nullable GeyserHolderSet holderSet, @Nullable T object) { - if (holderSet == null || object == null) { + public boolean is(@NonNull GeyserHolderSet holderSet, @Nullable T object) { + if (object == null) { return false; } return contains(holderSet.resolveRaw(this), holderSet.getRegistry().networkId(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) { + public boolean is(@Nullable HolderSet holderSet, @NonNull JavaRegistryKey registry, int id) { if (holderSet == null) { return false; } int[] entries = holderSet.resolve(key -> { + // This should never happen, since a key in a HolderSet is always a tag + // We check for it anyway if (key.value().startsWith("#")) { key = Key.key(key.namespace(), key.value().substring(1)); } @@ -149,23 +159,14 @@ public final class TagCache { 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) { + public List get(@NonNull Tag tag) { return mapRawArray(session, getRaw(tag), tag.registry()); } /** - * @return the network IDs in the given tag. This can be an empty list. + * @return the network IDs in the given tag. This can be an empty array. */ - public int[] getRaw(Tag tag) { + public int[] getRaw(@NonNull Tag tag) { return this.tags.getOrDefault(tag, IntArrays.EMPTY_ARRAY); } diff --git a/core/src/main/java/org/geysermc/geyser/session/cache/WorldCache.java b/core/src/main/java/org/geysermc/geyser/session/cache/WorldCache.java index 6108c6432..f06c45d5f 100644 --- a/core/src/main/java/org/geysermc/geyser/session/cache/WorldCache.java +++ b/core/src/main/java/org/geysermc/geyser/session/cache/WorldCache.java @@ -47,6 +47,7 @@ import org.geysermc.mcprotocollib.protocol.data.game.setting.Difficulty; import java.util.Iterator; import java.util.Map; +import java.util.Objects; public final class WorldCache { private final GeyserSession session; @@ -179,6 +180,12 @@ public final class WorldCache { this.unverifiedPredictions.removeInt(position); } + // Hack to avoid looking up blockstates for the currently broken position each tick + Vector3i clientBreakPos = session.getBlockBreakHandler().getCurrentBlockPos(); + if (clientBreakPos != null && Objects.equals(clientBreakPos, position)) { + session.getBlockBreakHandler().setUpdatedServerBlockStateId(blockState); + } + ChunkUtils.updateBlock(session, blockState, position); } diff --git a/core/src/main/java/org/geysermc/geyser/session/cache/registry/JavaRegistry.java b/core/src/main/java/org/geysermc/geyser/session/cache/registry/JavaRegistry.java index 8a0c4c4df..fc9c7d884 100644 --- a/core/src/main/java/org/geysermc/geyser/session/cache/registry/JavaRegistry.java +++ b/core/src/main/java/org/geysermc/geyser/session/cache/registry/JavaRegistry.java @@ -80,4 +80,9 @@ public interface JavaRegistry { * All values of this registry, as a list. */ List values(); + + /** + * The amount of values registered in this registry. + */ + int size(); } diff --git a/core/src/main/java/org/geysermc/geyser/session/cache/registry/SimpleJavaRegistry.java b/core/src/main/java/org/geysermc/geyser/session/cache/registry/SimpleJavaRegistry.java index 853579813..f6c7769ca 100644 --- a/core/src/main/java/org/geysermc/geyser/session/cache/registry/SimpleJavaRegistry.java +++ b/core/src/main/java/org/geysermc/geyser/session/cache/registry/SimpleJavaRegistry.java @@ -108,6 +108,11 @@ public class SimpleJavaRegistry implements JavaRegistry { return this.values.stream().map(RegistryEntryData::data).toList(); } + @Override + public int size() { + return values.size(); + } + @Override public String toString() { return this.values.toString(); 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 7c08dbed1..64062c7bd 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 @@ -47,6 +47,7 @@ public final class BlockTag { public static final Tag WOODEN_FENCES = create("wooden_fences"); public static final Tag FENCE_GATES = create("fence_gates"); public static final Tag WOODEN_PRESSURE_PLATES = create("wooden_pressure_plates"); + public static final Tag WOODEN_SHELVES = create("wooden_shelves"); public static final Tag DOORS = create("doors"); public static final Tag SAPLINGS = create("saplings"); public static final Tag BAMBOO_BLOCKS = create("bamboo_blocks"); @@ -93,6 +94,13 @@ public final class BlockTag { public static final Tag TERRACOTTA = create("terracotta"); 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 COPPER_CHESTS = create("copper_chests"); + public static final Tag LIGHTNING_RODS = create("lightning_rods"); + public static final Tag COPPER = create("copper"); + public static final Tag CHAINS = create("chains"); + public static final Tag COPPER_GOLEM_STATUES = create("copper_golem_statues"); + public static final Tag LANTERNS = create("lanterns"); + public static final Tag BARS = create("bars"); public static final Tag CEILING_HANGING_SIGNS = create("ceiling_hanging_signs"); public static final Tag STANDING_SIGNS = create("standing_signs"); public static final Tag BEE_ATTRACTIVE = create("bee_attractive"); @@ -180,6 +188,7 @@ public final class BlockTag { public static final Tag INCORRECT_FOR_NETHERITE_TOOL = create("incorrect_for_netherite_tool"); public static final Tag INCORRECT_FOR_DIAMOND_TOOL = create("incorrect_for_diamond_tool"); public static final Tag INCORRECT_FOR_IRON_TOOL = create("incorrect_for_iron_tool"); + public static final Tag INCORRECT_FOR_COPPER_TOOL = create("incorrect_for_copper_tool"); public static final Tag INCORRECT_FOR_STONE_TOOL = create("incorrect_for_stone_tool"); public static final Tag INCORRECT_FOR_GOLD_TOOL = create("incorrect_for_gold_tool"); public static final Tag INCORRECT_FOR_WOODEN_TOOL = create("incorrect_for_wooden_tool"); 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 00eaf1f44..85c7d762e 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 @@ -95,6 +95,13 @@ public final class GeyserHolderSet { return new GeyserHolderSet<>(registry, tag, holderSet.getHolders(), null); } + public boolean contains(@NonNull GeyserSession session, @Nullable T object) { + if (object == null) { + return false; + } + return session.getTagCache().is(this, object); + } + /** * Resolves the HolderSet, and automatically maps the network IDs to their respective object types. * If the HolderSet is a list of IDs, this will be returned. If it is a tag, the tag will be resolved from the tag cache. If it is an inline HolderSet, the list of inline elements will be returned. 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 34fb02afd..161b9063f 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 @@ -47,6 +47,7 @@ public final class ItemTag { public static final Tag WOODEN_FENCES = create("wooden_fences"); public static final Tag FENCE_GATES = create("fence_gates"); public static final Tag WOODEN_PRESSURE_PLATES = create("wooden_pressure_plates"); + public static final Tag WOODEN_SHELVES = create("wooden_shelves"); public static final Tag DOORS = create("doors"); public static final Tag SAPLINGS = create("saplings"); public static final Tag BAMBOO_BLOCKS = create("bamboo_blocks"); @@ -93,6 +94,13 @@ public final class ItemTag { public static final Tag TERRACOTTA = create("terracotta"); 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 COPPER_CHESTS = create("copper_chests"); + public static final Tag LIGHTNING_RODS = create("lightning_rods"); + public static final Tag COPPER_GOLEM_STATUES = create("copper_golem_statues"); + public static final Tag COPPER = create("copper"); + public static final Tag CHAINS = create("chains"); + public static final Tag LANTERNS = create("lanterns"); + public static final Tag BARS = create("bars"); public static final Tag SIGNS = create("signs"); public static final Tag HANGING_SIGNS = create("hanging_signs"); public static final Tag BEE_FOOD = create("bee_food"); @@ -148,11 +156,13 @@ public final class ItemTag { 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 COPPER_TOOL_MATERIALS = create("copper_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_COPPER_ARMOR = create("repairs_copper_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"); @@ -192,6 +202,7 @@ public final class ItemTag { 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 SHEARABLE_FROM_COPPER_GOLEM = create("shearable_from_copper_golem"); 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"); 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 12f002025..4ca5f14eb 100644 --- a/core/src/main/java/org/geysermc/geyser/skin/FakeHeadProvider.java +++ b/core/src/main/java/org/geysermc/geyser/skin/FakeHeadProvider.java @@ -39,21 +39,17 @@ import org.geysermc.geyser.api.skin.Skin; import org.geysermc.geyser.api.skin.SkinData; import org.geysermc.geyser.api.skin.SkinGeometry; import org.geysermc.geyser.entity.type.LivingEntity; -import org.geysermc.geyser.entity.type.player.PlayerEntity; +import org.geysermc.geyser.entity.type.player.AvatarEntity; import org.geysermc.geyser.session.GeyserSession; -import org.geysermc.geyser.skin.SkinManager.GameProfileData; import org.geysermc.geyser.text.GeyserLocale; 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 org.geysermc.mcprotocollib.protocol.data.game.entity.player.ResolvableProfile; import java.awt.*; import java.awt.image.BufferedImage; -import java.io.IOException; -import java.util.Map; import java.util.Objects; -import java.util.concurrent.CompletableFuture; import java.util.concurrent.ExecutionException; import java.util.concurrent.TimeUnit; @@ -104,86 +100,44 @@ public class FakeHeadProvider { } }); - public static void setHead(GeyserSession session, PlayerEntity entity, @Nullable GameProfile profile) { + public static void setHead(GeyserSession session, AvatarEntity entity, @Nullable ResolvableProfile profile) { if (profile == null) { return; } - GameProfile current = session.getPlayerWithCustomHeads().get(entity.getUuid()); + ResolvableProfile current = session.getPlayerWithCustomHeads().get(entity.getUuid()); if (profile.equals(current)) { // We already did this, no need to re-compute return; } - 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())); - textures = null; - } - - if (textures == null || textures.isEmpty()) { - loadHeadFromProfile(session, entity, profile); - return; - } - - Texture skinTexture = textures.get(TextureType.SKIN); - - if (skinTexture == null) { - return; - } - - Texture capeTexture = textures.get(TextureType.CAPE); - String capeUrl = capeTexture != null ? capeTexture.getURL() : null; - - boolean isAlex = skinTexture.getModel() == TextureModel.SLIM; - - loadHeadFromProfile(session, entity, new GameProfileData(skinTexture.getURL(), capeUrl, isAlex), profile); - } - - public static void loadHeadFromProfile(GeyserSession session, PlayerEntity entity, GameProfile profile) { - CompletableFuture texturesFuture; - if (profile.getId() != null) { - texturesFuture = SkinProvider.requestTexturesFromUUID(profile.getId().toString()); - } else { - texturesFuture = SkinProvider.requestTexturesFromUsername(profile.getName()); - } - - texturesFuture.whenCompleteAsync((encodedJson, throwable) -> { + SkinManager.resolveProfile(profile).whenCompleteAsync((resolved, throwable) -> { if (throwable != null) { GeyserImpl.getInstance().getLogger().error(GeyserLocale.getLocaleStringLog("geyser.skin.fail", entity.getUuid()), throwable); return; } - try { - SkinManager.GameProfileData gameProfileData = SkinManager.GameProfileData.loadFromJson(encodedJson); - if (gameProfileData == null) { - return; - } - loadHeadFromProfile(session, entity, gameProfileData, profile); - } catch (IOException e) { - GeyserImpl.getInstance().getLogger().error(GeyserLocale.getLocaleStringLog("geyser.skin.fail", entity.getUuid(), e.getMessage())); - } + loadHeadFromProfile(session, entity, profile, resolved); }); } - public static void loadHeadFromProfile(GeyserSession session, PlayerEntity entity, SkinManager.GameProfileData gameProfileData, GameProfile profile) { - String fakeHeadSkinUrl = gameProfileData.skinUrl(); - - session.getPlayerWithCustomHeads().put(entity.getUuid(), profile); - String texturesProperty = entity.getTexturesProperty(); - SkinProvider.getExecutorService().execute(() -> { - try { - SkinData mergedSkinData = MERGED_SKINS_LOADING_CACHE.get(new FakeHeadEntry(texturesProperty, fakeHeadSkinUrl, entity, session)); - SkinManager.sendSkinPacket(session, entity, mergedSkinData); - } catch (ExecutionException e) { - GeyserImpl.getInstance().getLogger().error("Couldn't merge skin of " + entity.getUsername() + " with head skin url " + fakeHeadSkinUrl, e); - } - }); + private static void loadHeadFromProfile(GeyserSession session, AvatarEntity entity, ResolvableProfile original, GameProfile resolved) { + Texture skinTexture = SkinManager.getTextureDataFromProfile(resolved, TextureType.SKIN); + String originalTextures = entity.getTexturesProperty(); + if (skinTexture != null) { + session.getPlayerWithCustomHeads().put(entity.getUuid(), original); + SkinProvider.getExecutorService().execute(() -> { + try { + SkinData mergedSkinData = MERGED_SKINS_LOADING_CACHE.get(new FakeHeadEntry(originalTextures, skinTexture.getURL(), entity, session)); + SkinManager.sendSkinPacket(session, entity, mergedSkinData); + } catch (ExecutionException e) { + GeyserImpl.getInstance().getLogger().error("Couldn't merge skin of " + entity.getUsername() + " with head skin " + resolved, e); + } + }); + } } public static void restoreOriginalSkin(GeyserSession session, LivingEntity livingEntity) { - if (!(livingEntity instanceof PlayerEntity entity)) { + if (!(livingEntity instanceof AvatarEntity entity)) { return; } @@ -207,7 +161,7 @@ public class FakeHeadProvider { private static class FakeHeadEntry { private final String texturesProperty; private final String fakeHeadSkinUrl; - private PlayerEntity entity; + private AvatarEntity entity; private GeyserSession session; @Override diff --git a/core/src/main/java/org/geysermc/geyser/skin/SkinManager.java b/core/src/main/java/org/geysermc/geyser/skin/SkinManager.java index 5a39774cf..71b6381f0 100644 --- a/core/src/main/java/org/geysermc/geyser/skin/SkinManager.java +++ b/core/src/main/java/org/geysermc/geyser/skin/SkinManager.java @@ -27,6 +27,8 @@ package org.geysermc.geyser.skin; import com.google.gson.JsonObject; import com.google.gson.JsonPrimitive; +import com.google.common.cache.Cache; +import com.google.common.cache.CacheBuilder; import org.checkerframework.checker.nullness.qual.Nullable; import org.cloudburstmc.nbt.NbtMap; import org.cloudburstmc.nbt.NbtType; @@ -39,30 +41,43 @@ import org.geysermc.geyser.api.skin.Cape; import org.geysermc.geyser.api.skin.Skin; import org.geysermc.geyser.api.skin.SkinData; import org.geysermc.geyser.api.skin.SkinGeometry; -import org.geysermc.geyser.entity.type.player.PlayerEntity; +import org.geysermc.geyser.entity.type.player.AvatarEntity; import org.geysermc.geyser.entity.type.player.SkullPlayerEntity; import org.geysermc.geyser.session.GeyserSession; import org.geysermc.geyser.session.auth.BedrockClientData; import org.geysermc.geyser.text.GeyserLocale; import org.geysermc.geyser.util.FileUtils; import org.geysermc.geyser.util.JsonUtils; +import org.geysermc.mcprotocollib.auth.GameProfile; +import org.geysermc.mcprotocollib.protocol.data.game.entity.player.ResolvableProfile; import java.awt.*; import java.io.IOException; import java.nio.charset.StandardCharsets; +import java.util.ArrayList; import java.util.Base64; import java.util.List; +import java.util.Map; import java.util.UUID; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.TimeUnit; import java.util.function.Consumer; public class SkinManager { + private static final Cache RESOLVED_PROFILES_CACHE = CacheBuilder.newBuilder() + .expireAfterAccess(1, TimeUnit.HOURS) + .build(); + private static final UUID EMPTY_UUID = new UUID(0L, 0L); + public static final GameProfile EMPTY_PROFILE = new GameProfile((UUID) null, null); + public static final ResolvableProfile EMPTY_RESOLVABLE_PROFILE = new ResolvableProfile(EMPTY_PROFILE, null, null, null, null, false); + static final String GEOMETRY = new String(FileUtils.readAllBytes("bedrock/geometries/geo.json"), StandardCharsets.UTF_8); /** * Builds a Bedrock player list entry from our existing, cached Bedrock skin information */ - public static PlayerListPacket.Entry buildCachedEntry(GeyserSession session, PlayerEntity playerEntity) { + public static PlayerListPacket.Entry buildCachedEntry(GeyserSession session, AvatarEntity playerEntity) { // First: see if we have the cached skin texture ID. GameProfileData data = GameProfileData.from(playerEntity); Skin skin = null; @@ -145,7 +160,7 @@ public class SkinManager { return entry; } - public static void sendSkinPacket(GeyserSession session, PlayerEntity entity, SkinData skinData) { + public static void sendSkinPacket(GeyserSession session, AvatarEntity entity, SkinData skinData) { Skin skin = skinData.skin(); Cape cape = skinData.cape(); SkinGeometry geometry = skinData.geometry(); @@ -192,7 +207,82 @@ public class SkinManager { .build(); } - public static void requestAndHandleSkinAndCape(PlayerEntity entity, GeyserSession session, + public static CompletableFuture resolveProfile(ResolvableProfile profile) { + GameProfile partial = profile.getProfile(); + if (!profile.isDynamic()) { + // This is easy: the server has provided the entire profile for us (or however much it knew), + // and is asking us to use this + return CompletableFuture.completedFuture(partial); + } else if (!partial.getProperties().isEmpty() || (partial.getId() == null && partial.getName() == null)) { + // If properties have been provided to us, or no ID and no name have been provided, create a static profile from + // what we do know + // This replicates vanilla Java client behaviour + String name = partial.getName() == null ? "" : partial.getName(); + UUID uuid = partial.getName() == null ? EMPTY_UUID : createOfflinePlayerUUID(partial.getName()); + GameProfile completed = new GameProfile(uuid, name); + completed.setProperties(partial.getProperties()); + return CompletableFuture.completedFuture(completed); + } + + GameProfile cached = RESOLVED_PROFILES_CACHE.getIfPresent(profile); + if (cached != null) { + return CompletableFuture.completedFuture(cached); + } + + // The resolvable profile is dynamic - server wants the client (us) to retrieve the full GameProfile + // from Mojang's API + + // The partial profile *should* always have either a name or a UUID, not both + CompletableFuture completedProfileFuture; + if (partial.getName() != null) { + completedProfileFuture = SkinProvider.requestUUIDFromUsername(partial.getName()) + .thenApply(uuid -> new GameProfile(uuid, partial.getName())); + } else { + completedProfileFuture = SkinProvider.requestUsernameFromUUID(partial.getId()) + .thenApply(name -> new GameProfile(partial.getId(), name)); + } + + return completedProfileFuture + .thenCompose(nameAndUUID -> { + // Fallback to partial if anything goes wrong - should replicate vanilla Java client behaviour + if (nameAndUUID.getId() == null || nameAndUUID.getName() == null) { + return CompletableFuture.completedFuture(partial); + } + + return SkinProvider.requestTexturesFromUUID(nameAndUUID.getId()) + .thenApply(encoded -> { + if (encoded == null) { + return partial; + } + + List properties = new ArrayList<>(); + properties.add(new GameProfile.Property("textures", encoded)); + nameAndUUID.setProperties(properties); + return nameAndUUID; + }); + }) + .thenApply(resolved -> { + RESOLVED_PROFILES_CACHE.put(profile, resolved); + return resolved; + }); + } + + public static GameProfile.@Nullable Texture getTextureDataFromProfile(GameProfile profile, GameProfile.TextureType type) { + Map textures; + try { + textures = profile.getTextures(false); + } catch (IllegalStateException e) { + GeyserImpl.getInstance().getLogger().debug("Could not decode textures from game profile %s, got: %s".formatted(profile, e.getMessage())); + return null; + } + + if (textures == null) { + return null; + } + return textures.get(type); + } + + public static void requestAndHandleSkinAndCape(AvatarEntity entity, GeyserSession session, Consumer skinAndCapeConsumer) { SkinProvider.requestSkinData(entity, session).whenCompleteAsync((skinData, throwable) -> { if (skinData == null) { @@ -213,7 +303,7 @@ public class SkinManager { }); } - public static void handleBedrockSkin(PlayerEntity playerEntity, BedrockClientData clientData) { + public static void handleBedrockSkin(AvatarEntity playerEntity, BedrockClientData clientData) { GeyserImpl geyser = GeyserImpl.getInstance(); if (geyser.config().debugMode()) { geyser.getLogger().info(GeyserLocale.getLocaleStringLog("geyser.skin.bedrock.register", playerEntity.getUsername(), playerEntity.getUuid())); @@ -242,6 +332,10 @@ public class SkinManager { } } + public static UUID createOfflinePlayerUUID(String username) { + return UUID.nameUUIDFromBytes(("OfflinePlayer:" + username).getBytes(StandardCharsets.UTF_8)); + } + public record GameProfileData(String skinUrl, String capeUrl, boolean isAlex) { /** * Generate the GameProfileData from the given CompoundTag representing a GameProfile @@ -280,7 +374,7 @@ public class SkinManager { * @param entity entity to build the GameProfileData from * @return The built GameProfileData */ - public static @Nullable GameProfileData from(PlayerEntity entity) { + public static @Nullable GameProfileData from(AvatarEntity entity) { String texturesProperty = entity.getTexturesProperty(); if (texturesProperty == null) { // Likely offline mode diff --git a/core/src/main/java/org/geysermc/geyser/skin/SkinProvider.java b/core/src/main/java/org/geysermc/geyser/skin/SkinProvider.java index 34f0e9aba..01c72494e 100644 --- a/core/src/main/java/org/geysermc/geyser/skin/SkinProvider.java +++ b/core/src/main/java/org/geysermc/geyser/skin/SkinProvider.java @@ -40,7 +40,7 @@ import org.geysermc.geyser.api.skin.Cape; import org.geysermc.geyser.api.skin.Skin; import org.geysermc.geyser.api.skin.SkinData; import org.geysermc.geyser.api.skin.SkinGeometry; -import org.geysermc.geyser.entity.type.player.PlayerEntity; +import org.geysermc.geyser.entity.type.player.AvatarEntity; import org.geysermc.geyser.session.GeyserSession; import org.geysermc.geyser.text.GeyserLocale; import org.geysermc.geyser.util.FileUtils; @@ -233,7 +233,7 @@ public class SkinProvider { return CACHED_JAVA_CAPES.getIfPresent(capeUrl); } - static CompletableFuture requestSkinData(PlayerEntity entity, GeyserSession session) { + static CompletableFuture requestSkinData(AvatarEntity entity, GeyserSession session) { SkinManager.GameProfileData data = SkinManager.GameProfileData.from(entity); if (data == null) { // This player likely does not have a textures property @@ -473,16 +473,84 @@ public class SkinProvider { return data; } + public static @Nullable String shorthandUUID(@Nullable UUID uuid) { + if (uuid == null) { + return null; + } + + return uuid.toString().replace("-", ""); + } + + public static @Nullable UUID expandUUID(@Nullable String uuid) { + if (uuid == null) { + return null; + } + + long mostSignificant = Long.parseUnsignedLong(uuid.substring(0, 16), 16); + long leastSignificant = Long.parseUnsignedLong(uuid.substring(16), 16); + return new UUID(mostSignificant, leastSignificant); + } + + /** + * Request a player's username from their UUID + * + * @param uuid the player's UUID + * @return a completable username of the player + */ + public static CompletableFuture<@Nullable String> requestUsernameFromUUID(UUID uuid) { + return CompletableFuture.supplyAsync(() -> { + try { + JsonObject node = WebUtils.getJson("https://api.minecraftservices.com/minecraft/profile/lookup/" + shorthandUUID(uuid)); + JsonElement name = node.get("name"); + if (name == null) { + GeyserImpl.getInstance().getLogger().debug("No username found in Mojang response for " + uuid); + return null; + } + return name.getAsString(); + } catch (Exception e) { + if (GeyserImpl.getInstance().config().debugMode()) { + e.printStackTrace(); + } + return null; + } + }, getExecutorService()); + } + + /** + * Request a player's UUID from their username + * + * @param username the player's username + * @return a completable UUID of the player + */ + public static CompletableFuture<@Nullable UUID> requestUUIDFromUsername(String username) { + return CompletableFuture.supplyAsync(() -> { + try { + JsonObject node = WebUtils.getJson("https://api.mojang.com/users/profiles/minecraft/" + username); + JsonElement id = node.get("id"); + if (id == null) { + GeyserImpl.getInstance().getLogger().debug("No UUID found in Mojang response for " + username); + return null; + } + return expandUUID(id.getAsString()); + } catch (Exception e) { + if (GeyserImpl.getInstance().config().debugMode()) { + e.printStackTrace(); + } + return null; + } + }, getExecutorService()); + } + /** * Request textures from a player's UUID * - * @param uuid the player's UUID without any hyphens + * @param uuid the player's UUID * @return a completable GameProfile with textures included */ - public static CompletableFuture<@Nullable String> requestTexturesFromUUID(String uuid) { + public static CompletableFuture<@Nullable String> requestTexturesFromUUID(UUID uuid) { return CompletableFuture.supplyAsync(() -> { try { - JsonObject node = WebUtils.getJson("https://sessionserver.mojang.com/session/minecraft/profile/" + uuid); + JsonObject node = WebUtils.getJson("https://sessionserver.mojang.com/session/minecraft/profile/" + shorthandUUID(uuid)); JsonArray properties = node.getAsJsonArray("properties"); if (properties == null) { GeyserImpl.getInstance().getLogger().debug("No properties found in Mojang response for " + uuid); @@ -506,28 +574,13 @@ public class SkinProvider { * @return a completable GameProfile with textures included */ public static CompletableFuture<@Nullable String> requestTexturesFromUsername(String username) { - return CompletableFuture.supplyAsync(() -> { - try { - // Offline skin, or no present UUID - JsonObject node = WebUtils.getJson("https://api.mojang.com/users/profiles/minecraft/" + username); - JsonElement id = node.get("id"); - if (id == null) { - GeyserImpl.getInstance().getLogger().debug("No UUID found in Mojang response for " + username); - return null; + return requestUUIDFromUsername(username) + .thenCompose(uuid -> { + if (uuid == null) { + return CompletableFuture.completedFuture(null); } - return id.getAsString(); - } catch (Exception e) { - if (GeyserImpl.getInstance().config().debugMode()) { - e.printStackTrace(); - } - return null; - } - }, getExecutorService()).thenCompose(uuid -> { - if (uuid == null) { - return CompletableFuture.completedFuture(null); - } - return requestTexturesFromUUID(uuid); - }); + return requestTexturesFromUUID(uuid); + }); } private static BufferedImage downloadImage(String imageUrl) throws IOException { diff --git a/core/src/main/java/org/geysermc/geyser/skin/SkullSkinManager.java b/core/src/main/java/org/geysermc/geyser/skin/SkullSkinManager.java index 41e4025f1..47fb17197 100644 --- a/core/src/main/java/org/geysermc/geyser/skin/SkullSkinManager.java +++ b/core/src/main/java/org/geysermc/geyser/skin/SkullSkinManager.java @@ -31,6 +31,7 @@ import org.cloudburstmc.protocol.bedrock.packet.PlayerSkinPacket; import org.geysermc.geyser.GeyserImpl; import org.geysermc.geyser.api.skin.Skin; import org.geysermc.geyser.api.skin.SkinData; +import org.geysermc.geyser.entity.type.player.AvatarEntity; import org.geysermc.geyser.entity.type.player.SkullPlayerEntity; import org.geysermc.geyser.session.GeyserSession; import org.geysermc.geyser.text.GeyserLocale; @@ -55,7 +56,7 @@ public class SkullSkinManager extends SkinManager { .build(); } - public static void requestAndHandleSkin(SkullPlayerEntity entity, GeyserSession session, + public static void requestAndHandleSkin(AvatarEntity entity, GeyserSession session, Consumer skinConsumer) { BiConsumer applySkin = (skin, throwable) -> { try { @@ -77,11 +78,13 @@ public class SkullSkinManager extends SkinManager { GameProfileData data = GameProfileData.from(entity); if (data == null) { - GeyserImpl.getInstance().getLogger().debug("Using fallback skin for skull at " + entity.getSkullPosition() + - " with texture value: " + entity.getTexturesProperty() + " and UUID: " + entity.getSkullUUID()); - // No texture available, fallback using the UUID - SkinData fallback = SkinProvider.determineFallbackSkinData(entity.getSkullUUID()); - applySkin.accept(fallback.skin(), null); + if (entity instanceof SkullPlayerEntity skullEntity) { + GeyserImpl.getInstance().getLogger().debug("Using fallback skin for skull at " + skullEntity.getSkullPosition() + + " with texture value: " + entity.getTexturesProperty() + " and UUID: " + skullEntity.getSkullUUID()); + // No texture available, fallback using the UUID + SkinData fallback = SkinProvider.determineFallbackSkinData(skullEntity.getSkullUUID()); + applySkin.accept(fallback.skin(), null); + } } else { SkinProvider.requestSkin(entity.getUuid(), data.skinUrl(), true) .whenCompleteAsync(applySkin); diff --git a/core/src/main/java/org/geysermc/geyser/text/MinecraftTranslationRegistry.java b/core/src/main/java/org/geysermc/geyser/text/MinecraftTranslationRegistry.java index 03b017c9c..4286fab07 100644 --- a/core/src/main/java/org/geysermc/geyser/text/MinecraftTranslationRegistry.java +++ b/core/src/main/java/org/geysermc/geyser/text/MinecraftTranslationRegistry.java @@ -60,7 +60,7 @@ public class MinecraftTranslationRegistry extends TranslatableComponentRenderer< } else { // The original translation will be translated // Can be tested with 1.19.4: {"translate":"%s","with":[{"text":"weeeeeee"}]} - localeString = key; + return null; } } diff --git a/core/src/main/java/org/geysermc/geyser/translator/inventory/BundleInventoryTranslator.java b/core/src/main/java/org/geysermc/geyser/translator/inventory/BundleInventoryTranslator.java index ea9adba98..6abd7025d 100644 --- a/core/src/main/java/org/geysermc/geyser/translator/inventory/BundleInventoryTranslator.java +++ b/core/src/main/java/org/geysermc/geyser/translator/inventory/BundleInventoryTranslator.java @@ -314,7 +314,7 @@ public final class BundleInventoryTranslator { return Fraction.ONE; } } - return Fraction.getFraction(1, itemStack.getComponentElseGet(DataComponentTypes.MAX_STACK_SIZE, () -> itemStack.asItem().defaultMaxStackSize())); + return Fraction.getFraction(1, itemStack.getMaxStackSize()); } public static int capacityForItemStack(Fraction bundleWeight, GeyserItemStack itemStack) { 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 8d182f923..5c66288fc 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 @@ -46,11 +46,11 @@ public class CartographyInventoryTranslator extends AbstractBlockInventoryTransl if (javaDestinationSlot == 0) { // Bedrock Edition can use paper or an empty map in slot 0 GeyserItemStack itemStack = javaSourceSlot == -1 ? session.getPlayerInventory().getCursor() : container.getItem(javaSourceSlot); - return itemStack.asItem() == Items.PAPER || itemStack.asItem() == Items.MAP; + return itemStack.is(Items.PAPER) || itemStack.is(Items.MAP); } else if (javaDestinationSlot == 1) { // Bedrock Edition can use a compass to create locator maps, or use a filled map, in the ADDITIONAL slot GeyserItemStack itemStack = javaSourceSlot == -1 ? session.getPlayerInventory().getCursor() : container.getItem(javaSourceSlot); - return itemStack.asItem() == Items.COMPASS || itemStack.asItem() == Items.FILLED_MAP; + return itemStack.is(Items.COMPASS) || itemStack.is(Items.FILLED_MAP); } return false; } 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 8f5886c1f..4b3642d03 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 @@ -329,8 +329,7 @@ public abstract class InventoryTranslator { if (destSlot == 5) { // only set the head if the destination is the head slot GeyserItemStack javaItem = inventory.getItem(sourceSlot); - if (javaItem.asItem() == Items.PLAYER_HEAD - && javaItem.hasNonBaseComponents()) { + if (javaItem.is(Items.PLAYER_HEAD) && javaItem.hasNonBaseComponents()) { FakeHeadProvider.setHead(session, session.getPlayerEntity(), javaItem.getComponent(DataComponentTypes.PROFILE)); } } else if (sourceSlot == 5) { @@ -604,7 +603,8 @@ public abstract class InventoryTranslator { case CRAFT_RESULTS_DEPRECATED: // Tends to be called for UI inventories case CRAFT_RECIPE_OPTIONAL: // Anvils and cartography tables will handle this case CRAFT_LOOM: // Looms 1.17.40+ - case CRAFT_REPAIR_AND_DISENCHANT: { // Grindstones 1.17.40+ + case CRAFT_REPAIR_AND_DISENCHANT: // Grindstones 1.17.40+ + case MINE_BLOCK: { // server-auth block breaking, confirming durability break; } default: 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 15109a574..fb2880fb4 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 @@ -108,9 +108,7 @@ public class PlayerInventoryTranslator extends InventoryTranslator { @@ -41,17 +47,37 @@ public class SingleChestInventoryTranslator extends ChestInventoryTranslator 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())); + // Ideally we'd update the item once the profile has been resolved, but this isn't really possible, + // also see comments in PlayerHeadItem for full explanation + GameProfile resolved = SkinManager.resolveProfile(profile).getNow(null); + if (resolved == null) { return null; } - if (textures == null || textures.isEmpty()) { - // TODO the java client looks up the texture properties here and updates the item - return null; - } - - Texture skinTexture = textures.get(TextureType.SKIN); - + GameProfile.Texture skinTexture = SkinManager.getTextureDataFromProfile(resolved, GameProfile.TextureType.SKIN); if (skinTexture == null) { return null; } - - String skinHash = skinTexture.getURL().substring(skinTexture.getURL().lastIndexOf('/') + 1); - return BlockRegistries.CUSTOM_SKULLS.get(skinHash); + return BlockRegistries.CUSTOM_SKULLS.get(skinTexture.getHash()); } - private static void translatePlayerHead(GeyserSession session, GameProfile profile, ItemData.Builder builder) { + private static void translatePlayerHead(GeyserSession session, ResolvableProfile profile, ItemData.Builder builder) { CustomSkull customSkull = getCustomSkull(profile); if (customSkull != null) { CustomBlockData customBlockData = customSkull.getCustomBlockData(); diff --git a/core/src/main/java/org/geysermc/geyser/translator/level/block/entity/CopperBlockEntityTranslator.java b/core/src/main/java/org/geysermc/geyser/translator/level/block/entity/CopperBlockEntityTranslator.java new file mode 100644 index 000000000..15e699f6c --- /dev/null +++ b/core/src/main/java/org/geysermc/geyser/translator/level/block/entity/CopperBlockEntityTranslator.java @@ -0,0 +1,54 @@ +/* + * Copyright (c) 2025 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.translator.level.block.entity; + +import org.cloudburstmc.nbt.NbtMap; +import org.cloudburstmc.nbt.NbtMapBuilder; +import org.geysermc.geyser.level.block.property.Properties; +import org.geysermc.geyser.level.block.type.BlockState; +import org.geysermc.geyser.session.GeyserSession; +import org.geysermc.mcprotocollib.protocol.data.game.level.block.BlockEntityType; + +@BlockEntity(type = BlockEntityType.COPPER_GOLEM_STATUE) +public class CopperBlockEntityTranslator extends BlockEntityTranslator implements RequiresBlockState { + + @Override + public void translateTag(GeyserSession session, NbtMapBuilder bedrockNbt, NbtMap javaNbt, BlockState blockState) { + // Copper golem poses are set through block states on Java and through NBT on bedrock + bedrockNbt.putBoolean("isMovable", false) + .putInt("Pose", translateCopperPose(blockState.getValue(Properties.COPPER_GOLEM_POSE))); + } + + private static int translateCopperPose(String java) { + return switch (java) { + case "standing" -> 0; + case "sitting" -> 1; + case "running" -> 2; + case "star" -> 3; + default -> throw new IllegalStateException("Unexpected value for copper pose: " + java); + }; + } +} diff --git a/core/src/main/java/org/geysermc/geyser/translator/level/block/entity/ShelfBlockEntityTranslator.java b/core/src/main/java/org/geysermc/geyser/translator/level/block/entity/ShelfBlockEntityTranslator.java new file mode 100644 index 000000000..ff01ecbd5 --- /dev/null +++ b/core/src/main/java/org/geysermc/geyser/translator/level/block/entity/ShelfBlockEntityTranslator.java @@ -0,0 +1,49 @@ +/* + * Copyright (c) 2025 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.translator.level.block.entity; + +import org.cloudburstmc.nbt.NbtMap; +import org.cloudburstmc.nbt.NbtMapBuilder; +import org.cloudburstmc.nbt.NbtType; +import org.geysermc.geyser.item.parser.ItemStackParser; +import org.geysermc.geyser.level.block.type.BlockState; +import org.geysermc.geyser.session.GeyserSession; +import org.geysermc.mcprotocollib.protocol.data.game.level.block.BlockEntityType; + +import java.util.Comparator; + +@BlockEntity(type = BlockEntityType.SHELF) +public class ShelfBlockEntityTranslator extends BlockEntityTranslator { + + @Override + public void translateTag(GeyserSession session, NbtMapBuilder bedrockNbt, NbtMap javaNbt, BlockState blockState) { + // We can't translate align_items_to_bottom, I think :( + bedrockNbt.putList("Items", NbtType.COMPOUND, javaNbt.getList("Items", NbtType.COMPOUND).stream() + .sorted(Comparator.comparingInt(stack -> stack.getByte("Slot"))) + .map(stack -> ItemStackParser.javaItemStackToBedrock(session, stack).build()) + .toList()); + } +} diff --git a/core/src/main/java/org/geysermc/geyser/translator/level/block/entity/SkullBlockEntityTranslator.java b/core/src/main/java/org/geysermc/geyser/translator/level/block/entity/SkullBlockEntityTranslator.java index fe86390a1..260d8977f 100644 --- a/core/src/main/java/org/geysermc/geyser/translator/level/block/entity/SkullBlockEntityTranslator.java +++ b/core/src/main/java/org/geysermc/geyser/translator/level/block/entity/SkullBlockEntityTranslator.java @@ -37,18 +37,20 @@ import org.geysermc.geyser.level.block.property.Properties; import org.geysermc.geyser.level.block.type.BlockState; import org.geysermc.geyser.session.GeyserSession; import org.geysermc.geyser.session.cache.SkullCache; -import org.geysermc.geyser.skin.SkinProvider; +import org.geysermc.geyser.skin.SkinManager; +import org.geysermc.geyser.util.EntityUtils; +import org.geysermc.mcprotocollib.auth.GameProfile; +import org.geysermc.mcprotocollib.protocol.data.game.entity.player.ResolvableProfile; import org.geysermc.mcprotocollib.protocol.data.game.level.block.BlockEntityType; -import java.nio.charset.StandardCharsets; import java.util.List; -import java.util.Locale; import java.util.UUID; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ExecutionException; @BlockEntity(type = BlockEntityType.SKULL) public class SkullBlockEntityTranslator extends BlockEntityTranslator implements RequiresBlockState { + @Override public void translateTag(GeyserSession session, NbtMapBuilder bedrockNbt, NbtMap javaNbt, BlockState blockState) { Integer rotation = blockState.getValue(Properties.ROTATION_16); @@ -61,41 +63,30 @@ public class SkullBlockEntityTranslator extends BlockEntityTranslator implements } } - private static UUID getUUID(NbtMap profile) { - int[] uuidAsArray = profile.getIntArray("id"); - if (uuidAsArray.length == 4) { - // thank u viaversion - return new UUID((long) uuidAsArray[0] << 32 | ((long) uuidAsArray[1] & 0xFFFFFFFFL), - (long) uuidAsArray[2] << 32 | ((long) uuidAsArray[3] & 0xFFFFFFFFL)); + private static List parseProperties(List properties) { + if (properties == null) { + return null; } - // Convert username to an offline UUID - String username = null; - String nameTag = profile.getString("name", null); - if (nameTag != null) { - username = nameTag.toLowerCase(Locale.ROOT); - } - return UUID.nameUUIDFromBytes(("OfflinePlayer:" + username).getBytes(StandardCharsets.UTF_8)); + return properties.stream() + .map(property -> { + String name = property.getString("name"); + String value = property.getString("value"); + String signature = property.getString("signature"); + return new GameProfile.Property(name, value, signature); + }) + .toList(); } - private static CompletableFuture<@Nullable String> getTextures(NbtMap profile, UUID uuid) { - List properties = profile.getList("properties", NbtType.COMPOUND); - if (properties.isEmpty()) { - if (uuid != null && uuid.version() == 4) { - String uuidString = uuid.toString().replace("-", ""); - return SkinProvider.requestTexturesFromUUID(uuidString); - } else { - String nameTag = profile.getString("name", null); - if (nameTag != null) { - // Fall back to username if UUID was missing or was an offline mode UUID - return SkinProvider.requestTexturesFromUsername(nameTag); - } - } - return CompletableFuture.completedFuture(null); - } + public static ResolvableProfile parseResolvableProfile(NbtMap profile) { + UUID uuid = EntityUtils.uuidFromIntArray(profile.getIntArray("id", null)); + String name = profile.getString("name", null); + List properties = parseProperties(profile.getList("properties", NbtType.COMPOUND, null)); - NbtMap tag1 = properties.get(0); - String texture = tag1.getString("value", null); - return CompletableFuture.completedFuture(texture); + GameProfile partialOrStatic = new GameProfile(uuid, name); + partialOrStatic.setProperties(properties); + // Only if all fields are present, then the profile is a static one + // TODO shorthand constructor in MCPL + return new ResolvableProfile(partialOrStatic); } public static @Nullable BlockDefinition translateSkull(GeyserSession session, NbtMap javaNbt, Vector3i blockPosition, BlockState blockState) { @@ -104,17 +95,15 @@ public class SkullBlockEntityTranslator extends BlockEntityTranslator implements session.getSkullCache().removeSkull(blockPosition); return null; } - UUID uuid = getUUID(profile); - CompletableFuture texturesFuture = getTextures(profile, uuid); - if (texturesFuture.isDone()) { + CompletableFuture resolvedFuture = SkinManager.resolveProfile(parseResolvableProfile(profile)); + if (resolvedFuture.isDone()) { try { - String texture = texturesFuture.get(); - if (texture == null) { - session.getGeyser().getLogger().debug("Custom skull with invalid profile tag: " + blockPosition + " " + javaNbt); + SkullCache.Skull skull = session.getSkullCache().putSkull(blockPosition, resolvedFuture.get(), blockState); + if (skull == null) { + session.getGeyser().getLogger().debug("Custom skull with invalid profile: " + blockPosition + " " + resolvedFuture.get()); return null; } - SkullCache.Skull skull = session.getSkullCache().putSkull(blockPosition, uuid, texture, blockState); return skull.getBlockDefinition(); } catch (InterruptedException | ExecutionException e) { session.getGeyser().getLogger().debug("Failed to acquire textures for custom skull: " + blockPosition + " " + javaNbt); @@ -126,22 +115,24 @@ public class SkullBlockEntityTranslator extends BlockEntityTranslator implements } // profile contained a username, so we have to wait for it to be retrieved - texturesFuture.whenComplete((texturesProperty, throwable) -> { - if (texturesProperty == null) { - session.getGeyser().getLogger().debug("Custom skull with invalid profile tag: " + blockPosition + " " + javaNbt); + resolvedFuture.whenComplete((resolved, throwable) -> { + if (throwable != null ) { + session.getGeyser().getLogger().debug("Failed resolving profile of player head at: " + blockPosition + " " + javaNbt); + if (GeyserImpl.getInstance().config().debugMode()) { + throwable.printStackTrace(); + } return; } - - session.ensureInEventLoop(() -> putSkull(session, blockPosition, uuid, texturesProperty, blockState)); + session.ensureInEventLoop(() -> putSkull(session, blockPosition, resolved, blockState)); }); // We don't have the textures yet, so we can't determine if a custom block was defined for this skull return null; } - private static void putSkull(GeyserSession session, Vector3i blockPosition, UUID uuid, String texturesProperty, BlockState blockState) { - SkullCache.Skull skull = session.getSkullCache().putSkull(blockPosition, uuid, texturesProperty, blockState); - if (skull.getBlockDefinition() != null) { + private static void putSkull(GeyserSession session, Vector3i blockPosition, GameProfile resolved, BlockState blockState) { + SkullCache.Skull skull = session.getSkullCache().putSkull(blockPosition, resolved, blockState); + if (skull != null && skull.getBlockDefinition() != null) { UpdateBlockPacket updateBlockPacket = new UpdateBlockPacket(); updateBlockPacket.setDataLayer(0); updateBlockPacket.setBlockPosition(blockPosition); diff --git a/core/src/main/java/org/geysermc/geyser/translator/level/block/entity/VaultBlockEntityTranslator.java b/core/src/main/java/org/geysermc/geyser/translator/level/block/entity/VaultBlockEntityTranslator.java index bebea2f22..b1eb8fa71 100644 --- a/core/src/main/java/org/geysermc/geyser/translator/level/block/entity/VaultBlockEntityTranslator.java +++ b/core/src/main/java/org/geysermc/geyser/translator/level/block/entity/VaultBlockEntityTranslator.java @@ -25,39 +25,24 @@ package org.geysermc.geyser.translator.level.block.entity; -import it.unimi.dsi.fastutil.ints.Int2IntMap; -import it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap; import it.unimi.dsi.fastutil.longs.LongArrayList; import it.unimi.dsi.fastutil.longs.LongList; import org.checkerframework.checker.nullness.qual.Nullable; import org.cloudburstmc.nbt.NbtMap; import org.cloudburstmc.nbt.NbtMapBuilder; import org.cloudburstmc.nbt.NbtType; -import org.cloudburstmc.protocol.bedrock.data.inventory.ItemData; -import org.cloudburstmc.protocol.common.util.TriConsumer; import org.geysermc.geyser.entity.type.player.PlayerEntity; -import org.geysermc.geyser.inventory.item.Potion; +import org.geysermc.geyser.item.parser.ItemStackParser; import org.geysermc.geyser.level.block.type.BlockState; -import org.geysermc.geyser.registry.type.ItemMapping; import org.geysermc.geyser.session.GeyserSession; -import org.geysermc.geyser.session.cache.registry.JavaRegistries; -import org.geysermc.geyser.translator.item.BedrockItemBuilder; -import org.geysermc.geyser.translator.item.ItemTranslator; -import org.geysermc.geyser.util.MinecraftKey; -import org.geysermc.mcprotocollib.protocol.data.game.item.component.DataComponentTypes; -import org.geysermc.mcprotocollib.protocol.data.game.item.component.DataComponents; -import org.geysermc.mcprotocollib.protocol.data.game.item.component.ItemEnchantments; +import org.geysermc.geyser.util.EntityUtils; import org.geysermc.mcprotocollib.protocol.data.game.level.block.BlockEntityType; -import java.util.HashMap; import java.util.List; -import java.util.Map; -import java.util.Optional; import java.util.UUID; @BlockEntity(type = BlockEntityType.VAULT) public class VaultBlockEntityTranslator extends BlockEntityTranslator { - private static boolean loggedComponentTranslationFailure = false; // Bedrock 1.21 does not send the position nor ID in the tag. @Override @@ -72,49 +57,12 @@ public class VaultBlockEntityTranslator extends BlockEntityTranslator { @Override public void translateTag(GeyserSession session, NbtMapBuilder bedrockNbt, NbtMap javaNbt, BlockState blockState) { NbtMap sharedData = javaNbt.getCompound("shared_data"); - - NbtMap item = sharedData.getCompound("display_item"); - ItemMapping mapping = session.getItemMappings().getMapping(item.getString("id")); - if (mapping == null) { - bedrockNbt.putCompound("display_item", NbtMap.builder() - .putByte("Count", (byte) 0) - .putShort("Damage", (short) 0) - .putString("Name", "") - .putByte("WasPickedUp", (byte) 0).build()); - } else { - int count = item.getInt("count"); - NbtMap componentsTag = item.getCompound("components"); - NbtMapBuilder itemAsNbt; - if (!componentsTag.isEmpty()) { - DataComponents components = new DataComponents(new HashMap<>()); - for (Map.Entry entry : componentsTag.entrySet()) { - var consumer = DATA_COMPONENT_DECODERS.get(entry.getKey()); - if (consumer != null) { - try { - consumer.accept(session, (NbtMap) entry.getValue(), components); - } catch (RuntimeException exception) { - if (!loggedComponentTranslationFailure) { - session.getGeyser().getLogger().warning("Failed to translate vault item component data for " + entry.getKey() + "! Did the component structure change?"); - loggedComponentTranslationFailure = true; - } - } - } - } - ItemData bedrockItem = ItemTranslator.translateToBedrock(session, mapping.getJavaItem(), mapping, count, components).build(); - itemAsNbt = BedrockItemBuilder.createItemNbt(mapping, bedrockItem.getCount(), bedrockItem.getDamage()); - if (bedrockItem.getTag() != null) { - itemAsNbt.putCompound("tag", bedrockItem.getTag()); - } - } else { - itemAsNbt = BedrockItemBuilder.createItemNbt(mapping, count, mapping.getBedrockData()); - } - bedrockNbt.putCompound("display_item", itemAsNbt.build()); - } + bedrockNbt.putCompound("display_item", ItemStackParser.javaItemStackToBedrock(session, sharedData.getCompound("display_item")).build()); List connectedPlayers = sharedData.getList("connected_players", NbtType.INT_ARRAY); LongList bedrockPlayers = new LongArrayList(connectedPlayers.size()); for (int[] player : connectedPlayers) { - UUID uuid = uuidFromIntArray(player); + UUID uuid = EntityUtils.uuidFromIntArray(player); if (uuid.equals(session.getPlayerEntity().getUuid())) { bedrockPlayers.add(session.getPlayerEntity().getGeyserId()); } else { @@ -130,26 +78,4 @@ public class VaultBlockEntityTranslator extends BlockEntityTranslator { // if it is not sent over the network bedrockNbt.putFloat("connected_particle_range", (float) sharedData.getDouble("connected_particles_range", 4.5d)); } - - // From ViaVersion! thank u!! - private static UUID uuidFromIntArray(int[] parts) { - return new UUID((long) parts[0] << 32 | (parts[1] & 0xFFFFFFFFL), (long) parts[2] << 32 | (parts[3] & 0xFFFFFFFFL)); - } - - // This might be easier to maintain in the long run so items don't have two translate methods. - // Also, it's not out of the question that block entities get the data component treatment, likely rendering this useless. - // The goal is to just translate the basics so clients know what potion is roughly present, and that any enchantment even exists. - private static final Map> DATA_COMPONENT_DECODERS = Map.of( - "minecraft:potion_contents", (session, tag, components) -> { - // Can only translate built-in potions, potions with custom colours don't work - Optional.ofNullable(tag.getString("potion")).map(Potion::getByJavaIdentifier) - .ifPresent(potion -> components.put(DataComponentTypes.POTION_CONTENTS, potion.toComponent())); - }, - "minecraft:enchantments", (session, tag, components) -> { // Enchanted books already have glint. Translating them doesn't matter. - Int2IntMap enchantments = new Int2IntOpenHashMap(tag.size()); - for (Map.Entry entry : tag.entrySet()) { - enchantments.put(JavaRegistries.ENCHANTMENT.networkId(session, MinecraftKey.key(entry.getKey())), (int) entry.getValue()); - } - components.put(DataComponentTypes.ENCHANTMENTS, new ItemEnchantments(enchantments)); - }); } diff --git a/core/src/main/java/org/geysermc/geyser/translator/protocol/bedrock/BedrockContainerCloseTranslator.java b/core/src/main/java/org/geysermc/geyser/translator/protocol/bedrock/BedrockContainerCloseTranslator.java index 44b4f1127..11c270704 100644 --- a/core/src/main/java/org/geysermc/geyser/translator/protocol/bedrock/BedrockContainerCloseTranslator.java +++ b/core/src/main/java/org/geysermc/geyser/translator/protocol/bedrock/BedrockContainerCloseTranslator.java @@ -96,6 +96,10 @@ public class BedrockContainerCloseTranslator extends PacketTranslator { final Vector3i packetBlockPosition = packet.getBlockPosition(); - Vector3i blockPos = BlockUtils.getBlockPosition(packetBlockPosition, packet.getBlockFace()); + Vector3i blockPos = BlockUtils.getBlockPosition(packetBlockPosition, Direction.getUntrusted(packet, InventoryTransactionPacket::getBlockFace)); if (session.getGeyser().config().disableBedrockScaffolding()) { float yaw = session.getPlayerEntity().getYaw(); @@ -189,7 +183,7 @@ public class BedrockInventoryTransactionTranslator extends PacketTranslator false; }; if (isGodBridging) { - restoreCorrectBlock(session, blockPos); + BlockUtils.restoreCorrectBlock(session, blockPos); return; } } @@ -209,7 +203,7 @@ public class BedrockInventoryTransactionTranslator extends PacketTranslator 1) { - if (itemStack.asItem() == Items.BUCKET || itemStack.asItem() == Items.GLASS_BOTTLE) { + if (itemStack.is(Items.BUCKET) || itemStack.is(Items.GLASS_BOTTLE)) { // Using a stack of buckets or glass bottles will result in an item being added to the first empty slot. // We need to revert the item in case the interaction fails. The order goes from left to right in the // hotbar. Then left to right and top to bottom in the inventory. diff --git a/core/src/main/java/org/geysermc/geyser/translator/protocol/bedrock/BedrockMobEquipmentTranslator.java b/core/src/main/java/org/geysermc/geyser/translator/protocol/bedrock/BedrockMobEquipmentTranslator.java index 64681723e..137092f7a 100644 --- a/core/src/main/java/org/geysermc/geyser/translator/protocol/bedrock/BedrockMobEquipmentTranslator.java +++ b/core/src/main/java/org/geysermc/geyser/translator/protocol/bedrock/BedrockMobEquipmentTranslator.java @@ -61,7 +61,7 @@ public class BedrockMobEquipmentTranslator extends PacketTranslator switch (packet.getAction()) { case INTERACT: - if (session.getPlayerInventory().getItemInHand().asItem() == Items.SHIELD) { + if (session.getPlayerInventory().getItemInHand().is(Items.SHIELD)) { break; } ServerboundInteractPacket interactPacket = new ServerboundInteractPacket(entity.getEntityId(), 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 deleted file mode 100644 index 633562c4d..000000000 --- a/core/src/main/java/org/geysermc/geyser/translator/protocol/bedrock/entity/player/input/BedrockBlockActions.java +++ /dev/null @@ -1,237 +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.translator.protocol.bedrock.entity.player.input; - -import org.cloudburstmc.math.vector.Vector3f; -import org.cloudburstmc.math.vector.Vector3i; -import org.cloudburstmc.protocol.bedrock.data.LevelEvent; -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.api.block.custom.CustomBlockState; -import org.geysermc.geyser.api.block.custom.nonvanilla.JavaBlockState; -import org.geysermc.geyser.entity.type.Entity; -import org.geysermc.geyser.entity.type.ItemFrameEntity; -import org.geysermc.geyser.inventory.GeyserItemStack; -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.SkullCache; -import org.geysermc.geyser.translator.item.CustomItemTranslator; -import org.geysermc.geyser.util.BlockUtils; -import org.geysermc.mcprotocollib.protocol.data.game.entity.object.Direction; -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.entity.player.InteractAction; -import org.geysermc.mcprotocollib.protocol.data.game.entity.player.PlayerAction; -import org.geysermc.mcprotocollib.protocol.packet.ingame.serverbound.player.ServerboundInteractPacket; -import org.geysermc.mcprotocollib.protocol.packet.ingame.serverbound.player.ServerboundPlayerActionPacket; - -import java.util.List; - -final class BedrockBlockActions { - - static void translate(GeyserSession session, List playerActions) { - // Send book update before any player action - session.getBookEditCache().checkForSend(); - - for (PlayerBlockActionData blockActionData : playerActions) { - handle(session, blockActionData); - } - } - - private static void handle(GeyserSession session, PlayerBlockActionData blockActionData) { - PlayerActionType action = blockActionData.getAction(); - Vector3i vector = blockActionData.getBlockPosition(); - int blockFace = blockActionData.getFace(); - switch (action) { - case DROP_ITEM -> { - ServerboundPlayerActionPacket dropItemPacket = new ServerboundPlayerActionPacket(PlayerAction.DROP_ITEM, - vector, Direction.VALUES[blockFace], 0); - session.sendDownstreamGamePacket(dropItemPacket); - } - case START_BREAK -> { - // Ignore START_BREAK when the player is CREATIVE to avoid Spigot receiving 2 packets it interpets as block breaking. https://github.com/GeyserMC/Geyser/issues/4021 - if (session.getGameMode() == GameMode.CREATIVE) { - break; - } - - if (!canMine(session, vector)) { - return; - } - - // Start the block breaking animation - int blockState = session.getGeyser().getWorldManager().getBlockAt(session, vector); - LevelEventPacket startBreak = new LevelEventPacket(); - startBreak.setType(LevelEvent.BLOCK_START_BREAK); - startBreak.setPosition(vector.toFloat()); - 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(); - ItemMapping mapping = item.getMapping(session); - ItemDefinition customItem = mapping.isTool() ? CustomItemTranslator.getCustomItem(item.getComponents(), mapping) : null; - CustomBlockState blockStateOverride = BlockRegistries.CUSTOM_BLOCK_STATE_OVERRIDES.get(blockState); - SkullCache.Skull skull = session.getSkullCache().getSkulls().get(vector); - - session.setBlockBreakStartTime(0); - if (BlockRegistries.NON_VANILLA_BLOCK_IDS.get().get(blockState) || blockStateOverride != null || customItem != null || (skull != null && skull.getBlockDefinition() != null)) { - session.setBlockBreakStartTime(System.currentTimeMillis()); - } - startBreak.setData((int) (65535 / breakTime)); - session.setBreakingBlock(blockState); - session.sendUpstreamPacket(startBreak); - - // Account for fire - the client likes to hit the block behind. - Vector3i fireBlockPos = BlockUtils.getBlockPosition(vector, blockFace); - Block block = session.getGeyser().getWorldManager().blockAt(session, fireBlockPos).block(); - Direction direction = Direction.VALUES[blockFace]; - if (block == Blocks.FIRE || block == Blocks.SOUL_FIRE) { - ServerboundPlayerActionPacket startBreakingPacket = new ServerboundPlayerActionPacket(PlayerAction.START_DIGGING, fireBlockPos, - direction, session.getWorldCache().nextPredictionSequence()); - session.sendDownstreamGamePacket(startBreakingPacket); - } - - ServerboundPlayerActionPacket startBreakingPacket = new ServerboundPlayerActionPacket(PlayerAction.START_DIGGING, - vector, direction, session.getWorldCache().nextPredictionSequence()); - session.sendDownstreamGamePacket(startBreakingPacket); - - spawnBlockBreakParticles(session, direction, vector, BlockState.of(blockState)); - } - case CONTINUE_BREAK -> { - if (session.getGameMode() == GameMode.CREATIVE) { - break; - } - - if (!canMine(session, vector)) { - return; - } - - int breakingBlock = session.getBreakingBlock(); - if (breakingBlock == -1) { - breakingBlock = Block.JAVA_AIR_ID; - } - - Vector3f vectorFloat = vector.toFloat(); - - BlockState breakingBlockState = BlockState.of(breakingBlock); - Direction direction = Direction.VALUES[blockFace]; - spawnBlockBreakParticles(session, direction, vector, breakingBlockState); - - 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) { - long timeSinceStart = System.currentTimeMillis() - blockBreakStartTime; - // We need to add a slight delay to the break time, otherwise the client breaks blocks too fast - if (timeSinceStart >= (breakTime += 2) * 50) { - // Play break sound and particle - LevelEventPacket effectPacket = new LevelEventPacket(); - effectPacket.setPosition(vectorFloat); - effectPacket.setType(LevelEvent.PARTICLE_DESTROY_BLOCK); - effectPacket.setData(session.getBlockMappings().getBedrockBlockId(breakingBlock)); - session.sendUpstreamPacket(effectPacket); - - // Break the block - ServerboundPlayerActionPacket finishBreakingPacket = new ServerboundPlayerActionPacket(PlayerAction.FINISH_DIGGING, - vector, direction, session.getWorldCache().nextPredictionSequence()); - session.sendDownstreamGamePacket(finishBreakingPacket); - session.setBlockBreakStartTime(0); - break; - } - } - // Update the break time in the event that player conditions changed (jumping, effects applied) - LevelEventPacket updateBreak = new LevelEventPacket(); - updateBreak.setType(LevelEvent.BLOCK_UPDATE_BREAK); - updateBreak.setPosition(vectorFloat); - updateBreak.setData((int) (65535 / breakTime)); - session.sendUpstreamPacket(updateBreak); - } - case ABORT_BREAK -> { - 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 - Entity itemFrameEntity = ItemFrameEntity.getItemFrameEntity(session, vector); - if (itemFrameEntity != null) { - ServerboundInteractPacket interactPacket = new ServerboundInteractPacket(itemFrameEntity.getEntityId(), - InteractAction.ATTACK, Hand.MAIN_HAND, session.isSneaking()); - session.sendDownstreamGamePacket(interactPacket); - break; - } - } - - 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()); - stopBreak.setData(0); - session.setBreakingBlock(-1); - session.setBlockBreakStartTime(0); - session.sendUpstreamPacket(stopBreak); - } - // Handled in BedrockInventoryTransactionTranslator - case STOP_BREAK -> { - } - } - } - - private static boolean canMine(GeyserSession session, Vector3i vector) { - if (session.isHandsBusy()) { - session.setBreakingBlock(-1); - session.setBlockBreakStartTime(0); - - LevelEventPacket stopBreak = new LevelEventPacket(); - stopBreak.setType(LevelEvent.BLOCK_STOP_BREAK); - stopBreak.setPosition(vector.toFloat()); - stopBreak.setData(0); - session.setBreakingBlock(-1); - session.sendUpstreamPacket(stopBreak); - return false; - } - return true; - } - - private static void spawnBlockBreakParticles(GeyserSession session, Direction direction, Vector3i position, BlockState blockState) { - LevelEventPacket levelEventPacket = new LevelEventPacket(); - switch (direction) { - case UP -> levelEventPacket.setType(LevelEvent.PARTICLE_BREAK_BLOCK_UP); - case DOWN -> levelEventPacket.setType(LevelEvent.PARTICLE_BREAK_BLOCK_DOWN); - case NORTH -> levelEventPacket.setType(LevelEvent.PARTICLE_BREAK_BLOCK_NORTH); - case EAST -> levelEventPacket.setType(LevelEvent.PARTICLE_BREAK_BLOCK_EAST); - case SOUTH -> levelEventPacket.setType(LevelEvent.PARTICLE_BREAK_BLOCK_SOUTH); - case WEST -> levelEventPacket.setType(LevelEvent.PARTICLE_BREAK_BLOCK_WEST); - } - levelEventPacket.setPosition(position.toFloat()); - levelEventPacket.setData(session.getBlockMappings().getBedrockBlock(blockState).getRuntimeId()); - session.sendUpstreamPacket(levelEventPacket); - } -} diff --git a/core/src/main/java/org/geysermc/geyser/translator/protocol/bedrock/entity/player/input/BedrockMovePlayer.java b/core/src/main/java/org/geysermc/geyser/translator/protocol/bedrock/entity/player/input/BedrockMovePlayer.java index b482e9ea6..195f5dcea 100644 --- a/core/src/main/java/org/geysermc/geyser/translator/protocol/bedrock/entity/player/input/BedrockMovePlayer.java +++ b/core/src/main/java/org/geysermc/geyser/translator/protocol/bedrock/entity/player/input/BedrockMovePlayer.java @@ -94,6 +94,11 @@ final class BedrockMovePlayer { boolean positionChangedAndShouldUpdate = !hasVehicle && (session.getInputCache().shouldSendPositionReminder() || actualPositionChanged); boolean rotationChanged = hasVehicle || (entity.getJavaYaw() != javaYaw || entity.getPitch() != pitch); + // Drop invalid rotation packets + if (isInvalidNumber(yaw) || isInvalidNumber(pitch) || isInvalidNumber(headYaw)) { + return; + } + // Simulate jumping since it happened this tick, not from the last tick end. if (entity.isOnGround() && packet.getInputData().contains(PlayerAuthInputData.START_JUMPING)) { entity.setLastTickEndVelocity(Vector3f.from(entity.getLastTickEndVelocity().getX(), Math.max(entity.getLastTickEndVelocity().getY(), entity.getJumpVelocity()), entity.getLastTickEndVelocity().getZ())); @@ -134,10 +139,14 @@ final class BedrockMovePlayer { continue; } + if (other == entity) { + continue; + } + final BoundingBox entityBoundingBox = new BoundingBox(0, 0, 0, other.getBoundingBoxWidth(), other.getBoundingBoxHeight(), other.getBoundingBoxWidth()); // Also offset the position down for boat as their position is offset. - entityBoundingBox.translate(other.getPosition().down(other instanceof BoatEntity ? entity.getDefinition().offset() : 0).toDouble()); + entityBoundingBox.translate(other.getPosition().down(other instanceof BoatEntity ? other.getDefinition().offset() : 0).toDouble()); if (entityBoundingBox.checkIntersection(boundingBox)) { possibleOnGround = true; @@ -176,11 +185,11 @@ final class BedrockMovePlayer { } } else if (positionChangedAndShouldUpdate) { if (isValidMove(session, entity.getPosition(), packet.getPosition())) { - if (!session.getWorldBorder().isPassingIntoBorderBoundaries(entity.getPosition(), true)) { - CollisionResult result = session.getCollisionManager().adjustBedrockPosition(packet.getPosition(), isOnGround, packet.getInputData().contains(PlayerAuthInputData.HANDLE_TELEPORT)); - if (result != null) { // A null return value cancels the packet - Vector3d position = result.correctedMovement(); + CollisionResult result = session.getCollisionManager().adjustBedrockPosition(packet.getPosition(), isOnGround, packet.getInputData().contains(PlayerAuthInputData.HANDLE_TELEPORT)); + if (result != null) { // A null return value cancels the packet + Vector3d position = result.correctedMovement(); + if (!session.getWorldBorder().isPassingIntoBorderBoundaries(position.toFloat(), true)) { Packet movePacket; if (rotationChanged) { // Send rotation updates as well @@ -206,6 +215,8 @@ final class BedrockMovePlayer { session.getInputCache().markPositionPacketSent(); session.getSkullCache().updateVisibleSkulls(); + } else { + session.getCollisionManager().recalculatePosition(); } } } else { @@ -247,4 +258,3 @@ final class BedrockMovePlayer { return true; } } - 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 8f0af5953..7708631c6 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 @@ -29,45 +29,32 @@ import org.cloudburstmc.math.GenericMath; import org.cloudburstmc.math.vector.Vector2f; import org.cloudburstmc.math.vector.Vector3f; import org.cloudburstmc.protocol.bedrock.data.InputMode; -import org.cloudburstmc.protocol.bedrock.data.LevelEvent; import org.cloudburstmc.protocol.bedrock.data.PlayerAuthInputData; import org.cloudburstmc.protocol.bedrock.data.entity.EntityFlag; import org.cloudburstmc.protocol.bedrock.data.inventory.transaction.ItemUseTransaction; import org.cloudburstmc.protocol.bedrock.packet.AnimatePacket; -import org.cloudburstmc.protocol.bedrock.packet.LevelEventPacket; import org.cloudburstmc.protocol.bedrock.packet.PlayerAuthInputPacket; -import org.cloudburstmc.protocol.bedrock.packet.UpdateAttributesPacket; -import org.geysermc.geyser.entity.EntityDefinitions; import org.geysermc.geyser.entity.type.BoatEntity; import org.geysermc.geyser.entity.type.Entity; -import org.geysermc.geyser.entity.type.ItemFrameEntity; import org.geysermc.geyser.entity.type.living.animal.horse.AbstractHorseEntity; import org.geysermc.geyser.entity.type.living.animal.horse.LlamaEntity; import org.geysermc.geyser.entity.type.player.SessionPlayerEntity; import org.geysermc.geyser.entity.vehicle.ClientVehicle; -import org.geysermc.geyser.level.block.type.Block; -import org.geysermc.geyser.network.GameProtocol; import org.geysermc.geyser.session.GeyserSession; import org.geysermc.geyser.translator.protocol.PacketTranslator; import org.geysermc.geyser.translator.protocol.Translator; -import org.geysermc.geyser.translator.protocol.bedrock.BedrockInventoryTransactionTranslator; import org.geysermc.geyser.util.CooldownUtils; -import org.geysermc.mcprotocollib.protocol.data.ProtocolState; -import org.geysermc.mcprotocollib.protocol.data.game.entity.object.Direction; 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.entity.player.InteractAction; -import org.geysermc.mcprotocollib.protocol.data.game.entity.player.PlayerAction; import org.geysermc.mcprotocollib.protocol.data.game.entity.player.PlayerState; import org.geysermc.mcprotocollib.protocol.packet.ingame.serverbound.ServerboundClientTickEndPacket; import org.geysermc.mcprotocollib.protocol.packet.ingame.serverbound.level.ServerboundMoveVehiclePacket; -import org.geysermc.mcprotocollib.protocol.packet.ingame.serverbound.player.ServerboundInteractPacket; import org.geysermc.mcprotocollib.protocol.packet.ingame.serverbound.player.ServerboundPlayerAbilitiesPacket; -import org.geysermc.mcprotocollib.protocol.packet.ingame.serverbound.player.ServerboundPlayerActionPacket; import org.geysermc.mcprotocollib.protocol.packet.ingame.serverbound.player.ServerboundPlayerCommandPacket; import org.geysermc.mcprotocollib.protocol.packet.ingame.serverbound.player.ServerboundSwingPacket; import java.util.HashSet; +import java.util.List; import java.util.Set; @Translator(packet = PlayerAuthInputPacket.class) @@ -81,6 +68,7 @@ public final class BedrockPlayerAuthInputTranslator extends PacketTranslator processItemUseTransaction(session, packet.getItemUseTransaction()); - case PERFORM_BLOCK_ACTIONS -> BedrockBlockActions.translate(session, packet.getPlayerActions()); + case PERFORM_ITEM_STACK_REQUEST -> session.getPlayerInventoryHolder().translateRequests(List.of(packet.getItemStackRequest())); case START_SWIMMING -> session.setSwimming(true); case STOP_SWIMMING -> session.setSwimming(false); case START_CRAWLING -> session.setCrawling(true); case STOP_CRAWLING -> session.setCrawling(false); case START_SPRINTING -> { if (!leftOverInputData.contains(PlayerAuthInputData.STOP_SPRINTING)) { - // Check if the player is standing on but not surrounded by water; don't allow sprinting in that case - // resolves - if (!GameProtocol.is1_21_80orHigher(session) && session.getCollisionManager().isPlayerTouchingWater() && !session.getCollisionManager().isPlayerInWater()) { - // Update movement speed attribute to prevent sprinting on water. This is fixed in 1.21.80+ natively. - UpdateAttributesPacket attributesPacket = new UpdateAttributesPacket(); - attributesPacket.setRuntimeEntityId(entity.getGeyserId()); - attributesPacket.getAttributes().addAll(entity.getAttributes().values()); - session.sendUpstreamPacket(attributesPacket); - } else { - if (!session.isSprinting()) { - sprintPacket = new ServerboundPlayerCommandPacket(entity.javaId(), PlayerState.START_SPRINTING); - session.setSprinting(true); - } + if (!session.isSprinting()) { + sprintPacket = new ServerboundPlayerCommandPacket(entity.javaId(), PlayerState.START_SPRINTING); + session.setSprinting(true); } } } @@ -230,51 +208,8 @@ public final class BedrockPlayerAuthInputTranslator extends PacketTranslator { + + @Override + public void translate(GeyserSession session, ClientboundCodeOfConductPacket packet) { + if (session.hasAcceptedCodeOfConduct()) { + return; + } else if (CodeOfConductManager.getInstance().hasAcceptedCodeOfConduct(session, packet.getCodeOfConduct())) { + session.acceptCodeOfConduct(); + return; + } + showCodeOfConductForm(session, packet.getCodeOfConduct()); + } + + private static void showCodeOfConductForm(GeyserSession session, String codeOfConduct) { + session.prepareForConfigurationForm(); + session.sendForm(CustomForm.builder() + .translator(MinecraftLocale::getLocaleString, session.locale()) + .title("multiplayer.codeOfConduct.title") + .label(codeOfConduct) + .toggle("multiplayer.codeOfConduct.check") + .validResultHandler(response -> { + if (response.asToggle()) { + CodeOfConductManager.getInstance().saveCodeOfConductAccepted(session, codeOfConduct); + } + session.acceptCodeOfConduct(); + }) + .closedResultHandler(() -> session.disconnect(MinecraftLocale.getLocaleString("multiplayer.disconnect.code_of_conduct", session.locale()))) + ); + } +} diff --git a/core/src/main/java/org/geysermc/geyser/translator/protocol/java/dialogues/JavaShowDialogueConfigurationTranslator.java b/core/src/main/java/org/geysermc/geyser/translator/protocol/java/dialogues/JavaShowDialogueConfigurationTranslator.java index 526394420..6802c0c27 100644 --- a/core/src/main/java/org/geysermc/geyser/translator/protocol/java/dialogues/JavaShowDialogueConfigurationTranslator.java +++ b/core/src/main/java/org/geysermc/geyser/translator/protocol/java/dialogues/JavaShowDialogueConfigurationTranslator.java @@ -36,13 +36,7 @@ public class JavaShowDialogueConfigurationTranslator extends PacketTranslator { - GameProfile profile = stack.getComponent(DataComponentTypes.PROFILE); - if (livingEntity instanceof PlayerEntity && stack.asItem() == Items.PLAYER_HEAD && profile != null) { + ResolvableProfile profile = stack.getComponent(DataComponentTypes.PROFILE); + if (livingEntity instanceof PlayerEntity && stack.is(Items.PLAYER_HEAD) && profile != null) { FakeHeadProvider.setHead(session, (PlayerEntity) livingEntity, profile); } else { FakeHeadProvider.restoreOriginalSkin(session, livingEntity); @@ -104,13 +104,13 @@ public class JavaSetEquipmentTranslator extends PacketTranslator - GeyserImpl.getInstance().getLogger().debug("Loaded Local Bedrock Java Skin Data for " + session.getClientData().getUsername())); + playerEntity.setSkin(profile, true, + () -> GeyserImpl.getInstance().getLogger().debug("Loaded Local Bedrock Java Skin Data for " + session.getClientData().getUsername())); } } } diff --git a/core/src/main/java/org/geysermc/geyser/translator/protocol/java/entity/player/JavaPlayerLookAtTranslator.java b/core/src/main/java/org/geysermc/geyser/translator/protocol/java/entity/player/JavaPlayerLookAtTranslator.java index 22786e918..954c63614 100644 --- a/core/src/main/java/org/geysermc/geyser/translator/protocol/java/entity/player/JavaPlayerLookAtTranslator.java +++ b/core/src/main/java/org/geysermc/geyser/translator/protocol/java/entity/player/JavaPlayerLookAtTranslator.java @@ -44,8 +44,8 @@ public class JavaPlayerLookAtTranslator extends PacketTranslator { GeyserItemStack template = inventory.getItem(SmithingInventoryTranslator.TEMPLATE); - if (template.asItem() != Items.NETHERITE_UPGRADE_SMITHING_TEMPLATE) { + if (!template.is(Items.NETHERITE_UPGRADE_SMITHING_TEMPLATE)) { // Technically we should probably also do this for custom items, but last I checked Bedrock doesn't even support that. return; } diff --git a/core/src/main/java/org/geysermc/geyser/translator/protocol/java/inventory/JavaOpenBookTranslator.java b/core/src/main/java/org/geysermc/geyser/translator/protocol/java/inventory/JavaOpenBookTranslator.java index 4ed266886..cd3249f39 100644 --- a/core/src/main/java/org/geysermc/geyser/translator/protocol/java/inventory/JavaOpenBookTranslator.java +++ b/core/src/main/java/org/geysermc/geyser/translator/protocol/java/inventory/JavaOpenBookTranslator.java @@ -68,6 +68,10 @@ public class JavaOpenBookTranslator extends PacketTranslator translator = (InventoryTranslator) InventoryTranslator.inventoryTranslator(ContainerType.LECTERN); Objects.requireNonNull(translator, "could not find lectern inventory translator!"); diff --git a/core/src/main/java/org/geysermc/geyser/translator/protocol/java/inventory/JavaOpenScreenTranslator.java b/core/src/main/java/org/geysermc/geyser/translator/protocol/java/inventory/JavaOpenScreenTranslator.java index 3203e5101..69ae14b55 100644 --- a/core/src/main/java/org/geysermc/geyser/translator/protocol/java/inventory/JavaOpenScreenTranslator.java +++ b/core/src/main/java/org/geysermc/geyser/translator/protocol/java/inventory/JavaOpenScreenTranslator.java @@ -63,6 +63,10 @@ public class JavaOpenScreenTranslator extends PacketTranslator levelEventPacket.setData(breakTime); - case STAGE_2 -> levelEventPacket.setData(breakTime * 2); - case STAGE_3 -> levelEventPacket.setData(breakTime * 3); - case STAGE_4 -> levelEventPacket.setData(breakTime * 4); - case STAGE_5 -> levelEventPacket.setData(breakTime * 5); - case STAGE_6 -> levelEventPacket.setData(breakTime * 6); - case STAGE_7 -> levelEventPacket.setData(breakTime * 7); - case STAGE_8 -> levelEventPacket.setData(breakTime * 8); - case STAGE_9 -> levelEventPacket.setData(breakTime * 9); - case STAGE_10 -> levelEventPacket.setData(breakTime * 10); - case RESET -> { - levelEventPacket.setType(LevelEvent.BLOCK_STOP_BREAK); - levelEventPacket.setData(0); - } + // First: Check if we know when the last packet for this position was sent - we'll use that for our estimation + Pair lastUpdate = session.getBlockBreakHandler().getDestructionStageCache().getIfPresent(packet.getPosition()); + if (lastUpdate == null) { + levelEventPacket.setType(LevelEvent.BLOCK_START_BREAK); + levelEventPacket.setData(65535 / 6000); // just a high value (5 mins), we'll update this once we get a new progress update + } else { + // Ticks since last update + int ticksSince = (int) (session.getClientTicks() - lastUpdate.first()); + int stagesSince = packet.getStage().compareTo(lastUpdate.second()); + int ticksPerStage = stagesSince == 0 ? ticksSince : ticksSince / stagesSince; + int remainingStages = 10 - packet.getStage().ordinal(); + + levelEventPacket.setType(LevelEvent.BLOCK_UPDATE_BREAK); + levelEventPacket.setData(65535 / Math.max(remainingStages, 1) * Math.max(ticksPerStage, 1)); } + + session.getBlockBreakHandler().getDestructionStageCache().put(packet.getPosition(), Pair.of(session.getClientTicks(), packet.getStage())); session.sendUpstreamPacket(levelEventPacket); } } 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 fea294457..f1deb81c8 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 @@ -84,7 +84,7 @@ public class JavaBlockEventTranslator extends PacketTranslator { + final String translated = translatable.key(); + final Matcher matcher = LOCALIZATION_PATTERN.matcher(translated); + final List args = translatable.arguments(); + int argPosition = 0; + int lastIdx = 0; + while (matcher.find()) { + // append prior + if (lastIdx < matcher.start()) { + consumer.accept(Component.text(translated.substring(lastIdx, matcher.start()))); + } + lastIdx = matcher.end(); + + final @Nullable String argIdx = matcher.group(1); + // calculate argument position + if (argIdx != null) { + try { + final int idx = Integer.parseInt(argIdx) - 1; + if (idx < args.size()) { + consumer.accept(args.get(idx).asComponent()); + } + } catch (final NumberFormatException ex) { + // ignore, drop the format placeholder + } + } else { + final int idx = argPosition++; + if (idx < args.size()) { + consumer.accept(args.get(idx).asComponent()); + } + } + } + + // append tail + if (lastIdx < translated.length()) { + consumer.accept(Component.text(translated.substring(lastIdx))); + } + }) .build(); BEDROCK_SERIALIZER = LegacyComponentSerializer.legacySection().toBuilder() 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 d3b4f7b97..13f3646ee 100644 --- a/core/src/main/java/org/geysermc/geyser/util/BlockUtils.java +++ b/core/src/main/java/org/geysermc/geyser/util/BlockUtils.java @@ -25,31 +25,46 @@ package org.geysermc.geyser.util; +import org.cloudburstmc.math.vector.Vector3f; import org.cloudburstmc.math.vector.Vector3i; -import org.geysermc.geyser.entity.attribute.GeyserAttributeType; +import org.cloudburstmc.protocol.bedrock.data.LevelEvent; +import org.cloudburstmc.protocol.bedrock.data.definitions.BlockDefinition; +import org.cloudburstmc.protocol.bedrock.packet.LevelEventPacket; +import org.cloudburstmc.protocol.bedrock.packet.UpdateBlockPacket; import org.geysermc.geyser.inventory.GeyserItemStack; +import org.geysermc.geyser.level.block.property.Property; import org.geysermc.geyser.level.block.type.Block; +import org.geysermc.geyser.level.block.type.BlockState; +import org.geysermc.geyser.level.block.type.SkullBlock; +import org.geysermc.geyser.level.physics.Direction; import org.geysermc.geyser.registry.BlockRegistries; import org.geysermc.geyser.session.GeyserSession; import org.geysermc.geyser.session.cache.EntityEffectCache; +import org.geysermc.geyser.session.cache.SkullCache; import org.geysermc.geyser.translator.collision.BlockCollision; +import org.geysermc.mcprotocollib.protocol.data.game.item.component.AdventureModePredicate; import org.geysermc.mcprotocollib.protocol.data.game.item.component.DataComponentTypes; import org.geysermc.mcprotocollib.protocol.data.game.item.component.ToolData; +import java.util.List; +import java.util.Optional; + public final class BlockUtils { /** * Returns the total mining progress added by mining the block in a single tick + * Mirrors mojmap BlockBehaviour#getDestroyProgress + * * @return the mining progress added by this tick. */ public static float getBlockMiningProgressPerTick(GeyserSession session, Block block, GeyserItemStack itemInHand) { float destroySpeed = block.destroyTime(); - if (destroySpeed == -1) { + if (destroySpeed == -1.0F) { return 0; } int speedMultiplier = hasCorrectTool(session, block, itemInHand) ? 30 : 100; - return getPlayerDestroySpeed(session, block, itemInHand) / destroySpeed / speedMultiplier; + return getPlayerDestroySpeed(session, block, itemInHand) / destroySpeed / (float) speedMultiplier; } private static boolean hasCorrectTool(GeyserSession session, Block block, GeyserItemStack stack) { @@ -64,7 +79,7 @@ public final class BlockUtils { for (ToolData.Rule rule : tool.getRules()) { if (rule.getCorrectForDrops() != null) { - if (session.getTagCache().isBlock(rule.getBlocks(), block)) { + if (block.is(session, rule.getBlocks())) { return rule.getCorrectForDrops(); } } @@ -76,12 +91,12 @@ public final class BlockUtils { private static float getItemDestroySpeed(GeyserSession session, Block block, GeyserItemStack stack) { ToolData tool = stack.getComponent(DataComponentTypes.TOOL); if (tool == null) { - return 1f; + return 1.0F; } for (ToolData.Rule rule : tool.getRules()) { if (rule.getSpeed() != null) { - if (session.getTagCache().isBlock(rule.getBlocks(), block)) { + if (block.is(session, rule.getBlocks())) { return rule.getSpeed(); } } @@ -92,15 +107,15 @@ public final class BlockUtils { private static float getPlayerDestroySpeed(GeyserSession session, Block block, GeyserItemStack itemInHand) { float destroySpeed = getItemDestroySpeed(session, block, itemInHand); - EntityEffectCache effectCache = session.getEffectCache(); if (destroySpeed > 1.0F) { - destroySpeed += session.getPlayerEntity().attributeOrDefault(GeyserAttributeType.MINING_EFFICIENCY); + destroySpeed += (float) session.getPlayerEntity().getMiningEfficiency(); } + EntityEffectCache effectCache = session.getEffectCache(); int miningSpeedMultiplier = getMiningSpeedAmplification(effectCache); if (miningSpeedMultiplier > 0) { - destroySpeed *= miningSpeedMultiplier * 0.2F; + destroySpeed *= 1.0F + miningSpeedMultiplier * 0.2F; } if (effectCache.getMiningFatigue() != 0) { @@ -113,13 +128,13 @@ public final class BlockUtils { destroySpeed *= slowdown; } - destroySpeed *= session.getPlayerEntity().attributeOrDefault(GeyserAttributeType.BLOCK_BREAK_SPEED); + destroySpeed *= (float) session.getPlayerEntity().getBlockBreakSpeed(); if (session.getCollisionManager().isWaterInEyes()) { - destroySpeed *= session.getPlayerEntity().attributeOrDefault(GeyserAttributeType.SUBMERGED_MINING_SPEED); + destroySpeed *= (float) session.getPlayerEntity().getSubmergedMiningSpeed(); } if (!session.getPlayerEntity().isOnGround()) { - destroySpeed /= 5F; + destroySpeed /= 5.0F; } return destroySpeed; @@ -129,8 +144,8 @@ public final class BlockUtils { return Math.max(cache.getHaste(), cache.getConduitPower()); } - public static double getSessionBreakTimeTicks(GeyserSession session, Block block) { - return Math.ceil(1 / getBlockMiningProgressPerTick(session, block, session.getPlayerInventory().getItemInHand())); + public static double reciprocal(double progress) { + return Math.ceil(1 / progress); } /** @@ -139,15 +154,14 @@ public final class BlockUtils { * @param face the face of the block - see {@link org.geysermc.mcprotocollib.protocol.data.game.entity.object.Direction} * @return the block position with the block face accounted for */ - public static Vector3i getBlockPosition(Vector3i blockPos, int face) { + public static Vector3i getBlockPosition(Vector3i blockPos, Direction face) { return switch (face) { - case 0 -> blockPos.sub(0, 1, 0); - case 1 -> blockPos.add(0, 1, 0); - case 2 -> blockPos.sub(0, 0, 1); - case 3 -> blockPos.add(0, 0, 1); - case 4 -> blockPos.sub(1, 0, 0); - case 5 -> blockPos.add(1, 0, 0); - default -> blockPos; + case DOWN -> blockPos.sub(0, 1, 0); + case UP -> blockPos.add(0, 1, 0); + case NORTH -> blockPos.sub(0, 0, 1); + case SOUTH -> blockPos.add(0, 0, 1); + case WEST -> blockPos.sub(1, 0, 0); + case EAST -> blockPos.add(1, 0, 0); }; } @@ -174,8 +188,117 @@ public final class BlockUtils { return BlockRegistries.COLLISIONS.get(blockId); } - public static BlockCollision getCollisionAt(GeyserSession session, Vector3i blockPos) { - return getCollision(session.getGeyser().getWorldManager().getBlockAt(session, blockPos)); + public static void spawnBlockBreakParticles(GeyserSession session, Direction direction, Vector3i position, BlockState blockState) { + LevelEventPacket levelEventPacket = new LevelEventPacket(); + switch (direction) { + case UP -> levelEventPacket.setType(LevelEvent.PARTICLE_BREAK_BLOCK_UP); + case DOWN -> levelEventPacket.setType(LevelEvent.PARTICLE_BREAK_BLOCK_DOWN); + case NORTH -> levelEventPacket.setType(LevelEvent.PARTICLE_BREAK_BLOCK_NORTH); + case EAST -> levelEventPacket.setType(LevelEvent.PARTICLE_BREAK_BLOCK_EAST); + case SOUTH -> levelEventPacket.setType(LevelEvent.PARTICLE_BREAK_BLOCK_SOUTH); + case WEST -> levelEventPacket.setType(LevelEvent.PARTICLE_BREAK_BLOCK_WEST); + } + levelEventPacket.setPosition(position.toFloat()); + levelEventPacket.setData(session.getBlockMappings().getBedrockBlock(blockState).getRuntimeId()); + session.sendUpstreamPacket(levelEventPacket); + } + + public static void sendBedrockStopBlockBreak(GeyserSession session, Vector3f vector) { + LevelEventPacket stopBreak = new LevelEventPacket(); + stopBreak.setType(LevelEvent.BLOCK_STOP_BREAK); + stopBreak.setPosition(vector); + stopBreak.setData(0); + session.sendUpstreamPacket(stopBreak); + } + + public static void sendBedrockBlockDestroy(GeyserSession session, Vector3f vector, int blockState) { + LevelEventPacket blockBreakPacket = new LevelEventPacket(); + blockBreakPacket.setType(LevelEvent.PARTICLE_DESTROY_BLOCK); + blockBreakPacket.setPosition(vector); + blockBreakPacket.setData(session.getBlockMappings().getBedrockBlockId(blockState)); + session.sendUpstreamPacket(blockBreakPacket); + } + + public static void restoreCorrectBlock(GeyserSession session, Vector3i vector, BlockState blockState) { + BlockDefinition bedrockBlock = session.getBlockMappings().getBedrockBlock(blockState); + + if (blockState.block() instanceof SkullBlock skullBlock && skullBlock.skullType() == SkullBlock.Type.PLAYER) { + // The changed block was a player skull so check if a custom block was defined for this skull + SkullCache.Skull skull = session.getSkullCache().getSkulls().get(vector); + if (skull != null && skull.getBlockDefinition() != null) { + bedrockBlock = skull.getBlockDefinition(); + } + } + + UpdateBlockPacket updateBlockPacket = new UpdateBlockPacket(); + updateBlockPacket.setDataLayer(0); + updateBlockPacket.setBlockPosition(vector); + updateBlockPacket.setDefinition(bedrockBlock); + updateBlockPacket.getFlags().addAll(UpdateBlockPacket.FLAG_ALL_PRIORITY); + session.sendUpstreamPacket(updateBlockPacket); + + UpdateBlockPacket updateWaterPacket = new UpdateBlockPacket(); + updateWaterPacket.setDataLayer(1); + updateWaterPacket.setBlockPosition(vector); + updateWaterPacket.setDefinition(BlockRegistries.WATERLOGGED.get().get(blockState.javaId()) ? session.getBlockMappings().getBedrockWater() : session.getBlockMappings().getBedrockAir()); + updateWaterPacket.getFlags().addAll(UpdateBlockPacket.FLAG_ALL_PRIORITY); + session.sendUpstreamPacket(updateWaterPacket); + + // Reset the item in hand to prevent "missing" blocks + session.getPlayerInventoryHolder().updateSlot(session.getPlayerInventory().getHeldItemSlot()); // TODO test + } + + public static void restoreCorrectBlock(GeyserSession session, Vector3i blockPos) { + restoreCorrectBlock(session, blockPos, session.getGeyser().getWorldManager().blockAt(session, blockPos)); + } + + public static void stopBreakAndRestoreBlock(GeyserSession session, Vector3i vector, BlockState blockState) { + sendBedrockStopBlockBreak(session, vector.toFloat()); + restoreCorrectBlock(session, vector, blockState); + } + + public static boolean blockMatchesPredicate(GeyserSession session, BlockState state, AdventureModePredicate.BlockPredicate predicate) { + if (predicate.getBlocks() != null && !state.block().is(session, predicate.getBlocks())) { + return false; + } else if (predicate.getProperties() != null) { + List matchers = predicate.getProperties(); + if (!matchers.isEmpty()) { + for (AdventureModePredicate.PropertyMatcher matcher : matchers) { + for (Property property : state.block().propertyKeys()) { + if (matcher.getName().equals(property.name())) { + if (!propertyMatchesPredicate(state, property, matcher)) { + return false; + } + } + } + } + } + } + // Not checking NBT or data components - assume the predicate matches + return true; + } + + private static > boolean propertyMatchesPredicate(BlockState state, Property property, AdventureModePredicate.PropertyMatcher matcher) { + T stateValue = state.getValue(property); + if (matcher.getValue() != null) { + Optional value = property.valueOf(matcher.getValue()); + return value.isPresent() && stateValue.equals(value.get()); + } else { + if (matcher.getMinValue() != null) { + Optional min = property.valueOf(matcher.getMinValue()); + if (min.isEmpty() || stateValue.compareTo(min.get()) < 0) { + return false; + } + } + if (matcher.getMaxValue() != null) { + Optional max = property.valueOf(matcher.getMaxValue()); + if (max.isEmpty() || stateValue.compareTo(max.get()) > 0) { + return false; + } + } + } + + return true; } private BlockUtils() { diff --git a/core/src/main/java/org/geysermc/geyser/util/CodeOfConductManager.java b/core/src/main/java/org/geysermc/geyser/util/CodeOfConductManager.java new file mode 100644 index 000000000..8692f35b6 --- /dev/null +++ b/core/src/main/java/org/geysermc/geyser/util/CodeOfConductManager.java @@ -0,0 +1,121 @@ +/* + * Copyright (c) 2025 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.util; + +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParser; +import it.unimi.dsi.fastutil.objects.Object2IntMap; +import it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap; +import org.geysermc.geyser.GeyserImpl; +import org.geysermc.geyser.api.event.bedrock.SessionAcceptCodeOfConductEvent; +import org.geysermc.geyser.api.event.java.ServerCodeOfConductEvent; +import org.geysermc.geyser.session.GeyserSession; + +import java.io.FileReader; +import java.io.IOException; +import java.io.Reader; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.Map; +import java.util.concurrent.TimeUnit; + +public class CodeOfConductManager { + private static final Path SAVE_PATH = Path.of("cache/codeofconducts.json"); + private static CodeOfConductManager loaded = null; + + private final Object2IntMap playerAcceptedCodeOfConducts = new Object2IntOpenHashMap<>(); + private boolean dirty = false; + + private CodeOfConductManager() { + Path savePath = getSavePath(); + if (Files.exists(savePath) && Files.isRegularFile(savePath)) { + GeyserImpl.getInstance().getLogger().debug("Loading codeofconducts.json"); + + try (Reader reader = new FileReader(savePath.toFile())) { + //noinspection deprecation - otherwise 1.16.5 doesn't work + JsonObject object = new JsonParser().parse(reader).getAsJsonObject(); + for (Map.Entry entry : object.entrySet()) { + playerAcceptedCodeOfConducts.put(entry.getKey(), entry.getValue().getAsInt()); + } + } catch (IOException exception) { + GeyserImpl.getInstance().getLogger().error("Failed to read code of conduct cache!", exception); + } + } else { + GeyserImpl.getInstance().getLogger().debug("codeofconducts.json not found, not loading"); + } + + // Save file now and every 5 minutes after + GeyserImpl.getInstance().getScheduledThread().scheduleAtFixedRate(this::save, 0L, 5L, TimeUnit.MINUTES); + } + + public boolean hasAcceptedCodeOfConduct(GeyserSession session, String codeOfConduct) { + ServerCodeOfConductEvent event = new ServerCodeOfConductEvent(session, codeOfConduct); + session.getGeyser().getEventBus().fire(event); + return event.accepted() || playerAcceptedCodeOfConducts.getInt(session.xuid()) == codeOfConduct.hashCode(); + } + + public void saveCodeOfConductAccepted(GeyserSession session, String codeOfConduct) { + SessionAcceptCodeOfConductEvent event = new SessionAcceptCodeOfConductEvent(session, codeOfConduct); + session.getGeyser().getEventBus().fire(event); + if (!event.shouldSkipSaving()) { + playerAcceptedCodeOfConducts.put(session.xuid(), codeOfConduct.hashCode()); + dirty = true; + } + } + + public void save() { + if (dirty) { + GeyserImpl.getInstance().getLogger().debug("Saving codeofconducts.json"); + + JsonObject saved = new JsonObject(); + playerAcceptedCodeOfConducts.forEach(saved::addProperty); + try { + Files.writeString(getSavePath(), saved.toString()); + dirty = false; + } catch (IOException exception) { + GeyserImpl.getInstance().getLogger().error("Failed to write code of conduct cache!", exception); + } + } + } + + private static Path getSavePath() { + return GeyserImpl.getInstance().configDirectory().resolve(SAVE_PATH); + } + + public static void load() { + if (loaded == null) { + loaded = new CodeOfConductManager(); + } + } + + public static CodeOfConductManager getInstance() { + if (loaded == null) { + throw new IllegalStateException("CodeOfConductManager was accessed before loaded"); + } + return loaded; + } +} diff --git a/core/src/main/java/org/geysermc/geyser/util/DimensionUtils.java b/core/src/main/java/org/geysermc/geyser/util/DimensionUtils.java index b4fd6b924..d4464938d 100644 --- a/core/src/main/java/org/geysermc/geyser/util/DimensionUtils.java +++ b/core/src/main/java/org/geysermc/geyser/util/DimensionUtils.java @@ -61,6 +61,7 @@ public class DimensionUtils { session.getLodestoneCache().clear(); session.getPistonCache().clear(); session.getSkullCache().clear(); + session.getBlockBreakHandler().reset(); changeDimension(session, bedrockDimension); @@ -170,7 +171,7 @@ public class DimensionUtils { * * @param javaDimension Dimension ID to convert * @return Converted Bedrock edition dimension ID - */ + */ // TODO take a key public static int javaToBedrock(String javaDimension) { return switch (javaDimension) { case BedrockDimension.NETHER_IDENTIFIER -> BedrockDimension.BEDROCK_NETHER_ID; diff --git a/core/src/main/java/org/geysermc/geyser/util/EntityUtils.java b/core/src/main/java/org/geysermc/geyser/util/EntityUtils.java index ed1093446..915db8b3a 100644 --- a/core/src/main/java/org/geysermc/geyser/util/EntityUtils.java +++ b/core/src/main/java/org/geysermc/geyser/util/EntityUtils.java @@ -54,6 +54,7 @@ import org.geysermc.mcprotocollib.protocol.data.game.entity.type.EntityType; import org.geysermc.mcprotocollib.protocol.data.game.item.component.Equippable; import java.util.Locale; +import java.util.UUID; public final class EntityUtils { /** @@ -296,14 +297,14 @@ public final class EntityUtils { * Determine if an action would result in a successful bucketing of the given entity. */ public static boolean attemptToBucket(GeyserItemStack itemInHand) { - return itemInHand.asItem() == Items.WATER_BUCKET; + return itemInHand.is(Items.WATER_BUCKET); } /** * Attempt to determine the result of saddling the given entity. */ public static InteractionResult attemptToSaddle(Entity entityToSaddle, GeyserItemStack itemInHand) { - if (itemInHand.asItem() == Items.SADDLE) { + if (itemInHand.is(Items.SADDLE)) { if (!entityToSaddle.getFlag(EntityFlag.SADDLED) && !entityToSaddle.getFlag(EntityFlag.BABY)) { // Saddle return InteractionResult.SUCCESS; @@ -358,7 +359,17 @@ public final class EntityUtils { } GeyserHolderSet holderSet = GeyserHolderSet.fromHolderSet(JavaRegistries.ENTITY_TYPE, equippable.allowedEntities()); - return session.getTagCache().is(holderSet, entity); + return holderSet.contains(session, entity); + } + + // From ViaVersion! thank u!! + public static UUID uuidFromIntArray(int[] uuid) { + if (uuid != null && uuid.length == 4) { + // thank u viaversion + return new UUID((long) uuid[0] << 32 | ((long) uuid[1] & 0xFFFFFFFFL), + (long) uuid[2] << 32 | ((long) uuid[3] & 0xFFFFFFFFL)); + } + return null; } private EntityUtils() { diff --git a/core/src/main/java/org/geysermc/geyser/util/InteractiveTag.java b/core/src/main/java/org/geysermc/geyser/util/InteractiveTag.java index 79dcb9337..d9f9b5f7a 100644 --- a/core/src/main/java/org/geysermc/geyser/util/InteractiveTag.java +++ b/core/src/main/java/org/geysermc/geyser/util/InteractiveTag.java @@ -76,7 +76,11 @@ public enum InteractiveTag { REMOVE_WOLF_ARMOR("removewolfarmor"), REPAIR_WOLF_ARMOR("repairwolfarmor"), EQUIP_HARNESS("equipharness"), - REMOVE_HARNESS("removeharness"); + REMOVE_HARNESS("removeharness"), + SCRAPE, + WAX_ON, + WAX_OFF, + DROP_ITEM; /** * The full string that should be passed on to the client. diff --git a/core/src/main/java/org/geysermc/geyser/util/InventoryUtils.java b/core/src/main/java/org/geysermc/geyser/util/InventoryUtils.java index 9f13d1ffd..fbd405993 100644 --- a/core/src/main/java/org/geysermc/geyser/util/InventoryUtils.java +++ b/core/src/main/java/org/geysermc/geyser/util/InventoryUtils.java @@ -266,7 +266,7 @@ public class InventoryUtils { canStackDebug(item1, item2); if (item1.isEmpty() || item2.isEmpty()) return false; - return item1.getJavaId() == item2.getJavaId() && Objects.equals(item1.getComponents(), item2.getComponents()); + return item1.isSameItem(item2) && Objects.equals(item1.getComponents(), item2.getComponents()); } private static void canStackDebug(GeyserItemStack item1, GeyserItemStack item2) { @@ -379,7 +379,7 @@ public class InventoryUtils { && Objects.equals(itemStack.getComponents(), other.getDataComponentsPatch()); } if (slotDisplay instanceof TagSlotDisplay tagSlotDisplay) { - return session.getTagCache().is(new Tag<>(JavaRegistries.ITEM, tagSlotDisplay.tag()), itemStack.asItem()); + return itemStack.is(session, new Tag<>(JavaRegistries.ITEM, tagSlotDisplay.tag())); } session.getGeyser().getLogger().warning("Unknown slot display type: " + slotDisplay); return false; diff --git a/core/src/main/java/org/geysermc/geyser/util/LoginEncryptionUtils.java b/core/src/main/java/org/geysermc/geyser/util/LoginEncryptionUtils.java index b88d65dbd..3e30c0389 100644 --- a/core/src/main/java/org/geysermc/geyser/util/LoginEncryptionUtils.java +++ b/core/src/main/java/org/geysermc/geyser/util/LoginEncryptionUtils.java @@ -71,9 +71,13 @@ public class LoginEncryptionUtils { return; } + // Should always be present, but hey, why not make it safe :D + Long rawIssuedAt = (Long) result.rawIdentityClaims().get("iat"); + long issuedAt = rawIssuedAt != null ? rawIssuedAt : -1; + IdentityData extraData = result.identityClaims().extraData; // TODO!!! identity won't persist - session.setAuthData(new AuthData(extraData.displayName, extraData.identity, extraData.xuid)); + session.setAuthData(new AuthData(extraData.displayName, extraData.identity, extraData.xuid, issuedAt)); if (authPayload instanceof CertificateChainPayload certificateChainPayload) { session.setCertChainData(certificateChainPayload.getChain()); } else { diff --git a/core/src/main/java/org/geysermc/geyser/util/MinecraftKey.java b/core/src/main/java/org/geysermc/geyser/util/MinecraftKey.java index 5f1c8e084..891c3ed82 100644 --- a/core/src/main/java/org/geysermc/geyser/util/MinecraftKey.java +++ b/core/src/main/java/org/geysermc/geyser/util/MinecraftKey.java @@ -26,6 +26,9 @@ package org.geysermc.geyser.util; import net.kyori.adventure.key.Key; +import org.checkerframework.checker.nullness.qual.Nullable; +import org.geysermc.geyser.api.util.Identifier; +import org.geysermc.geyser.impl.IdentifierImpl; import org.intellij.lang.annotations.Subst; public final class MinecraftKey { @@ -36,4 +39,25 @@ public final class MinecraftKey { public static Key key(@Subst("empty") String s) { return Key.key(s); } + + /** + * To prevent constant warnings from invalid regex. + */ + public static Key key(@Subst("empty") String namespace, @Subst("empty") String value) { + return Key.key(namespace, value); + } + + public static @Nullable Key identifierToKey(@Nullable Identifier identifier) { + if (identifier == null) { + return null; + } + return identifier instanceof IdentifierImpl impl ? impl.identifier() : key(identifier.namespace(), identifier.path()); + } + + public static @Nullable Identifier keyToIdentifier(@Nullable Key key) { + if (key == null) { + return null; + } + return new IdentifierImpl(key); + } } diff --git a/core/src/main/resources/bedrock/block_palette.1_21_110.nbt b/core/src/main/resources/bedrock/block_palette.1_21_110.nbt new file mode 100644 index 000000000..e89f50aec Binary files /dev/null and b/core/src/main/resources/bedrock/block_palette.1_21_110.nbt differ diff --git a/core/src/main/resources/bedrock/block_palette.1_21_70.nbt b/core/src/main/resources/bedrock/block_palette.1_21_70.nbt deleted file mode 100644 index 34addeb30..000000000 Binary files a/core/src/main/resources/bedrock/block_palette.1_21_70.nbt and /dev/null differ diff --git a/core/src/main/resources/bedrock/block_palette.1_21_80.nbt b/core/src/main/resources/bedrock/block_palette.1_21_80.nbt deleted file mode 100644 index a8a22425e..000000000 Binary files a/core/src/main/resources/bedrock/block_palette.1_21_80.nbt and /dev/null differ diff --git a/core/src/main/resources/bedrock/creative_items.1_21_70.json b/core/src/main/resources/bedrock/creative_items.1_21_110.json similarity index 90% rename from core/src/main/resources/bedrock/creative_items.1_21_70.json rename to core/src/main/resources/bedrock/creative_items.1_21_110.json index 3758c5222..0e7b4ca48 100644 --- a/core/src/main/resources/bedrock/creative_items.1_21_70.json +++ b/core/src/main/resources/bedrock/creative_items.1_21_110.json @@ -56,10 +56,11 @@ } }, { - "name": "", + "name": "itemGroup.name.bars", "category": "construction", "icon": { - "id": "minecraft:air" + "id": "minecraft:iron_bars", + "block_state_b64": "CgAAAwgAYmxvY2tfaWRlAAAACAQAbmFtZRMAbWluZWNyYWZ0Omlyb25fYmFycwQJAG5hbWVfaGFzaPuefWSNAe56AwoAbmV0d29ya19pZN2LB5IKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" } }, { @@ -514,6 +515,13 @@ "id": "minecraft:air" } }, + { + "name": "itemGroup.name.harnesses", + "category": "equipment", + "icon": { + "id": "minecraft:white_harness" + } + }, { "name": "itemGroup.name.bundles", "category": "equipment", @@ -591,6 +599,14 @@ "id": "minecraft:air" } }, + { + "name": "itemGroup.name.lanterns", + "category": "items", + "icon": { + "id": "minecraft:lantern", + "block_state_b64": "CgAAAwgAYmxvY2tfaWTPAQAACAQAbmFtZREAbWluZWNyYWZ0OmxhbnRlcm4ECQBuYW1lX2hhc2hMw44VI2HWygMKAG5ldHdvcmtfaWRkjQvzCgYAc3RhdGVzAQcAaGFuZ2luZwAAAwcAdmVyc2lvbiE8FQEA" + } + }, { "name": "itemGroup.name.candles", "category": "items", @@ -621,6 +637,21 @@ "id": "minecraft:air" } }, + { + "name": "itemGroup.name.shelf", + "category": "items", + "icon": { + "id": "minecraft:oak_shelf", + "block_state_b64": "CgAAAwgAYmxvY2tfaWQWBQAACAQAbmFtZRMAbWluZWNyYWZ0Om9ha19zaGVsZgQJAG5hbWVfaGFzaOapDSQlOmFnAwoAbmV0d29ya19pZN5LVOcKBgBzdGF0ZXMIHABtaW5lY3JhZnQ6Y2FyZGluYWxfZGlyZWN0aW9uBQBzb3V0aAELAHBvd2VyZWRfYml0AAMSAHBvd2VyZWRfc2hlbGZfdHlwZQAAAAAAAwcAdmVyc2lvbiE8FQEA" + } + }, + { + "name": "", + "category": "items", + "icon": { + "id": "minecraft:air" + } + }, { "name": "itemGroup.name.chest", "category": "items", @@ -651,6 +682,21 @@ "id": "minecraft:air" } }, + { + "name": "itemGroup.name.copper_golem_statue", + "category": "items", + "icon": { + "id": "minecraft:copper_golem_statue", + "block_state_b64": "CgAAAwgAYmxvY2tfaWQOBQAACAQAbmFtZR0AbWluZWNyYWZ0OmNvcHBlcl9nb2xlbV9zdGF0dWUECQBuYW1lX2hhc2itI0fsCGdZZAMKAG5ldHdvcmtfaWQklRnDCgYAc3RhdGVzCBwAbWluZWNyYWZ0OmNhcmRpbmFsX2RpcmVjdGlvbgUAc291dGgAAwcAdmVyc2lvbiE8FQEA" + } + }, + { + "name": "", + "category": "items", + "icon": { + "id": "minecraft:air" + } + }, { "name": "itemGroup.name.record", "category": "items", @@ -694,6 +740,14 @@ "block_state_b64": "CgAAAwgAYmxvY2tfaWTHBAAACAQAbmFtZRYAbWluZWNyYWZ0OmNyZWVwZXJfaGVhZAQJAG5hbWVfaGFzaCvAGFMS/RqVAwoAbmV0d29ya19pZEfskXYKBgBzdGF0ZXMDEABmYWNpbmdfZGlyZWN0aW9uAAAAAAADBwB2ZXJzaW9uITwVAQA=" } }, + { + "name": "itemGroup.name.lightning_rod", + "category": "items", + "icon": { + "id": "minecraft:lightning_rod", + "block_state_b64": "CgAAAwgAYmxvY2tfaWQ3AgAACAQAbmFtZRcAbWluZWNyYWZ0OmxpZ2h0bmluZ19yb2QECQBuYW1lX2hhc2ioXQF1xvfHNQMKAG5ldHdvcmtfaWSRlKVZCgYAc3RhdGVzAxAAZmFjaW5nX2RpcmVjdGlvbgAAAAABCwBwb3dlcmVkX2JpdAAAAwcAdmVyc2lvbiE8FQEA" + } + }, { "name": "", "category": "items", @@ -817,6 +871,14 @@ "id": "minecraft:firework_star" } }, + { + "name": "itemGroup.name.chains", + "category": "items", + "icon": { + "id": "minecraft:iron_chain", + "block_state_b64": "CgAAAwgAYmxvY2tfaWQdAgAACAQAbmFtZRQAbWluZWNyYWZ0Omlyb25fY2hhaW4ECQBuYW1lX2hhc2gkrXi9O5vY2AMKAG5ldHdvcmtfaWTyRk3kCgYAc3RhdGVzCAsAcGlsbGFyX2F4aXMBAHkAAwcAdmVyc2lvbiE8FQEA" + } + }, { "name": "", "category": "items", @@ -1630,6 +1692,46 @@ "groupId": 7, "block_state_b64": "CgAAAwgAYmxvY2tfaWRlAAAACAQAbmFtZRMAbWluZWNyYWZ0Omlyb25fYmFycwQJAG5hbWVfaGFzaPuefWSNAe56AwoAbmV0d29ya19pZN2LB5IKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" }, + { + "id": "minecraft:copper_bars", + "groupId": 7, + "block_state_b64": "CgAAAwgAYmxvY2tfaWQpBQAACAQAbmFtZRUAbWluZWNyYWZ0OmNvcHBlcl9iYXJzBAkAbmFtZV9oYXNouI4DmXOeWWcDCgBuZXR3b3JrX2lkcDKOtwoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" + }, + { + "id": "minecraft:exposed_copper_bars", + "groupId": 7, + "block_state_b64": "CgAAAwgAYmxvY2tfaWQqBQAACAQAbmFtZR0AbWluZWNyYWZ0OmV4cG9zZWRfY29wcGVyX2JhcnMECQBuYW1lX2hhc2jhpzdxYKAGrQMKAG5ldHdvcmtfaWRp5fIeCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" + }, + { + "id": "minecraft:weathered_copper_bars", + "groupId": 7, + "block_state_b64": "CgAAAwgAYmxvY2tfaWQrBQAACAQAbmFtZR8AbWluZWNyYWZ0OndlYXRoZXJlZF9jb3BwZXJfYmFycwQJAG5hbWVfaGFzaPoG1IfwK17lAwoAbmV0d29ya19pZOxN9HIKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" + }, + { + "id": "minecraft:oxidized_copper_bars", + "groupId": 7, + "block_state_b64": "CgAAAwgAYmxvY2tfaWQsBQAACAQAbmFtZR4AbWluZWNyYWZ0Om94aWRpemVkX2NvcHBlcl9iYXJzBAkAbmFtZV9oYXNoYSn7QZsq4DIDCgBuZXR3b3JrX2lkGJguhgoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" + }, + { + "id": "minecraft:waxed_copper_bars", + "groupId": 7, + "block_state_b64": "CgAAAwgAYmxvY2tfaWQtBQAACAQAbmFtZRsAbWluZWNyYWZ0OndheGVkX2NvcHBlcl9iYXJzBAkAbmFtZV9oYXNowloATYlb7iEDCgBuZXR3b3JrX2lkoNsxbQoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" + }, + { + "id": "minecraft:waxed_exposed_copper_bars", + "groupId": 7, + "block_state_b64": "CgAAAwgAYmxvY2tfaWQuBQAACAQAbmFtZSMAbWluZWNyYWZ0OndheGVkX2V4cG9zZWRfY29wcGVyX2JhcnMECQBuYW1lX2hhc2jvL+AOcvr/VgMKAG5ldHdvcmtfaWR5/FZpCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" + }, + { + "id": "minecraft:waxed_weathered_copper_bars", + "groupId": 7, + "block_state_b64": "CgAAAwgAYmxvY2tfaWQvBQAACAQAbmFtZSUAbWluZWNyYWZ0OndheGVkX3dlYXRoZXJlZF9jb3BwZXJfYmFycwQJAG5hbWVfaGFzaLDmwGp334OVAwoAbmV0d29ya19pZCzsXvcKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" + }, + { + "id": "minecraft:waxed_oxidized_copper_bars", + "groupId": 7, + "block_state_b64": "CgAAAwgAYmxvY2tfaWQwBQAACAQAbmFtZSQAbWluZWNyYWZ0OndheGVkX294aWRpemVkX2NvcHBlcl9iYXJzBAkAbmFtZV9oYXNomx6QY3f1Lq4DCgBuZXR3b3JrX2lkyBkZAgoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" + }, { "id": "minecraft:glass", "groupId": 8, @@ -2285,16 +2387,16 @@ "groupId": 16, "block_state_b64": "CgAAAwgAYmxvY2tfaWRTAgAACAQAbmFtZRYAbWluZWNyYWZ0OmNvcHBlcl9ibG9jawQJAG5hbWVfaGFzaDVxnehsGaZ1AwoAbmV0d29ya19pZIiUodwKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" }, - { - "id": "minecraft:weathered_copper", - "groupId": 16, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRVAgAACAQAbmFtZRoAbWluZWNyYWZ0OndlYXRoZXJlZF9jb3BwZXIECQBuYW1lX2hhc2hJCQXbvobv+gMKAG5ldHdvcmtfaWQwM0lJCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, { "id": "minecraft:exposed_copper", "groupId": 16, "block_state_b64": "CgAAAwgAYmxvY2tfaWRUAgAACAQAbmFtZRgAbWluZWNyYWZ0OmV4cG9zZWRfY29wcGVyBAkAbmFtZV9oYXNoQH3Fukmu3CEDCgBuZXR3b3JrX2lk72jFIwoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" }, + { + "id": "minecraft:weathered_copper", + "groupId": 16, + "block_state_b64": "CgAAAwgAYmxvY2tfaWRVAgAACAQAbmFtZRoAbWluZWNyYWZ0OndlYXRoZXJlZF9jb3BwZXIECQBuYW1lX2hhc2hJCQXbvobv+gMKAG5ldHdvcmtfaWQwM0lJCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" + }, { "id": "minecraft:oxidized_copper", "groupId": 16, @@ -4580,6 +4682,11 @@ "groupId": 46, "block_state_b64": "CgAAAwgAYmxvY2tfaWRTAwAACAQAbmFtZRUAbWluZWNyYWZ0OnNuaWZmZXJfZWdnBAkAbmFtZV9oYXNoY1lozc8lPcYDCgBuZXR3b3JrX2lk7yb/2QoGAHN0YXRlcwgNAGNyYWNrZWRfc3RhdGUJAG5vX2NyYWNrcwADBwB2ZXJzaW9uITwVAQA=" }, + { + "id": "minecraft:dried_ghast", + "groupId": 46, + "block_state_b64": "CgAAAwgAYmxvY2tfaWQCBQAACAQAbmFtZRUAbWluZWNyYWZ0OmRyaWVkX2doYXN0BAkAbmFtZV9oYXNopppNvnUOty4DCgBuZXR3b3JrX2lkkxnGogoGAHN0YXRlcwgcAG1pbmVjcmFmdDpjYXJkaW5hbF9kaXJlY3Rpb24FAHNvdXRoAxEAcmVoeWRyYXRpb25fbGV2ZWwAAAAAAAMHAHZlcnNpb24hPBUBAA==" + }, { "id": "minecraft:frog_spawn", "groupId": 46, @@ -4892,6 +4999,10 @@ "id": "minecraft:iron_golem_spawn_egg", "groupId": 47 }, + { + "id": "minecraft:copper_golem_spawn_egg", + "groupId": 47 + }, { "id": "minecraft:snow_golem_spawn_egg", "groupId": 47 @@ -4916,6 +5027,10 @@ "id": "minecraft:creaking_spawn_egg", "groupId": 47 }, + { + "id": "minecraft:happy_ghast_spawn_egg", + "groupId": 47 + }, { "id": "minecraft:obsidian", "groupId": 48, @@ -5067,6 +5182,10 @@ "id": "minecraft:leather_helmet", "groupId": 52 }, + { + "id": "minecraft:copper_helmet", + "groupId": 52 + }, { "id": "minecraft:chainmail_helmet", "groupId": 52 @@ -5091,6 +5210,10 @@ "id": "minecraft:leather_chestplate", "groupId": 53 }, + { + "id": "minecraft:copper_chestplate", + "groupId": 53 + }, { "id": "minecraft:chainmail_chestplate", "groupId": 53 @@ -5115,6 +5238,10 @@ "id": "minecraft:leather_leggings", "groupId": 54 }, + { + "id": "minecraft:copper_leggings", + "groupId": 54 + }, { "id": "minecraft:chainmail_leggings", "groupId": 54 @@ -5139,6 +5266,10 @@ "id": "minecraft:leather_boots", "groupId": 55 }, + { + "id": "minecraft:copper_boots", + "groupId": 55 + }, { "id": "minecraft:chainmail_boots", "groupId": 55 @@ -5167,6 +5298,10 @@ "id": "minecraft:stone_sword", "groupId": 56 }, + { + "id": "minecraft:copper_sword", + "groupId": 56 + }, { "id": "minecraft:iron_sword", "groupId": 56 @@ -5191,6 +5326,10 @@ "id": "minecraft:stone_axe", "groupId": 57 }, + { + "id": "minecraft:copper_axe", + "groupId": 57 + }, { "id": "minecraft:iron_axe", "groupId": 57 @@ -5215,6 +5354,10 @@ "id": "minecraft:stone_pickaxe", "groupId": 58 }, + { + "id": "minecraft:copper_pickaxe", + "groupId": 58 + }, { "id": "minecraft:iron_pickaxe", "groupId": 58 @@ -5239,6 +5382,10 @@ "id": "minecraft:stone_shovel", "groupId": 59 }, + { + "id": "minecraft:copper_shovel", + "groupId": 59 + }, { "id": "minecraft:iron_shovel", "groupId": 59 @@ -5263,6 +5410,10 @@ "id": "minecraft:stone_hoe", "groupId": 60 }, + { + "id": "minecraft:copper_hoe", + "groupId": 60 + }, { "id": "minecraft:iron_hoe", "groupId": 60 @@ -5291,6 +5442,10 @@ "id": "minecraft:mace", "groupId": 61 }, + { + "id": "minecraft:trident", + "groupId": 61 + }, { "id": "minecraft:arrow", "groupId": 62 @@ -5670,3291 +5825,3628 @@ "groupId": 68 }, { - "id": "minecraft:bundle", + "id": "minecraft:white_harness", "groupId": 69 }, + { + "id": "minecraft:light_gray_harness", + "groupId": 69 + }, + { + "id": "minecraft:gray_harness", + "groupId": 69 + }, + { + "id": "minecraft:black_harness", + "groupId": 69 + }, + { + "id": "minecraft:brown_harness", + "groupId": 69 + }, + { + "id": "minecraft:red_harness", + "groupId": 69 + }, + { + "id": "minecraft:orange_harness", + "groupId": 69 + }, + { + "id": "minecraft:yellow_harness", + "groupId": 69 + }, + { + "id": "minecraft:lime_harness", + "groupId": 69 + }, + { + "id": "minecraft:green_harness", + "groupId": 69 + }, + { + "id": "minecraft:cyan_harness", + "groupId": 69 + }, + { + "id": "minecraft:light_blue_harness", + "groupId": 69 + }, + { + "id": "minecraft:blue_harness", + "groupId": 69 + }, + { + "id": "minecraft:purple_harness", + "groupId": 69 + }, + { + "id": "minecraft:magenta_harness", + "groupId": 69 + }, + { + "id": "minecraft:pink_harness", + "groupId": 69 + }, + { + "id": "minecraft:bundle", + "groupId": 70 + }, { "id": "minecraft:white_bundle", - "groupId": 69 + "groupId": 70 }, { "id": "minecraft:light_gray_bundle", - "groupId": 69 + "groupId": 70 }, { "id": "minecraft:gray_bundle", - "groupId": 69 + "groupId": 70 }, { "id": "minecraft:black_bundle", - "groupId": 69 + "groupId": 70 }, { "id": "minecraft:brown_bundle", - "groupId": 69 + "groupId": 70 }, { "id": "minecraft:red_bundle", - "groupId": 69 + "groupId": 70 }, { "id": "minecraft:orange_bundle", - "groupId": 69 + "groupId": 70 }, { "id": "minecraft:yellow_bundle", - "groupId": 69 + "groupId": 70 }, { "id": "minecraft:lime_bundle", - "groupId": 69 + "groupId": 70 }, { "id": "minecraft:green_bundle", - "groupId": 69 + "groupId": 70 }, { "id": "minecraft:cyan_bundle", - "groupId": 69 + "groupId": 70 }, { "id": "minecraft:light_blue_bundle", - "groupId": 69 + "groupId": 70 }, { "id": "minecraft:blue_bundle", - "groupId": 69 + "groupId": 70 }, { "id": "minecraft:purple_bundle", - "groupId": 69 + "groupId": 70 }, { "id": "minecraft:magenta_bundle", - "groupId": 69 + "groupId": 70 }, { "id": "minecraft:pink_bundle", - "groupId": 69 + "groupId": 70 }, { "id": "minecraft:leather_horse_armor", - "groupId": 70 + "groupId": 71 + }, + { + "id": "minecraft:copper_horse_armor", + "groupId": 71 }, { "id": "minecraft:iron_horse_armor", - "groupId": 70 + "groupId": 71 }, { "id": "minecraft:golden_horse_armor", - "groupId": 70 + "groupId": 71 }, { "id": "minecraft:diamond_horse_armor", - "groupId": 70 + "groupId": 71 }, { "id": "minecraft:wolf_armor", - "groupId": 71 - }, - { - "id": "minecraft:trident", - "groupId": 71 + "groupId": 72 }, { "id": "minecraft:turtle_helmet", - "groupId": 71 + "groupId": 72 }, { "id": "minecraft:elytra", - "groupId": 71 + "groupId": 72 }, { "id": "minecraft:totem_of_undying", - "groupId": 71 + "groupId": 72 }, { "id": "minecraft:glass_bottle", - "groupId": 71 + "groupId": 72 }, { "id": "minecraft:experience_bottle", - "groupId": 71 + "groupId": 72 }, { "id": "minecraft:potion", - "groupId": 72 + "groupId": 73 }, { "id": "minecraft:potion", "damage": 1, - "groupId": 72 + "groupId": 73 }, { "id": "minecraft:potion", "damage": 2, - "groupId": 72 + "groupId": 73 }, { "id": "minecraft:potion", "damage": 3, - "groupId": 72 + "groupId": 73 }, { "id": "minecraft:potion", "damage": 4, - "groupId": 72 + "groupId": 73 }, { "id": "minecraft:potion", "damage": 5, - "groupId": 72 + "groupId": 73 }, { "id": "minecraft:potion", "damage": 6, - "groupId": 72 + "groupId": 73 }, { "id": "minecraft:potion", "damage": 7, - "groupId": 72 + "groupId": 73 }, { "id": "minecraft:potion", "damage": 8, - "groupId": 72 + "groupId": 73 }, { "id": "minecraft:potion", "damage": 9, - "groupId": 72 + "groupId": 73 }, { "id": "minecraft:potion", "damage": 10, - "groupId": 72 + "groupId": 73 }, { "id": "minecraft:potion", "damage": 11, - "groupId": 72 + "groupId": 73 }, { "id": "minecraft:potion", "damage": 12, - "groupId": 72 + "groupId": 73 }, { "id": "minecraft:potion", "damage": 13, - "groupId": 72 + "groupId": 73 }, { "id": "minecraft:potion", "damage": 14, - "groupId": 72 + "groupId": 73 }, { "id": "minecraft:potion", "damage": 15, - "groupId": 72 + "groupId": 73 }, { "id": "minecraft:potion", "damage": 16, - "groupId": 72 + "groupId": 73 }, { "id": "minecraft:potion", "damage": 17, - "groupId": 72 + "groupId": 73 }, { "id": "minecraft:potion", "damage": 18, - "groupId": 72 - }, - { - "id": "minecraft:potion", - "damage": 19, - "groupId": 72 - }, - { - "id": "minecraft:potion", - "damage": 20, - "groupId": 72 - }, - { - "id": "minecraft:potion", - "damage": 21, - "groupId": 72 - }, - { - "id": "minecraft:potion", - "damage": 22, - "groupId": 72 - }, - { - "id": "minecraft:potion", - "damage": 23, - "groupId": 72 - }, - { - "id": "minecraft:potion", - "damage": 24, - "groupId": 72 - }, - { - "id": "minecraft:potion", - "damage": 25, - "groupId": 72 - }, - { - "id": "minecraft:potion", - "damage": 26, - "groupId": 72 - }, - { - "id": "minecraft:potion", - "damage": 27, - "groupId": 72 - }, - { - "id": "minecraft:potion", - "damage": 28, - "groupId": 72 - }, - { - "id": "minecraft:potion", - "damage": 29, - "groupId": 72 - }, - { - "id": "minecraft:potion", - "damage": 30, - "groupId": 72 - }, - { - "id": "minecraft:potion", - "damage": 31, - "groupId": 72 - }, - { - "id": "minecraft:potion", - "damage": 32, - "groupId": 72 - }, - { - "id": "minecraft:potion", - "damage": 33, - "groupId": 72 - }, - { - "id": "minecraft:potion", - "damage": 34, - "groupId": 72 - }, - { - "id": "minecraft:potion", - "damage": 35, - "groupId": 72 - }, - { - "id": "minecraft:potion", - "damage": 36, - "groupId": 72 - }, - { - "id": "minecraft:potion", - "damage": 37, - "groupId": 72 - }, - { - "id": "minecraft:potion", - "damage": 38, - "groupId": 72 - }, - { - "id": "minecraft:potion", - "damage": 39, - "groupId": 72 - }, - { - "id": "minecraft:potion", - "damage": 40, - "groupId": 72 - }, - { - "id": "minecraft:potion", - "damage": 41, - "groupId": 72 + "groupId": 73 }, { "id": "minecraft:potion", "damage": 42, - "groupId": 72 + "groupId": 73 + }, + { + "id": "minecraft:potion", + "damage": 19, + "groupId": 73 + }, + { + "id": "minecraft:potion", + "damage": 20, + "groupId": 73 + }, + { + "id": "minecraft:potion", + "damage": 21, + "groupId": 73 + }, + { + "id": "minecraft:potion", + "damage": 22, + "groupId": 73 + }, + { + "id": "minecraft:potion", + "damage": 23, + "groupId": 73 + }, + { + "id": "minecraft:potion", + "damage": 24, + "groupId": 73 + }, + { + "id": "minecraft:potion", + "damage": 25, + "groupId": 73 + }, + { + "id": "minecraft:potion", + "damage": 26, + "groupId": 73 + }, + { + "id": "minecraft:potion", + "damage": 27, + "groupId": 73 + }, + { + "id": "minecraft:potion", + "damage": 28, + "groupId": 73 + }, + { + "id": "minecraft:potion", + "damage": 29, + "groupId": 73 + }, + { + "id": "minecraft:potion", + "damage": 30, + "groupId": 73 + }, + { + "id": "minecraft:potion", + "damage": 31, + "groupId": 73 + }, + { + "id": "minecraft:potion", + "damage": 32, + "groupId": 73 + }, + { + "id": "minecraft:potion", + "damage": 33, + "groupId": 73 + }, + { + "id": "minecraft:potion", + "damage": 34, + "groupId": 73 + }, + { + "id": "minecraft:potion", + "damage": 35, + "groupId": 73 + }, + { + "id": "minecraft:potion", + "damage": 36, + "groupId": 73 + }, + { + "id": "minecraft:potion", + "damage": 37, + "groupId": 73 + }, + { + "id": "minecraft:potion", + "damage": 38, + "groupId": 73 + }, + { + "id": "minecraft:potion", + "damage": 39, + "groupId": 73 + }, + { + "id": "minecraft:potion", + "damage": 40, + "groupId": 73 + }, + { + "id": "minecraft:potion", + "damage": 41, + "groupId": 73 }, { "id": "minecraft:potion", "damage": 43, - "groupId": 72 + "groupId": 73 }, { "id": "minecraft:potion", "damage": 44, - "groupId": 72 + "groupId": 73 }, { "id": "minecraft:potion", "damage": 45, - "groupId": 72 + "groupId": 73 }, { "id": "minecraft:potion", "damage": 46, - "groupId": 72 + "groupId": 73 }, { "id": "minecraft:splash_potion", - "groupId": 73 + "groupId": 74 }, { "id": "minecraft:splash_potion", "damage": 1, - "groupId": 73 + "groupId": 74 }, { "id": "minecraft:splash_potion", "damage": 2, - "groupId": 73 + "groupId": 74 }, { "id": "minecraft:splash_potion", "damage": 3, - "groupId": 73 + "groupId": 74 }, { "id": "minecraft:splash_potion", "damage": 4, - "groupId": 73 + "groupId": 74 }, { "id": "minecraft:splash_potion", "damage": 5, - "groupId": 73 + "groupId": 74 }, { "id": "minecraft:splash_potion", "damage": 6, - "groupId": 73 + "groupId": 74 }, { "id": "minecraft:splash_potion", "damage": 7, - "groupId": 73 + "groupId": 74 }, { "id": "minecraft:splash_potion", "damage": 8, - "groupId": 73 + "groupId": 74 }, { "id": "minecraft:splash_potion", "damage": 9, - "groupId": 73 + "groupId": 74 }, { "id": "minecraft:splash_potion", "damage": 10, - "groupId": 73 + "groupId": 74 }, { "id": "minecraft:splash_potion", "damage": 11, - "groupId": 73 + "groupId": 74 }, { "id": "minecraft:splash_potion", "damage": 12, - "groupId": 73 + "groupId": 74 }, { "id": "minecraft:splash_potion", "damage": 13, - "groupId": 73 + "groupId": 74 }, { "id": "minecraft:splash_potion", "damage": 14, - "groupId": 73 + "groupId": 74 }, { "id": "minecraft:splash_potion", "damage": 15, - "groupId": 73 + "groupId": 74 }, { "id": "minecraft:splash_potion", "damage": 16, - "groupId": 73 + "groupId": 74 }, { "id": "minecraft:splash_potion", "damage": 17, - "groupId": 73 + "groupId": 74 }, { "id": "minecraft:splash_potion", "damage": 18, - "groupId": 73 - }, - { - "id": "minecraft:splash_potion", - "damage": 19, - "groupId": 73 - }, - { - "id": "minecraft:splash_potion", - "damage": 20, - "groupId": 73 - }, - { - "id": "minecraft:splash_potion", - "damage": 21, - "groupId": 73 - }, - { - "id": "minecraft:splash_potion", - "damage": 22, - "groupId": 73 - }, - { - "id": "minecraft:splash_potion", - "damage": 23, - "groupId": 73 - }, - { - "id": "minecraft:splash_potion", - "damage": 24, - "groupId": 73 - }, - { - "id": "minecraft:splash_potion", - "damage": 25, - "groupId": 73 - }, - { - "id": "minecraft:splash_potion", - "damage": 26, - "groupId": 73 - }, - { - "id": "minecraft:splash_potion", - "damage": 27, - "groupId": 73 - }, - { - "id": "minecraft:splash_potion", - "damage": 28, - "groupId": 73 - }, - { - "id": "minecraft:splash_potion", - "damage": 29, - "groupId": 73 - }, - { - "id": "minecraft:splash_potion", - "damage": 30, - "groupId": 73 - }, - { - "id": "minecraft:splash_potion", - "damage": 31, - "groupId": 73 - }, - { - "id": "minecraft:splash_potion", - "damage": 32, - "groupId": 73 - }, - { - "id": "minecraft:splash_potion", - "damage": 33, - "groupId": 73 - }, - { - "id": "minecraft:splash_potion", - "damage": 34, - "groupId": 73 - }, - { - "id": "minecraft:splash_potion", - "damage": 35, - "groupId": 73 - }, - { - "id": "minecraft:splash_potion", - "damage": 36, - "groupId": 73 - }, - { - "id": "minecraft:splash_potion", - "damage": 37, - "groupId": 73 - }, - { - "id": "minecraft:splash_potion", - "damage": 38, - "groupId": 73 - }, - { - "id": "minecraft:splash_potion", - "damage": 39, - "groupId": 73 - }, - { - "id": "minecraft:splash_potion", - "damage": 40, - "groupId": 73 - }, - { - "id": "minecraft:splash_potion", - "damage": 41, - "groupId": 73 + "groupId": 74 }, { "id": "minecraft:splash_potion", "damage": 42, - "groupId": 73 + "groupId": 74 + }, + { + "id": "minecraft:splash_potion", + "damage": 19, + "groupId": 74 + }, + { + "id": "minecraft:splash_potion", + "damage": 20, + "groupId": 74 + }, + { + "id": "minecraft:splash_potion", + "damage": 21, + "groupId": 74 + }, + { + "id": "minecraft:splash_potion", + "damage": 22, + "groupId": 74 + }, + { + "id": "minecraft:splash_potion", + "damage": 23, + "groupId": 74 + }, + { + "id": "minecraft:splash_potion", + "damage": 24, + "groupId": 74 + }, + { + "id": "minecraft:splash_potion", + "damage": 25, + "groupId": 74 + }, + { + "id": "minecraft:splash_potion", + "damage": 26, + "groupId": 74 + }, + { + "id": "minecraft:splash_potion", + "damage": 27, + "groupId": 74 + }, + { + "id": "minecraft:splash_potion", + "damage": 28, + "groupId": 74 + }, + { + "id": "minecraft:splash_potion", + "damage": 29, + "groupId": 74 + }, + { + "id": "minecraft:splash_potion", + "damage": 30, + "groupId": 74 + }, + { + "id": "minecraft:splash_potion", + "damage": 31, + "groupId": 74 + }, + { + "id": "minecraft:splash_potion", + "damage": 32, + "groupId": 74 + }, + { + "id": "minecraft:splash_potion", + "damage": 33, + "groupId": 74 + }, + { + "id": "minecraft:splash_potion", + "damage": 34, + "groupId": 74 + }, + { + "id": "minecraft:splash_potion", + "damage": 35, + "groupId": 74 + }, + { + "id": "minecraft:splash_potion", + "damage": 36, + "groupId": 74 + }, + { + "id": "minecraft:splash_potion", + "damage": 37, + "groupId": 74 + }, + { + "id": "minecraft:splash_potion", + "damage": 38, + "groupId": 74 + }, + { + "id": "minecraft:splash_potion", + "damage": 39, + "groupId": 74 + }, + { + "id": "minecraft:splash_potion", + "damage": 40, + "groupId": 74 + }, + { + "id": "minecraft:splash_potion", + "damage": 41, + "groupId": 74 }, { "id": "minecraft:splash_potion", "damage": 43, - "groupId": 73 + "groupId": 74 }, { "id": "minecraft:splash_potion", "damage": 44, - "groupId": 73 + "groupId": 74 }, { "id": "minecraft:splash_potion", "damage": 45, - "groupId": 73 + "groupId": 74 }, { "id": "minecraft:splash_potion", "damage": 46, - "groupId": 73 + "groupId": 74 }, { "id": "minecraft:lingering_potion", - "groupId": 74 + "groupId": 75 }, { "id": "minecraft:lingering_potion", "damage": 1, - "groupId": 74 + "groupId": 75 }, { "id": "minecraft:lingering_potion", "damage": 2, - "groupId": 74 + "groupId": 75 }, { "id": "minecraft:lingering_potion", "damage": 3, - "groupId": 74 + "groupId": 75 }, { "id": "minecraft:lingering_potion", "damage": 4, - "groupId": 74 + "groupId": 75 }, { "id": "minecraft:lingering_potion", "damage": 5, - "groupId": 74 + "groupId": 75 }, { "id": "minecraft:lingering_potion", "damage": 6, - "groupId": 74 + "groupId": 75 }, { "id": "minecraft:lingering_potion", "damage": 7, - "groupId": 74 + "groupId": 75 }, { "id": "minecraft:lingering_potion", "damage": 8, - "groupId": 74 + "groupId": 75 }, { "id": "minecraft:lingering_potion", "damage": 9, - "groupId": 74 + "groupId": 75 }, { "id": "minecraft:lingering_potion", "damage": 10, - "groupId": 74 + "groupId": 75 }, { "id": "minecraft:lingering_potion", "damage": 11, - "groupId": 74 + "groupId": 75 }, { "id": "minecraft:lingering_potion", "damage": 12, - "groupId": 74 + "groupId": 75 }, { "id": "minecraft:lingering_potion", "damage": 13, - "groupId": 74 + "groupId": 75 }, { "id": "minecraft:lingering_potion", "damage": 14, - "groupId": 74 + "groupId": 75 }, { "id": "minecraft:lingering_potion", "damage": 15, - "groupId": 74 + "groupId": 75 }, { "id": "minecraft:lingering_potion", "damage": 16, - "groupId": 74 + "groupId": 75 }, { "id": "minecraft:lingering_potion", "damage": 17, - "groupId": 74 + "groupId": 75 }, { "id": "minecraft:lingering_potion", "damage": 18, - "groupId": 74 - }, - { - "id": "minecraft:lingering_potion", - "damage": 19, - "groupId": 74 - }, - { - "id": "minecraft:lingering_potion", - "damage": 20, - "groupId": 74 - }, - { - "id": "minecraft:lingering_potion", - "damage": 21, - "groupId": 74 - }, - { - "id": "minecraft:lingering_potion", - "damage": 22, - "groupId": 74 - }, - { - "id": "minecraft:lingering_potion", - "damage": 23, - "groupId": 74 - }, - { - "id": "minecraft:lingering_potion", - "damage": 24, - "groupId": 74 - }, - { - "id": "minecraft:lingering_potion", - "damage": 25, - "groupId": 74 - }, - { - "id": "minecraft:lingering_potion", - "damage": 26, - "groupId": 74 - }, - { - "id": "minecraft:lingering_potion", - "damage": 27, - "groupId": 74 - }, - { - "id": "minecraft:lingering_potion", - "damage": 28, - "groupId": 74 - }, - { - "id": "minecraft:lingering_potion", - "damage": 29, - "groupId": 74 - }, - { - "id": "minecraft:lingering_potion", - "damage": 30, - "groupId": 74 - }, - { - "id": "minecraft:lingering_potion", - "damage": 31, - "groupId": 74 - }, - { - "id": "minecraft:lingering_potion", - "damage": 32, - "groupId": 74 - }, - { - "id": "minecraft:lingering_potion", - "damage": 33, - "groupId": 74 - }, - { - "id": "minecraft:lingering_potion", - "damage": 34, - "groupId": 74 - }, - { - "id": "minecraft:lingering_potion", - "damage": 35, - "groupId": 74 - }, - { - "id": "minecraft:lingering_potion", - "damage": 36, - "groupId": 74 - }, - { - "id": "minecraft:lingering_potion", - "damage": 37, - "groupId": 74 - }, - { - "id": "minecraft:lingering_potion", - "damage": 38, - "groupId": 74 - }, - { - "id": "minecraft:lingering_potion", - "damage": 39, - "groupId": 74 - }, - { - "id": "minecraft:lingering_potion", - "damage": 40, - "groupId": 74 - }, - { - "id": "minecraft:lingering_potion", - "damage": 41, - "groupId": 74 + "groupId": 75 }, { "id": "minecraft:lingering_potion", "damage": 42, - "groupId": 74 + "groupId": 75 + }, + { + "id": "minecraft:lingering_potion", + "damage": 19, + "groupId": 75 + }, + { + "id": "minecraft:lingering_potion", + "damage": 20, + "groupId": 75 + }, + { + "id": "minecraft:lingering_potion", + "damage": 21, + "groupId": 75 + }, + { + "id": "minecraft:lingering_potion", + "damage": 22, + "groupId": 75 + }, + { + "id": "minecraft:lingering_potion", + "damage": 23, + "groupId": 75 + }, + { + "id": "minecraft:lingering_potion", + "damage": 24, + "groupId": 75 + }, + { + "id": "minecraft:lingering_potion", + "damage": 25, + "groupId": 75 + }, + { + "id": "minecraft:lingering_potion", + "damage": 26, + "groupId": 75 + }, + { + "id": "minecraft:lingering_potion", + "damage": 27, + "groupId": 75 + }, + { + "id": "minecraft:lingering_potion", + "damage": 28, + "groupId": 75 + }, + { + "id": "minecraft:lingering_potion", + "damage": 29, + "groupId": 75 + }, + { + "id": "minecraft:lingering_potion", + "damage": 30, + "groupId": 75 + }, + { + "id": "minecraft:lingering_potion", + "damage": 31, + "groupId": 75 + }, + { + "id": "minecraft:lingering_potion", + "damage": 32, + "groupId": 75 + }, + { + "id": "minecraft:lingering_potion", + "damage": 33, + "groupId": 75 + }, + { + "id": "minecraft:lingering_potion", + "damage": 34, + "groupId": 75 + }, + { + "id": "minecraft:lingering_potion", + "damage": 35, + "groupId": 75 + }, + { + "id": "minecraft:lingering_potion", + "damage": 36, + "groupId": 75 + }, + { + "id": "minecraft:lingering_potion", + "damage": 37, + "groupId": 75 + }, + { + "id": "minecraft:lingering_potion", + "damage": 38, + "groupId": 75 + }, + { + "id": "minecraft:lingering_potion", + "damage": 39, + "groupId": 75 + }, + { + "id": "minecraft:lingering_potion", + "damage": 40, + "groupId": 75 + }, + { + "id": "minecraft:lingering_potion", + "damage": 41, + "groupId": 75 }, { "id": "minecraft:lingering_potion", "damage": 43, - "groupId": 74 + "groupId": 75 }, { "id": "minecraft:lingering_potion", "damage": 44, - "groupId": 74 + "groupId": 75 }, { "id": "minecraft:lingering_potion", "damage": 45, - "groupId": 74 + "groupId": 75 }, { "id": "minecraft:lingering_potion", "damage": 46, - "groupId": 74 + "groupId": 75 }, { "id": "minecraft:ominous_bottle", - "groupId": 75 + "groupId": 76 }, { "id": "minecraft:ominous_bottle", "damage": 1, - "groupId": 75 + "groupId": 76 }, { "id": "minecraft:ominous_bottle", "damage": 2, - "groupId": 75 + "groupId": 76 }, { "id": "minecraft:ominous_bottle", "damage": 3, - "groupId": 75 + "groupId": 76 }, { "id": "minecraft:ominous_bottle", "damage": 4, - "groupId": 75 + "groupId": 76 }, { "id": "minecraft:spyglass", - "groupId": 76 - }, - { - "id": "minecraft:brush", - "groupId": 76 - }, - { - "id": "minecraft:stick", "groupId": 77 }, { - "id": "minecraft:bed", + "id": "minecraft:brush", + "groupId": 77 + }, + { + "id": "minecraft:stick", "groupId": 78 }, + { + "id": "minecraft:bed", + "groupId": 79 + }, { "id": "minecraft:bed", "damage": 8, - "groupId": 78 + "groupId": 79 }, { "id": "minecraft:bed", "damage": 7, - "groupId": 78 + "groupId": 79 }, { "id": "minecraft:bed", "damage": 15, - "groupId": 78 + "groupId": 79 }, { "id": "minecraft:bed", "damage": 12, - "groupId": 78 + "groupId": 79 }, { "id": "minecraft:bed", "damage": 14, - "groupId": 78 + "groupId": 79 }, { "id": "minecraft:bed", "damage": 1, - "groupId": 78 + "groupId": 79 }, { "id": "minecraft:bed", "damage": 4, - "groupId": 78 + "groupId": 79 }, { "id": "minecraft:bed", "damage": 5, - "groupId": 78 + "groupId": 79 }, { "id": "minecraft:bed", "damage": 13, - "groupId": 78 + "groupId": 79 }, { "id": "minecraft:bed", "damage": 9, - "groupId": 78 + "groupId": 79 }, { "id": "minecraft:bed", "damage": 3, - "groupId": 78 + "groupId": 79 }, { "id": "minecraft:bed", "damage": 11, - "groupId": 78 + "groupId": 79 }, { "id": "minecraft:bed", "damage": 10, - "groupId": 78 + "groupId": 79 }, { "id": "minecraft:bed", "damage": 2, - "groupId": 78 + "groupId": 79 }, { "id": "minecraft:bed", "damage": 6, - "groupId": 78 + "groupId": 79 }, { "id": "minecraft:torch", - "groupId": 79, + "groupId": 80, "block_state_b64": "CgAAAwgAYmxvY2tfaWQyAAAACAQAbmFtZQ8AbWluZWNyYWZ0OnRvcmNoBAkAbmFtZV9oYXNoagn7rmDBzisDCgBuZXR3b3JrX2lk+BwwuQoGAHN0YXRlcwgWAHRvcmNoX2ZhY2luZ19kaXJlY3Rpb24HAHVua25vd24AAwcAdmVyc2lvbiE8FQEA" }, { "id": "minecraft:soul_torch", - "groupId": 79, + "groupId": 80, "block_state_b64": "CgAAAwgAYmxvY2tfaWQLAgAACAQAbmFtZRQAbWluZWNyYWZ0OnNvdWxfdG9yY2gECQBuYW1lX2hhc2huixOT04BRdQMKAG5ldHdvcmtfaWShbFILCgYAc3RhdGVzCBYAdG9yY2hfZmFjaW5nX2RpcmVjdGlvbgcAdW5rbm93bgADBwB2ZXJzaW9uITwVAQA=" }, + { + "id": "minecraft:copper_torch", + "groupId": 80, + "block_state_b64": "CgAAAwgAYmxvY2tfaWQ5BQAACAQAbmFtZRYAbWluZWNyYWZ0OmNvcHBlcl90b3JjaAQJAG5hbWVfaGFzaKSlv4gljcBZAwoAbmV0d29ya19pZK23egsKBgBzdGF0ZXMIFgB0b3JjaF9mYWNpbmdfZGlyZWN0aW9uBwB1bmtub3duAAMHAHZlcnNpb24hPBUBAA==" + }, { "id": "minecraft:sea_pickle", - "groupId": 79, + "groupId": 80, "block_state_b64": "CgAAAwgAYmxvY2tfaWSbAQAACAQAbmFtZRQAbWluZWNyYWZ0OnNlYV9waWNrbGUECQBuYW1lX2hhc2iONEfZJB+glgMKAG5ldHdvcmtfaWSINWQyCgYAc3RhdGVzAw0AY2x1c3Rlcl9jb3VudAAAAAABCABkZWFkX2JpdAAAAwcAdmVyc2lvbiE8FQEA" }, { "id": "minecraft:lantern", - "groupId": 79, + "groupId": 81, "block_state_b64": "CgAAAwgAYmxvY2tfaWTPAQAACAQAbmFtZREAbWluZWNyYWZ0OmxhbnRlcm4ECQBuYW1lX2hhc2hMw44VI2HWygMKAG5ldHdvcmtfaWRkjQvzCgYAc3RhdGVzAQcAaGFuZ2luZwAAAwcAdmVyc2lvbiE8FQEA" }, { "id": "minecraft:soul_lantern", - "groupId": 79, + "groupId": 81, "block_state_b64": "CgAAAwgAYmxvY2tfaWQMAgAACAQAbmFtZRYAbWluZWNyYWZ0OnNvdWxfbGFudGVybgQJAG5hbWVfaGFzaGjIpjxk9z+RAwoAbmV0d29ya19pZGfoP8cKBgBzdGF0ZXMBBwBoYW5naW5nAAADBwB2ZXJzaW9uITwVAQA=" }, + { + "id": "minecraft:copper_lantern", + "groupId": 81, + "block_state_b64": "CgAAAwgAYmxvY2tfaWQ6BQAACAQAbmFtZRgAbWluZWNyYWZ0OmNvcHBlcl9sYW50ZXJuBAkAbmFtZV9oYXNoLtQWqHUuNf8DCgBuZXR3b3JrX2lkTwEjJgoGAHN0YXRlcwEHAGhhbmdpbmcAAAMHAHZlcnNpb24hPBUBAA==" + }, + { + "id": "minecraft:exposed_copper_lantern", + "groupId": 81, + "block_state_b64": "CgAAAwgAYmxvY2tfaWQ7BQAACAQAbmFtZSAAbWluZWNyYWZ0OmV4cG9zZWRfY29wcGVyX2xhbnRlcm4ECQBuYW1lX2hhc2jteae0Pqt+UAMKAG5ldHdvcmtfaWSaBueACgYAc3RhdGVzAQcAaGFuZ2luZwAAAwcAdmVyc2lvbiE8FQEA" + }, + { + "id": "minecraft:weathered_copper_lantern", + "groupId": 81, + "block_state_b64": "CgAAAwgAYmxvY2tfaWQ8BQAACAQAbmFtZSIAbWluZWNyYWZ0OndlYXRoZXJlZF9jb3BwZXJfbGFudGVybgQJAG5hbWVfaGFzaHxxhSBnhy+zAwoAbmV0d29ya19pZM91GbYKBgBzdGF0ZXMBBwBoYW5naW5nAAADBwB2ZXJzaW9uITwVAQA=" + }, + { + "id": "minecraft:oxidized_copper_lantern", + "groupId": 81, + "block_state_b64": "CgAAAwgAYmxvY2tfaWQ9BQAACAQAbmFtZSEAbWluZWNyYWZ0Om94aWRpemVkX2NvcHBlcl9sYW50ZXJuBAkAbmFtZV9oYXNobfo7/BlKAqMDCgBuZXR3b3JrX2lk59s7fAoGAHN0YXRlcwEHAGhhbmdpbmcAAAMHAHZlcnNpb24hPBUBAA==" + }, + { + "id": "minecraft:waxed_copper_lantern", + "groupId": 81, + "block_state_b64": "CgAAAwgAYmxvY2tfaWQ+BQAACAQAbmFtZR4AbWluZWNyYWZ0OndheGVkX2NvcHBlcl9sYW50ZXJuBAkAbmFtZV9oYXNoxDk0YWOoN+wDCgBuZXR3b3JrX2lklxTUyQoGAHN0YXRlcwEHAGhhbmdpbmcAAAMHAHZlcnNpb24hPBUBAA==" + }, + { + "id": "minecraft:waxed_exposed_copper_lantern", + "groupId": 81, + "block_state_b64": "CgAAAwgAYmxvY2tfaWQ/BQAACAQAbmFtZSYAbWluZWNyYWZ0OndheGVkX2V4cG9zZWRfY29wcGVyX2xhbnRlcm4ECQBuYW1lX2hhc2jHLDNUF9s02gMKAG5ldHdvcmtfaWSyhmhVCgYAc3RhdGVzAQcAaGFuZ2luZwAAAwcAdmVyc2lvbiE8FQEA" + }, + { + "id": "minecraft:waxed_weathered_copper_lantern", + "groupId": 81, + "block_state_b64": "CgAAAwgAYmxvY2tfaWRABQAACAQAbmFtZSgAbWluZWNyYWZ0OndheGVkX3dlYXRoZXJlZF9jb3BwZXJfbGFudGVybgQJAG5hbWVfaGFzaMblYzOPQetMAwoAbmV0d29ya19pZI9ctoUKBgBzdGF0ZXMBBwBoYW5naW5nAAADBwB2ZXJzaW9uITwVAQA=" + }, + { + "id": "minecraft:waxed_oxidized_copper_lantern", + "groupId": 81, + "block_state_b64": "CgAAAwgAYmxvY2tfaWRBBQAACAQAbmFtZScAbWluZWNyYWZ0OndheGVkX294aWRpemVkX2NvcHBlcl9sYW50ZXJuBAkAbmFtZV9oYXNoA0NWeQErxHMDCgBuZXR3b3JrX2lk15VYcgoGAHN0YXRlcwEHAGhhbmdpbmcAAAMHAHZlcnNpb24hPBUBAA==" + }, { "id": "minecraft:candle", - "groupId": 80, + "groupId": 82, "block_state_b64": "CgAAAwgAYmxvY2tfaWSbAgAACAQAbmFtZRAAbWluZWNyYWZ0OmNhbmRsZQQJAG5hbWVfaGFzaHPd+MsNdWTfAwoAbmV0d29ya19pZHsBMA0KBgBzdGF0ZXMDBwBjYW5kbGVzAAAAAAEDAGxpdAAAAwcAdmVyc2lvbiE8FQEA" }, { "id": "minecraft:white_candle", - "groupId": 80, + "groupId": 82, "block_state_b64": "CgAAAwgAYmxvY2tfaWScAgAACAQAbmFtZRYAbWluZWNyYWZ0OndoaXRlX2NhbmRsZQQJAG5hbWVfaGFzaN1EG5Q1mHiEAwoAbmV0d29ya19pZKN1mmgKBgBzdGF0ZXMDBwBjYW5kbGVzAAAAAAEDAGxpdAAAAwcAdmVyc2lvbiE8FQEA" }, { "id": "minecraft:orange_candle", - "groupId": 80, + "groupId": 82, "block_state_b64": "CgAAAwgAYmxvY2tfaWSdAgAACAQAbmFtZRcAbWluZWNyYWZ0Om9yYW5nZV9jYW5kbGUECQBuYW1lX2hhc2jySEVWHgUIHQMKAG5ldHdvcmtfaWSfVz82CgYAc3RhdGVzAwcAY2FuZGxlcwAAAAABAwBsaXQAAAMHAHZlcnNpb24hPBUBAA==" }, { "id": "minecraft:magenta_candle", - "groupId": 80, + "groupId": 82, "block_state_b64": "CgAAAwgAYmxvY2tfaWSeAgAACAQAbmFtZRgAbWluZWNyYWZ0Om1hZ2VudGFfY2FuZGxlBAkAbmFtZV9oYXNoG0u6YIOoBSEDCgBuZXR3b3JrX2lk9xGNkQoGAHN0YXRlcwMHAGNhbmRsZXMAAAAAAQMAbGl0AAADBwB2ZXJzaW9uITwVAQA=" }, { "id": "minecraft:light_blue_candle", - "groupId": 80, + "groupId": 82, "block_state_b64": "CgAAAwgAYmxvY2tfaWSfAgAACAQAbmFtZRsAbWluZWNyYWZ0OmxpZ2h0X2JsdWVfY2FuZGxlBAkAbmFtZV9oYXNocXGeK0zgrG0DCgBuZXR3b3JrX2lk2m1y8goGAHN0YXRlcwMHAGNhbmRsZXMAAAAAAQMAbGl0AAADBwB2ZXJzaW9uITwVAQA=" }, { "id": "minecraft:yellow_candle", - "groupId": 80, + "groupId": 82, "block_state_b64": "CgAAAwgAYmxvY2tfaWSgAgAACAQAbmFtZRcAbWluZWNyYWZ0OnllbGxvd19jYW5kbGUECQBuYW1lX2hhc2i00dtusU3CqQMKAG5ldHdvcmtfaWR9LTmpCgYAc3RhdGVzAwcAY2FuZGxlcwAAAAABAwBsaXQAAAMHAHZlcnNpb24hPBUBAA==" }, { "id": "minecraft:lime_candle", - "groupId": 80, + "groupId": 82, "block_state_b64": "CgAAAwgAYmxvY2tfaWShAgAACAQAbmFtZRUAbWluZWNyYWZ0OmxpbWVfY2FuZGxlBAkAbmFtZV9oYXNokcmrw5xvz7ADCgBuZXR3b3JrX2lkIAUu6QoGAHN0YXRlcwMHAGNhbmRsZXMAAAAAAQMAbGl0AAADBwB2ZXJzaW9uITwVAQA=" }, { "id": "minecraft:pink_candle", - "groupId": 80, + "groupId": 82, "block_state_b64": "CgAAAwgAYmxvY2tfaWSiAgAACAQAbmFtZRUAbWluZWNyYWZ0OnBpbmtfY2FuZGxlBAkAbmFtZV9oYXNoQJdEY4sZ0dwDCgBuZXR3b3JrX2lk23Rn5AoGAHN0YXRlcwMHAGNhbmRsZXMAAAAAAQMAbGl0AAADBwB2ZXJzaW9uITwVAQA=" }, { "id": "minecraft:gray_candle", - "groupId": 80, + "groupId": 82, "block_state_b64": "CgAAAwgAYmxvY2tfaWSjAgAACAQAbmFtZRUAbWluZWNyYWZ0OmdyYXlfY2FuZGxlBAkAbmFtZV9oYXNoS5poSo9wBDEDCgBuZXR3b3JrX2lk3trRCAoGAHN0YXRlcwMHAGNhbmRsZXMAAAAAAQMAbGl0AAADBwB2ZXJzaW9uITwVAQA=" }, { "id": "minecraft:light_gray_candle", - "groupId": 80, + "groupId": 82, "block_state_b64": "CgAAAwgAYmxvY2tfaWSkAgAACAQAbmFtZRsAbWluZWNyYWZ0OmxpZ2h0X2dyYXlfY2FuZGxlBAkAbmFtZV9oYXNo9ruTZLBNMasDCgBuZXR3b3JrX2lkb6DOegoGAHN0YXRlcwMHAGNhbmRsZXMAAAAAAQMAbGl0AAADBwB2ZXJzaW9uITwVAQA=" }, { "id": "minecraft:cyan_candle", - "groupId": 80, + "groupId": 82, "block_state_b64": "CgAAAwgAYmxvY2tfaWSlAgAACAQAbmFtZRUAbWluZWNyYWZ0OmN5YW5fY2FuZGxlBAkAbmFtZV9oYXNoc/M8PNVcjOwDCgBuZXR3b3JrX2lkZoIQOQoGAHN0YXRlcwMHAGNhbmRsZXMAAAAAAQMAbGl0AAADBwB2ZXJzaW9uITwVAQA=" }, { "id": "minecraft:purple_candle", - "groupId": 80, + "groupId": 82, "block_state_b64": "CgAAAwgAYmxvY2tfaWSmAgAACAQAbmFtZRcAbWluZWNyYWZ0OnB1cnBsZV9jYW5kbGUECQBuYW1lX2hhc2jaI3xUW0/myQMKAG5ldHdvcmtfaWSnLI2BCgYAc3RhdGVzAwcAY2FuZGxlcwAAAAABAwBsaXQAAAMHAHZlcnNpb24hPBUBAA==" }, { "id": "minecraft:blue_candle", - "groupId": 80, + "groupId": 82, "block_state_b64": "CgAAAwgAYmxvY2tfaWSnAgAACAQAbmFtZRUAbWluZWNyYWZ0OmJsdWVfY2FuZGxlBAkAbmFtZV9oYXNoAASSPW6TgQADCgBuZXR3b3JrX2lkrxrjQAoGAHN0YXRlcwMHAGNhbmRsZXMAAAAAAQMAbGl0AAADBwB2ZXJzaW9uITwVAQA=" }, { "id": "minecraft:brown_candle", - "groupId": 80, + "groupId": 82, "block_state_b64": "CgAAAwgAYmxvY2tfaWSoAgAACAQAbmFtZRYAbWluZWNyYWZ0OmJyb3duX2NhbmRsZQQJAG5hbWVfaGFzaDia0l6s1+WYAwoAbmV0d29ya19pZKSkBXYKBgBzdGF0ZXMDBwBjYW5kbGVzAAAAAAEDAGxpdAAAAwcAdmVyc2lvbiE8FQEA" }, { "id": "minecraft:green_candle", - "groupId": 80, + "groupId": 82, "block_state_b64": "CgAAAwgAYmxvY2tfaWSpAgAACAQAbmFtZRYAbWluZWNyYWZ0OmdyZWVuX2NhbmRsZQQJAG5hbWVfaGFzaLeFPO1l+fIoAwoAbmV0d29ya19pZBkznDsKBgBzdGF0ZXMDBwBjYW5kbGVzAAAAAAEDAGxpdAAAAwcAdmVyc2lvbiE8FQEA" }, { "id": "minecraft:red_candle", - "groupId": 80, + "groupId": 82, "block_state_b64": "CgAAAwgAYmxvY2tfaWSqAgAACAQAbmFtZRQAbWluZWNyYWZ0OnJlZF9jYW5kbGUECQBuYW1lX2hhc2jjAQpGf59ZdwMKAG5ldHdvcmtfaWRbb88GCgYAc3RhdGVzAwcAY2FuZGxlcwAAAAABAwBsaXQAAAMHAHZlcnNpb24hPBUBAA==" }, { "id": "minecraft:black_candle", - "groupId": 80, + "groupId": 82, "block_state_b64": "CgAAAwgAYmxvY2tfaWSrAgAACAQAbmFtZRYAbWluZWNyYWZ0OmJsYWNrX2NhbmRsZQQJAG5hbWVfaGFzaB+wRDpOqREKAwoAbmV0d29ya19pZNnOnuEKBgBzdGF0ZXMDBwBjYW5kbGVzAAAAAAEDAGxpdAAAAwcAdmVyc2lvbiE8FQEA" }, { "id": "minecraft:crafting_table", - "groupId": 81, + "groupId": 83, "block_state_b64": "CgAAAwgAYmxvY2tfaWQ6AAAACAQAbmFtZRgAbWluZWNyYWZ0OmNyYWZ0aW5nX3RhYmxlBAkAbmFtZV9oYXNoe76VAmjvbpYDCgBuZXR3b3JrX2lkwCxwaAoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" }, { "id": "minecraft:cartography_table", - "groupId": 81, + "groupId": 83, "block_state_b64": "CgAAAwgAYmxvY2tfaWTHAQAACAQAbmFtZRsAbWluZWNyYWZ0OmNhcnRvZ3JhcGh5X3RhYmxlBAkAbmFtZV9oYXNomaWiiD/znP8DCgBuZXR3b3JrX2lkI6FzMwoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" }, { "id": "minecraft:fletching_table", - "groupId": 81, + "groupId": 83, "block_state_b64": "CgAAAwgAYmxvY2tfaWTIAQAACAQAbmFtZRkAbWluZWNyYWZ0OmZsZXRjaGluZ190YWJsZQQJAG5hbWVfaGFzaPFibh8unKyUAwoAbmV0d29ya19pZJ2mW0oKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" }, { "id": "minecraft:smithing_table", - "groupId": 81, + "groupId": 83, "block_state_b64": "CgAAAwgAYmxvY2tfaWTJAQAACAQAbmFtZRgAbWluZWNyYWZ0OnNtaXRoaW5nX3RhYmxlBAkAbmFtZV9oYXNo4tFES2xOXEYDCgBuZXR3b3JrX2lkXWMBzQoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" }, { "id": "minecraft:beehive", - "groupId": 81, + "groupId": 83, "block_state_b64": "CgAAAwgAYmxvY2tfaWTaAQAACAQAbmFtZREAbWluZWNyYWZ0OmJlZWhpdmUECQBuYW1lX2hhc2hCcqn12UbNpwMKAG5ldHdvcmtfaWR/idcaCgYAc3RhdGVzAwkAZGlyZWN0aW9uAAAAAAMLAGhvbmV5X2xldmVsAAAAAAADBwB2ZXJzaW9uITwVAQA=" }, { "id": "minecraft:suspicious_sand", - "groupId": 81, + "groupId": 83, "block_state_b64": "CgAAAwgAYmxvY2tfaWQQAwAACAQAbmFtZRkAbWluZWNyYWZ0OnN1c3BpY2lvdXNfc2FuZAQJAG5hbWVfaGFzaL67QsuvLP00AwoAbmV0d29ya19pZKnkaIAKBgBzdGF0ZXMDEABicnVzaGVkX3Byb2dyZXNzAAAAAAEHAGhhbmdpbmcBAAMHAHZlcnNpb24hPBUBAA==" }, { "id": "minecraft:suspicious_gravel", - "groupId": 81, + "groupId": 83, "block_state_b64": "CgAAAwgAYmxvY2tfaWQ8AwAACAQAbmFtZRsAbWluZWNyYWZ0OnN1c3BpY2lvdXNfZ3JhdmVsBAkAbmFtZV9oYXNoJSVbGNk7C3oDCgBuZXR3b3JrX2lkvIEJAAoGAHN0YXRlcwMQAGJydXNoZWRfcHJvZ3Jlc3MAAAAAAQcAaGFuZ2luZwEAAwcAdmVyc2lvbiE8FQEA" }, { "id": "minecraft:campfire", - "groupId": 81 + "groupId": 83 }, { "id": "minecraft:soul_campfire", - "groupId": 81 + "groupId": 83 }, { "id": "minecraft:furnace", - "groupId": 81, + "groupId": 83, "block_state_b64": "CgAAAwgAYmxvY2tfaWQ9AAAACAQAbmFtZREAbWluZWNyYWZ0OmZ1cm5hY2UECQBuYW1lX2hhc2ioOQrludYY8wMKAG5ldHdvcmtfaWRZxnDOCgYAc3RhdGVzCBwAbWluZWNyYWZ0OmNhcmRpbmFsX2RpcmVjdGlvbgUAc291dGgAAwcAdmVyc2lvbiE8FQEA" }, { "id": "minecraft:blast_furnace", - "groupId": 81, + "groupId": 83, "block_state_b64": "CgAAAwgAYmxvY2tfaWTDAQAACAQAbmFtZRcAbWluZWNyYWZ0OmJsYXN0X2Z1cm5hY2UECQBuYW1lX2hhc2ivDbnjkpGm5QMKAG5ldHdvcmtfaWTcEbV/CgYAc3RhdGVzCBwAbWluZWNyYWZ0OmNhcmRpbmFsX2RpcmVjdGlvbgUAc291dGgAAwcAdmVyc2lvbiE8FQEA" }, { "id": "minecraft:smoker", - "groupId": 81, + "groupId": 83, "block_state_b64": "CgAAAwgAYmxvY2tfaWTFAQAACAQAbmFtZRAAbWluZWNyYWZ0OnNtb2tlcgQJAG5hbWVfaGFzaJd1rDMkRWomAwoAbmV0d29ya19pZGWswMwKBgBzdGF0ZXMIHABtaW5lY3JhZnQ6Y2FyZGluYWxfZGlyZWN0aW9uBQBzb3V0aAADBwB2ZXJzaW9uITwVAQA=" }, { "id": "minecraft:respawn_anchor", - "groupId": 81, + "groupId": 83, "block_state_b64": "CgAAAwgAYmxvY2tfaWQPAgAACAQAbmFtZRgAbWluZWNyYWZ0OnJlc3Bhd25fYW5jaG9yBAkAbmFtZV9oYXNoZOdcjW05qigDCgBuZXR3b3JrX2lkmhMcaQoGAHN0YXRlcwMVAHJlc3Bhd25fYW5jaG9yX2NoYXJnZQAAAAAAAwcAdmVyc2lvbiE8FQEA" }, { "id": "minecraft:brewing_stand", - "groupId": 81 + "groupId": 83 }, { "id": "minecraft:anvil", - "groupId": 82, + "groupId": 84, "block_state_b64": "CgAAAwgAYmxvY2tfaWSRAAAACAQAbmFtZQ8AbWluZWNyYWZ0OmFudmlsBAkAbmFtZV9oYXNoNqB3fgcUCbwDCgBuZXR3b3JrX2lkqXzNjwoGAHN0YXRlcwgcAG1pbmVjcmFmdDpjYXJkaW5hbF9kaXJlY3Rpb24FAHNvdXRoAAMHAHZlcnNpb24hPBUBAA==" }, { "id": "minecraft:chipped_anvil", - "groupId": 82, + "groupId": 84, "block_state_b64": "CgAAAwgAYmxvY2tfaWS+BAAACAQAbmFtZRcAbWluZWNyYWZ0OmNoaXBwZWRfYW52aWwECQBuYW1lX2hhc2ge+QY3vlS/eQMKAG5ldHdvcmtfaWRJ15iUCgYAc3RhdGVzCBwAbWluZWNyYWZ0OmNhcmRpbmFsX2RpcmVjdGlvbgUAc291dGgAAwcAdmVyc2lvbiE8FQEA" }, { "id": "minecraft:damaged_anvil", - "groupId": 82, + "groupId": 84, "block_state_b64": "CgAAAwgAYmxvY2tfaWS/BAAACAQAbmFtZRcAbWluZWNyYWZ0OmRhbWFnZWRfYW52aWwECQBuYW1lX2hhc2imJ12Be2V8+AMKAG5ldHdvcmtfaWRh5SHkCgYAc3RhdGVzCBwAbWluZWNyYWZ0OmNhcmRpbmFsX2RpcmVjdGlvbgUAc291dGgAAwcAdmVyc2lvbiE8FQEA" }, { "id": "minecraft:grindstone", - "groupId": 83, + "groupId": 85, "block_state_b64": "CgAAAwgAYmxvY2tfaWTCAQAACAQAbmFtZRQAbWluZWNyYWZ0OmdyaW5kc3RvbmUECQBuYW1lX2hhc2id56zc0nk99wMKAG5ldHdvcmtfaWS4Es07CgYAc3RhdGVzCAoAYXR0YWNobWVudAgAc3RhbmRpbmcDCQBkaXJlY3Rpb24AAAAAAAMHAHZlcnNpb24hPBUBAA==" }, { "id": "minecraft:enchanting_table", - "groupId": 83, + "groupId": 85, "block_state_b64": "CgAAAwgAYmxvY2tfaWR0AAAACAQAbmFtZRoAbWluZWNyYWZ0OmVuY2hhbnRpbmdfdGFibGUECQBuYW1lX2hhc2jgIx24VLvMvwMKAG5ldHdvcmtfaWRliFFJCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" }, { "id": "minecraft:bookshelf", - "groupId": 83, + "groupId": 85, "block_state_b64": "CgAAAwgAYmxvY2tfaWQvAAAACAQAbmFtZRMAbWluZWNyYWZ0OmJvb2tzaGVsZgQJAG5hbWVfaGFzaDU04DrgJCS9AwoAbmV0d29ya19pZBcWwIwKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" }, { "id": "minecraft:chiseled_bookshelf", - "groupId": 83, + "groupId": 85, "block_state_b64": "CgAAAwgAYmxvY2tfaWQNAwAACAQAbmFtZRwAbWluZWNyYWZ0OmNoaXNlbGVkX2Jvb2tzaGVsZgQJAG5hbWVfaGFzaNXDBnsIsywYAwoAbmV0d29ya19pZIprt5IKBgBzdGF0ZXMDDABib29rc19zdG9yZWQAAAAAAwkAZGlyZWN0aW9uAAAAAAADBwB2ZXJzaW9uITwVAQA=" }, + { + "id": "minecraft:oak_shelf", + "groupId": 86, + "block_state_b64": "CgAAAwgAYmxvY2tfaWQWBQAACAQAbmFtZRMAbWluZWNyYWZ0Om9ha19zaGVsZgQJAG5hbWVfaGFzaOapDSQlOmFnAwoAbmV0d29ya19pZN5LVOcKBgBzdGF0ZXMIHABtaW5lY3JhZnQ6Y2FyZGluYWxfZGlyZWN0aW9uBQBzb3V0aAELAHBvd2VyZWRfYml0AAMSAHBvd2VyZWRfc2hlbGZfdHlwZQAAAAAAAwcAdmVyc2lvbiE8FQEA" + }, + { + "id": "minecraft:spruce_shelf", + "groupId": 86, + "block_state_b64": "CgAAAwgAYmxvY2tfaWQXBQAACAQAbmFtZRYAbWluZWNyYWZ0OnNwcnVjZV9zaGVsZgQJAG5hbWVfaGFzaO8HrAH2q9g6AwoAbmV0d29ya19pZJwg4BcKBgBzdGF0ZXMIHABtaW5lY3JhZnQ6Y2FyZGluYWxfZGlyZWN0aW9uBQBzb3V0aAELAHBvd2VyZWRfYml0AAMSAHBvd2VyZWRfc2hlbGZfdHlwZQAAAAAAAwcAdmVyc2lvbiE8FQEA" + }, + { + "id": "minecraft:birch_shelf", + "groupId": 86, + "block_state_b64": "CgAAAwgAYmxvY2tfaWQYBQAACAQAbmFtZRUAbWluZWNyYWZ0OmJpcmNoX3NoZWxmBAkAbmFtZV9oYXNoqxpNuc2l1AMDCgBuZXR3b3JrX2lkDWd7/goGAHN0YXRlcwgcAG1pbmVjcmFmdDpjYXJkaW5hbF9kaXJlY3Rpb24FAHNvdXRoAQsAcG93ZXJlZF9iaXQAAxIAcG93ZXJlZF9zaGVsZl90eXBlAAAAAAADBwB2ZXJzaW9uITwVAQA=" + }, + { + "id": "minecraft:jungle_shelf", + "groupId": 86, + "block_state_b64": "CgAAAwgAYmxvY2tfaWQZBQAACAQAbmFtZRYAbWluZWNyYWZ0Omp1bmdsZV9zaGVsZgQJAG5hbWVfaGFzaELQVcIgxSdOAwoAbmV0d29ya19pZEnBopgKBgBzdGF0ZXMIHABtaW5lY3JhZnQ6Y2FyZGluYWxfZGlyZWN0aW9uBQBzb3V0aAELAHBvd2VyZWRfYml0AAMSAHBvd2VyZWRfc2hlbGZfdHlwZQAAAAAAAwcAdmVyc2lvbiE8FQEA" + }, + { + "id": "minecraft:acacia_shelf", + "groupId": 86, + "block_state_b64": "CgAAAwgAYmxvY2tfaWQaBQAACAQAbmFtZRYAbWluZWNyYWZ0OmFjYWNpYV9zaGVsZgQJAG5hbWVfaGFzaCvf0NHdudAFAwoAbmV0d29ya19pZOSFpRoKBgBzdGF0ZXMIHABtaW5lY3JhZnQ6Y2FyZGluYWxfZGlyZWN0aW9uBQBzb3V0aAELAHBvd2VyZWRfYml0AAMSAHBvd2VyZWRfc2hlbGZfdHlwZQAAAAAAAwcAdmVyc2lvbiE8FQEA" + }, + { + "id": "minecraft:dark_oak_shelf", + "groupId": 86, + "block_state_b64": "CgAAAwgAYmxvY2tfaWQbBQAACAQAbmFtZRgAbWluZWNyYWZ0OmRhcmtfb2FrX3NoZWxmBAkAbmFtZV9oYXNoe5qEi8SyCIQDCgBuZXR3b3JrX2lkfrWNMAoGAHN0YXRlcwgcAG1pbmVjcmFmdDpjYXJkaW5hbF9kaXJlY3Rpb24FAHNvdXRoAQsAcG93ZXJlZF9iaXQAAxIAcG93ZXJlZF9zaGVsZl90eXBlAAAAAAADBwB2ZXJzaW9uITwVAQA=" + }, + { + "id": "minecraft:mangrove_shelf", + "groupId": 86, + "block_state_b64": "CgAAAwgAYmxvY2tfaWQcBQAACAQAbmFtZRgAbWluZWNyYWZ0Om1hbmdyb3ZlX3NoZWxmBAkAbmFtZV9oYXNorPWU0z4F+T4DCgBuZXR3b3JrX2lkPS87EAoGAHN0YXRlcwgcAG1pbmVjcmFmdDpjYXJkaW5hbF9kaXJlY3Rpb24FAHNvdXRoAQsAcG93ZXJlZF9iaXQAAxIAcG93ZXJlZF9zaGVsZl90eXBlAAAAAAADBwB2ZXJzaW9uITwVAQA=" + }, + { + "id": "minecraft:cherry_shelf", + "groupId": 86, + "block_state_b64": "CgAAAwgAYmxvY2tfaWQdBQAACAQAbmFtZRYAbWluZWNyYWZ0OmNoZXJyeV9zaGVsZgQJAG5hbWVfaGFzaA5Dj/w+ocvOAwoAbmV0d29ya19pZBWBgRcKBgBzdGF0ZXMIHABtaW5lY3JhZnQ6Y2FyZGluYWxfZGlyZWN0aW9uBQBzb3V0aAELAHBvd2VyZWRfYml0AAMSAHBvd2VyZWRfc2hlbGZfdHlwZQAAAAAAAwcAdmVyc2lvbiE8FQEA" + }, + { + "id": "minecraft:pale_oak_shelf", + "groupId": 86, + "block_state_b64": "CgAAAwgAYmxvY2tfaWQeBQAACAQAbmFtZRgAbWluZWNyYWZ0OnBhbGVfb2FrX3NoZWxmBAkAbmFtZV9oYXNo91/PdKeJ9ZYDCgBuZXR3b3JrX2lkzqgrUwoGAHN0YXRlcwgcAG1pbmVjcmFmdDpjYXJkaW5hbF9kaXJlY3Rpb24FAHNvdXRoAQsAcG93ZXJlZF9iaXQAAxIAcG93ZXJlZF9zaGVsZl90eXBlAAAAAAADBwB2ZXJzaW9uITwVAQA=" + }, + { + "id": "minecraft:bamboo_shelf", + "groupId": 86, + "block_state_b64": "CgAAAwgAYmxvY2tfaWQfBQAACAQAbmFtZRYAbWluZWNyYWZ0OmJhbWJvb19zaGVsZgQJAG5hbWVfaGFzaEGHTQtsU1tbAwoAbmV0d29ya19pZGYUJ2QKBgBzdGF0ZXMIHABtaW5lY3JhZnQ6Y2FyZGluYWxfZGlyZWN0aW9uBQBzb3V0aAELAHBvd2VyZWRfYml0AAMSAHBvd2VyZWRfc2hlbGZfdHlwZQAAAAAAAwcAdmVyc2lvbiE8FQEA" + }, + { + "id": "minecraft:crimson_shelf", + "groupId": 86, + "block_state_b64": "CgAAAwgAYmxvY2tfaWQgBQAACAQAbmFtZRcAbWluZWNyYWZ0OmNyaW1zb25fc2hlbGYECQBuYW1lX2hhc2hm1pb0OEPfygMKAG5ldHdvcmtfaWTyiJtSCgYAc3RhdGVzCBwAbWluZWNyYWZ0OmNhcmRpbmFsX2RpcmVjdGlvbgUAc291dGgBCwBwb3dlcmVkX2JpdAADEgBwb3dlcmVkX3NoZWxmX3R5cGUAAAAAAAMHAHZlcnNpb24hPBUBAA==" + }, + { + "id": "minecraft:warped_shelf", + "groupId": 86, + "block_state_b64": "CgAAAwgAYmxvY2tfaWQhBQAACAQAbmFtZRYAbWluZWNyYWZ0OndhcnBlZF9zaGVsZgQJAG5hbWVfaGFzaMgVxrHUn2A/AwoAbmV0d29ya19pZFsyBKoKBgBzdGF0ZXMIHABtaW5lY3JhZnQ6Y2FyZGluYWxfZGlyZWN0aW9uBQBzb3V0aAELAHBvd2VyZWRfYml0AAMSAHBvd2VyZWRfc2hlbGZfdHlwZQAAAAAAAwcAdmVyc2lvbiE8FQEA" + }, { "id": "minecraft:lectern", - "groupId": 83, + "groupId": 87, "block_state_b64": "CgAAAwgAYmxvY2tfaWTBAQAACAQAbmFtZREAbWluZWNyYWZ0OmxlY3Rlcm4ECQBuYW1lX2hhc2j5Z4Mmi/1QxAMKAG5ldHdvcmtfaWR4JfDHCgYAc3RhdGVzCBwAbWluZWNyYWZ0OmNhcmRpbmFsX2RpcmVjdGlvbgUAc291dGgBCwBwb3dlcmVkX2JpdAAAAwcAdmVyc2lvbiE8FQEA" }, { "id": "minecraft:cauldron", - "groupId": 83 + "groupId": 87 }, { "id": "minecraft:composter", - "groupId": 83, + "groupId": 87, "block_state_b64": "CgAAAwgAYmxvY2tfaWTUAQAACAQAbmFtZRMAbWluZWNyYWZ0OmNvbXBvc3RlcgQJAG5hbWVfaGFzaPAADHptzeWJAwoAbmV0d29ya19pZHIL6i4KBgBzdGF0ZXMDFABjb21wb3N0ZXJfZmlsbF9sZXZlbAAAAAAAAwcAdmVyc2lvbiE8FQEA" }, { "id": "minecraft:chest", - "groupId": 84, + "groupId": 88, "block_state_b64": "CgAAAwgAYmxvY2tfaWQ2AAAACAQAbmFtZQ8AbWluZWNyYWZ0OmNoZXN0BAkAbmFtZV9oYXNog9ozMxlcA88DCgBuZXR3b3JrX2lkDkOFvAoGAHN0YXRlcwgcAG1pbmVjcmFmdDpjYXJkaW5hbF9kaXJlY3Rpb24FAG5vcnRoAAMHAHZlcnNpb24hPBUBAA==" }, { "id": "minecraft:trapped_chest", - "groupId": 84, + "groupId": 88, "block_state_b64": "CgAAAwgAYmxvY2tfaWSSAAAACAQAbmFtZRcAbWluZWNyYWZ0OnRyYXBwZWRfY2hlc3QECQBuYW1lX2hhc2g2qpF9stsEjgMKAG5ldHdvcmtfaWTjJWYxCgYAc3RhdGVzCBwAbWluZWNyYWZ0OmNhcmRpbmFsX2RpcmVjdGlvbgUAbm9ydGgAAwcAdmVyc2lvbiE8FQEA" }, { "id": "minecraft:ender_chest", - "groupId": 84, + "groupId": 88, "block_state_b64": "CgAAAwgAYmxvY2tfaWSCAAAACAQAbmFtZRUAbWluZWNyYWZ0OmVuZGVyX2NoZXN0BAkAbmFtZV9oYXNohEZzOFdg0WUDCgBuZXR3b3JrX2lkx4jiSQoGAHN0YXRlcwgcAG1pbmVjcmFmdDpjYXJkaW5hbF9kaXJlY3Rpb24FAG5vcnRoAAMHAHZlcnNpb24hPBUBAA==" }, + { + "id": "minecraft:copper_chest", + "groupId": 88, + "block_state_b64": "CgAAAwgAYmxvY2tfaWQGBQAACAQAbmFtZRYAbWluZWNyYWZ0OmNvcHBlcl9jaGVzdAQJAG5hbWVfaGFzaBF0DaB3U7pIAwoAbmV0d29ya19pZM/IeuwKBgBzdGF0ZXMIHABtaW5lY3JhZnQ6Y2FyZGluYWxfZGlyZWN0aW9uBQBub3J0aAADBwB2ZXJzaW9uITwVAQA=" + }, + { + "id": "minecraft:exposed_copper_chest", + "groupId": 88, + "block_state_b64": "CgAAAwgAYmxvY2tfaWQHBQAACAQAbmFtZR4AbWluZWNyYWZ0OmV4cG9zZWRfY29wcGVyX2NoZXN0BAkAbmFtZV9oYXNoyiiVJNk/hIkDCgBuZXR3b3JrX2lkeBrbOgoGAHN0YXRlcwgcAG1pbmVjcmFmdDpjYXJkaW5hbF9kaXJlY3Rpb24FAG5vcnRoAAMHAHZlcnNpb24hPBUBAA==" + }, + { + "id": "minecraft:weathered_copper_chest", + "groupId": 88, + "block_state_b64": "CgAAAwgAYmxvY2tfaWQIBQAACAQAbmFtZSAAbWluZWNyYWZ0OndlYXRoZXJlZF9jb3BwZXJfY2hlc3QECQBuYW1lX2hhc2jz4KGBvBBSjgMKAG5ldHdvcmtfaWRz5KnVCgYAc3RhdGVzCBwAbWluZWNyYWZ0OmNhcmRpbmFsX2RpcmVjdGlvbgUAbm9ydGgAAwcAdmVyc2lvbiE8FQEA" + }, + { + "id": "minecraft:oxidized_copper_chest", + "groupId": 88, + "block_state_b64": "CgAAAwgAYmxvY2tfaWQJBQAACAQAbmFtZR8AbWluZWNyYWZ0Om94aWRpemVkX2NvcHBlcl9jaGVzdAQJAG5hbWVfaGFzaEo1yuDJoau9AwoAbmV0d29ya19pZIciU6QKBgBzdGF0ZXMIHABtaW5lY3JhZnQ6Y2FyZGluYWxfZGlyZWN0aW9uBQBub3J0aAADBwB2ZXJzaW9uITwVAQA=" + }, + { + "id": "minecraft:waxed_copper_chest", + "groupId": 88, + "block_state_b64": "CgAAAwgAYmxvY2tfaWQKBQAACAQAbmFtZRwAbWluZWNyYWZ0OndheGVkX2NvcHBlcl9jaGVzdAQJAG5hbWVfaGFzaHvN+hZViZZbAwoAbmV0d29ya19pZB/vQZAKBgBzdGF0ZXMIHABtaW5lY3JhZnQ6Y2FyZGluYWxfZGlyZWN0aW9uBQBub3J0aAADBwB2ZXJzaW9uITwVAQA=" + }, + { + "id": "minecraft:waxed_exposed_copper_chest", + "groupId": 88, + "block_state_b64": "CgAAAwgAYmxvY2tfaWQLBQAACAQAbmFtZSQAbWluZWNyYWZ0OndheGVkX2V4cG9zZWRfY29wcGVyX2NoZXN0BAkAbmFtZV9oYXNo2KoQqMQJaw0DCgBuZXR3b3JrX2lkCL4n4goGAHN0YXRlcwgcAG1pbmVjcmFmdDpjYXJkaW5hbF9kaXJlY3Rpb24FAG5vcnRoAAMHAHZlcnNpb24hPBUBAA==" + }, + { + "id": "minecraft:waxed_weathered_copper_chest", + "groupId": 88, + "block_state_b64": "CgAAAwgAYmxvY2tfaWQMBQAACAQAbmFtZSYAbWluZWNyYWZ0OndheGVkX3dlYXRoZXJlZF9jb3BwZXJfY2hlc3QECQBuYW1lX2hhc2ipFjVS9XQwAQMKAG5ldHdvcmtfaWS7III7CgYAc3RhdGVzCBwAbWluZWNyYWZ0OmNhcmRpbmFsX2RpcmVjdGlvbgUAbm9ydGgAAwcAdmVyc2lvbiE8FQEA" + }, + { + "id": "minecraft:waxed_oxidized_copper_chest", + "groupId": 88, + "block_state_b64": "CgAAAwgAYmxvY2tfaWQNBQAACAQAbmFtZSUAbWluZWNyYWZ0OndheGVkX294aWRpemVkX2NvcHBlcl9jaGVzdAQJAG5hbWVfaGFzaOxD+z7Tv8hVAwoAbmV0d29ya19pZMeBpUAKBgBzdGF0ZXMIHABtaW5lY3JhZnQ6Y2FyZGluYWxfZGlyZWN0aW9uBQBub3J0aAADBwB2ZXJzaW9uITwVAQA=" + }, { "id": "minecraft:barrel", - "groupId": 85, + "groupId": 89, "block_state_b64": "CgAAAwgAYmxvY2tfaWTKAQAACAQAbmFtZRAAbWluZWNyYWZ0OmJhcnJlbAQJAG5hbWVfaGFzaHDkRPGymiRqAwoAbmV0d29ya19pZPnxzgsKBgBzdGF0ZXMDEABmYWNpbmdfZGlyZWN0aW9uAAAAAAEIAG9wZW5fYml0AAADBwB2ZXJzaW9uITwVAQA=" }, { "id": "minecraft:undyed_shulker_box", - "groupId": 86, + "groupId": 90, "block_state_b64": "CgAAAwgAYmxvY2tfaWTNAAAACAQAbmFtZRwAbWluZWNyYWZ0OnVuZHllZF9zaHVsa2VyX2JveAQJAG5hbWVfaGFzaOC9mypm/MlBAwoAbmV0d29ya19pZJ8rxp0KBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" }, { "id": "minecraft:white_shulker_box", - "groupId": 86, + "groupId": 90, "block_state_b64": "CgAAAwgAYmxvY2tfaWTaAAAACAQAbmFtZRsAbWluZWNyYWZ0OndoaXRlX3NodWxrZXJfYm94BAkAbmFtZV9oYXNosK79m1rPUBwDCgBuZXR3b3JrX2lkjrET6goGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" }, { "id": "minecraft:light_gray_shulker_box", - "groupId": 86, + "groupId": 90, "block_state_b64": "CgAAAwgAYmxvY2tfaWRrAwAACAQAbmFtZSAAbWluZWNyYWZ0OmxpZ2h0X2dyYXlfc2h1bGtlcl9ib3gECQBuYW1lX2hhc2iBe5zq7PxHmgMKAG5ldHdvcmtfaWSCVJv0CgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" }, { "id": "minecraft:gray_shulker_box", - "groupId": 86, + "groupId": 90, "block_state_b64": "CgAAAwgAYmxvY2tfaWRqAwAACAQAbmFtZRoAbWluZWNyYWZ0OmdyYXlfc2h1bGtlcl9ib3gECQBuYW1lX2hhc2ga2s8ctjHUhgMKAG5ldHdvcmtfaWS3WMsWCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" }, { "id": "minecraft:black_shulker_box", - "groupId": 86, + "groupId": 90, "block_state_b64": "CgAAAwgAYmxvY2tfaWRyAwAACAQAbmFtZRsAbWluZWNyYWZ0OmJsYWNrX3NodWxrZXJfYm94BAkAbmFtZV9oYXNoPm03OZphrp8DCgBuZXR3b3JrX2lkXHztNAoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" }, { "id": "minecraft:brown_shulker_box", - "groupId": 86, + "groupId": 90, "block_state_b64": "CgAAAwgAYmxvY2tfaWRvAwAACAQAbmFtZRsAbWluZWNyYWZ0OmJyb3duX3NodWxrZXJfYm94BAkAbmFtZV9oYXNoT3DD6qAL9cADCgBuZXR3b3JrX2lkaXxpYQoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" }, { "id": "minecraft:red_shulker_box", - "groupId": 86, + "groupId": 90, "block_state_b64": "CgAAAwgAYmxvY2tfaWRxAwAACAQAbmFtZRkAbWluZWNyYWZ0OnJlZF9zaHVsa2VyX2JveAQJAG5hbWVfaGFzaMIlKSCzqSZoAwoAbmV0d29ya19pZNrf+icKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" }, { "id": "minecraft:orange_shulker_box", - "groupId": 86, + "groupId": 90, "block_state_b64": "CgAAAwgAYmxvY2tfaWRkAwAACAQAbmFtZRwAbWluZWNyYWZ0Om9yYW5nZV9zaHVsa2VyX2JveAQJAG5hbWVfaGFzaG2MAXU67wGrAwoAbmV0d29ya19pZGoO05gKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" }, { "id": "minecraft:yellow_shulker_box", - "groupId": 86, + "groupId": 90, "block_state_b64": "CgAAAwgAYmxvY2tfaWRnAwAACAQAbmFtZRwAbWluZWNyYWZ0OnllbGxvd19zaHVsa2VyX2JveAQJAG5hbWVfaGFzaIsLwQHYjcIEAwoAbmV0d29ya19pZBCBSiYKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" }, { "id": "minecraft:lime_shulker_box", - "groupId": 86, + "groupId": 90, "block_state_b64": "CgAAAwgAYmxvY2tfaWRoAwAACAQAbmFtZRoAbWluZWNyYWZ0OmxpbWVfc2h1bGtlcl9ib3gECQBuYW1lX2hhc2hUwBkg+faUGAMKAG5ldHdvcmtfaWRJeKqqCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" }, { "id": "minecraft:green_shulker_box", - "groupId": 86, + "groupId": 90, "block_state_b64": "CgAAAwgAYmxvY2tfaWRwAwAACAQAbmFtZRsAbWluZWNyYWZ0OmdyZWVuX3NodWxrZXJfYm94BAkAbmFtZV9oYXNoZgUeT3LupLUDCgBuZXR3b3JrX2lkzJiohQoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" }, { "id": "minecraft:cyan_shulker_box", - "groupId": 86, + "groupId": 90, "block_state_b64": "CgAAAwgAYmxvY2tfaWRsAwAACAQAbmFtZRoAbWluZWNyYWZ0OmN5YW5fc2h1bGtlcl9ib3gECQBuYW1lX2hhc2gSfbjteXg5yAMKAG5ldHdvcmtfaWTHeliECgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" }, { "id": "minecraft:light_blue_shulker_box", - "groupId": 86, + "groupId": 90, "block_state_b64": "CgAAAwgAYmxvY2tfaWRmAwAACAQAbmFtZSAAbWluZWNyYWZ0OmxpZ2h0X2JsdWVfc2h1bGtlcl9ib3gECQBuYW1lX2hhc2h0VFCX0qsRxQMKAG5ldHdvcmtfaWQXD8U0CgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" }, { "id": "minecraft:blue_shulker_box", - "groupId": 86, + "groupId": 90, "block_state_b64": "CgAAAwgAYmxvY2tfaWRuAwAACAQAbmFtZRoAbWluZWNyYWZ0OmJsdWVfc2h1bGtlcl9ib3gECQBuYW1lX2hhc2hn9gS0XIe6rAMKAG5ldHdvcmtfaWTO4PJaCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" }, { "id": "minecraft:purple_shulker_box", - "groupId": 86, + "groupId": 90, "block_state_b64": "CgAAAwgAYmxvY2tfaWRtAwAACAQAbmFtZRwAbWluZWNyYWZ0OnB1cnBsZV9zaHVsa2VyX2JveAQJAG5hbWVfaGFzaEV/lkNPxRDdAwoAbmV0d29ya19pZFK25GAKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" }, { "id": "minecraft:magenta_shulker_box", - "groupId": 86, + "groupId": 90, "block_state_b64": "CgAAAwgAYmxvY2tfaWRlAwAACAQAbmFtZR0AbWluZWNyYWZ0Om1hZ2VudGFfc2h1bGtlcl9ib3gECQBuYW1lX2hhc2iqWM7IJHxcFgMKAG5ldHdvcmtfaWTyyudTCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" }, { "id": "minecraft:pink_shulker_box", - "groupId": 86, + "groupId": 90, "block_state_b64": "CgAAAwgAYmxvY2tfaWRpAwAACAQAbmFtZRoAbWluZWNyYWZ0OnBpbmtfc2h1bGtlcl9ib3gECQBuYW1lX2hhc2in1tkJ1GNcZgMKAG5ldHdvcmtfaWQOEGXjCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" }, { "id": "minecraft:armor_stand", - "groupId": 87 + "groupId": 91 + }, + { + "id": "minecraft:copper_golem_statue", + "groupId": 92, + "block_state_b64": "CgAAAwgAYmxvY2tfaWQOBQAACAQAbmFtZR0AbWluZWNyYWZ0OmNvcHBlcl9nb2xlbV9zdGF0dWUECQBuYW1lX2hhc2itI0fsCGdZZAMKAG5ldHdvcmtfaWQklRnDCgYAc3RhdGVzCBwAbWluZWNyYWZ0OmNhcmRpbmFsX2RpcmVjdGlvbgUAc291dGgAAwcAdmVyc2lvbiE8FQEA" + }, + { + "id": "minecraft:exposed_copper_golem_statue", + "groupId": 92, + "block_state_b64": "CgAAAwgAYmxvY2tfaWQPBQAACAQAbmFtZSUAbWluZWNyYWZ0OmV4cG9zZWRfY29wcGVyX2dvbGVtX3N0YXR1ZQQJAG5hbWVfaGFzaOBQpsn+/6LgAwoAbmV0d29ya19pZHmplEQKBgBzdGF0ZXMIHABtaW5lY3JhZnQ6Y2FyZGluYWxfZGlyZWN0aW9uBQBzb3V0aAADBwB2ZXJzaW9uITwVAQA=" + }, + { + "id": "minecraft:weathered_copper_golem_statue", + "groupId": 92, + "block_state_b64": "CgAAAwgAYmxvY2tfaWQQBQAACAQAbmFtZScAbWluZWNyYWZ0OndlYXRoZXJlZF9jb3BwZXJfZ29sZW1fc3RhdHVlBAkAbmFtZV9oYXNoE3VHqfbpTKADCgBuZXR3b3JrX2lkyHOcpAoGAHN0YXRlcwgcAG1pbmVjcmFmdDpjYXJkaW5hbF9kaXJlY3Rpb24FAHNvdXRoAAMHAHZlcnNpb24hPBUBAA==" + }, + { + "id": "minecraft:oxidized_copper_golem_statue", + "groupId": 92, + "block_state_b64": "CgAAAwgAYmxvY2tfaWQRBQAACAQAbmFtZSYAbWluZWNyYWZ0Om94aWRpemVkX2NvcHBlcl9nb2xlbV9zdGF0dWUECQBuYW1lX2hhc2hgAskcAWk9JAMKAG5ldHdvcmtfaWQ8fUl4CgYAc3RhdGVzCBwAbWluZWNyYWZ0OmNhcmRpbmFsX2RpcmVjdGlvbgUAc291dGgAAwcAdmVyc2lvbiE8FQEA" + }, + { + "id": "minecraft:waxed_copper_golem_statue", + "groupId": 92, + "block_state_b64": "CgAAAwgAYmxvY2tfaWQSBQAACAQAbmFtZSMAbWluZWNyYWZ0OndheGVkX2NvcHBlcl9nb2xlbV9zdGF0dWUECQBuYW1lX2hhc2i7DNUuwLdZ9wMKAG5ldHdvcmtfaWT0hakPCgYAc3RhdGVzCBwAbWluZWNyYWZ0OmNhcmRpbmFsX2RpcmVjdGlvbgUAc291dGgAAwcAdmVyc2lvbiE8FQEA" + }, + { + "id": "minecraft:waxed_exposed_copper_golem_statue", + "groupId": 92, + "block_state_b64": "CgAAAwgAYmxvY2tfaWQTBQAACAQAbmFtZSsAbWluZWNyYWZ0OndheGVkX2V4cG9zZWRfY29wcGVyX2dvbGVtX3N0YXR1ZQQJAG5hbWVfaGFzaOKmnALpao5VAwoAbmV0d29ya19pZAkWbkYKBgBzdGF0ZXMIHABtaW5lY3JhZnQ6Y2FyZGluYWxfZGlyZWN0aW9uBQBzb3V0aAADBwB2ZXJzaW9uITwVAQA=" + }, + { + "id": "minecraft:waxed_weathered_copper_golem_statue", + "groupId": 92, + "block_state_b64": "CgAAAwgAYmxvY2tfaWQUBQAACAQAbmFtZS0AbWluZWNyYWZ0OndheGVkX3dlYXRoZXJlZF9jb3BwZXJfZ29sZW1fc3RhdHVlBAkAbmFtZV9oYXNoZSd3p0xxiXgDCgBuZXR3b3JrX2lkyCfbrAoGAHN0YXRlcwgcAG1pbmVjcmFmdDpjYXJkaW5hbF9kaXJlY3Rpb24FAHNvdXRoAAMHAHZlcnNpb24hPBUBAA==" + }, + { + "id": "minecraft:waxed_oxidized_copper_golem_statue", + "groupId": 92, + "block_state_b64": "CgAAAwgAYmxvY2tfaWQVBQAACAQAbmFtZSwAbWluZWNyYWZ0OndheGVkX294aWRpemVkX2NvcHBlcl9nb2xlbV9zdGF0dWUECQBuYW1lX2hhc2gukbGncoASfwMKAG5ldHdvcmtfaWSMrbqxCgYAc3RhdGVzCBwAbWluZWNyYWZ0OmNhcmRpbmFsX2RpcmVjdGlvbgUAc291dGgAAwcAdmVyc2lvbiE8FQEA" }, { "id": "minecraft:noteblock", - "groupId": 87, + "groupId": 93, "block_state_b64": "CgAAAwgAYmxvY2tfaWQZAAAACAQAbmFtZRMAbWluZWNyYWZ0Om5vdGVibG9jawQJAG5hbWVfaGFzaHPA8dBBH0UaAwoAbmV0d29ya19pZH1U5QkKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" }, { "id": "minecraft:jukebox", - "groupId": 87, + "groupId": 93, "block_state_b64": "CgAAAwgAYmxvY2tfaWRUAAAACAQAbmFtZREAbWluZWNyYWZ0Omp1a2Vib3gECQBuYW1lX2hhc2ieAIPExf/ZfgMKAG5ldHdvcmtfaWSmR7JfCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" }, { "id": "minecraft:music_disc_13", - "groupId": 88 + "groupId": 94 }, { "id": "minecraft:music_disc_cat", - "groupId": 88 + "groupId": 94 }, { "id": "minecraft:music_disc_blocks", - "groupId": 88 + "groupId": 94 }, { "id": "minecraft:music_disc_chirp", - "groupId": 88 + "groupId": 94 }, { "id": "minecraft:music_disc_far", - "groupId": 88 + "groupId": 94 }, { "id": "minecraft:music_disc_mall", - "groupId": 88 + "groupId": 94 }, { "id": "minecraft:music_disc_mellohi", - "groupId": 88 + "groupId": 94 }, { "id": "minecraft:music_disc_stal", - "groupId": 88 + "groupId": 94 }, { "id": "minecraft:music_disc_strad", - "groupId": 88 + "groupId": 94 }, { "id": "minecraft:music_disc_ward", - "groupId": 88 + "groupId": 94 }, { "id": "minecraft:music_disc_11", - "groupId": 88 + "groupId": 94 }, { "id": "minecraft:music_disc_wait", - "groupId": 88 + "groupId": 94 }, { "id": "minecraft:music_disc_otherside", - "groupId": 88 + "groupId": 94 }, { "id": "minecraft:music_disc_5", - "groupId": 88 + "groupId": 94 }, { "id": "minecraft:music_disc_pigstep", - "groupId": 88 + "groupId": 94 }, { "id": "minecraft:music_disc_relic", - "groupId": 88 + "groupId": 94 }, { "id": "minecraft:music_disc_creator", - "groupId": 88 + "groupId": 94 }, { "id": "minecraft:music_disc_creator_music_box", - "groupId": 88 + "groupId": 94 }, { "id": "minecraft:music_disc_precipice", - "groupId": 88 + "groupId": 94 + }, + { + "id": "minecraft:music_disc_tears", + "groupId": 94 + }, + { + "id": "minecraft:music_disc_lava_chicken", + "groupId": 94 }, { "id": "minecraft:disc_fragment_5", - "groupId": 89 + "groupId": 95 }, { "id": "minecraft:glowstone_dust", - "groupId": 89 + "groupId": 95 }, { "id": "minecraft:glowstone", - "groupId": 89, + "groupId": 95, "block_state_b64": "CgAAAwgAYmxvY2tfaWRZAAAACAQAbmFtZRMAbWluZWNyYWZ0Omdsb3dzdG9uZQQJAG5hbWVfaGFzaFYqXNkefIlPAwoAbmV0d29ya19pZGT7WYYKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" }, { "id": "minecraft:redstone_lamp", - "groupId": 89, + "groupId": 95, "block_state_b64": "CgAAAwgAYmxvY2tfaWR7AAAACAQAbmFtZRcAbWluZWNyYWZ0OnJlZHN0b25lX2xhbXAECQBuYW1lX2hhc2hJ9V80caPvEgMKAG5ldHdvcmtfaWRvNPwnCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" }, { "id": "minecraft:sea_lantern", - "groupId": 89, + "groupId": 95, "block_state_b64": "CgAAAwgAYmxvY2tfaWSpAAAACAQAbmFtZRUAbWluZWNyYWZ0OnNlYV9sYW50ZXJuBAkAbmFtZV9oYXNoLPsv1TX9M+QDCgBuZXR3b3JrX2lk1PPVyAoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" }, { "id": "minecraft:oak_sign", - "groupId": 90 + "groupId": 96 }, { "id": "minecraft:spruce_sign", - "groupId": 90 + "groupId": 96 }, { "id": "minecraft:birch_sign", - "groupId": 90 + "groupId": 96 }, { "id": "minecraft:jungle_sign", - "groupId": 90 + "groupId": 96 }, { "id": "minecraft:acacia_sign", - "groupId": 90 + "groupId": 96 }, { "id": "minecraft:dark_oak_sign", - "groupId": 90 + "groupId": 96 }, { "id": "minecraft:mangrove_sign", - "groupId": 90 + "groupId": 96 }, { "id": "minecraft:cherry_sign", - "groupId": 90 + "groupId": 96 }, { "id": "minecraft:pale_oak_sign", - "groupId": 90 + "groupId": 96 }, { "id": "minecraft:bamboo_sign", - "groupId": 90 + "groupId": 96 }, { "id": "minecraft:crimson_sign", - "groupId": 90 + "groupId": 96 }, { "id": "minecraft:warped_sign", - "groupId": 90 + "groupId": 96 }, { "id": "minecraft:oak_hanging_sign", - "groupId": 91 + "groupId": 97 }, { "id": "minecraft:spruce_hanging_sign", - "groupId": 91 + "groupId": 97 }, { "id": "minecraft:birch_hanging_sign", - "groupId": 91 + "groupId": 97 }, { "id": "minecraft:jungle_hanging_sign", - "groupId": 91 + "groupId": 97 }, { "id": "minecraft:acacia_hanging_sign", - "groupId": 91 + "groupId": 97 }, { "id": "minecraft:dark_oak_hanging_sign", - "groupId": 91 + "groupId": 97 }, { "id": "minecraft:mangrove_hanging_sign", - "groupId": 91 + "groupId": 97 }, { "id": "minecraft:cherry_hanging_sign", - "groupId": 91 + "groupId": 97 }, { "id": "minecraft:pale_oak_hanging_sign", - "groupId": 91 + "groupId": 97 }, { "id": "minecraft:bamboo_hanging_sign", - "groupId": 91 + "groupId": 97 }, { "id": "minecraft:crimson_hanging_sign", - "groupId": 91 + "groupId": 97 }, { "id": "minecraft:warped_hanging_sign", - "groupId": 91 + "groupId": 97 }, { "id": "minecraft:painting", - "groupId": 92 + "groupId": 98 }, { "id": "minecraft:frame", - "groupId": 92 + "groupId": 98 }, { "id": "minecraft:glow_frame", - "groupId": 92 + "groupId": 98 }, { "id": "minecraft:honey_bottle", - "groupId": 92 + "groupId": 98 }, { "id": "minecraft:flower_pot", - "groupId": 92 + "groupId": 98 }, { "id": "minecraft:bowl", - "groupId": 92 + "groupId": 98 }, { "id": "minecraft:bucket", - "groupId": 92 + "groupId": 98 }, { "id": "minecraft:milk_bucket", - "groupId": 92 + "groupId": 98 }, { "id": "minecraft:water_bucket", - "groupId": 92 + "groupId": 98 }, { "id": "minecraft:lava_bucket", - "groupId": 92 + "groupId": 98 }, { "id": "minecraft:cod_bucket", - "groupId": 92 + "groupId": 98 }, { "id": "minecraft:salmon_bucket", - "groupId": 92 + "groupId": 98 }, { "id": "minecraft:tropical_fish_bucket", - "groupId": 92 + "groupId": 98 }, { "id": "minecraft:pufferfish_bucket", - "groupId": 92 + "groupId": 98 }, { "id": "minecraft:powder_snow_bucket", - "groupId": 92 + "groupId": 98 }, { "id": "minecraft:axolotl_bucket", - "groupId": 92 + "groupId": 98 }, { "id": "minecraft:tadpole_bucket", - "groupId": 92 + "groupId": 98 }, { "id": "minecraft:player_head", - "groupId": 93, + "groupId": 99, "block_state_b64": "CgAAAwgAYmxvY2tfaWTGBAAACAQAbmFtZRUAbWluZWNyYWZ0OnBsYXllcl9oZWFkBAkAbmFtZV9oYXNonFwZb7CL8EYDCgBuZXR3b3JrX2lkZeAXqAoGAHN0YXRlcwMQAGZhY2luZ19kaXJlY3Rpb24AAAAAAAMHAHZlcnNpb24hPBUBAA==" }, { "id": "minecraft:zombie_head", - "groupId": 93, + "groupId": 99, "block_state_b64": "CgAAAwgAYmxvY2tfaWTFBAAACAQAbmFtZRUAbWluZWNyYWZ0OnpvbWJpZV9oZWFkBAkAbmFtZV9oYXNoixuENYuaGgEDCgBuZXR3b3JrX2lk0NsHDgoGAHN0YXRlcwMQAGZhY2luZ19kaXJlY3Rpb24AAAAAAAMHAHZlcnNpb24hPBUBAA==" }, { "id": "minecraft:creeper_head", - "groupId": 93, + "groupId": 99, "block_state_b64": "CgAAAwgAYmxvY2tfaWTHBAAACAQAbmFtZRYAbWluZWNyYWZ0OmNyZWVwZXJfaGVhZAQJAG5hbWVfaGFzaCvAGFMS/RqVAwoAbmV0d29ya19pZEfskXYKBgBzdGF0ZXMDEABmYWNpbmdfZGlyZWN0aW9uAAAAAAADBwB2ZXJzaW9uITwVAQA=" }, { "id": "minecraft:dragon_head", - "groupId": 93, + "groupId": 99, "block_state_b64": "CgAAAwgAYmxvY2tfaWTIBAAACAQAbmFtZRUAbWluZWNyYWZ0OmRyYWdvbl9oZWFkBAkAbmFtZV9oYXNozjh6bGRaa5UDCgBuZXR3b3JrX2lk/zjetgoGAHN0YXRlcwMQAGZhY2luZ19kaXJlY3Rpb24AAAAAAAMHAHZlcnNpb24hPBUBAA==" }, { "id": "minecraft:skeleton_skull", - "groupId": 93, + "groupId": 99, "block_state_b64": "CgAAAwgAYmxvY2tfaWSQAAAACAQAbmFtZRgAbWluZWNyYWZ0OnNrZWxldG9uX3NrdWxsBAkAbmFtZV9oYXNo3+kbzeMgg4kDCgBuZXR3b3JrX2lk/RqWbwoGAHN0YXRlcwMQAGZhY2luZ19kaXJlY3Rpb24AAAAAAAMHAHZlcnNpb24hPBUBAA==" }, { "id": "minecraft:wither_skeleton_skull", - "groupId": 93, + "groupId": 99, "block_state_b64": "CgAAAwgAYmxvY2tfaWTEBAAACAQAbmFtZR8AbWluZWNyYWZ0OndpdGhlcl9za2VsZXRvbl9za3VsbAQJAG5hbWVfaGFzaEcZrUyy9cfRAwoAbmV0d29ya19pZJZ2G/oKBgBzdGF0ZXMDEABmYWNpbmdfZGlyZWN0aW9uAAAAAAADBwB2ZXJzaW9uITwVAQA=" }, { "id": "minecraft:piglin_head", - "groupId": 93, + "groupId": 99, "block_state_b64": "CgAAAwgAYmxvY2tfaWTJBAAACAQAbmFtZRUAbWluZWNyYWZ0OnBpZ2xpbl9oZWFkBAkAbmFtZV9oYXNo+jUCKgb5DskDCgBuZXR3b3JrX2lkQ1ETVwoGAHN0YXRlcwMQAGZhY2luZ19kaXJlY3Rpb24AAAAAAAMHAHZlcnNpb24hPBUBAA==" }, + { + "id": "minecraft:lightning_rod", + "groupId": 100, + "block_state_b64": "CgAAAwgAYmxvY2tfaWQ3AgAACAQAbmFtZRcAbWluZWNyYWZ0OmxpZ2h0bmluZ19yb2QECQBuYW1lX2hhc2ioXQF1xvfHNQMKAG5ldHdvcmtfaWSRlKVZCgYAc3RhdGVzAxAAZmFjaW5nX2RpcmVjdGlvbgAAAAABCwBwb3dlcmVkX2JpdAAAAwcAdmVyc2lvbiE8FQEA" + }, + { + "id": "minecraft:exposed_lightning_rod", + "groupId": 100, + "block_state_b64": "CgAAAwgAYmxvY2tfaWQiBQAACAQAbmFtZR8AbWluZWNyYWZ0OmV4cG9zZWRfbGlnaHRuaW5nX3JvZAQJAG5hbWVfaGFzaPkeDdW8m9tCAwoAbmV0d29ya19pZOwjJKcKBgBzdGF0ZXMDEABmYWNpbmdfZGlyZWN0aW9uAAAAAAELAHBvd2VyZWRfYml0AAADBwB2ZXJzaW9uITwVAQA=" + }, + { + "id": "minecraft:weathered_lightning_rod", + "groupId": 100, + "block_state_b64": "CgAAAwgAYmxvY2tfaWQjBQAACAQAbmFtZSEAbWluZWNyYWZ0OndlYXRoZXJlZF9saWdodG5pbmdfcm9kBAkAbmFtZV9oYXNoar2vpdIuq4IDCgBuZXR3b3JrX2lk6UTP7woGAHN0YXRlcwMQAGZhY2luZ19kaXJlY3Rpb24AAAAAAQsAcG93ZXJlZF9iaXQAAAMHAHZlcnNpb24hPBUBAA==" + }, + { + "id": "minecraft:oxidized_lightning_rod", + "groupId": 100, + "block_state_b64": "CgAAAwgAYmxvY2tfaWQkBQAACAQAbmFtZSAAbWluZWNyYWZ0Om94aWRpemVkX2xpZ2h0bmluZ19yb2QECQBuYW1lX2hhc2h5XDGjzIfTFgMKAG5ldHdvcmtfaWTBcZllCgYAc3RhdGVzAxAAZmFjaW5nX2RpcmVjdGlvbgAAAAABCwBwb3dlcmVkX2JpdAAAAwcAdmVyc2lvbiE8FQEA" + }, + { + "id": "minecraft:waxed_lightning_rod", + "groupId": 100, + "block_state_b64": "CgAAAwgAYmxvY2tfaWQlBQAACAQAbmFtZR0AbWluZWNyYWZ0OndheGVkX2xpZ2h0bmluZ19yb2QECQBuYW1lX2hhc2hykYWJFZWYPgMKAG5ldHdvcmtfaWRxM9pxCgYAc3RhdGVzAxAAZmFjaW5nX2RpcmVjdGlvbgAAAAABCwBwb3dlcmVkX2JpdAAAAwcAdmVyc2lvbiE8FQEA" + }, + { + "id": "minecraft:waxed_exposed_lightning_rod", + "groupId": 100, + "block_state_b64": "CgAAAwgAYmxvY2tfaWQmBQAACAQAbmFtZSUAbWluZWNyYWZ0OndheGVkX2V4cG9zZWRfbGlnaHRuaW5nX3JvZAQJAG5hbWVfaGFzaI9MOzaSKVJQAwoAbmV0d29ya19pZKz9CMEKBgBzdGF0ZXMDEABmYWNpbmdfZGlyZWN0aW9uAAAAAAELAHBvd2VyZWRfYml0AAADBwB2ZXJzaW9uITwVAQA=" + }, + { + "id": "minecraft:waxed_weathered_lightning_rod", + "groupId": 100, + "block_state_b64": "CgAAAwgAYmxvY2tfaWQnBQAACAQAbmFtZScAbWluZWNyYWZ0OndheGVkX3dlYXRoZXJlZF9saWdodG5pbmdfcm9kBAkAbmFtZV9oYXNo4FeYE/GsqfoDCgBuZXR3b3JrX2lk2aEopQoGAHN0YXRlcwMQAGZhY2luZ19kaXJlY3Rpb24AAAAAAQsAcG93ZXJlZF9iaXQAAAMHAHZlcnNpb24hPBUBAA==" + }, + { + "id": "minecraft:waxed_oxidized_lightning_rod", + "groupId": 100, + "block_state_b64": "CgAAAwgAYmxvY2tfaWQoBQAACAQAbmFtZSYAbWluZWNyYWZ0OndheGVkX294aWRpemVkX2xpZ2h0bmluZ19yb2QECQBuYW1lX2hhc2jLwW2G5b7CywMKAG5ldHdvcmtfaWTZgfCvCgYAc3RhdGVzAxAAZmFjaW5nX2RpcmVjdGlvbgAAAAABCwBwb3dlcmVkX2JpdAAAAwcAdmVyc2lvbiE8FQEA" + }, { "id": "minecraft:beacon", - "groupId": 94, + "groupId": 101, "block_state_b64": "CgAAAwgAYmxvY2tfaWSKAAAACAQAbmFtZRAAbWluZWNyYWZ0OmJlYWNvbgQJAG5hbWVfaGFzaACwhhfSkdkHAwoAbmV0d29ya19pZF8jfiEKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" }, { "id": "minecraft:bell", - "groupId": 94, + "groupId": 101, "block_state_b64": "CgAAAwgAYmxvY2tfaWTNAQAACAQAbmFtZQ4AbWluZWNyYWZ0OmJlbGwECQBuYW1lX2hhc2iPqsgDXRcsxAMKAG5ldHdvcmtfaWT7zhOoCgYAc3RhdGVzCAoAYXR0YWNobWVudAgAc3RhbmRpbmcDCQBkaXJlY3Rpb24AAAAAAQoAdG9nZ2xlX2JpdAAAAwcAdmVyc2lvbiE8FQEA" }, { "id": "minecraft:conduit", - "groupId": 94, + "groupId": 101, "block_state_b64": "CgAAAwgAYmxvY2tfaWScAQAACAQAbmFtZREAbWluZWNyYWZ0OmNvbmR1aXQECQBuYW1lX2hhc2jqxKAxq2EaWQMKAG5ldHdvcmtfaWTWcBVnCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" }, { "id": "minecraft:stonecutter_block", - "groupId": 94, + "groupId": 101, "block_state_b64": "CgAAAwgAYmxvY2tfaWTEAQAACAQAbmFtZRsAbWluZWNyYWZ0OnN0b25lY3V0dGVyX2Jsb2NrBAkAbmFtZV9oYXNoQAXTbAM3MeYDCgBuZXR3b3JrX2lkWS4RjAoGAHN0YXRlcwgcAG1pbmVjcmFmdDpjYXJkaW5hbF9kaXJlY3Rpb24FAG5vcnRoAAMHAHZlcnNpb24hPBUBAA==" }, { "id": "minecraft:coal", - "groupId": 94 + "groupId": 101 }, { "id": "minecraft:charcoal", - "groupId": 94 + "groupId": 101 }, { "id": "minecraft:diamond", - "groupId": 94 + "groupId": 101 }, { "id": "minecraft:iron_nugget", - "groupId": 94 + "groupId": 101 }, { "id": "minecraft:raw_iron", - "groupId": 94 + "groupId": 101 }, { "id": "minecraft:raw_gold", - "groupId": 94 + "groupId": 101 + }, + { + "id": "minecraft:copper_nugget", + "groupId": 101 }, { "id": "minecraft:raw_copper", - "groupId": 94 + "groupId": 101 }, { "id": "minecraft:copper_ingot", - "groupId": 94 + "groupId": 101 }, { "id": "minecraft:iron_ingot", - "groupId": 94 + "groupId": 101 }, { "id": "minecraft:netherite_scrap", - "groupId": 94 + "groupId": 101 }, { "id": "minecraft:netherite_ingot", - "groupId": 94 + "groupId": 101 }, { "id": "minecraft:gold_nugget", - "groupId": 94 + "groupId": 101 }, { "id": "minecraft:gold_ingot", - "groupId": 94 + "groupId": 101 }, { "id": "minecraft:emerald", - "groupId": 94 + "groupId": 101 }, { "id": "minecraft:quartz", - "groupId": 94 + "groupId": 101 }, { "id": "minecraft:clay_ball", - "groupId": 94 + "groupId": 101 }, { "id": "minecraft:brick", - "groupId": 94 + "groupId": 101 }, { "id": "minecraft:netherbrick", - "groupId": 94 + "groupId": 101 }, { "id": "minecraft:resin_brick", - "groupId": 94 + "groupId": 101 }, { "id": "minecraft:prismarine_shard", - "groupId": 94 + "groupId": 101 }, { "id": "minecraft:amethyst_shard", - "groupId": 94 + "groupId": 101 }, { "id": "minecraft:prismarine_crystals", - "groupId": 94 + "groupId": 101 }, { "id": "minecraft:nautilus_shell", - "groupId": 94 + "groupId": 101 }, { "id": "minecraft:heart_of_the_sea", - "groupId": 94 + "groupId": 101 }, { "id": "minecraft:turtle_scute", - "groupId": 94 + "groupId": 101 }, { "id": "minecraft:armadillo_scute", - "groupId": 94 + "groupId": 101 }, { "id": "minecraft:phantom_membrane", - "groupId": 94 + "groupId": 101 }, { "id": "minecraft:string", - "groupId": 94 + "groupId": 101 }, { "id": "minecraft:feather", - "groupId": 94 + "groupId": 101 }, { "id": "minecraft:flint", - "groupId": 94 + "groupId": 101 }, { "id": "minecraft:gunpowder", - "groupId": 94 + "groupId": 101 }, { "id": "minecraft:leather", - "groupId": 94 + "groupId": 101 }, { "id": "minecraft:rabbit_hide", - "groupId": 94 + "groupId": 101 }, { "id": "minecraft:rabbit_foot", - "groupId": 94 + "groupId": 101 }, { "id": "minecraft:fire_charge", - "groupId": 94 + "groupId": 101 }, { "id": "minecraft:blaze_rod", - "groupId": 94 + "groupId": 101 }, { "id": "minecraft:breeze_rod", - "groupId": 94 + "groupId": 101 }, { "id": "minecraft:heavy_core", - "groupId": 94, + "groupId": 101, "block_state_b64": "CgAAAwgAYmxvY2tfaWQ7AgAACAQAbmFtZRQAbWluZWNyYWZ0OmhlYXZ5X2NvcmUECQBuYW1lX2hhc2hhz/uNCtrC2QMKAG5ldHdvcmtfaWRaFu+8CgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" }, { "id": "minecraft:blaze_powder", - "groupId": 94 + "groupId": 101 }, { "id": "minecraft:magma_cream", - "groupId": 94 + "groupId": 101 }, { "id": "minecraft:fermented_spider_eye", - "groupId": 94 + "groupId": 101 }, { "id": "minecraft:echo_shard", - "groupId": 94 + "groupId": 101 }, { "id": "minecraft:dragon_breath", - "groupId": 94 + "groupId": 101 }, { "id": "minecraft:shulker_shell", - "groupId": 94 + "groupId": 101 }, { "id": "minecraft:ghast_tear", - "groupId": 94 + "groupId": 101 }, { "id": "minecraft:slime_ball", - "groupId": 94 + "groupId": 101 }, { "id": "minecraft:ender_pearl", - "groupId": 94 + "groupId": 101 }, { "id": "minecraft:ender_eye", - "groupId": 94 + "groupId": 101 }, { "id": "minecraft:nether_star", - "groupId": 94 + "groupId": 101 }, { "id": "minecraft:end_rod", - "groupId": 94, + "groupId": 101, "block_state_b64": "CgAAAwgAYmxvY2tfaWTQAAAACAQAbmFtZREAbWluZWNyYWZ0OmVuZF9yb2QECQBuYW1lX2hhc2jx/q5cEA0hmQMKAG5ldHdvcmtfaWQ2eM8kCgYAc3RhdGVzAxAAZmFjaW5nX2RpcmVjdGlvbgAAAAAAAwcAdmVyc2lvbiE8FQEA" }, - { - "id": "minecraft:lightning_rod", - "groupId": 94, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQ3AgAACAQAbmFtZRcAbWluZWNyYWZ0OmxpZ2h0bmluZ19yb2QECQBuYW1lX2hhc2ioXQF1xvfHNQMKAG5ldHdvcmtfaWRLuHyACgYAc3RhdGVzAxAAZmFjaW5nX2RpcmVjdGlvbgAAAAAAAwcAdmVyc2lvbiE8FQEA" - }, { "id": "minecraft:end_crystal", - "groupId": 94 + "groupId": 101 }, { "id": "minecraft:paper", - "groupId": 94 + "groupId": 101 }, { "id": "minecraft:book", - "groupId": 94 + "groupId": 101 }, { "id": "minecraft:writable_book", - "groupId": 94 + "groupId": 101 }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQAAAIDAGx2bAEAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQAAAIDAGx2bAIAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQAAAIDAGx2bAMAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQAAAIDAGx2bAQAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQBAAIDAGx2bAEAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQBAAIDAGx2bAIAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQBAAIDAGx2bAMAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQBAAIDAGx2bAQAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQCAAIDAGx2bAEAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQCAAIDAGx2bAIAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQCAAIDAGx2bAMAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQCAAIDAGx2bAQAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQDAAIDAGx2bAEAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQDAAIDAGx2bAIAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQDAAIDAGx2bAMAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQDAAIDAGx2bAQAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQEAAIDAGx2bAEAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQEAAIDAGx2bAIAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQEAAIDAGx2bAMAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQEAAIDAGx2bAQAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQFAAIDAGx2bAEAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQFAAIDAGx2bAIAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQFAAIDAGx2bAMAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQGAAIDAGx2bAEAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQGAAIDAGx2bAIAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQGAAIDAGx2bAMAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQHAAIDAGx2bAEAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQHAAIDAGx2bAIAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQHAAIDAGx2bAMAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQIAAIDAGx2bAEAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQJAAIDAGx2bAEAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQJAAIDAGx2bAIAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQJAAIDAGx2bAMAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQJAAIDAGx2bAQAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQJAAIDAGx2bAUAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQKAAIDAGx2bAEAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQKAAIDAGx2bAIAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQKAAIDAGx2bAMAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQKAAIDAGx2bAQAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQKAAIDAGx2bAUAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQLAAIDAGx2bAEAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQLAAIDAGx2bAIAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQLAAIDAGx2bAMAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQLAAIDAGx2bAQAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQLAAIDAGx2bAUAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQMAAIDAGx2bAEAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQMAAIDAGx2bAIAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQNAAIDAGx2bAEAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQNAAIDAGx2bAIAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQOAAIDAGx2bAEAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQOAAIDAGx2bAIAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQOAAIDAGx2bAMAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQPAAIDAGx2bAEAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQPAAIDAGx2bAIAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQPAAIDAGx2bAMAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQPAAIDAGx2bAQAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQPAAIDAGx2bAUAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQQAAIDAGx2bAEAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQRAAIDAGx2bAEAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQRAAIDAGx2bAIAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQRAAIDAGx2bAMAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQSAAIDAGx2bAEAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQSAAIDAGx2bAIAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQSAAIDAGx2bAMAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQTAAIDAGx2bAEAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQTAAIDAGx2bAIAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQTAAIDAGx2bAMAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQTAAIDAGx2bAQAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQTAAIDAGx2bAUAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQUAAIDAGx2bAEAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQUAAIDAGx2bAIAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQVAAIDAGx2bAEAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQWAAIDAGx2bAEAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQXAAIDAGx2bAEAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQXAAIDAGx2bAIAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQXAAIDAGx2bAMAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQYAAIDAGx2bAEAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQYAAIDAGx2bAIAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQYAAIDAGx2bAMAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQZAAIDAGx2bAEAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQZAAIDAGx2bAIAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQaAAIDAGx2bAEAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQbAAIDAGx2bAEAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQcAAIDAGx2bAEAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQdAAIDAGx2bAEAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQdAAIDAGx2bAIAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQdAAIDAGx2bAMAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQdAAIDAGx2bAQAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQdAAIDAGx2bAUAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQeAAIDAGx2bAEAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQeAAIDAGx2bAIAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQeAAIDAGx2bAMAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQfAAIDAGx2bAEAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQfAAIDAGx2bAIAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQfAAIDAGx2bAMAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQgAAIDAGx2bAEAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQhAAIDAGx2bAEAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQiAAIDAGx2bAEAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQiAAIDAGx2bAIAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQiAAIDAGx2bAMAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQiAAIDAGx2bAQAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQjAAIDAGx2bAEAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQjAAIDAGx2bAIAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQjAAIDAGx2bAMAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQkAAIDAGx2bAEAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQkAAIDAGx2bAIAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQkAAIDAGx2bAMAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQlAAIDAGx2bAEAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQlAAIDAGx2bAIAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQlAAIDAGx2bAMAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQmAAIDAGx2bAEAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQmAAIDAGx2bAIAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQmAAIDAGx2bAMAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQnAAIDAGx2bAEAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQnAAIDAGx2bAIAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQnAAIDAGx2bAMAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQnAAIDAGx2bAQAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQnAAIDAGx2bAUAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQoAAIDAGx2bAEAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQoAAIDAGx2bAIAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQoAAIDAGx2bAMAAAA=" }, { "id": "minecraft:enchanted_book", - "groupId": 95, + "groupId": 102, "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQoAAIDAGx2bAQAAAA=" }, { "id": "minecraft:oak_boat", - "groupId": 96 + "groupId": 103 }, { "id": "minecraft:spruce_boat", - "groupId": 96 + "groupId": 103 }, { "id": "minecraft:birch_boat", - "groupId": 96 + "groupId": 103 }, { "id": "minecraft:jungle_boat", - "groupId": 96 + "groupId": 103 }, { "id": "minecraft:acacia_boat", - "groupId": 96 + "groupId": 103 }, { "id": "minecraft:dark_oak_boat", - "groupId": 96 + "groupId": 103 }, { "id": "minecraft:mangrove_boat", - "groupId": 96 + "groupId": 103 }, { "id": "minecraft:cherry_boat", - "groupId": 96 + "groupId": 103 }, { "id": "minecraft:pale_oak_boat", - "groupId": 96 + "groupId": 103 }, { "id": "minecraft:bamboo_raft", - "groupId": 96 + "groupId": 103 }, { "id": "minecraft:oak_chest_boat", - "groupId": 97 + "groupId": 104 }, { "id": "minecraft:spruce_chest_boat", - "groupId": 97 + "groupId": 104 }, { "id": "minecraft:birch_chest_boat", - "groupId": 97 + "groupId": 104 }, { "id": "minecraft:jungle_chest_boat", - "groupId": 97 + "groupId": 104 }, { "id": "minecraft:acacia_chest_boat", - "groupId": 97 + "groupId": 104 }, { "id": "minecraft:dark_oak_chest_boat", - "groupId": 97 + "groupId": 104 }, { "id": "minecraft:mangrove_chest_boat", - "groupId": 97 + "groupId": 104 }, { "id": "minecraft:cherry_chest_boat", - "groupId": 97 + "groupId": 104 }, { "id": "minecraft:pale_oak_chest_boat", - "groupId": 97 + "groupId": 104 }, { "id": "minecraft:bamboo_chest_raft", - "groupId": 97 + "groupId": 104 }, { "id": "minecraft:rail", - "groupId": 98, + "groupId": 105, "block_state_b64": "CgAAAwgAYmxvY2tfaWRCAAAACAQAbmFtZQ4AbWluZWNyYWZ0OnJhaWwECQBuYW1lX2hhc2hUzmhUXYJDUQMKAG5ldHdvcmtfaWR+Sp6YCgYAc3RhdGVzAw4AcmFpbF9kaXJlY3Rpb24AAAAAAAMHAHZlcnNpb24hPBUBAA==" }, { "id": "minecraft:golden_rail", - "groupId": 98, + "groupId": 105, "block_state_b64": "CgAAAwgAYmxvY2tfaWQbAAAACAQAbmFtZRUAbWluZWNyYWZ0OmdvbGRlbl9yYWlsBAkAbmFtZV9oYXNoOoV5MaKipoUDCgBuZXR3b3JrX2lkfAcxLwoGAHN0YXRlcwENAHJhaWxfZGF0YV9iaXQAAw4AcmFpbF9kaXJlY3Rpb24AAAAAAAMHAHZlcnNpb24hPBUBAA==" }, { "id": "minecraft:detector_rail", - "groupId": 98, + "groupId": 105, "block_state_b64": "CgAAAwgAYmxvY2tfaWQcAAAACAQAbmFtZRcAbWluZWNyYWZ0OmRldGVjdG9yX3JhaWwECQBuYW1lX2hhc2gVUk31qOysUQMKAG5ldHdvcmtfaWRVW/aICgYAc3RhdGVzAQ0AcmFpbF9kYXRhX2JpdAADDgByYWlsX2RpcmVjdGlvbgAAAAAAAwcAdmVyc2lvbiE8FQEA" }, { "id": "minecraft:activator_rail", - "groupId": 98, + "groupId": 105, "block_state_b64": "CgAAAwgAYmxvY2tfaWR+AAAACAQAbmFtZRgAbWluZWNyYWZ0OmFjdGl2YXRvcl9yYWlsBAkAbmFtZV9oYXNosIL91qriCRkDCgBuZXR3b3JrX2lkZfckmwoGAHN0YXRlcwENAHJhaWxfZGF0YV9iaXQAAw4AcmFpbF9kaXJlY3Rpb24AAAAAAAMHAHZlcnNpb24hPBUBAA==" }, { "id": "minecraft:minecart", - "groupId": 99 + "groupId": 106 }, { "id": "minecraft:chest_minecart", - "groupId": 99 + "groupId": 106 }, { "id": "minecraft:hopper_minecart", - "groupId": 99 + "groupId": 106 }, { "id": "minecraft:tnt_minecart", - "groupId": 99 + "groupId": 106 }, { "id": "minecraft:redstone", - "groupId": 100 + "groupId": 107 }, { "id": "minecraft:redstone_block", - "groupId": 100, + "groupId": 107, "block_state_b64": "CgAAAwgAYmxvY2tfaWSYAAAACAQAbmFtZRgAbWluZWNyYWZ0OnJlZHN0b25lX2Jsb2NrBAkAbmFtZV9oYXNoRhULL0r8o0sDCgBuZXR3b3JrX2lklayOHgoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" }, { "id": "minecraft:redstone_torch", - "groupId": 100, + "groupId": 107, "block_state_b64": "CgAAAwgAYmxvY2tfaWRMAAAACAQAbmFtZRgAbWluZWNyYWZ0OnJlZHN0b25lX3RvcmNoBAkAbmFtZV9oYXNoizFRjpYMIDgDCgBuZXR3b3JrX2lkuHz7yAoGAHN0YXRlcwgWAHRvcmNoX2ZhY2luZ19kaXJlY3Rpb24HAHVua25vd24AAwcAdmVyc2lvbiE8FQEA" }, { "id": "minecraft:lever", - "groupId": 100, + "groupId": 107, "block_state_b64": "CgAAAwgAYmxvY2tfaWRFAAAACAQAbmFtZQ8AbWluZWNyYWZ0OmxldmVyBAkAbmFtZV9oYXNoGMJeLJsUMLYDCgBuZXR3b3JrX2lkEF/GuAoGAHN0YXRlcwgPAGxldmVyX2RpcmVjdGlvbg4AZG93bl9lYXN0X3dlc3QBCABvcGVuX2JpdAAAAwcAdmVyc2lvbiE8FQEA" }, { "id": "minecraft:wooden_button", - "groupId": 101, + "groupId": 108, "block_state_b64": "CgAAAwgAYmxvY2tfaWSPAAAACAQAbmFtZRcAbWluZWNyYWZ0Ondvb2Rlbl9idXR0b24ECQBuYW1lX2hhc2hR7PgSTQt0sQMKAG5ldHdvcmtfaWSU07kYCgYAc3RhdGVzARIAYnV0dG9uX3ByZXNzZWRfYml0AAMQAGZhY2luZ19kaXJlY3Rpb24AAAAAAAMHAHZlcnNpb24hPBUBAA==" }, { "id": "minecraft:spruce_button", - "groupId": 101, + "groupId": 108, "block_state_b64": "CgAAAwgAYmxvY2tfaWSPAQAACAQAbmFtZRcAbWluZWNyYWZ0OnNwcnVjZV9idXR0b24ECQBuYW1lX2hhc2jBW9Z8aYE7YQMKAG5ldHdvcmtfaWTkUIGuCgYAc3RhdGVzARIAYnV0dG9uX3ByZXNzZWRfYml0AAMQAGZhY2luZ19kaXJlY3Rpb24AAAAAAAMHAHZlcnNpb24hPBUBAA==" }, { "id": "minecraft:birch_button", - "groupId": 101, + "groupId": 108, "block_state_b64": "CgAAAwgAYmxvY2tfaWSMAQAACAQAbmFtZRYAbWluZWNyYWZ0OmJpcmNoX2J1dHRvbgQJAG5hbWVfaGFzaJXYgGuSHbTwAwoAbmV0d29ya19pZGWp3yoKBgBzdGF0ZXMBEgBidXR0b25fcHJlc3NlZF9iaXQAAxAAZmFjaW5nX2RpcmVjdGlvbgAAAAAAAwcAdmVyc2lvbiE8FQEA" }, { "id": "minecraft:jungle_button", - "groupId": 101, + "groupId": 108, "block_state_b64": "CgAAAwgAYmxvY2tfaWSOAQAACAQAbmFtZRcAbWluZWNyYWZ0Omp1bmdsZV9idXR0b24ECQBuYW1lX2hhc2iCgNANcJs+BQMKAG5ldHdvcmtfaWT9fImWCgYAc3RhdGVzARIAYnV0dG9uX3ByZXNzZWRfYml0AAMQAGZhY2luZ19kaXJlY3Rpb24AAAAAAAMHAHZlcnNpb24hPBUBAA==" }, { "id": "minecraft:acacia_button", - "groupId": 101, + "groupId": 108, "block_state_b64": "CgAAAwgAYmxvY2tfaWSLAQAACAQAbmFtZRcAbWluZWNyYWZ0OmFjYWNpYV9idXR0b24ECQBuYW1lX2hhc2gVvmcT7LTO0wMKAG5ldHdvcmtfaWRQnxIJCgYAc3RhdGVzARIAYnV0dG9uX3ByZXNzZWRfYml0AAMQAGZhY2luZ19kaXJlY3Rpb24AAAAAAAMHAHZlcnNpb24hPBUBAA==" }, { "id": "minecraft:dark_oak_button", - "groupId": 101, + "groupId": 108, "block_state_b64": "CgAAAwgAYmxvY2tfaWSNAQAACAQAbmFtZRkAbWluZWNyYWZ0OmRhcmtfb2FrX2J1dHRvbgQJAG5hbWVfaGFzaIV10ZGGrCIEAwoAbmV0d29ya19pZN5vAmIKBgBzdGF0ZXMBEgBidXR0b25fcHJlc3NlZF9iaXQAAxAAZmFjaW5nX2RpcmVjdGlvbgAAAAAAAwcAdmVyc2lvbiE8FQEA" }, { "id": "minecraft:mangrove_button", - "groupId": 101, + "groupId": 108, "block_state_b64": "CgAAAwgAYmxvY2tfaWTmAgAACAQAbmFtZRkAbWluZWNyYWZ0Om1hbmdyb3ZlX2J1dHRvbgQJAG5hbWVfaGFzaNzeYYKLgOzJAwoAbmV0d29ya19pZAFEGQ0KBgBzdGF0ZXMBEgBidXR0b25fcHJlc3NlZF9iaXQAAxAAZmFjaW5nX2RpcmVjdGlvbgAAAAAAAwcAdmVyc2lvbiE8FQEA" }, { "id": "minecraft:cherry_button", - "groupId": 101, + "groupId": 108, "block_state_b64": "CgAAAwgAYmxvY2tfaWQRAwAACAQAbmFtZRcAbWluZWNyYWZ0OmNoZXJyeV9idXR0b24ECQBuYW1lX2hhc2j2/IHjeAbUcwMKAG5ldHdvcmtfaWRJ1irQCgYAc3RhdGVzARIAYnV0dG9uX3ByZXNzZWRfYml0AAMQAGZhY2luZ19kaXJlY3Rpb24AAAAAAAMHAHZlcnNpb24hPBUBAA==" }, { "id": "minecraft:pale_oak_button", - "groupId": 101, + "groupId": 108, "block_state_b64": "CgAAAwgAYmxvY2tfaWTcBAAACAQAbmFtZRkAbWluZWNyYWZ0OnBhbGVfb2FrX2J1dHRvbgQJAG5hbWVfaGFzaLk54s7RtGHgAwoAbmV0d29ya19pZNLO6ZwKBgBzdGF0ZXMBEgBidXR0b25fcHJlc3NlZF9iaXQAAxAAZmFjaW5nX2RpcmVjdGlvbgAAAAAAAwcAdmVyc2lvbiE8FQEA" }, { "id": "minecraft:bamboo_button", - "groupId": 101, + "groupId": 108, "block_state_b64": "CgAAAwgAYmxvY2tfaWT+AgAACAQAbmFtZRcAbWluZWNyYWZ0OmJhbWJvb19idXR0b24ECQBuYW1lX2hhc2j7AddMi+6nsgMKAG5ldHdvcmtfaWSa9w4/CgYAc3RhdGVzARIAYnV0dG9uX3ByZXNzZWRfYml0AAMQAGZhY2luZ19kaXJlY3Rpb24AAAAAAAMHAHZlcnNpb24hPBUBAA==" }, { "id": "minecraft:stone_button", - "groupId": 101, + "groupId": 108, "block_state_b64": "CgAAAwgAYmxvY2tfaWRNAAAACAQAbmFtZRYAbWluZWNyYWZ0OnN0b25lX2J1dHRvbgQJAG5hbWVfaGFzaM4ejMctmvohAwoAbmV0d29ya19pZMw+aC0KBgBzdGF0ZXMBEgBidXR0b25fcHJlc3NlZF9iaXQAAxAAZmFjaW5nX2RpcmVjdGlvbgAAAAAAAwcAdmVyc2lvbiE8FQEA" }, { "id": "minecraft:crimson_button", - "groupId": 101, + "groupId": 108, "block_state_b64": "CgAAAwgAYmxvY2tfaWQDAgAACAQAbmFtZRgAbWluZWNyYWZ0OmNyaW1zb25fYnV0dG9uBAkAbmFtZV9oYXNofnjYHaYIeWgDCgBuZXR3b3JrX2lk+n1vyQoGAHN0YXRlcwESAGJ1dHRvbl9wcmVzc2VkX2JpdAADEABmYWNpbmdfZGlyZWN0aW9uAAAAAAADBwB2ZXJzaW9uITwVAQA=" }, { "id": "minecraft:warped_button", - "groupId": 101, + "groupId": 108, "block_state_b64": "CgAAAwgAYmxvY2tfaWQEAgAACAQAbmFtZRcAbWluZWNyYWZ0OndhcnBlZF9idXR0b24ECQBuYW1lX2hhc2jwkV2EU6Cn1QMKAG5ldHdvcmtfaWTnHnk1CgYAc3RhdGVzARIAYnV0dG9uX3ByZXNzZWRfYml0AAMQAGZhY2luZ19kaXJlY3Rpb24AAAAAAAMHAHZlcnNpb24hPBUBAA==" }, { "id": "minecraft:polished_blackstone_button", - "groupId": 101, + "groupId": 108, "block_state_b64": "CgAAAwgAYmxvY2tfaWQnAgAACAQAbmFtZSQAbWluZWNyYWZ0OnBvbGlzaGVkX2JsYWNrc3RvbmVfYnV0dG9uBAkAbmFtZV9oYXNojmxzQKS0S/EDCgBuZXR3b3JrX2lkDtQ95woGAHN0YXRlcwESAGJ1dHRvbl9wcmVzc2VkX2JpdAADEABmYWNpbmdfZGlyZWN0aW9uAAAAAAADBwB2ZXJzaW9uITwVAQA=" }, { "id": "minecraft:tripwire_hook", - "groupId": 102, + "groupId": 109, "block_state_b64": "CgAAAwgAYmxvY2tfaWSDAAAACAQAbmFtZRcAbWluZWNyYWZ0OnRyaXB3aXJlX2hvb2sECQBuYW1lX2hhc2gQdp+oGZLNnAMKAG5ldHdvcmtfaWSy+1KJCgYAc3RhdGVzAQwAYXR0YWNoZWRfYml0AAMJAGRpcmVjdGlvbgAAAAABCwBwb3dlcmVkX2JpdAAAAwcAdmVyc2lvbiE8FQEA" }, { "id": "minecraft:wooden_pressure_plate", - "groupId": 103, + "groupId": 110, "block_state_b64": "CgAAAwgAYmxvY2tfaWRIAAAACAQAbmFtZR8AbWluZWNyYWZ0Ondvb2Rlbl9wcmVzc3VyZV9wbGF0ZQQJAG5hbWVfaGFzaGkGs5kCuA74AwoAbmV0d29ya19pZDRzPNwKBgBzdGF0ZXMDDwByZWRzdG9uZV9zaWduYWwAAAAAAAMHAHZlcnNpb24hPBUBAA==" }, { "id": "minecraft:spruce_pressure_plate", - "groupId": 103, + "groupId": 110, "block_state_b64": "CgAAAwgAYmxvY2tfaWSZAQAACAQAbmFtZR8AbWluZWNyYWZ0OnNwcnVjZV9wcmVzc3VyZV9wbGF0ZQQJAG5hbWVfaGFzaNmwuq549fJKAwoAbmV0d29ya19pZLQMCw0KBgBzdGF0ZXMDDwByZWRzdG9uZV9zaWduYWwAAAAAAAMHAHZlcnNpb24hPBUBAA==" }, { "id": "minecraft:birch_pressure_plate", - "groupId": 103, + "groupId": 110, "block_state_b64": "CgAAAwgAYmxvY2tfaWSWAQAACAQAbmFtZR4AbWluZWNyYWZ0OmJpcmNoX3ByZXNzdXJlX3BsYXRlBAkAbmFtZV9oYXNorQkT9kDdlTwDCgBuZXR3b3JrX2lkH0G97AoGAHN0YXRlcwMPAHJlZHN0b25lX3NpZ25hbAAAAAAAAwcAdmVyc2lvbiE8FQEA" }, { "id": "minecraft:jungle_pressure_plate", - "groupId": 103, + "groupId": 110, "block_state_b64": "CgAAAwgAYmxvY2tfaWSYAQAACAQAbmFtZR8AbWluZWNyYWZ0Omp1bmdsZV9wcmVzc3VyZV9wbGF0ZQQJAG5hbWVfaGFzaJ7DcteCkb8/AwoAbmV0d29ya19pZLdPBSAKBgBzdGF0ZXMDDwByZWRzdG9uZV9zaWduYWwAAAAAAAMHAHZlcnNpb24hPBUBAA==" }, { "id": "minecraft:acacia_pressure_plate", - "groupId": 103, + "groupId": 110, "block_state_b64": "CgAAAwgAYmxvY2tfaWSVAQAACAQAbmFtZR8AbWluZWNyYWZ0OmFjYWNpYV9wcmVzc3VyZV9wbGF0ZQQJAG5hbWVfaGFzaC2frZtfoYqCAwoAbmV0d29ya19pZIDdI18KBgBzdGF0ZXMDDwByZWRzdG9uZV9zaWduYWwAAAAAAAMHAHZlcnNpb24hPBUBAA==" }, { "id": "minecraft:dark_oak_pressure_plate", - "groupId": 103, + "groupId": 110, "block_state_b64": "CgAAAwgAYmxvY2tfaWSXAQAACAQAbmFtZSEAbWluZWNyYWZ0OmRhcmtfb2FrX3ByZXNzdXJlX3BsYXRlBAkAbmFtZV9oYXNoHUCJsTy52pwDCgBuZXR3b3JrX2lkKpi8rAoGAHN0YXRlcwMPAHJlZHN0b25lX3NpZ25hbAAAAAAAAwcAdmVyc2lvbiE8FQEA" }, { "id": "minecraft:mangrove_pressure_plate", - "groupId": 103, + "groupId": 110, "block_state_b64": "CgAAAwgAYmxvY2tfaWTpAgAACAQAbmFtZSEAbWluZWNyYWZ0Om1hbmdyb3ZlX3ByZXNzdXJlX3BsYXRlBAkAbmFtZV9oYXNoiDsTfJaX100DCgBuZXR3b3JrX2lkuwWDyQoGAHN0YXRlcwMPAHJlZHN0b25lX3NpZ25hbAAAAAAAAwcAdmVyc2lvbiE8FQEA" }, { "id": "minecraft:cherry_pressure_plate", - "groupId": 103, + "groupId": 110, "block_state_b64": "CgAAAwgAYmxvY2tfaWQZAwAACAQAbmFtZR8AbWluZWNyYWZ0OmNoZXJyeV9wcmVzc3VyZV9wbGF0ZQQJAG5hbWVfaGFzaALMqYEZDUQHAwoAbmV0d29ya19pZPNT+r0KBgBzdGF0ZXMDDwByZWRzdG9uZV9zaWduYWwAAAAAAAMHAHZlcnNpb24hPBUBAA==" }, { "id": "minecraft:pale_oak_pressure_plate", - "groupId": 103, + "groupId": 110, "block_state_b64": "CgAAAwgAYmxvY2tfaWTkBAAACAQAbmFtZSEAbWluZWNyYWZ0OnBhbGVfb2FrX3ByZXNzdXJlX3BsYXRlBAkAbmFtZV9oYXNo8cvY7evY5xkDCgBuZXR3b3JrX2lkDmW0uAoGAHN0YXRlcwMPAHJlZHN0b25lX3NpZ25hbAAAAAAAAwcAdmVyc2lvbiE8FQEA" }, { "id": "minecraft:bamboo_pressure_plate", - "groupId": 103, + "groupId": 110, "block_state_b64": "CgAAAwgAYmxvY2tfaWQBAwAACAQAbmFtZR8AbWluZWNyYWZ0OmJhbWJvb19wcmVzc3VyZV9wbGF0ZQQJAG5hbWVfaGFzaNvxJ7NIAaqlAwoAbmV0d29ya19pZIZ8XnYKBgBzdGF0ZXMDDwByZWRzdG9uZV9zaWduYWwAAAAAAAMHAHZlcnNpb24hPBUBAA==" }, { "id": "minecraft:crimson_pressure_plate", - "groupId": 103, + "groupId": 110, "block_state_b64": "CgAAAwgAYmxvY2tfaWQFAgAACAQAbmFtZSAAbWluZWNyYWZ0OmNyaW1zb25fcHJlc3N1cmVfcGxhdGUECQBuYW1lX2hhc2hqBDVDAd31/gMKAG5ldHdvcmtfaWRmV18LCgYAc3RhdGVzAw8AcmVkc3RvbmVfc2lnbmFsAAAAAAADBwB2ZXJzaW9uITwVAQA=" }, { "id": "minecraft:warped_pressure_plate", - "groupId": 103, + "groupId": 110, "block_state_b64": "CgAAAwgAYmxvY2tfaWQGAgAACAQAbmFtZR8AbWluZWNyYWZ0OndhcnBlZF9wcmVzc3VyZV9wbGF0ZQQJAG5hbWVfaGFzaBxFoQksWtYUAwoAbmV0d29ya19pZJVRoIcKBgBzdGF0ZXMDDwByZWRzdG9uZV9zaWduYWwAAAAAAAMHAHZlcnNpb24hPBUBAA==" }, { "id": "minecraft:stone_pressure_plate", - "groupId": 103, + "groupId": 110, "block_state_b64": "CgAAAwgAYmxvY2tfaWRGAAAACAQAbmFtZR4AbWluZWNyYWZ0OnN0b25lX3ByZXNzdXJlX3BsYXRlBAkAbmFtZV9oYXNounJuTBUTrU8DCgBuZXR3b3JrX2lkjDydwQoGAHN0YXRlcwMPAHJlZHN0b25lX3NpZ25hbAAAAAAAAwcAdmVyc2lvbiE8FQEA" }, { "id": "minecraft:light_weighted_pressure_plate", - "groupId": 103, + "groupId": 110, "block_state_b64": "CgAAAwgAYmxvY2tfaWSTAAAACAQAbmFtZScAbWluZWNyYWZ0OmxpZ2h0X3dlaWdodGVkX3ByZXNzdXJlX3BsYXRlBAkAbmFtZV9oYXNoOyOJkNxLtkEDCgBuZXR3b3JrX2lkrr2AjgoGAHN0YXRlcwMPAHJlZHN0b25lX3NpZ25hbAAAAAAAAwcAdmVyc2lvbiE8FQEA" }, { "id": "minecraft:heavy_weighted_pressure_plate", - "groupId": 103, + "groupId": 110, "block_state_b64": "CgAAAwgAYmxvY2tfaWSUAAAACAQAbmFtZScAbWluZWNyYWZ0OmhlYXZ5X3dlaWdodGVkX3ByZXNzdXJlX3BsYXRlBAkAbmFtZV9oYXNoltgDmDvTajUDCgBuZXR3b3JrX2lkFxVKuQoGAHN0YXRlcwMPAHJlZHN0b25lX3NpZ25hbAAAAAAAAwcAdmVyc2lvbiE8FQEA" }, { "id": "minecraft:polished_blackstone_pressure_plate", - "groupId": 103, + "groupId": 110, "block_state_b64": "CgAAAwgAYmxvY2tfaWQmAgAACAQAbmFtZSwAbWluZWNyYWZ0OnBvbGlzaGVkX2JsYWNrc3RvbmVfcHJlc3N1cmVfcGxhdGUECQBuYW1lX2hhc2h65Ci6/CeGqwMKAG5ldHdvcmtfaWTaSW5xCgYAc3RhdGVzAw8AcmVkc3RvbmVfc2lnbmFsAAAAAAADBwB2ZXJzaW9uITwVAQA=" }, { "id": "minecraft:observer", - "groupId": 104, + "groupId": 111, "block_state_b64": "CgAAAwgAYmxvY2tfaWT7AAAACAQAbmFtZRIAbWluZWNyYWZ0Om9ic2VydmVyBAkAbmFtZV9oYXNoYhlh1lpmHTgDCgBuZXR3b3JrX2lkQEh55goGAHN0YXRlcwgaAG1pbmVjcmFmdDpmYWNpbmdfZGlyZWN0aW9uBABkb3duAQsAcG93ZXJlZF9iaXQAAAMHAHZlcnNpb24hPBUBAA==" }, { "id": "minecraft:daylight_detector", - "groupId": 104, + "groupId": 111, "block_state_b64": "CgAAAwgAYmxvY2tfaWSXAAAACAQAbmFtZRsAbWluZWNyYWZ0OmRheWxpZ2h0X2RldGVjdG9yBAkAbmFtZV9oYXNoV0F0s7B7PVgDCgBuZXR3b3JrX2lkri5afQoGAHN0YXRlcwMPAHJlZHN0b25lX3NpZ25hbAAAAAAAAwcAdmVyc2lvbiE8FQEA" }, { "id": "minecraft:repeater", - "groupId": 104 + "groupId": 111 }, { "id": "minecraft:comparator", - "groupId": 104 + "groupId": 111 }, { "id": "minecraft:hopper", - "groupId": 104 + "groupId": 111 }, { "id": "minecraft:dropper", - "groupId": 104, + "groupId": 111, "block_state_b64": "CgAAAwgAYmxvY2tfaWR9AAAACAQAbmFtZREAbWluZWNyYWZ0OmRyb3BwZXIECQBuYW1lX2hhc2joXP7XqU0l3QMKAG5ldHdvcmtfaWQfQN6zCgYAc3RhdGVzAxAAZmFjaW5nX2RpcmVjdGlvbgMAAAABDQB0cmlnZ2VyZWRfYml0AAADBwB2ZXJzaW9uITwVAQA=" }, { "id": "minecraft:dispenser", - "groupId": 104, + "groupId": 111, "block_state_b64": "CgAAAwgAYmxvY2tfaWQXAAAACAQAbmFtZRMAbWluZWNyYWZ0OmRpc3BlbnNlcgQJAG5hbWVfaGFzaP1RR+zAbYP2AwoAbmV0d29ya19pZGAayD0KBgBzdGF0ZXMDEABmYWNpbmdfZGlyZWN0aW9uAwAAAAENAHRyaWdnZXJlZF9iaXQAAAMHAHZlcnNpb24hPBUBAA==" }, { "id": "minecraft:crafter", - "groupId": 104, + "groupId": 111, "block_state_b64": "CgAAAwgAYmxvY2tfaWQ4AgAACAQAbmFtZREAbWluZWNyYWZ0OmNyYWZ0ZXIECQBuYW1lX2hhc2iLCT/rJmRN8QMKAG5ldHdvcmtfaWTPTbvrCgYAc3RhdGVzAQgAY3JhZnRpbmcACAsAb3JpZW50YXRpb24JAGRvd25fZWFzdAENAHRyaWdnZXJlZF9iaXQAAAMHAHZlcnNpb24hPBUBAA==" }, { "id": "minecraft:piston", - "groupId": 104, + "groupId": 111, "block_state_b64": "CgAAAwgAYmxvY2tfaWQhAAAACAQAbmFtZRAAbWluZWNyYWZ0OnBpc3RvbgQJAG5hbWVfaGFzaDs3AFh1fL0uAwoAbmV0d29ya19pZLD/5XQKBgBzdGF0ZXMDEABmYWNpbmdfZGlyZWN0aW9uAQAAAAADBwB2ZXJzaW9uITwVAQA=" }, { "id": "minecraft:sticky_piston", - "groupId": 104, + "groupId": 111, "block_state_b64": "CgAAAwgAYmxvY2tfaWQdAAAACAQAbmFtZRcAbWluZWNyYWZ0OnN0aWNreV9waXN0b24ECQBuYW1lX2hhc2hPFJFJSiJ0ZQMKAG5ldHdvcmtfaWT/MzCJCgYAc3RhdGVzAxAAZmFjaW5nX2RpcmVjdGlvbgEAAAAAAwcAdmVyc2lvbiE8FQEA" }, { "id": "minecraft:tnt", - "groupId": 104, + "groupId": 111, "block_state_b64": "CgAAAwgAYmxvY2tfaWQuAAAACAQAbmFtZQ0AbWluZWNyYWZ0OnRudAQJAG5hbWVfaGFzaEYOHwCvJH29AwoAbmV0d29ya19pZAXzHyUKBgBzdGF0ZXMBCwBleHBsb2RlX2JpdAAAAwcAdmVyc2lvbiE8FQEA" }, { "id": "minecraft:name_tag", - "groupId": 104 + "groupId": 111 }, { "id": "minecraft:loom", - "groupId": 104, + "groupId": 111, "block_state_b64": "CgAAAwgAYmxvY2tfaWTLAQAACAQAbmFtZQ4AbWluZWNyYWZ0Omxvb20ECQBuYW1lX2hhc2i7DKjAXNq8TAMKAG5ldHdvcmtfaWR/49HXCgYAc3RhdGVzAwkAZGlyZWN0aW9uAAAAAAADBwB2ZXJzaW9uITwVAQA=" }, { "id": "minecraft:banner", - "groupId": 105, + "groupId": 112, "nbt_b64": "CgAAAwQAVHlwZQAAAAAA" }, { "id": "minecraft:banner", "damage": 8, - "groupId": 105, + "groupId": 112, "nbt_b64": "CgAAAwQAVHlwZQAAAAAA" }, { "id": "minecraft:banner", "damage": 7, - "groupId": 105, + "groupId": 112, "nbt_b64": "CgAAAwQAVHlwZQAAAAAA" }, { "id": "minecraft:banner", "damage": 15, - "groupId": 105, + "groupId": 112, "nbt_b64": "CgAAAwQAVHlwZQAAAAAA" }, { "id": "minecraft:banner", "damage": 12, - "groupId": 105, + "groupId": 112, "nbt_b64": "CgAAAwQAVHlwZQAAAAAA" }, { "id": "minecraft:banner", "damage": 14, - "groupId": 105, + "groupId": 112, "nbt_b64": "CgAAAwQAVHlwZQAAAAAA" }, { "id": "minecraft:banner", "damage": 1, - "groupId": 105, + "groupId": 112, "nbt_b64": "CgAAAwQAVHlwZQAAAAAA" }, { "id": "minecraft:banner", "damage": 4, - "groupId": 105, + "groupId": 112, "nbt_b64": "CgAAAwQAVHlwZQAAAAAA" }, { "id": "minecraft:banner", "damage": 5, - "groupId": 105, + "groupId": 112, "nbt_b64": "CgAAAwQAVHlwZQAAAAAA" }, { "id": "minecraft:banner", "damage": 13, - "groupId": 105, + "groupId": 112, "nbt_b64": "CgAAAwQAVHlwZQAAAAAA" }, { "id": "minecraft:banner", "damage": 9, - "groupId": 105, + "groupId": 112, "nbt_b64": "CgAAAwQAVHlwZQAAAAAA" }, { "id": "minecraft:banner", "damage": 3, - "groupId": 105, + "groupId": 112, "nbt_b64": "CgAAAwQAVHlwZQAAAAAA" }, { "id": "minecraft:banner", "damage": 11, - "groupId": 105, + "groupId": 112, "nbt_b64": "CgAAAwQAVHlwZQAAAAAA" }, { "id": "minecraft:banner", "damage": 10, - "groupId": 105, + "groupId": 112, "nbt_b64": "CgAAAwQAVHlwZQAAAAAA" }, { "id": "minecraft:banner", "damage": 2, - "groupId": 105, + "groupId": 112, "nbt_b64": "CgAAAwQAVHlwZQAAAAAA" }, { "id": "minecraft:banner", "damage": 6, - "groupId": 105, + "groupId": 112, "nbt_b64": "CgAAAwQAVHlwZQAAAAAA" }, { "id": "minecraft:banner", "damage": 15, - "groupId": 105, + "groupId": 112, "nbt_b64": "CgAAAwQAVHlwZQEAAAAA" }, { "id": "minecraft:creeper_banner_pattern", - "groupId": 106 + "groupId": 113 }, { "id": "minecraft:skull_banner_pattern", - "groupId": 106 + "groupId": 113 }, { "id": "minecraft:flower_banner_pattern", - "groupId": 106 + "groupId": 113 }, { "id": "minecraft:mojang_banner_pattern", - "groupId": 106 + "groupId": 113 }, { "id": "minecraft:field_masoned_banner_pattern", - "groupId": 106 + "groupId": 113 }, { "id": "minecraft:bordure_indented_banner_pattern", - "groupId": 106 + "groupId": 113 }, { "id": "minecraft:piglin_banner_pattern", - "groupId": 106 + "groupId": 113 }, { "id": "minecraft:globe_banner_pattern", - "groupId": 106 + "groupId": 113 }, { "id": "minecraft:flow_banner_pattern", - "groupId": 106 + "groupId": 113 }, { "id": "minecraft:guster_banner_pattern", - "groupId": 106 + "groupId": 113 }, { "id": "minecraft:angler_pottery_sherd", - "groupId": 107 + "groupId": 114 }, { "id": "minecraft:archer_pottery_sherd", - "groupId": 107 + "groupId": 114 }, { "id": "minecraft:arms_up_pottery_sherd", - "groupId": 107 + "groupId": 114 }, { "id": "minecraft:blade_pottery_sherd", - "groupId": 107 + "groupId": 114 }, { "id": "minecraft:brewer_pottery_sherd", - "groupId": 107 + "groupId": 114 }, { "id": "minecraft:burn_pottery_sherd", - "groupId": 107 + "groupId": 114 }, { "id": "minecraft:danger_pottery_sherd", - "groupId": 107 + "groupId": 114 }, { "id": "minecraft:explorer_pottery_sherd", - "groupId": 107 + "groupId": 114 }, { "id": "minecraft:flow_pottery_sherd", - "groupId": 107 + "groupId": 114 }, { "id": "minecraft:friend_pottery_sherd", - "groupId": 107 + "groupId": 114 }, { "id": "minecraft:guster_pottery_sherd", - "groupId": 107 + "groupId": 114 }, { "id": "minecraft:heart_pottery_sherd", - "groupId": 107 + "groupId": 114 }, { "id": "minecraft:heartbreak_pottery_sherd", - "groupId": 107 + "groupId": 114 }, { "id": "minecraft:howl_pottery_sherd", - "groupId": 107 + "groupId": 114 }, { "id": "minecraft:miner_pottery_sherd", - "groupId": 107 + "groupId": 114 }, { "id": "minecraft:mourner_pottery_sherd", - "groupId": 107 + "groupId": 114 }, { "id": "minecraft:plenty_pottery_sherd", - "groupId": 107 + "groupId": 114 }, { "id": "minecraft:prize_pottery_sherd", - "groupId": 107 + "groupId": 114 }, { "id": "minecraft:scrape_pottery_sherd", - "groupId": 107 + "groupId": 114 }, { "id": "minecraft:sheaf_pottery_sherd", - "groupId": 107 + "groupId": 114 }, { "id": "minecraft:shelter_pottery_sherd", - "groupId": 107 + "groupId": 114 }, { "id": "minecraft:skull_pottery_sherd", - "groupId": 107 + "groupId": 114 }, { "id": "minecraft:snort_pottery_sherd", - "groupId": 107 + "groupId": 114 }, { "id": "minecraft:netherite_upgrade_smithing_template", - "groupId": 108 + "groupId": 115 }, { "id": "minecraft:sentry_armor_trim_smithing_template", - "groupId": 108 + "groupId": 115 }, { "id": "minecraft:vex_armor_trim_smithing_template", - "groupId": 108 + "groupId": 115 }, { "id": "minecraft:wild_armor_trim_smithing_template", - "groupId": 108 + "groupId": 115 }, { "id": "minecraft:coast_armor_trim_smithing_template", - "groupId": 108 + "groupId": 115 }, { "id": "minecraft:dune_armor_trim_smithing_template", - "groupId": 108 + "groupId": 115 }, { "id": "minecraft:wayfinder_armor_trim_smithing_template", - "groupId": 108 + "groupId": 115 }, { "id": "minecraft:shaper_armor_trim_smithing_template", - "groupId": 108 + "groupId": 115 }, { "id": "minecraft:raiser_armor_trim_smithing_template", - "groupId": 108 + "groupId": 115 }, { "id": "minecraft:host_armor_trim_smithing_template", - "groupId": 108 + "groupId": 115 }, { "id": "minecraft:ward_armor_trim_smithing_template", - "groupId": 108 + "groupId": 115 }, { "id": "minecraft:silence_armor_trim_smithing_template", - "groupId": 108 + "groupId": 115 }, { "id": "minecraft:tide_armor_trim_smithing_template", - "groupId": 108 + "groupId": 115 }, { "id": "minecraft:snout_armor_trim_smithing_template", - "groupId": 108 + "groupId": 115 }, { "id": "minecraft:rib_armor_trim_smithing_template", - "groupId": 108 + "groupId": 115 }, { "id": "minecraft:eye_armor_trim_smithing_template", - "groupId": 108 + "groupId": 115 }, { "id": "minecraft:spire_armor_trim_smithing_template", - "groupId": 108 + "groupId": 115 }, { "id": "minecraft:flow_armor_trim_smithing_template", - "groupId": 108 + "groupId": 115 }, { "id": "minecraft:bolt_armor_trim_smithing_template", - "groupId": 108 + "groupId": 115 }, { "id": "minecraft:firework_rocket", - "groupId": 109, + "groupId": 116, "nbt_b64": "CgAACgkARmlyZXdvcmtzCQoARXhwbG9zaW9ucwAAAAAAAQYARmxpZ2h0AQAA" }, { "id": "minecraft:firework_rocket", - "groupId": 109, + "groupId": 116, "nbt_b64": "CgAACgkARmlyZXdvcmtzCQoARXhwbG9zaW9ucwoBAAAABw0ARmlyZXdvcmtDb2xvcgEAAAAABwwARmlyZXdvcmtGYWRlAAAAAAEPAEZpcmV3b3JrRmxpY2tlcgABDQBGaXJld29ya1RyYWlsAAEMAEZpcmV3b3JrVHlwZQAAAQYARmxpZ2h0AQAA" }, { "id": "minecraft:firework_rocket", - "groupId": 109, + "groupId": 116, "nbt_b64": "CgAACgkARmlyZXdvcmtzCQoARXhwbG9zaW9ucwoBAAAABw0ARmlyZXdvcmtDb2xvcgEAAAAIBwwARmlyZXdvcmtGYWRlAAAAAAEPAEZpcmV3b3JrRmxpY2tlcgABDQBGaXJld29ya1RyYWlsAAEMAEZpcmV3b3JrVHlwZQAAAQYARmxpZ2h0AQAA" }, { "id": "minecraft:firework_rocket", - "groupId": 109, + "groupId": 116, "nbt_b64": "CgAACgkARmlyZXdvcmtzCQoARXhwbG9zaW9ucwoBAAAABw0ARmlyZXdvcmtDb2xvcgEAAAAHBwwARmlyZXdvcmtGYWRlAAAAAAEPAEZpcmV3b3JrRmxpY2tlcgABDQBGaXJld29ya1RyYWlsAAEMAEZpcmV3b3JrVHlwZQAAAQYARmxpZ2h0AQAA" }, { "id": "minecraft:firework_rocket", - "groupId": 109, + "groupId": 116, "nbt_b64": "CgAACgkARmlyZXdvcmtzCQoARXhwbG9zaW9ucwoBAAAABw0ARmlyZXdvcmtDb2xvcgEAAAAPBwwARmlyZXdvcmtGYWRlAAAAAAEPAEZpcmV3b3JrRmxpY2tlcgABDQBGaXJld29ya1RyYWlsAAEMAEZpcmV3b3JrVHlwZQAAAQYARmxpZ2h0AQAA" }, { "id": "minecraft:firework_rocket", - "groupId": 109, + "groupId": 116, "nbt_b64": "CgAACgkARmlyZXdvcmtzCQoARXhwbG9zaW9ucwoBAAAABw0ARmlyZXdvcmtDb2xvcgEAAAAMBwwARmlyZXdvcmtGYWRlAAAAAAEPAEZpcmV3b3JrRmxpY2tlcgABDQBGaXJld29ya1RyYWlsAAEMAEZpcmV3b3JrVHlwZQAAAQYARmxpZ2h0AQAA" }, { "id": "minecraft:firework_rocket", - "groupId": 109, + "groupId": 116, "nbt_b64": "CgAACgkARmlyZXdvcmtzCQoARXhwbG9zaW9ucwoBAAAABw0ARmlyZXdvcmtDb2xvcgEAAAAOBwwARmlyZXdvcmtGYWRlAAAAAAEPAEZpcmV3b3JrRmxpY2tlcgABDQBGaXJld29ya1RyYWlsAAEMAEZpcmV3b3JrVHlwZQAAAQYARmxpZ2h0AQAA" }, { "id": "minecraft:firework_rocket", - "groupId": 109, + "groupId": 116, "nbt_b64": "CgAACgkARmlyZXdvcmtzCQoARXhwbG9zaW9ucwoBAAAABw0ARmlyZXdvcmtDb2xvcgEAAAABBwwARmlyZXdvcmtGYWRlAAAAAAEPAEZpcmV3b3JrRmxpY2tlcgABDQBGaXJld29ya1RyYWlsAAEMAEZpcmV3b3JrVHlwZQAAAQYARmxpZ2h0AQAA" }, { "id": "minecraft:firework_rocket", - "groupId": 109, + "groupId": 116, "nbt_b64": "CgAACgkARmlyZXdvcmtzCQoARXhwbG9zaW9ucwoBAAAABw0ARmlyZXdvcmtDb2xvcgEAAAAEBwwARmlyZXdvcmtGYWRlAAAAAAEPAEZpcmV3b3JrRmxpY2tlcgABDQBGaXJld29ya1RyYWlsAAEMAEZpcmV3b3JrVHlwZQAAAQYARmxpZ2h0AQAA" }, { "id": "minecraft:firework_rocket", - "groupId": 109, + "groupId": 116, "nbt_b64": "CgAACgkARmlyZXdvcmtzCQoARXhwbG9zaW9ucwoBAAAABw0ARmlyZXdvcmtDb2xvcgEAAAAFBwwARmlyZXdvcmtGYWRlAAAAAAEPAEZpcmV3b3JrRmxpY2tlcgABDQBGaXJld29ya1RyYWlsAAEMAEZpcmV3b3JrVHlwZQAAAQYARmxpZ2h0AQAA" }, { "id": "minecraft:firework_rocket", - "groupId": 109, + "groupId": 116, "nbt_b64": "CgAACgkARmlyZXdvcmtzCQoARXhwbG9zaW9ucwoBAAAABw0ARmlyZXdvcmtDb2xvcgEAAAANBwwARmlyZXdvcmtGYWRlAAAAAAEPAEZpcmV3b3JrRmxpY2tlcgABDQBGaXJld29ya1RyYWlsAAEMAEZpcmV3b3JrVHlwZQAAAQYARmxpZ2h0AQAA" }, { "id": "minecraft:firework_rocket", - "groupId": 109, + "groupId": 116, "nbt_b64": "CgAACgkARmlyZXdvcmtzCQoARXhwbG9zaW9ucwoBAAAABw0ARmlyZXdvcmtDb2xvcgEAAAAJBwwARmlyZXdvcmtGYWRlAAAAAAEPAEZpcmV3b3JrRmxpY2tlcgABDQBGaXJld29ya1RyYWlsAAEMAEZpcmV3b3JrVHlwZQAAAQYARmxpZ2h0AQAA" }, { "id": "minecraft:firework_rocket", - "groupId": 109, + "groupId": 116, "nbt_b64": "CgAACgkARmlyZXdvcmtzCQoARXhwbG9zaW9ucwoBAAAABw0ARmlyZXdvcmtDb2xvcgEAAAADBwwARmlyZXdvcmtGYWRlAAAAAAEPAEZpcmV3b3JrRmxpY2tlcgABDQBGaXJld29ya1RyYWlsAAEMAEZpcmV3b3JrVHlwZQAAAQYARmxpZ2h0AQAA" }, { "id": "minecraft:firework_rocket", - "groupId": 109, + "groupId": 116, "nbt_b64": "CgAACgkARmlyZXdvcmtzCQoARXhwbG9zaW9ucwoBAAAABw0ARmlyZXdvcmtDb2xvcgEAAAALBwwARmlyZXdvcmtGYWRlAAAAAAEPAEZpcmV3b3JrRmxpY2tlcgABDQBGaXJld29ya1RyYWlsAAEMAEZpcmV3b3JrVHlwZQAAAQYARmxpZ2h0AQAA" }, { "id": "minecraft:firework_rocket", - "groupId": 109, + "groupId": 116, "nbt_b64": "CgAACgkARmlyZXdvcmtzCQoARXhwbG9zaW9ucwoBAAAABw0ARmlyZXdvcmtDb2xvcgEAAAAKBwwARmlyZXdvcmtGYWRlAAAAAAEPAEZpcmV3b3JrRmxpY2tlcgABDQBGaXJld29ya1RyYWlsAAEMAEZpcmV3b3JrVHlwZQAAAQYARmxpZ2h0AQAA" }, { "id": "minecraft:firework_rocket", - "groupId": 109, + "groupId": 116, "nbt_b64": "CgAACgkARmlyZXdvcmtzCQoARXhwbG9zaW9ucwoBAAAABw0ARmlyZXdvcmtDb2xvcgEAAAACBwwARmlyZXdvcmtGYWRlAAAAAAEPAEZpcmV3b3JrRmxpY2tlcgABDQBGaXJld29ya1RyYWlsAAEMAEZpcmV3b3JrVHlwZQAAAQYARmxpZ2h0AQAA" }, { "id": "minecraft:firework_rocket", - "groupId": 109, + "groupId": 116, "nbt_b64": "CgAACgkARmlyZXdvcmtzCQoARXhwbG9zaW9ucwoBAAAABw0ARmlyZXdvcmtDb2xvcgEAAAAGBwwARmlyZXdvcmtGYWRlAAAAAAEPAEZpcmV3b3JrRmxpY2tlcgABDQBGaXJld29ya1RyYWlsAAEMAEZpcmV3b3JrVHlwZQAAAQYARmxpZ2h0AQAA" }, { "id": "minecraft:firework_star", - "groupId": 110, + "groupId": 117, "nbt_b64": "CgAACg0ARmlyZXdvcmtzSXRlbQcNAEZpcmV3b3JrQ29sb3IBAAAAAAcMAEZpcmV3b3JrRmFkZQAAAAABDwBGaXJld29ya0ZsaWNrZXIAAQ0ARmlyZXdvcmtUcmFpbAABDABGaXJld29ya1R5cGUAAAMLAGN1c3RvbUNvbG9yIR0d/wA=" }, { "id": "minecraft:firework_star", "damage": 8, - "groupId": 110, + "groupId": 117, "nbt_b64": "CgAACg0ARmlyZXdvcmtzSXRlbQcNAEZpcmV3b3JrQ29sb3IBAAAACAcMAEZpcmV3b3JrRmFkZQAAAAABDwBGaXJld29ya0ZsaWNrZXIAAQ0ARmlyZXdvcmtUcmFpbAABDABGaXJld29ya1R5cGUAAAMLAGN1c3RvbUNvbG9yUk9H/wA=" }, { "id": "minecraft:firework_star", "damage": 7, - "groupId": 110, + "groupId": 117, "nbt_b64": "CgAACg0ARmlyZXdvcmtzSXRlbQcNAEZpcmV3b3JrQ29sb3IBAAAABwcMAEZpcmV3b3JrRmFkZQAAAAABDwBGaXJld29ya0ZsaWNrZXIAAQ0ARmlyZXdvcmtUcmFpbAABDABGaXJld29ya1R5cGUAAAMLAGN1c3RvbUNvbG9yl52d/wA=" }, { "id": "minecraft:firework_star", "damage": 15, - "groupId": 110, + "groupId": 117, "nbt_b64": "CgAACg0ARmlyZXdvcmtzSXRlbQcNAEZpcmV3b3JrQ29sb3IBAAAADwcMAEZpcmV3b3JrRmFkZQAAAAABDwBGaXJld29ya0ZsaWNrZXIAAQ0ARmlyZXdvcmtUcmFpbAABDABGaXJld29ya1R5cGUAAAMLAGN1c3RvbUNvbG9y8PDw/wA=" }, { "id": "minecraft:firework_star", "damage": 12, - "groupId": 110, + "groupId": 117, "nbt_b64": "CgAACg0ARmlyZXdvcmtzSXRlbQcNAEZpcmV3b3JrQ29sb3IBAAAADAcMAEZpcmV3b3JrRmFkZQAAAAABDwBGaXJld29ya0ZsaWNrZXIAAQ0ARmlyZXdvcmtUcmFpbAABDABGaXJld29ya1R5cGUAAAMLAGN1c3RvbUNvbG9y2rM6/wA=" }, { "id": "minecraft:firework_star", "damage": 14, - "groupId": 110, + "groupId": 117, "nbt_b64": "CgAACg0ARmlyZXdvcmtzSXRlbQcNAEZpcmV3b3JrQ29sb3IBAAAADgcMAEZpcmV3b3JrRmFkZQAAAAABDwBGaXJld29ya0ZsaWNrZXIAAQ0ARmlyZXdvcmtUcmFpbAABDABGaXJld29ya1R5cGUAAAMLAGN1c3RvbUNvbG9yHYD5/wA=" }, { "id": "minecraft:firework_star", "damage": 1, - "groupId": 110, + "groupId": 117, "nbt_b64": "CgAACg0ARmlyZXdvcmtzSXRlbQcNAEZpcmV3b3JrQ29sb3IBAAAAAQcMAEZpcmV3b3JrRmFkZQAAAAABDwBGaXJld29ya0ZsaWNrZXIAAQ0ARmlyZXdvcmtUcmFpbAABDABGaXJld29ya1R5cGUAAAMLAGN1c3RvbUNvbG9yJi6w/wA=" }, { "id": "minecraft:firework_star", "damage": 4, - "groupId": 110, + "groupId": 117, "nbt_b64": "CgAACg0ARmlyZXdvcmtzSXRlbQcNAEZpcmV3b3JrQ29sb3IBAAAABAcMAEZpcmV3b3JrRmFkZQAAAAABDwBGaXJld29ya0ZsaWNrZXIAAQ0ARmlyZXdvcmtUcmFpbAABDABGaXJld29ya1R5cGUAAAMLAGN1c3RvbUNvbG9yqkQ8/wA=" }, { "id": "minecraft:firework_star", "damage": 5, - "groupId": 110, + "groupId": 117, "nbt_b64": "CgAACg0ARmlyZXdvcmtzSXRlbQcNAEZpcmV3b3JrQ29sb3IBAAAABQcMAEZpcmV3b3JrRmFkZQAAAAABDwBGaXJld29ya0ZsaWNrZXIAAQ0ARmlyZXdvcmtUcmFpbAABDABGaXJld29ya1R5cGUAAAMLAGN1c3RvbUNvbG9yuDKJ/wA=" }, { "id": "minecraft:firework_star", "damage": 13, - "groupId": 110, + "groupId": 117, "nbt_b64": "CgAACg0ARmlyZXdvcmtzSXRlbQcNAEZpcmV3b3JrQ29sb3IBAAAADQcMAEZpcmV3b3JrRmFkZQAAAAABDwBGaXJld29ya0ZsaWNrZXIAAQ0ARmlyZXdvcmtUcmFpbAABDABGaXJld29ya1R5cGUAAAMLAGN1c3RvbUNvbG9yvU7H/wA=" }, { "id": "minecraft:firework_star", "damage": 9, - "groupId": 110, + "groupId": 117, "nbt_b64": "CgAACg0ARmlyZXdvcmtzSXRlbQcNAEZpcmV3b3JrQ29sb3IBAAAACQcMAEZpcmV3b3JrRmFkZQAAAAABDwBGaXJld29ya0ZsaWNrZXIAAQ0ARmlyZXdvcmtUcmFpbAABDABGaXJld29ya1R5cGUAAAMLAGN1c3RvbUNvbG9yqovz/wA=" }, { "id": "minecraft:firework_star", "damage": 3, - "groupId": 110, + "groupId": 117, "nbt_b64": "CgAACg0ARmlyZXdvcmtzSXRlbQcNAEZpcmV3b3JrQ29sb3IBAAAAAwcMAEZpcmV3b3JrRmFkZQAAAAABDwBGaXJld29ya0ZsaWNrZXIAAQ0ARmlyZXdvcmtUcmFpbAABDABGaXJld29ya1R5cGUAAAMLAGN1c3RvbUNvbG9yMlSD/wA=" }, { "id": "minecraft:firework_star", "damage": 11, - "groupId": 110, + "groupId": 117, "nbt_b64": "CgAACg0ARmlyZXdvcmtzSXRlbQcNAEZpcmV3b3JrQ29sb3IBAAAACwcMAEZpcmV3b3JrRmFkZQAAAAABDwBGaXJld29ya0ZsaWNrZXIAAQ0ARmlyZXdvcmtUcmFpbAABDABGaXJld29ya1R5cGUAAAMLAGN1c3RvbUNvbG9yPdj+/wA=" }, { "id": "minecraft:firework_star", "damage": 10, - "groupId": 110, + "groupId": 117, "nbt_b64": "CgAACg0ARmlyZXdvcmtzSXRlbQcNAEZpcmV3b3JrQ29sb3IBAAAACgcMAEZpcmV3b3JrRmFkZQAAAAABDwBGaXJld29ya0ZsaWNrZXIAAQ0ARmlyZXdvcmtUcmFpbAABDABGaXJld29ya1R5cGUAAAMLAGN1c3RvbUNvbG9yH8eA/wA=" }, { "id": "minecraft:firework_star", "damage": 2, - "groupId": 110, + "groupId": 117, "nbt_b64": "CgAACg0ARmlyZXdvcmtzSXRlbQcNAEZpcmV3b3JrQ29sb3IBAAAAAgcMAEZpcmV3b3JrRmFkZQAAAAABDwBGaXJld29ya0ZsaWNrZXIAAQ0ARmlyZXdvcmtUcmFpbAABDABGaXJld29ya1R5cGUAAAMLAGN1c3RvbUNvbG9yFnxe/wA=" }, { "id": "minecraft:firework_star", "damage": 6, - "groupId": 110, + "groupId": 117, "nbt_b64": "CgAACg0ARmlyZXdvcmtzSXRlbQcNAEZpcmV3b3JrQ29sb3IBAAAABgcMAEZpcmV3b3JrRmFkZQAAAAABDwBGaXJld29ya0ZsaWNrZXIAAQ0ARmlyZXdvcmtUcmFpbAABDABGaXJld29ya1R5cGUAAAMLAGN1c3RvbUNvbG9ynJwW/wA=" }, { - "id": "minecraft:chain", - "groupId": 111 + "id": "minecraft:iron_chain", + "groupId": 118, + "block_state_b64": "CgAAAwgAYmxvY2tfaWQdAgAACAQAbmFtZRQAbWluZWNyYWZ0Omlyb25fY2hhaW4ECQBuYW1lX2hhc2gkrXi9O5vY2AMKAG5ldHdvcmtfaWTyRk3kCgYAc3RhdGVzCAsAcGlsbGFyX2F4aXMBAHkAAwcAdmVyc2lvbiE8FQEA" + }, + { + "id": "minecraft:copper_chain", + "groupId": 118, + "block_state_b64": "CgAAAwgAYmxvY2tfaWQxBQAACAQAbmFtZRYAbWluZWNyYWZ0OmNvcHBlcl9jaGFpbgQJAG5hbWVfaGFzaB3LAqB3Qa1IAwoAbmV0d29ya19pZLNKiVkKBgBzdGF0ZXMICwBwaWxsYXJfYXhpcwEAeQADBwB2ZXJzaW9uITwVAQA=" + }, + { + "id": "minecraft:exposed_copper_chain", + "groupId": 118, + "block_state_b64": "CgAAAwgAYmxvY2tfaWQyBQAACAQAbmFtZR4AbWluZWNyYWZ0OmV4cG9zZWRfY29wcGVyX2NoYWluBAkAbmFtZV9oYXNo6kehJNktkokDCgBuZXR3b3JrX2lkohB2YAoGAHN0YXRlcwgLAHBpbGxhcl9heGlzAQB5AAMHAHZlcnNpb24hPBUBAA==" + }, + { + "id": "minecraft:weathered_copper_chain", + "groupId": 118, + "block_state_b64": "CgAAAwgAYmxvY2tfaWQzBQAACAQAbmFtZSAAbWluZWNyYWZ0OndlYXRoZXJlZF9jb3BwZXJfY2hhaW4ECQBuYW1lX2hhc2gnbqyBvBJfjgMKAG5ldHdvcmtfaWSH9D2xCgYAc3RhdGVzCAsAcGlsbGFyX2F4aXMBAHkAAwcAdmVyc2lvbiE8FQEA" + }, + { + "id": "minecraft:oxidized_copper_chain", + "groupId": 118, + "block_state_b64": "CgAAAwgAYmxvY2tfaWQ0BQAACAQAbmFtZR8AbWluZWNyYWZ0Om94aWRpemVkX2NvcHBlcl9jaGFpbgQJAG5hbWVfaGFzaGpU1uDJj7m9AwoAbmV0d29ya19pZDuRvTcKBgBzdGF0ZXMICwBwaWxsYXJfYXhpcwEAeQADBwB2ZXJzaW9uITwVAQA=" + }, + { + "id": "minecraft:waxed_copper_chain", + "groupId": 118, + "block_state_b64": "CgAAAwgAYmxvY2tfaWQ1BQAACAQAbmFtZRwAbWluZWNyYWZ0OndheGVkX2NvcHBlcl9jaGFpbgQJAG5hbWVfaGFzaG8pBxdVm6RbAwoAbmV0d29ya19pZCPhQmcKBgBzdGF0ZXMICwBwaWxsYXJfYXhpcwEAeQADBwB2ZXJzaW9uITwVAQA=" + }, + { + "id": "minecraft:waxed_exposed_copper_chain", + "groupId": 118, + "block_state_b64": "CgAAAwgAYmxvY2tfaWQ2BQAACAQAbmFtZSQAbWluZWNyYWZ0OndheGVkX2V4cG9zZWRfY29wcGVyX2NoYWluBAkAbmFtZV9oYXNo6AgGqMT7XQ0DCgBuZXR3b3JrX2lkUh+HuAoGAHN0YXRlcwgLAHBpbGxhcl9heGlzAQB5AAMHAHZlcnNpb24hPBUBAA==" + }, + { + "id": "minecraft:waxed_weathered_copper_chain", + "groupId": 118, + "block_state_b64": "CgAAAwgAYmxvY2tfaWQ3BQAACAQAbmFtZSYAbWluZWNyYWZ0OndheGVkX3dlYXRoZXJlZF9jb3BwZXJfY2hhaW4ECQBuYW1lX2hhc2h1iSpS9XIjAQMKAG5ldHdvcmtfaWTfx8l5CgYAc3RhdGVzCAsAcGlsbGFyX2F4aXMBAHkAAwcAdmVyc2lvbiE8FQEA" + }, + { + "id": "minecraft:waxed_oxidized_copper_chain", + "groupId": 118, + "block_state_b64": "CgAAAwgAYmxvY2tfaWQ4BQAACAQAbmFtZSUAbWluZWNyYWZ0OndheGVkX294aWRpemVkX2NvcHBlcl9jaGFpbgQJAG5hbWVfaGFzaERpBz/TsdZVAwoAbmV0d29ya19pZPu1q0wKBgBzdGF0ZXMICwBwaWxsYXJfYXhpcwEAeQADBwB2ZXJzaW9uITwVAQA=" }, { "id": "minecraft:target", - "groupId": 111, + "groupId": 119, "block_state_b64": "CgAAAwgAYmxvY2tfaWTuAQAACAQAbmFtZRAAbWluZWNyYWZ0OnRhcmdldAQJAG5hbWVfaGFzaJc66SVbYlaxAwoAbmV0d29ya19pZPBozs0KBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" }, { "id": "minecraft:decorated_pot", - "groupId": 111, + "groupId": 119, "block_state_b64": "CgAAAwgAYmxvY2tfaWQmAwAACAQAbmFtZRcAbWluZWNyYWZ0OmRlY29yYXRlZF9wb3QECQBuYW1lX2hhc2jjQgckn8VTvwMKAG5ldHdvcmtfaWRwvkUUCgYAc3RhdGVzAwkAZGlyZWN0aW9uAAAAAAADBwB2ZXJzaW9uITwVAQA=" }, { "id": "minecraft:trial_key", - "groupId": 111 + "groupId": 119 }, { "id": "minecraft:ominous_trial_key", - "groupId": 111 + "groupId": 119 } ] } \ No newline at end of file diff --git a/core/src/main/resources/bedrock/creative_items.1_21_80.json b/core/src/main/resources/bedrock/creative_items.1_21_80.json deleted file mode 100644 index dbe41f7ea..000000000 --- a/core/src/main/resources/bedrock/creative_items.1_21_80.json +++ /dev/null @@ -1,8960 +0,0 @@ -{ - "groups": [ - { - "name": "itemGroup.name.planks", - "category": "construction", - "icon": { - "id": "minecraft:oak_planks", - "block_state_b64": "CgAAAwgAYmxvY2tfaWQFAAAACAQAbmFtZRQAbWluZWNyYWZ0Om9ha19wbGFua3MECQBuYW1lX2hhc2ilMDLR92rQ4wMKAG5ldHdvcmtfaWS2GotyCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - } - }, - { - "name": "itemGroup.name.walls", - "category": "construction", - "icon": { - "id": "minecraft:cobblestone_wall", - "block_state_b64": "CgAAAwgAYmxvY2tfaWSLAAAACAQAbmFtZRoAbWluZWNyYWZ0OmNvYmJsZXN0b25lX3dhbGwECQBuYW1lX2hhc2hZu/xE7lYtNgMKAG5ldHdvcmtfaWSLY2XwCgYAc3RhdGVzCBkAd2FsbF9jb25uZWN0aW9uX3R5cGVfZWFzdAQAbm9uZQgaAHdhbGxfY29ubmVjdGlvbl90eXBlX25vcnRoBABub25lCBoAd2FsbF9jb25uZWN0aW9uX3R5cGVfc291dGgEAG5vbmUIGQB3YWxsX2Nvbm5lY3Rpb25fdHlwZV93ZXN0BABub25lAQ0Ad2FsbF9wb3N0X2JpdAAAAwcAdmVyc2lvbiE8FQEA" - } - }, - { - "name": "itemGroup.name.fence", - "category": "construction", - "icon": { - "id": "minecraft:oak_fence", - "block_state_b64": "CgAAAwgAYmxvY2tfaWRVAAAACAQAbmFtZRMAbWluZWNyYWZ0Om9ha19mZW5jZQQJAG5hbWVfaGFzaGEmid7AaCWRAwoAbmV0d29ya19pZDvPEXcKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - } - }, - { - "name": "itemGroup.name.fenceGate", - "category": "construction", - "icon": { - "id": "minecraft:fence_gate", - "block_state_b64": "CgAAAwgAYmxvY2tfaWRrAAAACAQAbmFtZRQAbWluZWNyYWZ0OmZlbmNlX2dhdGUECQBuYW1lX2hhc2hTxpjEDmRzAwMKAG5ldHdvcmtfaWRAoluQCgYAc3RhdGVzAQsAaW5fd2FsbF9iaXQACBwAbWluZWNyYWZ0OmNhcmRpbmFsX2RpcmVjdGlvbgUAc291dGgBCABvcGVuX2JpdAAAAwcAdmVyc2lvbiE8FQEA" - } - }, - { - "name": "itemGroup.name.stairs", - "category": "construction", - "icon": { - "id": "minecraft:stone_stairs", - "block_state_b64": "CgAAAwgAYmxvY2tfaWRDAAAACAQAbmFtZRYAbWluZWNyYWZ0OnN0b25lX3N0YWlycwQJAG5hbWVfaGFzaNRjqVC5GRVDAwoAbmV0d29ya19pZDcCv+MKBgBzdGF0ZXMBDwB1cHNpZGVfZG93bl9iaXQAAxAAd2VpcmRvX2RpcmVjdGlvbgAAAAAAAwcAdmVyc2lvbiE8FQEA" - } - }, - { - "name": "itemGroup.name.door", - "category": "construction", - "icon": { - "id": "minecraft:wooden_door" - } - }, - { - "name": "itemGroup.name.trapdoor", - "category": "construction", - "icon": { - "id": "minecraft:trapdoor", - "block_state_b64": "CgAAAwgAYmxvY2tfaWRgAAAACAQAbmFtZRIAbWluZWNyYWZ0OnRyYXBkb29yBAkAbmFtZV9oYXNotYiAJGtN0xADCgBuZXR3b3JrX2lkyTAWkAoGAHN0YXRlcwMJAGRpcmVjdGlvbgAAAAABCABvcGVuX2JpdAABDwB1cHNpZGVfZG93bl9iaXQAAAMHAHZlcnNpb24hPBUBAA==" - } - }, - { - "name": "", - "category": "construction", - "icon": { - "id": "minecraft:air" - } - }, - { - "name": "itemGroup.name.glass", - "category": "construction", - "icon": { - "id": "minecraft:glass", - "block_state_b64": "CgAAAwgAYmxvY2tfaWQUAAAACAQAbmFtZQ8AbWluZWNyYWZ0OmdsYXNzBAkAbmFtZV9oYXNowGJByfWff6gDCgBuZXR3b3JrX2lk0hdLNwoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - } - }, - { - "name": "itemGroup.name.glassPane", - "category": "construction", - "icon": { - "id": "minecraft:glass_pane", - "block_state_b64": "CgAAAwgAYmxvY2tfaWRmAAAACAQAbmFtZRQAbWluZWNyYWZ0OmdsYXNzX3BhbmUECQBuYW1lX2hhc2gRSBHwNMQ4gQMKAG5ldHdvcmtfaWRGwixuCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - } - }, - { - "name": "", - "category": "construction", - "icon": { - "id": "minecraft:air" - } - }, - { - "name": "itemGroup.name.slab", - "category": "construction", - "icon": { - "id": "minecraft:smooth_stone_slab", - "block_state_b64": "CgAAAwgAYmxvY2tfaWQsAAAACAQAbmFtZRsAbWluZWNyYWZ0OnNtb290aF9zdG9uZV9zbGFiBAkAbmFtZV9oYXNon5I1yVw74uMDCgBuZXR3b3JrX2lkqvjcBQoGAHN0YXRlcwgXAG1pbmVjcmFmdDp2ZXJ0aWNhbF9oYWxmBgBib3R0b20AAwcAdmVyc2lvbiE8FQEA" - } - }, - { - "name": "itemGroup.name.stoneBrick", - "category": "construction", - "icon": { - "id": "minecraft:stone_bricks", - "block_state_b64": "CgAAAwgAYmxvY2tfaWRiAAAACAQAbmFtZRYAbWluZWNyYWZ0OnN0b25lX2JyaWNrcwQJAG5hbWVfaGFzaGAiQu8VWVJRAwoAbmV0d29ya19pZH2DjXUKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - } - }, - { - "name": "", - "category": "construction", - "icon": { - "id": "minecraft:air" - } - }, - { - "name": "itemGroup.name.sandstone", - "category": "construction", - "icon": { - "id": "minecraft:sandstone", - "block_state_b64": "CgAAAwgAYmxvY2tfaWQYAAAACAQAbmFtZRMAbWluZWNyYWZ0OnNhbmRzdG9uZQQJAG5hbWVfaGFzaFEmWsEHFI1AAwoAbmV0d29ya19pZPsXMaQKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - } - }, - { - "name": "", - "category": "construction", - "icon": { - "id": "minecraft:air" - } - }, - { - "name": "itemGroup.name.copper", - "category": "construction", - "icon": { - "id": "minecraft:copper_block", - "block_state_b64": "CgAAAwgAYmxvY2tfaWRTAgAACAQAbmFtZRYAbWluZWNyYWZ0OmNvcHBlcl9ibG9jawQJAG5hbWVfaGFzaDVxnehsGaZ1AwoAbmV0d29ya19pZIiUodwKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - } - }, - { - "name": "", - "category": "construction", - "icon": { - "id": "minecraft:air" - } - }, - { - "name": "itemGroup.name.wool", - "category": "construction", - "icon": { - "id": "minecraft:white_wool", - "block_state_b64": "CgAAAwgAYmxvY2tfaWQjAAAACAQAbmFtZRQAbWluZWNyYWZ0OndoaXRlX3dvb2wECQBuYW1lX2hhc2jRWB7vaIEDiQMKAG5ldHdvcmtfaWSO8paQCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - } - }, - { - "name": "itemGroup.name.woolCarpet", - "category": "construction", - "icon": { - "id": "minecraft:white_carpet", - "block_state_b64": "CgAAAwgAYmxvY2tfaWSrAAAACAQAbmFtZRYAbWluZWNyYWZ0OndoaXRlX2NhcnBldAQJAG5hbWVfaGFzaNeMHTI1fWPXAwoAbmV0d29ya19pZEahDFcKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - } - }, - { - "name": "itemGroup.name.concretePowder", - "category": "construction", - "icon": { - "id": "minecraft:white_concrete_powder", - "block_state_b64": "CgAAAwgAYmxvY2tfaWTtAAAACAQAbmFtZR8AbWluZWNyYWZ0OndoaXRlX2NvbmNyZXRlX3Bvd2RlcgQJAG5hbWVfaGFzaFUk9iXVjwV8AwoAbmV0d29ya19pZJPZY8AKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - } - }, - { - "name": "itemGroup.name.concrete", - "category": "construction", - "icon": { - "id": "minecraft:white_concrete", - "block_state_b64": "CgAAAwgAYmxvY2tfaWTsAAAACAQAbmFtZRgAbWluZWNyYWZ0OndoaXRlX2NvbmNyZXRlBAkAbmFtZV9oYXNo6zAp7lsLlvkDCgBuZXR3b3JrX2lk3MAYQAoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - } - }, - { - "name": "itemGroup.name.stainedClay", - "category": "construction", - "icon": { - "id": "minecraft:hardened_clay", - "block_state_b64": "CgAAAwgAYmxvY2tfaWSsAAAACAQAbmFtZRcAbWluZWNyYWZ0OmhhcmRlbmVkX2NsYXkECQBuYW1lX2hhc2jrnRwCJ0krJAMKAG5ldHdvcmtfaWRBCOrrCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - } - }, - { - "name": "itemGroup.name.glazedTerracotta", - "category": "construction", - "icon": { - "id": "minecraft:white_glazed_terracotta", - "block_state_b64": "CgAAAwgAYmxvY2tfaWTcAAAACAQAbmFtZSEAbWluZWNyYWZ0OndoaXRlX2dsYXplZF90ZXJyYWNvdHRhBAkAbmFtZV9oYXNoiVzCdoHAJo0DCgBuZXR3b3JrX2lkIlj9AAoGAHN0YXRlcwMQAGZhY2luZ19kaXJlY3Rpb24AAAAAAAMHAHZlcnNpb24hPBUBAA==" - } - }, - { - "name": "", - "category": "construction", - "icon": { - "id": "minecraft:air" - } - }, - { - "name": "", - "category": "nature", - "icon": { - "id": "minecraft:air" - } - }, - { - "name": "itemGroup.name.ore", - "category": "nature", - "icon": { - "id": "minecraft:iron_ore", - "block_state_b64": "CgAAAwgAYmxvY2tfaWQPAAAACAQAbmFtZRIAbWluZWNyYWZ0Omlyb25fb3JlBAkAbmFtZV9oYXNoS7BYtLnfx3gDCgBuZXR3b3JrX2lk3loneQoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - } - }, - { - "name": "itemGroup.name.stone", - "category": "nature", - "icon": { - "id": "minecraft:stone", - "block_state_b64": "CgAAAwgAYmxvY2tfaWQBAAAACAQAbmFtZQ8AbWluZWNyYWZ0OnN0b25lBAkAbmFtZV9oYXNoE3mqhJxzJycDCgBuZXR3b3JrX2lkIQ4xgAoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - } - }, - { - "name": "", - "category": "nature", - "icon": { - "id": "minecraft:air" - } - }, - { - "name": "itemGroup.name.log", - "category": "nature", - "icon": { - "id": "minecraft:oak_log", - "block_state_b64": "CgAAAwgAYmxvY2tfaWQRAAAACAQAbmFtZREAbWluZWNyYWZ0Om9ha19sb2cECQBuYW1lX2hhc2ho6TS+K7PZFQMKAG5ldHdvcmtfaWQjfjoxCgYAc3RhdGVzCAsAcGlsbGFyX2F4aXMBAHkAAwcAdmVyc2lvbiE8FQEA" - } - }, - { - "name": "itemGroup.name.wood", - "category": "nature", - "icon": { - "id": "minecraft:oak_wood", - "block_state_b64": "CgAAAwgAYmxvY2tfaWTTAQAACAQAbmFtZRIAbWluZWNyYWZ0Om9ha193b29kBAkAbmFtZV9oYXNoqQIkuVPyJX0DCgBuZXR3b3JrX2lku2G1YAoGAHN0YXRlcwgLAHBpbGxhcl9heGlzAQB5AAMHAHZlcnNpb24hPBUBAA==" - } - }, - { - "name": "itemGroup.name.leaves", - "category": "nature", - "icon": { - "id": "minecraft:oak_leaves", - "block_state_b64": "CgAAAwgAYmxvY2tfaWQSAAAACAQAbmFtZRQAbWluZWNyYWZ0Om9ha19sZWF2ZXMECQBuYW1lX2hhc2h6O4xGqA2oKgMKAG5ldHdvcmtfaWT98c59CgYAc3RhdGVzAQ4AcGVyc2lzdGVudF9iaXQAAQoAdXBkYXRlX2JpdAAAAwcAdmVyc2lvbiE8FQEA" - } - }, - { - "name": "itemGroup.name.sapling", - "category": "nature", - "icon": { - "id": "minecraft:oak_sapling", - "block_state_b64": "CgAAAwgAYmxvY2tfaWQGAAAACAQAbmFtZRUAbWluZWNyYWZ0Om9ha19zYXBsaW5nBAkAbmFtZV9oYXNoogXcT9QfjiUDCgBuZXR3b3JrX2lkG22C+AoGAHN0YXRlcwEHAGFnZV9iaXQAAAMHAHZlcnNpb24hPBUBAA==" - } - }, - { - "name": "", - "category": "nature", - "icon": { - "id": "minecraft:air" - } - }, - { - "name": "itemGroup.name.seed", - "category": "nature", - "icon": { - "id": "minecraft:wheat_seeds" - } - }, - { - "name": "itemGroup.name.crop", - "category": "nature", - "icon": { - "id": "minecraft:wheat" - } - }, - { - "name": "", - "category": "nature", - "icon": { - "id": "minecraft:air" - } - }, - { - "name": "itemGroup.name.grass", - "category": "nature", - "icon": { - "id": "minecraft:fern", - "block_state_b64": "CgAAAwgAYmxvY2tfaWRPBAAACAQAbmFtZQ4AbWluZWNyYWZ0OmZlcm4ECQBuYW1lX2hhc2iHbj3yXFn4owMKAG5ldHdvcmtfaWQKC6u7CgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - } - }, - { - "name": "itemGroup.name.coral_decorations", - "category": "nature", - "icon": { - "id": "minecraft:fire_coral", - "block_state_b64": "CgAAAwgAYmxvY2tfaWRGAwAACAQAbmFtZRQAbWluZWNyYWZ0OmZpcmVfY29yYWwECQBuYW1lX2hhc2hOHyyECVQVJwMKAG5ldHdvcmtfaWS9vF0UCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - } - }, - { - "name": "itemGroup.name.flower", - "category": "nature", - "icon": { - "id": "minecraft:dandelion", - "block_state_b64": "CgAAAwgAYmxvY2tfaWQlAAAACAQAbmFtZRMAbWluZWNyYWZ0OmRhbmRlbGlvbgQJAG5hbWVfaGFzaBJ3bEUi+Nn/AwoAbmV0d29ya19pZBjjC44KBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - } - }, - { - "name": "itemGroup.name.dye", - "category": "nature", - "icon": { - "id": "minecraft:yellow_dye" - } - }, - { - "name": "", - "category": "nature", - "icon": { - "id": "minecraft:air" - } - }, - { - "name": "itemGroup.name.rawFood", - "category": "nature", - "icon": { - "id": "minecraft:chicken" - } - }, - { - "name": "itemGroup.name.mushroom", - "category": "nature", - "icon": { - "id": "minecraft:brown_mushroom", - "block_state_b64": "CgAAAwgAYmxvY2tfaWQnAAAACAQAbmFtZRgAbWluZWNyYWZ0OmJyb3duX211c2hyb29tBAkAbmFtZV9oYXNonYw/FO78WDoDCgBuZXR3b3JrX2lkLh1OXAoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - } - }, - { - "name": "", - "category": "nature", - "icon": { - "id": "minecraft:air" - } - }, - { - "name": "itemGroup.name.monsterStoneEgg", - "category": "nature", - "icon": { - "id": "minecraft:infested_stone", - "block_state_b64": "CgAAAwgAYmxvY2tfaWRhAAAACAQAbmFtZRgAbWluZWNyYWZ0OmluZmVzdGVkX3N0b25lBAkAbmFtZV9oYXNoxnRcHDu4zqQDCgBuZXR3b3JrX2lkpfcnsgoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - } - }, - { - "name": "", - "category": "nature", - "icon": { - "id": "minecraft:air" - } - }, - { - "name": "itemGroup.name.mobEgg", - "category": "nature", - "icon": { - "id": "minecraft:chicken_spawn_egg" - } - }, - { - "name": "", - "category": "nature", - "icon": { - "id": "minecraft:air" - } - }, - { - "name": "itemGroup.name.coral", - "category": "nature", - "icon": { - "id": "minecraft:tube_coral_block", - "block_state_b64": "CgAAAwgAYmxvY2tfaWSDAQAACAQAbmFtZRoAbWluZWNyYWZ0OnR1YmVfY29yYWxfYmxvY2sECQBuYW1lX2hhc2iGkaiR7Eot4wMKAG5ldHdvcmtfaWQPNJ6sCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - } - }, - { - "name": "itemGroup.name.sculk", - "category": "nature", - "icon": { - "id": "minecraft:sculk", - "block_state_b64": "CgAAAwgAYmxvY2tfaWTJAgAACAQAbmFtZQ8AbWluZWNyYWZ0OnNjdWxrBAkAbmFtZV9oYXNo2Lq7T5yQF8kDCgBuZXR3b3JrX2lkyqUPPgoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - } - }, - { - "name": "", - "category": "nature", - "icon": { - "id": "minecraft:air" - } - }, - { - "name": "itemGroup.name.helmet", - "category": "equipment", - "icon": { - "id": "minecraft:leather_helmet" - } - }, - { - "name": "itemGroup.name.chestplate", - "category": "equipment", - "icon": { - "id": "minecraft:leather_chestplate" - } - }, - { - "name": "itemGroup.name.leggings", - "category": "equipment", - "icon": { - "id": "minecraft:leather_leggings" - } - }, - { - "name": "itemGroup.name.boots", - "category": "equipment", - "icon": { - "id": "minecraft:leather_boots" - } - }, - { - "name": "itemGroup.name.sword", - "category": "equipment", - "icon": { - "id": "minecraft:wooden_sword" - } - }, - { - "name": "itemGroup.name.axe", - "category": "equipment", - "icon": { - "id": "minecraft:wooden_axe" - } - }, - { - "name": "itemGroup.name.pickaxe", - "category": "equipment", - "icon": { - "id": "minecraft:wooden_pickaxe" - } - }, - { - "name": "itemGroup.name.shovel", - "category": "equipment", - "icon": { - "id": "minecraft:wooden_shovel" - } - }, - { - "name": "itemGroup.name.hoe", - "category": "equipment", - "icon": { - "id": "minecraft:wooden_hoe" - } - }, - { - "name": "", - "category": "equipment", - "icon": { - "id": "minecraft:air" - } - }, - { - "name": "itemGroup.name.arrow", - "category": "equipment", - "icon": { - "id": "minecraft:arrow" - } - }, - { - "name": "", - "category": "equipment", - "icon": { - "id": "minecraft:air" - } - }, - { - "name": "itemGroup.name.cookedFood", - "category": "equipment", - "icon": { - "id": "minecraft:cooked_chicken" - } - }, - { - "name": "itemGroup.name.miscFood", - "category": "equipment", - "icon": { - "id": "minecraft:bread" - } - }, - { - "name": "", - "category": "equipment", - "icon": { - "id": "minecraft:air" - } - }, - { - "name": "itemGroup.name.goatHorn", - "category": "equipment", - "icon": { - "id": "minecraft:goat_horn" - } - }, - { - "name": "", - "category": "equipment", - "icon": { - "id": "minecraft:air" - } - }, - { - "name": "itemGroup.name.bundles", - "category": "equipment", - "icon": { - "id": "minecraft:bundle" - } - }, - { - "name": "itemGroup.name.horseArmor", - "category": "equipment", - "icon": { - "id": "minecraft:leather_horse_armor" - } - }, - { - "name": "", - "category": "equipment", - "icon": { - "id": "minecraft:air" - } - }, - { - "name": "itemGroup.name.potion", - "category": "equipment", - "icon": { - "id": "minecraft:potion" - } - }, - { - "name": "itemGroup.name.splashPotion", - "category": "equipment", - "icon": { - "id": "minecraft:splash_potion" - } - }, - { - "name": "itemGroup.name.lingeringPotion", - "category": "equipment", - "icon": { - "id": "minecraft:lingering_potion" - } - }, - { - "name": "itemGroup.name.ominousBottle", - "category": "equipment", - "icon": { - "id": "minecraft:ominous_bottle" - } - }, - { - "name": "", - "category": "equipment", - "icon": { - "id": "minecraft:air" - } - }, - { - "name": "", - "category": "items", - "icon": { - "id": "minecraft:air" - } - }, - { - "name": "itemGroup.name.bed", - "category": "items", - "icon": { - "id": "minecraft:bed" - } - }, - { - "name": "", - "category": "items", - "icon": { - "id": "minecraft:air" - } - }, - { - "name": "itemGroup.name.candles", - "category": "items", - "icon": { - "id": "minecraft:candle", - "block_state_b64": "CgAAAwgAYmxvY2tfaWSbAgAACAQAbmFtZRAAbWluZWNyYWZ0OmNhbmRsZQQJAG5hbWVfaGFzaHPd+MsNdWTfAwoAbmV0d29ya19pZHsBMA0KBgBzdGF0ZXMDBwBjYW5kbGVzAAAAAAEDAGxpdAAAAwcAdmVyc2lvbiE8FQEA" - } - }, - { - "name": "", - "category": "items", - "icon": { - "id": "minecraft:air" - } - }, - { - "name": "itemGroup.name.anvil", - "category": "items", - "icon": { - "id": "minecraft:anvil", - "block_state_b64": "CgAAAwgAYmxvY2tfaWSRAAAACAQAbmFtZQ8AbWluZWNyYWZ0OmFudmlsBAkAbmFtZV9oYXNoNqB3fgcUCbwDCgBuZXR3b3JrX2lkqXzNjwoGAHN0YXRlcwgcAG1pbmVjcmFmdDpjYXJkaW5hbF9kaXJlY3Rpb24FAHNvdXRoAAMHAHZlcnNpb24hPBUBAA==" - } - }, - { - "name": "", - "category": "items", - "icon": { - "id": "minecraft:air" - } - }, - { - "name": "itemGroup.name.chest", - "category": "items", - "icon": { - "id": "minecraft:chest", - "block_state_b64": "CgAAAwgAYmxvY2tfaWQ2AAAACAQAbmFtZQ8AbWluZWNyYWZ0OmNoZXN0BAkAbmFtZV9oYXNog9ozMxlcA88DCgBuZXR3b3JrX2lkDkOFvAoGAHN0YXRlcwgcAG1pbmVjcmFmdDpjYXJkaW5hbF9kaXJlY3Rpb24FAG5vcnRoAAMHAHZlcnNpb24hPBUBAA==" - } - }, - { - "name": "", - "category": "items", - "icon": { - "id": "minecraft:air" - } - }, - { - "name": "itemGroup.name.shulkerBox", - "category": "items", - "icon": { - "id": "minecraft:undyed_shulker_box", - "block_state_b64": "CgAAAwgAYmxvY2tfaWTNAAAACAQAbmFtZRwAbWluZWNyYWZ0OnVuZHllZF9zaHVsa2VyX2JveAQJAG5hbWVfaGFzaOC9mypm/MlBAwoAbmV0d29ya19pZJ8rxp0KBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - } - }, - { - "name": "", - "category": "items", - "icon": { - "id": "minecraft:air" - } - }, - { - "name": "itemGroup.name.record", - "category": "items", - "icon": { - "id": "minecraft:music_disc_13" - } - }, - { - "name": "", - "category": "items", - "icon": { - "id": "minecraft:air" - } - }, - { - "name": "itemGroup.name.sign", - "category": "items", - "icon": { - "id": "minecraft:oak_sign" - } - }, - { - "name": "itemGroup.name.hanging_sign", - "category": "items", - "icon": { - "id": "minecraft:oak_hanging_sign" - } - }, - { - "name": "", - "category": "items", - "icon": { - "id": "minecraft:air" - } - }, - { - "name": "itemGroup.name.skull", - "category": "items", - "icon": { - "id": "minecraft:creeper_head", - "block_state_b64": "CgAAAwgAYmxvY2tfaWTHBAAACAQAbmFtZRYAbWluZWNyYWZ0OmNyZWVwZXJfaGVhZAQJAG5hbWVfaGFzaCvAGFMS/RqVAwoAbmV0d29ya19pZEfskXYKBgBzdGF0ZXMDEABmYWNpbmdfZGlyZWN0aW9uAAAAAAADBwB2ZXJzaW9uITwVAQA=" - } - }, - { - "name": "", - "category": "items", - "icon": { - "id": "minecraft:air" - } - }, - { - "name": "itemGroup.name.enchantedBook", - "category": "items", - "icon": { - "id": "minecraft:enchanted_book", - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQAAAIDAGx2bAEAAAA=" - } - }, - { - "name": "itemGroup.name.boat", - "category": "items", - "icon": { - "id": "minecraft:oak_boat" - } - }, - { - "name": "itemGroup.name.chestboat", - "category": "items", - "icon": { - "id": "minecraft:oak_chest_boat" - } - }, - { - "name": "itemGroup.name.rail", - "category": "items", - "icon": { - "id": "minecraft:rail", - "block_state_b64": "CgAAAwgAYmxvY2tfaWRCAAAACAQAbmFtZQ4AbWluZWNyYWZ0OnJhaWwECQBuYW1lX2hhc2hUzmhUXYJDUQMKAG5ldHdvcmtfaWR+Sp6YCgYAc3RhdGVzAw4AcmFpbF9kaXJlY3Rpb24AAAAAAAMHAHZlcnNpb24hPBUBAA==" - } - }, - { - "name": "itemGroup.name.minecart", - "category": "items", - "icon": { - "id": "minecraft:minecart" - } - }, - { - "name": "", - "category": "items", - "icon": { - "id": "minecraft:air" - } - }, - { - "name": "itemGroup.name.buttons", - "category": "items", - "icon": { - "id": "minecraft:wooden_button", - "block_state_b64": "CgAAAwgAYmxvY2tfaWSPAAAACAQAbmFtZRcAbWluZWNyYWZ0Ondvb2Rlbl9idXR0b24ECQBuYW1lX2hhc2hR7PgSTQt0sQMKAG5ldHdvcmtfaWSU07kYCgYAc3RhdGVzARIAYnV0dG9uX3ByZXNzZWRfYml0AAMQAGZhY2luZ19kaXJlY3Rpb24AAAAAAAMHAHZlcnNpb24hPBUBAA==" - } - }, - { - "name": "", - "category": "items", - "icon": { - "id": "minecraft:air" - } - }, - { - "name": "itemGroup.name.pressurePlate", - "category": "items", - "icon": { - "id": "minecraft:wooden_pressure_plate", - "block_state_b64": "CgAAAwgAYmxvY2tfaWRIAAAACAQAbmFtZR8AbWluZWNyYWZ0Ondvb2Rlbl9wcmVzc3VyZV9wbGF0ZQQJAG5hbWVfaGFzaGkGs5kCuA74AwoAbmV0d29ya19pZDRzPNwKBgBzdGF0ZXMDDwByZWRzdG9uZV9zaWduYWwAAAAAAAMHAHZlcnNpb24hPBUBAA==" - } - }, - { - "name": "", - "category": "items", - "icon": { - "id": "minecraft:air" - } - }, - { - "name": "itemGroup.name.banner", - "category": "items", - "icon": { - "id": "minecraft:banner" - } - }, - { - "name": "itemGroup.name.banner_pattern", - "category": "items", - "icon": { - "id": "minecraft:creeper_banner_pattern" - } - }, - { - "name": "itemGroup.name.potterySherds", - "category": "items", - "icon": { - "id": "minecraft:archer_pottery_sherd" - } - }, - { - "name": "itemGroup.name.smithing_templates", - "category": "items", - "icon": { - "id": "minecraft:netherite_upgrade_smithing_template" - } - }, - { - "name": "itemGroup.name.firework", - "category": "items", - "icon": { - "id": "minecraft:firework_rocket" - } - }, - { - "name": "itemGroup.name.fireworkStars", - "category": "items", - "icon": { - "id": "minecraft:firework_star" - } - }, - { - "name": "", - "category": "items", - "icon": { - "id": "minecraft:air" - } - } - ], - "items": [ - { - "id": "minecraft:oak_planks", - "groupId": 0, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQFAAAACAQAbmFtZRQAbWluZWNyYWZ0Om9ha19wbGFua3MECQBuYW1lX2hhc2ilMDLR92rQ4wMKAG5ldHdvcmtfaWS2GotyCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:spruce_planks", - "groupId": 0, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTiAwAACAQAbmFtZRcAbWluZWNyYWZ0OnNwcnVjZV9wbGFua3MECQBuYW1lX2hhc2iumBkmFGFE8gMKAG5ldHdvcmtfaWSo8TFgCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:birch_planks", - "groupId": 0, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTjAwAACAQAbmFtZRYAbWluZWNyYWZ0OmJpcmNoX3BsYW5rcwQJAG5hbWVfaGFzaLrrAKJqV2WFAwoAbmV0d29ya19pZL+e3ZAKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:jungle_planks", - "groupId": 0, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTkAwAACAQAbmFtZRcAbWluZWNyYWZ0Omp1bmdsZV9wbGFua3MECQBuYW1lX2hhc2iBM3k4T3FAugMKAG5ldHdvcmtfaWSXUmBCCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:acacia_planks", - "groupId": 0, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTlAwAACAQAbmFtZRcAbWluZWNyYWZ0OmFjYWNpYV9wbGFua3MECQBuYW1lX2hhc2g60edJxO5/aAMKAG5ldHdvcmtfaWTUXozECgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:dark_oak_planks", - "groupId": 0, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTmAwAACAQAbmFtZRkAbWluZWNyYWZ0OmRhcmtfb2FrX3BsYW5rcwQJAG5hbWVfaGFzaAr64wkQ9cA7AwoAbmV0d29ya19pZFbMeR0KBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:mangrove_planks", - "groupId": 0, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTlAgAACAQAbmFtZRkAbWluZWNyYWZ0Om1hbmdyb3ZlX3BsYW5rcwQJAG5hbWVfaGFzaPvLtcEA0F8xAwoAbmV0d29ya19pZEvnlCYKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:cherry_planks", - "groupId": 0, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQYAwAACAQAbmFtZRcAbWluZWNyYWZ0OmNoZXJyeV9wbGFua3MECQBuYW1lX2hhc2hNIvVh/lVW7gMKAG5ldHdvcmtfaWQTXpRoCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:pale_oak_planks", - "groupId": 0, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTjBAAACAQAbmFtZRkAbWluZWNyYWZ0OnBhbGVfb2FrX3BsYW5rcwQJAG5hbWVfaGFzaDbrgXmqzgxDAwoAbmV0d29ya19pZFpM6OoKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:bamboo_planks", - "groupId": 0, - "block_state_b64": "CgAAAwgAYmxvY2tfaWT9AgAACAQAbmFtZRcAbWluZWNyYWZ0OmJhbWJvb19wbGFua3MECQBuYW1lX2hhc2gYnjNz7SCCjgMKAG5ldHdvcmtfaWTi8ySSCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:bamboo_mosaic", - "groupId": 0, - "block_state_b64": "CgAAAwgAYmxvY2tfaWT8AgAACAQAbmFtZRcAbWluZWNyYWZ0OmJhbWJvb19tb3NhaWMECQBuYW1lX2hhc2izSEgiMKOp/AMKAG5ldHdvcmtfaWQZ/p8xCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:crimson_planks", - "groupId": 0, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTxAQAACAQAbmFtZRgAbWluZWNyYWZ0OmNyaW1zb25fcGxhbmtzBAkAbmFtZV9oYXNoJc5IKqNXJnwDCgBuZXR3b3JrX2lkwtJDdQoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:warped_planks", - "groupId": 0, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTyAQAACAQAbmFtZRcAbWluZWNyYWZ0OndhcnBlZF9wbGFua3MECQBuYW1lX2hhc2g3yGXEWhe6LgMKAG5ldHdvcmtfaWStTABvCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:cobblestone_wall", - "groupId": 1, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSLAAAACAQAbmFtZRoAbWluZWNyYWZ0OmNvYmJsZXN0b25lX3dhbGwECQBuYW1lX2hhc2hZu/xE7lYtNgMKAG5ldHdvcmtfaWSLY2XwCgYAc3RhdGVzCBkAd2FsbF9jb25uZWN0aW9uX3R5cGVfZWFzdAQAbm9uZQgaAHdhbGxfY29ubmVjdGlvbl90eXBlX25vcnRoBABub25lCBoAd2FsbF9jb25uZWN0aW9uX3R5cGVfc291dGgEAG5vbmUIGQB3YWxsX2Nvbm5lY3Rpb25fdHlwZV93ZXN0BABub25lAQ0Ad2FsbF9wb3N0X2JpdAAAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:mossy_cobblestone_wall", - "groupId": 1, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTKBAAACAQAbmFtZSAAbWluZWNyYWZ0Om1vc3N5X2NvYmJsZXN0b25lX3dhbGwECQBuYW1lX2hhc2gHUQMwwFQeNQMKAG5ldHdvcmtfaWRzPhG8CgYAc3RhdGVzCBkAd2FsbF9jb25uZWN0aW9uX3R5cGVfZWFzdAQAbm9uZQgaAHdhbGxfY29ubmVjdGlvbl90eXBlX25vcnRoBABub25lCBoAd2FsbF9jb25uZWN0aW9uX3R5cGVfc291dGgEAG5vbmUIGQB3YWxsX2Nvbm5lY3Rpb25fdHlwZV93ZXN0BABub25lAQ0Ad2FsbF9wb3N0X2JpdAAAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:granite_wall", - "groupId": 1, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTLBAAACAQAbmFtZRYAbWluZWNyYWZ0OmdyYW5pdGVfd2FsbAQJAG5hbWVfaGFzaE1GmM5AU0qUAwoAbmV0d29ya19pZE/UoPUKBgBzdGF0ZXMIGQB3YWxsX2Nvbm5lY3Rpb25fdHlwZV9lYXN0BABub25lCBoAd2FsbF9jb25uZWN0aW9uX3R5cGVfbm9ydGgEAG5vbmUIGgB3YWxsX2Nvbm5lY3Rpb25fdHlwZV9zb3V0aAQAbm9uZQgZAHdhbGxfY29ubmVjdGlvbl90eXBlX3dlc3QEAG5vbmUBDQB3YWxsX3Bvc3RfYml0AAADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:diorite_wall", - "groupId": 1, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTMBAAACAQAbmFtZRYAbWluZWNyYWZ0OmRpb3JpdGVfd2FsbAQJAG5hbWVfaGFzaF27l0QvdM8xAwoAbmV0d29ya19pZJe7jOwKBgBzdGF0ZXMIGQB3YWxsX2Nvbm5lY3Rpb25fdHlwZV9lYXN0BABub25lCBoAd2FsbF9jb25uZWN0aW9uX3R5cGVfbm9ydGgEAG5vbmUIGgB3YWxsX2Nvbm5lY3Rpb25fdHlwZV9zb3V0aAQAbm9uZQgZAHdhbGxfY29ubmVjdGlvbl90eXBlX3dlc3QEAG5vbmUBDQB3YWxsX3Bvc3RfYml0AAADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:andesite_wall", - "groupId": 1, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTNBAAACAQAbmFtZRcAbWluZWNyYWZ0OmFuZGVzaXRlX3dhbGwECQBuYW1lX2hhc2gAL1Vay0kZjQMKAG5ldHdvcmtfaWRJGxdvCgYAc3RhdGVzCBkAd2FsbF9jb25uZWN0aW9uX3R5cGVfZWFzdAQAbm9uZQgaAHdhbGxfY29ubmVjdGlvbl90eXBlX25vcnRoBABub25lCBoAd2FsbF9jb25uZWN0aW9uX3R5cGVfc291dGgEAG5vbmUIGQB3YWxsX2Nvbm5lY3Rpb25fdHlwZV93ZXN0BABub25lAQ0Ad2FsbF9wb3N0X2JpdAAAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:sandstone_wall", - "groupId": 1, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTOBAAACAQAbmFtZRgAbWluZWNyYWZ0OnNhbmRzdG9uZV93YWxsBAkAbmFtZV9oYXNoYL2gu8a6HfgDCgBuZXR3b3JrX2lkHrhRjgoGAHN0YXRlcwgZAHdhbGxfY29ubmVjdGlvbl90eXBlX2Vhc3QEAG5vbmUIGgB3YWxsX2Nvbm5lY3Rpb25fdHlwZV9ub3J0aAQAbm9uZQgaAHdhbGxfY29ubmVjdGlvbl90eXBlX3NvdXRoBABub25lCBkAd2FsbF9jb25uZWN0aW9uX3R5cGVfd2VzdAQAbm9uZQENAHdhbGxfcG9zdF9iaXQAAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:red_sandstone_wall", - "groupId": 1, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTVBAAACAQAbmFtZRwAbWluZWNyYWZ0OnJlZF9zYW5kc3RvbmVfd2FsbAQJAG5hbWVfaGFzaLAUUdOlo24MAwoAbmV0d29ya19pZI66BqAKBgBzdGF0ZXMIGQB3YWxsX2Nvbm5lY3Rpb25fdHlwZV9lYXN0BABub25lCBoAd2FsbF9jb25uZWN0aW9uX3R5cGVfbm9ydGgEAG5vbmUIGgB3YWxsX2Nvbm5lY3Rpb25fdHlwZV9zb3V0aAQAbm9uZQgZAHdhbGxfY29ubmVjdGlvbl90eXBlX3dlc3QEAG5vbmUBDQB3YWxsX3Bvc3RfYml0AAADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:stone_brick_wall", - "groupId": 1, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTQBAAACAQAbmFtZRoAbWluZWNyYWZ0OnN0b25lX2JyaWNrX3dhbGwECQBuYW1lX2hhc2hQegufuP6vjAMKAG5ldHdvcmtfaWS4AsOKCgYAc3RhdGVzCBkAd2FsbF9jb25uZWN0aW9uX3R5cGVfZWFzdAQAbm9uZQgaAHdhbGxfY29ubmVjdGlvbl90eXBlX25vcnRoBABub25lCBoAd2FsbF9jb25uZWN0aW9uX3R5cGVfc291dGgEAG5vbmUIGQB3YWxsX2Nvbm5lY3Rpb25fdHlwZV93ZXN0BABub25lAQ0Ad2FsbF9wb3N0X2JpdAAAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:mossy_stone_brick_wall", - "groupId": 1, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTRBAAACAQAbmFtZSAAbWluZWNyYWZ0Om1vc3N5X3N0b25lX2JyaWNrX3dhbGwECQBuYW1lX2hhc2i680zzUekp+wMKAG5ldHdvcmtfaWTQTaHPCgYAc3RhdGVzCBkAd2FsbF9jb25uZWN0aW9uX3R5cGVfZWFzdAQAbm9uZQgaAHdhbGxfY29ubmVjdGlvbl90eXBlX25vcnRoBABub25lCBoAd2FsbF9jb25uZWN0aW9uX3R5cGVfc291dGgEAG5vbmUIGQB3YWxsX2Nvbm5lY3Rpb25fdHlwZV93ZXN0BABub25lAQ0Ad2FsbF9wb3N0X2JpdAAAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:brick_wall", - "groupId": 1, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTPBAAACAQAbmFtZRQAbWluZWNyYWZ0OmJyaWNrX3dhbGwECQBuYW1lX2hhc2gGJFLNjfgSCAMKAG5ldHdvcmtfaWSc5iUZCgYAc3RhdGVzCBkAd2FsbF9jb25uZWN0aW9uX3R5cGVfZWFzdAQAbm9uZQgaAHdhbGxfY29ubmVjdGlvbl90eXBlX25vcnRoBABub25lCBoAd2FsbF9jb25uZWN0aW9uX3R5cGVfc291dGgEAG5vbmUIGQB3YWxsX2Nvbm5lY3Rpb25fdHlwZV93ZXN0BABub25lAQ0Ad2FsbF9wb3N0X2JpdAAAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:nether_brick_wall", - "groupId": 1, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTSBAAACAQAbmFtZRsAbWluZWNyYWZ0Om5ldGhlcl9icmlja193YWxsBAkAbmFtZV9oYXNoAxb5f2yQ5MYDCgBuZXR3b3JrX2lkAECPDAoGAHN0YXRlcwgZAHdhbGxfY29ubmVjdGlvbl90eXBlX2Vhc3QEAG5vbmUIGgB3YWxsX2Nvbm5lY3Rpb25fdHlwZV9ub3J0aAQAbm9uZQgaAHdhbGxfY29ubmVjdGlvbl90eXBlX3NvdXRoBABub25lCBkAd2FsbF9jb25uZWN0aW9uX3R5cGVfd2VzdAQAbm9uZQENAHdhbGxfcG9zdF9iaXQAAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:red_nether_brick_wall", - "groupId": 1, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTWBAAACAQAbmFtZR8AbWluZWNyYWZ0OnJlZF9uZXRoZXJfYnJpY2tfd2FsbAQJAG5hbWVfaGFzaBOtwkokUt3cAwoAbmV0d29ya19pZJykmZUKBgBzdGF0ZXMIGQB3YWxsX2Nvbm5lY3Rpb25fdHlwZV9lYXN0BABub25lCBoAd2FsbF9jb25uZWN0aW9uX3R5cGVfbm9ydGgEAG5vbmUIGgB3YWxsX2Nvbm5lY3Rpb25fdHlwZV9zb3V0aAQAbm9uZQgZAHdhbGxfY29ubmVjdGlvbl90eXBlX3dlc3QEAG5vbmUBDQB3YWxsX3Bvc3RfYml0AAADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:end_stone_brick_wall", - "groupId": 1, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTTBAAACAQAbmFtZR4AbWluZWNyYWZ0OmVuZF9zdG9uZV9icmlja193YWxsBAkAbmFtZV9oYXNoOsr1L9kJIAMDCgBuZXR3b3JrX2lkjuYlYgoGAHN0YXRlcwgZAHdhbGxfY29ubmVjdGlvbl90eXBlX2Vhc3QEAG5vbmUIGgB3YWxsX2Nvbm5lY3Rpb25fdHlwZV9ub3J0aAQAbm9uZQgaAHdhbGxfY29ubmVjdGlvbl90eXBlX3NvdXRoBABub25lCBkAd2FsbF9jb25uZWN0aW9uX3R5cGVfd2VzdAQAbm9uZQENAHdhbGxfcG9zdF9iaXQAAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:prismarine_wall", - "groupId": 1, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTUBAAACAQAbmFtZRkAbWluZWNyYWZ0OnByaXNtYXJpbmVfd2FsbAQJAG5hbWVfaGFzaDO5IGrYZu1/AwoAbmV0d29ya19pZB4nLYYKBgBzdGF0ZXMIGQB3YWxsX2Nvbm5lY3Rpb25fdHlwZV9lYXN0BABub25lCBoAd2FsbF9jb25uZWN0aW9uX3R5cGVfbm9ydGgEAG5vbmUIGgB3YWxsX2Nvbm5lY3Rpb25fdHlwZV9zb3V0aAQAbm9uZQgZAHdhbGxfY29ubmVjdGlvbl90eXBlX3dlc3QEAG5vbmUBDQB3YWxsX3Bvc3RfYml0AAADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:blackstone_wall", - "groupId": 1, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQUAgAACAQAbmFtZRkAbWluZWNyYWZ0OmJsYWNrc3RvbmVfd2FsbAQJAG5hbWVfaGFzaMP8XppUSU1RAwoAbmV0d29ya19pZMbeBBsKBgBzdGF0ZXMIGQB3YWxsX2Nvbm5lY3Rpb25fdHlwZV9lYXN0BABub25lCBoAd2FsbF9jb25uZWN0aW9uX3R5cGVfbm9ydGgEAG5vbmUIGgB3YWxsX2Nvbm5lY3Rpb25fdHlwZV9zb3V0aAQAbm9uZQgZAHdhbGxfY29ubmVjdGlvbl90eXBlX3dlc3QEAG5vbmUBDQB3YWxsX3Bvc3RfYml0AAADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:polished_blackstone_wall", - "groupId": 1, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQoAgAACAQAbmFtZSIAbWluZWNyYWZ0OnBvbGlzaGVkX2JsYWNrc3RvbmVfd2FsbAQJAG5hbWVfaGFzaP6SwV08YwzAAwoAbmV0d29ya19pZAJLsz8KBgBzdGF0ZXMIGQB3YWxsX2Nvbm5lY3Rpb25fdHlwZV9lYXN0BABub25lCBoAd2FsbF9jb25uZWN0aW9uX3R5cGVfbm9ydGgEAG5vbmUIGgB3YWxsX2Nvbm5lY3Rpb25fdHlwZV9zb3V0aAQAbm9uZQgZAHdhbGxfY29ubmVjdGlvbl90eXBlX3dlc3QEAG5vbmUBDQB3YWxsX3Bvc3RfYml0AAADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:polished_blackstone_brick_wall", - "groupId": 1, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQVAgAACAQAbmFtZSgAbWluZWNyYWZ0OnBvbGlzaGVkX2JsYWNrc3RvbmVfYnJpY2tfd2FsbAQJAG5hbWVfaGFzaBBIDZbHxiEzAwoAbmV0d29ya19pZEbLV8cKBgBzdGF0ZXMIGQB3YWxsX2Nvbm5lY3Rpb25fdHlwZV9lYXN0BABub25lCBoAd2FsbF9jb25uZWN0aW9uX3R5cGVfbm9ydGgEAG5vbmUIGgB3YWxsX2Nvbm5lY3Rpb25fdHlwZV9zb3V0aAQAbm9uZQgZAHdhbGxfY29ubmVjdGlvbl90eXBlX3dlc3QEAG5vbmUBDQB3YWxsX3Bvc3RfYml0AAADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:cobbled_deepslate_wall", - "groupId": 1, - "block_state_b64": "CgAAAwgAYmxvY2tfaWR9AgAACAQAbmFtZSAAbWluZWNyYWZ0OmNvYmJsZWRfZGVlcHNsYXRlX3dhbGwECQBuYW1lX2hhc2iECY5oKxeT+gMKAG5ldHdvcmtfaWRCnPrFCgYAc3RhdGVzCBkAd2FsbF9jb25uZWN0aW9uX3R5cGVfZWFzdAQAbm9uZQgaAHdhbGxfY29ubmVjdGlvbl90eXBlX25vcnRoBABub25lCBoAd2FsbF9jb25uZWN0aW9uX3R5cGVfc291dGgEAG5vbmUIGQB3YWxsX2Nvbm5lY3Rpb25fdHlwZV93ZXN0BABub25lAQ0Ad2FsbF9wb3N0X2JpdAAAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:deepslate_tile_wall", - "groupId": 1, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSFAgAACAQAbmFtZR0AbWluZWNyYWZ0OmRlZXBzbGF0ZV90aWxlX3dhbGwECQBuYW1lX2hhc2jz7N+PeuEXgQMKAG5ldHdvcmtfaWTqw4s4CgYAc3RhdGVzCBkAd2FsbF9jb25uZWN0aW9uX3R5cGVfZWFzdAQAbm9uZQgaAHdhbGxfY29ubmVjdGlvbl90eXBlX25vcnRoBABub25lCBoAd2FsbF9jb25uZWN0aW9uX3R5cGVfc291dGgEAG5vbmUIGQB3YWxsX2Nvbm5lY3Rpb25fdHlwZV93ZXN0BABub25lAQ0Ad2FsbF9wb3N0X2JpdAAAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:polished_deepslate_wall", - "groupId": 1, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSBAgAACAQAbmFtZSEAbWluZWNyYWZ0OnBvbGlzaGVkX2RlZXBzbGF0ZV93YWxsBAkAbmFtZV9oYXNoHxjTdj9pevMDCgBuZXR3b3JrX2lkIvBYYwoGAHN0YXRlcwgZAHdhbGxfY29ubmVjdGlvbl90eXBlX2Vhc3QEAG5vbmUIGgB3YWxsX2Nvbm5lY3Rpb25fdHlwZV9ub3J0aAQAbm9uZQgaAHdhbGxfY29ubmVjdGlvbl90eXBlX3NvdXRoBABub25lCBkAd2FsbF9jb25uZWN0aW9uX3R5cGVfd2VzdAQAbm9uZQENAHdhbGxfcG9zdF9iaXQAAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:deepslate_brick_wall", - "groupId": 1, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSJAgAACAQAbmFtZR4AbWluZWNyYWZ0OmRlZXBzbGF0ZV9icmlja193YWxsBAkAbmFtZV9oYXNoEs3EQrjroyEDCgBuZXR3b3JrX2lkwlrCGwoGAHN0YXRlcwgZAHdhbGxfY29ubmVjdGlvbl90eXBlX2Vhc3QEAG5vbmUIGgB3YWxsX2Nvbm5lY3Rpb25fdHlwZV9ub3J0aAQAbm9uZQgaAHdhbGxfY29ubmVjdGlvbl90eXBlX3NvdXRoBABub25lCBkAd2FsbF9jb25uZWN0aW9uX3R5cGVfd2VzdAQAbm9uZQENAHdhbGxfcG9zdF9iaXQAAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:tuff_wall", - "groupId": 1, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTqAwAACAQAbmFtZRMAbWluZWNyYWZ0OnR1ZmZfd2FsbAQJAG5hbWVfaGFzaMyeeu1IRf03AwoAbmV0d29ya19pZDkIrosKBgBzdGF0ZXMIGQB3YWxsX2Nvbm5lY3Rpb25fdHlwZV9lYXN0BABub25lCBoAd2FsbF9jb25uZWN0aW9uX3R5cGVfbm9ydGgEAG5vbmUIGgB3YWxsX2Nvbm5lY3Rpb25fdHlwZV9zb3V0aAQAbm9uZQgZAHdhbGxfY29ubmVjdGlvbl90eXBlX3dlc3QEAG5vbmUBDQB3YWxsX3Bvc3RfYml0AAADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:tuff_brick_wall", - "groupId": 1, - "block_state_b64": "CgAAAwgAYmxvY2tfaWT1AwAACAQAbmFtZRkAbWluZWNyYWZ0OnR1ZmZfYnJpY2tfd2FsbAQJAG5hbWVfaGFzaIL0IyNCOsonAwoAbmV0d29ya19pZJW4T5UKBgBzdGF0ZXMIGQB3YWxsX2Nvbm5lY3Rpb25fdHlwZV9lYXN0BABub25lCBoAd2FsbF9jb25uZWN0aW9uX3R5cGVfbm9ydGgEAG5vbmUIGgB3YWxsX2Nvbm5lY3Rpb25fdHlwZV9zb3V0aAQAbm9uZQgZAHdhbGxfY29ubmVjdGlvbl90eXBlX3dlc3QEAG5vbmUBDQB3YWxsX3Bvc3RfYml0AAADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:polished_tuff_wall", - "groupId": 1, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTvAwAACAQAbmFtZRwAbWluZWNyYWZ0OnBvbGlzaGVkX3R1ZmZfd2FsbAQJAG5hbWVfaGFzaJVZj6QYWXUrAwoAbmV0d29ya19pZLU7dooKBgBzdGF0ZXMIGQB3YWxsX2Nvbm5lY3Rpb25fdHlwZV9lYXN0BABub25lCBoAd2FsbF9jb25uZWN0aW9uX3R5cGVfbm9ydGgEAG5vbmUIGgB3YWxsX2Nvbm5lY3Rpb25fdHlwZV9zb3V0aAQAbm9uZQgZAHdhbGxfY29ubmVjdGlvbl90eXBlX3dlc3QEAG5vbmUBDQB3YWxsX3Bvc3RfYml0AAADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:mud_brick_wall", - "groupId": 1, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTgAgAACAQAbmFtZRgAbWluZWNyYWZ0Om11ZF9icmlja193YWxsBAkAbmFtZV9oYXNov9b98ATpUSwDCgBuZXR3b3JrX2lkH/1WZQoGAHN0YXRlcwgZAHdhbGxfY29ubmVjdGlvbl90eXBlX2Vhc3QEAG5vbmUIGgB3YWxsX2Nvbm5lY3Rpb25fdHlwZV9ub3J0aAQAbm9uZQgaAHdhbGxfY29ubmVjdGlvbl90eXBlX3NvdXRoBABub25lCBkAd2FsbF9jb25uZWN0aW9uX3R5cGVfd2VzdAQAbm9uZQENAHdhbGxfcG9zdF9iaXQAAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:resin_brick_wall", - "groupId": 1, - "block_state_b64": "CgAAAwgAYmxvY2tfaWT4BAAACAQAbmFtZRoAbWluZWNyYWZ0OnJlc2luX2JyaWNrX3dhbGwECQBuYW1lX2hhc2iUkvfZlSl8+gMKAG5ldHdvcmtfaWSYW394CgYAc3RhdGVzCBkAd2FsbF9jb25uZWN0aW9uX3R5cGVfZWFzdAQAbm9uZQgaAHdhbGxfY29ubmVjdGlvbl90eXBlX25vcnRoBABub25lCBoAd2FsbF9jb25uZWN0aW9uX3R5cGVfc291dGgEAG5vbmUIGQB3YWxsX2Nvbm5lY3Rpb25fdHlwZV93ZXN0BABub25lAQ0Ad2FsbF9wb3N0X2JpdAAAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:oak_fence", - "groupId": 2, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRVAAAACAQAbmFtZRMAbWluZWNyYWZ0Om9ha19mZW5jZQQJAG5hbWVfaGFzaGEmid7AaCWRAwoAbmV0d29ya19pZDvPEXcKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:spruce_fence", - "groupId": 2, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRCAwAACAQAbmFtZRYAbWluZWNyYWZ0OnNwcnVjZV9mZW5jZQQJAG5hbWVfaGFzaPQCm+aX1ZQeAwoAbmV0d29ya19pZD1QUEoKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:birch_fence", - "groupId": 2, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQ/AwAACAQAbmFtZRUAbWluZWNyYWZ0OmJpcmNoX2ZlbmNlBAkAbmFtZV9oYXNo6CJ2ATpANfgDCgBuZXR3b3JrX2lkmCUV2QoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:jungle_fence", - "groupId": 2, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRBAwAACAQAbmFtZRYAbWluZWNyYWZ0Omp1bmdsZV9mZW5jZQQJAG5hbWVfaGFzaOX4cD9uAmsdAwoAbmV0d29ya19pZHz1VxkKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:acacia_fence", - "groupId": 2, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQ+AwAACAQAbmFtZRYAbWluZWNyYWZ0OmFjYWNpYV9mZW5jZQQJAG5hbWVfaGFzaGjn+RlKVDH6AwoAbmV0d29ya19pZNVGubwKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:dark_oak_fence", - "groupId": 2, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRAAwAACAQAbmFtZRgAbWluZWNyYWZ0OmRhcmtfb2FrX2ZlbmNlBAkAbmFtZV9oYXNoGPj0gCgM0c0DCgBuZXR3b3JrX2lk2w+gEwoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:mangrove_fence", - "groupId": 2, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTqAgAACAQAbmFtZRgAbWluZWNyYWZ0Om1hbmdyb3ZlX2ZlbmNlBAkAbmFtZV9oYXNowwAd7tPu9bsDCgBuZXR3b3JrX2lkKEcd0goGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:cherry_fence", - "groupId": 2, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQTAwAACAQAbmFtZRYAbWluZWNyYWZ0OmNoZXJyeV9mZW5jZQQJAG5hbWVfaGFzaFmtUfHfTxcxAwoAbmV0d29ya19pZPCBxAIKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:pale_oak_fence", - "groupId": 2, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTeBAAACAQAbmFtZRgAbWluZWNyYWZ0OnBhbGVfb2FrX2ZlbmNlBAkAbmFtZV9oYXNobM05DVVUSxsDCgBuZXR3b3JrX2lkS7udAwoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:bamboo_fence", - "groupId": 2, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQCAwAACAQAbmFtZRYAbWluZWNyYWZ0OmJhbWJvb19mZW5jZQQJAG5hbWVfaGFzaCKRbxfXsfkiAwoAbmV0d29ya19pZJNXKFcKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:nether_brick_fence", - "groupId": 2, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRxAAAACAQAbmFtZRwAbWluZWNyYWZ0Om5ldGhlcl9icmlja19mZW5jZQQJAG5hbWVfaGFzaA6030ngawxcAwoAbmV0d29ya19pZLnjLF4KBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:crimson_fence", - "groupId": 2, - "block_state_b64": "CgAAAwgAYmxvY2tfaWT/AQAACAQAbmFtZRcAbWluZWNyYWZ0OmNyaW1zb25fZmVuY2UECQBuYW1lX2hhc2jhUhKv1HGj9AMKAG5ldHdvcmtfaWR3OH3OCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:warped_fence", - "groupId": 2, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQAAgAACAQAbmFtZRYAbWluZWNyYWZ0OndhcnBlZF9mZW5jZQQJAG5hbWVfaGFzaJfb3/YuKmOWAwoAbmV0d29ya19pZCpaGC8KBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:fence_gate", - "groupId": 3, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRrAAAACAQAbmFtZRQAbWluZWNyYWZ0OmZlbmNlX2dhdGUECQBuYW1lX2hhc2hTxpjEDmRzAwMKAG5ldHdvcmtfaWRAoluQCgYAc3RhdGVzAQsAaW5fd2FsbF9iaXQACBwAbWluZWNyYWZ0OmNhcmRpbmFsX2RpcmVjdGlvbgUAc291dGgBCABvcGVuX2JpdAAAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:spruce_fence_gate", - "groupId": 3, - "block_state_b64": "CgAAAwgAYmxvY2tfaWS3AAAACAQAbmFtZRsAbWluZWNyYWZ0OnNwcnVjZV9mZW5jZV9nYXRlBAkAbmFtZV9oYXNoanTVB84HRbkDCgBuZXR3b3JrX2lkJL+vZAoGAHN0YXRlcwELAGluX3dhbGxfYml0AAgcAG1pbmVjcmFmdDpjYXJkaW5hbF9kaXJlY3Rpb24FAHNvdXRoAQgAb3Blbl9iaXQAAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:birch_fence_gate", - "groupId": 3, - "block_state_b64": "CgAAAwgAYmxvY2tfaWS4AAAACAQAbmFtZRoAbWluZWNyYWZ0OmJpcmNoX2ZlbmNlX2dhdGUECQBuYW1lX2hhc2jmfPklI8azSwMKAG5ldHdvcmtfaWSlk1JPCgYAc3RhdGVzAQsAaW5fd2FsbF9iaXQACBwAbWluZWNyYWZ0OmNhcmRpbmFsX2RpcmVjdGlvbgUAc291dGgBCABvcGVuX2JpdAAAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:jungle_fence_gate", - "groupId": 3, - "block_state_b64": "CgAAAwgAYmxvY2tfaWS5AAAACAQAbmFtZRsAbWluZWNyYWZ0Omp1bmdsZV9mZW5jZV9nYXRlBAkAbmFtZV9oYXNobYVQkfBomIcDCgBuZXR3b3JrX2lkjQubHgoGAHN0YXRlcwELAGluX3dhbGxfYml0AAgcAG1pbmVjcmFmdDpjYXJkaW5hbF9kaXJlY3Rpb24FAHNvdXRoAQgAb3Blbl9iaXQAAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:acacia_fence_gate", - "groupId": 3, - "block_state_b64": "CgAAAwgAYmxvY2tfaWS7AAAACAQAbmFtZRsAbWluZWNyYWZ0OmFjYWNpYV9mZW5jZV9nYXRlBAkAbmFtZV9oYXNoZnrLUx/XSekDCgBuZXR3b3JrX2lkoGH3cQoGAHN0YXRlcwELAGluX3dhbGxfYml0AAgcAG1pbmVjcmFmdDpjYXJkaW5hbF9kaXJlY3Rpb24FAHNvdXRoAQgAb3Blbl9iaXQAAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:dark_oak_fence_gate", - "groupId": 3, - "block_state_b64": "CgAAAwgAYmxvY2tfaWS6AAAACAQAbmFtZR0AbWluZWNyYWZ0OmRhcmtfb2FrX2ZlbmNlX2dhdGUECQBuYW1lX2hhc2j2PTvdJJHcVQMKAG5ldHdvcmtfaWRS6WN3CgYAc3RhdGVzAQsAaW5fd2FsbF9iaXQACBwAbWluZWNyYWZ0OmNhcmRpbmFsX2RpcmVjdGlvbgUAc291dGgBCABvcGVuX2JpdAAAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:mangrove_fence_gate", - "groupId": 3, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTrAgAACAQAbmFtZR0AbWluZWNyYWZ0Om1hbmdyb3ZlX2ZlbmNlX2dhdGUECQBuYW1lX2hhc2i/kOhBKiI/dAMKAG5ldHdvcmtfaWQ5AL3/CgYAc3RhdGVzAQsAaW5fd2FsbF9iaXQACBwAbWluZWNyYWZ0OmNhcmRpbmFsX2RpcmVjdGlvbgUAc291dGgBCABvcGVuX2JpdAAAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:cherry_fence_gate", - "groupId": 3, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQUAwAACAQAbmFtZRsAbWluZWNyYWZ0OmNoZXJyeV9mZW5jZV9nYXRlBAkAbmFtZV9oYXNoKWLgCk0z+PsDCgBuZXR3b3JrX2lkWfIkRAoGAHN0YXRlcwELAGluX3dhbGxfYml0AAgcAG1pbmVjcmFmdDpjYXJkaW5hbF9kaXJlY3Rpb24FAHNvdXRoAQgAb3Blbl9iaXQAAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:pale_oak_fence_gate", - "groupId": 3, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTfBAAACAQAbmFtZR0AbWluZWNyYWZ0OnBhbGVfb2FrX2ZlbmNlX2dhdGUECQBuYW1lX2hhc2hCrHUtEPI3BgMKAG5ldHdvcmtfaWSO5QLnCgYAc3RhdGVzAQsAaW5fd2FsbF9iaXQACBwAbWluZWNyYWZ0OmNhcmRpbmFsX2RpcmVjdGlvbgUAc291dGgBCABvcGVuX2JpdAAAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:bamboo_fence_gate", - "groupId": 3, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQDAwAACAQAbmFtZRsAbWluZWNyYWZ0OmJhbWJvb19mZW5jZV9nYXRlBAkAbmFtZV9oYXNopH1JrUgwdIADCgBuZXR3b3JrX2lkriggcAoGAHN0YXRlcwELAGluX3dhbGxfYml0AAgcAG1pbmVjcmFmdDpjYXJkaW5hbF9kaXJlY3Rpb24FAHNvdXRoAQgAb3Blbl9iaXQAAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:crimson_fence_gate", - "groupId": 3, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQBAgAACAQAbmFtZRwAbWluZWNyYWZ0OmNyaW1zb25fZmVuY2VfZ2F0ZQQJAG5hbWVfaGFzaHE3Gfd0Z2d2AwoAbmV0d29ya19pZGaT7SQKBgBzdGF0ZXMBCwBpbl93YWxsX2JpdAAIHABtaW5lY3JhZnQ6Y2FyZGluYWxfZGlyZWN0aW9uBQBzb3V0aAEIAG9wZW5fYml0AAADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:warped_fence_gate", - "groupId": 3, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQCAgAACAQAbmFtZRsAbWluZWNyYWZ0OndhcnBlZF9mZW5jZV9nYXRlBAkAbmFtZV9oYXNoy0oIBjDIG4kDCgBuZXR3b3JrX2lkO8ur6woGAHN0YXRlcwELAGluX3dhbGxfYml0AAgcAG1pbmVjcmFmdDpjYXJkaW5hbF9kaXJlY3Rpb24FAHNvdXRoAQgAb3Blbl9iaXQAAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:normal_stone_stairs", - "groupId": 4, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSzAQAACAQAbmFtZR0AbWluZWNyYWZ0Om5vcm1hbF9zdG9uZV9zdGFpcnMECQBuYW1lX2hhc2hAEktZZOkGIwMKAG5ldHdvcmtfaWQeH1ALCgYAc3RhdGVzAQ8AdXBzaWRlX2Rvd25fYml0AAMQAHdlaXJkb19kaXJlY3Rpb24AAAAAAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:stone_stairs", - "groupId": 4, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRDAAAACAQAbmFtZRYAbWluZWNyYWZ0OnN0b25lX3N0YWlycwQJAG5hbWVfaGFzaNRjqVC5GRVDAwoAbmV0d29ya19pZDcCv+MKBgBzdGF0ZXMBDwB1cHNpZGVfZG93bl9iaXQAAxAAd2VpcmRvX2RpcmVjdGlvbgAAAAAAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:mossy_cobblestone_stairs", - "groupId": 4, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSyAQAACAQAbmFtZSIAbWluZWNyYWZ0Om1vc3N5X2NvYmJsZXN0b25lX3N0YWlycwQJAG5hbWVfaGFzaMVSTq5z9n1RAwoAbmV0d29ya19pZFIfrhkKBgBzdGF0ZXMBDwB1cHNpZGVfZG93bl9iaXQAAxAAd2VpcmRvX2RpcmVjdGlvbgAAAAAAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:oak_stairs", - "groupId": 4, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQ1AAAACAQAbmFtZRQAbWluZWNyYWZ0Om9ha19zdGFpcnMECQBuYW1lX2hhc2jk/HFzdXy0FQMKAG5ldHdvcmtfaWQJjyzBCgYAc3RhdGVzAQ8AdXBzaWRlX2Rvd25fYml0AAMQAHdlaXJkb19kaXJlY3Rpb24AAAAAAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:spruce_stairs", - "groupId": 4, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSGAAAACAQAbmFtZRcAbWluZWNyYWZ0OnNwcnVjZV9zdGFpcnMECQBuYW1lX2hhc2iznygw7uBPBQMKAG5ldHdvcmtfaWTv+is3CgYAc3RhdGVzAQ8AdXBzaWRlX2Rvd25fYml0AAMQAHdlaXJkb19kaXJlY3Rpb24AAAAAAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:birch_stairs", - "groupId": 4, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSHAAAACAQAbmFtZRYAbWluZWNyYWZ0OmJpcmNoX3N0YWlycwQJAG5hbWVfaGFzaPfhbL619a3GAwoAbmV0d29ya19pZFyPlHAKBgBzdGF0ZXMBDwB1cHNpZGVfZG93bl9iaXQAAxAAd2VpcmRvX2RpcmVjdGlvbgAAAAAAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:jungle_stairs", - "groupId": 4, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSIAAAACAQAbmFtZRcAbWluZWNyYWZ0Omp1bmdsZV9zdGFpcnMECQBuYW1lX2hhc2jodJsHUbOVxQMKAG5ldHdvcmtfaWR0z5d4CgYAc3RhdGVzAQ8AdXBzaWRlX2Rvd25fYml0AAMQAHdlaXJkb19kaXJlY3Rpb24AAAAAAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:acacia_stairs", - "groupId": 4, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSjAAAACAQAbmFtZRcAbWluZWNyYWZ0OmFjYWNpYV9zdGFpcnMECQBuYW1lX2hhc2h3x1NmD43IqQMKAG5ldHdvcmtfaWS7Jwz6CgYAc3RhdGVzAQ8AdXBzaWRlX2Rvd25fYml0AAMQAHdlaXJkb19kaXJlY3Rpb24AAAAAAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:dark_oak_stairs", - "groupId": 4, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSkAAAACAQAbmFtZRkAbWluZWNyYWZ0OmRhcmtfb2FrX3N0YWlycwQJAG5hbWVfaGFzaMfwkbYPbNmAAwoAbmV0d29ya19pZCmBYKAKBgBzdGF0ZXMBDwB1cHNpZGVfZG93bl9iaXQAAxAAd2VpcmRvX2RpcmVjdGlvbgAAAAAAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:mangrove_stairs", - "groupId": 4, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTnAgAACAQAbmFtZRkAbWluZWNyYWZ0Om1hbmdyb3ZlX3N0YWlycwQJAG5hbWVfaGFzaNpUDY+uGMpyAwoAbmV0d29ya19pZChzUAsKBgBzdGF0ZXMBDwB1cHNpZGVfZG93bl9iaXQAAxAAd2VpcmRvX2RpcmVjdGlvbgAAAAAAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:cherry_stairs", - "groupId": 4, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQcAwAACAQAbmFtZRcAbWluZWNyYWZ0OmNoZXJyeV9zdGFpcnMECQBuYW1lX2hhc2jMtr0v9JY4zwMKAG5ldHdvcmtfaWRQwq31CgYAc3RhdGVzAQ8AdXBzaWRlX2Rvd25fYml0AAMQAHdlaXJkb19kaXJlY3Rpb24AAAAAAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:pale_oak_stairs", - "groupId": 4, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTnBAAACAQAbmFtZRkAbWluZWNyYWZ0OnBhbGVfb2FrX3N0YWlycwQJAG5hbWVfaGFzaJsYBq7wfPXaAwoAbmV0d29ya19pZE1U5UIKBgBzdGF0ZXMBDwB1cHNpZGVfZG93bl9iaXQAAxAAd2VpcmRvX2RpcmVjdGlvbgAAAAAAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:bamboo_stairs", - "groupId": 4, - "block_state_b64": "CgAAAwgAYmxvY2tfaWT/AgAACAQAbmFtZRcAbWluZWNyYWZ0OmJhbWJvb19zdGFpcnMECQBuYW1lX2hhc2jFOzWL8PalKwMKAG5ldHdvcmtfaWTVPh42CgYAc3RhdGVzAQ8AdXBzaWRlX2Rvd25fYml0AAMQAHdlaXJkb19kaXJlY3Rpb24AAAAAAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:bamboo_mosaic_stairs", - "groupId": 4, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQKAwAACAQAbmFtZR4AbWluZWNyYWZ0OmJhbWJvb19tb3NhaWNfc3RhaXJzBAkAbmFtZV9oYXNoNLPiveSHPaoDCgBuZXR3b3JrX2lk44PHjgoGAHN0YXRlcwEPAHVwc2lkZV9kb3duX2JpdAADEAB3ZWlyZG9fZGlyZWN0aW9uAAAAAAADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:stone_brick_stairs", - "groupId": 4, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRtAAAACAQAbmFtZRwAbWluZWNyYWZ0OnN0b25lX2JyaWNrX3N0YWlycwQJAG5hbWVfaGFzaN6tQViRo5cwAwoAbmV0d29ya19pZDMyMgIKBgBzdGF0ZXMBDwB1cHNpZGVfZG93bl9iaXQAAxAAd2VpcmRvX2RpcmVjdGlvbgAAAAAAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:mossy_stone_brick_stairs", - "groupId": 4, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSuAQAACAQAbmFtZSIAbWluZWNyYWZ0Om1vc3N5X3N0b25lX2JyaWNrX3N0YWlycwQJAG5hbWVfaGFzaIB/Zv5YBPuYAwoAbmV0d29ya19pZANTOsMKBgBzdGF0ZXMBDwB1cHNpZGVfZG93bl9iaXQAAxAAd2VpcmRvX2RpcmVjdGlvbgAAAAAAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:sandstone_stairs", - "groupId": 4, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSAAAAACAQAbmFtZRoAbWluZWNyYWZ0OnNhbmRzdG9uZV9zdGFpcnMECQBuYW1lX2hhc2hOyA0BoYUOPQMKAG5ldHdvcmtfaWSV/834CgYAc3RhdGVzAQ8AdXBzaWRlX2Rvd25fYml0AAMQAHdlaXJkb19kaXJlY3Rpb24AAAAAAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:smooth_sandstone_stairs", - "groupId": 4, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSwAQAACAQAbmFtZSEAbWluZWNyYWZ0OnNtb290aF9zYW5kc3RvbmVfc3RhaXJzBAkAbmFtZV9oYXNoB+CuCd8Ruz8DCgBuZXR3b3JrX2lksR+m8QoGAHN0YXRlcwEPAHVwc2lkZV9kb3duX2JpdAADEAB3ZWlyZG9fZGlyZWN0aW9uAAAAAAADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:red_sandstone_stairs", - "groupId": 4, - "block_state_b64": "CgAAAwgAYmxvY2tfaWS0AAAACAQAbmFtZR4AbWluZWNyYWZ0OnJlZF9zYW5kc3RvbmVfc3RhaXJzBAkAbmFtZV9oYXNoPs0LpHPL24YDCgBuZXR3b3JrX2lkLYVt3woGAHN0YXRlcwEPAHVwc2lkZV9kb3duX2JpdAADEAB3ZWlyZG9fZGlyZWN0aW9uAAAAAAADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:smooth_red_sandstone_stairs", - "groupId": 4, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSvAQAACAQAbmFtZSUAbWluZWNyYWZ0OnNtb290aF9yZWRfc2FuZHN0b25lX3N0YWlycwQJAG5hbWVfaGFzaBvjtQv5pf+MAwoAbmV0d29ya19pZMHNND8KBgBzdGF0ZXMBDwB1cHNpZGVfZG93bl9iaXQAAxAAd2VpcmRvX2RpcmVjdGlvbgAAAAAAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:granite_stairs", - "groupId": 4, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSoAQAACAQAbmFtZRgAbWluZWNyYWZ0OmdyYW5pdGVfc3RhaXJzBAkAbmFtZV9oYXNoGzpvtoqKQjgDCgBuZXR3b3JrX2lkPkcB1goGAHN0YXRlcwEPAHVwc2lkZV9kb3duX2JpdAADEAB3ZWlyZG9fZGlyZWN0aW9uAAAAAAADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:polished_granite_stairs", - "groupId": 4, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSrAQAACAQAbmFtZSEAbWluZWNyYWZ0OnBvbGlzaGVkX2dyYW5pdGVfc3RhaXJzBAkAbmFtZV9oYXNo3PvbSfEQklIDCgBuZXR3b3JrX2lkMmEm3AoGAHN0YXRlcwEPAHVwc2lkZV9kb3duX2JpdAADEAB3ZWlyZG9fZGlyZWN0aW9uAAAAAAADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:diorite_stairs", - "groupId": 4, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSpAQAACAQAbmFtZRgAbWluZWNyYWZ0OmRpb3JpdGVfc3RhaXJzBAkAbmFtZV9oYXNoi73T8VQuZmcDCgBuZXR3b3JrX2lk6i6nBQoGAHN0YXRlcwEPAHVwc2lkZV9kb3duX2JpdAADEAB3ZWlyZG9fZGlyZWN0aW9uAAAAAAADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:polished_diorite_stairs", - "groupId": 4, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSsAQAACAQAbmFtZSEAbWluZWNyYWZ0OnBvbGlzaGVkX2Rpb3JpdGVfc3RhaXJzBAkAbmFtZV9oYXNoFKRJd5Wk5L0DCgBuZXR3b3JrX2lkbt2ioAoGAHN0YXRlcwEPAHVwc2lkZV9kb3duX2JpdAADEAB3ZWlyZG9fZGlyZWN0aW9uAAAAAAADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:andesite_stairs", - "groupId": 4, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSqAQAACAQAbmFtZRkAbWluZWNyYWZ0OmFuZGVzaXRlX3N0YWlycwQJAG5hbWVfaGFzaO5w2FKBw76EAwoAbmV0d29ya19pZKhXEgUKBgBzdGF0ZXMBDwB1cHNpZGVfZG93bl9iaXQAAxAAd2VpcmRvX2RpcmVjdGlvbgAAAAAAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:polished_andesite_stairs", - "groupId": 4, - "block_state_b64": "CgAAAwgAYmxvY2tfaWStAQAACAQAbmFtZSIAbWluZWNyYWZ0OnBvbGlzaGVkX2FuZGVzaXRlX3N0YWlycwQJAG5hbWVfaGFzaNcZZ/zmLInIAwoAbmV0d29ya19pZJTHrlEKBgBzdGF0ZXMBDwB1cHNpZGVfZG93bl9iaXQAAxAAd2VpcmRvX2RpcmVjdGlvbgAAAAAAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:brick_stairs", - "groupId": 4, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRsAAAACAQAbmFtZRYAbWluZWNyYWZ0OmJyaWNrX3N0YWlycwQJAG5hbWVfaGFzaMyt+cRDk5O2AwoAbmV0d29ya19pZNeMh58KBgBzdGF0ZXMBDwB1cHNpZGVfZG93bl9iaXQAAxAAd2VpcmRvX2RpcmVjdGlvbgAAAAAAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:nether_brick_stairs", - "groupId": 4, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRyAAAACAQAbmFtZR0AbWluZWNyYWZ0Om5ldGhlcl9icmlja19zdGFpcnMECQBuYW1lX2hhc2jRqIoOXgifBAMKAG5ldHdvcmtfaWQDiw5yCgYAc3RhdGVzAQ8AdXBzaWRlX2Rvd25fYml0AAMQAHdlaXJkb19kaXJlY3Rpb24AAAAAAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:red_nether_brick_stairs", - "groupId": 4, - "block_state_b64": "CgAAAwgAYmxvY2tfaWS3AQAACAQAbmFtZSEAbWluZWNyYWZ0OnJlZF9uZXRoZXJfYnJpY2tfc3RhaXJzBAkAbmFtZV9oYXNogQvosSbcj7kDCgBuZXR3b3JrX2lkx2IMtAoGAHN0YXRlcwEPAHVwc2lkZV9kb3duX2JpdAADEAB3ZWlyZG9fZGlyZWN0aW9uAAAAAAADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:end_brick_stairs", - "groupId": 4, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSxAQAACAQAbmFtZRoAbWluZWNyYWZ0OmVuZF9icmlja19zdGFpcnMECQBuYW1lX2hhc2hmlAk+QhsUsQMKAG5ldHdvcmtfaWTN7KFaCgYAc3RhdGVzAQ8AdXBzaWRlX2Rvd25fYml0AAMQAHdlaXJkb19kaXJlY3Rpb24AAAAAAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:quartz_stairs", - "groupId": 4, - "block_state_b64": "CgAAAwgAYmxvY2tfaWScAAAACAQAbmFtZRcAbWluZWNyYWZ0OnF1YXJ0el9zdGFpcnMECQBuYW1lX2hhc2hmvpvOqGi6egMKAG5ldHdvcmtfaWRmUTh7CgYAc3RhdGVzAQ8AdXBzaWRlX2Rvd25fYml0AAMQAHdlaXJkb19kaXJlY3Rpb24AAAAAAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:smooth_quartz_stairs", - "groupId": 4, - "block_state_b64": "CgAAAwgAYmxvY2tfaWS4AQAACAQAbmFtZR4AbWluZWNyYWZ0OnNtb290aF9xdWFydHpfc3RhaXJzBAkAbmFtZV9oYXNoNZZ9rX0qZOsDCgBuZXR3b3JrX2lkzsgQyQoGAHN0YXRlcwEPAHVwc2lkZV9kb3duX2JpdAADEAB3ZWlyZG9fZGlyZWN0aW9uAAAAAAADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:purpur_stairs", - "groupId": 4, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTLAAAACAQAbmFtZRcAbWluZWNyYWZ0OnB1cnB1cl9zdGFpcnMECQBuYW1lX2hhc2ifwDxeezXD7gMKAG5ldHdvcmtfaWTT+rxiCgYAc3RhdGVzAQ8AdXBzaWRlX2Rvd25fYml0AAMQAHdlaXJkb19kaXJlY3Rpb24AAAAAAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:prismarine_stairs", - "groupId": 4, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQBAQAACAQAbmFtZRsAbWluZWNyYWZ0OnByaXNtYXJpbmVfc3RhaXJzBAkAbmFtZV9oYXNooTHSZ+IrYtcDCgBuZXR3b3JrX2lkxTJfeAoGAHN0YXRlcwEPAHVwc2lkZV9kb3duX2JpdAADEAB3ZWlyZG9fZGlyZWN0aW9uAAAAAAADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:dark_prismarine_stairs", - "groupId": 4, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQCAQAACAQAbmFtZSAAbWluZWNyYWZ0OmRhcmtfcHJpc21hcmluZV9zdGFpcnMECQBuYW1lX2hhc2hIciLmam4o4AMKAG5ldHdvcmtfaWTVu7TCCgYAc3RhdGVzAQ8AdXBzaWRlX2Rvd25fYml0AAMQAHdlaXJkb19kaXJlY3Rpb24AAAAAAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:prismarine_bricks_stairs", - "groupId": 4, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQDAQAACAQAbmFtZSIAbWluZWNyYWZ0OnByaXNtYXJpbmVfYnJpY2tzX3N0YWlycwQJAG5hbWVfaGFzaNIjq1oBlZMMAwoAbmV0d29ya19pZGEFwLYKBgBzdGF0ZXMBDwB1cHNpZGVfZG93bl9iaXQAAxAAd2VpcmRvX2RpcmVjdGlvbgAAAAAAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:crimson_stairs", - "groupId": 4, - "block_state_b64": "CgAAAwgAYmxvY2tfaWT9AQAACAQAbmFtZRgAbWluZWNyYWZ0OmNyaW1zb25fc3RhaXJzBAkAbmFtZV9oYXNoZJqIzCBpCq4DCgBuZXR3b3JrX2lktXE00AoGAHN0YXRlcwEPAHVwc2lkZV9kb3duX2JpdAADEAB3ZWlyZG9fZGlyZWN0aW9uAAAAAAADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:warped_stairs", - "groupId": 4, - "block_state_b64": "CgAAAwgAYmxvY2tfaWT+AQAACAQAbmFtZRcAbWluZWNyYWZ0OndhcnBlZF9zdGFpcnMECQBuYW1lX2hhc2hOkY27jLD4RQMKAG5ldHdvcmtfaWQ+E5VrCgYAc3RhdGVzAQ8AdXBzaWRlX2Rvd25fYml0AAMQAHdlaXJkb19kaXJlY3Rpb24AAAAAAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:blackstone_stairs", - "groupId": 4, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQTAgAACAQAbmFtZRsAbWluZWNyYWZ0OmJsYWNrc3RvbmVfc3RhaXJzBAkAbmFtZV9oYXNokdoUb76p9McDCgBuZXR3b3JrX2lk5fWI5goGAHN0YXRlcwEPAHVwc2lkZV9kb3duX2JpdAADEAB3ZWlyZG9fZGlyZWN0aW9uAAAAAAADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:polished_blackstone_stairs", - "groupId": 4, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQjAgAACAQAbmFtZSQAbWluZWNyYWZ0OnBvbGlzaGVkX2JsYWNrc3RvbmVfc3RhaXJzBAkAbmFtZV9oYXNolCFtFIE8MmADCgBuZXR3b3JrX2lkGTf7sgoGAHN0YXRlcwEPAHVwc2lkZV9kb3duX2JpdAADEAB3ZWlyZG9fZGlyZWN0aW9uAAAAAAADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:polished_blackstone_brick_stairs", - "groupId": 4, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQSAgAACAQAbmFtZSoAbWluZWNyYWZ0OnBvbGlzaGVkX2JsYWNrc3RvbmVfYnJpY2tfc3RhaXJzBAkAbmFtZV9oYXNonks6UlfpOmkDCgBuZXR3b3JrX2lkgYeOdAoGAHN0YXRlcwEPAHVwc2lkZV9kb3duX2JpdAADEAB3ZWlyZG9fZGlyZWN0aW9uAAAAAAADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:cobbled_deepslate_stairs", - "groupId": 4, - "block_state_b64": "CgAAAwgAYmxvY2tfaWR8AgAACAQAbmFtZSIAbWluZWNyYWZ0OmNvYmJsZWRfZGVlcHNsYXRlX3N0YWlycwQJAG5hbWVfaGFzaPIfa+TpyJcIAwoAbmV0d29ya19pZJUvOYIKBgBzdGF0ZXMBDwB1cHNpZGVfZG93bl9iaXQAAxAAd2VpcmRvX2RpcmVjdGlvbgAAAAAAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:deepslate_tile_stairs", - "groupId": 4, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSEAgAACAQAbmFtZR8AbWluZWNyYWZ0OmRlZXBzbGF0ZV90aWxlX3N0YWlycwQJAG5hbWVfaGFzaGFRFzB72mN2AwoAbmV0d29ya19pZJEOgIsKBgBzdGF0ZXMBDwB1cHNpZGVfZG93bl9iaXQAAxAAd2VpcmRvX2RpcmVjdGlvbgAAAAAAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:polished_deepslate_stairs", - "groupId": 4, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSAAgAACAQAbmFtZSMAbWluZWNyYWZ0OnBvbGlzaGVkX2RlZXBzbGF0ZV9zdGFpcnMECQBuYW1lX2hhc2iNCYxVik9sGAMKAG5ldHdvcmtfaWSRVPnYCgYAc3RhdGVzAQ8AdXBzaWRlX2Rvd25fYml0AAMQAHdlaXJkb19kaXJlY3Rpb24AAAAAAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:deepslate_brick_stairs", - "groupId": 4, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSIAgAACAQAbmFtZSAAbWluZWNyYWZ0OmRlZXBzbGF0ZV9icmlja19zdGFpcnMECQBuYW1lX2hhc2hIasOahEf83wMKAG5ldHdvcmtfaWQ1qEDCCgYAc3RhdGVzAQ8AdXBzaWRlX2Rvd25fYml0AAMQAHdlaXJkb19kaXJlY3Rpb24AAAAAAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:tuff_stairs", - "groupId": 4, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTpAwAACAQAbmFtZRUAbWluZWNyYWZ0OnR1ZmZfc3RhaXJzBAkAbmFtZV9oYXNoKjyNUBjcfZsDCgBuZXR3b3JrX2lk+LsycgoGAHN0YXRlcwEPAHVwc2lkZV9kb3duX2JpdAADEAB3ZWlyZG9fZGlyZWN0aW9uAAAAAAADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:polished_tuff_stairs", - "groupId": 4, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTuAwAACAQAbmFtZR4AbWluZWNyYWZ0OnBvbGlzaGVkX3R1ZmZfc3RhaXJzBAkAbmFtZV9oYXNo8yuah8QI1dcDCgBuZXR3b3JrX2lkjLoU4AoGAHN0YXRlcwEPAHVwc2lkZV9kb3duX2JpdAADEAB3ZWlyZG9fZGlyZWN0aW9uAAAAAAADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:tuff_brick_stairs", - "groupId": 4, - "block_state_b64": "CgAAAwgAYmxvY2tfaWT0AwAACAQAbmFtZRsAbWluZWNyYWZ0OnR1ZmZfYnJpY2tfc3RhaXJzBAkAbmFtZV9oYXNoWJpkAurUfKwDCgBuZXR3b3JrX2lkUMcjiwoGAHN0YXRlcwEPAHVwc2lkZV9kb3duX2JpdAADEAB3ZWlyZG9fZGlyZWN0aW9uAAAAAAADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:mud_brick_stairs", - "groupId": 4, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTfAgAACAQAbmFtZRoAbWluZWNyYWZ0Om11ZF9icmlja19zdGFpcnMECQBuYW1lX2hhc2gt3qxK1NWajAMKAG5ldHdvcmtfaWSm9N3MCgYAc3RhdGVzAQ8AdXBzaWRlX2Rvd25fYml0AAMQAHdlaXJkb19kaXJlY3Rpb24AAAAAAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:cut_copper_stairs", - "groupId": 4, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRhAgAACAQAbmFtZRsAbWluZWNyYWZ0OmN1dF9jb3BwZXJfc3RhaXJzBAkAbmFtZV9oYXNoHfoAXYq5G3MDCgBuZXR3b3JrX2lkeetf7woGAHN0YXRlcwEPAHVwc2lkZV9kb3duX2JpdAADEAB3ZWlyZG9fZGlyZWN0aW9uAAAAAAADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:exposed_cut_copper_stairs", - "groupId": 4, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRiAgAACAQAbmFtZSMAbWluZWNyYWZ0OmV4cG9zZWRfY3V0X2NvcHBlcl9zdGFpcnMECQBuYW1lX2hhc2howneQGtZ9cgMKAG5ldHdvcmtfaWSg73zdCgYAc3RhdGVzAQ8AdXBzaWRlX2Rvd25fYml0AAMQAHdlaXJkb19kaXJlY3Rpb24AAAAAAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:weathered_cut_copper_stairs", - "groupId": 4, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRjAgAACAQAbmFtZSUAbWluZWNyYWZ0OndlYXRoZXJlZF9jdXRfY29wcGVyX3N0YWlycwQJAG5hbWVfaGFzaP+R5loXxrVgAwoAbmV0d29ya19pZOnbRf4KBgBzdGF0ZXMBDwB1cHNpZGVfZG93bl9iaXQAAxAAd2VpcmRvX2RpcmVjdGlvbgAAAAAAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:oxidized_cut_copper_stairs", - "groupId": 4, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRkAgAACAQAbmFtZSQAbWluZWNyYWZ0Om94aWRpemVkX2N1dF9jb3BwZXJfc3RhaXJzBAkAbmFtZV9oYXNo6Jeoq5rsPxsDCgBuZXR3b3JrX2lkmRjDnQoGAHN0YXRlcwEPAHVwc2lkZV9kb3duX2JpdAADEAB3ZWlyZG9fZGlyZWN0aW9uAAAAAAADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:waxed_cut_copper_stairs", - "groupId": 4, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRlAgAACAQAbmFtZSEAbWluZWNyYWZ0OndheGVkX2N1dF9jb3BwZXJfc3RhaXJzBAkAbmFtZV9oYXNoh07CQj0/SR8DCgBuZXR3b3JrX2lkmYqoqAoGAHN0YXRlcwEPAHVwc2lkZV9kb3duX2JpdAADEAB3ZWlyZG9fZGlyZWN0aW9uAAAAAAADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:waxed_exposed_cut_copper_stairs", - "groupId": 4, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRmAgAACAQAbmFtZSkAbWluZWNyYWZ0OndheGVkX2V4cG9zZWRfY3V0X2NvcHBlcl9zdGFpcnMECQBuYW1lX2hhc2guVct1ilmxTwMKAG5ldHdvcmtfaWQgCPROCgYAc3RhdGVzAQ8AdXBzaWRlX2Rvd25fYml0AAMQAHdlaXJkb19kaXJlY3Rpb24AAAAAAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:waxed_weathered_cut_copper_stairs", - "groupId": 4, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRnAgAACAQAbmFtZSsAbWluZWNyYWZ0OndheGVkX3dlYXRoZXJlZF9jdXRfY29wcGVyX3N0YWlycwQJAG5hbWVfaGFzaPXC8Sz/phCpAwoAbmV0d29ya19pZHlwHVsKBgBzdGF0ZXMBDwB1cHNpZGVfZG93bl9iaXQAAxAAd2VpcmRvX2RpcmVjdGlvbgAAAAAAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:waxed_oxidized_cut_copper_stairs", - "groupId": 4, - "block_state_b64": "CgAAAwgAYmxvY2tfaWS/AgAACAQAbmFtZSoAbWluZWNyYWZ0OndheGVkX294aWRpemVkX2N1dF9jb3BwZXJfc3RhaXJzBAkAbmFtZV9oYXNoaqGdkuhxVZUDCgBuZXR3b3JrX2lkYQXzzgoGAHN0YXRlcwEPAHVwc2lkZV9kb3duX2JpdAADEAB3ZWlyZG9fZGlyZWN0aW9uAAAAAAADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:resin_brick_stairs", - "groupId": 4, - "block_state_b64": "CgAAAwgAYmxvY2tfaWT3BAAACAQAbmFtZRwAbWluZWNyYWZ0OnJlc2luX2JyaWNrX3N0YWlycwQJAG5hbWVfaGFzaGJwsbVlApWmAwoAbmV0d29ya19pZCPz+A0KBgBzdGF0ZXMBDwB1cHNpZGVfZG93bl9iaXQAAxAAd2VpcmRvX2RpcmVjdGlvbgAAAAAAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:wooden_door", - "groupId": 5 - }, - { - "id": "minecraft:spruce_door", - "groupId": 5 - }, - { - "id": "minecraft:birch_door", - "groupId": 5 - }, - { - "id": "minecraft:jungle_door", - "groupId": 5 - }, - { - "id": "minecraft:acacia_door", - "groupId": 5 - }, - { - "id": "minecraft:dark_oak_door", - "groupId": 5 - }, - { - "id": "minecraft:mangrove_door", - "groupId": 5 - }, - { - "id": "minecraft:cherry_door", - "groupId": 5 - }, - { - "id": "minecraft:pale_oak_door", - "groupId": 5 - }, - { - "id": "minecraft:bamboo_door", - "groupId": 5 - }, - { - "id": "minecraft:iron_door", - "groupId": 5 - }, - { - "id": "minecraft:crimson_door", - "groupId": 5 - }, - { - "id": "minecraft:warped_door", - "groupId": 5 - }, - { - "id": "minecraft:copper_door", - "groupId": 5 - }, - { - "id": "minecraft:exposed_copper_door", - "groupId": 5 - }, - { - "id": "minecraft:weathered_copper_door", - "groupId": 5 - }, - { - "id": "minecraft:oxidized_copper_door", - "groupId": 5 - }, - { - "id": "minecraft:waxed_copper_door", - "groupId": 5 - }, - { - "id": "minecraft:waxed_exposed_copper_door", - "groupId": 5 - }, - { - "id": "minecraft:waxed_weathered_copper_door", - "groupId": 5 - }, - { - "id": "minecraft:waxed_oxidized_copper_door", - "groupId": 5 - }, - { - "id": "minecraft:trapdoor", - "groupId": 6, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRgAAAACAQAbmFtZRIAbWluZWNyYWZ0OnRyYXBkb29yBAkAbmFtZV9oYXNotYiAJGtN0xADCgBuZXR3b3JrX2lkyTAWkAoGAHN0YXRlcwMJAGRpcmVjdGlvbgAAAAABCABvcGVuX2JpdAABDwB1cHNpZGVfZG93bl9iaXQAAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:spruce_trapdoor", - "groupId": 6, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSUAQAACAQAbmFtZRkAbWluZWNyYWZ0OnNwcnVjZV90cmFwZG9vcgQJAG5hbWVfaGFzaOwlfbgBkUW4AwoAbmV0d29ya19pZPHy1K0KBgBzdGF0ZXMDCQBkaXJlY3Rpb24AAAAAAQgAb3Blbl9iaXQAAQ8AdXBzaWRlX2Rvd25fYml0AAADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:birch_trapdoor", - "groupId": 6, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSRAQAACAQAbmFtZRgAbWluZWNyYWZ0OmJpcmNoX3RyYXBkb29yBAkAbmFtZV9oYXNoSLtLweOLJ7wDCgBuZXR3b3JrX2lkeJWDfgoGAHN0YXRlcwMJAGRpcmVjdGlvbgAAAAABCABvcGVuX2JpdAABDwB1cHNpZGVfZG93bl9iaXQAAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:jungle_trapdoor", - "groupId": 6, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSTAQAACAQAbmFtZRkAbWluZWNyYWZ0Omp1bmdsZV90cmFwZG9vcgQJAG5hbWVfaGFzaDP/TnM9wyCIAwoAbmV0d29ya19pZEy2fJoKBgBzdGF0ZXMDCQBkaXJlY3Rpb24AAAAAAQgAb3Blbl9iaXQAAQ8AdXBzaWRlX2Rvd25fYml0AAADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:acacia_trapdoor", - "groupId": 6, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSQAQAACAQAbmFtZRkAbWluZWNyYWZ0OmFjYWNpYV90cmFwZG9vcgQJAG5hbWVfaGFzaMj8xi3vmEKOAwoAbmV0d29ya19pZOHj8E8KBgBzdGF0ZXMDCQBkaXJlY3Rpb24AAAAAAQgAb3Blbl9iaXQAAQ8AdXBzaWRlX2Rvd25fYml0AAADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:dark_oak_trapdoor", - "groupId": 6, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSSAQAACAQAbmFtZRsAbWluZWNyYWZ0OmRhcmtfb2FrX3RyYXBkb29yBAkAbmFtZV9oYXNomB2GGJQ2aOMDCgBuZXR3b3JrX2lko5ZHTwoGAHN0YXRlcwMJAGRpcmVjdGlvbgAAAAABCABvcGVuX2JpdAABDwB1cHNpZGVfZG93bl9iaXQAAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:mangrove_trapdoor", - "groupId": 6, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTvAgAACAQAbmFtZRsAbWluZWNyYWZ0Om1hbmdyb3ZlX3RyYXBkb29yBAkAbmFtZV9oYXNooV3kQsQUUmkDCgBuZXR3b3JrX2lkkF/mxAoGAHN0YXRlcwMJAGRpcmVjdGlvbgAAAAABCABvcGVuX2JpdAABDwB1cHNpZGVfZG93bl9iaXQAAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:cherry_trapdoor", - "groupId": 6, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQeAwAACAQAbmFtZRkAbWluZWNyYWZ0OmNoZXJyeV90cmFwZG9vcgQJAG5hbWVfaGFzaH/PefpfdHgtAwoAbmV0d29ya19pZOA7eNgKBgBzdGF0ZXMDCQBkaXJlY3Rpb24AAAAAAQgAb3Blbl9iaXQAAQ8AdXBzaWRlX2Rvd25fYml0AAADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:pale_oak_trapdoor", - "groupId": 6, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTpBAAACAQAbmFtZRsAbWluZWNyYWZ0OnBhbGVfb2FrX3RyYXBkb29yBAkAbmFtZV9oYXNo5L0cQtjJA9oDCgBuZXR3b3JrX2lkVwhZTgoGAHN0YXRlcwMJAGRpcmVjdGlvbgAAAAABCABvcGVuX2JpdAABDwB1cHNpZGVfZG93bl9iaXQAAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:bamboo_trapdoor", - "groupId": 6, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQHAwAACAQAbmFtZRkAbWluZWNyYWZ0OmJhbWJvb190cmFwZG9vcgQJAG5hbWVfaGFzaJrEOpsTwtKCAwoAbmV0d29ya19pZLvbPz8KBgBzdGF0ZXMDCQBkaXJlY3Rpb24AAAAAAQgAb3Blbl9iaXQAAQ8AdXBzaWRlX2Rvd25fYml0AAADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:iron_trapdoor", - "groupId": 6, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSnAAAACAQAbmFtZRcAbWluZWNyYWZ0Omlyb25fdHJhcGRvb3IECQBuYW1lX2hhc2gwA+IumsEiGQMKAG5ldHdvcmtfaWTvSVl/CgYAc3RhdGVzAwkAZGlyZWN0aW9uAAAAAAEIAG9wZW5fYml0AAEPAHVwc2lkZV9kb3duX2JpdAAAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:crimson_trapdoor", - "groupId": 6, - "block_state_b64": "CgAAAwgAYmxvY2tfaWT1AQAACAQAbmFtZRoAbWluZWNyYWZ0OmNyaW1zb25fdHJhcGRvb3IECQBuYW1lX2hhc2jHXufTnwUkYgMKAG5ldHdvcmtfaWQLjMYVCgYAc3RhdGVzAwkAZGlyZWN0aW9uAAAAAAEIAG9wZW5fYml0AAEPAHVwc2lkZV9kb3duX2JpdAAAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:warped_trapdoor", - "groupId": 6, - "block_state_b64": "CgAAAwgAYmxvY2tfaWT2AQAACAQAbmFtZRkAbWluZWNyYWZ0OndhcnBlZF90cmFwZG9vcgQJAG5hbWVfaGFzaA20wG/+vkd6AwoAbmV0d29ya19pZHKR/hYKBgBzdGF0ZXMDCQBkaXJlY3Rpb24AAAAAAQgAb3Blbl9iaXQAAQ8AdXBzaWRlX2Rvd25fYml0AAADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:copper_trapdoor", - "groupId": 6, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQXBAAACAQAbmFtZRkAbWluZWNyYWZ0OmNvcHBlcl90cmFwZG9vcgQJAG5hbWVfaGFzaO9fXio+svKVAwoAbmV0d29ya19pZMCoRjEKBgBzdGF0ZXMDCQBkaXJlY3Rpb24AAAAAAQgAb3Blbl9iaXQAAQ8AdXBzaWRlX2Rvd25fYml0AAADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:exposed_copper_trapdoor", - "groupId": 6, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQYBAAACAQAbmFtZSEAbWluZWNyYWZ0OmV4cG9zZWRfY29wcGVyX3RyYXBkb29yBAkAbmFtZV9oYXNoYhDFUysN7qUDCgBuZXR3b3JrX2lkMzwGJgoGAHN0YXRlcwMJAGRpcmVjdGlvbgAAAAABCABvcGVuX2JpdAABDwB1cHNpZGVfZG93bl9iaXQAAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:weathered_copper_trapdoor", - "groupId": 6, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQZBAAACAQAbmFtZSMAbWluZWNyYWZ0OndlYXRoZXJlZF9jb3BwZXJfdHJhcGRvb3IECQBuYW1lX2hhc2hFnEC282a1tgMKAG5ldHdvcmtfaWTk70oiCgYAc3RhdGVzAwkAZGlyZWN0aW9uAAAAAAEIAG9wZW5fYml0AAEPAHVwc2lkZV9kb3duX2JpdAAAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:oxidized_copper_trapdoor", - "groupId": 6, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQaBAAACAQAbmFtZSIAbWluZWNyYWZ0Om94aWRpemVkX2NvcHBlcl90cmFwZG9vcgQJAG5hbWVfaGFzaOJpG/XFexVwAwoAbmV0d29ya19pZPhi0J4KBgBzdGF0ZXMDCQBkaXJlY3Rpb24AAAAAAQgAb3Blbl9iaXQAAQ8AdXBzaWRlX2Rvd25fYml0AAADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:waxed_copper_trapdoor", - "groupId": 6, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQbBAAACAQAbmFtZR8AbWluZWNyYWZ0OndheGVkX2NvcHBlcl90cmFwZG9vcgQJAG5hbWVfaGFzaO0JUKUHqNU6AwoAbmV0d29ya19pZJC3ZuMKBgBzdGF0ZXMDCQBkaXJlY3Rpb24AAAAAAQgAb3Blbl9iaXQAAQ8AdXBzaWRlX2Rvd25fYml0AAADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:waxed_exposed_copper_trapdoor", - "groupId": 6, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQcBAAACAQAbmFtZScAbWluZWNyYWZ0OndheGVkX2V4cG9zZWRfY29wcGVyX3RyYXBkb29yBAkAbmFtZV9oYXNoBHHxCpkUzpgDCgBuZXR3b3JrX2lkw2XBGQoGAHN0YXRlcwMJAGRpcmVjdGlvbgAAAAABCABvcGVuX2JpdAABDwB1cHNpZGVfZG93bl9iaXQAAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:waxed_weathered_copper_trapdoor", - "groupId": 6, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQdBAAACAQAbmFtZSkAbWluZWNyYWZ0OndheGVkX3dlYXRoZXJlZF9jb3BwZXJfdHJhcGRvb3IECQBuYW1lX2hhc2gH9Fi3JCF4egMKAG5ldHdvcmtfaWRkGU6TCgYAc3RhdGVzAwkAZGlyZWN0aW9uAAAAAAEIAG9wZW5fYml0AAEPAHVwc2lkZV9kb3duX2JpdAAAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:waxed_oxidized_copper_trapdoor", - "groupId": 6, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQeBAAACAQAbmFtZSgAbWluZWNyYWZ0OndheGVkX294aWRpemVkX2NvcHBlcl90cmFwZG9vcgQJAG5hbWVfaGFzaNA/q9qAy6Z9AwoAbmV0d29ya19pZDgExS8KBgBzdGF0ZXMDCQBkaXJlY3Rpb24AAAAAAQgAb3Blbl9iaXQAAQ8AdXBzaWRlX2Rvd25fYml0AAADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:iron_bars", - "groupId": 7, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRlAAAACAQAbmFtZRMAbWluZWNyYWZ0Omlyb25fYmFycwQJAG5hbWVfaGFzaPuefWSNAe56AwoAbmV0d29ya19pZN2LB5IKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:glass", - "groupId": 8, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQUAAAACAQAbmFtZQ8AbWluZWNyYWZ0OmdsYXNzBAkAbmFtZV9oYXNowGJByfWff6gDCgBuZXR3b3JrX2lk0hdLNwoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:white_stained_glass", - "groupId": 8, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTxAAAACAQAbmFtZR0AbWluZWNyYWZ0OndoaXRlX3N0YWluZWRfZ2xhc3MECQBuYW1lX2hhc2iHubqoMbu9fAMKAG5ldHdvcmtfaWRndBrUCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:light_gray_stained_glass", - "groupId": 8, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSnAwAACAQAbmFtZSIAbWluZWNyYWZ0OmxpZ2h0X2dyYXlfc3RhaW5lZF9nbGFzcwQJAG5hbWVfaGFzaKKa+LrRsHQhAwoAbmV0d29ya19pZEv2giYKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:gray_stained_glass", - "groupId": 8, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSmAwAACAQAbmFtZRwAbWluZWNyYWZ0OmdyYXlfc3RhaW5lZF9nbGFzcwQJAG5hbWVfaGFzaIETy7Y/HZREAwoAbmV0d29ya19pZDomVrUKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:black_stained_glass", - "groupId": 8, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSuAwAACAQAbmFtZR0AbWluZWNyYWZ0OmJsYWNrX3N0YWluZWRfZ2xhc3MECQBuYW1lX2hhc2iV6BCwpfDMmwMKAG5ldHdvcmtfaWSV7doJCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:brown_stained_glass", - "groupId": 8, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSrAwAACAQAbmFtZR0AbWluZWNyYWZ0OmJyb3duX3N0YWluZWRfZ2xhc3MECQBuYW1lX2hhc2igsEiq5np8JgMKAG5ldHdvcmtfaWRMzE/lCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:red_stained_glass", - "groupId": 8, - "block_state_b64": "CgAAAwgAYmxvY2tfaWStAwAACAQAbmFtZRsAbWluZWNyYWZ0OnJlZF9zdGFpbmVkX2dsYXNzBAkAbmFtZV9oYXNoCa2J12/lQoIDCgBuZXR3b3JrX2lk283lWAoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:orange_stained_glass", - "groupId": 8, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSgAwAACAQAbmFtZR4AbWluZWNyYWZ0Om9yYW5nZV9zdGFpbmVkX2dsYXNzBAkAbmFtZV9oYXNozgjAuvzhxGsDCgBuZXR3b3JrX2lkW5CkhQoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:yellow_stained_glass", - "groupId": 8, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSjAwAACAQAbmFtZR4AbWluZWNyYWZ0OnllbGxvd19zdGFpbmVkX2dsYXNzBAkAbmFtZV9oYXNo7EbHMd5WVugDCgBuZXR3b3JrX2lkkdDyXQoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:lime_stained_glass", - "groupId": 8, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSkAwAACAQAbmFtZRwAbWluZWNyYWZ0OmxpbWVfc3RhaW5lZF9nbGFzcwQJAG5hbWVfaGFzaBtZA1nZtwcFAwoAbmV0d29ya19pZDxX85UKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:green_stained_glass", - "groupId": 8, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSsAwAACAQAbmFtZR0AbWluZWNyYWZ0OmdyZWVuX3N0YWluZWRfZ2xhc3MECQBuYW1lX2hhc2h91ptDgbehWwMKAG5ldHdvcmtfaWTlDhnECgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:cyan_stained_glass", - "groupId": 8, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSoAwAACAQAbmFtZRwAbWluZWNyYWZ0OmN5YW5fc3RhaW5lZF9nbGFzcwQJAG5hbWVfaGFzaBkIYQ8nQLqbAwoAbmV0d29ya19pZOL1lHsKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:light_blue_stained_glass", - "groupId": 8, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSiAwAACAQAbmFtZSIAbWluZWNyYWZ0OmxpZ2h0X2JsdWVfc3RhaW5lZF9nbGFzcwQJAG5hbWVfaGFzaLt05n1G0fiSAwoAbmV0d29ya19pZNbwulIKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:blue_stained_glass", - "groupId": 8, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSqAwAACAQAbmFtZRwAbWluZWNyYWZ0OmJsdWVfc3RhaW5lZF9nbGFzcwQJAG5hbWVfaGFzaPhLocSfzduRAwoAbmV0d29ya19pZENsjFwKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:purple_stained_glass", - "groupId": 8, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSpAwAACAQAbmFtZR4AbWluZWNyYWZ0OnB1cnBsZV9zdGFpbmVkX2dsYXNzBAkAbmFtZV9oYXNoJk0DhRO0szUDCgBuZXR3b3JrX2lkD98ZxgoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:magenta_stained_glass", - "groupId": 8, - "block_state_b64": "CgAAAwgAYmxvY2tfaWShAwAACAQAbmFtZR8AbWluZWNyYWZ0Om1hZ2VudGFfc3RhaW5lZF9nbGFzcwQJAG5hbWVfaGFzaFEDeFiJj3zSAwoAbmV0d29ya19pZG+iFRoKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:pink_stained_glass", - "groupId": 8, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSlAwAACAQAbmFtZRwAbWluZWNyYWZ0OnBpbmtfc3RhaW5lZF9nbGFzcwQJAG5hbWVfaGFzaDijTX87ywxhAwoAbmV0d29ya19pZKdEricKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:tinted_glass", - "groupId": 8, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRNAgAACAQAbmFtZRYAbWluZWNyYWZ0OnRpbnRlZF9nbGFzcwQJAG5hbWVfaGFzaAFZWSamk6KdAwoAbmV0d29ya19pZGSvWX8KBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:glass_pane", - "groupId": 9, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRmAAAACAQAbmFtZRQAbWluZWNyYWZ0OmdsYXNzX3BhbmUECQBuYW1lX2hhc2gRSBHwNMQ4gQMKAG5ldHdvcmtfaWRGwixuCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:white_stained_glass_pane", - "groupId": 9, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSgAAAACAQAbmFtZSIAbWluZWNyYWZ0OndoaXRlX3N0YWluZWRfZ2xhc3NfcGFuZQQJAG5hbWVfaGFzaHgxQmgJVtRrAwoAbmV0d29ya19pZBEr/DYKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:light_gray_stained_glass_pane", - "groupId": 9, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSJAwAACAQAbmFtZScAbWluZWNyYWZ0OmxpZ2h0X2dyYXlfc3RhaW5lZF9nbGFzc19wYW5lBAkAbmFtZV9oYXNon0aQw9lNkSEDCgBuZXR3b3JrX2lk9dp5VgoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:gray_stained_glass_pane", - "groupId": 9, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSIAwAACAQAbmFtZSEAbWluZWNyYWZ0OmdyYXlfc3RhaW5lZF9nbGFzc19wYW5lBAkAbmFtZV9oYXNors74IIw+2MMDCgBuZXR3b3JrX2lkmrGO5woGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:black_stained_glass_pane", - "groupId": 9, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSQAwAACAQAbmFtZSIAbWluZWNyYWZ0OmJsYWNrX3N0YWluZWRfZ2xhc3NfcGFuZQQJAG5hbWVfaGFzaOK/5ZRRd+M1AwoAbmV0d29ya19pZDv++oQKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:brown_stained_glass_pane", - "groupId": 9, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSNAwAACAQAbmFtZSIAbWluZWNyYWZ0OmJyb3duX3N0YWluZWRfZ2xhc3NfcGFuZQQJAG5hbWVfaGFzaLHeGJyRFTIWAwoAbmV0d29ya19pZMz9L0wKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:red_stained_glass_pane", - "groupId": 9, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSPAwAACAQAbmFtZSAAbWluZWNyYWZ0OnJlZF9zdGFpbmVkX2dsYXNzX3BhbmUECQBuYW1lX2hhc2gGr4x6JheAywMKAG5ldHdvcmtfaWQBjCTmCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:orange_stained_glass_pane", - "groupId": 9, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSCAwAACAQAbmFtZSMAbWluZWNyYWZ0Om9yYW5nZV9zdGFpbmVkX2dsYXNzX3BhbmUECQBuYW1lX2hhc2hbHxPD2gEbEAMKAG5ldHdvcmtfaWSt/7a5CgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:yellow_stained_glass_pane", - "groupId": 9, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSFAwAACAQAbmFtZSMAbWluZWNyYWZ0OnllbGxvd19zdGFpbmVkX2dsYXNzX3BhbmUECQBuYW1lX2hhc2g9tl4aOCyZBwMKAG5ldHdvcmtfaWTXRAS7CgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:lime_stained_glass_pane", - "groupId": 9, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSGAwAACAQAbmFtZSEAbWluZWNyYWZ0OmxpbWVfc3RhaW5lZF9nbGFzc19wYW5lBAkAbmFtZV9oYXNo3CtUyLwoGegDCgBuZXR3b3JrX2lkYJDnggoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:green_stained_glass_pane", - "groupId": 9, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSOAwAACAQAbmFtZSIAbWluZWNyYWZ0OmdyZWVuX3N0YWluZWRfZ2xhc3NfcGFuZQQJAG5hbWVfaGFzaJo6YP7IMy9SAwoAbmV0d29ya19pZHOnixoKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:cyan_stained_glass_pane", - "groupId": 9, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSKAwAACAQAbmFtZSEAbWluZWNyYWZ0OmN5YW5fc3RhaW5lZF9nbGFzc19wYW5lBAkAbmFtZV9oYXNoti97c6QrbLQDCgBuZXR3b3JrX2lkUqFUeQoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:light_blue_stained_glass_pane", - "groupId": 9, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSEAwAACAQAbmFtZScAbWluZWNyYWZ0OmxpZ2h0X2JsdWVfc3RhaW5lZF9nbGFzc19wYW5lBAkAbmFtZV9oYXNovDg/gQle104DCgBuZXR3b3JrX2lkFuy4MQoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:blue_stained_glass_pane", - "groupId": 9, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSMAwAACAQAbmFtZSEAbWluZWNyYWZ0OmJsdWVfc3RhaW5lZF9nbGFzc19wYW5lBAkAbmFtZV9oYXNoGc57tiexbQMDCgBuZXR3b3JrX2lk1eBLUAoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:purple_stained_glass_pane", - "groupId": 9, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSLAwAACAQAbmFtZSMAbWluZWNyYWZ0OnB1cnBsZV9zdGFpbmVkX2dsYXNzX3BhbmUECQBuYW1lX2hhc2hDJHYdd0FdfQMKAG5ldHdvcmtfaWSNsdK5CgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:magenta_stained_glass_pane", - "groupId": 9, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSDAwAACAQAbmFtZSQAbWluZWNyYWZ0Om1hZ2VudGFfc3RhaW5lZF9nbGFzc19wYW5lBAkAbmFtZV9oYXNo3pcOw5bs5XoDCgBuZXR3b3JrX2lkVbOR7AoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:pink_stained_glass_pane", - "groupId": 9, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSHAwAACAQAbmFtZSEAbWluZWNyYWZ0OnBpbmtfc3RhaW5lZF9nbGFzc19wYW5lBAkAbmFtZV9oYXNoWRhSACMWgswDCgBuZXR3b3JrX2lkIR92xwoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:ladder", - "groupId": 10, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRBAAAACAQAbmFtZRAAbWluZWNyYWZ0OmxhZGRlcgQJAG5hbWVfaGFzaKBhqheJVOz+AwoAbmV0d29ya19pZCgvzlsKBgBzdGF0ZXMDEABmYWNpbmdfZGlyZWN0aW9uAAAAAAADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:scaffolding", - "groupId": 10, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSkAQAACAQAbmFtZRUAbWluZWNyYWZ0OnNjYWZmb2xkaW5nBAkAbmFtZV9oYXNoYrkevrqcljwDCgBuZXR3b3JrX2lkD13mlAoGAHN0YXRlcwMJAHN0YWJpbGl0eQAAAAABDwBzdGFiaWxpdHlfY2hlY2sAAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:brick_block", - "groupId": 10, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQtAAAACAQAbmFtZRUAbWluZWNyYWZ0OmJyaWNrX2Jsb2NrBAkAbmFtZV9oYXNo5Qc2E005S3oDCgBuZXR3b3JrX2lkqeGWRgoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:smooth_stone_slab", - "groupId": 11, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQsAAAACAQAbmFtZRsAbWluZWNyYWZ0OnNtb290aF9zdG9uZV9zbGFiBAkAbmFtZV9oYXNon5I1yVw74uMDCgBuZXR3b3JrX2lkqvjcBQoGAHN0YXRlcwgXAG1pbmVjcmFmdDp2ZXJ0aWNhbF9oYWxmBgBib3R0b20AAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:normal_stone_slab", - "groupId": 11, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSCBAAACAQAbmFtZRsAbWluZWNyYWZ0Om5vcm1hbF9zdG9uZV9zbGFiBAkAbmFtZV9oYXNoIvsjJLQdolcDCgBuZXR3b3JrX2lkC1zqRQoGAHN0YXRlcwgXAG1pbmVjcmFmdDp2ZXJ0aWNhbF9oYWxmBgBib3R0b20AAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:cobblestone_slab", - "groupId": 11, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRoBAAACAQAbmFtZRoAbWluZWNyYWZ0OmNvYmJsZXN0b25lX3NsYWIECQBuYW1lX2hhc2h5CXtW7vlQVgMKAG5ldHdvcmtfaWRDGyj2CgYAc3RhdGVzCBcAbWluZWNyYWZ0OnZlcnRpY2FsX2hhbGYGAGJvdHRvbQADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:mossy_cobblestone_slab", - "groupId": 11, - "block_state_b64": "CgAAAwgAYmxvY2tfaWR3BAAACAQAbmFtZSAAbWluZWNyYWZ0Om1vc3N5X2NvYmJsZXN0b25lX3NsYWIECQBuYW1lX2hhc2ijm1BCwB82VgMKAG5ldHdvcmtfaWR7ByMGCgYAc3RhdGVzCBcAbWluZWNyYWZ0OnZlcnRpY2FsX2hhbGYGAGJvdHRvbQADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:oak_slab", - "groupId": 11, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSeAAAACAQAbmFtZRIAbWluZWNyYWZ0Om9ha19zbGFiBAkAbmFtZV9oYXNoJp1Cp1M4jlwDCgBuZXR3b3JrX2lkZH6+owoGAHN0YXRlcwgXAG1pbmVjcmFmdDp2ZXJ0aWNhbF9oYWxmBgBib3R0b20AAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:spruce_slab", - "groupId": 11, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQjBAAACAQAbmFtZRUAbWluZWNyYWZ0OnNwcnVjZV9zbGFiBAkAbmFtZV9oYXNodQi70jB238cDCgBuZXR3b3JrX2lkrriOYQoGAHN0YXRlcwgXAG1pbmVjcmFmdDp2ZXJ0aWNhbF9oYWxmBgBib3R0b20AAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:birch_slab", - "groupId": 11, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQkBAAACAQAbmFtZRQAbWluZWNyYWZ0OmJpcmNoX3NsYWIECQBuYW1lX2hhc2gZPpfMxoOsTAMKAG5ldHdvcmtfaWThR9jyCgYAc3RhdGVzCBcAbWluZWNyYWZ0OnZlcnRpY2FsX2hhbGYGAGJvdHRvbQADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:jungle_slab", - "groupId": 11, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQlBAAACAQAbmFtZRUAbWluZWNyYWZ0Omp1bmdsZV9zbGFiBAkAbmFtZV9oYXNo6gLs79NXak4DCgBuZXR3b3JrX2lk5ZiKgwoGAHN0YXRlcwgXAG1pbmVjcmFmdDp2ZXJ0aWNhbF9oYWxmBgBib3R0b20AAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:acacia_slab", - "groupId": 11, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQmBAAACAQAbmFtZRUAbWluZWNyYWZ0OmFjYWNpYV9zbGFiBAkAbmFtZV9oYXNomSdFmDnv4OUDCgBuZXR3b3JrX2lkHttaXAoGAHN0YXRlcwgXAG1pbmVjcmFmdDp2ZXJ0aWNhbF9oYWxmBgBib3R0b20AAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:dark_oak_slab", - "groupId": 11, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQnBAAACAQAbmFtZRcAbWluZWNyYWZ0OmRhcmtfb2FrX3NsYWIECQBuYW1lX2hhc2hJjTohRFyhIQMKAG5ldHdvcmtfaWRMzDTyCgYAc3RhdGVzCBcAbWluZWNyYWZ0OnZlcnRpY2FsX2hhbGYGAGJvdHRvbQADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:mangrove_slab", - "groupId": 11, - "block_state_b64": "CgAAAwgAYmxvY2tfaWToAgAACAQAbmFtZRcAbWluZWNyYWZ0Om1hbmdyb3ZlX3NsYWIECQBuYW1lX2hhc2jYCcmhJPeNMwMKAG5ldHdvcmtfaWQx6U1yCgYAc3RhdGVzCBcAbWluZWNyYWZ0OnZlcnRpY2FsX2hhbGYGAGJvdHRvbQADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:cherry_slab", - "groupId": 11, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQaAwAACAQAbmFtZRUAbWluZWNyYWZ0OmNoZXJyeV9zbGFiBAkAbmFtZV9oYXNoTt0MmVn/mqoDCgBuZXR3b3JrX2lk2VVsZQoGAHN0YXRlcwgXAG1pbmVjcmFmdDp2ZXJ0aWNhbF9oYWxmBgBib3R0b20AAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:pale_oak_slab", - "groupId": 11, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTlBAAACAQAbmFtZRcAbWluZWNyYWZ0OnBhbGVfb2FrX3NsYWIECQBuYW1lX2hhc2g9QqTGUjo2XgMKAG5ldHdvcmtfaWQoWvcmCgYAc3RhdGVzCBcAbWluZWNyYWZ0OnZlcnRpY2FsX2hhbGYGAGJvdHRvbQADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:bamboo_slab", - "groupId": 11, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQAAwAACAQAbmFtZRUAbWluZWNyYWZ0OmJhbWJvb19zbGFiBAkAbmFtZV9oYXNoo1xuFqINeLYDCgBuZXR3b3JrX2lkVC+0twoGAHN0YXRlcwgXAG1pbmVjcmFmdDp2ZXJ0aWNhbF9oYWxmBgBib3R0b20AAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:bamboo_mosaic_slab", - "groupId": 11, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQLAwAACAQAbmFtZRwAbWluZWNyYWZ0OmJhbWJvb19tb3NhaWNfc2xhYgQJAG5hbWVfaGFzaNbVRBZ/ChI3AwoAbmV0d29ya19pZOLZHFMKBgBzdGF0ZXMIFwBtaW5lY3JhZnQ6dmVydGljYWxfaGFsZgYAYm90dG9tAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:stone_brick_slab", - "groupId": 11, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRqBAAACAQAbmFtZRoAbWluZWNyYWZ0OnN0b25lX2JyaWNrX3NsYWIECQBuYW1lX2hhc2js6EexuKuzrQMKAG5ldHdvcmtfaWRSsMxaCgYAc3RhdGVzCBcAbWluZWNyYWZ0OnZlcnRpY2FsX2hhbGYGAGJvdHRvbQADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:mossy_stone_brick_slab", - "groupId": 11, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSlAQAACAQAbmFtZSAAbWluZWNyYWZ0Om1vc3N5X3N0b25lX2JyaWNrX3NsYWIECQBuYW1lX2hhc2hiA4kFUl4tHAMKAG5ldHdvcmtfaWS6joSOCgYAc3RhdGVzCBcAbWluZWNyYWZ0OnZlcnRpY2FsX2hhbGYGAGJvdHRvbQADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:sandstone_slab", - "groupId": 11, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRnBAAACAQAbmFtZRgAbWluZWNyYWZ0OnNhbmRzdG9uZV9zbGFiBAkAbmFtZV9oYXNo/GMI0MZnrhsDCgBuZXR3b3JrX2lkFP8WmwoGAHN0YXRlcwgXAG1pbmVjcmFmdDp2ZXJ0aWNhbF9oYWxmBgBib3R0b20AAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:cut_sandstone_slab", - "groupId": 11, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSDBAAACAQAbmFtZRwAbWluZWNyYWZ0OmN1dF9zYW5kc3RvbmVfc2xhYgQJAG5hbWVfaGFzaE+zxVQweViJAwoAbmV0d29ya19pZHsu74YKBgBzdGF0ZXMIFwBtaW5lY3JhZnQ6dmVydGljYWxfaGFsZgYAYm90dG9tAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:smooth_sandstone_slab", - "groupId": 11, - "block_state_b64": "CgAAAwgAYmxvY2tfaWR4BAAACAQAbmFtZR8AbWluZWNyYWZ0OnNtb290aF9zYW5kc3RvbmVfc2xhYgQJAG5hbWVfaGFzaIkmsO1gw3gnAwoAbmV0d29ya19pZFSiwP0KBgBzdGF0ZXMIFwBtaW5lY3JhZnQ6dmVydGljYWxfaGFsZgYAYm90dG9tAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:red_sandstone_slab", - "groupId": 11, - "block_state_b64": "CgAAAwgAYmxvY2tfaWS2AAAACAQAbmFtZRwAbWluZWNyYWZ0OnJlZF9zYW5kc3RvbmVfc2xhYgQJAG5hbWVfaGFzaEyDjeWlUHItAwoAbmV0d29ya19pZIT4rmwKBgBzdGF0ZXMIFwBtaW5lY3JhZnQ6dmVydGljYWxfaGFsZgYAYm90dG9tAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:cut_red_sandstone_slab", - "groupId": 11, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSEBAAACAQAbmFtZSAAbWluZWNyYWZ0OmN1dF9yZWRfc2FuZHN0b25lX3NsYWIECQBuYW1lX2hhc2hTVRS++snU3wMKAG5ldHdvcmtfaWSvIAviCgYAc3RhdGVzCBcAbWluZWNyYWZ0OnZlcnRpY2FsX2hhbGYGAGJvdHRvbQADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:smooth_red_sandstone_slab", - "groupId": 11, - "block_state_b64": "CgAAAwgAYmxvY2tfaWR6BAAACAQAbmFtZSMAbWluZWNyYWZ0OnNtb290aF9yZWRfc2FuZHN0b25lX3NsYWIECQBuYW1lX2hhc2i9iN2UK272tgMKAG5ldHdvcmtfaWRUZrwJCgYAc3RhdGVzCBcAbWluZWNyYWZ0OnZlcnRpY2FsX2hhbGYGAGJvdHRvbQADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:granite_slab", - "groupId": 11, - "block_state_b64": "CgAAAwgAYmxvY2tfaWR/BAAACAQAbmFtZRYAbWluZWNyYWZ0OmdyYW5pdGVfc2xhYgQJAG5hbWVfaGFzaL0HprlAhhZwAwoAbmV0d29ya19pZIcIdc8KBgBzdGF0ZXMIFwBtaW5lY3JhZnQ6dmVydGljYWxfaGFsZgYAYm90dG9tAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:polished_granite_slab", - "groupId": 11, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSABAAACAQAbmFtZR8AbWluZWNyYWZ0OnBvbGlzaGVkX2dyYW5pdGVfc2xhYgQJAG5hbWVfaGFzaP6bXk5w2dGrAwoAbmV0d29ya19pZCsRy1cKBgBzdGF0ZXMIFwBtaW5lY3JhZnQ6dmVydGljYWxfaGFsZgYAYm90dG9tAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:diorite_slab", - "groupId": 11, - "block_state_b64": "CgAAAwgAYmxvY2tfaWR9BAAACAQAbmFtZRYAbWluZWNyYWZ0OmRpb3JpdGVfc2xhYgQJAG5hbWVfaGFzaM3ppS8v55sNAwoAbmV0d29ya19pZB+Pv9oKBgBzdGF0ZXMIFwBtaW5lY3JhZnQ6dmVydGljYWxfaGFsZgYAYm90dG9tAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:polished_diorite_slab", - "groupId": 11, - "block_state_b64": "CgAAAwgAYmxvY2tfaWR+BAAACAQAbmFtZR8AbWluZWNyYWZ0OnBvbGlzaGVkX2Rpb3JpdGVfc2xhYgQJAG5hbWVfaGFzaLZlyJLkMPhyAwoAbmV0d29ya19pZFM0HYwKBgBzdGF0ZXMIFwBtaW5lY3JhZnQ6dmVydGljYWxfaGFsZgYAYm90dG9tAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:andesite_slab", - "groupId": 11, - "block_state_b64": "CgAAAwgAYmxvY2tfaWR8BAAACAQAbmFtZRcAbWluZWNyYWZ0OmFuZGVzaXRlX3NsYWIECQBuYW1lX2hhc2icIrtuy/aosAMKAG5ldHdvcmtfaWTtXTtYCgYAc3RhdGVzCBcAbWluZWNyYWZ0OnZlcnRpY2FsX2hhbGYGAGJvdHRvbQADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:polished_andesite_slab", - "groupId": 11, - "block_state_b64": "CgAAAwgAYmxvY2tfaWR7BAAACAQAbmFtZSAAbWluZWNyYWZ0OnBvbGlzaGVkX2FuZGVzaXRlX3NsYWIECQBuYW1lX2hhc2j56zJOfCF+3wMKAG5ldHdvcmtfaWRBs69FCgYAc3RhdGVzCBcAbWluZWNyYWZ0OnZlcnRpY2FsX2hhbGYGAGJvdHRvbQADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:brick_slab", - "groupId": 11, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRpBAAACAQAbmFtZRQAbWluZWNyYWZ0OmJyaWNrX3NsYWIECQBuYW1lX2hhc2hO/Da4jU2v4wMKAG5ldHdvcmtfaWRG/qphCgYAc3RhdGVzCBcAbWluZWNyYWZ0OnZlcnRpY2FsX2hhbGYGAGJvdHRvbQADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:nether_brick_slab", - "groupId": 11, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRsBAAACAQAbmFtZRsAbWluZWNyYWZ0Om5ldGhlcl9icmlja19zbGFiBAkAbmFtZV9oYXNonymoa2zbbqMDCgBuZXR3b3JrX2lkquvR1QoGAHN0YXRlcwgXAG1pbmVjcmFmdDp2ZXJ0aWNhbF9oYWxmBgBib3R0b20AAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:red_nether_brick_slab", - "groupId": 11, - "block_state_b64": "CgAAAwgAYmxvY2tfaWR5BAAACAQAbmFtZR8AbWluZWNyYWZ0OnJlZF9uZXRoZXJfYnJpY2tfc2xhYgQJAG5hbWVfaGFzaG89ujUk3Y64AwoAbmV0d29ya19pZEZIunAKBgBzdGF0ZXMIFwBtaW5lY3JhZnQ6dmVydGljYWxfaGFsZgYAYm90dG9tAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:end_stone_brick_slab", - "groupId": 11, - "block_state_b64": "CgAAAwgAYmxvY2tfaWShAQAACAQAbmFtZR4AbWluZWNyYWZ0OmVuZF9zdG9uZV9icmlja19zbGFiBAkAbmFtZV9oYXNo4tkxQtl+IyQDCgBuZXR3b3JrX2lkhByH/woGAHN0YXRlcwgXAG1pbmVjcmFmdDp2ZXJ0aWNhbF9oYWxmBgBib3R0b20AAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:quartz_slab", - "groupId": 11, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRrBAAACAQAbmFtZRUAbWluZWNyYWZ0OnF1YXJ0el9zbGFiBAkAbmFtZV9oYXNo9JMj3upfsbwDCgBuZXR3b3JrX2lkn2g2VAoGAHN0YXRlcwgXAG1pbmVjcmFmdDp2ZXJ0aWNhbF9oYWxmBgBib3R0b20AAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:smooth_quartz_slab", - "groupId": 11, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSBBAAACAQAbmFtZRwAbWluZWNyYWZ0OnNtb290aF9xdWFydHpfc2xhYgQJAG5hbWVfaGFzaHOSJv8ve0nmAwoAbmV0d29ya19pZFMk/JsKBgBzdGF0ZXMIFwBtaW5lY3JhZnQ6dmVydGljYWxfaGFsZgYAYm90dG9tAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:purpur_slab", - "groupId": 11, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRzBAAACAQAbmFtZRUAbWluZWNyYWZ0OnB1cnB1cl9zbGFiBAkAbmFtZV9oYXNo4XeWbKpx2ScDCgBuZXR3b3JrX2lkRkga5goGAHN0YXRlcwgXAG1pbmVjcmFmdDp2ZXJ0aWNhbF9oYWxmBgBib3R0b20AAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:prismarine_slab", - "groupId": 11, - "block_state_b64": "CgAAAwgAYmxvY2tfaWR0BAAACAQAbmFtZRkAbWluZWNyYWZ0OnByaXNtYXJpbmVfc2xhYgQJAG5hbWVfaGFzaI9x+1fY8QRfAwoAbmV0d29ya19pZBTUZhwKBgBzdGF0ZXMIFwBtaW5lY3JhZnQ6dmVydGljYWxfaGFsZgYAYm90dG9tAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:dark_prismarine_slab", - "groupId": 11, - "block_state_b64": "CgAAAwgAYmxvY2tfaWR1BAAACAQAbmFtZR4AbWluZWNyYWZ0OmRhcmtfcHJpc21hcmluZV9zbGFiBAkAbmFtZV9oYXNoSsZGDkEL5ZUDCgBuZXR3b3JrX2lkNLQ8VwoGAHN0YXRlcwgXAG1pbmVjcmFmdDp2ZXJ0aWNhbF9oYWxmBgBib3R0b20AAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:prismarine_brick_slab", - "groupId": 11, - "block_state_b64": "CgAAAwgAYmxvY2tfaWR2BAAACAQAbmFtZR8AbWluZWNyYWZ0OnByaXNtYXJpbmVfYnJpY2tfc2xhYgQJAG5hbWVfaGFzaB1FSbVi97xJAwoAbmV0d29ya19pZEBwwFMKBgBzdGF0ZXMIFwBtaW5lY3JhZnQ6dmVydGljYWxfaGFsZgYAYm90dG9tAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:crimson_slab", - "groupId": 11, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQHAgAACAQAbmFtZRYAbWluZWNyYWZ0OmNyaW1zb25fc2xhYgQJAG5hbWVfaGFzaKZ+EfP0ZYOZAwoAbmV0d29ya19pZAxRUWAKBgBzdGF0ZXMIFwBtaW5lY3JhZnQ6dmVydGljYWxfaGFsZgYAYm90dG9tAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:warped_slab", - "groupId": 11, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQIAgAACAQAbmFtZRUAbWluZWNyYWZ0OndhcnBlZF9zbGFiBAkAbmFtZV9oYXNo/AT0e/Z9W7UDCgBuZXR3b3JrX2lk1yq11AoGAHN0YXRlcwgXAG1pbmVjcmFmdDp2ZXJ0aWNhbF9oYWxmBgBib3R0b20AAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:blackstone_slab", - "groupId": 11, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQZAgAACAQAbmFtZRkAbWluZWNyYWZ0OmJsYWNrc3RvbmVfc2xhYgQJAG5hbWVfaGFzaF/DD4ZUlNgtAwoAbmV0d29ya19pZGy1DjwKBgBzdGF0ZXMIFwBtaW5lY3JhZnQ6dmVydGljYWxfaGFsZgYAYm90dG9tAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:polished_blackstone_slab", - "groupId": 11, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQkAgAACAQAbmFtZSIAbWluZWNyYWZ0OnBvbGlzaGVkX2JsYWNrc3RvbmVfc2xhYgQJAG5hbWVfaGFzaDYnuUs86EWfAwoAbmV0d29ya19pZJj2bXIKBgBzdGF0ZXMIFwBtaW5lY3JhZnQ6dmVydGljYWxfaGFsZgYAYm90dG9tAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:polished_blackstone_brick_slab", - "groupId": 11, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQbAgAACAQAbmFtZSgAbWluZWNyYWZ0OnBvbGlzaGVkX2JsYWNrc3RvbmVfYnJpY2tfc2xhYgQJAG5hbWVfaGFzaKySLqvHc4xXAwoAbmV0d29ya19pZOyWX94KBgBzdGF0ZXMIFwBtaW5lY3JhZnQ6dmVydGljYWxfaGFsZgYAYm90dG9tAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:cobbled_deepslate_slab", - "groupId": 11, - "block_state_b64": "CgAAAwgAYmxvY2tfaWR7AgAACAQAbmFtZSAAbWluZWNyYWZ0OmNvYmJsZWRfZGVlcHNsYXRlX3NsYWIECQBuYW1lX2hhc2gwJIVWK1TM2QMKAG5ldHdvcmtfaWTYAoX5CgYAc3RhdGVzCBcAbWluZWNyYWZ0OnZlcnRpY2FsX2hhbGYGAGJvdHRvbQADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:polished_deepslate_slab", - "groupId": 11, - "block_state_b64": "CgAAAwgAYmxvY2tfaWR/AgAACAQAbmFtZSEAbWluZWNyYWZ0OnBvbGlzaGVkX2RlZXBzbGF0ZV9zbGFiBAkAbmFtZV9oYXNoC/Adiz8k6RYDCgBuZXR3b3JrX2lkuFYMAAoGAHN0YXRlcwgXAG1pbmVjcmFmdDp2ZXJ0aWNhbF9oYWxmBgBib3R0b20AAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:deepslate_tile_slab", - "groupId": 11, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSDAgAACAQAbmFtZR0AbWluZWNyYWZ0OmRlZXBzbGF0ZV90aWxlX3NsYWIECQBuYW1lX2hhc2hPydV6emzIXAMKAG5ldHdvcmtfaWQwlbFCCgYAc3RhdGVzCBcAbWluZWNyYWZ0OnZlcnRpY2FsX2hhbGYGAGJvdHRvbQADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:deepslate_brick_slab", - "groupId": 11, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSHAgAACAQAbmFtZR4AbWluZWNyYWZ0OmRlZXBzbGF0ZV9icmlja19zbGFiBAkAbmFtZV9oYXNoSv62V7iw10UDCgBuZXR3b3JrX2lkWMoragoGAHN0YXRlcwgXAG1pbmVjcmFmdDp2ZXJ0aWNhbF9oYWxmBgBib3R0b20AAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:tuff_slab", - "groupId": 11, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTnAwAACAQAbmFtZRMAbWluZWNyYWZ0OnR1ZmZfc2xhYgQJAG5hbWVfaGFzaIhCGdlIsnMUAwoAbmV0d29ya19pZN1dUL4KBgBzdGF0ZXMIFwBtaW5lY3JhZnQ6dmVydGljYWxfaGFsZgYAYm90dG9tAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:polished_tuff_slab", - "groupId": 11, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTsAwAACAQAbmFtZRwAbWluZWNyYWZ0OnBvbGlzaGVkX3R1ZmZfc2xhYgQJAG5hbWVfaGFzaLXdb48YvAsHAwoAbmV0d29ya19pZAnJ7W0KBgBzdGF0ZXMIFwBtaW5lY3JhZnQ6dmVydGljYWxfaGFsZgYAYm90dG9tAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:tuff_brick_slab", - "groupId": 11, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTyAwAACAQAbmFtZRkAbWluZWNyYWZ0OnR1ZmZfYnJpY2tfc2xhYgQJAG5hbWVfaGFzaLqPMjVCv5dIAwoAbmV0d29ya19pZOmeRhcKBgBzdGF0ZXMIFwBtaW5lY3JhZnQ6dmVydGljYWxfaGFsZgYAYm90dG9tAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:mud_brick_slab", - "groupId": 11, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTdAgAACAQAbmFtZRgAbWluZWNyYWZ0Om11ZF9icmlja19zbGFiBAkAbmFtZV9oYXNoq/tGBQWkv08DCgBuZXR3b3JrX2lkl4nnMwoGAHN0YXRlcwgXAG1pbmVjcmFmdDp2ZXJ0aWNhbF9oYWxmBgBib3R0b20AAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:cut_copper_slab", - "groupId": 11, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRoAgAACAQAbmFtZRkAbWluZWNyYWZ0OmN1dF9jb3BwZXJfc2xhYgQJAG5hbWVfaGFzaDsNpb2qs4iBAwoAbmV0d29ya19pZOTm2nsKBgBzdGF0ZXMIFwBtaW5lY3JhZnQ6dmVydGljYWxfaGFsZgYAYm90dG9tAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:exposed_cut_copper_slab", - "groupId": 11, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRpAgAACAQAbmFtZSEAbWluZWNyYWZ0OmV4cG9zZWRfY3V0X2NvcHBlcl9zbGFiBAkAbmFtZV9oYXNoahQ5OwIQb7kDCgBuZXR3b3JrX2lkrUlZLwoGAHN0YXRlcwgXAG1pbmVjcmFmdDp2ZXJ0aWNhbF9oYWxmBgBib3R0b20AAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:weathered_cut_copper_slab", - "groupId": 11, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRqAgAACAQAbmFtZSMAbWluZWNyYWZ0OndlYXRoZXJlZF9jdXRfY29wcGVyX3NsYWIECQBuYW1lX2hhc2hBIuGIOVVXogMKAG5ldHdvcmtfaWQgnaDiCgYAc3RhdGVzCBcAbWluZWNyYWZ0OnZlcnRpY2FsX2hhbGYGAGJvdHRvbQADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:oxidized_cut_copper_slab", - "groupId": 11, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRrAgAACAQAbmFtZSIAbWluZWNyYWZ0Om94aWRpemVkX2N1dF9jb3BwZXJfc2xhYgQJAG5hbWVfaGFzaOptj9ycfpaDAwoAbmV0d29ya19pZMzFSRgKBgBzdGF0ZXMIFwBtaW5lY3JhZnQ6dmVydGljYWxfaGFsZgYAYm90dG9tAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:waxed_cut_copper_slab", - "groupId": 11, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRsAgAACAQAbmFtZR8AbWluZWNyYWZ0OndheGVkX2N1dF9jb3BwZXJfc2xhYgQJAG5hbWVfaGFzaAlx6DZOCTHzAwoAbmV0d29ya19pZFRBvDAKBgBzdGF0ZXMIFwBtaW5lY3JhZnQ6dmVydGljYWxfaGFsZgYAYm90dG9tAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:waxed_exposed_cut_copper_slab", - "groupId": 11, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRtAgAACAQAbmFtZScAbWluZWNyYWZ0OndheGVkX2V4cG9zZWRfY3V0X2NvcHBlcl9zbGFiBAkAbmFtZV9oYXNo3KqS5OnhtRIDCgBuZXR3b3JrX2lkHTGcTgoGAHN0YXRlcwgXAG1pbmVjcmFmdDp2ZXJ0aWNhbF9oYWxmBgBib3R0b20AAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:waxed_weathered_cut_copper_slab", - "groupId": 11, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRuAgAACAQAbmFtZSkAbWluZWNyYWZ0OndheGVkX3dlYXRoZXJlZF9jdXRfY29wcGVyX3NsYWIECQBuYW1lX2hhc2gzZ1oX0HCFtwMKAG5ldHdvcmtfaWSgJR+XCgYAc3RhdGVzCBcAbWluZWNyYWZ0OnZlcnRpY2FsX2hhbGYGAGJvdHRvbQADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:waxed_oxidized_cut_copper_slab", - "groupId": 11, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTAAgAACAQAbmFtZSgAbWluZWNyYWZ0OndheGVkX294aWRpemVkX2N1dF9jb3BwZXJfc2xhYgQJAG5hbWVfaGFzaMjjTnLu1KcqAwoAbmV0d29ya19pZIxsnFYKBgBzdGF0ZXMIFwBtaW5lY3JhZnQ6dmVydGljYWxfaGFsZgYAYm90dG9tAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:resin_brick_slab", - "groupId": 11, - "block_state_b64": "CgAAAwgAYmxvY2tfaWT1BAAACAQAbmFtZRoAbWluZWNyYWZ0OnJlc2luX2JyaWNrX3NsYWIECQBuYW1lX2hhc2hAGu/Hlaa12QMKAG5ldHdvcmtfaWSyDq8CCgYAc3RhdGVzCBcAbWluZWNyYWZ0OnZlcnRpY2FsX2hhbGYGAGJvdHRvbQADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:stone_bricks", - "groupId": 12, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRiAAAACAQAbmFtZRYAbWluZWNyYWZ0OnN0b25lX2JyaWNrcwQJAG5hbWVfaGFzaGAiQu8VWVJRAwoAbmV0d29ya19pZH2DjXUKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:mossy_stone_bricks", - "groupId": 12, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRjBAAACAQAbmFtZRwAbWluZWNyYWZ0Om1vc3N5X3N0b25lX2JyaWNrcwQJAG5hbWVfaGFzaIZBO00MONRIAwoAbmV0d29ya19pZL2WDrAKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:cracked_stone_bricks", - "groupId": 12, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRkBAAACAQAbmFtZR4AbWluZWNyYWZ0OmNyYWNrZWRfc3RvbmVfYnJpY2tzBAkAbmFtZV9oYXNocIkAp6riMz4DCgBuZXR3b3JrX2lkTWGeCwoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:chiseled_stone_bricks", - "groupId": 12, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRlBAAACAQAbmFtZR8AbWluZWNyYWZ0OmNoaXNlbGVkX3N0b25lX2JyaWNrcwQJAG5hbWVfaGFzaMB2FPLLADkEAwoAbmV0d29ya19pZOIPn0IKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:smooth_stone", - "groupId": 12, - "block_state_b64": "CgAAAwgAYmxvY2tfaWS2AQAACAQAbmFtZRYAbWluZWNyYWZ0OnNtb290aF9zdG9uZQQJAG5hbWVfaGFzaMwf87/JaTNvAwoAbmV0d29ya19pZLkZICEKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:end_bricks", - "groupId": 12, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTOAAAACAQAbmFtZRQAbWluZWNyYWZ0OmVuZF9icmlja3MECQBuYW1lX2hhc2hIUFfxNLZaFgMKAG5ldHdvcmtfaWQ/vDihCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:polished_blackstone_bricks", - "groupId": 12, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQRAgAACAQAbmFtZSQAbWluZWNyYWZ0OnBvbGlzaGVkX2JsYWNrc3RvbmVfYnJpY2tzBAkAbmFtZV9oYXNoIHgsgIdzKXcDCgBuZXR3b3JrX2lkUw9b3woGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:cracked_polished_blackstone_bricks", - "groupId": 12, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQXAgAACAQAbmFtZSwAbWluZWNyYWZ0OmNyYWNrZWRfcG9saXNoZWRfYmxhY2tzdG9uZV9icmlja3MECQBuYW1lX2hhc2jQIO1GQDk80AMKAG5ldHdvcmtfaWQ3UlRYCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:gilded_blackstone", - "groupId": 12, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQYAgAACAQAbmFtZRsAbWluZWNyYWZ0OmdpbGRlZF9ibGFja3N0b25lBAkAbmFtZV9oYXNoNoWt1ocG0HEDCgBuZXR3b3JrX2lktL8gUwoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:chiseled_polished_blackstone", - "groupId": 12, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQWAgAACAQAbmFtZSYAbWluZWNyYWZ0OmNoaXNlbGVkX3BvbGlzaGVkX2JsYWNrc3RvbmUECQBuYW1lX2hhc2gzFa+kEjCJgAMKAG5ldHdvcmtfaWR2NJX2CgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:deepslate_tiles", - "groupId": 12, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSCAgAACAQAbmFtZRkAbWluZWNyYWZ0OmRlZXBzbGF0ZV90aWxlcwQJAG5hbWVfaGFzaGcLLx3NXAFvAwoAbmV0d29ya19pZI/G/xYKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:cracked_deepslate_tiles", - "groupId": 12, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSYAgAACAQAbmFtZSEAbWluZWNyYWZ0OmNyYWNrZWRfZGVlcHNsYXRlX3RpbGVzBAkAbmFtZV9oYXNo9zWgkFuMM1QDCgBuZXR3b3JrX2lkGwY6OgoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:deepslate_bricks", - "groupId": 12, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSGAgAACAQAbmFtZRoAbWluZWNyYWZ0OmRlZXBzbGF0ZV9icmlja3MECQBuYW1lX2hhc2gucvFmPdZxigMKAG5ldHdvcmtfaWSH4HDPCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:tuff_bricks", - "groupId": 12, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTxAwAACAQAbmFtZRUAbWluZWNyYWZ0OnR1ZmZfYnJpY2tzBAkAbmFtZV9oYXNo/hbQ+mXSK7wDCgBuZXR3b3JrX2lk6gmIwQoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:cracked_deepslate_bricks", - "groupId": 12, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSZAgAACAQAbmFtZSIAbWluZWNyYWZ0OmNyYWNrZWRfZGVlcHNsYXRlX2JyaWNrcwQJAG5hbWVfaGFzaN40aqhh9WqHAwoAbmV0d29ya19pZO9GPBQKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:chiseled_deepslate", - "groupId": 12, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSKAgAACAQAbmFtZRwAbWluZWNyYWZ0OmNoaXNlbGVkX2RlZXBzbGF0ZQQJAG5hbWVfaGFzaEU7/uRG8HSBAwoAbmV0d29ya19pZEqmI0EKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:chiseled_tuff", - "groupId": 12, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTwAwAACAQAbmFtZRcAbWluZWNyYWZ0OmNoaXNlbGVkX3R1ZmYECQBuYW1lX2hhc2iVliOT8OTQ9AMKAG5ldHdvcmtfaWTLNKOiCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:chiseled_tuff_bricks", - "groupId": 12, - "block_state_b64": "CgAAAwgAYmxvY2tfaWT2AwAACAQAbmFtZR4AbWluZWNyYWZ0OmNoaXNlbGVkX3R1ZmZfYnJpY2tzBAkAbmFtZV9oYXNo3oQw6gmxYuADCgBuZXR3b3JrX2lkm3D8AgoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:cobblestone", - "groupId": 13, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQEAAAACAQAbmFtZRUAbWluZWNyYWZ0OmNvYmJsZXN0b25lBAkAbmFtZV9oYXNoPoK7mGlSUz4DCgBuZXR3b3JrX2lkLm7RZwoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:mossy_cobblestone", - "groupId": 13, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQwAAAACAQAbmFtZRsAbWluZWNyYWZ0Om1vc3N5X2NvYmJsZXN0b25lBAkAbmFtZV9oYXNoGJ67FCbkChMDCgBuZXR3b3JrX2lk/pYs1AoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:cobbled_deepslate", - "groupId": 13, - "block_state_b64": "CgAAAwgAYmxvY2tfaWR6AgAACAQAbmFtZRsAbWluZWNyYWZ0OmNvYmJsZWRfZGVlcHNsYXRlBAkAbmFtZV9oYXNoLUz9Y/ywmLwDCgBuZXR3b3JrX2lkNwzZ+AoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:sandstone", - "groupId": 14, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQYAAAACAQAbmFtZRMAbWluZWNyYWZ0OnNhbmRzdG9uZQQJAG5hbWVfaGFzaFEmWsEHFI1AAwoAbmV0d29ya19pZPsXMaQKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:chiseled_sandstone", - "groupId": 14, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSvBAAACAQAbmFtZRwAbWluZWNyYWZ0OmNoaXNlbGVkX3NhbmRzdG9uZQQJAG5hbWVfaGFzaPEkxMvZmemgAwoAbmV0d29ya19pZGI5NB4KBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:cut_sandstone", - "groupId": 14, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSwBAAACAQAbmFtZRcAbWluZWNyYWZ0OmN1dF9zYW5kc3RvbmUECQBuYW1lX2hhc2ichLQc71njnQMKAG5ldHdvcmtfaWSmBLkRCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:smooth_sandstone", - "groupId": 14, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSxBAAACAQAbmFtZRoAbWluZWNyYWZ0OnNtb290aF9zYW5kc3RvbmUECQBuYW1lX2hhc2huR7XTwISyCAMKAG5ldHdvcmtfaWSzWj3UCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:red_sandstone", - "groupId": 14, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSzAAAACAQAbmFtZRcAbWluZWNyYWZ0OnJlZF9zYW5kc3RvbmUECQBuYW1lX2hhc2jBO4Gv2v59uAMKAG5ldHdvcmtfaWRXRYxZCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:chiseled_red_sandstone", - "groupId": 14, - "block_state_b64": "CgAAAwgAYmxvY2tfaWS7BAAACAQAbmFtZSAAbWluZWNyYWZ0OmNoaXNlbGVkX3JlZF9zYW5kc3RvbmUECQBuYW1lX2hhc2gh5sX+ON054wMKAG5ldHdvcmtfaWT6Pw1PCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:cut_red_sandstone", - "groupId": 14, - "block_state_b64": "CgAAAwgAYmxvY2tfaWS8BAAACAQAbmFtZRsAbWluZWNyYWZ0OmN1dF9yZWRfc2FuZHN0b25lBAkAbmFtZV9oYXNoaOtka4NrQ1EDCgBuZXR3b3JrX2lk3r/JPAoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:smooth_red_sandstone", - "groupId": 14, - "block_state_b64": "CgAAAwgAYmxvY2tfaWS9BAAACAQAbmFtZR4AbWluZWNyYWZ0OnNtb290aF9yZWRfc2FuZHN0b25lBAkAbmFtZV9oYXNoqsNl8x36ju4DCgBuZXR3b3JrX2lk7x5DTwoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:coal_block", - "groupId": 15, - "block_state_b64": "CgAAAwgAYmxvY2tfaWStAAAACAQAbmFtZRQAbWluZWNyYWZ0OmNvYWxfYmxvY2sECQBuYW1lX2hhc2jH8QQP3t5PiAMKAG5ldHdvcmtfaWRo+sR+CgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:dried_kelp_block", - "groupId": 15, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSKAQAACAQAbmFtZRoAbWluZWNyYWZ0OmRyaWVkX2tlbHBfYmxvY2sECQBuYW1lX2hhc2iRoucexkrl8wMKAG5ldHdvcmtfaWQQCCrvCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:copper_block", - "groupId": 16, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRTAgAACAQAbmFtZRYAbWluZWNyYWZ0OmNvcHBlcl9ibG9jawQJAG5hbWVfaGFzaDVxnehsGaZ1AwoAbmV0d29ya19pZIiUodwKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:weathered_copper", - "groupId": 16, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRVAgAACAQAbmFtZRoAbWluZWNyYWZ0OndlYXRoZXJlZF9jb3BwZXIECQBuYW1lX2hhc2hJCQXbvobv+gMKAG5ldHdvcmtfaWQwM0lJCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:exposed_copper", - "groupId": 16, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRUAgAACAQAbmFtZRgAbWluZWNyYWZ0OmV4cG9zZWRfY29wcGVyBAkAbmFtZV9oYXNoQH3Fukmu3CEDCgBuZXR3b3JrX2lk72jFIwoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:oxidized_copper", - "groupId": 16, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRWAgAACAQAbmFtZRkAbWluZWNyYWZ0Om94aWRpemVkX2NvcHBlcgQJAG5hbWVfaGFzaMDtJqR0G5Y7AwoAbmV0d29ya19pZGjN8bUKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:waxed_copper", - "groupId": 16, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRXAgAACAQAbmFtZRYAbWluZWNyYWZ0OndheGVkX2NvcHBlcgQJAG5hbWVfaGFzaPF+FG6Eh5fsAwoAbmV0d29ya19pZIjtz/0KBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:waxed_exposed_copper", - "groupId": 16, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRYAgAACAQAbmFtZR4AbWluZWNyYWZ0OndheGVkX2V4cG9zZWRfY29wcGVyBAkAbmFtZV9oYXNoig8IOc+SCikDCgBuZXR3b3JrX2lklz8yWQoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:waxed_weathered_copper", - "groupId": 16, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRZAgAACAQAbmFtZSAAbWluZWNyYWZ0OndheGVkX3dlYXRoZXJlZF9jb3BwZXIECQBuYW1lX2hhc2gjtPq8MOdvKgMKAG5ldHdvcmtfaWSQ9Ln9CgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:waxed_oxidized_copper", - "groupId": 16, - "block_state_b64": "CgAAAwgAYmxvY2tfaWS9AgAACAQAbmFtZR8AbWluZWNyYWZ0OndheGVkX294aWRpemVkX2NvcHBlcgQJAG5hbWVfaGFzaMaORhsO+LzjAwoAbmV0d29ya19pZJhGfLEKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:copper_grate", - "groupId": 16, - "block_state_b64": "CgAAAwgAYmxvY2tfaWT/AwAACAQAbmFtZRYAbWluZWNyYWZ0OmNvcHBlcl9ncmF0ZQQJAG5hbWVfaGFzaC/JEFOWnmEcAwoAbmV0d29ya19pZC6YiiMKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:exposed_copper_grate", - "groupId": 16, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQABAAACAQAbmFtZR4AbWluZWNyYWZ0OmV4cG9zZWRfY29wcGVyX2dyYXRlBAkAbmFtZV9oYXNolFIBYLYU0IcDCgBuZXR3b3JrX2lk4UqptAoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:weathered_copper_grate", - "groupId": 16, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQBBAAACAQAbmFtZSAAbWluZWNyYWZ0OndlYXRoZXJlZF9jb3BwZXJfZ3JhdGUECQBuYW1lX2hhc2jB3o8enlv1RgMKAG5ldHdvcmtfaWRih2pOCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:oxidized_copper_grate", - "groupId": 16, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQCBAAACAQAbmFtZR8AbWluZWNyYWZ0Om94aWRpemVkX2NvcHBlcl9ncmF0ZQQJAG5hbWVfaGFzaBRfNhyndve7AwoAbmV0d29ya19pZKY2cnEKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:waxed_copper_grate", - "groupId": 16, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQDBAAACAQAbmFtZRwAbWluZWNyYWZ0OndheGVkX2NvcHBlcl9ncmF0ZQQJAG5hbWVfaGFzaDmC92M2RO+HAwoAbmV0d29ya19pZH4og2AKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:waxed_exposed_copper_grate", - "groupId": 16, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQEBAAACAQAbmFtZSQAbWluZWNyYWZ0OndheGVkX2V4cG9zZWRfY29wcGVyX2dyYXRlBAkAbmFtZV9oYXNoWmd6B+hWwiEDCgBuZXR3b3JrX2lk8d4ZQwoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:waxed_weathered_copper_grate", - "groupId": 16, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQFBAAACAQAbmFtZSYAbWluZWNyYWZ0OndheGVkX3dlYXRoZXJlZF9jb3BwZXJfZ3JhdGUECQBuYW1lX2hhc2hXfilVFDAiYQMKAG5ldHdvcmtfaWQqTGC1CgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:waxed_oxidized_copper_grate", - "groupId": 16, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQGBAAACAQAbmFtZSUAbWluZWNyYWZ0OndheGVkX294aWRpemVkX2NvcHBlcl9ncmF0ZQQJAG5hbWVfaGFzaEbeMT605GP4AwoAbmV0d29ya19pZOZjpkkKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:cut_copper", - "groupId": 16, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRaAgAACAQAbmFtZRQAbWluZWNyYWZ0OmN1dF9jb3BwZXIECQBuYW1lX2hhc2hAfN3NGax3eAMKAG5ldHdvcmtfaWTnFBtYCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:exposed_cut_copper", - "groupId": 16, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRbAgAACAQAbmFtZRwAbWluZWNyYWZ0OmV4cG9zZWRfY3V0X2NvcHBlcgQJAG5hbWVfaGFzaA85G3yv/w6pAwoAbmV0d29ya19pZMQhr0QKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:weathered_cut_copper", - "groupId": 16, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRcAgAACAQAbmFtZR4AbWluZWNyYWZ0OndlYXRoZXJlZF9jdXRfY29wcGVyBAkAbmFtZV9oYXNoVgRV0fBaz88DCgBuZXR3b3JrX2lk/0cYugoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:oxidized_cut_copper", - "groupId": 16, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRdAgAACAQAbmFtZR0AbWluZWNyYWZ0Om94aWRpemVkX2N1dF9jb3BwZXIECQBuYW1lX2hhc2iP8WmFWOkriwMKAG5ldHdvcmtfaWQPdce7CgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:waxed_cut_copper", - "groupId": 16, - "block_state_b64": "CgAAAwgAYmxvY2tfaWReAgAACAQAbmFtZRoAbWluZWNyYWZ0OndheGVkX2N1dF9jb3BwZXIECQBuYW1lX2hhc2jumiwOZIqv2AMKAG5ldHdvcmtfaWQvuxx9CgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:waxed_exposed_cut_copper", - "groupId": 16, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRfAgAACAQAbmFtZSIAbWluZWNyYWZ0OndheGVkX2V4cG9zZWRfY3V0X2NvcHBlcgQJAG5hbWVfaGFzaPE/OfK6IoVMAwoAbmV0d29ya19pZHy5HkcKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:waxed_weathered_cut_copper", - "groupId": 16, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRgAgAACAQAbmFtZSQAbWluZWNyYWZ0OndheGVkX3dlYXRoZXJlZF9jdXRfY29wcGVyBAkAbmFtZV9oYXNoCA1xDp11bnwDCgBuZXR3b3JrX2lkDyEDVQoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:waxed_oxidized_cut_copper", - "groupId": 16, - "block_state_b64": "CgAAAwgAYmxvY2tfaWS+AgAACAQAbmFtZSMAbWluZWNyYWZ0OndheGVkX294aWRpemVkX2N1dF9jb3BwZXIECQBuYW1lX2hhc2i1pZAsZYHLDAMKAG5ldHdvcmtfaWQ/wSkCCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:chiseled_copper", - "groupId": 16, - "block_state_b64": "CgAAAwgAYmxvY2tfaWT3AwAACAQAbmFtZRkAbWluZWNyYWZ0OmNoaXNlbGVkX2NvcHBlcgQJAG5hbWVfaGFzaIsW5pmpJEuQAwoAbmV0d29ya19pZHetwrkKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:exposed_chiseled_copper", - "groupId": 16, - "block_state_b64": "CgAAAwgAYmxvY2tfaWT4AwAACAQAbmFtZSEAbWluZWNyYWZ0OmV4cG9zZWRfY2hpc2VsZWRfY29wcGVyBAkAbmFtZV9oYXNoOvrLJ0UowbgDCgBuZXR3b3JrX2lkZj7cPwoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:weathered_chiseled_copper", - "groupId": 16, - "block_state_b64": "CgAAAwgAYmxvY2tfaWT5AwAACAQAbmFtZSMAbWluZWNyYWZ0OndlYXRoZXJlZF9jaGlzZWxlZF9jb3BwZXIECQBuYW1lX2hhc2hh+42XlsWvGAMKAG5ldHdvcmtfaWS7Cy59CgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:oxidized_chiseled_copper", - "groupId": 16, - "block_state_b64": "CgAAAwgAYmxvY2tfaWT6AwAACAQAbmFtZSIAbWluZWNyYWZ0Om94aWRpemVkX2NoaXNlbGVkX2NvcHBlcgQJAG5hbWVfaGFzaLpTIsnfluiCAwoAbmV0d29ya19pZB9/jS8KBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:waxed_chiseled_copper", - "groupId": 16, - "block_state_b64": "CgAAAwgAYmxvY2tfaWT7AwAACAQAbmFtZR8AbWluZWNyYWZ0OndheGVkX2NoaXNlbGVkX2NvcHBlcgQJAG5hbWVfaGFzaFnXvXY5OinzAwoAbmV0d29ya19pZAcKtHsKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:waxed_exposed_chiseled_copper", - "groupId": 16, - "block_state_b64": "CgAAAwgAYmxvY2tfaWT8AwAACAQAbmFtZScAbWluZWNyYWZ0OndheGVkX2V4cG9zZWRfY2hpc2VsZWRfY29wcGVyBAkAbmFtZV9oYXNoHJdq+Pph6hMDCgBuZXR3b3JrX2lkdge7IAoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:waxed_oxidized_chiseled_copper", - "groupId": 16, - "block_state_b64": "CgAAAwgAYmxvY2tfaWT9AwAACAQAbmFtZSgAbWluZWNyYWZ0OndheGVkX294aWRpemVkX2NoaXNlbGVkX2NvcHBlcgQJAG5hbWVfaGFzaMj49OvlTpgCAwoAbmV0d29ya19pZN/r+roKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:waxed_weathered_chiseled_copper", - "groupId": 16, - "block_state_b64": "CgAAAwgAYmxvY2tfaWT+AwAACAQAbmFtZSkAbWluZWNyYWZ0OndheGVkX3dlYXRoZXJlZF9jaGlzZWxlZF9jb3BwZXIECQBuYW1lX2hhc2hzuO+Sg9LYQwMKAG5ldHdvcmtfaWQ7AN7iCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:copper_bulb", - "groupId": 16, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQHBAAACAQAbmFtZRUAbWluZWNyYWZ0OmNvcHBlcl9idWxiBAkAbmFtZV9oYXNo41TimHOsMWcDCgBuZXR3b3JrX2lkJnZvAgoGAHN0YXRlcwEDAGxpdAABCwBwb3dlcmVkX2JpdAAAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:exposed_copper_bulb", - "groupId": 16, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQIBAAACAQAbmFtZR0AbWluZWNyYWZ0OmV4cG9zZWRfY29wcGVyX2J1bGIECQBuYW1lX2hhc2g++f1wYLLCrAMKAG5ldHdvcmtfaWRLdMmGCgYAc3RhdGVzAQMAbGl0AAELAHBvd2VyZWRfYml0AAADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:weathered_copper_bulb", - "groupId": 16, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQJBAAACAQAbmFtZR8AbWluZWNyYWZ0OndlYXRoZXJlZF9jb3BwZXJfYnVsYgQJAG5hbWVfaGFzaMEtsYfwRTXlAwoAbmV0d29ya19pZAp51LQKBgBzdGF0ZXMBAwBsaXQAAQsAcG93ZXJlZF9iaXQAAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:oxidized_copper_bulb", - "groupId": 16, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQKBAAACAQAbmFtZR4AbWluZWNyYWZ0Om94aWRpemVkX2NvcHBlcl9idWxiBAkAbmFtZV9oYXNovnrBQZs8nDIDCgBuZXR3b3JrX2lkPsj0AAoGAHN0YXRlcwEDAGxpdAABCwBwb3dlcmVkX2JpdAAAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:waxed_copper_bulb", - "groupId": 16, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQLBAAACAQAbmFtZRsAbWluZWNyYWZ0OndheGVkX2NvcHBlcl9idWxiBAkAbmFtZV9oYXNoGTg6TYllMiIDCgBuZXR3b3JrX2lk9m0WhgoGAHN0YXRlcwEDAGxpdAABCwBwb3dlcmVkX2JpdAAAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:waxed_exposed_copper_bulb", - "groupId": 16, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQMBAAACAQAbmFtZSMAbWluZWNyYWZ0OndheGVkX2V4cG9zZWRfY29wcGVyX2J1bGIECQBuYW1lX2hhc2gI6xkPcvBDVwMKAG5ldHdvcmtfaWR7BRcACgYAc3RhdGVzAQMAbGl0AAELAHBvd2VyZWRfYml0AAADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:waxed_weathered_copper_bulb", - "groupId": 16, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQNBAAACAQAbmFtZSUAbWluZWNyYWZ0OndheGVkX3dlYXRoZXJlZF9jb3BwZXJfYnVsYgQJAG5hbWVfaGFzaMsUnmp3/VqVAwoAbmV0d29ya19pZEoworoKBgBzdGF0ZXMBAwBsaXQAAQsAcG93ZXJlZF9iaXQAAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:waxed_oxidized_copper_bulb", - "groupId": 16, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQOBAAACAQAbmFtZSQAbWluZWNyYWZ0OndheGVkX294aWRpemVkX2NvcHBlcl9idWxiBAkAbmFtZV9oYXNoBFKxY3fjVq4DCgBuZXR3b3JrX2lkzrJ6aAoGAHN0YXRlcwEDAGxpdAABCwBwb3dlcmVkX2JpdAAAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:iron_block", - "groupId": 17, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQqAAAACAQAbmFtZRQAbWluZWNyYWZ0Omlyb25fYmxvY2sECQBuYW1lX2hhc2jYINmJQbvV/gMKAG5ldHdvcmtfaWRf7AbICgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:gold_block", - "groupId": 17, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQpAAAACAQAbmFtZRQAbWluZWNyYWZ0OmdvbGRfYmxvY2sECQBuYW1lX2hhc2iYLshvjtXzFwMKAG5ldHdvcmtfaWTDJGBcCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:emerald_block", - "groupId": 17, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSFAAAACAQAbmFtZRcAbWluZWNyYWZ0OmVtZXJhbGRfYmxvY2sECQBuYW1lX2hhc2hK6QunqJznNAMKAG5ldHdvcmtfaWRk5+otCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:diamond_block", - "groupId": 17, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQ5AAAACAQAbmFtZRcAbWluZWNyYWZ0OmRpYW1vbmRfYmxvY2sECQBuYW1lX2hhc2iGKrxuvkytFQMKAG5ldHdvcmtfaWQQeQZXCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:lapis_block", - "groupId": 17, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQWAAAACAQAbmFtZRUAbWluZWNyYWZ0OmxhcGlzX2Jsb2NrBAkAbmFtZV9oYXNoDZ44xdb2zVoDCgBuZXR3b3JrX2lktVy0BAoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:raw_copper_block", - "groupId": 17, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTDAgAACAQAbmFtZRoAbWluZWNyYWZ0OnJhd19jb3BwZXJfYmxvY2sECQBuYW1lX2hhc2hw1KG0TNUGgwMKAG5ldHdvcmtfaWS1vGo/CgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:raw_iron_block", - "groupId": 17, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTCAgAACAQAbmFtZRgAbWluZWNyYWZ0OnJhd19pcm9uX2Jsb2NrBAkAbmFtZV9oYXNo9XyzNIQXxvwDCgBuZXR3b3JrX2lknms1QAoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:raw_gold_block", - "groupId": 17, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTEAgAACAQAbmFtZRgAbWluZWNyYWZ0OnJhd19nb2xkX2Jsb2NrBAkAbmFtZV9oYXNo6YuwuLwfOBwDCgBuZXR3b3JrX2lkLiQ5gQoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:quartz_block", - "groupId": 17, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSbAAAACAQAbmFtZRYAbWluZWNyYWZ0OnF1YXJ0el9ibG9jawQJAG5hbWVfaGFzaCfpbqyIIvZCAwoAbmV0d29ya19pZE2axGsKBgBzdGF0ZXMICwBwaWxsYXJfYXhpcwEAeQADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:quartz_bricks", - "groupId": 17, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQvAgAACAQAbmFtZRcAbWluZWNyYWZ0OnF1YXJ0el9icmlja3MECQBuYW1lX2hhc2jSZO590dd8sAMKAG5ldHdvcmtfaWSc5xCLCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:quartz_pillar", - "groupId": 17, - "block_state_b64": "CgAAAwgAYmxvY2tfaWS5BAAACAQAbmFtZRcAbWluZWNyYWZ0OnF1YXJ0el9waWxsYXIECQBuYW1lX2hhc2igp62HI+PuSwMKAG5ldHdvcmtfaWS9SGXLCgYAc3RhdGVzCAsAcGlsbGFyX2F4aXMBAHkAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:chiseled_quartz_block", - "groupId": 17, - "block_state_b64": "CgAAAwgAYmxvY2tfaWS4BAAACAQAbmFtZR8AbWluZWNyYWZ0OmNoaXNlbGVkX3F1YXJ0el9ibG9jawQJAG5hbWVfaGFzaAftJM9mCAvaAwoAbmV0d29ya19pZFwy0s0KBgBzdGF0ZXMICwBwaWxsYXJfYXhpcwEAeQADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:smooth_quartz", - "groupId": 17, - "block_state_b64": "CgAAAwgAYmxvY2tfaWS6BAAACAQAbmFtZRcAbWluZWNyYWZ0OnNtb290aF9xdWFydHoECQBuYW1lX2hhc2hIVzzgiItGagMKAG5ldHdvcmtfaWTVWgU2CgYAc3RhdGVzCAsAcGlsbGFyX2F4aXMBAHkAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:prismarine", - "groupId": 17, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSoAAAACAQAbmFtZRQAbWluZWNyYWZ0OnByaXNtYXJpbmUECQBuYW1lX2hhc2jcnQCHi9CspQMKAG5ldHdvcmtfaWQnuuW1CgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:prismarine_bricks", - "groupId": 17, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSzBAAACAQAbmFtZRsAbWluZWNyYWZ0OnByaXNtYXJpbmVfYnJpY2tzBAkAbmFtZV9oYXNozeGe3/7s5fcDCgBuZXR3b3JrX2lkj/iBnAoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:dark_prismarine", - "groupId": 17, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSyBAAACAQAbmFtZRkAbWluZWNyYWZ0OmRhcmtfcHJpc21hcmluZQQJAG5hbWVfaGFzaK+rhxsgkzplAwoAbmV0d29ya19pZIdA0I0KBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:slime", - "groupId": 17, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSlAAAACAQAbmFtZQ8AbWluZWNyYWZ0OnNsaW1lBAkAbmFtZV9oYXNoHJiEEJx+JlkDCgBuZXR3b3JrX2lkfgfVzAoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:honey_block", - "groupId": 17, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTbAQAACAQAbmFtZRUAbWluZWNyYWZ0OmhvbmV5X2Jsb2NrBAkAbmFtZV9oYXNo9zLYSUlelywDCgBuZXR3b3JrX2lko+dyWgoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:honeycomb_block", - "groupId": 17, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTcAQAACAQAbmFtZRkAbWluZWNyYWZ0OmhvbmV5Y29tYl9ibG9jawQJAG5hbWVfaGFzaASIPuOCYd1oAwoAbmV0d29ya19pZKys4n4KBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:resin_block", - "groupId": 17, - "block_state_b64": "CgAAAwgAYmxvY2tfaWT8BAAACAQAbmFtZRUAbWluZWNyYWZ0OnJlc2luX2Jsb2NrBAkAbmFtZV9oYXNo6SHuLxdB67QDCgBuZXR3b3JrX2lkcWO4EwoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:hay_block", - "groupId": 17, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSqAAAACAQAbmFtZRMAbWluZWNyYWZ0OmhheV9ibG9jawQJAG5hbWVfaGFzaIB2VxKxX8EpAwoAbmV0d29ya19pZKuQSloKBgBzdGF0ZXMDCgBkZXByZWNhdGVkAAAAAAgLAHBpbGxhcl9heGlzAQB5AAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:bone_block", - "groupId": 17, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTYAAAACAQAbmFtZRQAbWluZWNyYWZ0OmJvbmVfYmxvY2sECQBuYW1lX2hhc2i4ZX576W9AWgMKAG5ldHdvcmtfaWTWGacQCgYAc3RhdGVzAwoAZGVwcmVjYXRlZAAAAAAICwBwaWxsYXJfYXhpcwEAeQADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:resin_bricks", - "groupId": 17, - "block_state_b64": "CgAAAwgAYmxvY2tfaWT0BAAACAQAbmFtZRYAbWluZWNyYWZ0OnJlc2luX2JyaWNrcwQJAG5hbWVfaGFzaPQfo5PcOZSaAwoAbmV0d29ya19pZB24YHwKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:chiseled_resin_bricks", - "groupId": 17, - "block_state_b64": "CgAAAwgAYmxvY2tfaWT7BAAACAQAbmFtZR8AbWluZWNyYWZ0OmNoaXNlbGVkX3Jlc2luX2JyaWNrcwQJAG5hbWVfaGFzaNSCIvsamt6qAwoAbmV0d29ya19pZBY+3hYKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:nether_brick", - "groupId": 17, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRwAAAACAQAbmFtZRYAbWluZWNyYWZ0Om5ldGhlcl9icmljawQJAG5hbWVfaGFzaMxcRiheU+nXAwoAbmV0d29ya19pZMkmzloKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:red_nether_brick", - "groupId": 17, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTXAAAACAQAbmFtZRoAbWluZWNyYWZ0OnJlZF9uZXRoZXJfYnJpY2sECQBuYW1lX2hhc2j8pRO4LfoECAMKAG5ldHdvcmtfaWRpdF0YCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:chiseled_nether_bricks", - "groupId": 17, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQtAgAACAQAbmFtZSAAbWluZWNyYWZ0OmNoaXNlbGVkX25ldGhlcl9icmlja3MECQBuYW1lX2hhc2g31SBPTcUK1QMKAG5ldHdvcmtfaWS8TJ+TCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:cracked_nether_bricks", - "groupId": 17, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQuAgAACAQAbmFtZR8AbWluZWNyYWZ0OmNyYWNrZWRfbmV0aGVyX2JyaWNrcwQJAG5hbWVfaGFzaAdC6eKzXT5tAwoAbmV0d29ya19pZIUSejwKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:netherite_block", - "groupId": 17, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQNAgAACAQAbmFtZRkAbWluZWNyYWZ0Om5ldGhlcml0ZV9ibG9jawQJAG5hbWVfaGFzaMghh6Zib/ZKAwoAbmV0d29ya19pZIz0mq0KBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:lodestone", - "groupId": 17, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTdAQAACAQAbmFtZRMAbWluZWNyYWZ0OmxvZGVzdG9uZQQJAG5hbWVfaGFzaJ2gmHOTlXv8AwoAbmV0d29ya19pZEfgB4wKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:white_wool", - "groupId": 18, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQjAAAACAQAbmFtZRQAbWluZWNyYWZ0OndoaXRlX3dvb2wECQBuYW1lX2hhc2jRWB7vaIEDiQMKAG5ldHdvcmtfaWSO8paQCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:light_gray_wool", - "groupId": 18, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQnAwAACAQAbmFtZRkAbWluZWNyYWZ0OmxpZ2h0X2dyYXlfd29vbAQJAG5hbWVfaGFzaOpdQ1a2v4b3AwoAbmV0d29ya19pZIqZCYEKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:gray_wool", - "groupId": 18, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQoAwAACAQAbmFtZRMAbWluZWNyYWZ0OmdyYXlfd29vbAQJAG5hbWVfaGFzaLsc1Lp1xdIOAwoAbmV0d29ya19pZFUs+HgKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:black_wool", - "groupId": 18, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQpAwAACAQAbmFtZRQAbWluZWNyYWZ0OmJsYWNrX3dvb2wECQBuYW1lX2hhc2hP2HC6o0X4HAMKAG5ldHdvcmtfaWRUbORcCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:brown_wool", - "groupId": 18, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQqAwAACAQAbmFtZRQAbWluZWNyYWZ0OmJyb3duX3dvb2wECQBuYW1lX2hhc2ig5IW89PrREwMKAG5ldHdvcmtfaWRjT9j8CgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:red_wool", - "groupId": 18, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQrAwAACAQAbmFtZRIAbWluZWNyYWZ0OnJlZF93b29sBAkAbmFtZV9oYXNoY4TBDq+mFgUDCgBuZXR3b3JrX2lktn9lcAoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:orange_wool", - "groupId": 18, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQsAwAACAQAbmFtZRUAbWluZWNyYWZ0Om9yYW5nZV93b29sBAkAbmFtZV9oYXNoFstfrTZfSCgDCgBuZXR3b3JrX2lk+rqywwoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:yellow_wool", - "groupId": 18, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQtAwAACAQAbmFtZRUAbWluZWNyYWZ0OnllbGxvd193b29sBAkAbmFtZV9oYXNoTFyus2RHegcDCgBuZXR3b3JrX2lkkKBhXAoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:lime_wool", - "groupId": 18, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQuAwAACAQAbmFtZRMAbWluZWNyYWZ0OmxpbWVfd29vbAQJAG5hbWVfaGFzaNVnnzKiMxmeAwoAbmV0d29ya19pZG9b32kKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:green_wool", - "groupId": 18, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQvAwAACAQAbmFtZRQAbWluZWNyYWZ0OmdyZWVuX3dvb2wECQBuYW1lX2hhc2i3mElRYHIcSQMKAG5ldHdvcmtfaWSssprwCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:cyan_wool", - "groupId": 18, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQwAwAACAQAbmFtZRMAbWluZWNyYWZ0OmN5YW5fd29vbAQJAG5hbWVfaGFzaBNDfvHn8dqFAwoAbmV0d29ya19pZK0hAbgKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:light_blue_wool", - "groupId": 18, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQxAwAACAQAbmFtZRkAbWluZWNyYWZ0OmxpZ2h0X2JsdWVfd29vbAQJAG5hbWVfaGFzaLWFAUfyxFPNAwoAbmV0d29ya19pZL2oEugKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:blue_wool", - "groupId": 18, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQyAwAACAQAbmFtZRMAbWluZWNyYWZ0OmJsdWVfd29vbAQJAG5hbWVfaGFzaLjHyxxbTWCLAwoAbmV0d29ya19pZPaLdFQKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:purple_wool", - "groupId": 18, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQzAwAACAQAbmFtZRUAbWluZWNyYWZ0OnB1cnBsZV93b29sBAkAbmFtZV9oYXNojvFtqzjAf/4DCgBuZXR3b3JrX2lklqASNQoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:magenta_wool", - "groupId": 18, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQ0AwAACAQAbmFtZRYAbWluZWNyYWZ0Om1hZ2VudGFfd29vbAQJAG5hbWVfaGFzaGuOHvf+Pd4yAwoAbmV0d29ya19pZI4UoDQKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:pink_wool", - "groupId": 18, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQ1AwAACAQAbmFtZRMAbWluZWNyYWZ0OnBpbmtfd29vbAQJAG5hbWVfaGFzaPiVA2pFeoFLAwoAbmV0d29ya19pZOZRO6oKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:white_carpet", - "groupId": 19, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSrAAAACAQAbmFtZRYAbWluZWNyYWZ0OndoaXRlX2NhcnBldAQJAG5hbWVfaGFzaNeMHTI1fWPXAwoAbmV0d29ya19pZEahDFcKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:light_gray_carpet", - "groupId": 19, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRbAwAACAQAbmFtZRsAbWluZWNyYWZ0OmxpZ2h0X2dyYXlfY2FycGV0BAkAbmFtZV9oYXNoHPw6ArBAsP0DCgBuZXR3b3JrX2lkQoAeUAoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:gray_carpet", - "groupId": 19, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRaAwAACAQAbmFtZRUAbWluZWNyYWZ0OmdyYXlfY2FycGV0BAkAbmFtZV9oYXNoZVR0OI+1VRADCgBuZXR3b3JrX2lkETF4WwoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:black_carpet", - "groupId": 19, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRiAwAACAQAbmFtZRYAbWluZWNyYWZ0OmJsYWNrX2NhcnBldAQJAG5hbWVfaGFzaOk7LP9NptyhAwoAbmV0d29ya19pZFjmXtIKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:brown_carpet", - "groupId": 19, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRfAwAACAQAbmFtZRYAbWluZWNyYWZ0OmJyb3duX2NhcnBldAQJAG5hbWVfaGFzaNaXFyOsAvIvAwoAbmV0d29ya19pZHPjFuoKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:red_carpet", - "groupId": 19, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRhAwAACAQAbmFtZRQAbWluZWNyYWZ0OnJlZF9jYXJwZXQECQBuYW1lX2hhc2i9eSKBf6SO3wMKAG5ldHdvcmtfaWQuhI/KCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:orange_carpet", - "groupId": 19, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRUAwAACAQAbmFtZRcAbWluZWNyYWZ0Om9yYW5nZV9jYXJwZXQECQBuYW1lX2hhc2hIUkO4HlAdygMKAG5ldHdvcmtfaWSyKV9OCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:yellow_carpet", - "groupId": 19, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRXAwAACAQAbmFtZRcAbWluZWNyYWZ0OnllbGxvd19jYXJwZXQECQBuYW1lX2hhc2hSDKX3scCamwMKAG5ldHdvcmtfaWT8nq+ECgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:lime_carpet", - "groupId": 19, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRYAwAACAQAbmFtZRUAbWluZWNyYWZ0OmxpbWVfY2FycGV0BAkAbmFtZV9oYXNo+6KFOpzsib4DCgBuZXR3b3JrX2lkT+DS4woGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:green_carpet", - "groupId": 19, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRgAwAACAQAbmFtZRYAbWluZWNyYWZ0OmdyZWVuX2NhcnBldAQJAG5hbWVfaGFzaCHPMP9ltqFJAwoAbmV0d29ya19pZBgwAvAKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:cyan_carpet", - "groupId": 19, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRcAwAACAQAbmFtZRUAbWluZWNyYWZ0OmN5YW5fY2FycGV0BAkAbmFtZV9oYXNobXf62dQBJj8DCgBuZXR3b3JrX2lkKVppLgoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:light_blue_carpet", - "groupId": 19, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRWAwAACAQAbmFtZRsAbWluZWNyYWZ0OmxpZ2h0X2JsdWVfY2FycGV0BAkAbmFtZV9oYXNo20l4oktdZ3sDCgBuZXR3b3JrX2lkjdeMiwoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:blue_carpet", - "groupId": 19, - "block_state_b64": "CgAAAwgAYmxvY2tfaWReAwAACAQAbmFtZRUAbWluZWNyYWZ0OmJsdWVfY2FycGV0BAkAbmFtZV9oYXNo3p3lsW0eQwsDCgBuZXR3b3JrX2lkAovdPQoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:purple_carpet", - "groupId": 19, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRdAwAACAQAbmFtZRcAbWluZWNyYWZ0OnB1cnBsZV9jYXJwZXQECQBuYW1lX2hhc2jwIA9pW/qp7QMKAG5ldHdvcmtfaWTqJqhjCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:magenta_carpet", - "groupId": 19, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRVAwAACAQAbmFtZRgAbWluZWNyYWZ0Om1hZ2VudGFfY2FycGV0BAkAbmFtZV9oYXNoFXT36YNNZhMDCgBuZXR3b3JrX2lk+tqsGAoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:pink_carpet", - "groupId": 19, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRZAwAACAQAbmFtZRUAbWluZWNyYWZ0OnBpbmtfY2FycGV0BAkAbmFtZV9oYXNoHll72oqk+OoDCgBuZXR3b3JrX2lkrnBYDwoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:white_concrete_powder", - "groupId": 20, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTtAAAACAQAbmFtZR8AbWluZWNyYWZ0OndoaXRlX2NvbmNyZXRlX3Bvd2RlcgQJAG5hbWVfaGFzaFUk9iXVjwV8AwoAbmV0d29ya19pZJPZY8AKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:light_gray_concrete_powder", - "groupId": 20, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTLAwAACAQAbmFtZSQAbWluZWNyYWZ0OmxpZ2h0X2dyYXlfY29uY3JldGVfcG93ZGVyBAkAbmFtZV9oYXNo7EUk30hmUtYDCgBuZXR3b3JrX2lkh8jVIwoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:gray_concrete_powder", - "groupId": 20, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTKAwAACAQAbmFtZR4AbWluZWNyYWZ0OmdyYXlfY29uY3JldGVfcG93ZGVyBAkAbmFtZV9oYXNoW77af6WihdwDCgBuZXR3b3JrX2lkSsqC1woGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:black_concrete_powder", - "groupId": 20, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTSAwAACAQAbmFtZR8AbWluZWNyYWZ0OmJsYWNrX2NvbmNyZXRlX3Bvd2RlcgQJAG5hbWVfaGFzaAfWYp0xtgcfAwoAbmV0d29ya19pZMWTC8EKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:brown_concrete_powder", - "groupId": 20, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTPAwAACAQAbmFtZR8AbWluZWNyYWZ0OmJyb3duX2NvbmNyZXRlX3Bvd2RlcgQJAG5hbWVfaGFzaB74EeiLO46XAwoAbmV0d29ya19pZEDHKqwKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:red_concrete_powder", - "groupId": 20, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTRAwAACAQAbmFtZR0AbWluZWNyYWZ0OnJlZF9jb25jcmV0ZV9wb3dkZXIECQBuYW1lX2hhc2gjFut6Z/VH1gMKAG5ldHdvcmtfaWSvcmwYCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:orange_concrete_powder", - "groupId": 20, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTEAwAACAQAbmFtZSAAbWluZWNyYWZ0Om9yYW5nZV9jb25jcmV0ZV9wb3dkZXIECQBuYW1lX2hhc2gADDj2IJiw+gMKAG5ldHdvcmtfaWTHph0FCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:yellow_concrete_powder", - "groupId": 20, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTHAwAACAQAbmFtZSAAbWluZWNyYWZ0OnllbGxvd19jb25jcmV0ZV9wb3dkZXIECQBuYW1lX2hhc2iy6qKNn3ob5wMKAG5ldHdvcmtfaWQZAI39CgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:lime_concrete_powder", - "groupId": 20, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTIAwAACAQAbmFtZR4AbWluZWNyYWZ0OmxpbWVfY29uY3JldGVfcG93ZGVyBAkAbmFtZV9oYXNo4dYIPslbXPUDCgBuZXR3b3JrX2lk2O8X0AoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:green_concrete_powder", - "groupId": 20, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTQAwAACAQAbmFtZR8AbWluZWNyYWZ0OmdyZWVuX2NvbmNyZXRlX3Bvd2RlcgQJAG5hbWVfaGFzaM/c9x2aJh3HAwoAbmV0d29ya19pZA0VfBMKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:cyan_concrete_powder", - "groupId": 20, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTMAwAACAQAbmFtZR4AbWluZWNyYWZ0OmN5YW5fY29uY3JldGVfcG93ZGVyBAkAbmFtZV9oYXNok+xKAe7XXjoDCgBuZXR3b3JrX2lkmkn6uwoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:light_blue_concrete_powder", - "groupId": 20, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTGAwAACAQAbmFtZSQAbWluZWNyYWZ0OmxpZ2h0X2JsdWVfY29uY3JldGVfcG93ZGVyBAkAbmFtZV9oYXNogScpIQceyAEDCgBuZXR3b3JrX2lkOmVSbgoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:blue_concrete_powder", - "groupId": 20, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTOAwAACAQAbmFtZR4AbWluZWNyYWZ0OmJsdWVfY29uY3JldGVfcG93ZGVyBAkAbmFtZV9oYXNoFp7mmeL86r0DCgBuZXR3b3JrX2lkS3b3RQoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:purple_concrete_powder", - "groupId": 20, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTNAwAACAQAbmFtZSAAbWluZWNyYWZ0OnB1cnBsZV9jb25jcmV0ZV9wb3dkZXIECQBuYW1lX2hhc2iYcVU04hoStwMKAG5ldHdvcmtfaWQXimEjCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:magenta_concrete_powder", - "groupId": 20, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTFAwAACAQAbmFtZSEAbWluZWNyYWZ0Om1hZ2VudGFfY29uY3JldGVfcG93ZGVyBAkAbmFtZV9oYXNoy/70q6VPsWgDCgBuZXR3b3JrX2lkf9mxQwoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:pink_concrete_powder", - "groupId": 20, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTJAwAACAQAbmFtZR4AbWluZWNyYWZ0OnBpbmtfY29uY3JldGVfcG93ZGVyBAkAbmFtZV9oYXNoVikSAf8DwV0DCgBuZXR3b3JrX2lku2MivwoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:white_concrete", - "groupId": 21, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTsAAAACAQAbmFtZRgAbWluZWNyYWZ0OndoaXRlX2NvbmNyZXRlBAkAbmFtZV9oYXNo6zAp7lsLlvkDCgBuZXR3b3JrX2lk3MAYQAoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:light_gray_concrete", - "groupId": 21, - "block_state_b64": "CgAAAwgAYmxvY2tfaWR6AwAACAQAbmFtZR0AbWluZWNyYWZ0OmxpZ2h0X2dyYXlfY29uY3JldGUECQBuYW1lX2hhc2hEtet5wuDIKAMKAG5ldHdvcmtfaWQISs02CgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:gray_concrete", - "groupId": 21, - "block_state_b64": "CgAAAwgAYmxvY2tfaWR5AwAACAQAbmFtZRcAbWluZWNyYWZ0OmdyYXlfY29uY3JldGUECQBuYW1lX2hhc2j92INnb0a83AMKAG5ldHdvcmtfaWQj8RHwCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:black_concrete", - "groupId": 21, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSBAwAACAQAbmFtZRgAbWluZWNyYWZ0OmJsYWNrX2NvbmNyZXRlBAkAbmFtZV9oYXNo2X7NDIQmZ70DCgBuZXR3b3JrX2lk2uiVDQoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:brown_concrete", - "groupId": 21, - "block_state_b64": "CgAAAwgAYmxvY2tfaWR+AwAACAQAbmFtZRgAbWluZWNyYWZ0OmJyb3duX2NvbmNyZXRlBAkAbmFtZV9oYXNoeka02BwXf6oDCgBuZXR3b3JrX2lkYf+xDQoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:red_concrete", - "groupId": 21, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSAAwAACAQAbmFtZRYAbWluZWNyYWZ0OnJlZF9jb25jcmV0ZQQJAG5hbWVfaGFzaPWmNowLGubqAwoAbmV0d29ya19pZKwyx58KBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:orange_concrete", - "groupId": 21, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRzAwAACAQAbmFtZRkAbWluZWNyYWZ0Om9yYW5nZV9jb25jcmV0ZQQJAG5hbWVfaGFzaAgE8XmaAi6+AwoAbmV0d29ya19pZMDQNz8KBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:yellow_concrete", - "groupId": 21, - "block_state_b64": "CgAAAwgAYmxvY2tfaWR2AwAACAQAbmFtZRkAbWluZWNyYWZ0OnllbGxvd19jb25jcmV0ZQQJAG5hbWVfaGFzaE6ONfJPBd0+AwoAbmV0d29ya19pZMarutwKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:lime_concrete", - "groupId": 21, - "block_state_b64": "CgAAAwgAYmxvY2tfaWR3AwAACAQAbmFtZRcAbWluZWNyYWZ0OmxpbWVfY29uY3JldGUECQBuYW1lX2hhc2gnd8JW6wmJcAMKAG5ldHdvcmtfaWTd47aoCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:green_concrete", - "groupId": 21, - "block_state_b64": "CgAAAwgAYmxvY2tfaWR/AwAACAQAbmFtZRgAbWluZWNyYWZ0OmdyZWVuX2NvbmNyZXRlBAkAbmFtZV9oYXNokbFxRKchQZkDCgBuZXR3b3JrX2lkmhZWUgoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:cyan_concrete", - "groupId": 21, - "block_state_b64": "CgAAAwgAYmxvY2tfaWR7AwAACAQAbmFtZRcAbWluZWNyYWZ0OmN5YW5fY29uY3JldGUECQBuYW1lX2hhc2hFRrWJ33qj1wMKAG5ldHdvcmtfaWQbi5b8CgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:light_blue_concrete", - "groupId": 21, - "block_state_b64": "CgAAAwgAYmxvY2tfaWR1AwAACAQAbmFtZR0AbWluZWNyYWZ0OmxpZ2h0X2JsdWVfY29uY3JldGUECQBuYW1lX2hhc2gHAe0kl0SE4AMKAG5ldHdvcmtfaWRL/GbSCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:blue_concrete", - "groupId": 21, - "block_state_b64": "CgAAAwgAYmxvY2tfaWR9AwAACAQAbmFtZRcAbWluZWNyYWZ0OmJsdWVfY29uY3JldGUECQBuYW1lX2hhc2hiay301nnj1wMKAG5ldHdvcmtfaWRMvFXNCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:purple_concrete", - "groupId": 21, - "block_state_b64": "CgAAAwgAYmxvY2tfaWR8AwAACAQAbmFtZRkAbWluZWNyYWZ0OnB1cnBsZV9jb25jcmV0ZQQJAG5hbWVfaGFzaHBHflsPIwdXAwoAbmV0d29ya19pZCyKA5gKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:magenta_concrete", - "groupId": 21, - "block_state_b64": "CgAAAwgAYmxvY2tfaWR0AwAACAQAbmFtZRoAbWluZWNyYWZ0Om1hZ2VudGFfY29uY3JldGUECQBuYW1lX2hhc2gN7LuB/OvdZAMKAG5ldHdvcmtfaWTc6ZOdCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:pink_concrete", - "groupId": 21, - "block_state_b64": "CgAAAwgAYmxvY2tfaWR4AwAACAQAbmFtZRcAbWluZWNyYWZ0OnBpbmtfY29uY3JldGUECQBuYW1lX2hhc2ii2G5F0u3SOAMKAG5ldHdvcmtfaWSszGgrCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:hardened_clay", - "groupId": 22, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSsAAAACAQAbmFtZRcAbWluZWNyYWZ0OmhhcmRlbmVkX2NsYXkECQBuYW1lX2hhc2jrnRwCJ0krJAMKAG5ldHdvcmtfaWRBCOrrCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:white_terracotta", - "groupId": 22, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSfAAAACAQAbmFtZRoAbWluZWNyYWZ0OndoaXRlX3RlcnJhY290dGEECQBuYW1lX2hhc2j3RSdgmnAIewMKAG5ldHdvcmtfaWSimKw+CgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:light_gray_terracotta", - "groupId": 22, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTaAwAACAQAbmFtZR8AbWluZWNyYWZ0OmxpZ2h0X2dyYXlfdGVycmFjb3R0YQQJAG5hbWVfaGFzaAz1Ri3wIxomAwoAbmV0d29ya19pZH5qgOcKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:gray_terracotta", - "groupId": 22, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTZAwAACAQAbmFtZRkAbWluZWNyYWZ0OmdyYXlfdGVycmFjb3R0YQQJAG5hbWVfaGFzaAXdSLAaNZ9vAwoAbmV0d29ya19pZM1QDV0KBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:black_terracotta", - "groupId": 22, - "block_state_b64": "CgAAAwgAYmxvY2tfaWThAwAACAQAbmFtZRoAbWluZWNyYWZ0OmJsYWNrX3RlcnJhY290dGEECQBuYW1lX2hhc2jxssdv5vlbpgMKAG5ldHdvcmtfaWRE3Ru/CgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:brown_terracotta", - "groupId": 22, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTeAwAACAQAbmFtZRoAbWluZWNyYWZ0OmJyb3duX3RlcnJhY290dGEECQBuYW1lX2hhc2gG4kPenmOF9gMKAG5ldHdvcmtfaWQ/i0iNCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:red_terracotta", - "groupId": 22, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTgAwAACAQAbmFtZRgAbWluZWNyYWZ0OnJlZF90ZXJyYWNvdHRhBAkAbmFtZV9oYXNo7fX56HXFejEDCgBuZXR3b3JrX2lk8tTF8QoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:orange_terracotta", - "groupId": 22, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTTAwAACAQAbmFtZRsAbWluZWNyYWZ0Om9yYW5nZV90ZXJyYWNvdHRhBAkAbmFtZV9oYXNo0Hjmql3sruMDCgBuZXR3b3JrX2lklmqmkAoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:yellow_terracotta", - "groupId": 22, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTWAwAACAQAbmFtZRsAbWluZWNyYWZ0OnllbGxvd190ZXJyYWNvdHRhBAkAbmFtZV9oYXNoqkyKKrmA3VcDCgBuZXR3b3JrX2lkaM/orAoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:lime_terracotta", - "groupId": 22, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTXAwAACAQAbmFtZRkAbWluZWNyYWZ0OmxpbWVfdGVycmFjb3R0YQQJAG5hbWVfaGFzaANjADFOF9v7AwoAbmV0d29ya19pZJt0XsgKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:green_terracotta", - "groupId": 22, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTfAwAACAQAbmFtZRoAbWluZWNyYWZ0OmdyZWVuX3RlcnJhY290dGEECQBuYW1lX2hhc2j5Ybq36yYwRQMKAG5ldHdvcmtfaWQ8kGdHCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:cyan_terracotta", - "groupId": 22, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTbAwAACAQAbmFtZRkAbWluZWNyYWZ0OmN5YW5fdGVycmFjb3R0YQQJAG5hbWVfaGFzaN09COzMuHwAAwoAbmV0d29ya19pZIWPCzoKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:light_blue_terracotta", - "groupId": 22, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTVAwAACAQAbmFtZR8AbWluZWNyYWZ0OmxpZ2h0X2JsdWVfdGVycmFjb3R0YQQJAG5hbWVfaGFzaOMytez7cOZiAwoAbmV0d29ya19pZFHK1UsKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:blue_terracotta", - "groupId": 22, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTdAwAACAQAbmFtZRkAbWluZWNyYWZ0OmJsdWVfdGVycmFjb3R0YQQJAG5hbWVfaGFzaF6inyTK5RpAAwoAbmV0d29ya19pZF5mVZIKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:purple_terracotta", - "groupId": 22, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTcAwAACAQAbmFtZRsAbWluZWNyYWZ0OnB1cnBsZV90ZXJyYWNvdHRhBAkAbmFtZV9oYXNoKF7YG61yTbEDCgBuZXR3b3JrX2lkhtRDlwoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:magenta_terracotta", - "groupId": 22, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTUAwAACAQAbmFtZRwAbWluZWNyYWZ0Om1hZ2VudGFfdGVycmFjb3R0YQQJAG5hbWVfaGFzaLWvtpAVtztyAwoAbmV0d29ya19pZN5SoakKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:pink_terracotta", - "groupId": 22, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTYAwAACAQAbmFtZRkAbWluZWNyYWZ0OnBpbmtfdGVycmFjb3R0YQQJAG5hbWVfaGFzaJ7mzvyzSQZTAwoAbmV0d29ya19pZDJWe4YKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:white_glazed_terracotta", - "groupId": 23, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTcAAAACAQAbmFtZSEAbWluZWNyYWZ0OndoaXRlX2dsYXplZF90ZXJyYWNvdHRhBAkAbmFtZV9oYXNoiVzCdoHAJo0DCgBuZXR3b3JrX2lkIlj9AAoGAHN0YXRlcwMQAGZhY2luZ19kaXJlY3Rpb24AAAAAAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:silver_glazed_terracotta", - "groupId": 23, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTkAAAACAQAbmFtZSIAbWluZWNyYWZ0OnNpbHZlcl9nbGF6ZWRfdGVycmFjb3R0YQQJAG5hbWVfaGFzaAVsA0CnhzA4AwoAbmV0d29ya19pZPnxtJEKBgBzdGF0ZXMDEABmYWNpbmdfZGlyZWN0aW9uAAAAAAADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:gray_glazed_terracotta", - "groupId": 23, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTjAAAACAQAbmFtZSAAbWluZWNyYWZ0OmdyYXlfZ2xhemVkX3RlcnJhY290dGEECQBuYW1lX2hhc2jvLZt9u/lF/AMKAG5ldHdvcmtfaWQVU8eFCgYAc3RhdGVzAxAAZmFjaW5nX2RpcmVjdGlvbgAAAAAAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:black_glazed_terracotta", - "groupId": 23, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTrAAAACAQAbmFtZSEAbWluZWNyYWZ0OmJsYWNrX2dsYXplZF90ZXJyYWNvdHRhBAkAbmFtZV9oYXNoe8I4xAXbO5UDCgBuZXR3b3JrX2lk2Icb9AoGAHN0YXRlcwMQAGZhY2luZ19kaXJlY3Rpb24AAAAAAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:brown_glazed_terracotta", - "groupId": 23, - "block_state_b64": "CgAAAwgAYmxvY2tfaWToAAAACAQAbmFtZSEAbWluZWNyYWZ0OmJyb3duX2dsYXplZF90ZXJyYWNvdHRhBAkAbmFtZV9oYXNoSiNZOobbpjoDCgBuZXR3b3JrX2lkJy0jwgoGAHN0YXRlcwMQAGZhY2luZ19kaXJlY3Rpb24AAAAAAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:red_glazed_terracotta", - "groupId": 23, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTqAAAACAQAbmFtZR8AbWluZWNyYWZ0OnJlZF9nbGF6ZWRfdGVycmFjb3R0YQQJAG5hbWVfaGFzaBdWFGLmCLFVAwoAbmV0d29ya19pZMYBJSEKBgBzdGF0ZXMDEABmYWNpbmdfZGlyZWN0aW9uAAAAAAADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:orange_glazed_terracotta", - "groupId": 23, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTdAAAACAQAbmFtZSIAbWluZWNyYWZ0Om9yYW5nZV9nbGF6ZWRfdGVycmFjb3R0YQQJAG5hbWVfaGFzaMyJMrnPr7szAwoAbmV0d29ya19pZN6+7TUKBgBzdGF0ZXMDEABmYWNpbmdfZGlyZWN0aW9uAAAAAAADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:yellow_glazed_terracotta", - "groupId": 23, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTgAAAACAQAbmFtZSIAbWluZWNyYWZ0OnllbGxvd19nbGF6ZWRfdGVycmFjb3R0YQQJAG5hbWVfaGFzaN6NaIhf6m0uAwoAbmV0d29ya19pZKRHXeoKBgBzdGF0ZXMDEABmYWNpbmdfZGlyZWN0aW9uAAAAAAADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:lime_glazed_terracotta", - "groupId": 23, - "block_state_b64": "CgAAAwgAYmxvY2tfaWThAAAACAQAbmFtZSAAbWluZWNyYWZ0OmxpbWVfZ2xhemVkX3RlcnJhY290dGEECQBuYW1lX2hhc2iF3E68/rB2EAMKAG5ldHdvcmtfaWSP7qQWCgYAc3RhdGVzAxAAZmFjaW5nX2RpcmVjdGlvbgAAAAAAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:green_glazed_terracotta", - "groupId": 23, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTpAAAACAQAbmFtZSEAbWluZWNyYWZ0OmdyZWVuX2dsYXplZF90ZXJyYWNvdHRhBAkAbmFtZV9oYXNow5mo8aQDFboDCgBuZXR3b3JrX2lkoF11kgoGAHN0YXRlcwMQAGZhY2luZ19kaXJlY3Rpb24AAAAAAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:cyan_glazed_terracotta", - "groupId": 23, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTlAAAACAQAbmFtZSAAbWluZWNyYWZ0OmN5YW5fZ2xhemVkX3RlcnJhY290dGEECQBuYW1lX2hhc2gnNB+cCFRJhwMKAG5ldHdvcmtfaWT9buMtCgYAc3RhdGVzAxAAZmFjaW5nX2RpcmVjdGlvbgAAAAAAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:light_blue_glazed_terracotta", - "groupId": 23, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTfAAAACAQAbmFtZSYAbWluZWNyYWZ0OmxpZ2h0X2JsdWVfZ2xhemVkX3RlcnJhY290dGEECQBuYW1lX2hhc2gladnCDBKCigMKAG5ldHdvcmtfaWS5CszFCgYAc3RhdGVzAxAAZmFjaW5nX2RpcmVjdGlvbgAAAAAAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:blue_glazed_terracotta", - "groupId": 23, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTnAAAACAQAbmFtZSAAbWluZWNyYWZ0OmJsdWVfZ2xhemVkX3RlcnJhY290dGEECQBuYW1lX2hhc2giOZK+2nB1igMKAG5ldHdvcmtfaWR+e22CCgYAc3RhdGVzAxAAZmFjaW5nX2RpcmVjdGlvbgAAAAAAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:purple_glazed_terracotta", - "groupId": 23, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTbAAAACAQAbmFtZSIAbWluZWNyYWZ0OnB1cnBsZV9nbGF6ZWRfdGVycmFjb3R0YQQJAG5hbWVfaGFzaIQU03txeAfHAwoAbmV0d29ya19pZLKbSE4KBgBzdGF0ZXMDEABmYWNpbmdfZGlyZWN0aW9uAAAAAAADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:magenta_glazed_terracotta", - "groupId": 23, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTeAAAACAQAbmFtZSMAbWluZWNyYWZ0Om1hZ2VudGFfZ2xhemVkX3RlcnJhY290dGEECQBuYW1lX2hhc2i/SNqDJbfjMgMKAG5ldHdvcmtfaWQKf9UvCgYAc3RhdGVzAxAAZmFjaW5nX2RpcmVjdGlvbgAAAAAAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:pink_glazed_terracotta", - "groupId": 23, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTiAAAACAQAbmFtZSAAbWluZWNyYWZ0OnBpbmtfZ2xhemVkX3RlcnJhY290dGEECQBuYW1lX2hhc2hik8DVt4g+twMKAG5ldHdvcmtfaWTKzav2CgYAc3RhdGVzAxAAZmFjaW5nX2RpcmVjdGlvbgAAAAAAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:purpur_block", - "groupId": 24, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTJAAAACAQAbmFtZRYAbWluZWNyYWZ0OnB1cnB1cl9ibG9jawQJAG5hbWVfaGFzaAgLwnUZGlzsAwoAbmV0d29ya19pZGCZ+4UKBgBzdGF0ZXMICwBwaWxsYXJfYXhpcwEAeQADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:purpur_pillar", - "groupId": 24, - "block_state_b64": "CgAAAwgAYmxvY2tfaWS2BAAACAQAbmFtZRcAbWluZWNyYWZ0OnB1cnB1cl9waWxsYXIECQBuYW1lX2hhc2iFcSsdykO+jgMKAG5ldHdvcmtfaWQe0+geCgYAc3RhdGVzCAsAcGlsbGFyX2F4aXMBAHkAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:packed_mud", - "groupId": 24, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTcAgAACAQAbmFtZRQAbWluZWNyYWZ0OnBhY2tlZF9tdWQECQBuYW1lX2hhc2gHOMa121h4FgMKAG5ldHdvcmtfaWTUb6LyCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:mud_bricks", - "groupId": 24, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTaAgAACAQAbmFtZRQAbWluZWNyYWZ0Om11ZF9icmlja3MECQBuYW1lX2hhc2iDL/SVl/PewQMKAG5ldHdvcmtfaWSkBjaDCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:nether_wart_block", - "groupId": 25, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTWAAAACAQAbmFtZRsAbWluZWNyYWZ0Om5ldGhlcl93YXJ0X2Jsb2NrBAkAbmFtZV9oYXNo9XGS4GNnlV4DCgBuZXR3b3JrX2lkh3apIgoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:warped_wart_block", - "groupId": 25, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTiAQAACAQAbmFtZRsAbWluZWNyYWZ0OndhcnBlZF93YXJ0X2Jsb2NrBAkAbmFtZV9oYXNo9IqDS9yUPJoDCgBuZXR3b3JrX2lkMpKAbAoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:shroomlight", - "groupId": 25, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTlAQAACAQAbmFtZRUAbWluZWNyYWZ0OnNocm9vbWxpZ2h0BAkAbmFtZV9oYXNoZHCHcHX/HYADCgBuZXR3b3JrX2lkLG2JiwoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:crimson_nylium", - "groupId": 25, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTnAQAACAQAbmFtZRgAbWluZWNyYWZ0OmNyaW1zb25fbnlsaXVtBAkAbmFtZV9oYXNoOr6DJYW2bFYDCgBuZXR3b3JrX2lkuWpRDgoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:warped_nylium", - "groupId": 25, - "block_state_b64": "CgAAAwgAYmxvY2tfaWToAQAACAQAbmFtZRcAbWluZWNyYWZ0OndhcnBlZF9ueWxpdW0ECQBuYW1lX2hhc2g0Zf89cfr3rwMKAG5ldHdvcmtfaWSu/kekCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:netherrack", - "groupId": 25, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRXAAAACAQAbmFtZRQAbWluZWNyYWZ0Om5ldGhlcnJhY2sECQBuYW1lX2hhc2i/r5ZyRsvPyQMKAG5ldHdvcmtfaWTAiTOACgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:soul_soil", - "groupId": 25, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTrAQAACAQAbmFtZRMAbWluZWNyYWZ0OnNvdWxfc29pbAQJAG5hbWVfaGFzaC1/87ccutuTAwoAbmV0d29ya19pZKc63SMKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:grass_block", - "groupId": 25, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQCAAAACAQAbmFtZRUAbWluZWNyYWZ0OmdyYXNzX2Jsb2NrBAkAbmFtZV9oYXNojPyGp3/CSZwDCgBuZXR3b3JrX2lktCgx3goGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:podzol", - "groupId": 25, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTzAAAACAQAbmFtZRAAbWluZWNyYWZ0OnBvZHpvbAQJAG5hbWVfaGFzaBzqokRjH4Z1AwoAbmV0d29ya19pZPPS/GUKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:mycelium", - "groupId": 25, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRuAAAACAQAbmFtZRIAbWluZWNyYWZ0Om15Y2VsaXVtBAkAbmFtZV9oYXNojTN09cKickIDCgBuZXR3b3JrX2lkLNPxXQoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:grass_path", - "groupId": 25, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTGAAAACAQAbmFtZRQAbWluZWNyYWZ0OmdyYXNzX3BhdGgECQBuYW1lX2hhc2i0/KZV8Qsy+gMKAG5ldHdvcmtfaWT7CcdzCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:dirt", - "groupId": 25, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQDAAAACAQAbmFtZQ4AbWluZWNyYWZ0OmRpcnQECQBuYW1lX2hhc2hXp6jnXAe+kQMKAG5ldHdvcmtfaWSG706CCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:coarse_dirt", - "groupId": 25, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTBBAAACAQAbmFtZRUAbWluZWNyYWZ0OmNvYXJzZV9kaXJ0BAkAbmFtZV9oYXNosd+cah7WSmoDCgBuZXR3b3JrX2lkgS5RcAoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:dirt_with_roots", - "groupId": 25, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQ9AgAACAQAbmFtZRkAbWluZWNyYWZ0OmRpcnRfd2l0aF9yb290cwQJAG5hbWVfaGFzaLCNDYPviDCIAwoAbmV0d29ya19pZNCkwzoKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:farmland", - "groupId": 25, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQ8AAAACAQAbmFtZRIAbWluZWNyYWZ0OmZhcm1sYW5kBAkAbmFtZV9oYXNoxyQ5ag7LolADCgBuZXR3b3JrX2lkX618FQoGAHN0YXRlcwMSAG1vaXN0dXJpemVkX2Ftb3VudAAAAAAAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:mud", - "groupId": 25, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTYAgAACAQAbmFtZQ0AbWluZWNyYWZ0Om11ZAQJAG5hbWVfaGFzaPb/3P+uLy+9AwoAbmV0d29ya19pZPIUlUkKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:clay", - "groupId": 25, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRSAAAACAQAbmFtZQ4AbWluZWNyYWZ0OmNsYXkECQBuYW1lX2hhc2j/S6sKXRcpzwMKAG5ldHdvcmtfaWRmsb8nCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:iron_ore", - "groupId": 26, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQPAAAACAQAbmFtZRIAbWluZWNyYWZ0Omlyb25fb3JlBAkAbmFtZV9oYXNoS7BYtLnfx3gDCgBuZXR3b3JrX2lk3loneQoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:gold_ore", - "groupId": 26, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQOAAAACAQAbmFtZRIAbWluZWNyYWZ0OmdvbGRfb3JlBAkAbmFtZV9oYXNoC5Y+DUGXLC4DCgBuZXR3b3JrX2lkNhvMfwoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:diamond_ore", - "groupId": 26, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQ4AAAACAQAbmFtZRUAbWluZWNyYWZ0OmRpYW1vbmRfb3JlBAkAbmFtZV9oYXNokUOJ2wZZrGQDCgBuZXR3b3JrX2lk/dChVAoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:lapis_ore", - "groupId": 26, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQVAAAACAQAbmFtZRMAbWluZWNyYWZ0OmxhcGlzX29yZQQJAG5hbWVfaGFzaMrmrUrSzb7qAwoAbmV0d29ya19pZMg+qK4KBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:redstone_ore", - "groupId": 26, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRJAAAACAQAbmFtZRYAbWluZWNyYWZ0OnJlZHN0b25lX29yZQQJAG5hbWVfaGFzaFHVnp8Wc4JbAwoAbmV0d29ya19pZKDYvQoKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:coal_ore", - "groupId": 26, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQQAAAACAQAbmFtZRIAbWluZWNyYWZ0OmNvYWxfb3JlBAkAbmFtZV9oYXNo1OjA+Iuy51oDCgBuZXR3b3JrX2lk+R/aKAoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:copper_ore", - "groupId": 26, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQ2AgAACAQAbmFtZRQAbWluZWNyYWZ0OmNvcHBlcl9vcmUECQBuYW1lX2hhc2iSZduSntOzOwMKAG5ldHdvcmtfaWQtIuCnCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:emerald_ore", - "groupId": 26, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSBAAAACAQAbmFtZRUAbWluZWNyYWZ0OmVtZXJhbGRfb3JlBAkAbmFtZV9oYXNoJTovr+VgINsDCgBuZXR3b3JrX2lknbkqCgoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:quartz_ore", - "groupId": 26, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSZAAAACAQAbmFtZRQAbWluZWNyYWZ0OnF1YXJ0el9vcmUECQBuYW1lX2hhc2g0yNHLMK9TaQMKAG5ldHdvcmtfaWSzN7nzCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:nether_gold_ore", - "groupId": 26, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQfAgAACAQAbmFtZRkAbWluZWNyYWZ0Om5ldGhlcl9nb2xkX29yZQQJAG5hbWVfaGFzaEJZ7segIBgBAwoAbmV0d29ya19pZNI9pDgKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:ancient_debris", - "groupId": 26, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQOAgAACAQAbmFtZRgAbWluZWNyYWZ0OmFuY2llbnRfZGVicmlzBAkAbmFtZV9oYXNoNrbxMc9AwKcDCgBuZXR3b3JrX2lkrSNjEAoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:deepslate_iron_ore", - "groupId": 26, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSQAgAACAQAbmFtZRwAbWluZWNyYWZ0OmRlZXBzbGF0ZV9pcm9uX29yZQQJAG5hbWVfaGFzaB/fDL9pgvXXAwoAbmV0d29ya19pZFA0bz4KBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:deepslate_gold_ore", - "groupId": 26, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSRAgAACAQAbmFtZRwAbWluZWNyYWZ0OmRlZXBzbGF0ZV9nb2xkX29yZQQJAG5hbWVfaGFzaF9G7WYhKFinAwoAbmV0d29ya19pZHQTfBUKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:deepslate_diamond_ore", - "groupId": 26, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSUAgAACAQAbmFtZR8AbWluZWNyYWZ0OmRlZXBzbGF0ZV9kaWFtb25kX29yZQQJAG5hbWVfaGFzaEUH5USh+iD3AwoAbmV0d29ya19pZHP6VzAKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:deepslate_lapis_ore", - "groupId": 26, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSPAgAACAQAbmFtZR0AbWluZWNyYWZ0OmRlZXBzbGF0ZV9sYXBpc19vcmUECQBuYW1lX2hhc2j+yFxU/KZs1gMKAG5ldHdvcmtfaWRKINzICgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:deepslate_redstone_ore", - "groupId": 26, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSSAgAACAQAbmFtZSAAbWluZWNyYWZ0OmRlZXBzbGF0ZV9yZWRzdG9uZV9vcmUECQBuYW1lX2hhc2iVgM3wWWD6ugMKAG5ldHdvcmtfaWReBdYRCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:deepslate_emerald_ore", - "groupId": 26, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSWAgAACAQAbmFtZR8AbWluZWNyYWZ0OmRlZXBzbGF0ZV9lbWVyYWxkX29yZQQJAG5hbWVfaGFzaNlfo5HTwS6wAwoAbmV0d29ya19pZNeie6sKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:deepslate_coal_ore", - "groupId": 26, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSVAgAACAQAbmFtZRwAbWluZWNyYWZ0OmRlZXBzbGF0ZV9jb2FsX29yZQQJAG5hbWVfaGFzaIjikmcbRrPPAwoAbmV0d29ya19pZD9TiygKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:deepslate_copper_ore", - "groupId": 26, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSXAgAACAQAbmFtZR4AbWluZWNyYWZ0OmRlZXBzbGF0ZV9jb3BwZXJfb3JlBAkAbmFtZV9oYXNottjV4Ev5LAQDCgBuZXR3b3JrX2lkP23rgQoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:stone", - "groupId": 27, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQBAAAACAQAbmFtZQ8AbWluZWNyYWZ0OnN0b25lBAkAbmFtZV9oYXNoE3mqhJxzJycDCgBuZXR3b3JrX2lkIQ4xgAoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:granite", - "groupId": 27, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRNAwAACAQAbmFtZREAbWluZWNyYWZ0OmdyYW5pdGUECQBuYW1lX2hhc2iq+Dur2pw4AwMKAG5ldHdvcmtfaWT2NMfJCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:diorite", - "groupId": 27, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRPAwAACAQAbmFtZREAbWluZWNyYWZ0OmRpb3JpdGUECQBuYW1lX2hhc2iaFsq2iinZBQMKAG5ldHdvcmtfaWQqGE6XCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:andesite", - "groupId": 27, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRRAwAACAQAbmFtZRIAbWluZWNyYWZ0OmFuZGVzaXRlBAkAbmFtZV9oYXNosaLIEnQQoSYDCgBuZXR3b3JrX2lkEApRZAoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:blackstone", - "groupId": 27, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQQAgAACAQAbmFtZRQAbWluZWNyYWZ0OmJsYWNrc3RvbmUECQBuYW1lX2hhc2iMFYziD80D6QMKAG5ldHdvcmtfaWSrUryHCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:deepslate", - "groupId": 27, - "block_state_b64": "CgAAAwgAYmxvY2tfaWR5AgAACAQAbmFtZRMAbWluZWNyYWZ0OmRlZXBzbGF0ZQQJAG5hbWVfaGFzaKX5pAblxz8TAwoAbmV0d29ya19pZOJoQjsKBgBzdGF0ZXMICwBwaWxsYXJfYXhpcwEAeQADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:tuff", - "groupId": 27, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRMAgAACAQAbmFtZQ4AbWluZWNyYWZ0OnR1ZmYECQBuYW1lX2hhc2h1Rwc1XYsBGwMKAG5ldHdvcmtfaWRwQGn0CgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:basalt", - "groupId": 27, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTpAQAACAQAbmFtZRAAbWluZWNyYWZ0OmJhc2FsdAQJAG5hbWVfaGFzaH+UQO2yWodiAwoAbmV0d29ya19pZBPNSV4KBgBzdGF0ZXMICwBwaWxsYXJfYXhpcwEAeQADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:polished_granite", - "groupId": 27, - "block_state_b64": "CgAAAwgAYmxvY2tfaWROAwAACAQAbmFtZRoAbWluZWNyYWZ0OnBvbGlzaGVkX2dyYW5pdGUECQBuYW1lX2hhc2iLiEfys8pFIAMKAG5ldHdvcmtfaWTCxxcHCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:polished_diorite", - "groupId": 27, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRQAwAACAQAbmFtZRoAbWluZWNyYWZ0OnBvbGlzaGVkX2Rpb3JpdGUECQBuYW1lX2hhc2hTxY4fKmNmlAMKAG5ldHdvcmtfaWTmtjdRCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:polished_andesite", - "groupId": 27, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRSAwAACAQAbmFtZRsAbWluZWNyYWZ0OnBvbGlzaGVkX2FuZGVzaXRlBAkAbmFtZV9oYXNovl28uFk4HuQDCgBuZXR3b3JrX2lklFjuCwoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:polished_blackstone", - "groupId": 27, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQiAgAACAQAbmFtZR0AbWluZWNyYWZ0OnBvbGlzaGVkX2JsYWNrc3RvbmUECQBuYW1lX2hhc2jT9fHCl6vWQQMKAG5ldHdvcmtfaWR/Ho6oCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:polished_deepslate", - "groupId": 27, - "block_state_b64": "CgAAAwgAYmxvY2tfaWR+AgAACAQAbmFtZRwAbWluZWNyYWZ0OnBvbGlzaGVkX2RlZXBzbGF0ZQQJAG5hbWVfaGFzaHC1edoaWF3uAwoAbmV0d29ya19pZCPeQsEKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:polished_tuff", - "groupId": 27, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTrAwAACAQAbmFtZRcAbWluZWNyYWZ0OnBvbGlzaGVkX3R1ZmYECQBuYW1lX2hhc2hyaLe/KEVZ0gMKAG5ldHdvcmtfaWTcX3NrCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:polished_basalt", - "groupId": 27, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTqAQAACAQAbmFtZRkAbWluZWNyYWZ0OnBvbGlzaGVkX2Jhc2FsdAQJAG5hbWVfaGFzaMS+L0gMnRcBAwoAbmV0d29ya19pZF+/mHwKBgBzdGF0ZXMICwBwaWxsYXJfYXhpcwEAeQADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:smooth_basalt", - "groupId": 27, - "block_state_b64": "CgAAAwgAYmxvY2tfaWR4AgAACAQAbmFtZRcAbWluZWNyYWZ0OnNtb290aF9iYXNhbHQECQBuYW1lX2hhc2jKPUdz89kuNAMKAG5ldHdvcmtfaWTkb/oVCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:gravel", - "groupId": 28, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQNAAAACAQAbmFtZRAAbWluZWNyYWZ0OmdyYXZlbAQJAG5hbWVfaGFzaOFxz8XJd2r/AwoAbmV0d29ya19pZBpfI1sKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:sand", - "groupId": 28, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQMAAAACAQAbmFtZQ4AbWluZWNyYWZ0OnNhbmQECQBuYW1lX2hhc2i6lthXXbAyWAMKAG5ldHdvcmtfaWRjeUMICgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:red_sand", - "groupId": 28, - "block_state_b64": "CgAAAwgAYmxvY2tfaWS0BAAACAQAbmFtZRIAbWluZWNyYWZ0OnJlZF9zYW5kBAkAbmFtZV9oYXNoCiarI69JQCkDCgBuZXR3b3JrX2lkU8UD/AoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:cactus", - "groupId": 28, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRRAAAACAQAbmFtZRAAbWluZWNyYWZ0OmNhY3R1cwQJAG5hbWVfaGFzaCG9zL0N4wvGAwoAbmV0d29ya19pZDeCERAKBgBzdGF0ZXMDAwBhZ2UAAAAAAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:oak_log", - "groupId": 29, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQRAAAACAQAbmFtZREAbWluZWNyYWZ0Om9ha19sb2cECQBuYW1lX2hhc2ho6TS+K7PZFQMKAG5ldHdvcmtfaWQjfjoxCgYAc3RhdGVzCAsAcGlsbGFyX2F4aXMBAHkAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:stripped_oak_log", - "groupId": 29, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQJAQAACAQAbmFtZRoAbWluZWNyYWZ0OnN0cmlwcGVkX29ha19sb2cECQBuYW1lX2hhc2h8dqh+OOHU4wMKAG5ldHdvcmtfaWSYKjdrCgYAc3RhdGVzCAsAcGlsbGFyX2F4aXMBAHkAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:spruce_log", - "groupId": 29, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQ4AwAACAQAbmFtZRQAbWluZWNyYWZ0OnNwcnVjZV9sb2cECQBuYW1lX2hhc2hZ03qaLoF3WgMKAG5ldHdvcmtfaWRlFD8eCgYAc3RhdGVzCAsAcGlsbGFyX2F4aXMBAHkAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:stripped_spruce_log", - "groupId": 29, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQEAQAACAQAbmFtZR0AbWluZWNyYWZ0OnN0cmlwcGVkX3NwcnVjZV9sb2cECQBuYW1lX2hhc2iNrhKjS5IyrgMKAG5ldHdvcmtfaWRQcEC3CgYAc3RhdGVzCAsAcGlsbGFyX2F4aXMBAHkAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:birch_log", - "groupId": 29, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQ5AwAACAQAbmFtZRMAbWluZWNyYWZ0OmJpcmNoX2xvZwQJAG5hbWVfaGFzaBUzT3NxsZAnAwoAbmV0d29ya19pZBKN3VQKBgBzdGF0ZXMICwBwaWxsYXJfYXhpcwEAeQADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:stripped_birch_log", - "groupId": 29, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQFAQAACAQAbmFtZRwAbWluZWNyYWZ0OnN0cmlwcGVkX2JpcmNoX2xvZwQJAG5hbWVfaGFzaCFKS4AeuSidAwoAbmV0d29ya19pZN0IONIKBgBzdGF0ZXMICwBwaWxsYXJfYXhpcwEAeQADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:jungle_log", - "groupId": 29, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQ6AwAACAQAbmFtZRQAbWluZWNyYWZ0Omp1bmdsZV9sb2cECQBuYW1lX2hhc2gkwW0KNulqDgMKAG5ldHdvcmtfaWQaziU/CgYAc3RhdGVzCAsAcGlsbGFyX2F4aXMBAHkAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:stripped_jungle_log", - "groupId": 29, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQGAQAACAQAbmFtZR0AbWluZWNyYWZ0OnN0cmlwcGVkX2p1bmdsZV9sb2cECQBuYW1lX2hhc2hAwMsgOk02JAMKAG5ldHdvcmtfaWQvls0eCgYAc3RhdGVzCAsAcGlsbGFyX2F4aXMBAHkAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:acacia_log", - "groupId": 29, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSiAAAACAQAbmFtZRQAbWluZWNyYWZ0OmFjYWNpYV9sb2cECQBuYW1lX2hhc2iV48VpYhjoYQMKAG5ldHdvcmtfaWRxEqe0CgYAc3RhdGVzCAsAcGlsbGFyX2F4aXMBAHkAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:stripped_acacia_log", - "groupId": 29, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQHAQAACAQAbmFtZR0AbWluZWNyYWZ0OnN0cmlwcGVkX2FjYWNpYV9sb2cECQBuYW1lX2hhc2hJb0lQqnEqlgMKAG5ldHdvcmtfaWRg3IdRCgYAc3RhdGVzCAsAcGlsbGFyX2F4aXMBAHkAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:dark_oak_log", - "groupId": 29, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQ7AwAACAQAbmFtZRYAbWluZWNyYWZ0OmRhcmtfb2FrX2xvZwQJAG5hbWVfaGFzaIWfVRd0XUo3AwoAbmV0d29ya19pZPMM7LYKBgBzdGF0ZXMICwBwaWxsYXJfYXhpcwEAeQADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:stripped_dark_oak_log", - "groupId": 29, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQIAQAACAQAbmFtZR8AbWluZWNyYWZ0OnN0cmlwcGVkX2Rhcmtfb2FrX2xvZwQJAG5hbWVfaGFzaPFTdxRdPwkOAwoAbmV0d29ya19pZDIzenIKBgBzdGF0ZXMICwBwaWxsYXJfYXhpcwEAeQADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:mangrove_log", - "groupId": 29, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTjAgAACAQAbmFtZRYAbWluZWNyYWZ0Om1hbmdyb3ZlX2xvZwQJAG5hbWVfaGFzaHZe6DzPZBobAwoAbmV0d29ya19pZG6DuYkKBgBzdGF0ZXMICwBwaWxsYXJfYXhpcwEAeQADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:stripped_mangrove_log", - "groupId": 29, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTkAgAACAQAbmFtZR8AbWluZWNyYWZ0OnN0cmlwcGVkX21hbmdyb3ZlX2xvZwQJAG5hbWVfaGFzaLqIBo4hwA//AwoAbmV0d29ya19pZPtRn7UKBgBzdGF0ZXMICwBwaWxsYXJfYXhpcwEAeQADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:cherry_log", - "groupId": 29, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQXAwAACAQAbmFtZRQAbWluZWNyYWZ0OmNoZXJyeV9sb2cECQBuYW1lX2hhc2hwFlaioppB1wMKAG5ldHdvcmtfaWS2sdXECgYAc3RhdGVzCAsAcGlsbGFyX2F4aXMBAHkAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:stripped_cherry_log", - "groupId": 29, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQWAwAACAQAbmFtZR0AbWluZWNyYWZ0OnN0cmlwcGVkX2NoZXJyeV9sb2cECQBuYW1lX2hhc2i85H6G+WhXaAMKAG5ldHdvcmtfaWRjzoglCgYAc3RhdGVzCAsAcGlsbGFyX2F4aXMBAHkAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:pale_oak_log", - "groupId": 29, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTiBAAACAQAbmFtZRYAbWluZWNyYWZ0OnBhbGVfb2FrX2xvZwQJAG5hbWVfaGFzaIEcMMTin/ihAwoAbmV0d29ya19pZMtoEVwKBgBzdGF0ZXMICwBwaWxsYXJfYXhpcwEAeQADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:stripped_pale_oak_log", - "groupId": 29, - "block_state_b64": "CgAAAwgAYmxvY2tfaWThBAAACAQAbmFtZR8AbWluZWNyYWZ0OnN0cmlwcGVkX3BhbGVfb2FrX2xvZwQJAG5hbWVfaGFzaBVKFLV2TrFcAwoAbmV0d29ya19pZBY8/GAKBgBzdGF0ZXMICwBwaWxsYXJfYXhpcwEAeQADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:crimson_stem", - "groupId": 29, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTgAQAACAQAbmFtZRYAbWluZWNyYWZ0OmNyaW1zb25fc3RlbQQJAG5hbWVfaGFzaM0FzfL0UTKZAwoAbmV0d29ya19pZKvzID0KBgBzdGF0ZXMICwBwaWxsYXJfYXhpcwEAeQADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:stripped_crimson_stem", - "groupId": 29, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTvAQAACAQAbmFtZR8AbWluZWNyYWZ0OnN0cmlwcGVkX2NyaW1zb25fc3RlbQQJAG5hbWVfaGFzaDlA6nood57EAwoAbmV0d29ya19pZHrIqjIKBgBzdGF0ZXMICwBwaWxsYXJfYXhpcwEAeQADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:warped_stem", - "groupId": 29, - "block_state_b64": "CgAAAwgAYmxvY2tfaWThAQAACAQAbmFtZRUAbWluZWNyYWZ0OndhcnBlZF9zdGVtBAkAbmFtZV9oYXNon7cKfPZxdrUDCgBuZXR3b3JrX2lkerWyMwoGAHN0YXRlcwgLAHBpbGxhcl9heGlzAQB5AAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:stripped_warped_stem", - "groupId": 29, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTwAQAACAQAbmFtZR4AbWluZWNyYWZ0OnN0cmlwcGVkX3dhcnBlZF9zdGVtBAkAbmFtZV9oYXNoEw+y0dDPSd8DCgBuZXR3b3JrX2lkIQ9vBAoGAHN0YXRlcwgLAHBpbGxhcl9heGlzAQB5AAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:oak_wood", - "groupId": 30, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTTAQAACAQAbmFtZRIAbWluZWNyYWZ0Om9ha193b29kBAkAbmFtZV9oYXNoqQIkuVPyJX0DCgBuZXR3b3JrX2lku2G1YAoGAHN0YXRlcwgLAHBpbGxhcl9heGlzAQB5AAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:stripped_oak_wood", - "groupId": 30, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQyBAAACAQAbmFtZRsAbWluZWNyYWZ0OnN0cmlwcGVkX29ha193b29kBAkAbmFtZV9oYXNovW6KCv+VZnsDCgBuZXR3b3JrX2lkkhWGegoGAHN0YXRlcwgLAHBpbGxhcl9heGlzAQB5AAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:spruce_wood", - "groupId": 30, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQtBAAACAQAbmFtZRUAbWluZWNyYWZ0OnNwcnVjZV93b29kBAkAbmFtZV9oYXNoTrIJ5TAQ+OgDCgBuZXR3b3JrX2lkaXLxCwoGAHN0YXRlcwgLAHBpbGxhcl9heGlzAQB5AAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:stripped_spruce_wood", - "groupId": 30, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQzBAAACAQAbmFtZR4AbWluZWNyYWZ0OnN0cmlwcGVkX3NwcnVjZV93b29kBAkAbmFtZV9oYXNoMnuUk4Xo6icDCgBuZXR3b3JrX2lkes2ydAoGAHN0YXRlcwgLAHBpbGxhcl9heGlzAQB5AAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:birch_wood", - "groupId": 30, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQuBAAACAQAbmFtZRQAbWluZWNyYWZ0OmJpcmNoX3dvb2QECQBuYW1lX2hhc2iqVjG4xt0cKQMKAG5ldHdvcmtfaWS06c5VCgYAc3RhdGVzCAsAcGlsbGFyX2F4aXMBAHkAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:stripped_birch_wood", - "groupId": 30, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQ0BAAACAQAbmFtZR0AbWluZWNyYWZ0OnN0cmlwcGVkX2JpcmNoX3dvb2QECQBuYW1lX2hhc2hm88R604TKbAMKAG5ldHdvcmtfaWRleEMJCgYAc3RhdGVzCAsAcGlsbGFyX2F4aXMBAHkAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:jungle_wood", - "groupId": 30, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQvBAAACAQAbmFtZRUAbWluZWNyYWZ0Omp1bmdsZV93b29kBAkAbmFtZV9oYXNo9bYW29ORWCoDCgBuZXR3b3JrX2lkyFyKLQoGAHN0YXRlcwgLAHBpbGxhcl9heGlzAQB5AAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:stripped_jungle_wood", - "groupId": 30, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQ1BAAACAQAbmFtZR4AbWluZWNyYWZ0OnN0cmlwcGVkX2p1bmdsZV93b29kBAkAbmFtZV9oYXNoUVs6KsZQRBoDCgBuZXR3b3JrX2lk92k8HQoGAHN0YXRlcwgLAHBpbGxhcl9heGlzAQB5AAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:acacia_wood", - "groupId": 30, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQwBAAACAQAbmFtZRUAbWluZWNyYWZ0OmFjYWNpYV93b29kBAkAbmFtZV9oYXNoKkDfgzlJUcIDCgBuZXR3b3JrX2lkuTWlcgoGAHN0YXRlcwgLAHBpbGxhcl9heGlzAQB5AAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:stripped_acacia_wood", - "groupId": 30, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQ2BAAACAQAbmFtZR4AbWluZWNyYWZ0OnN0cmlwcGVkX2FjYWNpYV93b29kBAkAbmFtZV9oYXNo/kOPN2bCJhUDCgBuZXR3b3JrX2lktl6LwQoGAHN0YXRlcwgLAHBpbGxhcl9heGlzAQB5AAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:dark_oak_wood", - "groupId": 30, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQxBAAACAQAbmFtZRcAbWluZWNyYWZ0OmRhcmtfb2FrX3dvb2QECQBuYW1lX2hhc2jaKv4ORLadAAMKAG5ldHdvcmtfaWSDrNQ8CgYAc3RhdGVzCAsAcGlsbGFyX2F4aXMBAHkAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:stripped_dark_oak_wood", - "groupId": 30, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQ3BAAACAQAbmFtZSAAbWluZWNyYWZ0OnN0cmlwcGVkX2Rhcmtfb2FrX3dvb2QECQBuYW1lX2hhc2h2jFDfKVFgfAMKAG5ldHdvcmtfaWTgZQ5VCgYAc3RhdGVzCAsAcGlsbGFyX2F4aXMBAHkAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:mangrove_wood", - "groupId": 30, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTwAgAACAQAbmFtZRcAbWluZWNyYWZ0Om1hbmdyb3ZlX3dvb2QECQBuYW1lX2hhc2iXVxG0JG2fVAMKAG5ldHdvcmtfaWSkqJ4cCgYAc3RhdGVzCAsAcGlsbGFyX2F4aXMBAHkAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:stripped_mangrove_wood", - "groupId": 30, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTxAgAACAQAbmFtZSAAbWluZWNyYWZ0OnN0cmlwcGVkX21hbmdyb3ZlX3dvb2QECQBuYW1lX2hhc2h7CkbaBF7/WAMKAG5ldHdvcmtfaWQLAX88CgYAc3RhdGVzCAsAcGlsbGFyX2F4aXMBAHkAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:cherry_wood", - "groupId": 30, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQhAwAACAQAbmFtZRUAbWluZWNyYWZ0OmNoZXJyeV93b29kBAkAbmFtZV9oYXNoAW8srlmpBM8DCgBuZXR3b3JrX2lkLPsAwgoGAHN0YXRlcwgLAHBpbGxhcl9heGlzAQB5AAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:stripped_cherry_wood", - "groupId": 30, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQgAwAACAQAbmFtZR4AbWluZWNyYWZ0OnN0cmlwcGVkX2NoZXJyeV93b29kBAkAbmFtZV9oYXNo/e7KXv+CB38DCgBuZXR3b3JrX2lkg5aVtQoGAHN0YXRlcwgLAHBpbGxhcl9heGlzAQB5AAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:pale_oak_wood", - "groupId": 30, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTsBAAACAQAbmFtZRcAbWluZWNyYWZ0OnBhbGVfb2FrX3dvb2QECQBuYW1lX2hhc2hGlXnbUgRIggMKAG5ldHdvcmtfaWRPLx7LCgYAc3RhdGVzCAsAcGlsbGFyX2F4aXMBAHkAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:stripped_pale_oak_wood", - "groupId": 30, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTrBAAACAQAbmFtZSAAbWluZWNyYWZ0OnN0cmlwcGVkX3BhbGVfb2FrX3dvb2QECQBuYW1lX2hhc2iqaxd6ta2eNAMKAG5ldHdvcmtfaWQI+pz3CgYAc3RhdGVzCAsAcGlsbGFyX2F4aXMBAHkAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:crimson_hyphae", - "groupId": 30, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQqAgAACAQAbmFtZRgAbWluZWNyYWZ0OmNyaW1zb25faHlwaGFlBAkAbmFtZV9oYXNouRmKmfSqEWADCgBuZXR3b3JrX2lk+Tm5rQoGAHN0YXRlcwgLAHBpbGxhcl9heGlzAQB5AAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:stripped_crimson_hyphae", - "groupId": 30, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQrAgAACAQAbmFtZSEAbWluZWNyYWZ0OnN0cmlwcGVkX2NyaW1zb25faHlwaGFlBAkAbmFtZV9oYXNoFffwmABq4LUDCgBuZXR3b3JrX2lkZAlUbgoGAHN0YXRlcwgLAHBpbGxhcl9heGlzAQB5AAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:warped_hyphae", - "groupId": 30, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQpAgAACAQAbmFtZRcAbWluZWNyYWZ0OndhcnBlZF9oeXBoYWUECQBuYW1lX2hhc2hn8plQUr6pmQMKAG5ldHdvcmtfaWRU2AIBCgYAc3RhdGVzCAsAcGlsbGFyX2F4aXMBAHkAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:stripped_warped_hyphae", - "groupId": 30, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQsAgAACAQAbmFtZSAAbWluZWNyYWZ0OnN0cmlwcGVkX3dhcnBlZF9oeXBoYWUECQBuYW1lX2hhc2irKq+HYPSgjQMKAG5ldHdvcmtfaWSbrOPDCgYAc3RhdGVzCAsAcGlsbGFyX2F4aXMBAHkAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:bamboo_block", - "groupId": 30, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQOAwAACAQAbmFtZRYAbWluZWNyYWZ0OmJhbWJvb19ibG9jawQJAG5hbWVfaGFzaAbDeur6stIBAwoAbmV0d29ya19pZCJAwn0KBgBzdGF0ZXMICwBwaWxsYXJfYXhpcwEAeQADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:stripped_bamboo_block", - "groupId": 30, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQPAwAACAQAbmFtZR8AbWluZWNyYWZ0OnN0cmlwcGVkX2JhbWJvb19ibG9jawQJAG5hbWVfaGFzaJpwytpZOZM9AwoAbmV0d29ya19pZKuRbNEKBgBzdGF0ZXMICwBwaWxsYXJfYXhpcwEAeQADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:oak_leaves", - "groupId": 31, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQSAAAACAQAbmFtZRQAbWluZWNyYWZ0Om9ha19sZWF2ZXMECQBuYW1lX2hhc2h6O4xGqA2oKgMKAG5ldHdvcmtfaWT98c59CgYAc3RhdGVzAQ4AcGVyc2lzdGVudF9iaXQAAQoAdXBkYXRlX2JpdAAAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:spruce_leaves", - "groupId": 31, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQfBAAACAQAbmFtZRcAbWluZWNyYWZ0OnNwcnVjZV9sZWF2ZXMECQBuYW1lX2hhc2i9x1CtNAuqZwMKAG5ldHdvcmtfaWSzF7pTCgYAc3RhdGVzAQ4AcGVyc2lzdGVudF9iaXQAAQoAdXBkYXRlX2JpdAAAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:birch_leaves", - "groupId": 31, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQgBAAACAQAbmFtZRYAbWluZWNyYWZ0OmJpcmNoX2xlYXZlcwQJAG5hbWVfaGFzaBlAGHaoaLZSAwoAbmV0d29ya19pZOjtvWcKBgBzdGF0ZXMBDgBwZXJzaXN0ZW50X2JpdAABCgB1cGRhdGVfYml0AAADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:jungle_leaves", - "groupId": 31, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQhBAAACAQAbmFtZRcAbWluZWNyYWZ0Omp1bmdsZV9sZWF2ZXMECQBuYW1lX2hhc2iW1uAH07zGhgMKAG5ldHdvcmtfaWSA5KX0CgYAc3RhdGVzAQ4AcGVyc2lzdGVudF9iaXQAAQoAdXBkYXRlX2JpdAAAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:acacia_leaves", - "groupId": 31, - "block_state_b64": "CgAAAwgAYmxvY2tfaWShAAAACAQAbmFtZRcAbWluZWNyYWZ0OmFjYWNpYV9sZWF2ZXMECQBuYW1lX2hhc2iZJf8dAgDRNQMKAG5ldHdvcmtfaWQ/G7VuCgYAc3RhdGVzAQ4AcGVyc2lzdGVudF9iaXQAAQoAdXBkYXRlX2JpdAAAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:dark_oak_leaves", - "groupId": 31, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQiBAAACAQAbmFtZRkAbWluZWNyYWZ0OmRhcmtfb2FrX2xlYXZlcwQJAG5hbWVfaGFzaCk7rDipWFSjAwoAbmV0d29ya19pZJ2AkbYKBgBzdGF0ZXMBDgBwZXJzaXN0ZW50X2JpdAABCgB1cGRhdGVfYml0AAADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:mangrove_leaves", - "groupId": 31, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTXAgAACAQAbmFtZRkAbWluZWNyYWZ0Om1hbmdyb3ZlX2xlYXZlcwQJAG5hbWVfaGFzaKyI/dWvhEG8AwoAbmV0d29ya19pZPQxCZ8KBgBzdGF0ZXMBDgBwZXJzaXN0ZW50X2JpdAABCgB1cGRhdGVfYml0AAADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:cherry_leaves", - "groupId": 31, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQjAwAACAQAbmFtZRcAbWluZWNyYWZ0OmNoZXJyeV9sZWF2ZXMECQBuYW1lX2hhc2giTs9ChhYBlQMKAG5ldHdvcmtfaWR8bPpwCgYAc3RhdGVzAQ4AcGVyc2lzdGVudF9iaXQAAQoAdXBkYXRlX2JpdAAAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:pale_oak_leaves", - "groupId": 31, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTuBAAACAQAbmFtZRkAbWluZWNyYWZ0OnBhbGVfb2FrX2xlYXZlcwQJAG5hbWVfaGFzaKVccFYyf0wbAwoAbmV0d29ya19pZNFNvgcKBgBzdGF0ZXMBDgBwZXJzaXN0ZW50X2JpdAABCgB1cGRhdGVfYml0AAADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:azalea_leaves", - "groupId": 31, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRDAgAACAQAbmFtZRcAbWluZWNyYWZ0OmF6YWxlYV9sZWF2ZXMECQBuYW1lX2hhc2iXFhD57wFS7AMKAG5ldHdvcmtfaWTNB/9ECgYAc3RhdGVzAQ4AcGVyc2lzdGVudF9iaXQAAQoAdXBkYXRlX2JpdAAAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:azalea_leaves_flowered", - "groupId": 31, - "block_state_b64": "CgAAAwgAYmxvY2tfaWREAgAACAQAbmFtZSAAbWluZWNyYWZ0OmF6YWxlYV9sZWF2ZXNfZmxvd2VyZWQECQBuYW1lX2hhc2gs8jxlS/pMrwMKAG5ldHdvcmtfaWQ7W4PyCgYAc3RhdGVzAQ4AcGVyc2lzdGVudF9iaXQAAQoAdXBkYXRlX2JpdAAAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:oak_sapling", - "groupId": 32, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQGAAAACAQAbmFtZRUAbWluZWNyYWZ0Om9ha19zYXBsaW5nBAkAbmFtZV9oYXNoogXcT9QfjiUDCgBuZXR3b3JrX2lkG22C+AoGAHN0YXRlcwEHAGFnZV9iaXQAAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:spruce_sapling", - "groupId": 32, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQ4BAAACAQAbmFtZRgAbWluZWNyYWZ0OnNwcnVjZV9zYXBsaW5nBAkAbmFtZV9oYXNoe8hz4uYP0FcDCgBuZXR3b3JrX2lkUQmhaQoGAHN0YXRlcwEHAGFnZV9iaXQAAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:birch_sapling", - "groupId": 32, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQ5BAAACAQAbmFtZRcAbWluZWNyYWZ0OmJpcmNoX3NhcGxpbmcECQBuYW1lX2hhc2h348iJQ/tK4wMKAG5ldHdvcmtfaWQ2Uh53CgYAc3RhdGVzAQcAYWdlX2JpdAAAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:jungle_sapling", - "groupId": 32, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQ6BAAACAQAbmFtZRgAbWluZWNyYWZ0Omp1bmdsZV9zYXBsaW5nBAkAbmFtZV9oYXNo7tyTOdSrxaADCgBuZXR3b3JrX2lkXmBAdAoGAHN0YXRlcwEHAGFnZV9iaXQAAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:acacia_sapling", - "groupId": 32, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQ7BAAACAQAbmFtZRgAbWluZWNyYWZ0OmFjYWNpYV9zYXBsaW5nBAkAbmFtZV9oYXNo99sg15uoX7ADCgBuZXR3b3JrX2lkPXX1KgoGAHN0YXRlcwEHAGFnZV9iaXQAAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:dark_oak_sapling", - "groupId": 32, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQ8BAAACAQAbmFtZRoAbWluZWNyYWZ0OmRhcmtfb2FrX3NhcGxpbmcECQBuYW1lX2hhc2jnVzFplW7cHgMKAG5ldHdvcmtfaWTD4giHCgYAc3RhdGVzAQcAYWdlX2JpdAAAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:mangrove_propagule", - "groupId": 32, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTZAgAACAQAbmFtZRwAbWluZWNyYWZ0Om1hbmdyb3ZlX3Byb3BhZ3VsZQQJAG5hbWVfaGFzaJGeox6hkfLFAwoAbmV0d29ya19pZAIpvpYKBgBzdGF0ZXMBBwBoYW5naW5nAAMPAHByb3BhZ3VsZV9zdGFnZQAAAAAAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:cherry_sapling", - "groupId": 32, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQiAwAACAQAbmFtZRgAbWluZWNyYWZ0OmNoZXJyeV9zYXBsaW5nBAkAbmFtZV9oYXNoGrPpNMf1LtcDCgBuZXR3b3JrX2lkypakXQoGAHN0YXRlcwEHAGFnZV9iaXQAAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:pale_oak_sapling", - "groupId": 32, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTtBAAACAQAbmFtZRoAbWluZWNyYWZ0OnBhbGVfb2FrX3NhcGxpbmcECQBuYW1lX2hhc2gzvl+QbSfPHwMKAG5ldHdvcmtfaWSzav9sCgYAc3RhdGVzAQcAYWdlX2JpdAAAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:bee_nest", - "groupId": 33, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTZAQAACAQAbmFtZRIAbWluZWNyYWZ0OmJlZV9uZXN0BAkAbmFtZV9oYXNo2R2WBxUHEZIDCgBuZXR3b3JrX2lkiXWLEAoGAHN0YXRlcwMJAGRpcmVjdGlvbgAAAAADCwBob25leV9sZXZlbAAAAAAAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:wheat_seeds", - "groupId": 34 - }, - { - "id": "minecraft:pumpkin_seeds", - "groupId": 34 - }, - { - "id": "minecraft:melon_seeds", - "groupId": 34 - }, - { - "id": "minecraft:beetroot_seeds", - "groupId": 34 - }, - { - "id": "minecraft:torchflower_seeds", - "groupId": 34 - }, - { - "id": "minecraft:pitcher_pod", - "groupId": 34 - }, - { - "id": "minecraft:wheat", - "groupId": 35 - }, - { - "id": "minecraft:beetroot", - "groupId": 35 - }, - { - "id": "minecraft:potato", - "groupId": 35 - }, - { - "id": "minecraft:poisonous_potato", - "groupId": 35 - }, - { - "id": "minecraft:carrot", - "groupId": 35 - }, - { - "id": "minecraft:golden_carrot", - "groupId": 35 - }, - { - "id": "minecraft:apple", - "groupId": 35 - }, - { - "id": "minecraft:golden_apple", - "groupId": 35 - }, - { - "id": "minecraft:enchanted_golden_apple", - "groupId": 35 - }, - { - "id": "minecraft:melon_block", - "groupId": 35, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRnAAAACAQAbmFtZRUAbWluZWNyYWZ0Om1lbG9uX2Jsb2NrBAkAbmFtZV9oYXNoXxSm0iYpAx8DCgBuZXR3b3JrX2lkC9rqygoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:melon_slice", - "groupId": 35 - }, - { - "id": "minecraft:glistering_melon_slice", - "groupId": 35 - }, - { - "id": "minecraft:sweet_berries", - "groupId": 35 - }, - { - "id": "minecraft:glow_berries", - "groupId": 35 - }, - { - "id": "minecraft:pumpkin", - "groupId": 35, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRWAAAACAQAbmFtZREAbWluZWNyYWZ0OnB1bXBraW4ECQBuYW1lX2hhc2gc8A3jaSzWbgMKAG5ldHdvcmtfaWRFGA+xCgYAc3RhdGVzCBwAbWluZWNyYWZ0OmNhcmRpbmFsX2RpcmVjdGlvbgUAc291dGgAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:carved_pumpkin", - "groupId": 36, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSaAQAACAQAbmFtZRgAbWluZWNyYWZ0OmNhcnZlZF9wdW1wa2luBAkAbmFtZV9oYXNoPu1T0MJuG90DCgBuZXR3b3JrX2lkXNNn5QoGAHN0YXRlcwgcAG1pbmVjcmFmdDpjYXJkaW5hbF9kaXJlY3Rpb24FAHNvdXRoAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:lit_pumpkin", - "groupId": 36, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRbAAAACAQAbmFtZRUAbWluZWNyYWZ0OmxpdF9wdW1wa2luBAkAbmFtZV9oYXNo7gWtEm2uPL0DCgBuZXR3b3JrX2lki8sU4AoGAHN0YXRlcwgcAG1pbmVjcmFmdDpjYXJkaW5hbF9kaXJlY3Rpb24FAHNvdXRoAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:honeycomb", - "groupId": 36 - }, - { - "id": "minecraft:resin_clump", - "groupId": 36, - "block_state_b64": "CgAAAwgAYmxvY2tfaWT9BAAACAQAbmFtZRUAbWluZWNyYWZ0OnJlc2luX2NsdW1wBAkAbmFtZV9oYXNok5dcTB5ZyioDCgBuZXR3b3JrX2lkFbHrwwoGAHN0YXRlcwMZAG11bHRpX2ZhY2VfZGlyZWN0aW9uX2JpdHMAAAAAAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:fern", - "groupId": 37, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRPBAAACAQAbmFtZQ4AbWluZWNyYWZ0OmZlcm4ECQBuYW1lX2hhc2iHbj3yXFn4owMKAG5ldHdvcmtfaWQKC6u7CgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:large_fern", - "groupId": 37, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRgBAAACAQAbmFtZRQAbWluZWNyYWZ0OmxhcmdlX2Zlcm4ECQBuYW1lX2hhc2gnE9sd0LzHtQMKAG5ldHdvcmtfaWTS9hG4CgYAc3RhdGVzAQ8AdXBwZXJfYmxvY2tfYml0AAADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:short_grass", - "groupId": 37, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQfAAAACAQAbmFtZRUAbWluZWNyYWZ0OnNob3J0X2dyYXNzBAkAbmFtZV9oYXNobWQghLH0bLcDCgBuZXR3b3JrX2lkJWOOqAoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:tall_grass", - "groupId": 37, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRfBAAACAQAbmFtZRQAbWluZWNyYWZ0OnRhbGxfZ3Jhc3MECQBuYW1lX2hhc2ii5MyZJpv4sgMKAG5ldHdvcmtfaWRRfeH4CgYAc3RhdGVzAQ8AdXBwZXJfYmxvY2tfYml0AAADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:short_dry_grass", - "groupId": 37, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQDBQAACAQAbmFtZRkAbWluZWNyYWZ0OnNob3J0X2RyeV9ncmFzcwQJAG5hbWVfaGFzaLspJ2i3BIGkAwoAbmV0d29ya19pZKdsCUgKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:tall_dry_grass", - "groupId": 37, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQEBQAACAQAbmFtZRgAbWluZWNyYWZ0OnRhbGxfZHJ5X2dyYXNzBAkAbmFtZV9oYXNoBNweZbdOLIMDCgBuZXR3b3JrX2lkI32+NwoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:bush", - "groupId": 37, - "block_state_b64": "CgAAAwgAYmxvY2tfaWT+BAAACAQAbmFtZQ4AbWluZWNyYWZ0OmJ1c2gECQBuYW1lX2hhc2hS6PcDXRRjxAMKAG5ldHdvcmtfaWSrbYGwCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:nether_sprouts", - "groupId": 37 - }, - { - "id": "minecraft:fire_coral", - "groupId": 38, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRGAwAACAQAbmFtZRQAbWluZWNyYWZ0OmZpcmVfY29yYWwECQBuYW1lX2hhc2hOHyyECVQVJwMKAG5ldHdvcmtfaWS9vF0UCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:brain_coral", - "groupId": 38, - "block_state_b64": "CgAAAwgAYmxvY2tfaWREAwAACAQAbmFtZRUAbWluZWNyYWZ0OmJyYWluX2NvcmFsBAkAbmFtZV9oYXNoRiWlLCwA2ycDCgBuZXR3b3JrX2lkrjAuhgoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:bubble_coral", - "groupId": 38, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRFAwAACAQAbmFtZRYAbWluZWNyYWZ0OmJ1YmJsZV9jb3JhbAQJAG5hbWVfaGFzaJz6rWnl+v2qAwoAbmV0d29ya19pZImIWy0KBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:tube_coral", - "groupId": 38, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSCAQAACAQAbmFtZRQAbWluZWNyYWZ0OnR1YmVfY29yYWwECQBuYW1lX2hhc2iYa8oO/tgk7wMKAG5ldHdvcmtfaWRTfND5CgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:horn_coral", - "groupId": 38, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRHAwAACAQAbmFtZRQAbWluZWNyYWZ0Omhvcm5fY29yYWwECQBuYW1lX2hhc2iZnRHjZbnLPgMKAG5ldHdvcmtfaWR+GGp8CgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:dead_fire_coral", - "groupId": 38, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRLAwAACAQAbmFtZRkAbWluZWNyYWZ0OmRlYWRfZmlyZV9jb3JhbAQJAG5hbWVfaGFzaEPU6tFy/latAwoAbmV0d29ya19pZNMa7V4KBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:dead_brain_coral", - "groupId": 38, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRJAwAACAQAbmFtZRoAbWluZWNyYWZ0OmRlYWRfYnJhaW5fY29yYWwECQBuYW1lX2hhc2j5L6QJCISvzwMKAG5ldHdvcmtfaWQkKzeiCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:dead_bubble_coral", - "groupId": 38, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRKAwAACAQAbmFtZRsAbWluZWNyYWZ0OmRlYWRfYnViYmxlX2NvcmFsBAkAbmFtZV9oYXNoSTOZ/8wpeNYDCgBuZXR3b3JrX2lka6w9DAoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:dead_tube_coral", - "groupId": 38, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRIAwAACAQAbmFtZRkAbWluZWNyYWZ0OmRlYWRfdHViZV9jb3JhbAQJAG5hbWVfaGFzaJGjNWhlaIJeAwoAbmV0d29ya19pZO3Z0ygKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:dead_horn_coral", - "groupId": 38, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRMAwAACAQAbmFtZRkAbWluZWNyYWZ0OmRlYWRfaG9ybl9jb3JhbAQJAG5hbWVfaGFzaJBkz3qt+g2cAwoAbmV0d29ya19pZBAN+eYKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:fire_coral_fan", - "groupId": 38, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRJBAAACAQAbmFtZRgAbWluZWNyYWZ0OmZpcmVfY29yYWxfZmFuBAkAbmFtZV9oYXNosOTxYYxsDLgDCgBuZXR3b3JrX2lkFKxbEgoGAHN0YXRlcwMTAGNvcmFsX2Zhbl9kaXJlY3Rpb24AAAAAAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:brain_coral_fan", - "groupId": 38, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRHBAAACAQAbmFtZRkAbWluZWNyYWZ0OmJyYWluX2NvcmFsX2ZhbgQJAG5hbWVfaGFzaAi5uHizSNcqAwoAbmV0d29ya19pZFtLjNwKBgBzdGF0ZXMDEwBjb3JhbF9mYW5fZGlyZWN0aW9uAAAAAAADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:bubble_coral_fan", - "groupId": 38, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRIBAAACAQAbmFtZRoAbWluZWNyYWZ0OmJ1YmJsZV9jb3JhbF9mYW4ECQBuYW1lX2hhc2hy/rX2on17DgMKAG5ldHdvcmtfaWQof60VCgYAc3RhdGVzAxMAY29yYWxfZmFuX2RpcmVjdGlvbgAAAAAAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:tube_coral_fan", - "groupId": 38, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSEAQAACAQAbmFtZRgAbWluZWNyYWZ0OnR1YmVfY29yYWxfZmFuBAkAbmFtZV9oYXNo9pbJbo+PphIDCgBuZXR3b3JrX2lkenDTYgoGAHN0YXRlcwMTAGNvcmFsX2Zhbl9kaXJlY3Rpb24AAAAAAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:horn_coral_fan", - "groupId": 38, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRKBAAACAQAbmFtZRgAbWluZWNyYWZ0Omhvcm5fY29yYWxfZmFuBAkAbmFtZV9oYXNoA+ri6NPDkbUDCgBuZXR3b3JrX2lkezoHNwoGAHN0YXRlcwMTAGNvcmFsX2Zhbl9kaXJlY3Rpb24AAAAAAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:dead_fire_coral_fan", - "groupId": 38, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRNBAAACAQAbmFtZR0AbWluZWNyYWZ0OmRlYWRfZmlyZV9jb3JhbF9mYW4ECQBuYW1lX2hhc2hpQO02NDxPvwMKAG5ldHdvcmtfaWTaOJgLCgYAc3RhdGVzAxMAY29yYWxfZmFuX2RpcmVjdGlvbgAAAAAAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:dead_brain_coral_fan", - "groupId": 38, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRLBAAACAQAbmFtZR4AbWluZWNyYWZ0OmRlYWRfYnJhaW5fY29yYWxfZmFuBAkAbmFtZV9oYXNoI9/+Z4YqMhIDCgBuZXR3b3JrX2lkqYXxYgoGAHN0YXRlcwMTAGNvcmFsX2Zhbl9kaXJlY3Rpb24AAAAAAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:dead_bubble_coral_fan", - "groupId": 38, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRMBAAACAQAbmFtZR8AbWluZWNyYWZ0OmRlYWRfYnViYmxlX2NvcmFsX2ZhbgQJAG5hbWVfaGFzaBNECtIM6VIOAwoAbmV0d29ya19pZLrNtBEKBgBzdGF0ZXMDEwBjb3JhbF9mYW5fZGlyZWN0aW9uAAAAAAADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:dead_tube_coral_fan", - "groupId": 38, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSFAQAACAQAbmFtZR0AbWluZWNyYWZ0OmRlYWRfdHViZV9jb3JhbF9mYW4ECQBuYW1lX2hhc2hbBBM9jFKWvQMKAG5ldHdvcmtfaWSkJKUWCgYAc3RhdGVzAxMAY29yYWxfZmFuX2RpcmVjdGlvbgAAAAAAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:dead_horn_coral_fan", - "groupId": 38, - "block_state_b64": "CgAAAwgAYmxvY2tfaWROBAAACAQAbmFtZR0AbWluZWNyYWZ0OmRlYWRfaG9ybl9jb3JhbF9mYW4ECQBuYW1lX2hhc2hObElFrHfPygMKAG5ldHdvcmtfaWQ1ZxvmCgYAc3RhdGVzAxMAY29yYWxfZmFuX2RpcmVjdGlvbgAAAAAAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:crimson_roots", - "groupId": 39, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTeAQAACAQAbmFtZRcAbWluZWNyYWZ0OmNyaW1zb25fcm9vdHMECQBuYW1lX2hhc2j1fWgQLViv5QMKAG5ldHdvcmtfaWRLh5DXCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:warped_roots", - "groupId": 39, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTfAQAACAQAbmFtZRYAbWluZWNyYWZ0OndhcnBlZF9yb290cwQJAG5hbWVfaGFzaBc3WvbJOLlkAwoAbmV0d29ya19pZNLgDnAKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:dandelion", - "groupId": 39, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQlAAAACAQAbmFtZRMAbWluZWNyYWZ0OmRhbmRlbGlvbgQJAG5hbWVfaGFzaBJ3bEUi+Nn/AwoAbmV0d29ya19pZBjjC44KBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:poppy", - "groupId": 39, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQmAAAACAQAbmFtZQ8AbWluZWNyYWZ0OnBvcHB5BAkAbmFtZV9oYXNocMF8pITMbkcDCgBuZXR3b3JrX2lk8im6ywoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:blue_orchid", - "groupId": 39, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQ9BAAACAQAbmFtZRUAbWluZWNyYWZ0OmJsdWVfb3JjaGlkBAkAbmFtZV9oYXNoBjz2MsgB21EDCgBuZXR3b3JrX2lk/iLsSwoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:allium", - "groupId": 39, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQ+BAAACAQAbmFtZRAAbWluZWNyYWZ0OmFsbGl1bQQJAG5hbWVfaGFzaDCGQBHNDTkcAwoAbmV0d29ya19pZD9Dgr0KBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:azure_bluet", - "groupId": 39, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQ/BAAACAQAbmFtZRUAbWluZWNyYWZ0OmF6dXJlX2JsdWV0BAkAbmFtZV9oYXNo9N5egqMT2QcDCgBuZXR3b3JrX2lkwIgDnwoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:red_tulip", - "groupId": 39, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRABAAACAQAbmFtZRMAbWluZWNyYWZ0OnJlZF90dWxpcAQJAG5hbWVfaGFzaAjMi9Rd+6rhAwoAbmV0d29ya19pZAZCnt8KBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:orange_tulip", - "groupId": 39, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRBBAAACAQAbmFtZRYAbWluZWNyYWZ0Om9yYW5nZV90dWxpcAQJAG5hbWVfaGFzaP+NjxMBZ8vAAwoAbmV0d29ya19pZPYatsMKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:white_tulip", - "groupId": 39, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRCBAAACAQAbmFtZRUAbWluZWNyYWZ0OndoaXRlX3R1bGlwBAkAbmFtZV9oYXNo5vbU4VRPh3ADCgBuZXR3b3JrX2lkok+4rQoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:pink_tulip", - "groupId": 39, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRDBAAACAQAbmFtZRQAbWluZWNyYWZ0OnBpbmtfdHVsaXAECQBuYW1lX2hhc2hxDHZa6OaNXAMKAG5ldHdvcmtfaWTiOT+VCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:oxeye_daisy", - "groupId": 39, - "block_state_b64": "CgAAAwgAYmxvY2tfaWREBAAACAQAbmFtZRUAbWluZWNyYWZ0Om94ZXllX2RhaXN5BAkAbmFtZV9oYXNoXwxsqNQTN9gDCgBuZXR3b3JrX2lkw7R7dwoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:cornflower", - "groupId": 39, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRFBAAACAQAbmFtZRQAbWluZWNyYWZ0OmNvcm5mbG93ZXIECQBuYW1lX2hhc2gnhyC3EeqHgAMKAG5ldHdvcmtfaWR4VrvACgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:lily_of_the_valley", - "groupId": 39, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRGBAAACAQAbmFtZRwAbWluZWNyYWZ0OmxpbHlfb2ZfdGhlX3ZhbGxleQQJAG5hbWVfaGFzaI64TJSf9mgQAwoAbmV0d29ya19pZFE9+nwKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:sunflower", - "groupId": 39, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSvAAAACAQAbmFtZRMAbWluZWNyYWZ0OnN1bmZsb3dlcgQJAG5hbWVfaGFzaAMxYQLoqlZ0AwoAbmV0d29ya19pZA10iSoKBgBzdGF0ZXMBDwB1cHBlcl9ibG9ja19iaXQAAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:lilac", - "groupId": 39, - "block_state_b64": "CgAAAwgAYmxvY2tfaWReBAAACAQAbmFtZQ8AbWluZWNyYWZ0OmxpbGFjBAkAbmFtZV9oYXNoD3nrQJuo7NkDCgBuZXR3b3JrX2lk5W+uFAoGAHN0YXRlcwEPAHVwcGVyX2Jsb2NrX2JpdAAAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:rose_bush", - "groupId": 39, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRhBAAACAQAbmFtZRMAbWluZWNyYWZ0OnJvc2VfYnVzaAQJAG5hbWVfaGFzaLoiFk8LVpGKAwoAbmV0d29ya19pZMZPv48KBgBzdGF0ZXMBDwB1cHBlcl9ibG9ja19iaXQAAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:peony", - "groupId": 39, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRiBAAACAQAbmFtZQ8AbWluZWNyYWZ0OnBlb255BAkAbmFtZV9oYXNoR4dYc4QquPADCgBuZXR3b3JrX2lkrTe7RwoGAHN0YXRlcwEPAHVwcGVyX2Jsb2NrX2JpdAAAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:pitcher_plant", - "groupId": 39, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRjAwAACAQAbmFtZRcAbWluZWNyYWZ0OnBpdGNoZXJfcGxhbnQECQBuYW1lX2hhc2hRJHzsbDH+SQMKAG5ldHdvcmtfaWRnY76VCgYAc3RhdGVzAQ8AdXBwZXJfYmxvY2tfYml0AAADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:pink_petals", - "groupId": 39, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQkAwAACAQAbmFtZRUAbWluZWNyYWZ0OnBpbmtfcGV0YWxzBAkAbmFtZV9oYXNo6DQwN9SwV3QDCgBuZXR3b3JrX2lkNWneGgoGAHN0YXRlcwMGAGdyb3d0aAAAAAAIHABtaW5lY3JhZnQ6Y2FyZGluYWxfZGlyZWN0aW9uBQBzb3V0aAADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:wildflowers", - "groupId": 39, - "block_state_b64": "CgAAAwgAYmxvY2tfaWT/BAAACAQAbmFtZRUAbWluZWNyYWZ0OndpbGRmbG93ZXJzBAkAbmFtZV9oYXNolGHs6KLn0OkDCgBuZXR3b3JrX2lkQfSy6AoGAHN0YXRlcwMGAGdyb3d0aAAAAAAIHABtaW5lY3JhZnQ6Y2FyZGluYWxfZGlyZWN0aW9uBQBzb3V0aAADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:wither_rose", - "groupId": 39, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTXAQAACAQAbmFtZRUAbWluZWNyYWZ0OndpdGhlcl9yb3NlBAkAbmFtZV9oYXNoaSKxl3I516gDCgBuZXR3b3JrX2lkATXLPwoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:torchflower", - "groupId": 39, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQ3AwAACAQAbmFtZRUAbWluZWNyYWZ0OnRvcmNoZmxvd2VyBAkAbmFtZV9oYXNoL+mHtElwbqQDCgBuZXR3b3JrX2lkI34O+AoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:cactus_flower", - "groupId": 39, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQFBQAACAQAbmFtZRcAbWluZWNyYWZ0OmNhY3R1c19mbG93ZXIECQBuYW1lX2hhc2jJjvXLUmwSEQMKAG5ldHdvcmtfaWRPT2hwCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:closed_eyeblossom", - "groupId": 39, - "block_state_b64": "CgAAAwgAYmxvY2tfaWT6BAAACAQAbmFtZRsAbWluZWNyYWZ0OmNsb3NlZF9leWVibG9zc29tBAkAbmFtZV9oYXNoYbeklHBkRL8DCgBuZXR3b3JrX2lku6xJeAoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:open_eyeblossom", - "groupId": 39, - "block_state_b64": "CgAAAwgAYmxvY2tfaWT5BAAACAQAbmFtZRkAbWluZWNyYWZ0Om9wZW5fZXllYmxvc3NvbQQJAG5hbWVfaGFzaHH2HXQ24l8fAwoAbmV0d29ya19pZP1bL4YKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:white_dye", - "groupId": 40 - }, - { - "id": "minecraft:light_gray_dye", - "groupId": 40 - }, - { - "id": "minecraft:gray_dye", - "groupId": 40 - }, - { - "id": "minecraft:black_dye", - "groupId": 40 - }, - { - "id": "minecraft:brown_dye", - "groupId": 40 - }, - { - "id": "minecraft:red_dye", - "groupId": 40 - }, - { - "id": "minecraft:orange_dye", - "groupId": 40 - }, - { - "id": "minecraft:yellow_dye", - "groupId": 40 - }, - { - "id": "minecraft:lime_dye", - "groupId": 40 - }, - { - "id": "minecraft:green_dye", - "groupId": 40 - }, - { - "id": "minecraft:cyan_dye", - "groupId": 40 - }, - { - "id": "minecraft:light_blue_dye", - "groupId": 40 - }, - { - "id": "minecraft:blue_dye", - "groupId": 40 - }, - { - "id": "minecraft:purple_dye", - "groupId": 40 - }, - { - "id": "minecraft:magenta_dye", - "groupId": 40 - }, - { - "id": "minecraft:pink_dye", - "groupId": 40 - }, - { - "id": "minecraft:ink_sac", - "groupId": 41 - }, - { - "id": "minecraft:glow_ink_sac", - "groupId": 41 - }, - { - "id": "minecraft:cocoa_beans", - "groupId": 41 - }, - { - "id": "minecraft:lapis_lazuli", - "groupId": 41 - }, - { - "id": "minecraft:bone_meal", - "groupId": 41 - }, - { - "id": "minecraft:vine", - "groupId": 41, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRqAAAACAQAbmFtZQ4AbWluZWNyYWZ0OnZpbmUECQBuYW1lX2hhc2j0Sj8/XeXOLAMKAG5ldHdvcmtfaWSUkDtbCgYAc3RhdGVzAxMAdmluZV9kaXJlY3Rpb25fYml0cwAAAAAAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:weeping_vines", - "groupId": 41, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTmAQAACAQAbmFtZRcAbWluZWNyYWZ0OndlZXBpbmdfdmluZXMECQBuYW1lX2hhc2jrLgLHkQygiwMKAG5ldHdvcmtfaWQ8NHSJCgYAc3RhdGVzAxEAd2VlcGluZ192aW5lc19hZ2UAAAAAAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:twisting_vines", - "groupId": 41, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQeAgAACAQAbmFtZRgAbWluZWNyYWZ0OnR3aXN0aW5nX3ZpbmVzBAkAbmFtZV9oYXNoDYR5QgVUQJADCgBuZXR3b3JrX2lk5kYVIQoGAHN0YXRlcwMSAHR3aXN0aW5nX3ZpbmVzX2FnZQAAAAAAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:waterlily", - "groupId": 41, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRvAAAACAQAbmFtZRMAbWluZWNyYWZ0OndhdGVybGlseQQJAG5hbWVfaGFzaEHgC4c1SXg0AwoAbmV0d29ya19pZOOerp8KBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:seagrass", - "groupId": 41, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSBAQAACAQAbmFtZRIAbWluZWNyYWZ0OnNlYWdyYXNzBAkAbmFtZV9oYXNoHSBFtoHdWxIDCgBuZXR3b3JrX2lkd3lhEAoGAHN0YXRlcwgOAHNlYV9ncmFzc190eXBlBwBkZWZhdWx0AAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:kelp", - "groupId": 41 - }, - { - "id": "minecraft:deadbush", - "groupId": 41, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQgAAAACAQAbmFtZRIAbWluZWNyYWZ0OmRlYWRidXNoBAkAbmFtZV9oYXNoPFODe4IScnYDCgBuZXR3b3JrX2lkVfnl+goGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:bamboo", - "groupId": 41, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSiAQAACAQAbmFtZRAAbWluZWNyYWZ0OmJhbWJvbwQJAG5hbWVfaGFzaBgpGmyzhedCAwoAbmV0d29ya19pZIZv1nYKBgBzdGF0ZXMBBwBhZ2VfYml0AAgQAGJhbWJvb19sZWFmX3NpemUJAG5vX2xlYXZlcwgWAGJhbWJvb19zdGFsa190aGlja25lc3MEAHRoaW4AAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:snow", - "groupId": 41, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRQAAAACAQAbmFtZQ4AbWluZWNyYWZ0OnNub3cECQBuYW1lX2hhc2gVHr5XXdETWAMKAG5ldHdvcmtfaWQ0zCeHCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:ice", - "groupId": 41, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRPAAAACAQAbmFtZQ0AbWluZWNyYWZ0OmljZQQJAG5hbWVfaGFzaNF26f+uUT29AwoAbmV0d29ya19pZOUMaQYKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:packed_ice", - "groupId": 41, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSuAAAACAQAbmFtZRQAbWluZWNyYWZ0OnBhY2tlZF9pY2UECQBuYW1lX2hhc2hk4bu123ZrFgMKAG5ldHdvcmtfaWTr/ooaCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:blue_ice", - "groupId": 41, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQKAQAACAQAbmFtZRIAbWluZWNyYWZ0OmJsdWVfaWNlBAkAbmFtZV9oYXNo+EKxYgFhKcgDCgBuZXR3b3JrX2lkxfsA8goGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:snow_layer", - "groupId": 41, - "block_state_b64": "CgAAAwgAYmxvY2tfaWROAAAACAQAbmFtZRQAbWluZWNyYWZ0OnNub3dfbGF5ZXIECQBuYW1lX2hhc2hXka6atMYUCQMKAG5ldHdvcmtfaWRCrIPcCgYAc3RhdGVzAQsAY292ZXJlZF9iaXQAAwYAaGVpZ2h0AAAAAAADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:pointed_dripstone", - "groupId": 41, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQzAgAACAQAbmFtZRsAbWluZWNyYWZ0OnBvaW50ZWRfZHJpcHN0b25lBAkAbmFtZV9oYXNoJMISzmHQgt8DCgBuZXR3b3JrX2lkbWrtYgoGAHN0YXRlcwgTAGRyaXBzdG9uZV90aGlja25lc3MDAHRpcAEHAGhhbmdpbmcBAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:dripstone_block", - "groupId": 41, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQ8AgAACAQAbmFtZRkAbWluZWNyYWZ0OmRyaXBzdG9uZV9ibG9jawQJAG5hbWVfaGFzaIIXnEqY77YsAwoAbmV0d29ya19pZMZi2kwKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:leaf_litter", - "groupId": 41, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQBBQAACAQAbmFtZRUAbWluZWNyYWZ0OmxlYWZfbGl0dGVyBAkAbmFtZV9oYXNor9NVW4N5RQEDCgBuZXR3b3JrX2lk/F9LgwoGAHN0YXRlcwMGAGdyb3d0aAAAAAAIHABtaW5lY3JhZnQ6Y2FyZGluYWxfZGlyZWN0aW9uBQBzb3V0aAADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:moss_carpet", - "groupId": 41, - "block_state_b64": "CgAAAwgAYmxvY2tfaWROAgAACAQAbmFtZRUAbWluZWNyYWZ0Om1vc3NfY2FycGV0BAkAbmFtZV9oYXNo/NEDxRPTshYDCgBuZXR3b3JrX2lkaGG3QwoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:moss_block", - "groupId": 41, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQ/AgAACAQAbmFtZRQAbWluZWNyYWZ0Om1vc3NfYmxvY2sECQBuYW1lX2hhc2iovcsPUYX2tgMKAG5ldHdvcmtfaWT3JSbfCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:pale_moss_carpet", - "groupId": 41, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTxBAAACAQAbmFtZRoAbWluZWNyYWZ0OnBhbGVfbW9zc19jYXJwZXQECQBuYW1lX2hhc2g5SFufsjDdpAMKAG5ldHdvcmtfaWSwu2O/CgYAc3RhdGVzCBoAcGFsZV9tb3NzX2NhcnBldF9zaWRlX2Vhc3QEAG5vbmUIGwBwYWxlX21vc3NfY2FycGV0X3NpZGVfbm9ydGgEAG5vbmUIGwBwYWxlX21vc3NfY2FycGV0X3NpZGVfc291dGgEAG5vbmUIGgBwYWxlX21vc3NfY2FycGV0X3NpZGVfd2VzdAQAbm9uZQEPAHVwcGVyX2Jsb2NrX2JpdAAAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:pale_moss_block", - "groupId": 41, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTwBAAACAQAbmFtZRkAbWluZWNyYWZ0OnBhbGVfbW9zc19ibG9jawQJAG5hbWVfaGFzaAv55craFDiRAwoAbmV0d29ya19pZNMKFzcKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:pale_hanging_moss", - "groupId": 41, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTyBAAACAQAbmFtZRsAbWluZWNyYWZ0OnBhbGVfaGFuZ2luZ19tb3NzBAkAbmFtZV9oYXNoNjhSFL+E2aQDCgBuZXR3b3JrX2lkC5iPTgoGAHN0YXRlcwEDAHRpcAAAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:hanging_roots", - "groupId": 41, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQ+AgAACAQAbmFtZRcAbWluZWNyYWZ0Omhhbmdpbmdfcm9vdHMECQBuYW1lX2hhc2jaXn+Y5UZpDAMKAG5ldHdvcmtfaWRU4c2vCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:mangrove_roots", - "groupId": 41, - "block_state_b64": "CgAAAwgAYmxvY2tfaWThAgAACAQAbmFtZRgAbWluZWNyYWZ0Om1hbmdyb3ZlX3Jvb3RzBAkAbmFtZV9oYXNoa786PzQGZ6kDCgBuZXR3b3JrX2lklA0AHgoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:muddy_mangrove_roots", - "groupId": 41, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTiAgAACAQAbmFtZR4AbWluZWNyYWZ0Om11ZGR5X21hbmdyb3ZlX3Jvb3RzBAkAbmFtZV9oYXNo9YApdHpo1RkDCgBuZXR3b3JrX2lkH0Oc4woGAHN0YXRlcwgLAHBpbGxhcl9heGlzAQB5AAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:big_dripleaf", - "groupId": 41, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRCAgAACAQAbmFtZRYAbWluZWNyYWZ0OmJpZ19kcmlwbGVhZgQJAG5hbWVfaGFzaGBEhXjo6qSdAwoAbmV0d29ya19pZMETsb8KBgBzdGF0ZXMBEQBiaWdfZHJpcGxlYWZfaGVhZAEIEQBiaWdfZHJpcGxlYWZfdGlsdAQAbm9uZQgcAG1pbmVjcmFmdDpjYXJkaW5hbF9kaXJlY3Rpb24FAHNvdXRoAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:small_dripleaf_block", - "groupId": 41, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRPAgAACAQAbmFtZR4AbWluZWNyYWZ0OnNtYWxsX2RyaXBsZWFmX2Jsb2NrBAkAbmFtZV9oYXNojxRAgXP9uWADCgBuZXR3b3JrX2lkozbVPwoGAHN0YXRlcwgcAG1pbmVjcmFmdDpjYXJkaW5hbF9kaXJlY3Rpb24EAGVhc3QBDwB1cHBlcl9ibG9ja19iaXQBAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:spore_blossom", - "groupId": 41, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRAAgAACAQAbmFtZRcAbWluZWNyYWZ0OnNwb3JlX2Jsb3Nzb20ECQBuYW1lX2hhc2il3U72Gbco2gMKAG5ldHdvcmtfaWSbbbgcCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:firefly_bush", - "groupId": 41, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQABQAACAQAbmFtZRYAbWluZWNyYWZ0OmZpcmVmbHlfYnVzaAQJAG5hbWVfaGFzaOx1G1G0/5wVAwoAbmV0d29ya19pZEWIoxMKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:azalea", - "groupId": 41, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRQAgAACAQAbmFtZRAAbWluZWNyYWZ0OmF6YWxlYQQJAG5hbWVfaGFzaNyUl+BW9JrBAwoAbmV0d29ya19pZO/XZtQKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:flowering_azalea", - "groupId": 41, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRRAgAACAQAbmFtZRoAbWluZWNyYWZ0OmZsb3dlcmluZ19hemFsZWEECQBuYW1lX2hhc2ie9r33wz8kiwMKAG5ldHdvcmtfaWQ3ij0VCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:glow_lichen", - "groupId": 41, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSaAgAACAQAbmFtZRUAbWluZWNyYWZ0Omdsb3dfbGljaGVuBAkAbmFtZV9oYXNobyPUrIYlo44DCgBuZXR3b3JrX2lkvcbWHwoGAHN0YXRlcwMZAG11bHRpX2ZhY2VfZGlyZWN0aW9uX2JpdHMAAAAAAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:amethyst_block", - "groupId": 41, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRGAgAACAQAbmFtZRgAbWluZWNyYWZ0OmFtZXRoeXN0X2Jsb2NrBAkAbmFtZV9oYXNob+JK1iiAthcDCgBuZXR3b3JrX2lk8HtpzgoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:budding_amethyst", - "groupId": 41, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRHAgAACAQAbmFtZRoAbWluZWNyYWZ0OmJ1ZGRpbmdfYW1ldGh5c3QECQBuYW1lX2hhc2gJvAwfI14fxgMKAG5ldHdvcmtfaWTQYqfACgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:amethyst_cluster", - "groupId": 41, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRIAgAACAQAbmFtZRoAbWluZWNyYWZ0OmFtZXRoeXN0X2NsdXN0ZXIECQBuYW1lX2hhc2jK82S88Jgm8wMKAG5ldHdvcmtfaWSCPMPGCgYAc3RhdGVzCBQAbWluZWNyYWZ0OmJsb2NrX2ZhY2UCAHVwAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:large_amethyst_bud", - "groupId": 41, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRJAgAACAQAbmFtZRwAbWluZWNyYWZ0OmxhcmdlX2FtZXRoeXN0X2J1ZAQJAG5hbWVfaGFzaAHhdpWD+sd5AwoAbmV0d29ya19pZKkQxOcKBgBzdGF0ZXMIFABtaW5lY3JhZnQ6YmxvY2tfZmFjZQIAdXAAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:medium_amethyst_bud", - "groupId": 41, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRKAgAACAQAbmFtZR0AbWluZWNyYWZ0Om1lZGl1bV9hbWV0aHlzdF9idWQECQBuYW1lX2hhc2g5lBGtC0DzZQMKAG5ldHdvcmtfaWSYiP4gCgYAc3RhdGVzCBQAbWluZWNyYWZ0OmJsb2NrX2ZhY2UCAHVwAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:small_amethyst_bud", - "groupId": 41, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRLAgAACAQAbmFtZRwAbWluZWNyYWZ0OnNtYWxsX2FtZXRoeXN0X2J1ZAQJAG5hbWVfaGFzaEnb4+q9PO4YAwoAbmV0d29ya19pZGWzxrQKBgBzdGF0ZXMIFABtaW5lY3JhZnQ6YmxvY2tfZmFjZQIAdXAAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:calcite", - "groupId": 41, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRFAgAACAQAbmFtZREAbWluZWNyYWZ0OmNhbGNpdGUECQBuYW1lX2hhc2ixKLu8ZIdzDQMKAG5ldHdvcmtfaWQlSbJDCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:chicken", - "groupId": 42 - }, - { - "id": "minecraft:porkchop", - "groupId": 42 - }, - { - "id": "minecraft:beef", - "groupId": 42 - }, - { - "id": "minecraft:mutton", - "groupId": 42 - }, - { - "id": "minecraft:rabbit", - "groupId": 42 - }, - { - "id": "minecraft:cod", - "groupId": 42 - }, - { - "id": "minecraft:salmon", - "groupId": 42 - }, - { - "id": "minecraft:tropical_fish", - "groupId": 42 - }, - { - "id": "minecraft:pufferfish", - "groupId": 42 - }, - { - "id": "minecraft:brown_mushroom", - "groupId": 43, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQnAAAACAQAbmFtZRgAbWluZWNyYWZ0OmJyb3duX211c2hyb29tBAkAbmFtZV9oYXNonYw/FO78WDoDCgBuZXR3b3JrX2lkLh1OXAoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:red_mushroom", - "groupId": 43, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQoAAAACAQAbmFtZRYAbWluZWNyYWZ0OnJlZF9tdXNocm9vbQQJAG5hbWVfaGFzaPpzJua7669xAwoAbmV0d29ya19pZCvWPYkKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:crimson_fungus", - "groupId": 43, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTjAQAACAQAbmFtZRgAbWluZWNyYWZ0OmNyaW1zb25fZnVuZ3VzBAkAbmFtZV9oYXNolIcCUuFM2u0DCgBuZXR3b3JrX2lkD2NN0QoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:warped_fungus", - "groupId": 43, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTkAQAACAQAbmFtZRcAbWluZWNyYWZ0OndhcnBlZF9mdW5ndXMECQBuYW1lX2hhc2gq8bSnRVTAFgMKAG5ldHdvcmtfaWTkwS+rCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:brown_mushroom_block", - "groupId": 43, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRjAAAACAQAbmFtZR4AbWluZWNyYWZ0OmJyb3duX211c2hyb29tX2Jsb2NrBAkAbmFtZV9oYXNoIyjnbI6xy9sDCgBuZXR3b3JrX2lkdOMhDAoGAHN0YXRlcwMSAGh1Z2VfbXVzaHJvb21fYml0cw4AAAAAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:red_mushroom_block", - "groupId": 43, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRkAAAACAQAbmFtZRwAbWluZWNyYWZ0OnJlZF9tdXNocm9vbV9ibG9jawQJAG5hbWVfaGFzaJTTyJbth9M9AwoAbmV0d29ya19pZM+AyboKBgBzdGF0ZXMDEgBodWdlX211c2hyb29tX2JpdHMOAAAAAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:mushroom_stem", - "groupId": 43, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTvBAAACAQAbmFtZRcAbWluZWNyYWZ0Om11c2hyb29tX3N0ZW0ECQBuYW1lX2hhc2i2SozhK9NLpgMKAG5ldHdvcmtfaWTTVND+CgYAc3RhdGVzAxIAaHVnZV9tdXNocm9vbV9iaXRzDwAAAAADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:egg", - "groupId": 44 - }, - { - "id": "minecraft:brown_egg", - "groupId": 44 - }, - { - "id": "minecraft:blue_egg", - "groupId": 44 - }, - { - "id": "minecraft:sugar_cane", - "groupId": 44 - }, - { - "id": "minecraft:sugar", - "groupId": 44 - }, - { - "id": "minecraft:rotten_flesh", - "groupId": 44 - }, - { - "id": "minecraft:bone", - "groupId": 44 - }, - { - "id": "minecraft:web", - "groupId": 44, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQeAAAACAQAbmFtZQ0AbWluZWNyYWZ0OndlYgQJAG5hbWVfaGFzaA4GKQCvG4i9AwoAbmV0d29ya19pZApt+jgKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:spider_eye", - "groupId": 44 - }, - { - "id": "minecraft:mob_spawner", - "groupId": 44, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQ0AAAACAQAbmFtZRUAbWluZWNyYWZ0Om1vYl9zcGF3bmVyBAkAbmFtZV9oYXNoNwGrCV/Fkh8DCgBuZXR3b3JrX2lkM1wTmgoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:trial_spawner", - "groupId": 44, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQ6AgAACAQAbmFtZRcAbWluZWNyYWZ0OnRyaWFsX3NwYXduZXIECQBuYW1lX2hhc2iNLRPB4ACz+QMKAG5ldHdvcmtfaWTWFYHGCgYAc3RhdGVzAQcAb21pbm91cwADEwB0cmlhbF9zcGF3bmVyX3N0YXRlAAAAAAADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:vault", - "groupId": 44, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQ5AgAACAQAbmFtZQ8AbWluZWNyYWZ0OnZhdWx0BAkAbmFtZV9oYXNoCAp9n3IAyqcDCgBuZXR3b3JrX2lk6/P+vwoGAHN0YXRlcwgcAG1pbmVjcmFmdDpjYXJkaW5hbF9kaXJlY3Rpb24FAHNvdXRoAQcAb21pbm91cwAICwB2YXVsdF9zdGF0ZQgAaW5hY3RpdmUAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:creaking_heart", - "groupId": 44, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTzBAAACAQAbmFtZRgAbWluZWNyYWZ0OmNyZWFraW5nX2hlYXJ0BAkAbmFtZV9oYXNoQcOV0pmSMeADCgBuZXR3b3JrX2lk0dPBzwoGAHN0YXRlcwgUAGNyZWFraW5nX2hlYXJ0X3N0YXRlCAB1cHJvb3RlZAEHAG5hdHVyYWwACAsAcGlsbGFyX2F4aXMBAHkAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:end_portal_frame", - "groupId": 44, - "block_state_b64": "CgAAAwgAYmxvY2tfaWR4AAAACAQAbmFtZRoAbWluZWNyYWZ0OmVuZF9wb3J0YWxfZnJhbWUECQBuYW1lX2hhc2gqofyUIjGOpQMKAG5ldHdvcmtfaWRbGHf8CgYAc3RhdGVzARIAZW5kX3BvcnRhbF9leWVfYml0AAgcAG1pbmVjcmFmdDpjYXJkaW5hbF9kaXJlY3Rpb24FAHNvdXRoAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:infested_stone", - "groupId": 45, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRhAAAACAQAbmFtZRgAbWluZWNyYWZ0OmluZmVzdGVkX3N0b25lBAkAbmFtZV9oYXNoxnRcHDu4zqQDCgBuZXR3b3JrX2lkpfcnsgoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:infested_cobblestone", - "groupId": 45, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRZBAAACAQAbmFtZR4AbWluZWNyYWZ0OmluZmVzdGVkX2NvYmJsZXN0b25lBAkAbmFtZV9oYXNoy+LVCKG2kVMDCgBuZXR3b3JrX2lkpn+icAoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:infested_stone_bricks", - "groupId": 45, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRaBAAACAQAbmFtZR8AbWluZWNyYWZ0OmluZmVzdGVkX3N0b25lX2JyaWNrcwQJAG5hbWVfaGFzaBMnals7a32CAwoAbmV0d29ya19pZNHi2UYKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:infested_mossy_stone_bricks", - "groupId": 45, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRbBAAACAQAbmFtZSUAbWluZWNyYWZ0OmluZmVzdGVkX21vc3N5X3N0b25lX2JyaWNrcwQJAG5hbWVfaGFzaAmJk+HmVq0rAwoAbmV0d29ya19pZAVH8/sKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:infested_cracked_stone_bricks", - "groupId": 45, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRcBAAACAQAbmFtZScAbWluZWNyYWZ0OmluZmVzdGVkX2NyYWNrZWRfc3RvbmVfYnJpY2tzBAkAbmFtZV9oYXNoMyc60XcfcyoDCgBuZXR3b3JrX2lkaW+kbQoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:infested_chiseled_stone_bricks", - "groupId": 45, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRdBAAACAQAbmFtZSgAbWluZWNyYWZ0OmluZmVzdGVkX2NoaXNlbGVkX3N0b25lX2JyaWNrcwQJAG5hbWVfaGFzaNUvNIIg9dZbAwoAbmV0d29ya19pZCajGicKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:infested_deepslate", - "groupId": 45, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTFAgAACAQAbmFtZRwAbWluZWNyYWZ0OmluZmVzdGVkX2RlZXBzbGF0ZQQJAG5hbWVfaGFzaICF2VYccxF1AwoAbmV0d29ya19pZDa/624KBgBzdGF0ZXMICwBwaWxsYXJfYXhpcwEAeQADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:dragon_egg", - "groupId": 46, - "block_state_b64": "CgAAAwgAYmxvY2tfaWR6AAAACAQAbmFtZRQAbWluZWNyYWZ0OmRyYWdvbl9lZ2cECQBuYW1lX2hhc2inMzXrV+/e1wMKAG5ldHdvcmtfaWTgO1yRCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:turtle_egg", - "groupId": 46, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSeAQAACAQAbmFtZRQAbWluZWNyYWZ0OnR1cnRsZV9lZ2cECQBuYW1lX2hhc2iwSRcxOJIJ9gMKAG5ldHdvcmtfaWSIRNUhCgYAc3RhdGVzCA0AY3JhY2tlZF9zdGF0ZQkAbm9fY3JhY2tzCBAAdHVydGxlX2VnZ19jb3VudAcAb25lX2VnZwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:sniffer_egg", - "groupId": 46, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRTAwAACAQAbmFtZRUAbWluZWNyYWZ0OnNuaWZmZXJfZWdnBAkAbmFtZV9oYXNoY1lozc8lPcYDCgBuZXR3b3JrX2lk7yb/2QoGAHN0YXRlcwgNAGNyYWNrZWRfc3RhdGUJAG5vX2NyYWNrcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:frog_spawn", - "groupId": 46, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTTAgAACAQAbmFtZRQAbWluZWNyYWZ0OmZyb2dfc3Bhd24ECQBuYW1lX2hhc2iWmd7idp3ZZwMKAG5ldHdvcmtfaWRFzJudCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:pearlescent_froglight", - "groupId": 46, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTUAgAACAQAbmFtZR8AbWluZWNyYWZ0OnBlYXJsZXNjZW50X2Zyb2dsaWdodAQJAG5hbWVfaGFzaKkcFRyycYGyAwoAbmV0d29ya19pZJqYakAKBgBzdGF0ZXMICwBwaWxsYXJfYXhpcwEAeQADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:verdant_froglight", - "groupId": 46, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTVAgAACAQAbmFtZRsAbWluZWNyYWZ0OnZlcmRhbnRfZnJvZ2xpZ2h0BAkAbmFtZV9oYXNoA+eXuTBohrQDCgBuZXR3b3JrX2lkDIVnsQoGAHN0YXRlcwgLAHBpbGxhcl9heGlzAQB5AAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:ochre_froglight", - "groupId": 46, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTWAgAACAQAbmFtZRkAbWluZWNyYWZ0Om9jaHJlX2Zyb2dsaWdodAQJAG5hbWVfaGFzaMY59kjPe+c3AwoAbmV0d29ya19pZO2TD50KBgBzdGF0ZXMICwBwaWxsYXJfYXhpcwEAeQADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:chicken_spawn_egg", - "groupId": 47 - }, - { - "id": "minecraft:bee_spawn_egg", - "groupId": 47 - }, - { - "id": "minecraft:cow_spawn_egg", - "groupId": 47 - }, - { - "id": "minecraft:pig_spawn_egg", - "groupId": 47 - }, - { - "id": "minecraft:sheep_spawn_egg", - "groupId": 47 - }, - { - "id": "minecraft:wolf_spawn_egg", - "groupId": 47 - }, - { - "id": "minecraft:polar_bear_spawn_egg", - "groupId": 47 - }, - { - "id": "minecraft:ocelot_spawn_egg", - "groupId": 47 - }, - { - "id": "minecraft:cat_spawn_egg", - "groupId": 47 - }, - { - "id": "minecraft:mooshroom_spawn_egg", - "groupId": 47 - }, - { - "id": "minecraft:bat_spawn_egg", - "groupId": 47 - }, - { - "id": "minecraft:parrot_spawn_egg", - "groupId": 47 - }, - { - "id": "minecraft:rabbit_spawn_egg", - "groupId": 47 - }, - { - "id": "minecraft:llama_spawn_egg", - "groupId": 47 - }, - { - "id": "minecraft:horse_spawn_egg", - "groupId": 47 - }, - { - "id": "minecraft:donkey_spawn_egg", - "groupId": 47 - }, - { - "id": "minecraft:mule_spawn_egg", - "groupId": 47 - }, - { - "id": "minecraft:skeleton_horse_spawn_egg", - "groupId": 47 - }, - { - "id": "minecraft:zombie_horse_spawn_egg", - "groupId": 47 - }, - { - "id": "minecraft:tropical_fish_spawn_egg", - "groupId": 47 - }, - { - "id": "minecraft:cod_spawn_egg", - "groupId": 47 - }, - { - "id": "minecraft:pufferfish_spawn_egg", - "groupId": 47 - }, - { - "id": "minecraft:salmon_spawn_egg", - "groupId": 47 - }, - { - "id": "minecraft:dolphin_spawn_egg", - "groupId": 47 - }, - { - "id": "minecraft:turtle_spawn_egg", - "groupId": 47 - }, - { - "id": "minecraft:panda_spawn_egg", - "groupId": 47 - }, - { - "id": "minecraft:fox_spawn_egg", - "groupId": 47 - }, - { - "id": "minecraft:creeper_spawn_egg", - "groupId": 47 - }, - { - "id": "minecraft:enderman_spawn_egg", - "groupId": 47 - }, - { - "id": "minecraft:silverfish_spawn_egg", - "groupId": 47 - }, - { - "id": "minecraft:skeleton_spawn_egg", - "groupId": 47 - }, - { - "id": "minecraft:wither_skeleton_spawn_egg", - "groupId": 47 - }, - { - "id": "minecraft:stray_spawn_egg", - "groupId": 47 - }, - { - "id": "minecraft:slime_spawn_egg", - "groupId": 47 - }, - { - "id": "minecraft:spider_spawn_egg", - "groupId": 47 - }, - { - "id": "minecraft:zombie_spawn_egg", - "groupId": 47 - }, - { - "id": "minecraft:zombie_pigman_spawn_egg", - "groupId": 47 - }, - { - "id": "minecraft:husk_spawn_egg", - "groupId": 47 - }, - { - "id": "minecraft:drowned_spawn_egg", - "groupId": 47 - }, - { - "id": "minecraft:squid_spawn_egg", - "groupId": 47 - }, - { - "id": "minecraft:glow_squid_spawn_egg", - "groupId": 47 - }, - { - "id": "minecraft:cave_spider_spawn_egg", - "groupId": 47 - }, - { - "id": "minecraft:witch_spawn_egg", - "groupId": 47 - }, - { - "id": "minecraft:guardian_spawn_egg", - "groupId": 47 - }, - { - "id": "minecraft:elder_guardian_spawn_egg", - "groupId": 47 - }, - { - "id": "minecraft:endermite_spawn_egg", - "groupId": 47 - }, - { - "id": "minecraft:magma_cube_spawn_egg", - "groupId": 47 - }, - { - "id": "minecraft:strider_spawn_egg", - "groupId": 47 - }, - { - "id": "minecraft:hoglin_spawn_egg", - "groupId": 47 - }, - { - "id": "minecraft:piglin_spawn_egg", - "groupId": 47 - }, - { - "id": "minecraft:zoglin_spawn_egg", - "groupId": 47 - }, - { - "id": "minecraft:piglin_brute_spawn_egg", - "groupId": 47 - }, - { - "id": "minecraft:goat_spawn_egg", - "groupId": 47 - }, - { - "id": "minecraft:axolotl_spawn_egg", - "groupId": 47 - }, - { - "id": "minecraft:warden_spawn_egg", - "groupId": 47 - }, - { - "id": "minecraft:allay_spawn_egg", - "groupId": 47 - }, - { - "id": "minecraft:frog_spawn_egg", - "groupId": 47 - }, - { - "id": "minecraft:tadpole_spawn_egg", - "groupId": 47 - }, - { - "id": "minecraft:trader_llama_spawn_egg", - "groupId": 47 - }, - { - "id": "minecraft:camel_spawn_egg", - "groupId": 47 - }, - { - "id": "minecraft:ghast_spawn_egg", - "groupId": 47 - }, - { - "id": "minecraft:blaze_spawn_egg", - "groupId": 47 - }, - { - "id": "minecraft:shulker_spawn_egg", - "groupId": 47 - }, - { - "id": "minecraft:vindicator_spawn_egg", - "groupId": 47 - }, - { - "id": "minecraft:evoker_spawn_egg", - "groupId": 47 - }, - { - "id": "minecraft:vex_spawn_egg", - "groupId": 47 - }, - { - "id": "minecraft:villager_spawn_egg", - "groupId": 47 - }, - { - "id": "minecraft:wandering_trader_spawn_egg", - "groupId": 47 - }, - { - "id": "minecraft:zombie_villager_spawn_egg", - "groupId": 47 - }, - { - "id": "minecraft:phantom_spawn_egg", - "groupId": 47 - }, - { - "id": "minecraft:pillager_spawn_egg", - "groupId": 47 - }, - { - "id": "minecraft:ravager_spawn_egg", - "groupId": 47 - }, - { - "id": "minecraft:iron_golem_spawn_egg", - "groupId": 47 - }, - { - "id": "minecraft:snow_golem_spawn_egg", - "groupId": 47 - }, - { - "id": "minecraft:sniffer_spawn_egg", - "groupId": 47 - }, - { - "id": "minecraft:breeze_spawn_egg", - "groupId": 47 - }, - { - "id": "minecraft:armadillo_spawn_egg", - "groupId": 47 - }, - { - "id": "minecraft:bogged_spawn_egg", - "groupId": 47 - }, - { - "id": "minecraft:creaking_spawn_egg", - "groupId": 47 - }, - { - "id": "minecraft:obsidian", - "groupId": 48, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQxAAAACAQAbmFtZRIAbWluZWNyYWZ0Om9ic2lkaWFuBAkAbmFtZV9oYXNoiz4qrb8QjyEDCgBuZXR3b3JrX2lkuqnPpQoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:crying_obsidian", - "groupId": 48, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQgAgAACAQAbmFtZRkAbWluZWNyYWZ0OmNyeWluZ19vYnNpZGlhbgQJAG5hbWVfaGFzaKT0JlA7Z1K+AwoAbmV0d29ya19pZCjbPV4KBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:bedrock", - "groupId": 48, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQHAAAACAQAbmFtZREAbWluZWNyYWZ0OmJlZHJvY2sECQBuYW1lX2hhc2hWfFrh4LVtxwMKAG5ldHdvcmtfaWT7fKz1CgYAc3RhdGVzAQ4AaW5maW5pYnVybl9iaXQAAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:soul_sand", - "groupId": 48, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRYAAAACAQAbmFtZRMAbWluZWNyYWZ0OnNvdWxfc2FuZAQJAG5hbWVfaGFzaMaf+bccu+KTAwoAbmV0d29ya19pZBQSHrMKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:magma", - "groupId": 48, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTVAAAACAQAbmFtZQ8AbWluZWNyYWZ0Om1hZ21hBAkAbmFtZV9oYXNoqyTjKaIsWfYDCgBuZXR3b3JrX2lkyfWAZgoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:nether_wart", - "groupId": 48 - }, - { - "id": "minecraft:end_stone", - "groupId": 48, - "block_state_b64": "CgAAAwgAYmxvY2tfaWR5AAAACAQAbmFtZRMAbWluZWNyYWZ0OmVuZF9zdG9uZQQJAG5hbWVfaGFzaH1J9jA39GJNAwoAbmV0d29ya19pZFeFQ7UKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:chorus_flower", - "groupId": 48, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTIAAAACAQAbmFtZRcAbWluZWNyYWZ0OmNob3J1c19mbG93ZXIECQBuYW1lX2hhc2iMpSodli5uawMKAG5ldHdvcmtfaWRnd1ZWCgYAc3RhdGVzAwMAYWdlAAAAAAADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:chorus_plant", - "groupId": 48, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTwAAAACAQAbmFtZRYAbWluZWNyYWZ0OmNob3J1c19wbGFudAQJAG5hbWVfaGFzaJhSrmNGKwaMAwoAbmV0d29ya19pZA3uVqMKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:chorus_fruit", - "groupId": 48 - }, - { - "id": "minecraft:popped_chorus_fruit", - "groupId": 48 - }, - { - "id": "minecraft:sponge", - "groupId": 48, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQTAAAACAQAbmFtZRAAbWluZWNyYWZ0OnNwb25nZQQJAG5hbWVfaGFzaLrd2ScYRDMiAwoAbmV0d29ya19pZNmQW/oKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:wet_sponge", - "groupId": 48, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTXBAAACAQAbmFtZRQAbWluZWNyYWZ0OndldF9zcG9uZ2UECQBuYW1lX2hhc2htp6nKpSHcAgMKAG5ldHdvcmtfaWQaW+fCCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:tube_coral_block", - "groupId": 49, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSDAQAACAQAbmFtZRoAbWluZWNyYWZ0OnR1YmVfY29yYWxfYmxvY2sECQBuYW1lX2hhc2iGkaiR7Eot4wMKAG5ldHdvcmtfaWQPNJ6sCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:brain_coral_block", - "groupId": 49, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRQBAAACAQAbmFtZRsAbWluZWNyYWZ0OmJyYWluX2NvcmFsX2Jsb2NrBAkAbmFtZV9oYXNoeDNAK18yUo4DCgBuZXR3b3JrX2lkloN1vgoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:bubble_coral_block", - "groupId": 49, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRRBAAACAQAbmFtZRwAbWluZWNyYWZ0OmJ1YmJsZV9jb3JhbF9ibG9jawQJAG5hbWVfaGFzaAI2mwMlvcNbAwoAbmV0d29ya19pZBlkxKIKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:fire_coral_block", - "groupId": 49, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRSBAAACAQAbmFtZRoAbWluZWNyYWZ0OmZpcmVfY29yYWxfYmxvY2sECQBuYW1lX2hhc2gg1gLeXLmKaAMKAG5ldHdvcmtfaWSp3W57CgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:horn_coral_block", - "groupId": 49, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRTBAAACAQAbmFtZRoAbWluZWNyYWZ0Omhvcm5fY29yYWxfYmxvY2sECQBuYW1lX2hhc2hnZSLRWUwGhAMKAG5ldHdvcmtfaWRSK6ccCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:dead_tube_coral_block", - "groupId": 49, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRUBAAACAQAbmFtZR8AbWluZWNyYWZ0OmRlYWRfdHViZV9jb3JhbF9ibG9jawQJAG5hbWVfaGFzaB9+lY3hAkNNAwoAbmV0d29ya19pZF0hKKYKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:dead_brain_coral_block", - "groupId": 49, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRVBAAACAQAbmFtZSAAbWluZWNyYWZ0OmRlYWRfYnJhaW5fY29yYWxfYmxvY2sECQBuYW1lX2hhc2iHyDn52AO8uwMKAG5ldHdvcmtfaWQw7yCaCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:dead_bubble_coral_block", - "groupId": 49, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRWBAAACAQAbmFtZSEAbWluZWNyYWZ0OmRlYWRfYnViYmxlX2NvcmFsX2Jsb2NrBAkAbmFtZV9oYXNotwkk/ITrsjADCgBuZXR3b3JrX2lk56mXUgoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:dead_fire_coral_block", - "groupId": 49, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRXBAAACAQAbmFtZR8AbWluZWNyYWZ0OmRlYWRfZmlyZV9jb3JhbF9ibG9jawQJAG5hbWVfaGFzaG0qHxbIrBEyAwoAbmV0d29ya19pZFvnH88KBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:dead_horn_coral_block", - "groupId": 49, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRYBAAACAQAbmFtZR8AbWluZWNyYWZ0OmRlYWRfaG9ybl9jb3JhbF9ibG9jawQJAG5hbWVfaGFzaL7D8bu4Fm+0AwoAbmV0d29ya19pZEALRLoKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:sculk", - "groupId": 50, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTJAgAACAQAbmFtZQ8AbWluZWNyYWZ0OnNjdWxrBAkAbmFtZV9oYXNo2Lq7T5yQF8kDCgBuZXR3b3JrX2lkyqUPPgoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:sculk_vein", - "groupId": 50, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTKAgAACAQAbmFtZRQAbWluZWNyYWZ0OnNjdWxrX3ZlaW4ECQBuYW1lX2hhc2gJUdhVooV4zwMKAG5ldHdvcmtfaWSUfn1XCgYAc3RhdGVzAxkAbXVsdGlfZmFjZV9kaXJlY3Rpb25fYml0cwAAAAAAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:sculk_catalyst", - "groupId": 50, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTLAgAACAQAbmFtZRgAbWluZWNyYWZ0OnNjdWxrX2NhdGFseXN0BAkAbmFtZV9oYXNo+gCpbrCHST4DCgBuZXR3b3JrX2lkMJ2n/woGAHN0YXRlcwEFAGJsb29tAAADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:sculk_shrieker", - "groupId": 50, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTMAgAACAQAbmFtZRgAbWluZWNyYWZ0OnNjdWxrX3Nocmlla2VyBAkAbmFtZV9oYXNo5OXtyObniQ4DCgBuZXR3b3JrX2lkxapoNAoGAHN0YXRlcwEGAGFjdGl2ZQABCgBjYW5fc3VtbW9uAAADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:sculk_sensor", - "groupId": 50, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQyAgAACAQAbmFtZRYAbWluZWNyYWZ0OnNjdWxrX3NlbnNvcgQJAG5hbWVfaGFzaCkmHreeTgNnAwoAbmV0d29ya19pZLj2WPcKBgBzdGF0ZXMDEgBzY3Vsa19zZW5zb3JfcGhhc2UAAAAAAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:calibrated_sculk_sensor", - "groupId": 50, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRDAwAACAQAbmFtZSEAbWluZWNyYWZ0OmNhbGlicmF0ZWRfc2N1bGtfc2Vuc29yBAkAbmFtZV9oYXNoffAcXXN/iJUDCgBuZXR3b3JrX2lkwOx3QQoGAHN0YXRlcwgcAG1pbmVjcmFmdDpjYXJkaW5hbF9kaXJlY3Rpb24FAHNvdXRoAxIAc2N1bGtfc2Vuc29yX3BoYXNlAAAAAAADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:reinforced_deepslate", - "groupId": 51, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTRAgAACAQAbmFtZR4AbWluZWNyYWZ0OnJlaW5mb3JjZWRfZGVlcHNsYXRlBAkAbmFtZV9oYXNoldDmj91EapQDCgBuZXR3b3JrX2lkHIt+aQoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:leather_helmet", - "groupId": 52 - }, - { - "id": "minecraft:chainmail_helmet", - "groupId": 52 - }, - { - "id": "minecraft:iron_helmet", - "groupId": 52 - }, - { - "id": "minecraft:golden_helmet", - "groupId": 52 - }, - { - "id": "minecraft:diamond_helmet", - "groupId": 52 - }, - { - "id": "minecraft:netherite_helmet", - "groupId": 52 - }, - { - "id": "minecraft:leather_chestplate", - "groupId": 53 - }, - { - "id": "minecraft:chainmail_chestplate", - "groupId": 53 - }, - { - "id": "minecraft:iron_chestplate", - "groupId": 53 - }, - { - "id": "minecraft:golden_chestplate", - "groupId": 53 - }, - { - "id": "minecraft:diamond_chestplate", - "groupId": 53 - }, - { - "id": "minecraft:netherite_chestplate", - "groupId": 53 - }, - { - "id": "minecraft:leather_leggings", - "groupId": 54 - }, - { - "id": "minecraft:chainmail_leggings", - "groupId": 54 - }, - { - "id": "minecraft:iron_leggings", - "groupId": 54 - }, - { - "id": "minecraft:golden_leggings", - "groupId": 54 - }, - { - "id": "minecraft:diamond_leggings", - "groupId": 54 - }, - { - "id": "minecraft:netherite_leggings", - "groupId": 54 - }, - { - "id": "minecraft:leather_boots", - "groupId": 55 - }, - { - "id": "minecraft:chainmail_boots", - "groupId": 55 - }, - { - "id": "minecraft:iron_boots", - "groupId": 55 - }, - { - "id": "minecraft:golden_boots", - "groupId": 55 - }, - { - "id": "minecraft:diamond_boots", - "groupId": 55 - }, - { - "id": "minecraft:netherite_boots", - "groupId": 55 - }, - { - "id": "minecraft:wooden_sword", - "groupId": 56 - }, - { - "id": "minecraft:stone_sword", - "groupId": 56 - }, - { - "id": "minecraft:iron_sword", - "groupId": 56 - }, - { - "id": "minecraft:golden_sword", - "groupId": 56 - }, - { - "id": "minecraft:diamond_sword", - "groupId": 56 - }, - { - "id": "minecraft:netherite_sword", - "groupId": 56 - }, - { - "id": "minecraft:wooden_axe", - "groupId": 57 - }, - { - "id": "minecraft:stone_axe", - "groupId": 57 - }, - { - "id": "minecraft:iron_axe", - "groupId": 57 - }, - { - "id": "minecraft:golden_axe", - "groupId": 57 - }, - { - "id": "minecraft:diamond_axe", - "groupId": 57 - }, - { - "id": "minecraft:netherite_axe", - "groupId": 57 - }, - { - "id": "minecraft:wooden_pickaxe", - "groupId": 58 - }, - { - "id": "minecraft:stone_pickaxe", - "groupId": 58 - }, - { - "id": "minecraft:iron_pickaxe", - "groupId": 58 - }, - { - "id": "minecraft:golden_pickaxe", - "groupId": 58 - }, - { - "id": "minecraft:diamond_pickaxe", - "groupId": 58 - }, - { - "id": "minecraft:netherite_pickaxe", - "groupId": 58 - }, - { - "id": "minecraft:wooden_shovel", - "groupId": 59 - }, - { - "id": "minecraft:stone_shovel", - "groupId": 59 - }, - { - "id": "minecraft:iron_shovel", - "groupId": 59 - }, - { - "id": "minecraft:golden_shovel", - "groupId": 59 - }, - { - "id": "minecraft:diamond_shovel", - "groupId": 59 - }, - { - "id": "minecraft:netherite_shovel", - "groupId": 59 - }, - { - "id": "minecraft:wooden_hoe", - "groupId": 60 - }, - { - "id": "minecraft:stone_hoe", - "groupId": 60 - }, - { - "id": "minecraft:iron_hoe", - "groupId": 60 - }, - { - "id": "minecraft:golden_hoe", - "groupId": 60 - }, - { - "id": "minecraft:diamond_hoe", - "groupId": 60 - }, - { - "id": "minecraft:netherite_hoe", - "groupId": 60 - }, - { - "id": "minecraft:bow", - "groupId": 61 - }, - { - "id": "minecraft:crossbow", - "groupId": 61 - }, - { - "id": "minecraft:mace", - "groupId": 61 - }, - { - "id": "minecraft:arrow", - "groupId": 62 - }, - { - "id": "minecraft:arrow", - "damage": 6, - "groupId": 62 - }, - { - "id": "minecraft:arrow", - "damage": 7, - "groupId": 62 - }, - { - "id": "minecraft:arrow", - "damage": 8, - "groupId": 62 - }, - { - "id": "minecraft:arrow", - "damage": 9, - "groupId": 62 - }, - { - "id": "minecraft:arrow", - "damage": 10, - "groupId": 62 - }, - { - "id": "minecraft:arrow", - "damage": 11, - "groupId": 62 - }, - { - "id": "minecraft:arrow", - "damage": 12, - "groupId": 62 - }, - { - "id": "minecraft:arrow", - "damage": 13, - "groupId": 62 - }, - { - "id": "minecraft:arrow", - "damage": 14, - "groupId": 62 - }, - { - "id": "minecraft:arrow", - "damage": 15, - "groupId": 62 - }, - { - "id": "minecraft:arrow", - "damage": 16, - "groupId": 62 - }, - { - "id": "minecraft:arrow", - "damage": 17, - "groupId": 62 - }, - { - "id": "minecraft:arrow", - "damage": 18, - "groupId": 62 - }, - { - "id": "minecraft:arrow", - "damage": 19, - "groupId": 62 - }, - { - "id": "minecraft:arrow", - "damage": 20, - "groupId": 62 - }, - { - "id": "minecraft:arrow", - "damage": 21, - "groupId": 62 - }, - { - "id": "minecraft:arrow", - "damage": 22, - "groupId": 62 - }, - { - "id": "minecraft:arrow", - "damage": 23, - "groupId": 62 - }, - { - "id": "minecraft:arrow", - "damage": 24, - "groupId": 62 - }, - { - "id": "minecraft:arrow", - "damage": 25, - "groupId": 62 - }, - { - "id": "minecraft:arrow", - "damage": 26, - "groupId": 62 - }, - { - "id": "minecraft:arrow", - "damage": 27, - "groupId": 62 - }, - { - "id": "minecraft:arrow", - "damage": 28, - "groupId": 62 - }, - { - "id": "minecraft:arrow", - "damage": 29, - "groupId": 62 - }, - { - "id": "minecraft:arrow", - "damage": 30, - "groupId": 62 - }, - { - "id": "minecraft:arrow", - "damage": 31, - "groupId": 62 - }, - { - "id": "minecraft:arrow", - "damage": 32, - "groupId": 62 - }, - { - "id": "minecraft:arrow", - "damage": 33, - "groupId": 62 - }, - { - "id": "minecraft:arrow", - "damage": 34, - "groupId": 62 - }, - { - "id": "minecraft:arrow", - "damage": 35, - "groupId": 62 - }, - { - "id": "minecraft:arrow", - "damage": 36, - "groupId": 62 - }, - { - "id": "minecraft:arrow", - "damage": 37, - "groupId": 62 - }, - { - "id": "minecraft:arrow", - "damage": 38, - "groupId": 62 - }, - { - "id": "minecraft:arrow", - "damage": 39, - "groupId": 62 - }, - { - "id": "minecraft:arrow", - "damage": 40, - "groupId": 62 - }, - { - "id": "minecraft:arrow", - "damage": 41, - "groupId": 62 - }, - { - "id": "minecraft:arrow", - "damage": 42, - "groupId": 62 - }, - { - "id": "minecraft:arrow", - "damage": 43, - "groupId": 62 - }, - { - "id": "minecraft:arrow", - "damage": 44, - "groupId": 62 - }, - { - "id": "minecraft:arrow", - "damage": 45, - "groupId": 62 - }, - { - "id": "minecraft:arrow", - "damage": 46, - "groupId": 62 - }, - { - "id": "minecraft:arrow", - "damage": 47, - "groupId": 62 - }, - { - "id": "minecraft:shield", - "groupId": 63 - }, - { - "id": "minecraft:cooked_chicken", - "groupId": 64 - }, - { - "id": "minecraft:cooked_porkchop", - "groupId": 64 - }, - { - "id": "minecraft:cooked_beef", - "groupId": 64 - }, - { - "id": "minecraft:cooked_mutton", - "groupId": 64 - }, - { - "id": "minecraft:cooked_rabbit", - "groupId": 64 - }, - { - "id": "minecraft:cooked_cod", - "groupId": 64 - }, - { - "id": "minecraft:cooked_salmon", - "groupId": 64 - }, - { - "id": "minecraft:bread", - "groupId": 65 - }, - { - "id": "minecraft:mushroom_stew", - "groupId": 65 - }, - { - "id": "minecraft:beetroot_soup", - "groupId": 65 - }, - { - "id": "minecraft:rabbit_stew", - "groupId": 65 - }, - { - "id": "minecraft:baked_potato", - "groupId": 65 - }, - { - "id": "minecraft:cookie", - "groupId": 65 - }, - { - "id": "minecraft:pumpkin_pie", - "groupId": 65 - }, - { - "id": "minecraft:cake", - "groupId": 65 - }, - { - "id": "minecraft:dried_kelp", - "groupId": 65 - }, - { - "id": "minecraft:fishing_rod", - "groupId": 66 - }, - { - "id": "minecraft:carrot_on_a_stick", - "groupId": 66 - }, - { - "id": "minecraft:warped_fungus_on_a_stick", - "groupId": 66 - }, - { - "id": "minecraft:snowball", - "groupId": 66 - }, - { - "id": "minecraft:wind_charge", - "groupId": 66 - }, - { - "id": "minecraft:shears", - "groupId": 66 - }, - { - "id": "minecraft:flint_and_steel", - "groupId": 66 - }, - { - "id": "minecraft:lead", - "groupId": 66 - }, - { - "id": "minecraft:clock", - "groupId": 66 - }, - { - "id": "minecraft:compass", - "groupId": 66 - }, - { - "id": "minecraft:recovery_compass", - "groupId": 66 - }, - { - "id": "minecraft:goat_horn", - "groupId": 67 - }, - { - "id": "minecraft:goat_horn", - "damage": 1, - "groupId": 67 - }, - { - "id": "minecraft:goat_horn", - "damage": 2, - "groupId": 67 - }, - { - "id": "minecraft:goat_horn", - "damage": 3, - "groupId": 67 - }, - { - "id": "minecraft:goat_horn", - "damage": 4, - "groupId": 67 - }, - { - "id": "minecraft:goat_horn", - "damage": 5, - "groupId": 67 - }, - { - "id": "minecraft:goat_horn", - "damage": 6, - "groupId": 67 - }, - { - "id": "minecraft:goat_horn", - "damage": 7, - "groupId": 67 - }, - { - "id": "minecraft:empty_map", - "groupId": 68 - }, - { - "id": "minecraft:empty_map", - "damage": 2, - "groupId": 68 - }, - { - "id": "minecraft:saddle", - "groupId": 68 - }, - { - "id": "minecraft:bundle", - "groupId": 69 - }, - { - "id": "minecraft:white_bundle", - "groupId": 69 - }, - { - "id": "minecraft:light_gray_bundle", - "groupId": 69 - }, - { - "id": "minecraft:gray_bundle", - "groupId": 69 - }, - { - "id": "minecraft:black_bundle", - "groupId": 69 - }, - { - "id": "minecraft:brown_bundle", - "groupId": 69 - }, - { - "id": "minecraft:red_bundle", - "groupId": 69 - }, - { - "id": "minecraft:orange_bundle", - "groupId": 69 - }, - { - "id": "minecraft:yellow_bundle", - "groupId": 69 - }, - { - "id": "minecraft:lime_bundle", - "groupId": 69 - }, - { - "id": "minecraft:green_bundle", - "groupId": 69 - }, - { - "id": "minecraft:cyan_bundle", - "groupId": 69 - }, - { - "id": "minecraft:light_blue_bundle", - "groupId": 69 - }, - { - "id": "minecraft:blue_bundle", - "groupId": 69 - }, - { - "id": "minecraft:purple_bundle", - "groupId": 69 - }, - { - "id": "minecraft:magenta_bundle", - "groupId": 69 - }, - { - "id": "minecraft:pink_bundle", - "groupId": 69 - }, - { - "id": "minecraft:leather_horse_armor", - "groupId": 70 - }, - { - "id": "minecraft:iron_horse_armor", - "groupId": 70 - }, - { - "id": "minecraft:golden_horse_armor", - "groupId": 70 - }, - { - "id": "minecraft:diamond_horse_armor", - "groupId": 70 - }, - { - "id": "minecraft:wolf_armor", - "groupId": 71 - }, - { - "id": "minecraft:trident", - "groupId": 71 - }, - { - "id": "minecraft:turtle_helmet", - "groupId": 71 - }, - { - "id": "minecraft:elytra", - "groupId": 71 - }, - { - "id": "minecraft:totem_of_undying", - "groupId": 71 - }, - { - "id": "minecraft:glass_bottle", - "groupId": 71 - }, - { - "id": "minecraft:experience_bottle", - "groupId": 71 - }, - { - "id": "minecraft:potion", - "groupId": 72 - }, - { - "id": "minecraft:potion", - "damage": 1, - "groupId": 72 - }, - { - "id": "minecraft:potion", - "damage": 2, - "groupId": 72 - }, - { - "id": "minecraft:potion", - "damage": 3, - "groupId": 72 - }, - { - "id": "minecraft:potion", - "damage": 4, - "groupId": 72 - }, - { - "id": "minecraft:potion", - "damage": 5, - "groupId": 72 - }, - { - "id": "minecraft:potion", - "damage": 6, - "groupId": 72 - }, - { - "id": "minecraft:potion", - "damage": 7, - "groupId": 72 - }, - { - "id": "minecraft:potion", - "damage": 8, - "groupId": 72 - }, - { - "id": "minecraft:potion", - "damage": 9, - "groupId": 72 - }, - { - "id": "minecraft:potion", - "damage": 10, - "groupId": 72 - }, - { - "id": "minecraft:potion", - "damage": 11, - "groupId": 72 - }, - { - "id": "minecraft:potion", - "damage": 12, - "groupId": 72 - }, - { - "id": "minecraft:potion", - "damage": 13, - "groupId": 72 - }, - { - "id": "minecraft:potion", - "damage": 14, - "groupId": 72 - }, - { - "id": "minecraft:potion", - "damage": 15, - "groupId": 72 - }, - { - "id": "minecraft:potion", - "damage": 16, - "groupId": 72 - }, - { - "id": "minecraft:potion", - "damage": 17, - "groupId": 72 - }, - { - "id": "minecraft:potion", - "damage": 18, - "groupId": 72 - }, - { - "id": "minecraft:potion", - "damage": 42, - "groupId": 72 - }, - { - "id": "minecraft:potion", - "damage": 19, - "groupId": 72 - }, - { - "id": "minecraft:potion", - "damage": 20, - "groupId": 72 - }, - { - "id": "minecraft:potion", - "damage": 21, - "groupId": 72 - }, - { - "id": "minecraft:potion", - "damage": 22, - "groupId": 72 - }, - { - "id": "minecraft:potion", - "damage": 23, - "groupId": 72 - }, - { - "id": "minecraft:potion", - "damage": 24, - "groupId": 72 - }, - { - "id": "minecraft:potion", - "damage": 25, - "groupId": 72 - }, - { - "id": "minecraft:potion", - "damage": 26, - "groupId": 72 - }, - { - "id": "minecraft:potion", - "damage": 27, - "groupId": 72 - }, - { - "id": "minecraft:potion", - "damage": 28, - "groupId": 72 - }, - { - "id": "minecraft:potion", - "damage": 29, - "groupId": 72 - }, - { - "id": "minecraft:potion", - "damage": 30, - "groupId": 72 - }, - { - "id": "minecraft:potion", - "damage": 31, - "groupId": 72 - }, - { - "id": "minecraft:potion", - "damage": 32, - "groupId": 72 - }, - { - "id": "minecraft:potion", - "damage": 33, - "groupId": 72 - }, - { - "id": "minecraft:potion", - "damage": 34, - "groupId": 72 - }, - { - "id": "minecraft:potion", - "damage": 35, - "groupId": 72 - }, - { - "id": "minecraft:potion", - "damage": 36, - "groupId": 72 - }, - { - "id": "minecraft:potion", - "damage": 37, - "groupId": 72 - }, - { - "id": "minecraft:potion", - "damage": 38, - "groupId": 72 - }, - { - "id": "minecraft:potion", - "damage": 39, - "groupId": 72 - }, - { - "id": "minecraft:potion", - "damage": 40, - "groupId": 72 - }, - { - "id": "minecraft:potion", - "damage": 41, - "groupId": 72 - }, - { - "id": "minecraft:potion", - "damage": 43, - "groupId": 72 - }, - { - "id": "minecraft:potion", - "damage": 44, - "groupId": 72 - }, - { - "id": "minecraft:potion", - "damage": 45, - "groupId": 72 - }, - { - "id": "minecraft:potion", - "damage": 46, - "groupId": 72 - }, - { - "id": "minecraft:splash_potion", - "groupId": 73 - }, - { - "id": "minecraft:splash_potion", - "damage": 1, - "groupId": 73 - }, - { - "id": "minecraft:splash_potion", - "damage": 2, - "groupId": 73 - }, - { - "id": "minecraft:splash_potion", - "damage": 3, - "groupId": 73 - }, - { - "id": "minecraft:splash_potion", - "damage": 4, - "groupId": 73 - }, - { - "id": "minecraft:splash_potion", - "damage": 5, - "groupId": 73 - }, - { - "id": "minecraft:splash_potion", - "damage": 6, - "groupId": 73 - }, - { - "id": "minecraft:splash_potion", - "damage": 7, - "groupId": 73 - }, - { - "id": "minecraft:splash_potion", - "damage": 8, - "groupId": 73 - }, - { - "id": "minecraft:splash_potion", - "damage": 9, - "groupId": 73 - }, - { - "id": "minecraft:splash_potion", - "damage": 10, - "groupId": 73 - }, - { - "id": "minecraft:splash_potion", - "damage": 11, - "groupId": 73 - }, - { - "id": "minecraft:splash_potion", - "damage": 12, - "groupId": 73 - }, - { - "id": "minecraft:splash_potion", - "damage": 13, - "groupId": 73 - }, - { - "id": "minecraft:splash_potion", - "damage": 14, - "groupId": 73 - }, - { - "id": "minecraft:splash_potion", - "damage": 15, - "groupId": 73 - }, - { - "id": "minecraft:splash_potion", - "damage": 16, - "groupId": 73 - }, - { - "id": "minecraft:splash_potion", - "damage": 17, - "groupId": 73 - }, - { - "id": "minecraft:splash_potion", - "damage": 18, - "groupId": 73 - }, - { - "id": "minecraft:splash_potion", - "damage": 42, - "groupId": 73 - }, - { - "id": "minecraft:splash_potion", - "damage": 19, - "groupId": 73 - }, - { - "id": "minecraft:splash_potion", - "damage": 20, - "groupId": 73 - }, - { - "id": "minecraft:splash_potion", - "damage": 21, - "groupId": 73 - }, - { - "id": "minecraft:splash_potion", - "damage": 22, - "groupId": 73 - }, - { - "id": "minecraft:splash_potion", - "damage": 23, - "groupId": 73 - }, - { - "id": "minecraft:splash_potion", - "damage": 24, - "groupId": 73 - }, - { - "id": "minecraft:splash_potion", - "damage": 25, - "groupId": 73 - }, - { - "id": "minecraft:splash_potion", - "damage": 26, - "groupId": 73 - }, - { - "id": "minecraft:splash_potion", - "damage": 27, - "groupId": 73 - }, - { - "id": "minecraft:splash_potion", - "damage": 28, - "groupId": 73 - }, - { - "id": "minecraft:splash_potion", - "damage": 29, - "groupId": 73 - }, - { - "id": "minecraft:splash_potion", - "damage": 30, - "groupId": 73 - }, - { - "id": "minecraft:splash_potion", - "damage": 31, - "groupId": 73 - }, - { - "id": "minecraft:splash_potion", - "damage": 32, - "groupId": 73 - }, - { - "id": "minecraft:splash_potion", - "damage": 33, - "groupId": 73 - }, - { - "id": "minecraft:splash_potion", - "damage": 34, - "groupId": 73 - }, - { - "id": "minecraft:splash_potion", - "damage": 35, - "groupId": 73 - }, - { - "id": "minecraft:splash_potion", - "damage": 36, - "groupId": 73 - }, - { - "id": "minecraft:splash_potion", - "damage": 37, - "groupId": 73 - }, - { - "id": "minecraft:splash_potion", - "damage": 38, - "groupId": 73 - }, - { - "id": "minecraft:splash_potion", - "damage": 39, - "groupId": 73 - }, - { - "id": "minecraft:splash_potion", - "damage": 40, - "groupId": 73 - }, - { - "id": "minecraft:splash_potion", - "damage": 41, - "groupId": 73 - }, - { - "id": "minecraft:splash_potion", - "damage": 43, - "groupId": 73 - }, - { - "id": "minecraft:splash_potion", - "damage": 44, - "groupId": 73 - }, - { - "id": "minecraft:splash_potion", - "damage": 45, - "groupId": 73 - }, - { - "id": "minecraft:splash_potion", - "damage": 46, - "groupId": 73 - }, - { - "id": "minecraft:lingering_potion", - "groupId": 74 - }, - { - "id": "minecraft:lingering_potion", - "damage": 1, - "groupId": 74 - }, - { - "id": "minecraft:lingering_potion", - "damage": 2, - "groupId": 74 - }, - { - "id": "minecraft:lingering_potion", - "damage": 3, - "groupId": 74 - }, - { - "id": "minecraft:lingering_potion", - "damage": 4, - "groupId": 74 - }, - { - "id": "minecraft:lingering_potion", - "damage": 5, - "groupId": 74 - }, - { - "id": "minecraft:lingering_potion", - "damage": 6, - "groupId": 74 - }, - { - "id": "minecraft:lingering_potion", - "damage": 7, - "groupId": 74 - }, - { - "id": "minecraft:lingering_potion", - "damage": 8, - "groupId": 74 - }, - { - "id": "minecraft:lingering_potion", - "damage": 9, - "groupId": 74 - }, - { - "id": "minecraft:lingering_potion", - "damage": 10, - "groupId": 74 - }, - { - "id": "minecraft:lingering_potion", - "damage": 11, - "groupId": 74 - }, - { - "id": "minecraft:lingering_potion", - "damage": 12, - "groupId": 74 - }, - { - "id": "minecraft:lingering_potion", - "damage": 13, - "groupId": 74 - }, - { - "id": "minecraft:lingering_potion", - "damage": 14, - "groupId": 74 - }, - { - "id": "minecraft:lingering_potion", - "damage": 15, - "groupId": 74 - }, - { - "id": "minecraft:lingering_potion", - "damage": 16, - "groupId": 74 - }, - { - "id": "minecraft:lingering_potion", - "damage": 17, - "groupId": 74 - }, - { - "id": "minecraft:lingering_potion", - "damage": 18, - "groupId": 74 - }, - { - "id": "minecraft:lingering_potion", - "damage": 42, - "groupId": 74 - }, - { - "id": "minecraft:lingering_potion", - "damage": 19, - "groupId": 74 - }, - { - "id": "minecraft:lingering_potion", - "damage": 20, - "groupId": 74 - }, - { - "id": "minecraft:lingering_potion", - "damage": 21, - "groupId": 74 - }, - { - "id": "minecraft:lingering_potion", - "damage": 22, - "groupId": 74 - }, - { - "id": "minecraft:lingering_potion", - "damage": 23, - "groupId": 74 - }, - { - "id": "minecraft:lingering_potion", - "damage": 24, - "groupId": 74 - }, - { - "id": "minecraft:lingering_potion", - "damage": 25, - "groupId": 74 - }, - { - "id": "minecraft:lingering_potion", - "damage": 26, - "groupId": 74 - }, - { - "id": "minecraft:lingering_potion", - "damage": 27, - "groupId": 74 - }, - { - "id": "minecraft:lingering_potion", - "damage": 28, - "groupId": 74 - }, - { - "id": "minecraft:lingering_potion", - "damage": 29, - "groupId": 74 - }, - { - "id": "minecraft:lingering_potion", - "damage": 30, - "groupId": 74 - }, - { - "id": "minecraft:lingering_potion", - "damage": 31, - "groupId": 74 - }, - { - "id": "minecraft:lingering_potion", - "damage": 32, - "groupId": 74 - }, - { - "id": "minecraft:lingering_potion", - "damage": 33, - "groupId": 74 - }, - { - "id": "minecraft:lingering_potion", - "damage": 34, - "groupId": 74 - }, - { - "id": "minecraft:lingering_potion", - "damage": 35, - "groupId": 74 - }, - { - "id": "minecraft:lingering_potion", - "damage": 36, - "groupId": 74 - }, - { - "id": "minecraft:lingering_potion", - "damage": 37, - "groupId": 74 - }, - { - "id": "minecraft:lingering_potion", - "damage": 38, - "groupId": 74 - }, - { - "id": "minecraft:lingering_potion", - "damage": 39, - "groupId": 74 - }, - { - "id": "minecraft:lingering_potion", - "damage": 40, - "groupId": 74 - }, - { - "id": "minecraft:lingering_potion", - "damage": 41, - "groupId": 74 - }, - { - "id": "minecraft:lingering_potion", - "damage": 43, - "groupId": 74 - }, - { - "id": "minecraft:lingering_potion", - "damage": 44, - "groupId": 74 - }, - { - "id": "minecraft:lingering_potion", - "damage": 45, - "groupId": 74 - }, - { - "id": "minecraft:lingering_potion", - "damage": 46, - "groupId": 74 - }, - { - "id": "minecraft:ominous_bottle", - "groupId": 75 - }, - { - "id": "minecraft:ominous_bottle", - "damage": 1, - "groupId": 75 - }, - { - "id": "minecraft:ominous_bottle", - "damage": 2, - "groupId": 75 - }, - { - "id": "minecraft:ominous_bottle", - "damage": 3, - "groupId": 75 - }, - { - "id": "minecraft:ominous_bottle", - "damage": 4, - "groupId": 75 - }, - { - "id": "minecraft:spyglass", - "groupId": 76 - }, - { - "id": "minecraft:brush", - "groupId": 76 - }, - { - "id": "minecraft:stick", - "groupId": 77 - }, - { - "id": "minecraft:bed", - "groupId": 78 - }, - { - "id": "minecraft:bed", - "damage": 8, - "groupId": 78 - }, - { - "id": "minecraft:bed", - "damage": 7, - "groupId": 78 - }, - { - "id": "minecraft:bed", - "damage": 15, - "groupId": 78 - }, - { - "id": "minecraft:bed", - "damage": 12, - "groupId": 78 - }, - { - "id": "minecraft:bed", - "damage": 14, - "groupId": 78 - }, - { - "id": "minecraft:bed", - "damage": 1, - "groupId": 78 - }, - { - "id": "minecraft:bed", - "damage": 4, - "groupId": 78 - }, - { - "id": "minecraft:bed", - "damage": 5, - "groupId": 78 - }, - { - "id": "minecraft:bed", - "damage": 13, - "groupId": 78 - }, - { - "id": "minecraft:bed", - "damage": 9, - "groupId": 78 - }, - { - "id": "minecraft:bed", - "damage": 3, - "groupId": 78 - }, - { - "id": "minecraft:bed", - "damage": 11, - "groupId": 78 - }, - { - "id": "minecraft:bed", - "damage": 10, - "groupId": 78 - }, - { - "id": "minecraft:bed", - "damage": 2, - "groupId": 78 - }, - { - "id": "minecraft:bed", - "damage": 6, - "groupId": 78 - }, - { - "id": "minecraft:torch", - "groupId": 79, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQyAAAACAQAbmFtZQ8AbWluZWNyYWZ0OnRvcmNoBAkAbmFtZV9oYXNoagn7rmDBzisDCgBuZXR3b3JrX2lk+BwwuQoGAHN0YXRlcwgWAHRvcmNoX2ZhY2luZ19kaXJlY3Rpb24HAHVua25vd24AAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:soul_torch", - "groupId": 79, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQLAgAACAQAbmFtZRQAbWluZWNyYWZ0OnNvdWxfdG9yY2gECQBuYW1lX2hhc2huixOT04BRdQMKAG5ldHdvcmtfaWShbFILCgYAc3RhdGVzCBYAdG9yY2hfZmFjaW5nX2RpcmVjdGlvbgcAdW5rbm93bgADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:sea_pickle", - "groupId": 79, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSbAQAACAQAbmFtZRQAbWluZWNyYWZ0OnNlYV9waWNrbGUECQBuYW1lX2hhc2iONEfZJB+glgMKAG5ldHdvcmtfaWSINWQyCgYAc3RhdGVzAw0AY2x1c3Rlcl9jb3VudAAAAAABCABkZWFkX2JpdAAAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:lantern", - "groupId": 79, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTPAQAACAQAbmFtZREAbWluZWNyYWZ0OmxhbnRlcm4ECQBuYW1lX2hhc2hMw44VI2HWygMKAG5ldHdvcmtfaWRkjQvzCgYAc3RhdGVzAQcAaGFuZ2luZwAAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:soul_lantern", - "groupId": 79, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQMAgAACAQAbmFtZRYAbWluZWNyYWZ0OnNvdWxfbGFudGVybgQJAG5hbWVfaGFzaGjIpjxk9z+RAwoAbmV0d29ya19pZGfoP8cKBgBzdGF0ZXMBBwBoYW5naW5nAAADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:candle", - "groupId": 80, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSbAgAACAQAbmFtZRAAbWluZWNyYWZ0OmNhbmRsZQQJAG5hbWVfaGFzaHPd+MsNdWTfAwoAbmV0d29ya19pZHsBMA0KBgBzdGF0ZXMDBwBjYW5kbGVzAAAAAAEDAGxpdAAAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:white_candle", - "groupId": 80, - "block_state_b64": "CgAAAwgAYmxvY2tfaWScAgAACAQAbmFtZRYAbWluZWNyYWZ0OndoaXRlX2NhbmRsZQQJAG5hbWVfaGFzaN1EG5Q1mHiEAwoAbmV0d29ya19pZKN1mmgKBgBzdGF0ZXMDBwBjYW5kbGVzAAAAAAEDAGxpdAAAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:orange_candle", - "groupId": 80, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSdAgAACAQAbmFtZRcAbWluZWNyYWZ0Om9yYW5nZV9jYW5kbGUECQBuYW1lX2hhc2jySEVWHgUIHQMKAG5ldHdvcmtfaWSfVz82CgYAc3RhdGVzAwcAY2FuZGxlcwAAAAABAwBsaXQAAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:magenta_candle", - "groupId": 80, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSeAgAACAQAbmFtZRgAbWluZWNyYWZ0Om1hZ2VudGFfY2FuZGxlBAkAbmFtZV9oYXNoG0u6YIOoBSEDCgBuZXR3b3JrX2lk9xGNkQoGAHN0YXRlcwMHAGNhbmRsZXMAAAAAAQMAbGl0AAADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:light_blue_candle", - "groupId": 80, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSfAgAACAQAbmFtZRsAbWluZWNyYWZ0OmxpZ2h0X2JsdWVfY2FuZGxlBAkAbmFtZV9oYXNocXGeK0zgrG0DCgBuZXR3b3JrX2lk2m1y8goGAHN0YXRlcwMHAGNhbmRsZXMAAAAAAQMAbGl0AAADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:yellow_candle", - "groupId": 80, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSgAgAACAQAbmFtZRcAbWluZWNyYWZ0OnllbGxvd19jYW5kbGUECQBuYW1lX2hhc2i00dtusU3CqQMKAG5ldHdvcmtfaWR9LTmpCgYAc3RhdGVzAwcAY2FuZGxlcwAAAAABAwBsaXQAAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:lime_candle", - "groupId": 80, - "block_state_b64": "CgAAAwgAYmxvY2tfaWShAgAACAQAbmFtZRUAbWluZWNyYWZ0OmxpbWVfY2FuZGxlBAkAbmFtZV9oYXNokcmrw5xvz7ADCgBuZXR3b3JrX2lkIAUu6QoGAHN0YXRlcwMHAGNhbmRsZXMAAAAAAQMAbGl0AAADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:pink_candle", - "groupId": 80, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSiAgAACAQAbmFtZRUAbWluZWNyYWZ0OnBpbmtfY2FuZGxlBAkAbmFtZV9oYXNoQJdEY4sZ0dwDCgBuZXR3b3JrX2lk23Rn5AoGAHN0YXRlcwMHAGNhbmRsZXMAAAAAAQMAbGl0AAADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:gray_candle", - "groupId": 80, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSjAgAACAQAbmFtZRUAbWluZWNyYWZ0OmdyYXlfY2FuZGxlBAkAbmFtZV9oYXNoS5poSo9wBDEDCgBuZXR3b3JrX2lk3trRCAoGAHN0YXRlcwMHAGNhbmRsZXMAAAAAAQMAbGl0AAADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:light_gray_candle", - "groupId": 80, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSkAgAACAQAbmFtZRsAbWluZWNyYWZ0OmxpZ2h0X2dyYXlfY2FuZGxlBAkAbmFtZV9oYXNo9ruTZLBNMasDCgBuZXR3b3JrX2lkb6DOegoGAHN0YXRlcwMHAGNhbmRsZXMAAAAAAQMAbGl0AAADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:cyan_candle", - "groupId": 80, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSlAgAACAQAbmFtZRUAbWluZWNyYWZ0OmN5YW5fY2FuZGxlBAkAbmFtZV9oYXNoc/M8PNVcjOwDCgBuZXR3b3JrX2lkZoIQOQoGAHN0YXRlcwMHAGNhbmRsZXMAAAAAAQMAbGl0AAADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:purple_candle", - "groupId": 80, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSmAgAACAQAbmFtZRcAbWluZWNyYWZ0OnB1cnBsZV9jYW5kbGUECQBuYW1lX2hhc2jaI3xUW0/myQMKAG5ldHdvcmtfaWSnLI2BCgYAc3RhdGVzAwcAY2FuZGxlcwAAAAABAwBsaXQAAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:blue_candle", - "groupId": 80, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSnAgAACAQAbmFtZRUAbWluZWNyYWZ0OmJsdWVfY2FuZGxlBAkAbmFtZV9oYXNoAASSPW6TgQADCgBuZXR3b3JrX2lkrxrjQAoGAHN0YXRlcwMHAGNhbmRsZXMAAAAAAQMAbGl0AAADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:brown_candle", - "groupId": 80, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSoAgAACAQAbmFtZRYAbWluZWNyYWZ0OmJyb3duX2NhbmRsZQQJAG5hbWVfaGFzaDia0l6s1+WYAwoAbmV0d29ya19pZKSkBXYKBgBzdGF0ZXMDBwBjYW5kbGVzAAAAAAEDAGxpdAAAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:green_candle", - "groupId": 80, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSpAgAACAQAbmFtZRYAbWluZWNyYWZ0OmdyZWVuX2NhbmRsZQQJAG5hbWVfaGFzaLeFPO1l+fIoAwoAbmV0d29ya19pZBkznDsKBgBzdGF0ZXMDBwBjYW5kbGVzAAAAAAEDAGxpdAAAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:red_candle", - "groupId": 80, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSqAgAACAQAbmFtZRQAbWluZWNyYWZ0OnJlZF9jYW5kbGUECQBuYW1lX2hhc2jjAQpGf59ZdwMKAG5ldHdvcmtfaWRbb88GCgYAc3RhdGVzAwcAY2FuZGxlcwAAAAABAwBsaXQAAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:black_candle", - "groupId": 80, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSrAgAACAQAbmFtZRYAbWluZWNyYWZ0OmJsYWNrX2NhbmRsZQQJAG5hbWVfaGFzaB+wRDpOqREKAwoAbmV0d29ya19pZNnOnuEKBgBzdGF0ZXMDBwBjYW5kbGVzAAAAAAEDAGxpdAAAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:crafting_table", - "groupId": 81, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQ6AAAACAQAbmFtZRgAbWluZWNyYWZ0OmNyYWZ0aW5nX3RhYmxlBAkAbmFtZV9oYXNoe76VAmjvbpYDCgBuZXR3b3JrX2lkwCxwaAoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:cartography_table", - "groupId": 81, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTHAQAACAQAbmFtZRsAbWluZWNyYWZ0OmNhcnRvZ3JhcGh5X3RhYmxlBAkAbmFtZV9oYXNomaWiiD/znP8DCgBuZXR3b3JrX2lkI6FzMwoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:fletching_table", - "groupId": 81, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTIAQAACAQAbmFtZRkAbWluZWNyYWZ0OmZsZXRjaGluZ190YWJsZQQJAG5hbWVfaGFzaPFibh8unKyUAwoAbmV0d29ya19pZJ2mW0oKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:smithing_table", - "groupId": 81, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTJAQAACAQAbmFtZRgAbWluZWNyYWZ0OnNtaXRoaW5nX3RhYmxlBAkAbmFtZV9oYXNo4tFES2xOXEYDCgBuZXR3b3JrX2lkXWMBzQoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:beehive", - "groupId": 81, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTaAQAACAQAbmFtZREAbWluZWNyYWZ0OmJlZWhpdmUECQBuYW1lX2hhc2hCcqn12UbNpwMKAG5ldHdvcmtfaWR/idcaCgYAc3RhdGVzAwkAZGlyZWN0aW9uAAAAAAMLAGhvbmV5X2xldmVsAAAAAAADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:suspicious_sand", - "groupId": 81, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQQAwAACAQAbmFtZRkAbWluZWNyYWZ0OnN1c3BpY2lvdXNfc2FuZAQJAG5hbWVfaGFzaL67QsuvLP00AwoAbmV0d29ya19pZKnkaIAKBgBzdGF0ZXMDEABicnVzaGVkX3Byb2dyZXNzAAAAAAEHAGhhbmdpbmcBAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:suspicious_gravel", - "groupId": 81, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQ8AwAACAQAbmFtZRsAbWluZWNyYWZ0OnN1c3BpY2lvdXNfZ3JhdmVsBAkAbmFtZV9oYXNoJSVbGNk7C3oDCgBuZXR3b3JrX2lkvIEJAAoGAHN0YXRlcwMQAGJydXNoZWRfcHJvZ3Jlc3MAAAAAAQcAaGFuZ2luZwEAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:campfire", - "groupId": 81 - }, - { - "id": "minecraft:soul_campfire", - "groupId": 81 - }, - { - "id": "minecraft:furnace", - "groupId": 81, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQ9AAAACAQAbmFtZREAbWluZWNyYWZ0OmZ1cm5hY2UECQBuYW1lX2hhc2ioOQrludYY8wMKAG5ldHdvcmtfaWRZxnDOCgYAc3RhdGVzCBwAbWluZWNyYWZ0OmNhcmRpbmFsX2RpcmVjdGlvbgUAc291dGgAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:blast_furnace", - "groupId": 81, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTDAQAACAQAbmFtZRcAbWluZWNyYWZ0OmJsYXN0X2Z1cm5hY2UECQBuYW1lX2hhc2ivDbnjkpGm5QMKAG5ldHdvcmtfaWTcEbV/CgYAc3RhdGVzCBwAbWluZWNyYWZ0OmNhcmRpbmFsX2RpcmVjdGlvbgUAc291dGgAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:smoker", - "groupId": 81, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTFAQAACAQAbmFtZRAAbWluZWNyYWZ0OnNtb2tlcgQJAG5hbWVfaGFzaJd1rDMkRWomAwoAbmV0d29ya19pZGWswMwKBgBzdGF0ZXMIHABtaW5lY3JhZnQ6Y2FyZGluYWxfZGlyZWN0aW9uBQBzb3V0aAADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:respawn_anchor", - "groupId": 81, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQPAgAACAQAbmFtZRgAbWluZWNyYWZ0OnJlc3Bhd25fYW5jaG9yBAkAbmFtZV9oYXNoZOdcjW05qigDCgBuZXR3b3JrX2lkmhMcaQoGAHN0YXRlcwMVAHJlc3Bhd25fYW5jaG9yX2NoYXJnZQAAAAAAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:brewing_stand", - "groupId": 81 - }, - { - "id": "minecraft:anvil", - "groupId": 82, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSRAAAACAQAbmFtZQ8AbWluZWNyYWZ0OmFudmlsBAkAbmFtZV9oYXNoNqB3fgcUCbwDCgBuZXR3b3JrX2lkqXzNjwoGAHN0YXRlcwgcAG1pbmVjcmFmdDpjYXJkaW5hbF9kaXJlY3Rpb24FAHNvdXRoAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:chipped_anvil", - "groupId": 82, - "block_state_b64": "CgAAAwgAYmxvY2tfaWS+BAAACAQAbmFtZRcAbWluZWNyYWZ0OmNoaXBwZWRfYW52aWwECQBuYW1lX2hhc2ge+QY3vlS/eQMKAG5ldHdvcmtfaWRJ15iUCgYAc3RhdGVzCBwAbWluZWNyYWZ0OmNhcmRpbmFsX2RpcmVjdGlvbgUAc291dGgAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:damaged_anvil", - "groupId": 82, - "block_state_b64": "CgAAAwgAYmxvY2tfaWS/BAAACAQAbmFtZRcAbWluZWNyYWZ0OmRhbWFnZWRfYW52aWwECQBuYW1lX2hhc2imJ12Be2V8+AMKAG5ldHdvcmtfaWRh5SHkCgYAc3RhdGVzCBwAbWluZWNyYWZ0OmNhcmRpbmFsX2RpcmVjdGlvbgUAc291dGgAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:grindstone", - "groupId": 83, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTCAQAACAQAbmFtZRQAbWluZWNyYWZ0OmdyaW5kc3RvbmUECQBuYW1lX2hhc2id56zc0nk99wMKAG5ldHdvcmtfaWS4Es07CgYAc3RhdGVzCAoAYXR0YWNobWVudAgAc3RhbmRpbmcDCQBkaXJlY3Rpb24AAAAAAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:enchanting_table", - "groupId": 83, - "block_state_b64": "CgAAAwgAYmxvY2tfaWR0AAAACAQAbmFtZRoAbWluZWNyYWZ0OmVuY2hhbnRpbmdfdGFibGUECQBuYW1lX2hhc2jgIx24VLvMvwMKAG5ldHdvcmtfaWRliFFJCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:bookshelf", - "groupId": 83, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQvAAAACAQAbmFtZRMAbWluZWNyYWZ0OmJvb2tzaGVsZgQJAG5hbWVfaGFzaDU04DrgJCS9AwoAbmV0d29ya19pZBcWwIwKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:chiseled_bookshelf", - "groupId": 83, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQNAwAACAQAbmFtZRwAbWluZWNyYWZ0OmNoaXNlbGVkX2Jvb2tzaGVsZgQJAG5hbWVfaGFzaNXDBnsIsywYAwoAbmV0d29ya19pZIprt5IKBgBzdGF0ZXMDDABib29rc19zdG9yZWQAAAAAAwkAZGlyZWN0aW9uAAAAAAADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:lectern", - "groupId": 83, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTBAQAACAQAbmFtZREAbWluZWNyYWZ0OmxlY3Rlcm4ECQBuYW1lX2hhc2j5Z4Mmi/1QxAMKAG5ldHdvcmtfaWR4JfDHCgYAc3RhdGVzCBwAbWluZWNyYWZ0OmNhcmRpbmFsX2RpcmVjdGlvbgUAc291dGgBCwBwb3dlcmVkX2JpdAAAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:cauldron", - "groupId": 83 - }, - { - "id": "minecraft:composter", - "groupId": 83, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTUAQAACAQAbmFtZRMAbWluZWNyYWZ0OmNvbXBvc3RlcgQJAG5hbWVfaGFzaPAADHptzeWJAwoAbmV0d29ya19pZHIL6i4KBgBzdGF0ZXMDFABjb21wb3N0ZXJfZmlsbF9sZXZlbAAAAAAAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:chest", - "groupId": 84, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQ2AAAACAQAbmFtZQ8AbWluZWNyYWZ0OmNoZXN0BAkAbmFtZV9oYXNog9ozMxlcA88DCgBuZXR3b3JrX2lkDkOFvAoGAHN0YXRlcwgcAG1pbmVjcmFmdDpjYXJkaW5hbF9kaXJlY3Rpb24FAG5vcnRoAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:trapped_chest", - "groupId": 84, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSSAAAACAQAbmFtZRcAbWluZWNyYWZ0OnRyYXBwZWRfY2hlc3QECQBuYW1lX2hhc2g2qpF9stsEjgMKAG5ldHdvcmtfaWTjJWYxCgYAc3RhdGVzCBwAbWluZWNyYWZ0OmNhcmRpbmFsX2RpcmVjdGlvbgUAbm9ydGgAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:ender_chest", - "groupId": 84, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSCAAAACAQAbmFtZRUAbWluZWNyYWZ0OmVuZGVyX2NoZXN0BAkAbmFtZV9oYXNohEZzOFdg0WUDCgBuZXR3b3JrX2lkx4jiSQoGAHN0YXRlcwgcAG1pbmVjcmFmdDpjYXJkaW5hbF9kaXJlY3Rpb24FAG5vcnRoAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:barrel", - "groupId": 85, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTKAQAACAQAbmFtZRAAbWluZWNyYWZ0OmJhcnJlbAQJAG5hbWVfaGFzaHDkRPGymiRqAwoAbmV0d29ya19pZPnxzgsKBgBzdGF0ZXMDEABmYWNpbmdfZGlyZWN0aW9uAAAAAAEIAG9wZW5fYml0AAADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:undyed_shulker_box", - "groupId": 86, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTNAAAACAQAbmFtZRwAbWluZWNyYWZ0OnVuZHllZF9zaHVsa2VyX2JveAQJAG5hbWVfaGFzaOC9mypm/MlBAwoAbmV0d29ya19pZJ8rxp0KBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:white_shulker_box", - "groupId": 86, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTaAAAACAQAbmFtZRsAbWluZWNyYWZ0OndoaXRlX3NodWxrZXJfYm94BAkAbmFtZV9oYXNosK79m1rPUBwDCgBuZXR3b3JrX2lkjrET6goGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:light_gray_shulker_box", - "groupId": 86, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRrAwAACAQAbmFtZSAAbWluZWNyYWZ0OmxpZ2h0X2dyYXlfc2h1bGtlcl9ib3gECQBuYW1lX2hhc2iBe5zq7PxHmgMKAG5ldHdvcmtfaWSCVJv0CgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:gray_shulker_box", - "groupId": 86, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRqAwAACAQAbmFtZRoAbWluZWNyYWZ0OmdyYXlfc2h1bGtlcl9ib3gECQBuYW1lX2hhc2ga2s8ctjHUhgMKAG5ldHdvcmtfaWS3WMsWCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:black_shulker_box", - "groupId": 86, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRyAwAACAQAbmFtZRsAbWluZWNyYWZ0OmJsYWNrX3NodWxrZXJfYm94BAkAbmFtZV9oYXNoPm03OZphrp8DCgBuZXR3b3JrX2lkXHztNAoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:brown_shulker_box", - "groupId": 86, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRvAwAACAQAbmFtZRsAbWluZWNyYWZ0OmJyb3duX3NodWxrZXJfYm94BAkAbmFtZV9oYXNoT3DD6qAL9cADCgBuZXR3b3JrX2lkaXxpYQoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:red_shulker_box", - "groupId": 86, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRxAwAACAQAbmFtZRkAbWluZWNyYWZ0OnJlZF9zaHVsa2VyX2JveAQJAG5hbWVfaGFzaMIlKSCzqSZoAwoAbmV0d29ya19pZNrf+icKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:orange_shulker_box", - "groupId": 86, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRkAwAACAQAbmFtZRwAbWluZWNyYWZ0Om9yYW5nZV9zaHVsa2VyX2JveAQJAG5hbWVfaGFzaG2MAXU67wGrAwoAbmV0d29ya19pZGoO05gKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:yellow_shulker_box", - "groupId": 86, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRnAwAACAQAbmFtZRwAbWluZWNyYWZ0OnllbGxvd19zaHVsa2VyX2JveAQJAG5hbWVfaGFzaIsLwQHYjcIEAwoAbmV0d29ya19pZBCBSiYKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:lime_shulker_box", - "groupId": 86, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRoAwAACAQAbmFtZRoAbWluZWNyYWZ0OmxpbWVfc2h1bGtlcl9ib3gECQBuYW1lX2hhc2hUwBkg+faUGAMKAG5ldHdvcmtfaWRJeKqqCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:green_shulker_box", - "groupId": 86, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRwAwAACAQAbmFtZRsAbWluZWNyYWZ0OmdyZWVuX3NodWxrZXJfYm94BAkAbmFtZV9oYXNoZgUeT3LupLUDCgBuZXR3b3JrX2lkzJiohQoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:cyan_shulker_box", - "groupId": 86, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRsAwAACAQAbmFtZRoAbWluZWNyYWZ0OmN5YW5fc2h1bGtlcl9ib3gECQBuYW1lX2hhc2gSfbjteXg5yAMKAG5ldHdvcmtfaWTHeliECgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:light_blue_shulker_box", - "groupId": 86, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRmAwAACAQAbmFtZSAAbWluZWNyYWZ0OmxpZ2h0X2JsdWVfc2h1bGtlcl9ib3gECQBuYW1lX2hhc2h0VFCX0qsRxQMKAG5ldHdvcmtfaWQXD8U0CgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:blue_shulker_box", - "groupId": 86, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRuAwAACAQAbmFtZRoAbWluZWNyYWZ0OmJsdWVfc2h1bGtlcl9ib3gECQBuYW1lX2hhc2hn9gS0XIe6rAMKAG5ldHdvcmtfaWTO4PJaCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:purple_shulker_box", - "groupId": 86, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRtAwAACAQAbmFtZRwAbWluZWNyYWZ0OnB1cnBsZV9zaHVsa2VyX2JveAQJAG5hbWVfaGFzaEV/lkNPxRDdAwoAbmV0d29ya19pZFK25GAKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:magenta_shulker_box", - "groupId": 86, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRlAwAACAQAbmFtZR0AbWluZWNyYWZ0Om1hZ2VudGFfc2h1bGtlcl9ib3gECQBuYW1lX2hhc2iqWM7IJHxcFgMKAG5ldHdvcmtfaWTyyudTCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:pink_shulker_box", - "groupId": 86, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRpAwAACAQAbmFtZRoAbWluZWNyYWZ0OnBpbmtfc2h1bGtlcl9ib3gECQBuYW1lX2hhc2in1tkJ1GNcZgMKAG5ldHdvcmtfaWQOEGXjCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:armor_stand", - "groupId": 87 - }, - { - "id": "minecraft:noteblock", - "groupId": 87, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQZAAAACAQAbmFtZRMAbWluZWNyYWZ0Om5vdGVibG9jawQJAG5hbWVfaGFzaHPA8dBBH0UaAwoAbmV0d29ya19pZH1U5QkKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:jukebox", - "groupId": 87, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRUAAAACAQAbmFtZREAbWluZWNyYWZ0Omp1a2Vib3gECQBuYW1lX2hhc2ieAIPExf/ZfgMKAG5ldHdvcmtfaWSmR7JfCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:music_disc_13", - "groupId": 88 - }, - { - "id": "minecraft:music_disc_cat", - "groupId": 88 - }, - { - "id": "minecraft:music_disc_blocks", - "groupId": 88 - }, - { - "id": "minecraft:music_disc_chirp", - "groupId": 88 - }, - { - "id": "minecraft:music_disc_far", - "groupId": 88 - }, - { - "id": "minecraft:music_disc_mall", - "groupId": 88 - }, - { - "id": "minecraft:music_disc_mellohi", - "groupId": 88 - }, - { - "id": "minecraft:music_disc_stal", - "groupId": 88 - }, - { - "id": "minecraft:music_disc_strad", - "groupId": 88 - }, - { - "id": "minecraft:music_disc_ward", - "groupId": 88 - }, - { - "id": "minecraft:music_disc_11", - "groupId": 88 - }, - { - "id": "minecraft:music_disc_wait", - "groupId": 88 - }, - { - "id": "minecraft:music_disc_otherside", - "groupId": 88 - }, - { - "id": "minecraft:music_disc_5", - "groupId": 88 - }, - { - "id": "minecraft:music_disc_pigstep", - "groupId": 88 - }, - { - "id": "minecraft:music_disc_relic", - "groupId": 88 - }, - { - "id": "minecraft:music_disc_creator", - "groupId": 88 - }, - { - "id": "minecraft:music_disc_creator_music_box", - "groupId": 88 - }, - { - "id": "minecraft:music_disc_precipice", - "groupId": 88 - }, - { - "id": "minecraft:disc_fragment_5", - "groupId": 89 - }, - { - "id": "minecraft:glowstone_dust", - "groupId": 89 - }, - { - "id": "minecraft:glowstone", - "groupId": 89, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRZAAAACAQAbmFtZRMAbWluZWNyYWZ0Omdsb3dzdG9uZQQJAG5hbWVfaGFzaFYqXNkefIlPAwoAbmV0d29ya19pZGT7WYYKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:redstone_lamp", - "groupId": 89, - "block_state_b64": "CgAAAwgAYmxvY2tfaWR7AAAACAQAbmFtZRcAbWluZWNyYWZ0OnJlZHN0b25lX2xhbXAECQBuYW1lX2hhc2hJ9V80caPvEgMKAG5ldHdvcmtfaWRvNPwnCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:sea_lantern", - "groupId": 89, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSpAAAACAQAbmFtZRUAbWluZWNyYWZ0OnNlYV9sYW50ZXJuBAkAbmFtZV9oYXNoLPsv1TX9M+QDCgBuZXR3b3JrX2lk1PPVyAoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:oak_sign", - "groupId": 90 - }, - { - "id": "minecraft:spruce_sign", - "groupId": 90 - }, - { - "id": "minecraft:birch_sign", - "groupId": 90 - }, - { - "id": "minecraft:jungle_sign", - "groupId": 90 - }, - { - "id": "minecraft:acacia_sign", - "groupId": 90 - }, - { - "id": "minecraft:dark_oak_sign", - "groupId": 90 - }, - { - "id": "minecraft:mangrove_sign", - "groupId": 90 - }, - { - "id": "minecraft:cherry_sign", - "groupId": 90 - }, - { - "id": "minecraft:pale_oak_sign", - "groupId": 90 - }, - { - "id": "minecraft:bamboo_sign", - "groupId": 90 - }, - { - "id": "minecraft:crimson_sign", - "groupId": 90 - }, - { - "id": "minecraft:warped_sign", - "groupId": 90 - }, - { - "id": "minecraft:oak_hanging_sign", - "groupId": 91 - }, - { - "id": "minecraft:spruce_hanging_sign", - "groupId": 91 - }, - { - "id": "minecraft:birch_hanging_sign", - "groupId": 91 - }, - { - "id": "minecraft:jungle_hanging_sign", - "groupId": 91 - }, - { - "id": "minecraft:acacia_hanging_sign", - "groupId": 91 - }, - { - "id": "minecraft:dark_oak_hanging_sign", - "groupId": 91 - }, - { - "id": "minecraft:mangrove_hanging_sign", - "groupId": 91 - }, - { - "id": "minecraft:cherry_hanging_sign", - "groupId": 91 - }, - { - "id": "minecraft:pale_oak_hanging_sign", - "groupId": 91 - }, - { - "id": "minecraft:bamboo_hanging_sign", - "groupId": 91 - }, - { - "id": "minecraft:crimson_hanging_sign", - "groupId": 91 - }, - { - "id": "minecraft:warped_hanging_sign", - "groupId": 91 - }, - { - "id": "minecraft:painting", - "groupId": 92 - }, - { - "id": "minecraft:frame", - "groupId": 92 - }, - { - "id": "minecraft:glow_frame", - "groupId": 92 - }, - { - "id": "minecraft:honey_bottle", - "groupId": 92 - }, - { - "id": "minecraft:flower_pot", - "groupId": 92 - }, - { - "id": "minecraft:bowl", - "groupId": 92 - }, - { - "id": "minecraft:bucket", - "groupId": 92 - }, - { - "id": "minecraft:milk_bucket", - "groupId": 92 - }, - { - "id": "minecraft:water_bucket", - "groupId": 92 - }, - { - "id": "minecraft:lava_bucket", - "groupId": 92 - }, - { - "id": "minecraft:cod_bucket", - "groupId": 92 - }, - { - "id": "minecraft:salmon_bucket", - "groupId": 92 - }, - { - "id": "minecraft:tropical_fish_bucket", - "groupId": 92 - }, - { - "id": "minecraft:pufferfish_bucket", - "groupId": 92 - }, - { - "id": "minecraft:powder_snow_bucket", - "groupId": 92 - }, - { - "id": "minecraft:axolotl_bucket", - "groupId": 92 - }, - { - "id": "minecraft:tadpole_bucket", - "groupId": 92 - }, - { - "id": "minecraft:player_head", - "groupId": 93, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTGBAAACAQAbmFtZRUAbWluZWNyYWZ0OnBsYXllcl9oZWFkBAkAbmFtZV9oYXNonFwZb7CL8EYDCgBuZXR3b3JrX2lkZeAXqAoGAHN0YXRlcwMQAGZhY2luZ19kaXJlY3Rpb24AAAAAAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:zombie_head", - "groupId": 93, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTFBAAACAQAbmFtZRUAbWluZWNyYWZ0OnpvbWJpZV9oZWFkBAkAbmFtZV9oYXNoixuENYuaGgEDCgBuZXR3b3JrX2lk0NsHDgoGAHN0YXRlcwMQAGZhY2luZ19kaXJlY3Rpb24AAAAAAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:creeper_head", - "groupId": 93, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTHBAAACAQAbmFtZRYAbWluZWNyYWZ0OmNyZWVwZXJfaGVhZAQJAG5hbWVfaGFzaCvAGFMS/RqVAwoAbmV0d29ya19pZEfskXYKBgBzdGF0ZXMDEABmYWNpbmdfZGlyZWN0aW9uAAAAAAADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:dragon_head", - "groupId": 93, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTIBAAACAQAbmFtZRUAbWluZWNyYWZ0OmRyYWdvbl9oZWFkBAkAbmFtZV9oYXNozjh6bGRaa5UDCgBuZXR3b3JrX2lk/zjetgoGAHN0YXRlcwMQAGZhY2luZ19kaXJlY3Rpb24AAAAAAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:skeleton_skull", - "groupId": 93, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSQAAAACAQAbmFtZRgAbWluZWNyYWZ0OnNrZWxldG9uX3NrdWxsBAkAbmFtZV9oYXNo3+kbzeMgg4kDCgBuZXR3b3JrX2lk/RqWbwoGAHN0YXRlcwMQAGZhY2luZ19kaXJlY3Rpb24AAAAAAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:wither_skeleton_skull", - "groupId": 93, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTEBAAACAQAbmFtZR8AbWluZWNyYWZ0OndpdGhlcl9za2VsZXRvbl9za3VsbAQJAG5hbWVfaGFzaEcZrUyy9cfRAwoAbmV0d29ya19pZJZ2G/oKBgBzdGF0ZXMDEABmYWNpbmdfZGlyZWN0aW9uAAAAAAADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:piglin_head", - "groupId": 93, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTJBAAACAQAbmFtZRUAbWluZWNyYWZ0OnBpZ2xpbl9oZWFkBAkAbmFtZV9oYXNo+jUCKgb5DskDCgBuZXR3b3JrX2lkQ1ETVwoGAHN0YXRlcwMQAGZhY2luZ19kaXJlY3Rpb24AAAAAAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:beacon", - "groupId": 94, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSKAAAACAQAbmFtZRAAbWluZWNyYWZ0OmJlYWNvbgQJAG5hbWVfaGFzaACwhhfSkdkHAwoAbmV0d29ya19pZF8jfiEKBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:bell", - "groupId": 94, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTNAQAACAQAbmFtZQ4AbWluZWNyYWZ0OmJlbGwECQBuYW1lX2hhc2iPqsgDXRcsxAMKAG5ldHdvcmtfaWT7zhOoCgYAc3RhdGVzCAoAYXR0YWNobWVudAgAc3RhbmRpbmcDCQBkaXJlY3Rpb24AAAAAAQoAdG9nZ2xlX2JpdAAAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:conduit", - "groupId": 94, - "block_state_b64": "CgAAAwgAYmxvY2tfaWScAQAACAQAbmFtZREAbWluZWNyYWZ0OmNvbmR1aXQECQBuYW1lX2hhc2jqxKAxq2EaWQMKAG5ldHdvcmtfaWTWcBVnCgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:stonecutter_block", - "groupId": 94, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTEAQAACAQAbmFtZRsAbWluZWNyYWZ0OnN0b25lY3V0dGVyX2Jsb2NrBAkAbmFtZV9oYXNoQAXTbAM3MeYDCgBuZXR3b3JrX2lkWS4RjAoGAHN0YXRlcwgcAG1pbmVjcmFmdDpjYXJkaW5hbF9kaXJlY3Rpb24FAG5vcnRoAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:coal", - "groupId": 94 - }, - { - "id": "minecraft:charcoal", - "groupId": 94 - }, - { - "id": "minecraft:diamond", - "groupId": 94 - }, - { - "id": "minecraft:iron_nugget", - "groupId": 94 - }, - { - "id": "minecraft:raw_iron", - "groupId": 94 - }, - { - "id": "minecraft:raw_gold", - "groupId": 94 - }, - { - "id": "minecraft:raw_copper", - "groupId": 94 - }, - { - "id": "minecraft:copper_ingot", - "groupId": 94 - }, - { - "id": "minecraft:iron_ingot", - "groupId": 94 - }, - { - "id": "minecraft:netherite_scrap", - "groupId": 94 - }, - { - "id": "minecraft:netherite_ingot", - "groupId": 94 - }, - { - "id": "minecraft:gold_nugget", - "groupId": 94 - }, - { - "id": "minecraft:gold_ingot", - "groupId": 94 - }, - { - "id": "minecraft:emerald", - "groupId": 94 - }, - { - "id": "minecraft:quartz", - "groupId": 94 - }, - { - "id": "minecraft:clay_ball", - "groupId": 94 - }, - { - "id": "minecraft:brick", - "groupId": 94 - }, - { - "id": "minecraft:netherbrick", - "groupId": 94 - }, - { - "id": "minecraft:resin_brick", - "groupId": 94 - }, - { - "id": "minecraft:prismarine_shard", - "groupId": 94 - }, - { - "id": "minecraft:amethyst_shard", - "groupId": 94 - }, - { - "id": "minecraft:prismarine_crystals", - "groupId": 94 - }, - { - "id": "minecraft:nautilus_shell", - "groupId": 94 - }, - { - "id": "minecraft:heart_of_the_sea", - "groupId": 94 - }, - { - "id": "minecraft:turtle_scute", - "groupId": 94 - }, - { - "id": "minecraft:armadillo_scute", - "groupId": 94 - }, - { - "id": "minecraft:phantom_membrane", - "groupId": 94 - }, - { - "id": "minecraft:string", - "groupId": 94 - }, - { - "id": "minecraft:feather", - "groupId": 94 - }, - { - "id": "minecraft:flint", - "groupId": 94 - }, - { - "id": "minecraft:gunpowder", - "groupId": 94 - }, - { - "id": "minecraft:leather", - "groupId": 94 - }, - { - "id": "minecraft:rabbit_hide", - "groupId": 94 - }, - { - "id": "minecraft:rabbit_foot", - "groupId": 94 - }, - { - "id": "minecraft:fire_charge", - "groupId": 94 - }, - { - "id": "minecraft:blaze_rod", - "groupId": 94 - }, - { - "id": "minecraft:breeze_rod", - "groupId": 94 - }, - { - "id": "minecraft:heavy_core", - "groupId": 94, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQ7AgAACAQAbmFtZRQAbWluZWNyYWZ0OmhlYXZ5X2NvcmUECQBuYW1lX2hhc2hhz/uNCtrC2QMKAG5ldHdvcmtfaWRaFu+8CgYAc3RhdGVzAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:blaze_powder", - "groupId": 94 - }, - { - "id": "minecraft:magma_cream", - "groupId": 94 - }, - { - "id": "minecraft:fermented_spider_eye", - "groupId": 94 - }, - { - "id": "minecraft:echo_shard", - "groupId": 94 - }, - { - "id": "minecraft:dragon_breath", - "groupId": 94 - }, - { - "id": "minecraft:shulker_shell", - "groupId": 94 - }, - { - "id": "minecraft:ghast_tear", - "groupId": 94 - }, - { - "id": "minecraft:slime_ball", - "groupId": 94 - }, - { - "id": "minecraft:ender_pearl", - "groupId": 94 - }, - { - "id": "minecraft:ender_eye", - "groupId": 94 - }, - { - "id": "minecraft:nether_star", - "groupId": 94 - }, - { - "id": "minecraft:end_rod", - "groupId": 94, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTQAAAACAQAbmFtZREAbWluZWNyYWZ0OmVuZF9yb2QECQBuYW1lX2hhc2jx/q5cEA0hmQMKAG5ldHdvcmtfaWQ2eM8kCgYAc3RhdGVzAxAAZmFjaW5nX2RpcmVjdGlvbgAAAAAAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:lightning_rod", - "groupId": 94, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQ3AgAACAQAbmFtZRcAbWluZWNyYWZ0OmxpZ2h0bmluZ19yb2QECQBuYW1lX2hhc2ioXQF1xvfHNQMKAG5ldHdvcmtfaWRLuHyACgYAc3RhdGVzAxAAZmFjaW5nX2RpcmVjdGlvbgAAAAAAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:end_crystal", - "groupId": 94 - }, - { - "id": "minecraft:paper", - "groupId": 94 - }, - { - "id": "minecraft:book", - "groupId": 94 - }, - { - "id": "minecraft:writable_book", - "groupId": 94 - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQAAAIDAGx2bAEAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQAAAIDAGx2bAIAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQAAAIDAGx2bAMAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQAAAIDAGx2bAQAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQBAAIDAGx2bAEAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQBAAIDAGx2bAIAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQBAAIDAGx2bAMAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQBAAIDAGx2bAQAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQCAAIDAGx2bAEAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQCAAIDAGx2bAIAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQCAAIDAGx2bAMAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQCAAIDAGx2bAQAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQDAAIDAGx2bAEAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQDAAIDAGx2bAIAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQDAAIDAGx2bAMAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQDAAIDAGx2bAQAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQEAAIDAGx2bAEAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQEAAIDAGx2bAIAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQEAAIDAGx2bAMAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQEAAIDAGx2bAQAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQFAAIDAGx2bAEAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQFAAIDAGx2bAIAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQFAAIDAGx2bAMAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQGAAIDAGx2bAEAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQGAAIDAGx2bAIAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQGAAIDAGx2bAMAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQHAAIDAGx2bAEAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQHAAIDAGx2bAIAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQHAAIDAGx2bAMAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQIAAIDAGx2bAEAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQJAAIDAGx2bAEAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQJAAIDAGx2bAIAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQJAAIDAGx2bAMAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQJAAIDAGx2bAQAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQJAAIDAGx2bAUAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQKAAIDAGx2bAEAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQKAAIDAGx2bAIAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQKAAIDAGx2bAMAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQKAAIDAGx2bAQAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQKAAIDAGx2bAUAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQLAAIDAGx2bAEAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQLAAIDAGx2bAIAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQLAAIDAGx2bAMAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQLAAIDAGx2bAQAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQLAAIDAGx2bAUAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQMAAIDAGx2bAEAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQMAAIDAGx2bAIAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQNAAIDAGx2bAEAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQNAAIDAGx2bAIAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQOAAIDAGx2bAEAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQOAAIDAGx2bAIAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQOAAIDAGx2bAMAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQPAAIDAGx2bAEAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQPAAIDAGx2bAIAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQPAAIDAGx2bAMAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQPAAIDAGx2bAQAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQPAAIDAGx2bAUAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQQAAIDAGx2bAEAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQRAAIDAGx2bAEAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQRAAIDAGx2bAIAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQRAAIDAGx2bAMAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQSAAIDAGx2bAEAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQSAAIDAGx2bAIAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQSAAIDAGx2bAMAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQTAAIDAGx2bAEAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQTAAIDAGx2bAIAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQTAAIDAGx2bAMAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQTAAIDAGx2bAQAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQTAAIDAGx2bAUAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQUAAIDAGx2bAEAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQUAAIDAGx2bAIAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQVAAIDAGx2bAEAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQWAAIDAGx2bAEAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQXAAIDAGx2bAEAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQXAAIDAGx2bAIAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQXAAIDAGx2bAMAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQYAAIDAGx2bAEAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQYAAIDAGx2bAIAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQYAAIDAGx2bAMAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQZAAIDAGx2bAEAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQZAAIDAGx2bAIAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQaAAIDAGx2bAEAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQbAAIDAGx2bAEAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQcAAIDAGx2bAEAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQdAAIDAGx2bAEAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQdAAIDAGx2bAIAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQdAAIDAGx2bAMAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQdAAIDAGx2bAQAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQdAAIDAGx2bAUAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQeAAIDAGx2bAEAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQeAAIDAGx2bAIAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQeAAIDAGx2bAMAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQfAAIDAGx2bAEAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQfAAIDAGx2bAIAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQfAAIDAGx2bAMAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQgAAIDAGx2bAEAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQhAAIDAGx2bAEAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQiAAIDAGx2bAEAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQiAAIDAGx2bAIAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQiAAIDAGx2bAMAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQiAAIDAGx2bAQAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQjAAIDAGx2bAEAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQjAAIDAGx2bAIAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQjAAIDAGx2bAMAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQkAAIDAGx2bAEAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQkAAIDAGx2bAIAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQkAAIDAGx2bAMAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQlAAIDAGx2bAEAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQlAAIDAGx2bAIAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQlAAIDAGx2bAMAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQmAAIDAGx2bAEAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQmAAIDAGx2bAIAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQmAAIDAGx2bAMAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQnAAIDAGx2bAEAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQnAAIDAGx2bAIAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQnAAIDAGx2bAMAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQnAAIDAGx2bAQAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQnAAIDAGx2bAUAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQoAAIDAGx2bAEAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQoAAIDAGx2bAIAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQoAAIDAGx2bAMAAAA=" - }, - { - "id": "minecraft:enchanted_book", - "groupId": 95, - "nbt_b64": "CgAACQQAZW5jaAoBAAAAAgIAaWQoAAIDAGx2bAQAAAA=" - }, - { - "id": "minecraft:oak_boat", - "groupId": 96 - }, - { - "id": "minecraft:spruce_boat", - "groupId": 96 - }, - { - "id": "minecraft:birch_boat", - "groupId": 96 - }, - { - "id": "minecraft:jungle_boat", - "groupId": 96 - }, - { - "id": "minecraft:acacia_boat", - "groupId": 96 - }, - { - "id": "minecraft:dark_oak_boat", - "groupId": 96 - }, - { - "id": "minecraft:mangrove_boat", - "groupId": 96 - }, - { - "id": "minecraft:cherry_boat", - "groupId": 96 - }, - { - "id": "minecraft:pale_oak_boat", - "groupId": 96 - }, - { - "id": "minecraft:bamboo_raft", - "groupId": 96 - }, - { - "id": "minecraft:oak_chest_boat", - "groupId": 97 - }, - { - "id": "minecraft:spruce_chest_boat", - "groupId": 97 - }, - { - "id": "minecraft:birch_chest_boat", - "groupId": 97 - }, - { - "id": "minecraft:jungle_chest_boat", - "groupId": 97 - }, - { - "id": "minecraft:acacia_chest_boat", - "groupId": 97 - }, - { - "id": "minecraft:dark_oak_chest_boat", - "groupId": 97 - }, - { - "id": "minecraft:mangrove_chest_boat", - "groupId": 97 - }, - { - "id": "minecraft:cherry_chest_boat", - "groupId": 97 - }, - { - "id": "minecraft:pale_oak_chest_boat", - "groupId": 97 - }, - { - "id": "minecraft:bamboo_chest_raft", - "groupId": 97 - }, - { - "id": "minecraft:rail", - "groupId": 98, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRCAAAACAQAbmFtZQ4AbWluZWNyYWZ0OnJhaWwECQBuYW1lX2hhc2hUzmhUXYJDUQMKAG5ldHdvcmtfaWR+Sp6YCgYAc3RhdGVzAw4AcmFpbF9kaXJlY3Rpb24AAAAAAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:golden_rail", - "groupId": 98, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQbAAAACAQAbmFtZRUAbWluZWNyYWZ0OmdvbGRlbl9yYWlsBAkAbmFtZV9oYXNoOoV5MaKipoUDCgBuZXR3b3JrX2lkfAcxLwoGAHN0YXRlcwENAHJhaWxfZGF0YV9iaXQAAw4AcmFpbF9kaXJlY3Rpb24AAAAAAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:detector_rail", - "groupId": 98, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQcAAAACAQAbmFtZRcAbWluZWNyYWZ0OmRldGVjdG9yX3JhaWwECQBuYW1lX2hhc2gVUk31qOysUQMKAG5ldHdvcmtfaWRVW/aICgYAc3RhdGVzAQ0AcmFpbF9kYXRhX2JpdAADDgByYWlsX2RpcmVjdGlvbgAAAAAAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:activator_rail", - "groupId": 98, - "block_state_b64": "CgAAAwgAYmxvY2tfaWR+AAAACAQAbmFtZRgAbWluZWNyYWZ0OmFjdGl2YXRvcl9yYWlsBAkAbmFtZV9oYXNosIL91qriCRkDCgBuZXR3b3JrX2lkZfckmwoGAHN0YXRlcwENAHJhaWxfZGF0YV9iaXQAAw4AcmFpbF9kaXJlY3Rpb24AAAAAAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:minecart", - "groupId": 99 - }, - { - "id": "minecraft:chest_minecart", - "groupId": 99 - }, - { - "id": "minecraft:hopper_minecart", - "groupId": 99 - }, - { - "id": "minecraft:tnt_minecart", - "groupId": 99 - }, - { - "id": "minecraft:redstone", - "groupId": 100 - }, - { - "id": "minecraft:redstone_block", - "groupId": 100, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSYAAAACAQAbmFtZRgAbWluZWNyYWZ0OnJlZHN0b25lX2Jsb2NrBAkAbmFtZV9oYXNoRhULL0r8o0sDCgBuZXR3b3JrX2lklayOHgoGAHN0YXRlcwADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:redstone_torch", - "groupId": 100, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRMAAAACAQAbmFtZRgAbWluZWNyYWZ0OnJlZHN0b25lX3RvcmNoBAkAbmFtZV9oYXNoizFRjpYMIDgDCgBuZXR3b3JrX2lkuHz7yAoGAHN0YXRlcwgWAHRvcmNoX2ZhY2luZ19kaXJlY3Rpb24HAHVua25vd24AAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:lever", - "groupId": 100, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRFAAAACAQAbmFtZQ8AbWluZWNyYWZ0OmxldmVyBAkAbmFtZV9oYXNoGMJeLJsUMLYDCgBuZXR3b3JrX2lkEF/GuAoGAHN0YXRlcwgPAGxldmVyX2RpcmVjdGlvbg4AZG93bl9lYXN0X3dlc3QBCABvcGVuX2JpdAAAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:wooden_button", - "groupId": 101, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSPAAAACAQAbmFtZRcAbWluZWNyYWZ0Ondvb2Rlbl9idXR0b24ECQBuYW1lX2hhc2hR7PgSTQt0sQMKAG5ldHdvcmtfaWSU07kYCgYAc3RhdGVzARIAYnV0dG9uX3ByZXNzZWRfYml0AAMQAGZhY2luZ19kaXJlY3Rpb24AAAAAAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:spruce_button", - "groupId": 101, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSPAQAACAQAbmFtZRcAbWluZWNyYWZ0OnNwcnVjZV9idXR0b24ECQBuYW1lX2hhc2jBW9Z8aYE7YQMKAG5ldHdvcmtfaWTkUIGuCgYAc3RhdGVzARIAYnV0dG9uX3ByZXNzZWRfYml0AAMQAGZhY2luZ19kaXJlY3Rpb24AAAAAAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:birch_button", - "groupId": 101, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSMAQAACAQAbmFtZRYAbWluZWNyYWZ0OmJpcmNoX2J1dHRvbgQJAG5hbWVfaGFzaJXYgGuSHbTwAwoAbmV0d29ya19pZGWp3yoKBgBzdGF0ZXMBEgBidXR0b25fcHJlc3NlZF9iaXQAAxAAZmFjaW5nX2RpcmVjdGlvbgAAAAAAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:jungle_button", - "groupId": 101, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSOAQAACAQAbmFtZRcAbWluZWNyYWZ0Omp1bmdsZV9idXR0b24ECQBuYW1lX2hhc2iCgNANcJs+BQMKAG5ldHdvcmtfaWT9fImWCgYAc3RhdGVzARIAYnV0dG9uX3ByZXNzZWRfYml0AAMQAGZhY2luZ19kaXJlY3Rpb24AAAAAAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:acacia_button", - "groupId": 101, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSLAQAACAQAbmFtZRcAbWluZWNyYWZ0OmFjYWNpYV9idXR0b24ECQBuYW1lX2hhc2gVvmcT7LTO0wMKAG5ldHdvcmtfaWRQnxIJCgYAc3RhdGVzARIAYnV0dG9uX3ByZXNzZWRfYml0AAMQAGZhY2luZ19kaXJlY3Rpb24AAAAAAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:dark_oak_button", - "groupId": 101, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSNAQAACAQAbmFtZRkAbWluZWNyYWZ0OmRhcmtfb2FrX2J1dHRvbgQJAG5hbWVfaGFzaIV10ZGGrCIEAwoAbmV0d29ya19pZN5vAmIKBgBzdGF0ZXMBEgBidXR0b25fcHJlc3NlZF9iaXQAAxAAZmFjaW5nX2RpcmVjdGlvbgAAAAAAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:mangrove_button", - "groupId": 101, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTmAgAACAQAbmFtZRkAbWluZWNyYWZ0Om1hbmdyb3ZlX2J1dHRvbgQJAG5hbWVfaGFzaNzeYYKLgOzJAwoAbmV0d29ya19pZAFEGQ0KBgBzdGF0ZXMBEgBidXR0b25fcHJlc3NlZF9iaXQAAxAAZmFjaW5nX2RpcmVjdGlvbgAAAAAAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:cherry_button", - "groupId": 101, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQRAwAACAQAbmFtZRcAbWluZWNyYWZ0OmNoZXJyeV9idXR0b24ECQBuYW1lX2hhc2j2/IHjeAbUcwMKAG5ldHdvcmtfaWRJ1irQCgYAc3RhdGVzARIAYnV0dG9uX3ByZXNzZWRfYml0AAMQAGZhY2luZ19kaXJlY3Rpb24AAAAAAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:pale_oak_button", - "groupId": 101, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTcBAAACAQAbmFtZRkAbWluZWNyYWZ0OnBhbGVfb2FrX2J1dHRvbgQJAG5hbWVfaGFzaLk54s7RtGHgAwoAbmV0d29ya19pZNLO6ZwKBgBzdGF0ZXMBEgBidXR0b25fcHJlc3NlZF9iaXQAAxAAZmFjaW5nX2RpcmVjdGlvbgAAAAAAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:bamboo_button", - "groupId": 101, - "block_state_b64": "CgAAAwgAYmxvY2tfaWT+AgAACAQAbmFtZRcAbWluZWNyYWZ0OmJhbWJvb19idXR0b24ECQBuYW1lX2hhc2j7AddMi+6nsgMKAG5ldHdvcmtfaWSa9w4/CgYAc3RhdGVzARIAYnV0dG9uX3ByZXNzZWRfYml0AAMQAGZhY2luZ19kaXJlY3Rpb24AAAAAAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:stone_button", - "groupId": 101, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRNAAAACAQAbmFtZRYAbWluZWNyYWZ0OnN0b25lX2J1dHRvbgQJAG5hbWVfaGFzaM4ejMctmvohAwoAbmV0d29ya19pZMw+aC0KBgBzdGF0ZXMBEgBidXR0b25fcHJlc3NlZF9iaXQAAxAAZmFjaW5nX2RpcmVjdGlvbgAAAAAAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:crimson_button", - "groupId": 101, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQDAgAACAQAbmFtZRgAbWluZWNyYWZ0OmNyaW1zb25fYnV0dG9uBAkAbmFtZV9oYXNofnjYHaYIeWgDCgBuZXR3b3JrX2lk+n1vyQoGAHN0YXRlcwESAGJ1dHRvbl9wcmVzc2VkX2JpdAADEABmYWNpbmdfZGlyZWN0aW9uAAAAAAADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:warped_button", - "groupId": 101, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQEAgAACAQAbmFtZRcAbWluZWNyYWZ0OndhcnBlZF9idXR0b24ECQBuYW1lX2hhc2jwkV2EU6Cn1QMKAG5ldHdvcmtfaWTnHnk1CgYAc3RhdGVzARIAYnV0dG9uX3ByZXNzZWRfYml0AAMQAGZhY2luZ19kaXJlY3Rpb24AAAAAAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:polished_blackstone_button", - "groupId": 101, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQnAgAACAQAbmFtZSQAbWluZWNyYWZ0OnBvbGlzaGVkX2JsYWNrc3RvbmVfYnV0dG9uBAkAbmFtZV9oYXNojmxzQKS0S/EDCgBuZXR3b3JrX2lkDtQ95woGAHN0YXRlcwESAGJ1dHRvbl9wcmVzc2VkX2JpdAADEABmYWNpbmdfZGlyZWN0aW9uAAAAAAADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:tripwire_hook", - "groupId": 102, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSDAAAACAQAbmFtZRcAbWluZWNyYWZ0OnRyaXB3aXJlX2hvb2sECQBuYW1lX2hhc2gQdp+oGZLNnAMKAG5ldHdvcmtfaWSy+1KJCgYAc3RhdGVzAQwAYXR0YWNoZWRfYml0AAMJAGRpcmVjdGlvbgAAAAABCwBwb3dlcmVkX2JpdAAAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:wooden_pressure_plate", - "groupId": 103, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRIAAAACAQAbmFtZR8AbWluZWNyYWZ0Ondvb2Rlbl9wcmVzc3VyZV9wbGF0ZQQJAG5hbWVfaGFzaGkGs5kCuA74AwoAbmV0d29ya19pZDRzPNwKBgBzdGF0ZXMDDwByZWRzdG9uZV9zaWduYWwAAAAAAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:spruce_pressure_plate", - "groupId": 103, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSZAQAACAQAbmFtZR8AbWluZWNyYWZ0OnNwcnVjZV9wcmVzc3VyZV9wbGF0ZQQJAG5hbWVfaGFzaNmwuq549fJKAwoAbmV0d29ya19pZLQMCw0KBgBzdGF0ZXMDDwByZWRzdG9uZV9zaWduYWwAAAAAAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:birch_pressure_plate", - "groupId": 103, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSWAQAACAQAbmFtZR4AbWluZWNyYWZ0OmJpcmNoX3ByZXNzdXJlX3BsYXRlBAkAbmFtZV9oYXNorQkT9kDdlTwDCgBuZXR3b3JrX2lkH0G97AoGAHN0YXRlcwMPAHJlZHN0b25lX3NpZ25hbAAAAAAAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:jungle_pressure_plate", - "groupId": 103, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSYAQAACAQAbmFtZR8AbWluZWNyYWZ0Omp1bmdsZV9wcmVzc3VyZV9wbGF0ZQQJAG5hbWVfaGFzaJ7DcteCkb8/AwoAbmV0d29ya19pZLdPBSAKBgBzdGF0ZXMDDwByZWRzdG9uZV9zaWduYWwAAAAAAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:acacia_pressure_plate", - "groupId": 103, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSVAQAACAQAbmFtZR8AbWluZWNyYWZ0OmFjYWNpYV9wcmVzc3VyZV9wbGF0ZQQJAG5hbWVfaGFzaC2frZtfoYqCAwoAbmV0d29ya19pZIDdI18KBgBzdGF0ZXMDDwByZWRzdG9uZV9zaWduYWwAAAAAAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:dark_oak_pressure_plate", - "groupId": 103, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSXAQAACAQAbmFtZSEAbWluZWNyYWZ0OmRhcmtfb2FrX3ByZXNzdXJlX3BsYXRlBAkAbmFtZV9oYXNoHUCJsTy52pwDCgBuZXR3b3JrX2lkKpi8rAoGAHN0YXRlcwMPAHJlZHN0b25lX3NpZ25hbAAAAAAAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:mangrove_pressure_plate", - "groupId": 103, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTpAgAACAQAbmFtZSEAbWluZWNyYWZ0Om1hbmdyb3ZlX3ByZXNzdXJlX3BsYXRlBAkAbmFtZV9oYXNoiDsTfJaX100DCgBuZXR3b3JrX2lkuwWDyQoGAHN0YXRlcwMPAHJlZHN0b25lX3NpZ25hbAAAAAAAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:cherry_pressure_plate", - "groupId": 103, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQZAwAACAQAbmFtZR8AbWluZWNyYWZ0OmNoZXJyeV9wcmVzc3VyZV9wbGF0ZQQJAG5hbWVfaGFzaALMqYEZDUQHAwoAbmV0d29ya19pZPNT+r0KBgBzdGF0ZXMDDwByZWRzdG9uZV9zaWduYWwAAAAAAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:pale_oak_pressure_plate", - "groupId": 103, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTkBAAACAQAbmFtZSEAbWluZWNyYWZ0OnBhbGVfb2FrX3ByZXNzdXJlX3BsYXRlBAkAbmFtZV9oYXNo8cvY7evY5xkDCgBuZXR3b3JrX2lkDmW0uAoGAHN0YXRlcwMPAHJlZHN0b25lX3NpZ25hbAAAAAAAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:bamboo_pressure_plate", - "groupId": 103, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQBAwAACAQAbmFtZR8AbWluZWNyYWZ0OmJhbWJvb19wcmVzc3VyZV9wbGF0ZQQJAG5hbWVfaGFzaNvxJ7NIAaqlAwoAbmV0d29ya19pZIZ8XnYKBgBzdGF0ZXMDDwByZWRzdG9uZV9zaWduYWwAAAAAAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:crimson_pressure_plate", - "groupId": 103, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQFAgAACAQAbmFtZSAAbWluZWNyYWZ0OmNyaW1zb25fcHJlc3N1cmVfcGxhdGUECQBuYW1lX2hhc2hqBDVDAd31/gMKAG5ldHdvcmtfaWRmV18LCgYAc3RhdGVzAw8AcmVkc3RvbmVfc2lnbmFsAAAAAAADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:warped_pressure_plate", - "groupId": 103, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQGAgAACAQAbmFtZR8AbWluZWNyYWZ0OndhcnBlZF9wcmVzc3VyZV9wbGF0ZQQJAG5hbWVfaGFzaBxFoQksWtYUAwoAbmV0d29ya19pZJVRoIcKBgBzdGF0ZXMDDwByZWRzdG9uZV9zaWduYWwAAAAAAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:stone_pressure_plate", - "groupId": 103, - "block_state_b64": "CgAAAwgAYmxvY2tfaWRGAAAACAQAbmFtZR4AbWluZWNyYWZ0OnN0b25lX3ByZXNzdXJlX3BsYXRlBAkAbmFtZV9oYXNounJuTBUTrU8DCgBuZXR3b3JrX2lkjDydwQoGAHN0YXRlcwMPAHJlZHN0b25lX3NpZ25hbAAAAAAAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:light_weighted_pressure_plate", - "groupId": 103, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSTAAAACAQAbmFtZScAbWluZWNyYWZ0OmxpZ2h0X3dlaWdodGVkX3ByZXNzdXJlX3BsYXRlBAkAbmFtZV9oYXNoOyOJkNxLtkEDCgBuZXR3b3JrX2lkrr2AjgoGAHN0YXRlcwMPAHJlZHN0b25lX3NpZ25hbAAAAAAAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:heavy_weighted_pressure_plate", - "groupId": 103, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSUAAAACAQAbmFtZScAbWluZWNyYWZ0OmhlYXZ5X3dlaWdodGVkX3ByZXNzdXJlX3BsYXRlBAkAbmFtZV9oYXNoltgDmDvTajUDCgBuZXR3b3JrX2lkFxVKuQoGAHN0YXRlcwMPAHJlZHN0b25lX3NpZ25hbAAAAAAAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:polished_blackstone_pressure_plate", - "groupId": 103, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQmAgAACAQAbmFtZSwAbWluZWNyYWZ0OnBvbGlzaGVkX2JsYWNrc3RvbmVfcHJlc3N1cmVfcGxhdGUECQBuYW1lX2hhc2h65Ci6/CeGqwMKAG5ldHdvcmtfaWTaSW5xCgYAc3RhdGVzAw8AcmVkc3RvbmVfc2lnbmFsAAAAAAADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:observer", - "groupId": 104, - "block_state_b64": "CgAAAwgAYmxvY2tfaWT7AAAACAQAbmFtZRIAbWluZWNyYWZ0Om9ic2VydmVyBAkAbmFtZV9oYXNoYhlh1lpmHTgDCgBuZXR3b3JrX2lkQEh55goGAHN0YXRlcwgaAG1pbmVjcmFmdDpmYWNpbmdfZGlyZWN0aW9uBABkb3duAQsAcG93ZXJlZF9iaXQAAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:daylight_detector", - "groupId": 104, - "block_state_b64": "CgAAAwgAYmxvY2tfaWSXAAAACAQAbmFtZRsAbWluZWNyYWZ0OmRheWxpZ2h0X2RldGVjdG9yBAkAbmFtZV9oYXNoV0F0s7B7PVgDCgBuZXR3b3JrX2lkri5afQoGAHN0YXRlcwMPAHJlZHN0b25lX3NpZ25hbAAAAAAAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:repeater", - "groupId": 104 - }, - { - "id": "minecraft:comparator", - "groupId": 104 - }, - { - "id": "minecraft:hopper", - "groupId": 104 - }, - { - "id": "minecraft:dropper", - "groupId": 104, - "block_state_b64": "CgAAAwgAYmxvY2tfaWR9AAAACAQAbmFtZREAbWluZWNyYWZ0OmRyb3BwZXIECQBuYW1lX2hhc2joXP7XqU0l3QMKAG5ldHdvcmtfaWQfQN6zCgYAc3RhdGVzAxAAZmFjaW5nX2RpcmVjdGlvbgMAAAABDQB0cmlnZ2VyZWRfYml0AAADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:dispenser", - "groupId": 104, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQXAAAACAQAbmFtZRMAbWluZWNyYWZ0OmRpc3BlbnNlcgQJAG5hbWVfaGFzaP1RR+zAbYP2AwoAbmV0d29ya19pZGAayD0KBgBzdGF0ZXMDEABmYWNpbmdfZGlyZWN0aW9uAwAAAAENAHRyaWdnZXJlZF9iaXQAAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:crafter", - "groupId": 104, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQ4AgAACAQAbmFtZREAbWluZWNyYWZ0OmNyYWZ0ZXIECQBuYW1lX2hhc2iLCT/rJmRN8QMKAG5ldHdvcmtfaWTPTbvrCgYAc3RhdGVzAQgAY3JhZnRpbmcACAsAb3JpZW50YXRpb24JAGRvd25fZWFzdAENAHRyaWdnZXJlZF9iaXQAAAMHAHZlcnNpb24hPBUBAA==" - }, - { - "id": "minecraft:piston", - "groupId": 104, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQhAAAACAQAbmFtZRAAbWluZWNyYWZ0OnBpc3RvbgQJAG5hbWVfaGFzaDs3AFh1fL0uAwoAbmV0d29ya19pZLD/5XQKBgBzdGF0ZXMDEABmYWNpbmdfZGlyZWN0aW9uAQAAAAADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:sticky_piston", - "groupId": 104, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQdAAAACAQAbmFtZRcAbWluZWNyYWZ0OnN0aWNreV9waXN0b24ECQBuYW1lX2hhc2hPFJFJSiJ0ZQMKAG5ldHdvcmtfaWT/MzCJCgYAc3RhdGVzAxAAZmFjaW5nX2RpcmVjdGlvbgEAAAAAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:tnt", - "groupId": 104, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQuAAAACAQAbmFtZQ0AbWluZWNyYWZ0OnRudAQJAG5hbWVfaGFzaEYOHwCvJH29AwoAbmV0d29ya19pZAXzHyUKBgBzdGF0ZXMBCwBleHBsb2RlX2JpdAAAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:name_tag", - "groupId": 104 - }, - { - "id": "minecraft:loom", - "groupId": 104, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTLAQAACAQAbmFtZQ4AbWluZWNyYWZ0Omxvb20ECQBuYW1lX2hhc2i7DKjAXNq8TAMKAG5ldHdvcmtfaWR/49HXCgYAc3RhdGVzAwkAZGlyZWN0aW9uAAAAAAADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:banner", - "groupId": 105, - "nbt_b64": "CgAAAwQAVHlwZQAAAAAA" - }, - { - "id": "minecraft:banner", - "damage": 8, - "groupId": 105, - "nbt_b64": "CgAAAwQAVHlwZQAAAAAA" - }, - { - "id": "minecraft:banner", - "damage": 7, - "groupId": 105, - "nbt_b64": "CgAAAwQAVHlwZQAAAAAA" - }, - { - "id": "minecraft:banner", - "damage": 15, - "groupId": 105, - "nbt_b64": "CgAAAwQAVHlwZQAAAAAA" - }, - { - "id": "minecraft:banner", - "damage": 12, - "groupId": 105, - "nbt_b64": "CgAAAwQAVHlwZQAAAAAA" - }, - { - "id": "minecraft:banner", - "damage": 14, - "groupId": 105, - "nbt_b64": "CgAAAwQAVHlwZQAAAAAA" - }, - { - "id": "minecraft:banner", - "damage": 1, - "groupId": 105, - "nbt_b64": "CgAAAwQAVHlwZQAAAAAA" - }, - { - "id": "minecraft:banner", - "damage": 4, - "groupId": 105, - "nbt_b64": "CgAAAwQAVHlwZQAAAAAA" - }, - { - "id": "minecraft:banner", - "damage": 5, - "groupId": 105, - "nbt_b64": "CgAAAwQAVHlwZQAAAAAA" - }, - { - "id": "minecraft:banner", - "damage": 13, - "groupId": 105, - "nbt_b64": "CgAAAwQAVHlwZQAAAAAA" - }, - { - "id": "minecraft:banner", - "damage": 9, - "groupId": 105, - "nbt_b64": "CgAAAwQAVHlwZQAAAAAA" - }, - { - "id": "minecraft:banner", - "damage": 3, - "groupId": 105, - "nbt_b64": "CgAAAwQAVHlwZQAAAAAA" - }, - { - "id": "minecraft:banner", - "damage": 11, - "groupId": 105, - "nbt_b64": "CgAAAwQAVHlwZQAAAAAA" - }, - { - "id": "minecraft:banner", - "damage": 10, - "groupId": 105, - "nbt_b64": "CgAAAwQAVHlwZQAAAAAA" - }, - { - "id": "minecraft:banner", - "damage": 2, - "groupId": 105, - "nbt_b64": "CgAAAwQAVHlwZQAAAAAA" - }, - { - "id": "minecraft:banner", - "damage": 6, - "groupId": 105, - "nbt_b64": "CgAAAwQAVHlwZQAAAAAA" - }, - { - "id": "minecraft:banner", - "damage": 15, - "groupId": 105, - "nbt_b64": "CgAAAwQAVHlwZQEAAAAA" - }, - { - "id": "minecraft:creeper_banner_pattern", - "groupId": 106 - }, - { - "id": "minecraft:skull_banner_pattern", - "groupId": 106 - }, - { - "id": "minecraft:flower_banner_pattern", - "groupId": 106 - }, - { - "id": "minecraft:mojang_banner_pattern", - "groupId": 106 - }, - { - "id": "minecraft:field_masoned_banner_pattern", - "groupId": 106 - }, - { - "id": "minecraft:bordure_indented_banner_pattern", - "groupId": 106 - }, - { - "id": "minecraft:piglin_banner_pattern", - "groupId": 106 - }, - { - "id": "minecraft:globe_banner_pattern", - "groupId": 106 - }, - { - "id": "minecraft:flow_banner_pattern", - "groupId": 106 - }, - { - "id": "minecraft:guster_banner_pattern", - "groupId": 106 - }, - { - "id": "minecraft:angler_pottery_sherd", - "groupId": 107 - }, - { - "id": "minecraft:archer_pottery_sherd", - "groupId": 107 - }, - { - "id": "minecraft:arms_up_pottery_sherd", - "groupId": 107 - }, - { - "id": "minecraft:blade_pottery_sherd", - "groupId": 107 - }, - { - "id": "minecraft:brewer_pottery_sherd", - "groupId": 107 - }, - { - "id": "minecraft:burn_pottery_sherd", - "groupId": 107 - }, - { - "id": "minecraft:danger_pottery_sherd", - "groupId": 107 - }, - { - "id": "minecraft:explorer_pottery_sherd", - "groupId": 107 - }, - { - "id": "minecraft:flow_pottery_sherd", - "groupId": 107 - }, - { - "id": "minecraft:friend_pottery_sherd", - "groupId": 107 - }, - { - "id": "minecraft:guster_pottery_sherd", - "groupId": 107 - }, - { - "id": "minecraft:heart_pottery_sherd", - "groupId": 107 - }, - { - "id": "minecraft:heartbreak_pottery_sherd", - "groupId": 107 - }, - { - "id": "minecraft:howl_pottery_sherd", - "groupId": 107 - }, - { - "id": "minecraft:miner_pottery_sherd", - "groupId": 107 - }, - { - "id": "minecraft:mourner_pottery_sherd", - "groupId": 107 - }, - { - "id": "minecraft:plenty_pottery_sherd", - "groupId": 107 - }, - { - "id": "minecraft:prize_pottery_sherd", - "groupId": 107 - }, - { - "id": "minecraft:scrape_pottery_sherd", - "groupId": 107 - }, - { - "id": "minecraft:sheaf_pottery_sherd", - "groupId": 107 - }, - { - "id": "minecraft:shelter_pottery_sherd", - "groupId": 107 - }, - { - "id": "minecraft:skull_pottery_sherd", - "groupId": 107 - }, - { - "id": "minecraft:snort_pottery_sherd", - "groupId": 107 - }, - { - "id": "minecraft:netherite_upgrade_smithing_template", - "groupId": 108 - }, - { - "id": "minecraft:sentry_armor_trim_smithing_template", - "groupId": 108 - }, - { - "id": "minecraft:vex_armor_trim_smithing_template", - "groupId": 108 - }, - { - "id": "minecraft:wild_armor_trim_smithing_template", - "groupId": 108 - }, - { - "id": "minecraft:coast_armor_trim_smithing_template", - "groupId": 108 - }, - { - "id": "minecraft:dune_armor_trim_smithing_template", - "groupId": 108 - }, - { - "id": "minecraft:wayfinder_armor_trim_smithing_template", - "groupId": 108 - }, - { - "id": "minecraft:shaper_armor_trim_smithing_template", - "groupId": 108 - }, - { - "id": "minecraft:raiser_armor_trim_smithing_template", - "groupId": 108 - }, - { - "id": "minecraft:host_armor_trim_smithing_template", - "groupId": 108 - }, - { - "id": "minecraft:ward_armor_trim_smithing_template", - "groupId": 108 - }, - { - "id": "minecraft:silence_armor_trim_smithing_template", - "groupId": 108 - }, - { - "id": "minecraft:tide_armor_trim_smithing_template", - "groupId": 108 - }, - { - "id": "minecraft:snout_armor_trim_smithing_template", - "groupId": 108 - }, - { - "id": "minecraft:rib_armor_trim_smithing_template", - "groupId": 108 - }, - { - "id": "minecraft:eye_armor_trim_smithing_template", - "groupId": 108 - }, - { - "id": "minecraft:spire_armor_trim_smithing_template", - "groupId": 108 - }, - { - "id": "minecraft:flow_armor_trim_smithing_template", - "groupId": 108 - }, - { - "id": "minecraft:bolt_armor_trim_smithing_template", - "groupId": 108 - }, - { - "id": "minecraft:firework_rocket", - "groupId": 109, - "nbt_b64": "CgAACgkARmlyZXdvcmtzCQoARXhwbG9zaW9ucwAAAAAAAQYARmxpZ2h0AQAA" - }, - { - "id": "minecraft:firework_rocket", - "groupId": 109, - "nbt_b64": "CgAACgkARmlyZXdvcmtzCQoARXhwbG9zaW9ucwoBAAAABw0ARmlyZXdvcmtDb2xvcgEAAAAABwwARmlyZXdvcmtGYWRlAAAAAAEPAEZpcmV3b3JrRmxpY2tlcgABDQBGaXJld29ya1RyYWlsAAEMAEZpcmV3b3JrVHlwZQAAAQYARmxpZ2h0AQAA" - }, - { - "id": "minecraft:firework_rocket", - "groupId": 109, - "nbt_b64": "CgAACgkARmlyZXdvcmtzCQoARXhwbG9zaW9ucwoBAAAABw0ARmlyZXdvcmtDb2xvcgEAAAAIBwwARmlyZXdvcmtGYWRlAAAAAAEPAEZpcmV3b3JrRmxpY2tlcgABDQBGaXJld29ya1RyYWlsAAEMAEZpcmV3b3JrVHlwZQAAAQYARmxpZ2h0AQAA" - }, - { - "id": "minecraft:firework_rocket", - "groupId": 109, - "nbt_b64": "CgAACgkARmlyZXdvcmtzCQoARXhwbG9zaW9ucwoBAAAABw0ARmlyZXdvcmtDb2xvcgEAAAAHBwwARmlyZXdvcmtGYWRlAAAAAAEPAEZpcmV3b3JrRmxpY2tlcgABDQBGaXJld29ya1RyYWlsAAEMAEZpcmV3b3JrVHlwZQAAAQYARmxpZ2h0AQAA" - }, - { - "id": "minecraft:firework_rocket", - "groupId": 109, - "nbt_b64": "CgAACgkARmlyZXdvcmtzCQoARXhwbG9zaW9ucwoBAAAABw0ARmlyZXdvcmtDb2xvcgEAAAAPBwwARmlyZXdvcmtGYWRlAAAAAAEPAEZpcmV3b3JrRmxpY2tlcgABDQBGaXJld29ya1RyYWlsAAEMAEZpcmV3b3JrVHlwZQAAAQYARmxpZ2h0AQAA" - }, - { - "id": "minecraft:firework_rocket", - "groupId": 109, - "nbt_b64": "CgAACgkARmlyZXdvcmtzCQoARXhwbG9zaW9ucwoBAAAABw0ARmlyZXdvcmtDb2xvcgEAAAAMBwwARmlyZXdvcmtGYWRlAAAAAAEPAEZpcmV3b3JrRmxpY2tlcgABDQBGaXJld29ya1RyYWlsAAEMAEZpcmV3b3JrVHlwZQAAAQYARmxpZ2h0AQAA" - }, - { - "id": "minecraft:firework_rocket", - "groupId": 109, - "nbt_b64": "CgAACgkARmlyZXdvcmtzCQoARXhwbG9zaW9ucwoBAAAABw0ARmlyZXdvcmtDb2xvcgEAAAAOBwwARmlyZXdvcmtGYWRlAAAAAAEPAEZpcmV3b3JrRmxpY2tlcgABDQBGaXJld29ya1RyYWlsAAEMAEZpcmV3b3JrVHlwZQAAAQYARmxpZ2h0AQAA" - }, - { - "id": "minecraft:firework_rocket", - "groupId": 109, - "nbt_b64": "CgAACgkARmlyZXdvcmtzCQoARXhwbG9zaW9ucwoBAAAABw0ARmlyZXdvcmtDb2xvcgEAAAABBwwARmlyZXdvcmtGYWRlAAAAAAEPAEZpcmV3b3JrRmxpY2tlcgABDQBGaXJld29ya1RyYWlsAAEMAEZpcmV3b3JrVHlwZQAAAQYARmxpZ2h0AQAA" - }, - { - "id": "minecraft:firework_rocket", - "groupId": 109, - "nbt_b64": "CgAACgkARmlyZXdvcmtzCQoARXhwbG9zaW9ucwoBAAAABw0ARmlyZXdvcmtDb2xvcgEAAAAEBwwARmlyZXdvcmtGYWRlAAAAAAEPAEZpcmV3b3JrRmxpY2tlcgABDQBGaXJld29ya1RyYWlsAAEMAEZpcmV3b3JrVHlwZQAAAQYARmxpZ2h0AQAA" - }, - { - "id": "minecraft:firework_rocket", - "groupId": 109, - "nbt_b64": "CgAACgkARmlyZXdvcmtzCQoARXhwbG9zaW9ucwoBAAAABw0ARmlyZXdvcmtDb2xvcgEAAAAFBwwARmlyZXdvcmtGYWRlAAAAAAEPAEZpcmV3b3JrRmxpY2tlcgABDQBGaXJld29ya1RyYWlsAAEMAEZpcmV3b3JrVHlwZQAAAQYARmxpZ2h0AQAA" - }, - { - "id": "minecraft:firework_rocket", - "groupId": 109, - "nbt_b64": "CgAACgkARmlyZXdvcmtzCQoARXhwbG9zaW9ucwoBAAAABw0ARmlyZXdvcmtDb2xvcgEAAAANBwwARmlyZXdvcmtGYWRlAAAAAAEPAEZpcmV3b3JrRmxpY2tlcgABDQBGaXJld29ya1RyYWlsAAEMAEZpcmV3b3JrVHlwZQAAAQYARmxpZ2h0AQAA" - }, - { - "id": "minecraft:firework_rocket", - "groupId": 109, - "nbt_b64": "CgAACgkARmlyZXdvcmtzCQoARXhwbG9zaW9ucwoBAAAABw0ARmlyZXdvcmtDb2xvcgEAAAAJBwwARmlyZXdvcmtGYWRlAAAAAAEPAEZpcmV3b3JrRmxpY2tlcgABDQBGaXJld29ya1RyYWlsAAEMAEZpcmV3b3JrVHlwZQAAAQYARmxpZ2h0AQAA" - }, - { - "id": "minecraft:firework_rocket", - "groupId": 109, - "nbt_b64": "CgAACgkARmlyZXdvcmtzCQoARXhwbG9zaW9ucwoBAAAABw0ARmlyZXdvcmtDb2xvcgEAAAADBwwARmlyZXdvcmtGYWRlAAAAAAEPAEZpcmV3b3JrRmxpY2tlcgABDQBGaXJld29ya1RyYWlsAAEMAEZpcmV3b3JrVHlwZQAAAQYARmxpZ2h0AQAA" - }, - { - "id": "minecraft:firework_rocket", - "groupId": 109, - "nbt_b64": "CgAACgkARmlyZXdvcmtzCQoARXhwbG9zaW9ucwoBAAAABw0ARmlyZXdvcmtDb2xvcgEAAAALBwwARmlyZXdvcmtGYWRlAAAAAAEPAEZpcmV3b3JrRmxpY2tlcgABDQBGaXJld29ya1RyYWlsAAEMAEZpcmV3b3JrVHlwZQAAAQYARmxpZ2h0AQAA" - }, - { - "id": "minecraft:firework_rocket", - "groupId": 109, - "nbt_b64": "CgAACgkARmlyZXdvcmtzCQoARXhwbG9zaW9ucwoBAAAABw0ARmlyZXdvcmtDb2xvcgEAAAAKBwwARmlyZXdvcmtGYWRlAAAAAAEPAEZpcmV3b3JrRmxpY2tlcgABDQBGaXJld29ya1RyYWlsAAEMAEZpcmV3b3JrVHlwZQAAAQYARmxpZ2h0AQAA" - }, - { - "id": "minecraft:firework_rocket", - "groupId": 109, - "nbt_b64": "CgAACgkARmlyZXdvcmtzCQoARXhwbG9zaW9ucwoBAAAABw0ARmlyZXdvcmtDb2xvcgEAAAACBwwARmlyZXdvcmtGYWRlAAAAAAEPAEZpcmV3b3JrRmxpY2tlcgABDQBGaXJld29ya1RyYWlsAAEMAEZpcmV3b3JrVHlwZQAAAQYARmxpZ2h0AQAA" - }, - { - "id": "minecraft:firework_rocket", - "groupId": 109, - "nbt_b64": "CgAACgkARmlyZXdvcmtzCQoARXhwbG9zaW9ucwoBAAAABw0ARmlyZXdvcmtDb2xvcgEAAAAGBwwARmlyZXdvcmtGYWRlAAAAAAEPAEZpcmV3b3JrRmxpY2tlcgABDQBGaXJld29ya1RyYWlsAAEMAEZpcmV3b3JrVHlwZQAAAQYARmxpZ2h0AQAA" - }, - { - "id": "minecraft:firework_star", - "groupId": 110, - "nbt_b64": "CgAACg0ARmlyZXdvcmtzSXRlbQcNAEZpcmV3b3JrQ29sb3IBAAAAAAcMAEZpcmV3b3JrRmFkZQAAAAABDwBGaXJld29ya0ZsaWNrZXIAAQ0ARmlyZXdvcmtUcmFpbAABDABGaXJld29ya1R5cGUAAAMLAGN1c3RvbUNvbG9yIR0d/wA=" - }, - { - "id": "minecraft:firework_star", - "damage": 8, - "groupId": 110, - "nbt_b64": "CgAACg0ARmlyZXdvcmtzSXRlbQcNAEZpcmV3b3JrQ29sb3IBAAAACAcMAEZpcmV3b3JrRmFkZQAAAAABDwBGaXJld29ya0ZsaWNrZXIAAQ0ARmlyZXdvcmtUcmFpbAABDABGaXJld29ya1R5cGUAAAMLAGN1c3RvbUNvbG9yUk9H/wA=" - }, - { - "id": "minecraft:firework_star", - "damage": 7, - "groupId": 110, - "nbt_b64": "CgAACg0ARmlyZXdvcmtzSXRlbQcNAEZpcmV3b3JrQ29sb3IBAAAABwcMAEZpcmV3b3JrRmFkZQAAAAABDwBGaXJld29ya0ZsaWNrZXIAAQ0ARmlyZXdvcmtUcmFpbAABDABGaXJld29ya1R5cGUAAAMLAGN1c3RvbUNvbG9yl52d/wA=" - }, - { - "id": "minecraft:firework_star", - "damage": 15, - "groupId": 110, - "nbt_b64": "CgAACg0ARmlyZXdvcmtzSXRlbQcNAEZpcmV3b3JrQ29sb3IBAAAADwcMAEZpcmV3b3JrRmFkZQAAAAABDwBGaXJld29ya0ZsaWNrZXIAAQ0ARmlyZXdvcmtUcmFpbAABDABGaXJld29ya1R5cGUAAAMLAGN1c3RvbUNvbG9y8PDw/wA=" - }, - { - "id": "minecraft:firework_star", - "damage": 12, - "groupId": 110, - "nbt_b64": "CgAACg0ARmlyZXdvcmtzSXRlbQcNAEZpcmV3b3JrQ29sb3IBAAAADAcMAEZpcmV3b3JrRmFkZQAAAAABDwBGaXJld29ya0ZsaWNrZXIAAQ0ARmlyZXdvcmtUcmFpbAABDABGaXJld29ya1R5cGUAAAMLAGN1c3RvbUNvbG9y2rM6/wA=" - }, - { - "id": "minecraft:firework_star", - "damage": 14, - "groupId": 110, - "nbt_b64": "CgAACg0ARmlyZXdvcmtzSXRlbQcNAEZpcmV3b3JrQ29sb3IBAAAADgcMAEZpcmV3b3JrRmFkZQAAAAABDwBGaXJld29ya0ZsaWNrZXIAAQ0ARmlyZXdvcmtUcmFpbAABDABGaXJld29ya1R5cGUAAAMLAGN1c3RvbUNvbG9yHYD5/wA=" - }, - { - "id": "minecraft:firework_star", - "damage": 1, - "groupId": 110, - "nbt_b64": "CgAACg0ARmlyZXdvcmtzSXRlbQcNAEZpcmV3b3JrQ29sb3IBAAAAAQcMAEZpcmV3b3JrRmFkZQAAAAABDwBGaXJld29ya0ZsaWNrZXIAAQ0ARmlyZXdvcmtUcmFpbAABDABGaXJld29ya1R5cGUAAAMLAGN1c3RvbUNvbG9yJi6w/wA=" - }, - { - "id": "minecraft:firework_star", - "damage": 4, - "groupId": 110, - "nbt_b64": "CgAACg0ARmlyZXdvcmtzSXRlbQcNAEZpcmV3b3JrQ29sb3IBAAAABAcMAEZpcmV3b3JrRmFkZQAAAAABDwBGaXJld29ya0ZsaWNrZXIAAQ0ARmlyZXdvcmtUcmFpbAABDABGaXJld29ya1R5cGUAAAMLAGN1c3RvbUNvbG9yqkQ8/wA=" - }, - { - "id": "minecraft:firework_star", - "damage": 5, - "groupId": 110, - "nbt_b64": "CgAACg0ARmlyZXdvcmtzSXRlbQcNAEZpcmV3b3JrQ29sb3IBAAAABQcMAEZpcmV3b3JrRmFkZQAAAAABDwBGaXJld29ya0ZsaWNrZXIAAQ0ARmlyZXdvcmtUcmFpbAABDABGaXJld29ya1R5cGUAAAMLAGN1c3RvbUNvbG9yuDKJ/wA=" - }, - { - "id": "minecraft:firework_star", - "damage": 13, - "groupId": 110, - "nbt_b64": "CgAACg0ARmlyZXdvcmtzSXRlbQcNAEZpcmV3b3JrQ29sb3IBAAAADQcMAEZpcmV3b3JrRmFkZQAAAAABDwBGaXJld29ya0ZsaWNrZXIAAQ0ARmlyZXdvcmtUcmFpbAABDABGaXJld29ya1R5cGUAAAMLAGN1c3RvbUNvbG9yvU7H/wA=" - }, - { - "id": "minecraft:firework_star", - "damage": 9, - "groupId": 110, - "nbt_b64": "CgAACg0ARmlyZXdvcmtzSXRlbQcNAEZpcmV3b3JrQ29sb3IBAAAACQcMAEZpcmV3b3JrRmFkZQAAAAABDwBGaXJld29ya0ZsaWNrZXIAAQ0ARmlyZXdvcmtUcmFpbAABDABGaXJld29ya1R5cGUAAAMLAGN1c3RvbUNvbG9yqovz/wA=" - }, - { - "id": "minecraft:firework_star", - "damage": 3, - "groupId": 110, - "nbt_b64": "CgAACg0ARmlyZXdvcmtzSXRlbQcNAEZpcmV3b3JrQ29sb3IBAAAAAwcMAEZpcmV3b3JrRmFkZQAAAAABDwBGaXJld29ya0ZsaWNrZXIAAQ0ARmlyZXdvcmtUcmFpbAABDABGaXJld29ya1R5cGUAAAMLAGN1c3RvbUNvbG9yMlSD/wA=" - }, - { - "id": "minecraft:firework_star", - "damage": 11, - "groupId": 110, - "nbt_b64": "CgAACg0ARmlyZXdvcmtzSXRlbQcNAEZpcmV3b3JrQ29sb3IBAAAACwcMAEZpcmV3b3JrRmFkZQAAAAABDwBGaXJld29ya0ZsaWNrZXIAAQ0ARmlyZXdvcmtUcmFpbAABDABGaXJld29ya1R5cGUAAAMLAGN1c3RvbUNvbG9yPdj+/wA=" - }, - { - "id": "minecraft:firework_star", - "damage": 10, - "groupId": 110, - "nbt_b64": "CgAACg0ARmlyZXdvcmtzSXRlbQcNAEZpcmV3b3JrQ29sb3IBAAAACgcMAEZpcmV3b3JrRmFkZQAAAAABDwBGaXJld29ya0ZsaWNrZXIAAQ0ARmlyZXdvcmtUcmFpbAABDABGaXJld29ya1R5cGUAAAMLAGN1c3RvbUNvbG9yH8eA/wA=" - }, - { - "id": "minecraft:firework_star", - "damage": 2, - "groupId": 110, - "nbt_b64": "CgAACg0ARmlyZXdvcmtzSXRlbQcNAEZpcmV3b3JrQ29sb3IBAAAAAgcMAEZpcmV3b3JrRmFkZQAAAAABDwBGaXJld29ya0ZsaWNrZXIAAQ0ARmlyZXdvcmtUcmFpbAABDABGaXJld29ya1R5cGUAAAMLAGN1c3RvbUNvbG9yFnxe/wA=" - }, - { - "id": "minecraft:firework_star", - "damage": 6, - "groupId": 110, - "nbt_b64": "CgAACg0ARmlyZXdvcmtzSXRlbQcNAEZpcmV3b3JrQ29sb3IBAAAABgcMAEZpcmV3b3JrRmFkZQAAAAABDwBGaXJld29ya0ZsaWNrZXIAAQ0ARmlyZXdvcmtUcmFpbAABDABGaXJld29ya1R5cGUAAAMLAGN1c3RvbUNvbG9ynJwW/wA=" - }, - { - "id": "minecraft:chain", - "groupId": 111 - }, - { - "id": "minecraft:target", - "groupId": 111, - "block_state_b64": "CgAAAwgAYmxvY2tfaWTuAQAACAQAbmFtZRAAbWluZWNyYWZ0OnRhcmdldAQJAG5hbWVfaGFzaJc66SVbYlaxAwoAbmV0d29ya19pZPBozs0KBgBzdGF0ZXMAAwcAdmVyc2lvbiE8FQEA" - }, - { - "id": "minecraft:decorated_pot", - "groupId": 111, - "block_state_b64": "CgAAAwgAYmxvY2tfaWQmAwAACAQAbmFtZRcAbWluZWNyYWZ0OmRlY29yYXRlZF9wb3QECQBuYW1lX2hhc2jjQgckn8VTvwMKAG5ldHdvcmtfaWRwvkUUCgYAc3RhdGVzAwkAZGlyZWN0aW9uAAAAAAADBwB2ZXJzaW9uITwVAQA=" - }, - { - "id": "minecraft:trial_key", - "groupId": 111 - }, - { - "id": "minecraft:ominous_trial_key", - "groupId": 111 - } - ] -} \ No newline at end of file diff --git a/core/src/main/resources/bedrock/entity_identifiers.dat b/core/src/main/resources/bedrock/entity_identifiers.dat index 06c7f6aee..828a8cbbe 100644 Binary files a/core/src/main/resources/bedrock/entity_identifiers.dat and b/core/src/main/resources/bedrock/entity_identifiers.dat differ diff --git a/core/src/main/resources/bedrock/item_tags.1_21_100.json b/core/src/main/resources/bedrock/item_tags.1_21_100.json new file mode 100644 index 000000000..c8ab32bab --- /dev/null +++ b/core/src/main/resources/bedrock/item_tags.1_21_100.json @@ -0,0 +1,850 @@ +{ + "minecraft:arrow": [ + "minecraft:arrow" + ], + "minecraft:banner": [ + "minecraft:banner" + ], + "minecraft:boat": [ + "minecraft:acacia_boat", + "minecraft:acacia_chest_boat", + "minecraft:bamboo_chest_raft", + "minecraft:bamboo_raft", + "minecraft:birch_boat", + "minecraft:birch_chest_boat", + "minecraft:cherry_boat", + "minecraft:cherry_chest_boat", + "minecraft:dark_oak_boat", + "minecraft:dark_oak_chest_boat", + "minecraft:jungle_boat", + "minecraft:jungle_chest_boat", + "minecraft:mangrove_boat", + "minecraft:mangrove_chest_boat", + "minecraft:oak_boat", + "minecraft:oak_chest_boat", + "minecraft:pale_oak_boat", + "minecraft:pale_oak_chest_boat", + "minecraft:spruce_boat", + "minecraft:spruce_chest_boat" + ], + "minecraft:boats": [ + "minecraft:acacia_boat", + "minecraft:acacia_chest_boat", + "minecraft:bamboo_chest_raft", + "minecraft:bamboo_raft", + "minecraft:birch_boat", + "minecraft:birch_chest_boat", + "minecraft:cherry_boat", + "minecraft:cherry_chest_boat", + "minecraft:dark_oak_boat", + "minecraft:dark_oak_chest_boat", + "minecraft:jungle_boat", + "minecraft:jungle_chest_boat", + "minecraft:mangrove_boat", + "minecraft:mangrove_chest_boat", + "minecraft:oak_boat", + "minecraft:oak_chest_boat", + "minecraft:pale_oak_boat", + "minecraft:pale_oak_chest_boat", + "minecraft:spruce_boat", + "minecraft:spruce_chest_boat" + ], + "minecraft:bookshelf_books": [ + "minecraft:book", + "minecraft:enchanted_book", + "minecraft:writable_book" + ], + "minecraft:chainmail_tier": [ + "minecraft:chainmail_boots", + "minecraft:chainmail_chestplate", + "minecraft:chainmail_helmet", + "minecraft:chainmail_leggings" + ], + "minecraft:coals": [ + "minecraft:charcoal", + "minecraft:coal" + ], + "minecraft:crimson_stems": [ + "minecraft:crimson_hyphae", + "minecraft:crimson_stem", + "minecraft:stripped_crimson_hyphae", + "minecraft:stripped_crimson_stem" + ], + "minecraft:decorated_pot_sherds": [ + "minecraft:angler_pottery_sherd", + "minecraft:archer_pottery_sherd", + "minecraft:arms_up_pottery_sherd", + "minecraft:blade_pottery_sherd", + "minecraft:brewer_pottery_sherd", + "minecraft:brick", + "minecraft:burn_pottery_sherd", + "minecraft:danger_pottery_sherd", + "minecraft:explorer_pottery_sherd", + "minecraft:flow_pottery_sherd", + "minecraft:friend_pottery_sherd", + "minecraft:guster_pottery_sherd", + "minecraft:heart_pottery_sherd", + "minecraft:heartbreak_pottery_sherd", + "minecraft:howl_pottery_sherd", + "minecraft:miner_pottery_sherd", + "minecraft:mourner_pottery_sherd", + "minecraft:plenty_pottery_sherd", + "minecraft:prize_pottery_sherd", + "minecraft:scrape_pottery_sherd", + "minecraft:sheaf_pottery_sherd", + "minecraft:shelter_pottery_sherd", + "minecraft:skull_pottery_sherd", + "minecraft:snort_pottery_sherd" + ], + "minecraft:diamond_tier": [ + "minecraft:diamond_axe", + "minecraft:diamond_boots", + "minecraft:diamond_chestplate", + "minecraft:diamond_helmet", + "minecraft:diamond_hoe", + "minecraft:diamond_leggings", + "minecraft:diamond_pickaxe", + "minecraft:diamond_shovel", + "minecraft:diamond_sword", + "minecraft:mace" + ], + "minecraft:digger": [ + "minecraft:diamond_axe", + "minecraft:diamond_hoe", + "minecraft:diamond_pickaxe", + "minecraft:diamond_shovel", + "minecraft:golden_axe", + "minecraft:golden_hoe", + "minecraft:golden_pickaxe", + "minecraft:golden_shovel", + "minecraft:iron_axe", + "minecraft:iron_hoe", + "minecraft:iron_pickaxe", + "minecraft:iron_shovel", + "minecraft:netherite_axe", + "minecraft:netherite_hoe", + "minecraft:netherite_pickaxe", + "minecraft:netherite_shovel", + "minecraft:stone_axe", + "minecraft:stone_hoe", + "minecraft:stone_pickaxe", + "minecraft:stone_shovel", + "minecraft:wooden_axe", + "minecraft:wooden_hoe", + "minecraft:wooden_pickaxe", + "minecraft:wooden_shovel" + ], + "minecraft:door": [ + "minecraft:acacia_door", + "minecraft:bamboo_door", + "minecraft:birch_door", + "minecraft:cherry_door", + "minecraft:copper_door", + "minecraft:crimson_door", + "minecraft:dark_oak_door", + "minecraft:exposed_copper_door", + "minecraft:iron_door", + "minecraft:jungle_door", + "minecraft:mangrove_door", + "minecraft:oxidized_copper_door", + "minecraft:pale_oak_door", + "minecraft:spruce_door", + "minecraft:warped_door", + "minecraft:waxed_copper_door", + "minecraft:waxed_exposed_copper_door", + "minecraft:waxed_oxidized_copper_door", + "minecraft:waxed_weathered_copper_door", + "minecraft:weathered_copper_door", + "minecraft:wooden_door" + ], + "minecraft:egg": [ + "minecraft:blue_egg", + "minecraft:brown_egg", + "minecraft:egg" + ], + "minecraft:golden_tier": [ + "minecraft:golden_axe", + "minecraft:golden_boots", + "minecraft:golden_chestplate", + "minecraft:golden_helmet", + "minecraft:golden_hoe", + "minecraft:golden_leggings", + "minecraft:golden_pickaxe", + "minecraft:golden_shovel", + "minecraft:golden_sword" + ], + "minecraft:hanging_actor": [ + "minecraft:painting" + ], + "minecraft:hanging_sign": [ + "minecraft:acacia_hanging_sign", + "minecraft:bamboo_hanging_sign", + "minecraft:birch_hanging_sign", + "minecraft:cherry_hanging_sign", + "minecraft:crimson_hanging_sign", + "minecraft:dark_oak_hanging_sign", + "minecraft:jungle_hanging_sign", + "minecraft:mangrove_hanging_sign", + "minecraft:oak_hanging_sign", + "minecraft:pale_oak_hanging_sign", + "minecraft:spruce_hanging_sign", + "minecraft:warped_hanging_sign" + ], + "minecraft:harness": [ + "minecraft:black_harness", + "minecraft:blue_harness", + "minecraft:brown_harness", + "minecraft:cyan_harness", + "minecraft:gray_harness", + "minecraft:green_harness", + "minecraft:light_blue_harness", + "minecraft:light_gray_harness", + "minecraft:lime_harness", + "minecraft:magenta_harness", + "minecraft:orange_harness", + "minecraft:pink_harness", + "minecraft:purple_harness", + "minecraft:red_harness", + "minecraft:white_harness", + "minecraft:yellow_harness" + ], + "minecraft:horse_armor": [ + "minecraft:diamond_horse_armor", + "minecraft:golden_horse_armor", + "minecraft:iron_horse_armor", + "minecraft:leather_horse_armor" + ], + "minecraft:iron_tier": [ + "minecraft:iron_axe", + "minecraft:iron_boots", + "minecraft:iron_chestplate", + "minecraft:iron_helmet", + "minecraft:iron_hoe", + "minecraft:iron_leggings", + "minecraft:iron_pickaxe", + "minecraft:iron_shovel", + "minecraft:iron_sword" + ], + "minecraft:is_armor": [ + "minecraft:chainmail_boots", + "minecraft:chainmail_chestplate", + "minecraft:chainmail_helmet", + "minecraft:chainmail_leggings", + "minecraft:diamond_boots", + "minecraft:diamond_chestplate", + "minecraft:diamond_helmet", + "minecraft:diamond_leggings", + "minecraft:elytra", + "minecraft:golden_boots", + "minecraft:golden_chestplate", + "minecraft:golden_helmet", + "minecraft:golden_leggings", + "minecraft:iron_boots", + "minecraft:iron_chestplate", + "minecraft:iron_helmet", + "minecraft:iron_leggings", + "minecraft:leather_boots", + "minecraft:leather_chestplate", + "minecraft:leather_helmet", + "minecraft:leather_leggings", + "minecraft:netherite_boots", + "minecraft:netherite_chestplate", + "minecraft:netherite_helmet", + "minecraft:netherite_leggings", + "minecraft:turtle_helmet" + ], + "minecraft:is_axe": [ + "minecraft:diamond_axe", + "minecraft:golden_axe", + "minecraft:iron_axe", + "minecraft:netherite_axe", + "minecraft:stone_axe", + "minecraft:wooden_axe" + ], + "minecraft:is_cooked": [ + "minecraft:cooked_beef", + "minecraft:cooked_chicken", + "minecraft:cooked_cod", + "minecraft:cooked_mutton", + "minecraft:cooked_porkchop", + "minecraft:cooked_rabbit", + "minecraft:cooked_salmon", + "minecraft:rabbit_stew" + ], + "minecraft:is_fish": [ + "minecraft:cod", + "minecraft:cooked_cod", + "minecraft:cooked_salmon", + "minecraft:pufferfish", + "minecraft:salmon", + "minecraft:tropical_fish" + ], + "minecraft:is_food": [ + "minecraft:apple", + "minecraft:baked_potato", + "minecraft:beef", + "minecraft:beetroot", + "minecraft:beetroot_soup", + "minecraft:bread", + "minecraft:carrot", + "minecraft:chicken", + "minecraft:cooked_beef", + "minecraft:cooked_chicken", + "minecraft:cooked_mutton", + "minecraft:cooked_porkchop", + "minecraft:cooked_rabbit", + "minecraft:cookie", + "minecraft:dried_kelp", + "minecraft:enchanted_golden_apple", + "minecraft:golden_apple", + "minecraft:golden_carrot", + "minecraft:melon_slice", + "minecraft:mushroom_stew", + "minecraft:mutton", + "minecraft:porkchop", + "minecraft:potato", + "minecraft:pumpkin_pie", + "minecraft:rabbit", + "minecraft:rabbit_stew", + "minecraft:rotten_flesh", + "minecraft:sweet_berries" + ], + "minecraft:is_hoe": [ + "minecraft:diamond_hoe", + "minecraft:golden_hoe", + "minecraft:iron_hoe", + "minecraft:netherite_hoe", + "minecraft:stone_hoe", + "minecraft:wooden_hoe" + ], + "minecraft:is_meat": [ + "minecraft:beef", + "minecraft:chicken", + "minecraft:cooked_beef", + "minecraft:cooked_chicken", + "minecraft:cooked_mutton", + "minecraft:cooked_porkchop", + "minecraft:cooked_rabbit", + "minecraft:mutton", + "minecraft:porkchop", + "minecraft:rabbit", + "minecraft:rabbit_stew", + "minecraft:rotten_flesh" + ], + "minecraft:is_minecart": [ + "minecraft:chest_minecart", + "minecraft:command_block_minecart", + "minecraft:hopper_minecart", + "minecraft:minecart", + "minecraft:tnt_minecart" + ], + "minecraft:is_pickaxe": [ + "minecraft:diamond_pickaxe", + "minecraft:golden_pickaxe", + "minecraft:iron_pickaxe", + "minecraft:netherite_pickaxe", + "minecraft:stone_pickaxe", + "minecraft:wooden_pickaxe" + ], + "minecraft:is_shears": [ + "minecraft:shears" + ], + "minecraft:is_shovel": [ + "minecraft:diamond_shovel", + "minecraft:golden_shovel", + "minecraft:iron_shovel", + "minecraft:netherite_shovel", + "minecraft:stone_shovel", + "minecraft:wooden_shovel" + ], + "minecraft:is_sword": [ + "minecraft:diamond_sword", + "minecraft:golden_sword", + "minecraft:iron_sword", + "minecraft:mace", + "minecraft:netherite_sword", + "minecraft:stone_sword", + "minecraft:wooden_sword" + ], + "minecraft:is_tool": [ + "minecraft:diamond_axe", + "minecraft:diamond_hoe", + "minecraft:diamond_pickaxe", + "minecraft:diamond_shovel", + "minecraft:diamond_sword", + "minecraft:golden_axe", + "minecraft:golden_hoe", + "minecraft:golden_pickaxe", + "minecraft:golden_shovel", + "minecraft:golden_sword", + "minecraft:iron_axe", + "minecraft:iron_hoe", + "minecraft:iron_pickaxe", + "minecraft:iron_shovel", + "minecraft:iron_sword", + "minecraft:mace", + "minecraft:netherite_axe", + "minecraft:netherite_hoe", + "minecraft:netherite_pickaxe", + "minecraft:netherite_shovel", + "minecraft:netherite_sword", + "minecraft:stone_axe", + "minecraft:stone_hoe", + "minecraft:stone_pickaxe", + "minecraft:stone_shovel", + "minecraft:stone_sword", + "minecraft:wooden_axe", + "minecraft:wooden_hoe", + "minecraft:wooden_pickaxe", + "minecraft:wooden_shovel", + "minecraft:wooden_sword" + ], + "minecraft:is_trident": [ + "minecraft:trident" + ], + "minecraft:leather_tier": [ + "minecraft:leather_boots", + "minecraft:leather_chestplate", + "minecraft:leather_helmet", + "minecraft:leather_leggings" + ], + "minecraft:lectern_books": [ + "minecraft:writable_book" + ], + "minecraft:logs": [ + "minecraft:acacia_log", + "minecraft:acacia_wood", + "minecraft:birch_log", + "minecraft:birch_wood", + "minecraft:cherry_log", + "minecraft:cherry_wood", + "minecraft:crimson_hyphae", + "minecraft:crimson_stem", + "minecraft:dark_oak_log", + "minecraft:dark_oak_wood", + "minecraft:jungle_log", + "minecraft:jungle_wood", + "minecraft:mangrove_log", + "minecraft:mangrove_wood", + "minecraft:oak_log", + "minecraft:oak_wood", + "minecraft:pale_oak_log", + "minecraft:pale_oak_wood", + "minecraft:spruce_log", + "minecraft:spruce_wood", + "minecraft:stripped_acacia_log", + "minecraft:stripped_acacia_wood", + "minecraft:stripped_birch_log", + "minecraft:stripped_birch_wood", + "minecraft:stripped_cherry_log", + "minecraft:stripped_cherry_wood", + "minecraft:stripped_crimson_hyphae", + "minecraft:stripped_crimson_stem", + "minecraft:stripped_dark_oak_log", + "minecraft:stripped_dark_oak_wood", + "minecraft:stripped_jungle_log", + "minecraft:stripped_jungle_wood", + "minecraft:stripped_mangrove_log", + "minecraft:stripped_mangrove_wood", + "minecraft:stripped_oak_log", + "minecraft:stripped_oak_wood", + "minecraft:stripped_pale_oak_log", + "minecraft:stripped_pale_oak_wood", + "minecraft:stripped_spruce_log", + "minecraft:stripped_spruce_wood", + "minecraft:stripped_warped_hyphae", + "minecraft:stripped_warped_stem", + "minecraft:warped_hyphae", + "minecraft:warped_stem" + ], + "minecraft:logs_that_burn": [ + "minecraft:acacia_log", + "minecraft:acacia_wood", + "minecraft:birch_log", + "minecraft:birch_wood", + "minecraft:cherry_log", + "minecraft:cherry_wood", + "minecraft:dark_oak_log", + "minecraft:dark_oak_wood", + "minecraft:jungle_log", + "minecraft:jungle_wood", + "minecraft:mangrove_log", + "minecraft:mangrove_wood", + "minecraft:oak_log", + "minecraft:oak_wood", + "minecraft:pale_oak_log", + "minecraft:pale_oak_wood", + "minecraft:spruce_log", + "minecraft:spruce_wood", + "minecraft:stripped_acacia_log", + "minecraft:stripped_acacia_wood", + "minecraft:stripped_birch_log", + "minecraft:stripped_birch_wood", + "minecraft:stripped_cherry_log", + "minecraft:stripped_cherry_wood", + "minecraft:stripped_dark_oak_log", + "minecraft:stripped_dark_oak_wood", + "minecraft:stripped_jungle_log", + "minecraft:stripped_jungle_wood", + "minecraft:stripped_mangrove_log", + "minecraft:stripped_mangrove_wood", + "minecraft:stripped_oak_log", + "minecraft:stripped_oak_wood", + "minecraft:stripped_pale_oak_log", + "minecraft:stripped_pale_oak_wood", + "minecraft:stripped_spruce_log", + "minecraft:stripped_spruce_wood" + ], + "minecraft:mangrove_logs": [ + "minecraft:mangrove_log", + "minecraft:mangrove_wood", + "minecraft:stripped_mangrove_log", + "minecraft:stripped_mangrove_wood" + ], + "minecraft:music_disc": [ + "minecraft:music_disc_11", + "minecraft:music_disc_13", + "minecraft:music_disc_5", + "minecraft:music_disc_blocks", + "minecraft:music_disc_cat", + "minecraft:music_disc_chirp", + "minecraft:music_disc_creator", + "minecraft:music_disc_creator_music_box", + "minecraft:music_disc_far", + "minecraft:music_disc_lava_chicken", + "minecraft:music_disc_mall", + "minecraft:music_disc_mellohi", + "minecraft:music_disc_otherside", + "minecraft:music_disc_pigstep", + "minecraft:music_disc_precipice", + "minecraft:music_disc_relic", + "minecraft:music_disc_stal", + "minecraft:music_disc_strad", + "minecraft:music_disc_tears", + "minecraft:music_disc_wait", + "minecraft:music_disc_ward" + ], + "minecraft:netherite_tier": [ + "minecraft:netherite_axe", + "minecraft:netherite_boots", + "minecraft:netherite_chestplate", + "minecraft:netherite_helmet", + "minecraft:netherite_hoe", + "minecraft:netherite_leggings", + "minecraft:netherite_pickaxe", + "minecraft:netherite_shovel", + "minecraft:netherite_sword" + ], + "minecraft:planks": [ + "minecraft:acacia_planks", + "minecraft:bamboo_planks", + "minecraft:birch_planks", + "minecraft:cherry_planks", + "minecraft:crimson_planks", + "minecraft:dark_oak_planks", + "minecraft:jungle_planks", + "minecraft:mangrove_planks", + "minecraft:oak_planks", + "minecraft:pale_oak_planks", + "minecraft:spruce_planks", + "minecraft:warped_planks" + ], + "minecraft:sand": [ + "minecraft:red_sand", + "minecraft:sand" + ], + "minecraft:sign": [ + "minecraft:acacia_hanging_sign", + "minecraft:acacia_sign", + "minecraft:bamboo_hanging_sign", + "minecraft:bamboo_sign", + "minecraft:birch_hanging_sign", + "minecraft:birch_sign", + "minecraft:cherry_hanging_sign", + "minecraft:cherry_sign", + "minecraft:crimson_hanging_sign", + "minecraft:crimson_sign", + "minecraft:dark_oak_hanging_sign", + "minecraft:dark_oak_sign", + "minecraft:jungle_hanging_sign", + "minecraft:jungle_sign", + "minecraft:mangrove_hanging_sign", + "minecraft:mangrove_sign", + "minecraft:oak_hanging_sign", + "minecraft:oak_sign", + "minecraft:pale_oak_hanging_sign", + "minecraft:pale_oak_sign", + "minecraft:spruce_hanging_sign", + "minecraft:spruce_sign", + "minecraft:warped_hanging_sign", + "minecraft:warped_sign" + ], + "minecraft:soul_fire_base_blocks": [ + "minecraft:soul_sand", + "minecraft:soul_soil" + ], + "minecraft:spawn_egg": [ + "minecraft:allay_spawn_egg", + "minecraft:armadillo_spawn_egg", + "minecraft:axolotl_spawn_egg", + "minecraft:bat_spawn_egg", + "minecraft:bee_spawn_egg", + "minecraft:blaze_spawn_egg", + "minecraft:bogged_spawn_egg", + "minecraft:breeze_spawn_egg", + "minecraft:camel_spawn_egg", + "minecraft:cat_spawn_egg", + "minecraft:cave_spider_spawn_egg", + "minecraft:chicken_spawn_egg", + "minecraft:cod_spawn_egg", + "minecraft:cow_spawn_egg", + "minecraft:creaking_spawn_egg", + "minecraft:creeper_spawn_egg", + "minecraft:dolphin_spawn_egg", + "minecraft:donkey_spawn_egg", + "minecraft:drowned_spawn_egg", + "minecraft:elder_guardian_spawn_egg", + "minecraft:ender_dragon_spawn_egg", + "minecraft:enderman_spawn_egg", + "minecraft:endermite_spawn_egg", + "minecraft:evoker_spawn_egg", + "minecraft:fox_spawn_egg", + "minecraft:frog_spawn_egg", + "minecraft:ghast_spawn_egg", + "minecraft:glow_squid_spawn_egg", + "minecraft:goat_spawn_egg", + "minecraft:guardian_spawn_egg", + "minecraft:happy_ghast_spawn_egg", + "minecraft:hoglin_spawn_egg", + "minecraft:horse_spawn_egg", + "minecraft:husk_spawn_egg", + "minecraft:iron_golem_spawn_egg", + "minecraft:llama_spawn_egg", + "minecraft:magma_cube_spawn_egg", + "minecraft:mooshroom_spawn_egg", + "minecraft:mule_spawn_egg", + "minecraft:ocelot_spawn_egg", + "minecraft:panda_spawn_egg", + "minecraft:parrot_spawn_egg", + "minecraft:phantom_spawn_egg", + "minecraft:pig_spawn_egg", + "minecraft:piglin_brute_spawn_egg", + "minecraft:piglin_spawn_egg", + "minecraft:pillager_spawn_egg", + "minecraft:polar_bear_spawn_egg", + "minecraft:pufferfish_spawn_egg", + "minecraft:rabbit_spawn_egg", + "minecraft:ravager_spawn_egg", + "minecraft:salmon_spawn_egg", + "minecraft:sheep_spawn_egg", + "minecraft:shulker_spawn_egg", + "minecraft:silverfish_spawn_egg", + "minecraft:skeleton_horse_spawn_egg", + "minecraft:skeleton_spawn_egg", + "minecraft:slime_spawn_egg", + "minecraft:sniffer_spawn_egg", + "minecraft:snow_golem_spawn_egg", + "minecraft:spider_spawn_egg", + "minecraft:squid_spawn_egg", + "minecraft:stray_spawn_egg", + "minecraft:strider_spawn_egg", + "minecraft:tadpole_spawn_egg", + "minecraft:trader_llama_spawn_egg", + "minecraft:tropical_fish_spawn_egg", + "minecraft:turtle_spawn_egg", + "minecraft:vex_spawn_egg", + "minecraft:villager_spawn_egg", + "minecraft:vindicator_spawn_egg", + "minecraft:wandering_trader_spawn_egg", + "minecraft:warden_spawn_egg", + "minecraft:witch_spawn_egg", + "minecraft:wither_skeleton_spawn_egg", + "minecraft:wither_spawn_egg", + "minecraft:wolf_spawn_egg", + "minecraft:zoglin_spawn_egg", + "minecraft:zombie_horse_spawn_egg", + "minecraft:zombie_pigman_spawn_egg", + "minecraft:zombie_spawn_egg", + "minecraft:zombie_villager_spawn_egg" + ], + "minecraft:stone_bricks": [ + "minecraft:chiseled_stone_bricks", + "minecraft:cracked_stone_bricks", + "minecraft:mossy_stone_bricks", + "minecraft:stone_bricks" + ], + "minecraft:stone_crafting_materials": [ + "minecraft:blackstone", + "minecraft:cobbled_deepslate", + "minecraft:cobblestone" + ], + "minecraft:stone_tier": [ + "minecraft:stone_axe", + "minecraft:stone_hoe", + "minecraft:stone_pickaxe", + "minecraft:stone_shovel", + "minecraft:stone_sword" + ], + "minecraft:stone_tool_materials": [ + "minecraft:blackstone", + "minecraft:cobbled_deepslate", + "minecraft:cobblestone" + ], + "minecraft:transform_materials": [ + "minecraft:netherite_ingot" + ], + "minecraft:transform_templates": [ + "minecraft:netherite_upgrade_smithing_template" + ], + "minecraft:transformable_items": [ + "minecraft:diamond_axe", + "minecraft:diamond_boots", + "minecraft:diamond_chestplate", + "minecraft:diamond_helmet", + "minecraft:diamond_hoe", + "minecraft:diamond_leggings", + "minecraft:diamond_pickaxe", + "minecraft:diamond_shovel", + "minecraft:diamond_sword", + "minecraft:golden_boots" + ], + "minecraft:trim_materials": [ + "minecraft:amethyst_shard", + "minecraft:copper_ingot", + "minecraft:diamond", + "minecraft:emerald", + "minecraft:gold_ingot", + "minecraft:iron_ingot", + "minecraft:lapis_lazuli", + "minecraft:netherite_ingot", + "minecraft:quartz", + "minecraft:redstone", + "minecraft:resin_brick" + ], + "minecraft:trim_templates": [ + "minecraft:bolt_armor_trim_smithing_template", + "minecraft:coast_armor_trim_smithing_template", + "minecraft:dune_armor_trim_smithing_template", + "minecraft:eye_armor_trim_smithing_template", + "minecraft:flow_armor_trim_smithing_template", + "minecraft:host_armor_trim_smithing_template", + "minecraft:raiser_armor_trim_smithing_template", + "minecraft:rib_armor_trim_smithing_template", + "minecraft:sentry_armor_trim_smithing_template", + "minecraft:shaper_armor_trim_smithing_template", + "minecraft:silence_armor_trim_smithing_template", + "minecraft:snout_armor_trim_smithing_template", + "minecraft:spire_armor_trim_smithing_template", + "minecraft:tide_armor_trim_smithing_template", + "minecraft:vex_armor_trim_smithing_template", + "minecraft:ward_armor_trim_smithing_template", + "minecraft:wayfinder_armor_trim_smithing_template", + "minecraft:wild_armor_trim_smithing_template" + ], + "minecraft:trimmable_armors": [ + "minecraft:chainmail_boots", + "minecraft:chainmail_chestplate", + "minecraft:chainmail_helmet", + "minecraft:chainmail_leggings", + "minecraft:diamond_boots", + "minecraft:diamond_chestplate", + "minecraft:diamond_helmet", + "minecraft:diamond_leggings", + "minecraft:golden_boots", + "minecraft:golden_chestplate", + "minecraft:golden_helmet", + "minecraft:golden_leggings", + "minecraft:iron_boots", + "minecraft:iron_chestplate", + "minecraft:iron_helmet", + "minecraft:iron_leggings", + "minecraft:leather_boots", + "minecraft:leather_chestplate", + "minecraft:leather_helmet", + "minecraft:leather_leggings", + "minecraft:netherite_boots", + "minecraft:netherite_chestplate", + "minecraft:netherite_helmet", + "minecraft:netherite_leggings", + "minecraft:turtle_helmet" + ], + "minecraft:vibration_damper": [ + "minecraft:black_carpet", + "minecraft:black_wool", + "minecraft:blue_carpet", + "minecraft:blue_wool", + "minecraft:brown_carpet", + "minecraft:brown_wool", + "minecraft:cyan_carpet", + "minecraft:cyan_wool", + "minecraft:gray_carpet", + "minecraft:gray_wool", + "minecraft:green_carpet", + "minecraft:green_wool", + "minecraft:light_blue_carpet", + "minecraft:light_blue_wool", + "minecraft:light_gray_carpet", + "minecraft:light_gray_wool", + "minecraft:lime_carpet", + "minecraft:lime_wool", + "minecraft:magenta_carpet", + "minecraft:magenta_wool", + "minecraft:orange_carpet", + "minecraft:orange_wool", + "minecraft:pink_carpet", + "minecraft:pink_wool", + "minecraft:purple_carpet", + "minecraft:purple_wool", + "minecraft:red_carpet", + "minecraft:red_wool", + "minecraft:white_carpet", + "minecraft:white_wool", + "minecraft:yellow_carpet", + "minecraft:yellow_wool" + ], + "minecraft:warped_stems": [ + "minecraft:stripped_warped_hyphae", + "minecraft:stripped_warped_stem", + "minecraft:warped_hyphae", + "minecraft:warped_stem" + ], + "minecraft:wooden_slabs": [ + "minecraft:acacia_slab", + "minecraft:bamboo_slab", + "minecraft:birch_slab", + "minecraft:cherry_slab", + "minecraft:crimson_slab", + "minecraft:dark_oak_slab", + "minecraft:jungle_slab", + "minecraft:mangrove_slab", + "minecraft:oak_slab", + "minecraft:pale_oak_slab", + "minecraft:spruce_slab", + "minecraft:warped_slab" + ], + "minecraft:wooden_tier": [ + "minecraft:wooden_axe", + "minecraft:wooden_hoe", + "minecraft:wooden_pickaxe", + "minecraft:wooden_shovel", + "minecraft:wooden_sword" + ], + "minecraft:wool": [ + "minecraft:black_wool", + "minecraft:blue_wool", + "minecraft:brown_wool", + "minecraft:cyan_wool", + "minecraft:gray_wool", + "minecraft:green_wool", + "minecraft:light_blue_wool", + "minecraft:light_gray_wool", + "minecraft:lime_wool", + "minecraft:magenta_wool", + "minecraft:orange_wool", + "minecraft:pink_wool", + "minecraft:purple_wool", + "minecraft:red_wool", + "minecraft:white_wool", + "minecraft:yellow_wool" + ] +} \ No newline at end of file diff --git a/core/src/main/resources/bedrock/item_tags.1_21_110.json b/core/src/main/resources/bedrock/item_tags.1_21_110.json new file mode 100644 index 000000000..b4b405e8a --- /dev/null +++ b/core/src/main/resources/bedrock/item_tags.1_21_110.json @@ -0,0 +1,896 @@ +{ + "minecraft:arrow": [ + "minecraft:arrow" + ], + "minecraft:banner": [ + "minecraft:banner" + ], + "minecraft:boat": [ + "minecraft:acacia_boat", + "minecraft:acacia_chest_boat", + "minecraft:bamboo_chest_raft", + "minecraft:bamboo_raft", + "minecraft:birch_boat", + "minecraft:birch_chest_boat", + "minecraft:cherry_boat", + "minecraft:cherry_chest_boat", + "minecraft:dark_oak_boat", + "minecraft:dark_oak_chest_boat", + "minecraft:jungle_boat", + "minecraft:jungle_chest_boat", + "minecraft:mangrove_boat", + "minecraft:mangrove_chest_boat", + "minecraft:oak_boat", + "minecraft:oak_chest_boat", + "minecraft:pale_oak_boat", + "minecraft:pale_oak_chest_boat", + "minecraft:spruce_boat", + "minecraft:spruce_chest_boat" + ], + "minecraft:boats": [ + "minecraft:acacia_boat", + "minecraft:acacia_chest_boat", + "minecraft:bamboo_chest_raft", + "minecraft:bamboo_raft", + "minecraft:birch_boat", + "minecraft:birch_chest_boat", + "minecraft:cherry_boat", + "minecraft:cherry_chest_boat", + "minecraft:dark_oak_boat", + "minecraft:dark_oak_chest_boat", + "minecraft:jungle_boat", + "minecraft:jungle_chest_boat", + "minecraft:mangrove_boat", + "minecraft:mangrove_chest_boat", + "minecraft:oak_boat", + "minecraft:oak_chest_boat", + "minecraft:pale_oak_boat", + "minecraft:pale_oak_chest_boat", + "minecraft:spruce_boat", + "minecraft:spruce_chest_boat" + ], + "minecraft:bookshelf_books": [ + "minecraft:book", + "minecraft:enchanted_book", + "minecraft:writable_book" + ], + "minecraft:chainmail_tier": [ + "minecraft:chainmail_boots", + "minecraft:chainmail_chestplate", + "minecraft:chainmail_helmet", + "minecraft:chainmail_leggings" + ], + "minecraft:coals": [ + "minecraft:charcoal", + "minecraft:coal" + ], + "minecraft:copper_tier": [ + "minecraft:copper_axe", + "minecraft:copper_boots", + "minecraft:copper_chestplate", + "minecraft:copper_helmet", + "minecraft:copper_hoe", + "minecraft:copper_leggings", + "minecraft:copper_pickaxe", + "minecraft:copper_shovel", + "minecraft:copper_sword" + ], + "minecraft:crimson_stems": [ + "minecraft:crimson_hyphae", + "minecraft:crimson_stem", + "minecraft:stripped_crimson_hyphae", + "minecraft:stripped_crimson_stem" + ], + "minecraft:decorated_pot_sherds": [ + "minecraft:angler_pottery_sherd", + "minecraft:archer_pottery_sherd", + "minecraft:arms_up_pottery_sherd", + "minecraft:blade_pottery_sherd", + "minecraft:brewer_pottery_sherd", + "minecraft:brick", + "minecraft:burn_pottery_sherd", + "minecraft:danger_pottery_sherd", + "minecraft:explorer_pottery_sherd", + "minecraft:flow_pottery_sherd", + "minecraft:friend_pottery_sherd", + "minecraft:guster_pottery_sherd", + "minecraft:heart_pottery_sherd", + "minecraft:heartbreak_pottery_sherd", + "minecraft:howl_pottery_sherd", + "minecraft:miner_pottery_sherd", + "minecraft:mourner_pottery_sherd", + "minecraft:plenty_pottery_sherd", + "minecraft:prize_pottery_sherd", + "minecraft:scrape_pottery_sherd", + "minecraft:sheaf_pottery_sherd", + "minecraft:shelter_pottery_sherd", + "minecraft:skull_pottery_sherd", + "minecraft:snort_pottery_sherd" + ], + "minecraft:diamond_tier": [ + "minecraft:diamond_axe", + "minecraft:diamond_boots", + "minecraft:diamond_chestplate", + "minecraft:diamond_helmet", + "minecraft:diamond_hoe", + "minecraft:diamond_leggings", + "minecraft:diamond_pickaxe", + "minecraft:diamond_shovel", + "minecraft:diamond_sword", + "minecraft:mace" + ], + "minecraft:digger": [ + "minecraft:copper_axe", + "minecraft:copper_hoe", + "minecraft:copper_pickaxe", + "minecraft:copper_shovel", + "minecraft:diamond_axe", + "minecraft:diamond_hoe", + "minecraft:diamond_pickaxe", + "minecraft:diamond_shovel", + "minecraft:golden_axe", + "minecraft:golden_hoe", + "minecraft:golden_pickaxe", + "minecraft:golden_shovel", + "minecraft:iron_axe", + "minecraft:iron_hoe", + "minecraft:iron_pickaxe", + "minecraft:iron_shovel", + "minecraft:netherite_axe", + "minecraft:netherite_hoe", + "minecraft:netherite_pickaxe", + "minecraft:netherite_shovel", + "minecraft:stone_axe", + "minecraft:stone_hoe", + "minecraft:stone_pickaxe", + "minecraft:stone_shovel", + "minecraft:wooden_axe", + "minecraft:wooden_hoe", + "minecraft:wooden_pickaxe", + "minecraft:wooden_shovel" + ], + "minecraft:door": [ + "minecraft:acacia_door", + "minecraft:bamboo_door", + "minecraft:birch_door", + "minecraft:cherry_door", + "minecraft:copper_door", + "minecraft:crimson_door", + "minecraft:dark_oak_door", + "minecraft:exposed_copper_door", + "minecraft:iron_door", + "minecraft:jungle_door", + "minecraft:mangrove_door", + "minecraft:oxidized_copper_door", + "minecraft:pale_oak_door", + "minecraft:spruce_door", + "minecraft:warped_door", + "minecraft:waxed_copper_door", + "minecraft:waxed_exposed_copper_door", + "minecraft:waxed_oxidized_copper_door", + "minecraft:waxed_weathered_copper_door", + "minecraft:weathered_copper_door", + "minecraft:wooden_door" + ], + "minecraft:egg": [ + "minecraft:blue_egg", + "minecraft:brown_egg", + "minecraft:egg" + ], + "minecraft:golden_tier": [ + "minecraft:golden_axe", + "minecraft:golden_boots", + "minecraft:golden_chestplate", + "minecraft:golden_helmet", + "minecraft:golden_hoe", + "minecraft:golden_leggings", + "minecraft:golden_pickaxe", + "minecraft:golden_shovel", + "minecraft:golden_sword" + ], + "minecraft:hanging_actor": [ + "minecraft:painting" + ], + "minecraft:hanging_sign": [ + "minecraft:acacia_hanging_sign", + "minecraft:bamboo_hanging_sign", + "minecraft:birch_hanging_sign", + "minecraft:cherry_hanging_sign", + "minecraft:crimson_hanging_sign", + "minecraft:dark_oak_hanging_sign", + "minecraft:jungle_hanging_sign", + "minecraft:mangrove_hanging_sign", + "minecraft:oak_hanging_sign", + "minecraft:pale_oak_hanging_sign", + "minecraft:spruce_hanging_sign", + "minecraft:warped_hanging_sign" + ], + "minecraft:harness": [ + "minecraft:black_harness", + "minecraft:blue_harness", + "minecraft:brown_harness", + "minecraft:cyan_harness", + "minecraft:gray_harness", + "minecraft:green_harness", + "minecraft:light_blue_harness", + "minecraft:light_gray_harness", + "minecraft:lime_harness", + "minecraft:magenta_harness", + "minecraft:orange_harness", + "minecraft:pink_harness", + "minecraft:purple_harness", + "minecraft:red_harness", + "minecraft:white_harness", + "minecraft:yellow_harness" + ], + "minecraft:horse_armor": [ + "minecraft:copper_horse_armor", + "minecraft:diamond_horse_armor", + "minecraft:golden_horse_armor", + "minecraft:iron_horse_armor", + "minecraft:leather_horse_armor" + ], + "minecraft:iron_tier": [ + "minecraft:iron_axe", + "minecraft:iron_boots", + "minecraft:iron_chestplate", + "minecraft:iron_helmet", + "minecraft:iron_hoe", + "minecraft:iron_leggings", + "minecraft:iron_pickaxe", + "minecraft:iron_shovel", + "minecraft:iron_sword" + ], + "minecraft:is_armor": [ + "minecraft:chainmail_boots", + "minecraft:chainmail_chestplate", + "minecraft:chainmail_helmet", + "minecraft:chainmail_leggings", + "minecraft:copper_boots", + "minecraft:copper_chestplate", + "minecraft:copper_helmet", + "minecraft:copper_leggings", + "minecraft:diamond_boots", + "minecraft:diamond_chestplate", + "minecraft:diamond_helmet", + "minecraft:diamond_leggings", + "minecraft:elytra", + "minecraft:golden_boots", + "minecraft:golden_chestplate", + "minecraft:golden_helmet", + "minecraft:golden_leggings", + "minecraft:iron_boots", + "minecraft:iron_chestplate", + "minecraft:iron_helmet", + "minecraft:iron_leggings", + "minecraft:leather_boots", + "minecraft:leather_chestplate", + "minecraft:leather_helmet", + "minecraft:leather_leggings", + "minecraft:netherite_boots", + "minecraft:netherite_chestplate", + "minecraft:netherite_helmet", + "minecraft:netherite_leggings", + "minecraft:turtle_helmet" + ], + "minecraft:is_axe": [ + "minecraft:copper_axe", + "minecraft:diamond_axe", + "minecraft:golden_axe", + "minecraft:iron_axe", + "minecraft:netherite_axe", + "minecraft:stone_axe", + "minecraft:wooden_axe" + ], + "minecraft:is_cooked": [ + "minecraft:cooked_beef", + "minecraft:cooked_chicken", + "minecraft:cooked_cod", + "minecraft:cooked_mutton", + "minecraft:cooked_porkchop", + "minecraft:cooked_rabbit", + "minecraft:cooked_salmon", + "minecraft:rabbit_stew" + ], + "minecraft:is_fish": [ + "minecraft:cod", + "minecraft:cooked_cod", + "minecraft:cooked_salmon", + "minecraft:pufferfish", + "minecraft:salmon", + "minecraft:tropical_fish" + ], + "minecraft:is_food": [ + "minecraft:apple", + "minecraft:baked_potato", + "minecraft:beef", + "minecraft:beetroot", + "minecraft:beetroot_soup", + "minecraft:bread", + "minecraft:carrot", + "minecraft:chicken", + "minecraft:chorus_fruit", + "minecraft:cod", + "minecraft:cooked_beef", + "minecraft:cooked_chicken", + "minecraft:cooked_cod", + "minecraft:cooked_mutton", + "minecraft:cooked_porkchop", + "minecraft:cooked_rabbit", + "minecraft:cooked_salmon", + "minecraft:cookie", + "minecraft:dried_kelp", + "minecraft:enchanted_golden_apple", + "minecraft:golden_apple", + "minecraft:golden_carrot", + "minecraft:honey_bottle", + "minecraft:melon_slice", + "minecraft:mushroom_stew", + "minecraft:mutton", + "minecraft:poisonous_potato", + "minecraft:porkchop", + "minecraft:potato", + "minecraft:pufferfish", + "minecraft:pumpkin_pie", + "minecraft:rabbit", + "minecraft:rabbit_stew", + "minecraft:rotten_flesh", + "minecraft:salmon", + "minecraft:spider_eye", + "minecraft:suspicious_stew", + "minecraft:sweet_berries", + "minecraft:tropical_fish" + ], + "minecraft:is_hoe": [ + "minecraft:copper_hoe", + "minecraft:diamond_hoe", + "minecraft:golden_hoe", + "minecraft:iron_hoe", + "minecraft:netherite_hoe", + "minecraft:stone_hoe", + "minecraft:wooden_hoe" + ], + "minecraft:is_meat": [ + "minecraft:beef", + "minecraft:chicken", + "minecraft:cooked_beef", + "minecraft:cooked_chicken", + "minecraft:cooked_mutton", + "minecraft:cooked_porkchop", + "minecraft:cooked_rabbit", + "minecraft:mutton", + "minecraft:porkchop", + "minecraft:rabbit", + "minecraft:rabbit_stew", + "minecraft:rotten_flesh" + ], + "minecraft:is_minecart": [ + "minecraft:chest_minecart", + "minecraft:command_block_minecart", + "minecraft:hopper_minecart", + "minecraft:minecart", + "minecraft:tnt_minecart" + ], + "minecraft:is_pickaxe": [ + "minecraft:copper_pickaxe", + "minecraft:diamond_pickaxe", + "minecraft:golden_pickaxe", + "minecraft:iron_pickaxe", + "minecraft:netherite_pickaxe", + "minecraft:stone_pickaxe", + "minecraft:wooden_pickaxe" + ], + "minecraft:is_shears": [ + "minecraft:shears" + ], + "minecraft:is_shovel": [ + "minecraft:copper_shovel", + "minecraft:diamond_shovel", + "minecraft:golden_shovel", + "minecraft:iron_shovel", + "minecraft:netherite_shovel", + "minecraft:stone_shovel", + "minecraft:wooden_shovel" + ], + "minecraft:is_sword": [ + "minecraft:copper_sword", + "minecraft:diamond_sword", + "minecraft:golden_sword", + "minecraft:iron_sword", + "minecraft:mace", + "minecraft:netherite_sword", + "minecraft:stone_sword", + "minecraft:wooden_sword" + ], + "minecraft:is_tool": [ + "minecraft:copper_axe", + "minecraft:copper_hoe", + "minecraft:copper_pickaxe", + "minecraft:copper_shovel", + "minecraft:copper_sword", + "minecraft:diamond_axe", + "minecraft:diamond_hoe", + "minecraft:diamond_pickaxe", + "minecraft:diamond_shovel", + "minecraft:diamond_sword", + "minecraft:golden_axe", + "minecraft:golden_hoe", + "minecraft:golden_pickaxe", + "minecraft:golden_shovel", + "minecraft:golden_sword", + "minecraft:iron_axe", + "minecraft:iron_hoe", + "minecraft:iron_pickaxe", + "minecraft:iron_shovel", + "minecraft:iron_sword", + "minecraft:mace", + "minecraft:netherite_axe", + "minecraft:netherite_hoe", + "minecraft:netherite_pickaxe", + "minecraft:netherite_shovel", + "minecraft:netherite_sword", + "minecraft:stone_axe", + "minecraft:stone_hoe", + "minecraft:stone_pickaxe", + "minecraft:stone_shovel", + "minecraft:stone_sword", + "minecraft:wooden_axe", + "minecraft:wooden_hoe", + "minecraft:wooden_pickaxe", + "minecraft:wooden_shovel", + "minecraft:wooden_sword" + ], + "minecraft:is_trident": [ + "minecraft:trident" + ], + "minecraft:leather_tier": [ + "minecraft:leather_boots", + "minecraft:leather_chestplate", + "minecraft:leather_helmet", + "minecraft:leather_leggings" + ], + "minecraft:lectern_books": [ + "minecraft:writable_book" + ], + "minecraft:logs": [ + "minecraft:acacia_log", + "minecraft:acacia_wood", + "minecraft:birch_log", + "minecraft:birch_wood", + "minecraft:cherry_log", + "minecraft:cherry_wood", + "minecraft:crimson_hyphae", + "minecraft:crimson_stem", + "minecraft:dark_oak_log", + "minecraft:dark_oak_wood", + "minecraft:jungle_log", + "minecraft:jungle_wood", + "minecraft:mangrove_log", + "minecraft:mangrove_wood", + "minecraft:oak_log", + "minecraft:oak_wood", + "minecraft:pale_oak_log", + "minecraft:pale_oak_wood", + "minecraft:spruce_log", + "minecraft:spruce_wood", + "minecraft:stripped_acacia_log", + "minecraft:stripped_acacia_wood", + "minecraft:stripped_birch_log", + "minecraft:stripped_birch_wood", + "minecraft:stripped_cherry_log", + "minecraft:stripped_cherry_wood", + "minecraft:stripped_crimson_hyphae", + "minecraft:stripped_crimson_stem", + "minecraft:stripped_dark_oak_log", + "minecraft:stripped_dark_oak_wood", + "minecraft:stripped_jungle_log", + "minecraft:stripped_jungle_wood", + "minecraft:stripped_mangrove_log", + "minecraft:stripped_mangrove_wood", + "minecraft:stripped_oak_log", + "minecraft:stripped_oak_wood", + "minecraft:stripped_pale_oak_log", + "minecraft:stripped_pale_oak_wood", + "minecraft:stripped_spruce_log", + "minecraft:stripped_spruce_wood", + "minecraft:stripped_warped_hyphae", + "minecraft:stripped_warped_stem", + "minecraft:warped_hyphae", + "minecraft:warped_stem" + ], + "minecraft:logs_that_burn": [ + "minecraft:acacia_log", + "minecraft:acacia_wood", + "minecraft:birch_log", + "minecraft:birch_wood", + "minecraft:cherry_log", + "minecraft:cherry_wood", + "minecraft:dark_oak_log", + "minecraft:dark_oak_wood", + "minecraft:jungle_log", + "minecraft:jungle_wood", + "minecraft:mangrove_log", + "minecraft:mangrove_wood", + "minecraft:oak_log", + "minecraft:oak_wood", + "minecraft:pale_oak_log", + "minecraft:pale_oak_wood", + "minecraft:spruce_log", + "minecraft:spruce_wood", + "minecraft:stripped_acacia_log", + "minecraft:stripped_acacia_wood", + "minecraft:stripped_birch_log", + "minecraft:stripped_birch_wood", + "minecraft:stripped_cherry_log", + "minecraft:stripped_cherry_wood", + "minecraft:stripped_dark_oak_log", + "minecraft:stripped_dark_oak_wood", + "minecraft:stripped_jungle_log", + "minecraft:stripped_jungle_wood", + "minecraft:stripped_mangrove_log", + "minecraft:stripped_mangrove_wood", + "minecraft:stripped_oak_log", + "minecraft:stripped_oak_wood", + "minecraft:stripped_pale_oak_log", + "minecraft:stripped_pale_oak_wood", + "minecraft:stripped_spruce_log", + "minecraft:stripped_spruce_wood" + ], + "minecraft:mangrove_logs": [ + "minecraft:mangrove_log", + "minecraft:mangrove_wood", + "minecraft:stripped_mangrove_log", + "minecraft:stripped_mangrove_wood" + ], + "minecraft:music_disc": [ + "minecraft:music_disc_11", + "minecraft:music_disc_13", + "minecraft:music_disc_5", + "minecraft:music_disc_blocks", + "minecraft:music_disc_cat", + "minecraft:music_disc_chirp", + "minecraft:music_disc_creator", + "minecraft:music_disc_creator_music_box", + "minecraft:music_disc_far", + "minecraft:music_disc_lava_chicken", + "minecraft:music_disc_mall", + "minecraft:music_disc_mellohi", + "minecraft:music_disc_otherside", + "minecraft:music_disc_pigstep", + "minecraft:music_disc_precipice", + "minecraft:music_disc_relic", + "minecraft:music_disc_stal", + "minecraft:music_disc_strad", + "minecraft:music_disc_tears", + "minecraft:music_disc_wait", + "minecraft:music_disc_ward" + ], + "minecraft:netherite_tier": [ + "minecraft:netherite_axe", + "minecraft:netherite_boots", + "minecraft:netherite_chestplate", + "minecraft:netherite_helmet", + "minecraft:netherite_hoe", + "minecraft:netherite_leggings", + "minecraft:netherite_pickaxe", + "minecraft:netherite_shovel", + "minecraft:netherite_sword" + ], + "minecraft:planks": [ + "minecraft:acacia_planks", + "minecraft:bamboo_planks", + "minecraft:birch_planks", + "minecraft:cherry_planks", + "minecraft:crimson_planks", + "minecraft:dark_oak_planks", + "minecraft:jungle_planks", + "minecraft:mangrove_planks", + "minecraft:oak_planks", + "minecraft:pale_oak_planks", + "minecraft:spruce_planks", + "minecraft:warped_planks" + ], + "minecraft:sand": [ + "minecraft:red_sand", + "minecraft:sand" + ], + "minecraft:sign": [ + "minecraft:acacia_hanging_sign", + "minecraft:acacia_sign", + "minecraft:bamboo_hanging_sign", + "minecraft:bamboo_sign", + "minecraft:birch_hanging_sign", + "minecraft:birch_sign", + "minecraft:cherry_hanging_sign", + "minecraft:cherry_sign", + "minecraft:crimson_hanging_sign", + "minecraft:crimson_sign", + "minecraft:dark_oak_hanging_sign", + "minecraft:dark_oak_sign", + "minecraft:jungle_hanging_sign", + "minecraft:jungle_sign", + "minecraft:mangrove_hanging_sign", + "minecraft:mangrove_sign", + "minecraft:oak_hanging_sign", + "minecraft:oak_sign", + "minecraft:pale_oak_hanging_sign", + "minecraft:pale_oak_sign", + "minecraft:spruce_hanging_sign", + "minecraft:spruce_sign", + "minecraft:warped_hanging_sign", + "minecraft:warped_sign" + ], + "minecraft:soul_fire_base_blocks": [ + "minecraft:soul_sand", + "minecraft:soul_soil" + ], + "minecraft:spawn_egg": [ + "minecraft:allay_spawn_egg", + "minecraft:armadillo_spawn_egg", + "minecraft:axolotl_spawn_egg", + "minecraft:bat_spawn_egg", + "minecraft:bee_spawn_egg", + "minecraft:blaze_spawn_egg", + "minecraft:bogged_spawn_egg", + "minecraft:breeze_spawn_egg", + "minecraft:camel_spawn_egg", + "minecraft:cat_spawn_egg", + "minecraft:cave_spider_spawn_egg", + "minecraft:chicken_spawn_egg", + "minecraft:cod_spawn_egg", + "minecraft:copper_golem_spawn_egg", + "minecraft:cow_spawn_egg", + "minecraft:creaking_spawn_egg", + "minecraft:creeper_spawn_egg", + "minecraft:dolphin_spawn_egg", + "minecraft:donkey_spawn_egg", + "minecraft:drowned_spawn_egg", + "minecraft:elder_guardian_spawn_egg", + "minecraft:ender_dragon_spawn_egg", + "minecraft:enderman_spawn_egg", + "minecraft:endermite_spawn_egg", + "minecraft:evoker_spawn_egg", + "minecraft:fox_spawn_egg", + "minecraft:frog_spawn_egg", + "minecraft:ghast_spawn_egg", + "minecraft:glow_squid_spawn_egg", + "minecraft:goat_spawn_egg", + "minecraft:guardian_spawn_egg", + "minecraft:happy_ghast_spawn_egg", + "minecraft:hoglin_spawn_egg", + "minecraft:horse_spawn_egg", + "minecraft:husk_spawn_egg", + "minecraft:iron_golem_spawn_egg", + "minecraft:llama_spawn_egg", + "minecraft:magma_cube_spawn_egg", + "minecraft:mooshroom_spawn_egg", + "minecraft:mule_spawn_egg", + "minecraft:ocelot_spawn_egg", + "minecraft:panda_spawn_egg", + "minecraft:parrot_spawn_egg", + "minecraft:phantom_spawn_egg", + "minecraft:pig_spawn_egg", + "minecraft:piglin_brute_spawn_egg", + "minecraft:piglin_spawn_egg", + "minecraft:pillager_spawn_egg", + "minecraft:polar_bear_spawn_egg", + "minecraft:pufferfish_spawn_egg", + "minecraft:rabbit_spawn_egg", + "minecraft:ravager_spawn_egg", + "minecraft:salmon_spawn_egg", + "minecraft:sheep_spawn_egg", + "minecraft:shulker_spawn_egg", + "minecraft:silverfish_spawn_egg", + "minecraft:skeleton_horse_spawn_egg", + "minecraft:skeleton_spawn_egg", + "minecraft:slime_spawn_egg", + "minecraft:sniffer_spawn_egg", + "minecraft:snow_golem_spawn_egg", + "minecraft:spider_spawn_egg", + "minecraft:squid_spawn_egg", + "minecraft:stray_spawn_egg", + "minecraft:strider_spawn_egg", + "minecraft:tadpole_spawn_egg", + "minecraft:trader_llama_spawn_egg", + "minecraft:tropical_fish_spawn_egg", + "minecraft:turtle_spawn_egg", + "minecraft:vex_spawn_egg", + "minecraft:villager_spawn_egg", + "minecraft:vindicator_spawn_egg", + "minecraft:wandering_trader_spawn_egg", + "minecraft:warden_spawn_egg", + "minecraft:witch_spawn_egg", + "minecraft:wither_skeleton_spawn_egg", + "minecraft:wither_spawn_egg", + "minecraft:wolf_spawn_egg", + "minecraft:zoglin_spawn_egg", + "minecraft:zombie_horse_spawn_egg", + "minecraft:zombie_pigman_spawn_egg", + "minecraft:zombie_spawn_egg", + "minecraft:zombie_villager_spawn_egg" + ], + "minecraft:stone_bricks": [ + "minecraft:chiseled_stone_bricks", + "minecraft:cracked_stone_bricks", + "minecraft:mossy_stone_bricks", + "minecraft:stone_bricks" + ], + "minecraft:stone_crafting_materials": [ + "minecraft:blackstone", + "minecraft:cobbled_deepslate", + "minecraft:cobblestone" + ], + "minecraft:stone_tier": [ + "minecraft:stone_axe", + "minecraft:stone_hoe", + "minecraft:stone_pickaxe", + "minecraft:stone_shovel", + "minecraft:stone_sword" + ], + "minecraft:stone_tool_materials": [ + "minecraft:blackstone", + "minecraft:cobbled_deepslate", + "minecraft:cobblestone" + ], + "minecraft:transform_materials": [ + "minecraft:netherite_ingot" + ], + "minecraft:transform_templates": [ + "minecraft:netherite_upgrade_smithing_template" + ], + "minecraft:transformable_items": [ + "minecraft:diamond_axe", + "minecraft:diamond_boots", + "minecraft:diamond_chestplate", + "minecraft:diamond_helmet", + "minecraft:diamond_hoe", + "minecraft:diamond_leggings", + "minecraft:diamond_pickaxe", + "minecraft:diamond_shovel", + "minecraft:diamond_sword", + "minecraft:golden_boots" + ], + "minecraft:trim_materials": [ + "minecraft:amethyst_shard", + "minecraft:copper_ingot", + "minecraft:diamond", + "minecraft:emerald", + "minecraft:gold_ingot", + "minecraft:iron_ingot", + "minecraft:lapis_lazuli", + "minecraft:netherite_ingot", + "minecraft:quartz", + "minecraft:redstone", + "minecraft:resin_brick" + ], + "minecraft:trim_templates": [ + "minecraft:bolt_armor_trim_smithing_template", + "minecraft:coast_armor_trim_smithing_template", + "minecraft:dune_armor_trim_smithing_template", + "minecraft:eye_armor_trim_smithing_template", + "minecraft:flow_armor_trim_smithing_template", + "minecraft:host_armor_trim_smithing_template", + "minecraft:raiser_armor_trim_smithing_template", + "minecraft:rib_armor_trim_smithing_template", + "minecraft:sentry_armor_trim_smithing_template", + "minecraft:shaper_armor_trim_smithing_template", + "minecraft:silence_armor_trim_smithing_template", + "minecraft:snout_armor_trim_smithing_template", + "minecraft:spire_armor_trim_smithing_template", + "minecraft:tide_armor_trim_smithing_template", + "minecraft:vex_armor_trim_smithing_template", + "minecraft:ward_armor_trim_smithing_template", + "minecraft:wayfinder_armor_trim_smithing_template", + "minecraft:wild_armor_trim_smithing_template" + ], + "minecraft:trimmable_armors": [ + "minecraft:chainmail_boots", + "minecraft:chainmail_chestplate", + "minecraft:chainmail_helmet", + "minecraft:chainmail_leggings", + "minecraft:copper_boots", + "minecraft:copper_chestplate", + "minecraft:copper_helmet", + "minecraft:copper_leggings", + "minecraft:diamond_boots", + "minecraft:diamond_chestplate", + "minecraft:diamond_helmet", + "minecraft:diamond_leggings", + "minecraft:golden_boots", + "minecraft:golden_chestplate", + "minecraft:golden_helmet", + "minecraft:golden_leggings", + "minecraft:iron_boots", + "minecraft:iron_chestplate", + "minecraft:iron_helmet", + "minecraft:iron_leggings", + "minecraft:leather_boots", + "minecraft:leather_chestplate", + "minecraft:leather_helmet", + "minecraft:leather_leggings", + "minecraft:netherite_boots", + "minecraft:netherite_chestplate", + "minecraft:netherite_helmet", + "minecraft:netherite_leggings", + "minecraft:turtle_helmet" + ], + "minecraft:vibration_damper": [ + "minecraft:black_carpet", + "minecraft:black_wool", + "minecraft:blue_carpet", + "minecraft:blue_wool", + "minecraft:brown_carpet", + "minecraft:brown_wool", + "minecraft:cyan_carpet", + "minecraft:cyan_wool", + "minecraft:gray_carpet", + "minecraft:gray_wool", + "minecraft:green_carpet", + "minecraft:green_wool", + "minecraft:light_blue_carpet", + "minecraft:light_blue_wool", + "minecraft:light_gray_carpet", + "minecraft:light_gray_wool", + "minecraft:lime_carpet", + "minecraft:lime_wool", + "minecraft:magenta_carpet", + "minecraft:magenta_wool", + "minecraft:orange_carpet", + "minecraft:orange_wool", + "minecraft:pink_carpet", + "minecraft:pink_wool", + "minecraft:purple_carpet", + "minecraft:purple_wool", + "minecraft:red_carpet", + "minecraft:red_wool", + "minecraft:white_carpet", + "minecraft:white_wool", + "minecraft:yellow_carpet", + "minecraft:yellow_wool" + ], + "minecraft:warped_stems": [ + "minecraft:stripped_warped_hyphae", + "minecraft:stripped_warped_stem", + "minecraft:warped_hyphae", + "minecraft:warped_stem" + ], + "minecraft:wooden_slabs": [ + "minecraft:acacia_slab", + "minecraft:bamboo_slab", + "minecraft:birch_slab", + "minecraft:cherry_slab", + "minecraft:crimson_slab", + "minecraft:dark_oak_slab", + "minecraft:jungle_slab", + "minecraft:mangrove_slab", + "minecraft:oak_slab", + "minecraft:pale_oak_slab", + "minecraft:spruce_slab", + "minecraft:warped_slab" + ], + "minecraft:wooden_tier": [ + "minecraft:wooden_axe", + "minecraft:wooden_hoe", + "minecraft:wooden_pickaxe", + "minecraft:wooden_shovel", + "minecraft:wooden_sword" + ], + "minecraft:wool": [ + "minecraft:black_wool", + "minecraft:blue_wool", + "minecraft:brown_wool", + "minecraft:cyan_wool", + "minecraft:gray_wool", + "minecraft:green_wool", + "minecraft:light_blue_wool", + "minecraft:light_gray_wool", + "minecraft:lime_wool", + "minecraft:magenta_wool", + "minecraft:orange_wool", + "minecraft:pink_wool", + "minecraft:purple_wool", + "minecraft:red_wool", + "minecraft:white_wool", + "minecraft:yellow_wool" + ] +} \ No newline at end of file diff --git a/core/src/main/resources/bedrock/item_tags.1_21_70.json b/core/src/main/resources/bedrock/item_tags.1_21_90.json similarity index 100% rename from core/src/main/resources/bedrock/item_tags.1_21_70.json rename to core/src/main/resources/bedrock/item_tags.1_21_90.json diff --git a/core/src/main/resources/bedrock/runtime_item_states.1_21_80.json b/core/src/main/resources/bedrock/runtime_item_states.1_21_110.json similarity index 95% rename from core/src/main/resources/bedrock/runtime_item_states.1_21_80.json rename to core/src/main/resources/bedrock/runtime_item_states.1_21_110.json index d3d59b8a4..a28e42057 100644 --- a/core/src/main/resources/bedrock/runtime_item_states.1_21_80.json +++ b/core/src/main/resources/bedrock/runtime_item_states.1_21_110.json @@ -13,7 +13,7 @@ }, { "name": "minecraft:acacia_chest_boat", - "id": 679, + "id": 678, "version": 2, "componentBased": false }, @@ -77,6 +77,12 @@ "version": 2, "componentBased": false }, + { + "name": "minecraft:acacia_shelf", + "id": -1051, + "version": 2, + "componentBased": false + }, { "name": "minecraft:acacia_sign", "id": 612, @@ -139,7 +145,7 @@ }, { "name": "minecraft:allay_spawn_egg", - "id": 668, + "id": 667, "version": 2, "componentBased": false }, @@ -169,7 +175,7 @@ }, { "name": "minecraft:amethyst_shard", - "id": 661, + "id": 660, "version": 2, "componentBased": false }, @@ -211,7 +217,7 @@ }, { "name": "minecraft:angler_pottery_sherd", - "id": 693, + "id": 692, "version": 2, "componentBased": false }, @@ -229,19 +235,19 @@ }, { "name": "minecraft:archer_pottery_sherd", - "id": 694, + "id": 693, "version": 2, "componentBased": false }, { "name": "minecraft:armadillo_scute", - "id": 740, + "id": 739, "version": 2, "componentBased": false }, { "name": "minecraft:armadillo_spawn_egg", - "id": 739, + "id": 738, "version": 2, "componentBased": false }, @@ -253,7 +259,7 @@ }, { "name": "minecraft:arms_up_pottery_sherd", - "id": 695, + "id": 694, "version": 2, "componentBased": false }, @@ -331,7 +337,7 @@ }, { "name": "minecraft:bamboo_chest_raft", - "id": 691, + "id": 690, "version": 2, "componentBased": false }, @@ -403,7 +409,7 @@ }, { "name": "minecraft:bamboo_raft", - "id": 690, + "id": 689, "version": 2, "componentBased": false }, @@ -413,9 +419,15 @@ "version": 2, "componentBased": false }, + { + "name": "minecraft:bamboo_shelf", + "id": -1056, + "version": 2, + "componentBased": false + }, { "name": "minecraft:bamboo_sign", - "id": 689, + "id": 688, "version": 2, "componentBased": false }, @@ -457,7 +469,7 @@ }, { "name": "minecraft:banner_pattern", - "id": 812, + "id": 825, "version": 2, "componentBased": false }, @@ -571,7 +583,7 @@ }, { "name": "minecraft:birch_chest_boat", - "id": 676, + "id": 675, "version": 2, "componentBased": false }, @@ -635,6 +647,12 @@ "version": 2, "componentBased": false }, + { + "name": "minecraft:birch_shelf", + "id": -1049, + "version": 2, + "componentBased": false + }, { "name": "minecraft:birch_sign", "id": 610, @@ -727,7 +745,7 @@ }, { "name": "minecraft:black_harness", - "id": 752, + "id": 751, "version": 2, "componentBased": false }, @@ -793,7 +811,7 @@ }, { "name": "minecraft:blade_pottery_sherd", - "id": 696, + "id": 695, "version": 2, "componentBased": false }, @@ -871,7 +889,7 @@ }, { "name": "minecraft:blue_egg", - "id": 749, + "id": 748, "version": 2, "componentBased": false }, @@ -883,7 +901,7 @@ }, { "name": "minecraft:blue_harness", - "id": 753, + "id": 752, "version": 2, "componentBased": false }, @@ -937,7 +955,7 @@ }, { "name": "minecraft:boat", - "id": 810, + "id": 823, "version": 2, "componentBased": false }, @@ -949,7 +967,7 @@ }, { "name": "minecraft:bolt_armor_trim_smithing_template", - "id": 735, + "id": 734, "version": 2, "componentBased": false }, @@ -1051,7 +1069,7 @@ }, { "name": "minecraft:brewer_pottery_sherd", - "id": 697, + "id": 696, "version": 2, "componentBased": false }, @@ -1141,7 +1159,7 @@ }, { "name": "minecraft:brown_egg", - "id": 750, + "id": 749, "version": 2, "componentBased": false }, @@ -1153,7 +1171,7 @@ }, { "name": "minecraft:brown_harness", - "id": 754, + "id": 753, "version": 2, "componentBased": false }, @@ -1201,7 +1219,7 @@ }, { "name": "minecraft:brush", - "id": 716, + "id": 715, "version": 2, "componentBased": false }, @@ -1255,7 +1273,7 @@ }, { "name": "minecraft:burn_pottery_sherd", - "id": 698, + "id": 697, "version": 2, "componentBased": false }, @@ -1297,7 +1315,7 @@ }, { "name": "minecraft:camel_spawn_egg", - "id": 692, + "id": 691, "version": 2, "componentBased": false }, @@ -1327,7 +1345,7 @@ }, { "name": "minecraft:carpet", - "id": 769, + "id": 780, "version": 2, "componentBased": false }, @@ -1397,12 +1415,6 @@ "version": 2, "componentBased": false }, - { - "name": "minecraft:chain", - "id": 656, - "version": 2, - "componentBased": true - }, { "name": "minecraft:chain_command_block", "id": 189, @@ -1453,13 +1465,13 @@ }, { "name": "minecraft:chemistry_table", - "id": 804, + "id": 817, "version": 2, "componentBased": false }, { "name": "minecraft:cherry_boat", - "id": 686, + "id": 685, "version": 2, "componentBased": false }, @@ -1471,7 +1483,7 @@ }, { "name": "minecraft:cherry_chest_boat", - "id": 687, + "id": 686, "version": 2, "componentBased": false }, @@ -1535,9 +1547,15 @@ "version": 2, "componentBased": false }, + { + "name": "minecraft:cherry_shelf", + "id": -1054, + "version": 2, + "componentBased": false + }, { "name": "minecraft:cherry_sign", - "id": 688, + "id": 687, "version": 2, "componentBased": false }, @@ -1585,7 +1603,7 @@ }, { "name": "minecraft:chest_boat", - "id": 682, + "id": 681, "version": 2, "componentBased": false }, @@ -1759,7 +1777,7 @@ }, { "name": "minecraft:coast_armor_trim_smithing_template", - "id": 720, + "id": 719, "version": 2, "componentBased": false }, @@ -1855,7 +1873,7 @@ }, { "name": "minecraft:colored_torch_bp", - "id": 808, + "id": 821, "version": 2, "componentBased": false }, @@ -1879,7 +1897,7 @@ }, { "name": "minecraft:colored_torch_rg", - "id": 807, + "id": 820, "version": 2, "componentBased": false }, @@ -1927,13 +1945,13 @@ }, { "name": "minecraft:concrete", - "id": 795, + "id": 806, "version": 2, "componentBased": false }, { "name": "minecraft:concrete_powder", - "id": 796, + "id": 807, "version": 2, "componentBased": false }, @@ -1991,42 +2009,150 @@ "version": 0, "componentBased": false }, + { + "name": "minecraft:copper_axe", + "id": 771, + "version": 2, + "componentBased": false + }, + { + "name": "minecraft:copper_bars", + "id": -1066, + "version": 2, + "componentBased": false + }, { "name": "minecraft:copper_block", "id": -340, "version": 2, "componentBased": false }, + { + "name": "minecraft:copper_boots", + "id": 776, + "version": 2, + "componentBased": false + }, { "name": "minecraft:copper_bulb", "id": -776, "version": 2, "componentBased": false }, + { + "name": "minecraft:copper_chain", + "id": -1074, + "version": 2, + "componentBased": false + }, + { + "name": "minecraft:copper_chest", + "id": -1031, + "version": 2, + "componentBased": false + }, + { + "name": "minecraft:copper_chestplate", + "id": 774, + "version": 2, + "componentBased": false + }, { "name": "minecraft:copper_door", "id": -784, "version": 2, "componentBased": false }, + { + "name": "minecraft:copper_golem_spawn_egg", + "id": 767, + "version": 2, + "componentBased": false + }, + { + "name": "minecraft:copper_golem_statue", + "id": -1039, + "version": 2, + "componentBased": false + }, { "name": "minecraft:copper_grate", "id": -768, "version": 2, "componentBased": false }, + { + "name": "minecraft:copper_helmet", + "id": 773, + "version": 2, + "componentBased": false + }, + { + "name": "minecraft:copper_hoe", + "id": 772, + "version": 2, + "componentBased": false + }, + { + "name": "minecraft:copper_horse_armor", + "id": 778, + "version": 2, + "componentBased": false + }, { "name": "minecraft:copper_ingot", "id": 538, "version": 2, "componentBased": false }, + { + "name": "minecraft:copper_lantern", + "id": -1083, + "version": 2, + "componentBased": false + }, + { + "name": "minecraft:copper_leggings", + "id": 775, + "version": 2, + "componentBased": false + }, + { + "name": "minecraft:copper_nugget", + "id": 777, + "version": 2, + "componentBased": false + }, { "name": "minecraft:copper_ore", "id": -311, "version": 2, "componentBased": false }, + { + "name": "minecraft:copper_pickaxe", + "id": 770, + "version": 2, + "componentBased": false + }, + { + "name": "minecraft:copper_shovel", + "id": 769, + "version": 2, + "componentBased": false + }, + { + "name": "minecraft:copper_sword", + "id": 768, + "version": 2, + "componentBased": false + }, + { + "name": "minecraft:copper_torch", + "id": -1082, + "version": 2, + "componentBased": false + }, { "name": "minecraft:copper_trapdoor", "id": -792, @@ -2035,25 +2161,25 @@ }, { "name": "minecraft:coral", - "id": 791, + "id": 802, "version": 2, "componentBased": false }, { "name": "minecraft:coral_block", - "id": 773, + "id": 784, "version": 2, "componentBased": false }, { "name": "minecraft:coral_fan", - "id": 782, + "id": 793, "version": 2, "componentBased": false }, { "name": "minecraft:coral_fan_dead", - "id": 783, + "id": 794, "version": 2, "componentBased": false }, @@ -2119,7 +2245,7 @@ }, { "name": "minecraft:creaking_spawn_egg", - "id": 747, + "id": 746, "version": 2, "componentBased": false }, @@ -2213,6 +2339,12 @@ "version": 2, "componentBased": false }, + { + "name": "minecraft:crimson_shelf", + "id": -1057, + "version": 2, + "componentBased": false + }, { "name": "minecraft:crimson_sign", "id": 651, @@ -2371,7 +2503,7 @@ }, { "name": "minecraft:cyan_harness", - "id": 755, + "id": 754, "version": 2, "componentBased": false }, @@ -2419,7 +2551,7 @@ }, { "name": "minecraft:danger_pottery_sherd", - "id": 699, + "id": 698, "version": 2, "componentBased": false }, @@ -2437,7 +2569,7 @@ }, { "name": "minecraft:dark_oak_chest_boat", - "id": 680, + "id": 679, "version": 2, "componentBased": false }, @@ -2501,6 +2633,12 @@ "version": 2, "componentBased": false }, + { + "name": "minecraft:dark_oak_shelf", + "id": -1052, + "version": 2, + "componentBased": false + }, { "name": "minecraft:dark_oak_sign", "id": 613, @@ -2977,7 +3115,7 @@ }, { "name": "minecraft:disc_fragment_5", - "id": 674, + "id": 673, "version": 2, "componentBased": false }, @@ -3007,31 +3145,31 @@ }, { "name": "minecraft:double_plant", - "id": 789, + "id": 800, "version": 2, "componentBased": false }, { "name": "minecraft:double_stone_block_slab", - "id": 778, + "id": 789, "version": 2, "componentBased": false }, { "name": "minecraft:double_stone_block_slab2", - "id": 779, + "id": 790, "version": 2, "componentBased": false }, { "name": "minecraft:double_stone_block_slab3", - "id": 780, + "id": 791, "version": 2, "componentBased": false }, { "name": "minecraft:double_stone_block_slab4", - "id": 781, + "id": 792, "version": 2, "componentBased": false }, @@ -3091,19 +3229,19 @@ }, { "name": "minecraft:dune_armor_trim_smithing_template", - "id": 719, + "id": 718, "version": 2, "componentBased": false }, { "name": "minecraft:dye", - "id": 811, + "id": 824, "version": 2, "componentBased": false }, { "name": "minecraft:echo_shard", - "id": 684, + "id": 683, "version": 2, "componentBased": false }, @@ -3901,7 +4039,7 @@ }, { "name": "minecraft:end_crystal", - "id": 814, + "id": 827, "version": 2, "componentBased": false }, @@ -4003,7 +4141,7 @@ }, { "name": "minecraft:explorer_pottery_sherd", - "id": 700, + "id": 699, "version": 2, "componentBased": false }, @@ -4019,24 +4157,54 @@ "version": 2, "componentBased": false }, + { + "name": "minecraft:exposed_copper_bars", + "id": -1067, + "version": 2, + "componentBased": false + }, { "name": "minecraft:exposed_copper_bulb", "id": -777, "version": 2, "componentBased": false }, + { + "name": "minecraft:exposed_copper_chain", + "id": -1075, + "version": 2, + "componentBased": false + }, + { + "name": "minecraft:exposed_copper_chest", + "id": -1032, + "version": 2, + "componentBased": false + }, { "name": "minecraft:exposed_copper_door", "id": -785, "version": 2, "componentBased": false }, + { + "name": "minecraft:exposed_copper_golem_statue", + "id": -1040, + "version": 2, + "componentBased": false + }, { "name": "minecraft:exposed_copper_grate", "id": -769, "version": 2, "componentBased": false }, + { + "name": "minecraft:exposed_copper_lantern", + "id": -1084, + "version": 2, + "componentBased": false + }, { "name": "minecraft:exposed_copper_trapdoor", "id": -793, @@ -4067,9 +4235,15 @@ "version": 2, "componentBased": false }, + { + "name": "minecraft:exposed_lightning_rod", + "id": -1059, + "version": 2, + "componentBased": false + }, { "name": "minecraft:eye_armor_trim_smithing_template", - "id": 723, + "id": 722, "version": 2, "componentBased": false }, @@ -4087,7 +4261,7 @@ }, { "name": "minecraft:fence", - "id": 771, + "id": 782, "version": 2, "componentBased": false }, @@ -4201,7 +4375,7 @@ }, { "name": "minecraft:flow_armor_trim_smithing_template", - "id": 734, + "id": 733, "version": 2, "componentBased": false }, @@ -4213,7 +4387,7 @@ }, { "name": "minecraft:flow_pottery_sherd", - "id": 701, + "id": 700, "version": 2, "componentBased": false }, @@ -4261,7 +4435,7 @@ }, { "name": "minecraft:friend_pottery_sherd", - "id": 702, + "id": 701, "version": 2, "componentBased": false }, @@ -4273,7 +4447,7 @@ }, { "name": "minecraft:frog_spawn_egg", - "id": 665, + "id": 664, "version": 2, "componentBased": false }, @@ -4339,13 +4513,13 @@ }, { "name": "minecraft:glow_berries", - "id": 815, + "id": 828, "version": 0, "componentBased": false }, { "name": "minecraft:glow_frame", - "id": 660, + "id": 659, "version": 2, "componentBased": true }, @@ -4393,7 +4567,7 @@ }, { "name": "minecraft:goat_horn", - "id": 664, + "id": 663, "version": 2, "componentBased": false }, @@ -4603,7 +4777,7 @@ }, { "name": "minecraft:gray_harness", - "id": 756, + "id": 755, "version": 2, "componentBased": false }, @@ -4687,7 +4861,7 @@ }, { "name": "minecraft:green_harness", - "id": 757, + "id": 756, "version": 2, "componentBased": false }, @@ -4747,7 +4921,7 @@ }, { "name": "minecraft:guster_pottery_sherd", - "id": 703, + "id": 702, "version": 2, "componentBased": false }, @@ -4759,7 +4933,7 @@ }, { "name": "minecraft:happy_ghast_spawn_egg", - "id": 751, + "id": 750, "version": 2, "componentBased": false }, @@ -4945,13 +5119,13 @@ }, { "name": "minecraft:hard_stained_glass", - "id": 805, + "id": 818, "version": 2, "componentBased": false }, { "name": "minecraft:hard_stained_glass_pane", - "id": 806, + "id": 819, "version": 2, "componentBased": false }, @@ -4999,13 +5173,13 @@ }, { "name": "minecraft:heart_pottery_sherd", - "id": 704, + "id": 703, "version": 2, "componentBased": false }, { "name": "minecraft:heartbreak_pottery_sherd", - "id": 705, + "id": 704, "version": 2, "componentBased": false }, @@ -5095,13 +5269,13 @@ }, { "name": "minecraft:host_armor_trim_smithing_template", - "id": 733, + "id": 732, "version": 2, "componentBased": false }, { "name": "minecraft:howl_pottery_sherd", - "id": 706, + "id": 705, "version": 2, "componentBased": false }, @@ -5213,6 +5387,12 @@ "version": 2, "componentBased": false }, + { + "name": "minecraft:iron_chain", + "id": -286, + "version": 2, + "componentBased": false + }, { "name": "minecraft:iron_chestplate", "id": 369, @@ -5351,12 +5531,6 @@ "version": 2, "componentBased": false }, - { - "name": "minecraft:item.chain", - "id": -286, - "version": 2, - "componentBased": false - }, { "name": "minecraft:item.crimson_door", "id": -244, @@ -5491,7 +5665,7 @@ }, { "name": "minecraft:jungle_chest_boat", - "id": 677, + "id": 676, "version": 2, "componentBased": false }, @@ -5555,6 +5729,12 @@ "version": 2, "componentBased": false }, + { + "name": "minecraft:jungle_shelf", + "id": -1050, + "version": 2, + "componentBased": false + }, { "name": "minecraft:jungle_sign", "id": 611, @@ -5713,13 +5893,13 @@ }, { "name": "minecraft:leaves", - "id": 785, + "id": 796, "version": 2, "componentBased": false }, { "name": "minecraft:leaves2", - "id": 786, + "id": 797, "version": 2, "componentBased": false }, @@ -5737,7 +5917,7 @@ }, { "name": "minecraft:light_block", - "id": 809, + "id": 822, "version": 2, "componentBased": false }, @@ -5887,7 +6067,7 @@ }, { "name": "minecraft:light_blue_harness", - "id": 758, + "id": 757, "version": 2, "componentBased": false }, @@ -5965,7 +6145,7 @@ }, { "name": "minecraft:light_gray_harness", - "id": 759, + "id": 758, "version": 2, "componentBased": false }, @@ -6073,7 +6253,7 @@ }, { "name": "minecraft:lime_harness", - "id": 760, + "id": 759, "version": 2, "componentBased": false }, @@ -6175,13 +6355,13 @@ }, { "name": "minecraft:log", - "id": 770, + "id": 781, "version": 2, "componentBased": false }, { "name": "minecraft:log2", - "id": 793, + "id": 804, "version": 2, "componentBased": false }, @@ -6247,7 +6427,7 @@ }, { "name": "minecraft:magenta_harness", - "id": 761, + "id": 760, "version": 2, "componentBased": false }, @@ -6301,7 +6481,7 @@ }, { "name": "minecraft:mangrove_boat", - "id": 672, + "id": 671, "version": 2, "componentBased": false }, @@ -6313,13 +6493,13 @@ }, { "name": "minecraft:mangrove_chest_boat", - "id": 681, + "id": 680, "version": 2, "componentBased": false }, { "name": "minecraft:mangrove_door", - "id": 670, + "id": 669, "version": 2, "componentBased": false }, @@ -6383,9 +6563,15 @@ "version": 2, "componentBased": false }, + { + "name": "minecraft:mangrove_shelf", + "id": -1053, + "version": 2, + "componentBased": false + }, { "name": "minecraft:mangrove_sign", - "id": 671, + "id": 670, "version": 2, "componentBased": false }, @@ -6481,7 +6667,7 @@ }, { "name": "minecraft:miner_pottery_sherd", - "id": 707, + "id": 706, "version": 2, "componentBased": false }, @@ -6499,7 +6685,7 @@ }, { "name": "minecraft:monster_egg", - "id": 794, + "id": 805, "version": 2, "componentBased": false }, @@ -6583,7 +6769,7 @@ }, { "name": "minecraft:mourner_pottery_sherd", - "id": 708, + "id": 707, "version": 2, "componentBased": false }, @@ -6667,7 +6853,7 @@ }, { "name": "minecraft:music_disc_5", - "id": 673, + "id": 672, "version": 2, "componentBased": true }, @@ -6691,13 +6877,13 @@ }, { "name": "minecraft:music_disc_creator", - "id": 801, + "id": 812, "version": 2, "componentBased": true }, { "name": "minecraft:music_disc_creator_music_box", - "id": 802, + "id": 813, "version": 2, "componentBased": true }, @@ -6707,6 +6893,12 @@ "version": 2, "componentBased": true }, + { + "name": "minecraft:music_disc_lava_chicken", + "id": 816, + "version": 2, + "componentBased": true + }, { "name": "minecraft:music_disc_mall", "id": 572, @@ -6721,25 +6913,25 @@ }, { "name": "minecraft:music_disc_otherside", - "id": 663, + "id": 662, "version": 2, "componentBased": true }, { "name": "minecraft:music_disc_pigstep", - "id": 657, + "id": 656, "version": 2, "componentBased": true }, { "name": "minecraft:music_disc_precipice", - "id": 803, + "id": 814, "version": 2, "componentBased": true }, { "name": "minecraft:music_disc_relic", - "id": 736, + "id": 735, "version": 2, "componentBased": true }, @@ -6755,6 +6947,12 @@ "version": 2, "componentBased": true }, + { + "name": "minecraft:music_disc_tears", + "id": 815, + "version": 2, + "componentBased": true + }, { "name": "minecraft:music_disc_wait", "id": 578, @@ -6835,7 +7033,7 @@ }, { "name": "minecraft:nether_sprouts", - "id": 658, + "id": 657, "version": 2, "componentBased": true }, @@ -6937,7 +7135,7 @@ }, { "name": "minecraft:netherite_upgrade_smithing_template", - "id": 717, + "id": 716, "version": 2, "componentBased": false }, @@ -6991,7 +7189,7 @@ }, { "name": "minecraft:oak_chest_boat", - "id": 675, + "id": 674, "version": 2, "componentBased": false }, @@ -7037,6 +7235,12 @@ "version": 2, "componentBased": false }, + { + "name": "minecraft:oak_shelf", + "id": -1047, + "version": 2, + "componentBased": false + }, { "name": "minecraft:oak_sign", "id": 383, @@ -7153,7 +7357,7 @@ }, { "name": "minecraft:orange_harness", - "id": 762, + "id": 761, "version": 2, "componentBased": false }, @@ -7211,24 +7415,54 @@ "version": 2, "componentBased": false }, + { + "name": "minecraft:oxidized_copper_bars", + "id": -1069, + "version": 2, + "componentBased": false + }, { "name": "minecraft:oxidized_copper_bulb", "id": -779, "version": 2, "componentBased": false }, + { + "name": "minecraft:oxidized_copper_chain", + "id": -1077, + "version": 2, + "componentBased": false + }, + { + "name": "minecraft:oxidized_copper_chest", + "id": -1034, + "version": 2, + "componentBased": false + }, { "name": "minecraft:oxidized_copper_door", "id": -787, "version": 2, "componentBased": false }, + { + "name": "minecraft:oxidized_copper_golem_statue", + "id": -1042, + "version": 2, + "componentBased": false + }, { "name": "minecraft:oxidized_copper_grate", "id": -771, "version": 2, "componentBased": false }, + { + "name": "minecraft:oxidized_copper_lantern", + "id": -1086, + "version": 2, + "componentBased": false + }, { "name": "minecraft:oxidized_copper_trapdoor", "id": -795, @@ -7259,6 +7493,12 @@ "version": 2, "componentBased": false }, + { + "name": "minecraft:oxidized_lightning_rod", + "id": -1061, + "version": 2, + "componentBased": false + }, { "name": "minecraft:packed_ice", "id": 174, @@ -7297,7 +7537,7 @@ }, { "name": "minecraft:pale_oak_boat", - "id": 744, + "id": 743, "version": 2, "componentBased": false }, @@ -7309,7 +7549,7 @@ }, { "name": "minecraft:pale_oak_chest_boat", - "id": 745, + "id": 744, "version": 2, "componentBased": false }, @@ -7373,9 +7613,15 @@ "version": 2, "componentBased": false }, + { + "name": "minecraft:pale_oak_shelf", + "id": -1055, + "version": 2, + "componentBased": false + }, { "name": "minecraft:pale_oak_sign", - "id": 746, + "id": 745, "version": 2, "componentBased": false }, @@ -7555,7 +7801,7 @@ }, { "name": "minecraft:pink_harness", - "id": 763, + "id": 762, "version": 2, "componentBased": false }, @@ -7633,7 +7879,7 @@ }, { "name": "minecraft:planks", - "id": 790, + "id": 801, "version": 2, "componentBased": false }, @@ -7645,7 +7891,7 @@ }, { "name": "minecraft:plenty_pottery_sherd", - "id": 709, + "id": 708, "version": 2, "componentBased": false }, @@ -8017,7 +8263,7 @@ }, { "name": "minecraft:prize_pottery_sherd", - "id": 710, + "id": 709, "version": 2, "componentBased": false }, @@ -8113,7 +8359,7 @@ }, { "name": "minecraft:purple_harness", - "id": 764, + "id": 763, "version": 2, "componentBased": false }, @@ -8263,7 +8509,7 @@ }, { "name": "minecraft:raiser_armor_trim_smithing_template", - "id": 731, + "id": 730, "version": 2, "componentBased": false }, @@ -8317,7 +8563,7 @@ }, { "name": "minecraft:recovery_compass", - "id": 683, + "id": 682, "version": 2, "componentBased": false }, @@ -8365,7 +8611,7 @@ }, { "name": "minecraft:red_flower", - "id": 788, + "id": 799, "version": 2, "componentBased": false }, @@ -8377,7 +8623,7 @@ }, { "name": "minecraft:red_harness", - "id": 765, + "id": 764, "version": 2, "componentBased": false }, @@ -8563,7 +8809,7 @@ }, { "name": "minecraft:resin_brick", - "id": 748, + "id": 747, "version": 2, "componentBased": false }, @@ -8611,7 +8857,7 @@ }, { "name": "minecraft:rib_armor_trim_smithing_template", - "id": 727, + "id": 726, "version": 2, "componentBased": false }, @@ -8689,7 +8935,7 @@ }, { "name": "minecraft:sapling", - "id": 784, + "id": 795, "version": 2, "componentBased": false }, @@ -8701,7 +8947,7 @@ }, { "name": "minecraft:scrape_pottery_sherd", - "id": 711, + "id": 710, "version": 2, "componentBased": false }, @@ -8755,19 +9001,19 @@ }, { "name": "minecraft:sentry_armor_trim_smithing_template", - "id": 718, + "id": 717, "version": 2, "componentBased": false }, { "name": "minecraft:shaper_armor_trim_smithing_template", - "id": 732, + "id": 731, "version": 2, "componentBased": false }, { "name": "minecraft:sheaf_pottery_sherd", - "id": 712, + "id": 711, "version": 2, "componentBased": false }, @@ -8785,7 +9031,7 @@ }, { "name": "minecraft:shelter_pottery_sherd", - "id": 713, + "id": 712, "version": 2, "componentBased": false }, @@ -8815,7 +9061,7 @@ }, { "name": "minecraft:shulker_box", - "id": 799, + "id": 810, "version": 2, "componentBased": false }, @@ -8833,7 +9079,7 @@ }, { "name": "minecraft:silence_armor_trim_smithing_template", - "id": 729, + "id": 728, "version": 2, "componentBased": false }, @@ -8869,7 +9115,7 @@ }, { "name": "minecraft:skull", - "id": 737, + "id": 736, "version": 2, "componentBased": false }, @@ -8881,7 +9127,7 @@ }, { "name": "minecraft:skull_pottery_sherd", - "id": 714, + "id": 713, "version": 2, "componentBased": false }, @@ -9037,13 +9283,13 @@ }, { "name": "minecraft:snort_pottery_sherd", - "id": 715, + "id": 714, "version": 2, "componentBased": false }, { "name": "minecraft:snout_armor_trim_smithing_template", - "id": 726, + "id": 725, "version": 2, "componentBased": false }, @@ -9073,7 +9319,7 @@ }, { "name": "minecraft:soul_campfire", - "id": 659, + "id": 658, "version": 2, "componentBased": true }, @@ -9115,7 +9361,7 @@ }, { "name": "minecraft:spawn_egg", - "id": 813, + "id": 826, "version": 2, "componentBased": false }, @@ -9133,7 +9379,7 @@ }, { "name": "minecraft:spire_armor_trim_smithing_template", - "id": 728, + "id": 727, "version": 2, "componentBased": false }, @@ -9169,7 +9415,7 @@ }, { "name": "minecraft:spruce_chest_boat", - "id": 678, + "id": 677, "version": 2, "componentBased": false }, @@ -9233,6 +9479,12 @@ "version": 2, "componentBased": false }, + { + "name": "minecraft:spruce_shelf", + "id": -1048, + "version": 2, + "componentBased": false + }, { "name": "minecraft:spruce_sign", "id": 609, @@ -9277,7 +9529,7 @@ }, { "name": "minecraft:spyglass", - "id": 662, + "id": 661, "version": 2, "componentBased": false }, @@ -9289,19 +9541,19 @@ }, { "name": "minecraft:stained_glass", - "id": 797, + "id": 808, "version": 2, "componentBased": false }, { "name": "minecraft:stained_glass_pane", - "id": 798, + "id": 809, "version": 2, "componentBased": false }, { "name": "minecraft:stained_hardened_clay", - "id": 738, + "id": 737, "version": 2, "componentBased": false }, @@ -9349,25 +9601,25 @@ }, { "name": "minecraft:stone_block_slab", - "id": 774, + "id": 785, "version": 2, "componentBased": false }, { "name": "minecraft:stone_block_slab2", - "id": 775, + "id": 786, "version": 2, "componentBased": false }, { "name": "minecraft:stone_block_slab3", - "id": 776, + "id": 787, "version": 2, "componentBased": false }, { "name": "minecraft:stone_block_slab4", - "id": 777, + "id": 788, "version": 2, "componentBased": false }, @@ -9445,7 +9697,7 @@ }, { "name": "minecraft:stonebrick", - "id": 772, + "id": 783, "version": 2, "componentBased": false }, @@ -9679,13 +9931,13 @@ }, { "name": "minecraft:tadpole_bucket", - "id": 667, + "id": 666, "version": 2, "componentBased": false }, { "name": "minecraft:tadpole_spawn_egg", - "id": 666, + "id": 665, "version": 2, "componentBased": false }, @@ -9703,7 +9955,7 @@ }, { "name": "minecraft:tallgrass", - "id": 792, + "id": 803, "version": 2, "componentBased": false }, @@ -9715,7 +9967,7 @@ }, { "name": "minecraft:tide_armor_trim_smithing_template", - "id": 725, + "id": 724, "version": 2, "componentBased": false }, @@ -9769,7 +10021,7 @@ }, { "name": "minecraft:trader_llama_spawn_egg", - "id": 685, + "id": 684, "version": 2, "componentBased": false }, @@ -10003,7 +10255,7 @@ }, { "name": "minecraft:vex_armor_trim_smithing_template", - "id": 724, + "id": 723, "version": 2, "componentBased": false }, @@ -10051,13 +10303,13 @@ }, { "name": "minecraft:ward_armor_trim_smithing_template", - "id": 722, + "id": 721, "version": 2, "componentBased": false }, { "name": "minecraft:warden_spawn_egg", - "id": 669, + "id": 668, "version": 2, "componentBased": false }, @@ -10139,6 +10391,12 @@ "version": 2, "componentBased": false }, + { + "name": "minecraft:warped_shelf", + "id": -1058, + "version": 2, + "componentBased": false + }, { "name": "minecraft:warped_sign", "id": 652, @@ -10217,24 +10475,54 @@ "version": 2, "componentBased": false }, + { + "name": "minecraft:waxed_copper_bars", + "id": -1070, + "version": 2, + "componentBased": false + }, { "name": "minecraft:waxed_copper_bulb", "id": -780, "version": 2, "componentBased": false }, + { + "name": "minecraft:waxed_copper_chain", + "id": -1078, + "version": 2, + "componentBased": false + }, + { + "name": "minecraft:waxed_copper_chest", + "id": -1035, + "version": 2, + "componentBased": false + }, { "name": "minecraft:waxed_copper_door", "id": -788, "version": 2, "componentBased": false }, + { + "name": "minecraft:waxed_copper_golem_statue", + "id": -1043, + "version": 2, + "componentBased": false + }, { "name": "minecraft:waxed_copper_grate", "id": -772, "version": 2, "componentBased": false }, + { + "name": "minecraft:waxed_copper_lantern", + "id": -1087, + "version": 2, + "componentBased": false + }, { "name": "minecraft:waxed_copper_trapdoor", "id": -796, @@ -10277,24 +10565,54 @@ "version": 2, "componentBased": false }, + { + "name": "minecraft:waxed_exposed_copper_bars", + "id": -1071, + "version": 2, + "componentBased": false + }, { "name": "minecraft:waxed_exposed_copper_bulb", "id": -781, "version": 2, "componentBased": false }, + { + "name": "minecraft:waxed_exposed_copper_chain", + "id": -1079, + "version": 2, + "componentBased": false + }, + { + "name": "minecraft:waxed_exposed_copper_chest", + "id": -1036, + "version": 2, + "componentBased": false + }, { "name": "minecraft:waxed_exposed_copper_door", "id": -789, "version": 2, "componentBased": false }, + { + "name": "minecraft:waxed_exposed_copper_golem_statue", + "id": -1044, + "version": 2, + "componentBased": false + }, { "name": "minecraft:waxed_exposed_copper_grate", "id": -773, "version": 2, "componentBased": false }, + { + "name": "minecraft:waxed_exposed_copper_lantern", + "id": -1088, + "version": 2, + "componentBased": false + }, { "name": "minecraft:waxed_exposed_copper_trapdoor", "id": -797, @@ -10325,6 +10643,18 @@ "version": 2, "componentBased": false }, + { + "name": "minecraft:waxed_exposed_lightning_rod", + "id": -1063, + "version": 2, + "componentBased": false + }, + { + "name": "minecraft:waxed_lightning_rod", + "id": -1062, + "version": 2, + "componentBased": false + }, { "name": "minecraft:waxed_oxidized_chiseled_copper", "id": -766, @@ -10337,24 +10667,54 @@ "version": 2, "componentBased": false }, + { + "name": "minecraft:waxed_oxidized_copper_bars", + "id": -1073, + "version": 2, + "componentBased": false + }, { "name": "minecraft:waxed_oxidized_copper_bulb", "id": -783, "version": 2, "componentBased": false }, + { + "name": "minecraft:waxed_oxidized_copper_chain", + "id": -1081, + "version": 2, + "componentBased": false + }, + { + "name": "minecraft:waxed_oxidized_copper_chest", + "id": -1038, + "version": 2, + "componentBased": false + }, { "name": "minecraft:waxed_oxidized_copper_door", "id": -791, "version": 2, "componentBased": false }, + { + "name": "minecraft:waxed_oxidized_copper_golem_statue", + "id": -1046, + "version": 2, + "componentBased": false + }, { "name": "minecraft:waxed_oxidized_copper_grate", "id": -775, "version": 2, "componentBased": false }, + { + "name": "minecraft:waxed_oxidized_copper_lantern", + "id": -1090, + "version": 2, + "componentBased": false + }, { "name": "minecraft:waxed_oxidized_copper_trapdoor", "id": -799, @@ -10385,6 +10745,12 @@ "version": 2, "componentBased": false }, + { + "name": "minecraft:waxed_oxidized_lightning_rod", + "id": -1065, + "version": 2, + "componentBased": false + }, { "name": "minecraft:waxed_weathered_chiseled_copper", "id": -767, @@ -10397,24 +10763,54 @@ "version": 2, "componentBased": false }, + { + "name": "minecraft:waxed_weathered_copper_bars", + "id": -1072, + "version": 2, + "componentBased": false + }, { "name": "minecraft:waxed_weathered_copper_bulb", "id": -782, "version": 2, "componentBased": false }, + { + "name": "minecraft:waxed_weathered_copper_chain", + "id": -1080, + "version": 2, + "componentBased": false + }, + { + "name": "minecraft:waxed_weathered_copper_chest", + "id": -1037, + "version": 2, + "componentBased": false + }, { "name": "minecraft:waxed_weathered_copper_door", "id": -790, "version": 2, "componentBased": false }, + { + "name": "minecraft:waxed_weathered_copper_golem_statue", + "id": -1045, + "version": 2, + "componentBased": false + }, { "name": "minecraft:waxed_weathered_copper_grate", "id": -774, "version": 2, "componentBased": false }, + { + "name": "minecraft:waxed_weathered_copper_lantern", + "id": -1089, + "version": 2, + "componentBased": false + }, { "name": "minecraft:waxed_weathered_copper_trapdoor", "id": -798, @@ -10445,9 +10841,15 @@ "version": 2, "componentBased": false }, + { + "name": "minecraft:waxed_weathered_lightning_rod", + "id": -1064, + "version": 2, + "componentBased": false + }, { "name": "minecraft:wayfinder_armor_trim_smithing_template", - "id": 730, + "id": 729, "version": 2, "componentBased": false }, @@ -10463,24 +10865,54 @@ "version": 2, "componentBased": false }, + { + "name": "minecraft:weathered_copper_bars", + "id": -1068, + "version": 2, + "componentBased": false + }, { "name": "minecraft:weathered_copper_bulb", "id": -778, "version": 2, "componentBased": false }, + { + "name": "minecraft:weathered_copper_chain", + "id": -1076, + "version": 2, + "componentBased": false + }, + { + "name": "minecraft:weathered_copper_chest", + "id": -1033, + "version": 2, + "componentBased": false + }, { "name": "minecraft:weathered_copper_door", "id": -786, "version": 2, "componentBased": false }, + { + "name": "minecraft:weathered_copper_golem_statue", + "id": -1041, + "version": 2, + "componentBased": false + }, { "name": "minecraft:weathered_copper_grate", "id": -770, "version": 2, "componentBased": false }, + { + "name": "minecraft:weathered_copper_lantern", + "id": -1085, + "version": 2, + "componentBased": false + }, { "name": "minecraft:weathered_copper_trapdoor", "id": -794, @@ -10511,6 +10943,12 @@ "version": 2, "componentBased": false }, + { + "name": "minecraft:weathered_lightning_rod", + "id": -1060, + "version": 2, + "componentBased": false + }, { "name": "minecraft:web", "id": 30, @@ -10591,7 +11029,7 @@ }, { "name": "minecraft:white_harness", - "id": 766, + "id": 765, "version": 2, "componentBased": false }, @@ -10633,7 +11071,7 @@ }, { "name": "minecraft:wild_armor_trim_smithing_template", - "id": 721, + "id": 720, "version": 2, "componentBased": false }, @@ -10681,7 +11119,7 @@ }, { "name": "minecraft:wolf_armor", - "id": 741, + "id": 740, "version": 2, "componentBased": true }, @@ -10693,7 +11131,7 @@ }, { "name": "minecraft:wood", - "id": 800, + "id": 811, "version": 2, "componentBased": false }, @@ -10741,7 +11179,7 @@ }, { "name": "minecraft:wooden_slab", - "id": 787, + "id": 798, "version": 2, "componentBased": false }, @@ -10753,7 +11191,7 @@ }, { "name": "minecraft:wool", - "id": 768, + "id": 779, "version": 2, "componentBased": false }, @@ -10819,7 +11257,7 @@ }, { "name": "minecraft:yellow_harness", - "id": 767, + "id": 766, "version": 2, "componentBased": false }, diff --git a/core/src/main/resources/bedrock/runtime_item_states.1_21_70.json b/core/src/main/resources/bedrock/runtime_item_states.1_21_70.json deleted file mode 100644 index eb264f00e..000000000 --- a/core/src/main/resources/bedrock/runtime_item_states.1_21_70.json +++ /dev/null @@ -1,10784 +0,0 @@ -[ - { - "name": "minecraft:acacia_boat", - "id": 405, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:acacia_button", - "id": -140, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:acacia_chest_boat", - "id": 679, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:acacia_door", - "id": 589, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:acacia_double_slab", - "id": -812, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:acacia_fence", - "id": -575, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:acacia_fence_gate", - "id": 187, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:acacia_hanging_sign", - "id": -504, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:acacia_leaves", - "id": 161, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:acacia_log", - "id": 162, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:acacia_planks", - "id": -742, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:acacia_pressure_plate", - "id": -150, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:acacia_sapling", - "id": -828, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:acacia_sign", - "id": 612, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:acacia_slab", - "id": -807, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:acacia_stairs", - "id": 163, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:acacia_standing_sign", - "id": -190, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:acacia_trapdoor", - "id": -145, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:acacia_wall_sign", - "id": -191, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:acacia_wood", - "id": -817, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:activator_rail", - "id": 126, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:agent_spawn_egg", - "id": 515, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:air", - "id": -158, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:allay_spawn_egg", - "id": 668, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:allium", - "id": -831, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:allow", - "id": 210, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:amethyst_block", - "id": -327, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:amethyst_cluster", - "id": -329, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:amethyst_shard", - "id": 661, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:ancient_debris", - "id": -271, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:andesite", - "id": -594, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:andesite_double_slab", - "id": -920, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:andesite_slab", - "id": -893, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:andesite_stairs", - "id": -171, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:andesite_wall", - "id": -974, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:angler_pottery_sherd", - "id": 693, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:anvil", - "id": 145, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:apple", - "id": 278, - "version": 1, - "componentBased": true - }, - { - "name": "minecraft:archer_pottery_sherd", - "id": 694, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:armadillo_scute", - "id": 740, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:armadillo_spawn_egg", - "id": 739, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:armor_stand", - "id": 585, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:arms_up_pottery_sherd", - "id": 695, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:arrow", - "id": 325, - "version": 2, - "componentBased": true - }, - { - "name": "minecraft:axolotl_bucket", - "id": 394, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:axolotl_spawn_egg", - "id": 530, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:azalea", - "id": -337, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:azalea_leaves", - "id": -324, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:azalea_leaves_flowered", - "id": -325, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:azure_bluet", - "id": -832, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:baked_potato", - "id": 303, - "version": 0, - "componentBased": false - }, - { - "name": "minecraft:balloon", - "id": 635, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:bamboo", - "id": -163, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:bamboo_block", - "id": -527, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:bamboo_button", - "id": -511, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:bamboo_chest_raft", - "id": 691, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:bamboo_door", - "id": -517, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:bamboo_double_slab", - "id": -521, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:bamboo_fence", - "id": -515, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:bamboo_fence_gate", - "id": -516, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:bamboo_hanging_sign", - "id": -522, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:bamboo_mosaic", - "id": -509, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:bamboo_mosaic_double_slab", - "id": -525, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:bamboo_mosaic_slab", - "id": -524, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:bamboo_mosaic_stairs", - "id": -523, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:bamboo_planks", - "id": -510, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:bamboo_pressure_plate", - "id": -514, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:bamboo_raft", - "id": 690, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:bamboo_sapling", - "id": -164, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:bamboo_sign", - "id": 689, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:bamboo_slab", - "id": -513, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:bamboo_stairs", - "id": -512, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:bamboo_standing_sign", - "id": -518, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:bamboo_trapdoor", - "id": -520, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:bamboo_wall_sign", - "id": -519, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:banner", - "id": 600, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:banner_pattern", - "id": 795, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:barrel", - "id": -203, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:barrier", - "id": -161, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:basalt", - "id": -234, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:bat_spawn_egg", - "id": 480, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:beacon", - "id": 138, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:bed", - "id": 444, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:bedrock", - "id": 7, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:bee_nest", - "id": -218, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:bee_spawn_egg", - "id": 522, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:beef", - "id": 295, - "version": 0, - "componentBased": false - }, - { - "name": "minecraft:beehive", - "id": -219, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:beetroot", - "id": 307, - "version": 0, - "componentBased": false - }, - { - "name": "minecraft:beetroot_seeds", - "id": 317, - "version": 0, - "componentBased": false - }, - { - "name": "minecraft:beetroot_soup", - "id": 308, - "version": 0, - "componentBased": false - }, - { - "name": "minecraft:bell", - "id": -206, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:big_dripleaf", - "id": -323, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:birch_boat", - "id": 402, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:birch_button", - "id": -141, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:birch_chest_boat", - "id": 676, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:birch_door", - "id": 587, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:birch_double_slab", - "id": -810, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:birch_fence", - "id": -576, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:birch_fence_gate", - "id": 184, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:birch_hanging_sign", - "id": -502, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:birch_leaves", - "id": -801, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:birch_log", - "id": -570, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:birch_planks", - "id": -740, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:birch_pressure_plate", - "id": -151, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:birch_sapling", - "id": -826, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:birch_sign", - "id": 610, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:birch_slab", - "id": -805, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:birch_stairs", - "id": 135, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:birch_standing_sign", - "id": -186, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:birch_trapdoor", - "id": -146, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:birch_wall_sign", - "id": -187, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:birch_wood", - "id": -815, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:black_bundle", - "id": 257, - "version": 1, - "componentBased": true - }, - { - "name": "minecraft:black_candle", - "id": -428, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:black_candle_cake", - "id": -445, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:black_carpet", - "id": -611, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:black_concrete", - "id": -642, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:black_concrete_powder", - "id": -723, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:black_dye", - "id": 421, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:black_glazed_terracotta", - "id": 235, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:black_shulker_box", - "id": -627, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:black_stained_glass", - "id": -687, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:black_stained_glass_pane", - "id": -657, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:black_terracotta", - "id": -738, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:black_wool", - "id": -554, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:blackstone", - "id": -273, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:blackstone_double_slab", - "id": -283, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:blackstone_slab", - "id": -282, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:blackstone_stairs", - "id": -276, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:blackstone_wall", - "id": -277, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:blade_pottery_sherd", - "id": 696, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:blast_furnace", - "id": -196, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:blaze_powder", - "id": 456, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:blaze_rod", - "id": 449, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:blaze_spawn_egg", - "id": 483, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:bleach", - "id": 633, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:blue_bundle", - "id": 258, - "version": 1, - "componentBased": true - }, - { - "name": "minecraft:blue_candle", - "id": -424, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:blue_candle_cake", - "id": -441, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:blue_carpet", - "id": -607, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:blue_concrete", - "id": -638, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:blue_concrete_powder", - "id": -719, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:blue_dye", - "id": 425, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:blue_egg", - "id": 749, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:blue_glazed_terracotta", - "id": 231, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:blue_ice", - "id": -11, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:blue_orchid", - "id": -830, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:blue_shulker_box", - "id": -623, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:blue_stained_glass", - "id": -683, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:blue_stained_glass_pane", - "id": -653, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:blue_terracotta", - "id": -734, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:blue_wool", - "id": -563, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:board", - "id": 629, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:boat", - "id": 793, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:bogged_spawn_egg", - "id": 490, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:bolt_armor_trim_smithing_template", - "id": 735, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:bone", - "id": 441, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:bone_block", - "id": 216, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:bone_meal", - "id": 437, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:book", - "id": 413, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:bookshelf", - "id": 47, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:border_block", - "id": 212, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:bordure_indented_banner_pattern", - "id": 619, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:bow", - "id": 324, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:bowl", - "id": 346, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:brain_coral", - "id": -581, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:brain_coral_block", - "id": -849, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:brain_coral_fan", - "id": -840, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:brain_coral_wall_fan", - "id": -904, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:bread", - "id": 283, - "version": 0, - "componentBased": false - }, - { - "name": "minecraft:breeze_rod", - "id": 274, - "version": 1, - "componentBased": true - }, - { - "name": "minecraft:breeze_spawn_egg", - "id": 529, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:brewer_pottery_sherd", - "id": 697, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:brewing_stand", - "id": 458, - "version": 2, - "componentBased": true - }, - { - "name": "minecraft:brick", - "id": 409, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:brick_block", - "id": 45, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:brick_double_slab", - "id": -880, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:brick_slab", - "id": -874, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:brick_stairs", - "id": 108, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:brick_wall", - "id": -976, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:brown_bundle", - "id": 259, - "version": 1, - "componentBased": true - }, - { - "name": "minecraft:brown_candle", - "id": -425, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:brown_candle_cake", - "id": -442, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:brown_carpet", - "id": -608, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:brown_concrete", - "id": -639, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:brown_concrete_powder", - "id": -720, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:brown_dye", - "id": 424, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:brown_egg", - "id": 750, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:brown_glazed_terracotta", - "id": 232, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:brown_mushroom", - "id": 39, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:brown_mushroom_block", - "id": 99, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:brown_shulker_box", - "id": -624, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:brown_stained_glass", - "id": -684, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:brown_stained_glass_pane", - "id": -654, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:brown_terracotta", - "id": -735, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:brown_wool", - "id": -555, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:brush", - "id": 716, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:bubble_column", - "id": -160, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:bubble_coral", - "id": -582, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:bubble_coral_block", - "id": -850, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:bubble_coral_fan", - "id": -841, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:bubble_coral_wall_fan", - "id": -136, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:bucket", - "id": 385, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:budding_amethyst", - "id": -328, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:bundle", - "id": 260, - "version": 1, - "componentBased": true - }, - { - "name": "minecraft:burn_pottery_sherd", - "id": 698, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:bush", - "id": -1023, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:cactus", - "id": 81, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:cactus_flower", - "id": -1030, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:cake", - "id": 443, - "version": 2, - "componentBased": true - }, - { - "name": "minecraft:calcite", - "id": -326, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:calibrated_sculk_sensor", - "id": -580, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:camel_spawn_egg", - "id": 692, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:camera", - "id": 630, - "version": 0, - "componentBased": false - }, - { - "name": "minecraft:campfire", - "id": 624, - "version": 2, - "componentBased": true - }, - { - "name": "minecraft:candle", - "id": -412, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:candle_cake", - "id": -429, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:carpet", - "id": 752, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:carrot", - "id": 301, - "version": 0, - "componentBased": false - }, - { - "name": "minecraft:carrot_on_a_stick", - "id": 550, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:carrots", - "id": 141, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:cartography_table", - "id": -200, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:carved_pumpkin", - "id": -155, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:cat_spawn_egg", - "id": 516, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:cauldron", - "id": 459, - "version": 2, - "componentBased": true - }, - { - "name": "minecraft:cave_spider_spawn_egg", - "id": 484, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:cave_vines", - "id": -322, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:cave_vines_body_with_berries", - "id": -375, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:cave_vines_head_with_berries", - "id": -376, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:chain", - "id": 656, - "version": 2, - "componentBased": true - }, - { - "name": "minecraft:chain_command_block", - "id": 189, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:chainmail_boots", - "id": 367, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:chainmail_chestplate", - "id": 365, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:chainmail_helmet", - "id": 364, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:chainmail_leggings", - "id": 366, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:chalkboard", - "id": 230, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:charcoal", - "id": 327, - "version": 2, - "componentBased": true - }, - { - "name": "minecraft:chemical_heat", - "id": 192, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:chemistry_table", - "id": 787, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:cherry_boat", - "id": 686, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:cherry_button", - "id": -530, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:cherry_chest_boat", - "id": 687, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:cherry_door", - "id": -531, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:cherry_double_slab", - "id": -540, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:cherry_fence", - "id": -532, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:cherry_fence_gate", - "id": -533, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:cherry_hanging_sign", - "id": -534, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:cherry_leaves", - "id": -548, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:cherry_log", - "id": -536, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:cherry_planks", - "id": -537, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:cherry_pressure_plate", - "id": -538, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:cherry_sapling", - "id": -547, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:cherry_sign", - "id": 688, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:cherry_slab", - "id": -539, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:cherry_stairs", - "id": -541, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:cherry_standing_sign", - "id": -542, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:cherry_trapdoor", - "id": -543, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:cherry_wall_sign", - "id": -544, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:cherry_wood", - "id": -546, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:chest", - "id": 54, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:chest_boat", - "id": 682, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:chest_minecart", - "id": 415, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:chicken", - "id": 297, - "version": 0, - "componentBased": false - }, - { - "name": "minecraft:chicken_spawn_egg", - "id": 462, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:chipped_anvil", - "id": -959, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:chiseled_bookshelf", - "id": -526, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:chiseled_copper", - "id": -760, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:chiseled_deepslate", - "id": -395, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:chiseled_nether_bricks", - "id": -302, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:chiseled_polished_blackstone", - "id": -279, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:chiseled_quartz_block", - "id": -953, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:chiseled_red_sandstone", - "id": -956, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:chiseled_resin_bricks", - "id": -1020, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:chiseled_sandstone", - "id": -944, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:chiseled_stone_bricks", - "id": -870, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:chiseled_tuff", - "id": -753, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:chiseled_tuff_bricks", - "id": -759, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:chorus_flower", - "id": 200, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:chorus_fruit", - "id": 591, - "version": 0, - "componentBased": false - }, - { - "name": "minecraft:chorus_plant", - "id": 240, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:clay", - "id": 82, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:clay_ball", - "id": 410, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:client_request_placeholder_block", - "id": -465, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:clock", - "id": 419, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:closed_eyeblossom", - "id": -1019, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:coal", - "id": 326, - "version": 2, - "componentBased": true - }, - { - "name": "minecraft:coal_block", - "id": 173, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:coal_ore", - "id": 16, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:coarse_dirt", - "id": -962, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:coast_armor_trim_smithing_template", - "id": 720, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:cobbled_deepslate", - "id": -379, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:cobbled_deepslate_double_slab", - "id": -396, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:cobbled_deepslate_slab", - "id": -380, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:cobbled_deepslate_stairs", - "id": -381, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:cobbled_deepslate_wall", - "id": -382, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:cobblestone", - "id": 4, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:cobblestone_double_slab", - "id": -879, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:cobblestone_slab", - "id": -873, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:cobblestone_wall", - "id": 139, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:cocoa", - "id": 127, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:cocoa_beans", - "id": 438, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:cod", - "id": 286, - "version": 0, - "componentBased": false - }, - { - "name": "minecraft:cod_bucket", - "id": 389, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:cod_spawn_egg", - "id": 508, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:colored_torch_blue", - "id": 204, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:colored_torch_bp", - "id": 791, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:colored_torch_green", - "id": -963, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:colored_torch_purple", - "id": -964, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:colored_torch_red", - "id": 202, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:colored_torch_rg", - "id": 790, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:command_block", - "id": 137, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:command_block_minecart", - "id": 596, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:comparator", - "id": 555, - "version": 2, - "componentBased": true - }, - { - "name": "minecraft:compass", - "id": 417, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:composter", - "id": -213, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:compound", - "id": 631, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:compound_creator", - "id": 238, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:concrete", - "id": 778, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:concrete_powder", - "id": 779, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:conduit", - "id": -157, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:cooked_beef", - "id": 296, - "version": 0, - "componentBased": false - }, - { - "name": "minecraft:cooked_chicken", - "id": 298, - "version": 0, - "componentBased": false - }, - { - "name": "minecraft:cooked_cod", - "id": 290, - "version": 0, - "componentBased": false - }, - { - "name": "minecraft:cooked_mutton", - "id": 584, - "version": 0, - "componentBased": false - }, - { - "name": "minecraft:cooked_porkchop", - "id": 285, - "version": 0, - "componentBased": false - }, - { - "name": "minecraft:cooked_rabbit", - "id": 311, - "version": 0, - "componentBased": false - }, - { - "name": "minecraft:cooked_salmon", - "id": 291, - "version": 0, - "componentBased": false - }, - { - "name": "minecraft:cookie", - "id": 293, - "version": 0, - "componentBased": false - }, - { - "name": "minecraft:copper_block", - "id": -340, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:copper_bulb", - "id": -776, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:copper_door", - "id": -784, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:copper_grate", - "id": -768, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:copper_ingot", - "id": 538, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:copper_ore", - "id": -311, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:copper_trapdoor", - "id": -792, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:coral", - "id": 774, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:coral_block", - "id": 756, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:coral_fan", - "id": 765, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:coral_fan_dead", - "id": 766, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:cornflower", - "id": -838, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:cow_spawn_egg", - "id": 463, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:cracked_deepslate_bricks", - "id": -410, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:cracked_deepslate_tiles", - "id": -409, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:cracked_nether_bricks", - "id": -303, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:cracked_polished_blackstone_bricks", - "id": -280, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:cracked_stone_bricks", - "id": -869, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:crafter", - "id": -313, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:crafting_table", - "id": 58, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:creaking_heart", - "id": -1012, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:creaking_spawn_egg", - "id": 747, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:creeper_banner_pattern", - "id": 615, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:creeper_head", - "id": -968, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:creeper_spawn_egg", - "id": 468, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:crimson_button", - "id": -260, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:crimson_door", - "id": 653, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:crimson_double_slab", - "id": -266, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:crimson_fence", - "id": -256, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:crimson_fence_gate", - "id": -258, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:crimson_fungus", - "id": -228, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:crimson_hanging_sign", - "id": -506, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:crimson_hyphae", - "id": -299, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:crimson_nylium", - "id": -232, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:crimson_planks", - "id": -242, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:crimson_pressure_plate", - "id": -262, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:crimson_roots", - "id": -223, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:crimson_sign", - "id": 651, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:crimson_slab", - "id": -264, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:crimson_stairs", - "id": -254, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:crimson_standing_sign", - "id": -250, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:crimson_stem", - "id": -225, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:crimson_trapdoor", - "id": -246, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:crimson_wall_sign", - "id": -252, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:crossbow", - "id": 608, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:crying_obsidian", - "id": -289, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:cut_copper", - "id": -347, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:cut_copper_slab", - "id": -361, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:cut_copper_stairs", - "id": -354, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:cut_red_sandstone", - "id": -957, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:cut_red_sandstone_double_slab", - "id": -928, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:cut_red_sandstone_slab", - "id": -901, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:cut_sandstone", - "id": -945, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:cut_sandstone_double_slab", - "id": -927, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:cut_sandstone_slab", - "id": -900, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:cyan_bundle", - "id": 261, - "version": 1, - "componentBased": true - }, - { - "name": "minecraft:cyan_candle", - "id": -422, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:cyan_candle_cake", - "id": -439, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:cyan_carpet", - "id": -605, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:cyan_concrete", - "id": -636, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:cyan_concrete_powder", - "id": -717, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:cyan_dye", - "id": 427, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:cyan_glazed_terracotta", - "id": 229, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:cyan_shulker_box", - "id": -621, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:cyan_stained_glass", - "id": -681, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:cyan_stained_glass_pane", - "id": -651, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:cyan_terracotta", - "id": -732, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:cyan_wool", - "id": -561, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:damaged_anvil", - "id": -960, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:dandelion", - "id": 37, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:danger_pottery_sherd", - "id": 699, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:dark_oak_boat", - "id": 406, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:dark_oak_button", - "id": -142, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:dark_oak_chest_boat", - "id": 680, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:dark_oak_door", - "id": 590, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:dark_oak_double_slab", - "id": -813, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:dark_oak_fence", - "id": -577, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:dark_oak_fence_gate", - "id": 186, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:dark_oak_hanging_sign", - "id": -505, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:dark_oak_leaves", - "id": -803, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:dark_oak_log", - "id": -572, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:dark_oak_planks", - "id": -743, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:dark_oak_pressure_plate", - "id": -152, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:dark_oak_sapling", - "id": -829, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:dark_oak_sign", - "id": 613, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:dark_oak_slab", - "id": -808, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:dark_oak_stairs", - "id": 164, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:dark_oak_trapdoor", - "id": -147, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:dark_oak_wood", - "id": -818, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:dark_prismarine", - "id": -947, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:dark_prismarine_double_slab", - "id": -913, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:dark_prismarine_slab", - "id": -886, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:dark_prismarine_stairs", - "id": -3, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:darkoak_standing_sign", - "id": -192, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:darkoak_wall_sign", - "id": -193, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:daylight_detector", - "id": 151, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:daylight_detector_inverted", - "id": 178, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:dead_brain_coral", - "id": -586, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:dead_brain_coral_block", - "id": -854, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:dead_brain_coral_fan", - "id": -844, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:dead_brain_coral_wall_fan", - "id": -906, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:dead_bubble_coral", - "id": -587, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:dead_bubble_coral_block", - "id": -855, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:dead_bubble_coral_fan", - "id": -845, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:dead_bubble_coral_wall_fan", - "id": -908, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:dead_fire_coral", - "id": -588, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:dead_fire_coral_block", - "id": -856, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:dead_fire_coral_fan", - "id": -846, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:dead_fire_coral_wall_fan", - "id": -909, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:dead_horn_coral", - "id": -589, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:dead_horn_coral_block", - "id": -857, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:dead_horn_coral_fan", - "id": -847, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:dead_horn_coral_wall_fan", - "id": -910, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:dead_tube_coral", - "id": -585, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:dead_tube_coral_block", - "id": -853, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:dead_tube_coral_fan", - "id": -134, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:dead_tube_coral_wall_fan", - "id": -905, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:deadbush", - "id": 32, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:decorated_pot", - "id": -551, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:deepslate", - "id": -378, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:deepslate_brick_double_slab", - "id": -399, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:deepslate_brick_slab", - "id": -392, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:deepslate_brick_stairs", - "id": -393, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:deepslate_brick_wall", - "id": -394, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:deepslate_bricks", - "id": -391, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:deepslate_coal_ore", - "id": -406, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:deepslate_copper_ore", - "id": -408, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:deepslate_diamond_ore", - "id": -405, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:deepslate_emerald_ore", - "id": -407, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:deepslate_gold_ore", - "id": -402, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:deepslate_iron_ore", - "id": -401, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:deepslate_lapis_ore", - "id": -400, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:deepslate_redstone_ore", - "id": -403, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:deepslate_tile_double_slab", - "id": -398, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:deepslate_tile_slab", - "id": -388, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:deepslate_tile_stairs", - "id": -389, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:deepslate_tile_wall", - "id": -390, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:deepslate_tiles", - "id": -387, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:deny", - "id": 211, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:deprecated_anvil", - "id": -961, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:deprecated_purpur_block_1", - "id": -950, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:deprecated_purpur_block_2", - "id": -952, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:detector_rail", - "id": 28, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:diamond", - "id": 328, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:diamond_axe", - "id": 343, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:diamond_block", - "id": 57, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:diamond_boots", - "id": 375, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:diamond_chestplate", - "id": 373, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:diamond_helmet", - "id": 372, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:diamond_hoe", - "id": 357, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:diamond_horse_armor", - "id": 566, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:diamond_leggings", - "id": 374, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:diamond_ore", - "id": 56, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:diamond_pickaxe", - "id": 342, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:diamond_shovel", - "id": 341, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:diamond_sword", - "id": 340, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:diorite", - "id": -592, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:diorite_double_slab", - "id": -921, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:diorite_slab", - "id": -894, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:diorite_stairs", - "id": -170, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:diorite_wall", - "id": -973, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:dirt", - "id": 3, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:dirt_with_roots", - "id": -318, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:disc_fragment_5", - "id": 674, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:dispenser", - "id": 23, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:dolphin_spawn_egg", - "id": 512, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:donkey_spawn_egg", - "id": 493, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:double_cut_copper_slab", - "id": -368, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:double_plant", - "id": 772, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:double_stone_block_slab", - "id": 761, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:double_stone_block_slab2", - "id": 762, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:double_stone_block_slab3", - "id": 763, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:double_stone_block_slab4", - "id": 764, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:dragon_breath", - "id": 593, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:dragon_egg", - "id": 122, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:dragon_head", - "id": -969, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:dried_kelp", - "id": 292, - "version": 0, - "componentBased": false - }, - { - "name": "minecraft:dried_kelp_block", - "id": -139, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:dripstone_block", - "id": -317, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:dropper", - "id": 125, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:drowned_spawn_egg", - "id": 511, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:dune_armor_trim_smithing_template", - "id": 719, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:dye", - "id": 794, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:echo_shard", - "id": 684, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:egg", - "id": 416, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:elder_guardian_spawn_egg", - "id": 499, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_0", - "id": 36, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_1", - "id": -12, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_10", - "id": -21, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_100", - "id": -111, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_101", - "id": -112, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_102", - "id": -113, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_103", - "id": -114, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_104", - "id": -115, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_105", - "id": -116, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_106", - "id": -117, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_107", - "id": -118, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_108", - "id": -119, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_109", - "id": -120, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_11", - "id": -22, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_110", - "id": -121, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_111", - "id": -122, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_112", - "id": -123, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_113", - "id": -124, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_114", - "id": -125, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_115", - "id": -126, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_116", - "id": -127, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_117", - "id": -128, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_118", - "id": -129, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_12", - "id": -23, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_13", - "id": -24, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_14", - "id": -25, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_15", - "id": -26, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_16", - "id": -27, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_17", - "id": -28, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_18", - "id": -29, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_19", - "id": -30, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_2", - "id": -13, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_20", - "id": -31, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_21", - "id": -32, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_22", - "id": -33, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_23", - "id": -34, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_24", - "id": -35, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_25", - "id": -36, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_26", - "id": -37, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_27", - "id": -38, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_28", - "id": -39, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_29", - "id": -40, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_3", - "id": -14, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_30", - "id": -41, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_31", - "id": -42, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_32", - "id": -43, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_33", - "id": -44, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_34", - "id": -45, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_35", - "id": -46, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_36", - "id": -47, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_37", - "id": -48, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_38", - "id": -49, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_39", - "id": -50, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_4", - "id": -15, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_40", - "id": -51, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_41", - "id": -52, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_42", - "id": -53, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_43", - "id": -54, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_44", - "id": -55, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_45", - "id": -56, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_46", - "id": -57, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_47", - "id": -58, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_48", - "id": -59, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_49", - "id": -60, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_5", - "id": -16, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_50", - "id": -61, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_51", - "id": -62, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_52", - "id": -63, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_53", - "id": -64, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_54", - "id": -65, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_55", - "id": -66, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_56", - "id": -67, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_57", - "id": -68, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_58", - "id": -69, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_59", - "id": -70, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_6", - "id": -17, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_60", - "id": -71, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_61", - "id": -72, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_62", - "id": -73, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_63", - "id": -74, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_64", - "id": -75, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_65", - "id": -76, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_66", - "id": -77, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_67", - "id": -78, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_68", - "id": -79, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_69", - "id": -80, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_7", - "id": -18, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_70", - "id": -81, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_71", - "id": -82, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_72", - "id": -83, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_73", - "id": -84, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_74", - "id": -85, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_75", - "id": -86, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_76", - "id": -87, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_77", - "id": -88, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_78", - "id": -89, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_79", - "id": -90, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_8", - "id": -19, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_80", - "id": -91, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_81", - "id": -92, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_82", - "id": -93, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_83", - "id": -94, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_84", - "id": -95, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_85", - "id": -96, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_86", - "id": -97, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_87", - "id": -98, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_88", - "id": -99, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_89", - "id": -100, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_9", - "id": -20, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_90", - "id": -101, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_91", - "id": -102, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_92", - "id": -103, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_93", - "id": -104, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_94", - "id": -105, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_95", - "id": -106, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_96", - "id": -107, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_97", - "id": -108, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_98", - "id": -109, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_99", - "id": -110, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:element_constructor", - "id": -987, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:elytra", - "id": 597, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:emerald", - "id": 546, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:emerald_block", - "id": 133, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:emerald_ore", - "id": 129, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:empty_map", - "id": 549, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:enchanted_book", - "id": 554, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:enchanted_golden_apple", - "id": 281, - "version": 0, - "componentBased": false - }, - { - "name": "minecraft:enchanting_table", - "id": 116, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:end_brick_stairs", - "id": -178, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:end_bricks", - "id": 206, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:end_crystal", - "id": 797, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:end_gateway", - "id": 209, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:end_portal", - "id": 119, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:end_portal_frame", - "id": 120, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:end_rod", - "id": 208, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:end_stone", - "id": 121, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:end_stone_brick_double_slab", - "id": -167, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:end_stone_brick_slab", - "id": -162, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:end_stone_brick_wall", - "id": -980, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:ender_chest", - "id": 130, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:ender_dragon_spawn_egg", - "id": 535, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:ender_eye", - "id": 460, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:ender_pearl", - "id": 448, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:enderman_spawn_egg", - "id": 469, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:endermite_spawn_egg", - "id": 487, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:evoker_spawn_egg", - "id": 503, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:experience_bottle", - "id": 542, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:explorer_pottery_sherd", - "id": 700, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:exposed_chiseled_copper", - "id": -761, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:exposed_copper", - "id": -341, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:exposed_copper_bulb", - "id": -777, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:exposed_copper_door", - "id": -785, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:exposed_copper_grate", - "id": -769, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:exposed_copper_trapdoor", - "id": -793, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:exposed_cut_copper", - "id": -348, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:exposed_cut_copper_slab", - "id": -362, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:exposed_cut_copper_stairs", - "id": -355, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:exposed_double_cut_copper_slab", - "id": -369, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:eye_armor_trim_smithing_template", - "id": 723, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:farmland", - "id": 60, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:feather", - "id": 352, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:fence", - "id": 754, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:fence_gate", - "id": 107, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:fermented_spider_eye", - "id": 455, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:fern", - "id": -848, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:field_masoned_banner_pattern", - "id": 618, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:filled_map", - "id": 446, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:fire", - "id": 51, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:fire_charge", - "id": 543, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:fire_coral", - "id": -583, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:fire_coral_block", - "id": -851, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:fire_coral_fan", - "id": -842, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:fire_coral_wall_fan", - "id": -907, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:firefly_bush", - "id": -1025, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:firework_rocket", - "id": 552, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:firework_star", - "id": 553, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:fishing_rod", - "id": 418, - "version": 2, - "componentBased": true - }, - { - "name": "minecraft:fletching_table", - "id": -201, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:flint", - "id": 381, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:flint_and_steel", - "id": 323, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:flow_armor_trim_smithing_template", - "id": 734, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:flow_banner_pattern", - "id": 622, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:flow_pottery_sherd", - "id": 701, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:flower_banner_pattern", - "id": 614, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:flower_pot", - "id": 548, - "version": 2, - "componentBased": true - }, - { - "name": "minecraft:flowering_azalea", - "id": -338, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:flowing_lava", - "id": 10, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:flowing_water", - "id": 8, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:fox_spawn_egg", - "id": 518, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:frame", - "id": 547, - "version": 2, - "componentBased": true - }, - { - "name": "minecraft:friend_pottery_sherd", - "id": 702, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:frog_spawn", - "id": -468, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:frog_spawn_egg", - "id": 665, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:frosted_ice", - "id": 207, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:furnace", - "id": 61, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:ghast_spawn_egg", - "id": 481, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:ghast_tear", - "id": 451, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:gilded_blackstone", - "id": -281, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:glass", - "id": 20, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:glass_bottle", - "id": 454, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:glass_pane", - "id": 102, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:glistering_melon_slice", - "id": 461, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:globe_banner_pattern", - "id": 621, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:glow_berries", - "id": 798, - "version": 0, - "componentBased": false - }, - { - "name": "minecraft:glow_frame", - "id": 660, - "version": 2, - "componentBased": true - }, - { - "name": "minecraft:glow_ink_sac", - "id": 537, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:glow_lichen", - "id": -411, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:glow_squid_spawn_egg", - "id": 532, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:glow_stick", - "id": 638, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:glowingobsidian", - "id": 246, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:glowstone", - "id": 89, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:glowstone_dust", - "id": 420, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:goat_horn", - "id": 664, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:goat_spawn_egg", - "id": 531, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:gold_block", - "id": 41, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:gold_ingot", - "id": 330, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:gold_nugget", - "id": 452, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:gold_ore", - "id": 14, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:golden_apple", - "id": 280, - "version": 0, - "componentBased": false - }, - { - "name": "minecraft:golden_axe", - "id": 350, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:golden_boots", - "id": 379, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:golden_carrot", - "id": 305, - "version": 0, - "componentBased": false - }, - { - "name": "minecraft:golden_chestplate", - "id": 377, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:golden_helmet", - "id": 376, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:golden_hoe", - "id": 358, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:golden_horse_armor", - "id": 565, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:golden_leggings", - "id": 378, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:golden_pickaxe", - "id": 349, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:golden_rail", - "id": 27, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:golden_shovel", - "id": 348, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:golden_sword", - "id": 347, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:granite", - "id": -590, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:granite_double_slab", - "id": -923, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:granite_slab", - "id": -896, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:granite_stairs", - "id": -169, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:granite_wall", - "id": -972, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:grass_block", - "id": 2, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:grass_path", - "id": 198, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:gravel", - "id": 13, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:gray_bundle", - "id": 262, - "version": 1, - "componentBased": true - }, - { - "name": "minecraft:gray_candle", - "id": -420, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:gray_candle_cake", - "id": -437, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:gray_carpet", - "id": -603, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:gray_concrete", - "id": -634, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:gray_concrete_powder", - "id": -715, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:gray_dye", - "id": 429, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:gray_glazed_terracotta", - "id": 227, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:gray_shulker_box", - "id": -619, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:gray_stained_glass", - "id": -679, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:gray_stained_glass_pane", - "id": -649, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:gray_terracotta", - "id": -730, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:gray_wool", - "id": -553, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:green_bundle", - "id": 263, - "version": 1, - "componentBased": true - }, - { - "name": "minecraft:green_candle", - "id": -426, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:green_candle_cake", - "id": -443, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:green_carpet", - "id": -609, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:green_concrete", - "id": -640, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:green_concrete_powder", - "id": -721, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:green_dye", - "id": 423, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:green_glazed_terracotta", - "id": 233, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:green_shulker_box", - "id": -625, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:green_stained_glass", - "id": -685, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:green_stained_glass_pane", - "id": -655, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:green_terracotta", - "id": -736, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:green_wool", - "id": -560, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:grindstone", - "id": -195, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:guardian_spawn_egg", - "id": 488, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:gunpowder", - "id": 353, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:guster_banner_pattern", - "id": 623, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:guster_pottery_sherd", - "id": 703, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:hanging_roots", - "id": -319, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:hard_black_stained_glass", - "id": -702, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:hard_black_stained_glass_pane", - "id": -672, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:hard_blue_stained_glass", - "id": -698, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:hard_blue_stained_glass_pane", - "id": -668, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:hard_brown_stained_glass", - "id": -699, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:hard_brown_stained_glass_pane", - "id": -669, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:hard_cyan_stained_glass", - "id": -696, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:hard_cyan_stained_glass_pane", - "id": -666, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:hard_glass", - "id": 253, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:hard_glass_pane", - "id": 190, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:hard_gray_stained_glass", - "id": -694, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:hard_gray_stained_glass_pane", - "id": -664, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:hard_green_stained_glass", - "id": -700, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:hard_green_stained_glass_pane", - "id": -670, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:hard_light_blue_stained_glass", - "id": -690, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:hard_light_blue_stained_glass_pane", - "id": -660, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:hard_light_gray_stained_glass", - "id": -695, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:hard_light_gray_stained_glass_pane", - "id": -665, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:hard_lime_stained_glass", - "id": -692, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:hard_lime_stained_glass_pane", - "id": -662, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:hard_magenta_stained_glass", - "id": -689, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:hard_magenta_stained_glass_pane", - "id": -659, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:hard_orange_stained_glass", - "id": -688, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:hard_orange_stained_glass_pane", - "id": -658, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:hard_pink_stained_glass", - "id": -693, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:hard_pink_stained_glass_pane", - "id": -663, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:hard_purple_stained_glass", - "id": -697, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:hard_purple_stained_glass_pane", - "id": -667, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:hard_red_stained_glass", - "id": -701, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:hard_red_stained_glass_pane", - "id": -671, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:hard_stained_glass", - "id": 788, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:hard_stained_glass_pane", - "id": 789, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:hard_white_stained_glass", - "id": 254, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:hard_white_stained_glass_pane", - "id": 191, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:hard_yellow_stained_glass", - "id": -691, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:hard_yellow_stained_glass_pane", - "id": -661, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:hardened_clay", - "id": 172, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:hay_block", - "id": 170, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:heart_of_the_sea", - "id": 604, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:heart_pottery_sherd", - "id": 704, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:heartbreak_pottery_sherd", - "id": 705, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:heavy_core", - "id": -316, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:heavy_weighted_pressure_plate", - "id": 148, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:hoglin_spawn_egg", - "id": 524, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:honey_block", - "id": -220, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:honey_bottle", - "id": 627, - "version": 0, - "componentBased": false - }, - { - "name": "minecraft:honeycomb", - "id": 626, - "version": 0, - "componentBased": false - }, - { - "name": "minecraft:honeycomb_block", - "id": -221, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:hopper", - "id": 560, - "version": 2, - "componentBased": true - }, - { - "name": "minecraft:hopper_minecart", - "id": 559, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:horn_coral", - "id": -584, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:horn_coral_block", - "id": -852, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:horn_coral_fan", - "id": -843, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:horn_coral_wall_fan", - "id": -137, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:horse_spawn_egg", - "id": 485, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:host_armor_trim_smithing_template", - "id": 733, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:howl_pottery_sherd", - "id": 706, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:husk_spawn_egg", - "id": 491, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:ice", - "id": 79, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:ice_bomb", - "id": 632, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:infested_chiseled_stone_bricks", - "id": -862, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:infested_cobblestone", - "id": -858, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:infested_cracked_stone_bricks", - "id": -861, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:infested_deepslate", - "id": -454, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:infested_mossy_stone_bricks", - "id": -860, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:infested_stone", - "id": 97, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:infested_stone_bricks", - "id": -859, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:info_update", - "id": 248, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:info_update2", - "id": 249, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:ink_sac", - "id": 439, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:invisible_bedrock", - "id": 95, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:iron_axe", - "id": 322, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:iron_bars", - "id": 101, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:iron_block", - "id": 42, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:iron_boots", - "id": 371, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:iron_chestplate", - "id": 369, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:iron_door", - "id": 397, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:iron_golem_spawn_egg", - "id": 533, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:iron_helmet", - "id": 368, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:iron_hoe", - "id": 356, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:iron_horse_armor", - "id": 564, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:iron_ingot", - "id": 329, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:iron_leggings", - "id": 370, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:iron_nugget", - "id": 602, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:iron_ore", - "id": 15, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:iron_pickaxe", - "id": 321, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:iron_shovel", - "id": 320, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:iron_sword", - "id": 331, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:iron_trapdoor", - "id": 167, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:item.acacia_door", - "id": 196, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:item.bed", - "id": 26, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:item.beetroot", - "id": 244, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:item.birch_door", - "id": 194, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:item.brewing_stand", - "id": 117, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:item.cake", - "id": 92, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:item.camera", - "id": 242, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:item.campfire", - "id": -209, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:item.cauldron", - "id": 118, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:item.chain", - "id": -286, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:item.crimson_door", - "id": -244, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:item.dark_oak_door", - "id": 197, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:item.flower_pot", - "id": 140, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:item.frame", - "id": 199, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:item.glow_frame", - "id": -339, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:item.hopper", - "id": 154, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:item.iron_door", - "id": 71, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:item.jungle_door", - "id": 195, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:item.kelp", - "id": -138, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:item.mangrove_door", - "id": -493, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:item.nether_sprouts", - "id": -238, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:item.nether_wart", - "id": 115, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:item.reeds", - "id": 83, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:item.soul_campfire", - "id": -290, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:item.spruce_door", - "id": 193, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:item.warped_door", - "id": -245, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:item.wheat", - "id": 59, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:item.wooden_door", - "id": 64, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:jigsaw", - "id": -211, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:jukebox", - "id": 84, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:jungle_boat", - "id": 403, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:jungle_button", - "id": -143, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:jungle_chest_boat", - "id": 677, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:jungle_door", - "id": 588, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:jungle_double_slab", - "id": -811, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:jungle_fence", - "id": -578, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:jungle_fence_gate", - "id": 185, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:jungle_hanging_sign", - "id": -503, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:jungle_leaves", - "id": -802, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:jungle_log", - "id": -571, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:jungle_planks", - "id": -741, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:jungle_pressure_plate", - "id": -153, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:jungle_sapling", - "id": -827, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:jungle_sign", - "id": 611, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:jungle_slab", - "id": -806, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:jungle_stairs", - "id": 136, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:jungle_standing_sign", - "id": -188, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:jungle_trapdoor", - "id": -148, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:jungle_wall_sign", - "id": -189, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:jungle_wood", - "id": -816, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:kelp", - "id": 408, - "version": 2, - "componentBased": true - }, - { - "name": "minecraft:lab_table", - "id": -988, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:ladder", - "id": 65, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:lantern", - "id": -208, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:lapis_block", - "id": 22, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:lapis_lazuli", - "id": 440, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:lapis_ore", - "id": 21, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:large_amethyst_bud", - "id": -330, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:large_fern", - "id": -865, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:lava", - "id": 11, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:lava_bucket", - "id": 388, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:lead", - "id": 580, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:leaf_litter", - "id": -1026, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:leather", - "id": 407, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:leather_boots", - "id": 363, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:leather_chestplate", - "id": 361, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:leather_helmet", - "id": 360, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:leather_horse_armor", - "id": 563, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:leather_leggings", - "id": 362, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:leaves", - "id": 768, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:leaves2", - "id": 769, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:lectern", - "id": -194, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:lever", - "id": 69, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:light_block", - "id": 792, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:light_block_0", - "id": -215, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:light_block_1", - "id": -929, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:light_block_10", - "id": -938, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:light_block_11", - "id": -939, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:light_block_12", - "id": -940, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:light_block_13", - "id": -941, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:light_block_14", - "id": -942, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:light_block_15", - "id": -943, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:light_block_2", - "id": -930, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:light_block_3", - "id": -931, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:light_block_4", - "id": -932, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:light_block_5", - "id": -933, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:light_block_6", - "id": -934, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:light_block_7", - "id": -935, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:light_block_8", - "id": -936, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:light_block_9", - "id": -937, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:light_blue_bundle", - "id": 264, - "version": 1, - "componentBased": true - }, - { - "name": "minecraft:light_blue_candle", - "id": -416, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:light_blue_candle_cake", - "id": -433, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:light_blue_carpet", - "id": -599, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:light_blue_concrete", - "id": -630, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:light_blue_concrete_powder", - "id": -711, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:light_blue_dye", - "id": 433, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:light_blue_glazed_terracotta", - "id": 223, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:light_blue_shulker_box", - "id": -615, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:light_blue_stained_glass", - "id": -675, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:light_blue_stained_glass_pane", - "id": -645, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:light_blue_terracotta", - "id": -726, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:light_blue_wool", - "id": -562, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:light_gray_bundle", - "id": 265, - "version": 1, - "componentBased": true - }, - { - "name": "minecraft:light_gray_candle", - "id": -421, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:light_gray_candle_cake", - "id": -438, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:light_gray_carpet", - "id": -604, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:light_gray_concrete", - "id": -635, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:light_gray_concrete_powder", - "id": -716, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:light_gray_dye", - "id": 428, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:light_gray_shulker_box", - "id": -620, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:light_gray_stained_glass", - "id": -680, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:light_gray_stained_glass_pane", - "id": -650, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:light_gray_terracotta", - "id": -731, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:light_gray_wool", - "id": -552, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:light_weighted_pressure_plate", - "id": 147, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:lightning_rod", - "id": -312, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:lilac", - "id": -863, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:lily_of_the_valley", - "id": -839, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:lime_bundle", - "id": 266, - "version": 1, - "componentBased": true - }, - { - "name": "minecraft:lime_candle", - "id": -418, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:lime_candle_cake", - "id": -435, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:lime_carpet", - "id": -601, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:lime_concrete", - "id": -632, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:lime_concrete_powder", - "id": -713, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:lime_dye", - "id": 431, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:lime_glazed_terracotta", - "id": 225, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:lime_shulker_box", - "id": -617, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:lime_stained_glass", - "id": -677, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:lime_stained_glass_pane", - "id": -647, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:lime_terracotta", - "id": -728, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:lime_wool", - "id": -559, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:lingering_potion", - "id": 595, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:lit_blast_furnace", - "id": -214, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:lit_deepslate_redstone_ore", - "id": -404, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:lit_furnace", - "id": 62, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:lit_pumpkin", - "id": 91, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:lit_redstone_lamp", - "id": 124, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:lit_redstone_ore", - "id": 74, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:lit_smoker", - "id": -199, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:llama_spawn_egg", - "id": 501, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:lodestone", - "id": -222, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:lodestone_compass", - "id": 639, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:log", - "id": 753, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:log2", - "id": 776, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:loom", - "id": -204, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:mace", - "id": 344, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:magenta_bundle", - "id": 267, - "version": 1, - "componentBased": true - }, - { - "name": "minecraft:magenta_candle", - "id": -415, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:magenta_candle_cake", - "id": -432, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:magenta_carpet", - "id": -598, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:magenta_concrete", - "id": -629, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:magenta_concrete_powder", - "id": -710, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:magenta_dye", - "id": 434, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:magenta_glazed_terracotta", - "id": 222, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:magenta_shulker_box", - "id": -614, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:magenta_stained_glass", - "id": -674, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:magenta_stained_glass_pane", - "id": -644, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:magenta_terracotta", - "id": -725, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:magenta_wool", - "id": -565, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:magma", - "id": 213, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:magma_cream", - "id": 457, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:magma_cube_spawn_egg", - "id": 482, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:mangrove_boat", - "id": 672, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:mangrove_button", - "id": -487, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:mangrove_chest_boat", - "id": 681, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:mangrove_door", - "id": 670, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:mangrove_double_slab", - "id": -499, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:mangrove_fence", - "id": -491, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:mangrove_fence_gate", - "id": -492, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:mangrove_hanging_sign", - "id": -508, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:mangrove_leaves", - "id": -472, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:mangrove_log", - "id": -484, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:mangrove_planks", - "id": -486, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:mangrove_pressure_plate", - "id": -490, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:mangrove_propagule", - "id": -474, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:mangrove_roots", - "id": -482, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:mangrove_sign", - "id": 671, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:mangrove_slab", - "id": -489, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:mangrove_stairs", - "id": -488, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:mangrove_standing_sign", - "id": -494, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:mangrove_trapdoor", - "id": -496, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:mangrove_wall_sign", - "id": -495, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:mangrove_wood", - "id": -497, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:material_reducer", - "id": -986, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:medicine", - "id": 636, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:medium_amethyst_bud", - "id": -331, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:melon_block", - "id": 103, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:melon_seeds", - "id": 315, - "version": 0, - "componentBased": false - }, - { - "name": "minecraft:melon_slice", - "id": 294, - "version": 0, - "componentBased": false - }, - { - "name": "minecraft:melon_stem", - "id": 105, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:milk_bucket", - "id": 386, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:minecart", - "id": 395, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:miner_pottery_sherd", - "id": 707, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:mob_spawner", - "id": 52, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:mojang_banner_pattern", - "id": 617, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:monster_egg", - "id": 777, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:mooshroom_spawn_egg", - "id": 467, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:moss_block", - "id": -320, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:moss_carpet", - "id": -335, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:mossy_cobblestone", - "id": 48, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:mossy_cobblestone_double_slab", - "id": -915, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:mossy_cobblestone_slab", - "id": -888, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:mossy_cobblestone_stairs", - "id": -179, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:mossy_cobblestone_wall", - "id": -971, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:mossy_stone_brick_double_slab", - "id": -168, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:mossy_stone_brick_slab", - "id": -166, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:mossy_stone_brick_stairs", - "id": -175, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:mossy_stone_brick_wall", - "id": -978, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:mossy_stone_bricks", - "id": -868, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:mourner_pottery_sherd", - "id": 708, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:moving_block", - "id": 250, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:mud", - "id": -473, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:mud_brick_double_slab", - "id": -479, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:mud_brick_slab", - "id": -478, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:mud_brick_stairs", - "id": -480, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:mud_brick_wall", - "id": -481, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:mud_bricks", - "id": -475, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:muddy_mangrove_roots", - "id": -483, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:mule_spawn_egg", - "id": 494, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:mushroom_stem", - "id": -1008, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:mushroom_stew", - "id": 282, - "version": 0, - "componentBased": false - }, - { - "name": "minecraft:music_disc_11", - "id": 577, - "version": 2, - "componentBased": true - }, - { - "name": "minecraft:music_disc_13", - "id": 567, - "version": 2, - "componentBased": true - }, - { - "name": "minecraft:music_disc_5", - "id": 673, - "version": 2, - "componentBased": true - }, - { - "name": "minecraft:music_disc_blocks", - "id": 569, - "version": 2, - "componentBased": true - }, - { - "name": "minecraft:music_disc_cat", - "id": 568, - "version": 2, - "componentBased": true - }, - { - "name": "minecraft:music_disc_chirp", - "id": 570, - "version": 2, - "componentBased": true - }, - { - "name": "minecraft:music_disc_creator", - "id": 784, - "version": 2, - "componentBased": true - }, - { - "name": "minecraft:music_disc_creator_music_box", - "id": 785, - "version": 2, - "componentBased": true - }, - { - "name": "minecraft:music_disc_far", - "id": 571, - "version": 2, - "componentBased": true - }, - { - "name": "minecraft:music_disc_mall", - "id": 572, - "version": 2, - "componentBased": true - }, - { - "name": "minecraft:music_disc_mellohi", - "id": 573, - "version": 2, - "componentBased": true - }, - { - "name": "minecraft:music_disc_otherside", - "id": 663, - "version": 2, - "componentBased": true - }, - { - "name": "minecraft:music_disc_pigstep", - "id": 657, - "version": 2, - "componentBased": true - }, - { - "name": "minecraft:music_disc_precipice", - "id": 786, - "version": 2, - "componentBased": true - }, - { - "name": "minecraft:music_disc_relic", - "id": 736, - "version": 2, - "componentBased": true - }, - { - "name": "minecraft:music_disc_stal", - "id": 574, - "version": 2, - "componentBased": true - }, - { - "name": "minecraft:music_disc_strad", - "id": 575, - "version": 2, - "componentBased": true - }, - { - "name": "minecraft:music_disc_wait", - "id": 578, - "version": 2, - "componentBased": true - }, - { - "name": "minecraft:music_disc_ward", - "id": 576, - "version": 2, - "componentBased": true - }, - { - "name": "minecraft:mutton", - "id": 583, - "version": 0, - "componentBased": false - }, - { - "name": "minecraft:mycelium", - "id": 110, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:name_tag", - "id": 581, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:nautilus_shell", - "id": 603, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:nether_brick", - "id": 112, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:nether_brick_double_slab", - "id": -883, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:nether_brick_fence", - "id": 113, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:nether_brick_slab", - "id": -877, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:nether_brick_stairs", - "id": 114, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:nether_brick_wall", - "id": -979, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:nether_gold_ore", - "id": -288, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:nether_sprouts", - "id": 658, - "version": 2, - "componentBased": true - }, - { - "name": "minecraft:nether_star", - "id": 551, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:nether_wart", - "id": 316, - "version": 0, - "componentBased": false - }, - { - "name": "minecraft:nether_wart_block", - "id": 214, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:netherbrick", - "id": 556, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:netherite_axe", - "id": 643, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:netherite_block", - "id": -270, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:netherite_boots", - "id": 649, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:netherite_chestplate", - "id": 647, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:netherite_helmet", - "id": 646, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:netherite_hoe", - "id": 644, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:netherite_ingot", - "id": 645, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:netherite_leggings", - "id": 648, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:netherite_pickaxe", - "id": 642, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:netherite_scrap", - "id": 650, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:netherite_shovel", - "id": 641, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:netherite_sword", - "id": 640, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:netherite_upgrade_smithing_template", - "id": 717, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:netherrack", - "id": 87, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:netherreactor", - "id": 247, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:normal_stone_double_slab", - "id": -926, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:normal_stone_slab", - "id": -899, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:normal_stone_stairs", - "id": -180, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:noteblock", - "id": 25, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:npc_spawn_egg", - "id": 498, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:oak_boat", - "id": 401, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:oak_chest_boat", - "id": 675, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:oak_double_slab", - "id": 157, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:oak_fence", - "id": 85, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:oak_hanging_sign", - "id": -500, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:oak_leaves", - "id": 18, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:oak_log", - "id": 17, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:oak_planks", - "id": 5, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:oak_sapling", - "id": 6, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:oak_sign", - "id": 383, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:oak_slab", - "id": 158, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:oak_stairs", - "id": 53, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:oak_wood", - "id": -212, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:observer", - "id": 251, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:obsidian", - "id": 49, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:ocelot_spawn_egg", - "id": 478, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:ochre_froglight", - "id": -471, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:ominous_bottle", - "id": 628, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:ominous_trial_key", - "id": 275, - "version": 1, - "componentBased": true - }, - { - "name": "minecraft:open_eyeblossom", - "id": -1018, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:orange_bundle", - "id": 268, - "version": 1, - "componentBased": true - }, - { - "name": "minecraft:orange_candle", - "id": -414, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:orange_candle_cake", - "id": -431, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:orange_carpet", - "id": -597, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:orange_concrete", - "id": -628, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:orange_concrete_powder", - "id": -709, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:orange_dye", - "id": 435, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:orange_glazed_terracotta", - "id": 221, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:orange_shulker_box", - "id": -613, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:orange_stained_glass", - "id": -673, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:orange_stained_glass_pane", - "id": -643, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:orange_terracotta", - "id": -724, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:orange_tulip", - "id": -834, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:orange_wool", - "id": -557, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:oxeye_daisy", - "id": -837, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:oxidized_chiseled_copper", - "id": -763, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:oxidized_copper", - "id": -343, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:oxidized_copper_bulb", - "id": -779, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:oxidized_copper_door", - "id": -787, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:oxidized_copper_grate", - "id": -771, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:oxidized_copper_trapdoor", - "id": -795, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:oxidized_cut_copper", - "id": -350, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:oxidized_cut_copper_slab", - "id": -364, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:oxidized_cut_copper_stairs", - "id": -357, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:oxidized_double_cut_copper_slab", - "id": -371, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:packed_ice", - "id": 174, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:packed_mud", - "id": -477, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:painting", - "id": 382, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:pale_hanging_moss", - "id": -1011, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:pale_moss_block", - "id": -1009, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:pale_moss_carpet", - "id": -1010, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:pale_oak_boat", - "id": 744, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:pale_oak_button", - "id": -989, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:pale_oak_chest_boat", - "id": 745, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:pale_oak_door", - "id": -990, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:pale_oak_double_slab", - "id": -999, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:pale_oak_fence", - "id": -991, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:pale_oak_fence_gate", - "id": -992, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:pale_oak_hanging_sign", - "id": -993, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:pale_oak_leaves", - "id": -1007, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:pale_oak_log", - "id": -995, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:pale_oak_planks", - "id": -996, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:pale_oak_pressure_plate", - "id": -997, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:pale_oak_sapling", - "id": -1006, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:pale_oak_sign", - "id": 746, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:pale_oak_slab", - "id": -998, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:pale_oak_stairs", - "id": -1000, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:pale_oak_standing_sign", - "id": -1001, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:pale_oak_trapdoor", - "id": -1002, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:pale_oak_wall_sign", - "id": -1003, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:pale_oak_wood", - "id": -1005, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:panda_spawn_egg", - "id": 517, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:paper", - "id": 412, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:parrot_spawn_egg", - "id": 506, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:pearlescent_froglight", - "id": -469, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:peony", - "id": -867, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:petrified_oak_double_slab", - "id": -903, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:petrified_oak_slab", - "id": -902, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:phantom_membrane", - "id": 607, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:phantom_spawn_egg", - "id": 514, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:pig_spawn_egg", - "id": 464, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:piglin_banner_pattern", - "id": 620, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:piglin_brute_spawn_egg", - "id": 527, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:piglin_head", - "id": -970, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:piglin_spawn_egg", - "id": 525, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:pillager_spawn_egg", - "id": 519, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:pink_bundle", - "id": 269, - "version": 1, - "componentBased": true - }, - { - "name": "minecraft:pink_candle", - "id": -419, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:pink_candle_cake", - "id": -436, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:pink_carpet", - "id": -602, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:pink_concrete", - "id": -633, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:pink_concrete_powder", - "id": -714, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:pink_dye", - "id": 430, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:pink_glazed_terracotta", - "id": 226, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:pink_petals", - "id": -549, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:pink_shulker_box", - "id": -618, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:pink_stained_glass", - "id": -678, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:pink_stained_glass_pane", - "id": -648, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:pink_terracotta", - "id": -729, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:pink_tulip", - "id": -836, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:pink_wool", - "id": -566, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:piston", - "id": 33, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:piston_arm_collision", - "id": 34, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:pitcher_crop", - "id": -574, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:pitcher_plant", - "id": -612, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:pitcher_pod", - "id": 319, - "version": 0, - "componentBased": false - }, - { - "name": "minecraft:planks", - "id": 773, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:player_head", - "id": -967, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:plenty_pottery_sherd", - "id": 709, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:podzol", - "id": 243, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:pointed_dripstone", - "id": -308, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:poisonous_potato", - "id": 304, - "version": 0, - "componentBased": false - }, - { - "name": "minecraft:polar_bear_spawn_egg", - "id": 500, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:polished_andesite", - "id": -595, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:polished_andesite_double_slab", - "id": -919, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:polished_andesite_slab", - "id": -892, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:polished_andesite_stairs", - "id": -174, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:polished_basalt", - "id": -235, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:polished_blackstone", - "id": -291, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:polished_blackstone_brick_double_slab", - "id": -285, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:polished_blackstone_brick_slab", - "id": -284, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:polished_blackstone_brick_stairs", - "id": -275, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:polished_blackstone_brick_wall", - "id": -278, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:polished_blackstone_bricks", - "id": -274, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:polished_blackstone_button", - "id": -296, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:polished_blackstone_double_slab", - "id": -294, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:polished_blackstone_pressure_plate", - "id": -295, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:polished_blackstone_slab", - "id": -293, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:polished_blackstone_stairs", - "id": -292, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:polished_blackstone_wall", - "id": -297, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:polished_deepslate", - "id": -383, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:polished_deepslate_double_slab", - "id": -397, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:polished_deepslate_slab", - "id": -384, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:polished_deepslate_stairs", - "id": -385, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:polished_deepslate_wall", - "id": -386, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:polished_diorite", - "id": -593, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:polished_diorite_double_slab", - "id": -922, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:polished_diorite_slab", - "id": -895, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:polished_diorite_stairs", - "id": -173, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:polished_granite", - "id": -591, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:polished_granite_double_slab", - "id": -924, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:polished_granite_slab", - "id": -897, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:polished_granite_stairs", - "id": -172, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:polished_tuff", - "id": -748, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:polished_tuff_double_slab", - "id": -750, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:polished_tuff_slab", - "id": -749, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:polished_tuff_stairs", - "id": -751, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:polished_tuff_wall", - "id": -752, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:popped_chorus_fruit", - "id": 592, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:poppy", - "id": 38, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:porkchop", - "id": 284, - "version": 0, - "componentBased": false - }, - { - "name": "minecraft:portal", - "id": 90, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:potato", - "id": 302, - "version": 0, - "componentBased": false - }, - { - "name": "minecraft:potatoes", - "id": 142, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:potion", - "id": 453, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:powder_snow", - "id": -306, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:powder_snow_bucket", - "id": 393, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:powered_comparator", - "id": 150, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:powered_repeater", - "id": 94, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:prismarine", - "id": 168, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:prismarine_brick_double_slab", - "id": -914, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:prismarine_brick_slab", - "id": -887, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:prismarine_bricks", - "id": -948, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:prismarine_bricks_stairs", - "id": -4, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:prismarine_crystals", - "id": 582, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:prismarine_double_slab", - "id": -912, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:prismarine_shard", - "id": 598, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:prismarine_slab", - "id": -885, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:prismarine_stairs", - "id": -2, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:prismarine_wall", - "id": -981, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:prize_pottery_sherd", - "id": 710, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:pufferfish", - "id": 289, - "version": 0, - "componentBased": false - }, - { - "name": "minecraft:pufferfish_bucket", - "id": 392, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:pufferfish_spawn_egg", - "id": 509, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:pumpkin", - "id": 86, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:pumpkin_pie", - "id": 306, - "version": 0, - "componentBased": false - }, - { - "name": "minecraft:pumpkin_seeds", - "id": 314, - "version": 0, - "componentBased": false - }, - { - "name": "minecraft:pumpkin_stem", - "id": 104, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:purple_bundle", - "id": 270, - "version": 1, - "componentBased": true - }, - { - "name": "minecraft:purple_candle", - "id": -423, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:purple_candle_cake", - "id": -440, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:purple_carpet", - "id": -606, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:purple_concrete", - "id": -637, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:purple_concrete_powder", - "id": -718, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:purple_dye", - "id": 426, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:purple_glazed_terracotta", - "id": 219, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:purple_shulker_box", - "id": -622, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:purple_stained_glass", - "id": -682, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:purple_stained_glass_pane", - "id": -652, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:purple_terracotta", - "id": -733, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:purple_wool", - "id": -564, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:purpur_block", - "id": 201, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:purpur_double_slab", - "id": -911, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:purpur_pillar", - "id": -951, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:purpur_slab", - "id": -884, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:purpur_stairs", - "id": 203, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:quartz", - "id": 557, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:quartz_block", - "id": 155, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:quartz_bricks", - "id": -304, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:quartz_double_slab", - "id": -882, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:quartz_ore", - "id": 153, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:quartz_pillar", - "id": -954, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:quartz_slab", - "id": -876, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:quartz_stairs", - "id": 156, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:rabbit", - "id": 310, - "version": 0, - "componentBased": false - }, - { - "name": "minecraft:rabbit_foot", - "id": 561, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:rabbit_hide", - "id": 562, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:rabbit_spawn_egg", - "id": 486, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:rabbit_stew", - "id": 312, - "version": 0, - "componentBased": false - }, - { - "name": "minecraft:rail", - "id": 66, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:raiser_armor_trim_smithing_template", - "id": 731, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:rapid_fertilizer", - "id": 634, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:ravager_spawn_egg", - "id": 521, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:raw_copper", - "id": 541, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:raw_copper_block", - "id": -452, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:raw_gold", - "id": 540, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:raw_gold_block", - "id": -453, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:raw_iron", - "id": 539, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:raw_iron_block", - "id": -451, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:recovery_compass", - "id": 683, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:red_bundle", - "id": 271, - "version": 1, - "componentBased": true - }, - { - "name": "minecraft:red_candle", - "id": -427, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:red_candle_cake", - "id": -444, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:red_carpet", - "id": -610, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:red_concrete", - "id": -641, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:red_concrete_powder", - "id": -722, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:red_dye", - "id": 422, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:red_flower", - "id": 771, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:red_glazed_terracotta", - "id": 234, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:red_mushroom", - "id": 40, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:red_mushroom_block", - "id": 100, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:red_nether_brick", - "id": 215, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:red_nether_brick_double_slab", - "id": -917, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:red_nether_brick_slab", - "id": -890, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:red_nether_brick_stairs", - "id": -184, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:red_nether_brick_wall", - "id": -983, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:red_sand", - "id": -949, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:red_sandstone", - "id": 179, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:red_sandstone_double_slab", - "id": 181, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:red_sandstone_slab", - "id": 182, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:red_sandstone_stairs", - "id": 180, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:red_sandstone_wall", - "id": -982, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:red_shulker_box", - "id": -626, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:red_stained_glass", - "id": -686, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:red_stained_glass_pane", - "id": -656, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:red_terracotta", - "id": -737, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:red_tulip", - "id": -833, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:red_wool", - "id": -556, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:redstone", - "id": 398, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:redstone_block", - "id": 152, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:redstone_lamp", - "id": 123, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:redstone_ore", - "id": 73, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:redstone_torch", - "id": 76, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:redstone_wire", - "id": 55, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:reinforced_deepslate", - "id": -466, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:repeater", - "id": 445, - "version": 2, - "componentBased": true - }, - { - "name": "minecraft:repeating_command_block", - "id": 188, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:reserved6", - "id": 255, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:resin_block", - "id": -1021, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:resin_brick", - "id": 748, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:resin_brick_double_slab", - "id": -1015, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:resin_brick_slab", - "id": -1014, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:resin_brick_stairs", - "id": -1016, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:resin_brick_wall", - "id": -1017, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:resin_bricks", - "id": -1013, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:resin_clump", - "id": -1022, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:respawn_anchor", - "id": -272, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:rib_armor_trim_smithing_template", - "id": 727, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:rose_bush", - "id": -866, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:rotten_flesh", - "id": 299, - "version": 0, - "componentBased": false - }, - { - "name": "minecraft:saddle", - "id": 396, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:salmon", - "id": 287, - "version": 0, - "componentBased": false - }, - { - "name": "minecraft:salmon_bucket", - "id": 390, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:salmon_spawn_egg", - "id": 510, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:sand", - "id": 12, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:sandstone", - "id": 24, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:sandstone_double_slab", - "id": -878, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:sandstone_slab", - "id": -872, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:sandstone_stairs", - "id": 128, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:sandstone_wall", - "id": -975, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:sapling", - "id": 767, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:scaffolding", - "id": -165, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:scrape_pottery_sherd", - "id": 711, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:sculk", - "id": -458, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:sculk_catalyst", - "id": -460, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:sculk_sensor", - "id": -307, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:sculk_shrieker", - "id": -461, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:sculk_vein", - "id": -459, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:sea_lantern", - "id": 169, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:sea_pickle", - "id": -156, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:seagrass", - "id": -130, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:sentry_armor_trim_smithing_template", - "id": 718, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:shaper_armor_trim_smithing_template", - "id": 732, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:sheaf_pottery_sherd", - "id": 712, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:shears", - "id": 447, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:sheep_spawn_egg", - "id": 465, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:shelter_pottery_sherd", - "id": 713, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:shield", - "id": 380, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:short_dry_grass", - "id": -1028, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:short_grass", - "id": 31, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:shroomlight", - "id": -230, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:shulker_box", - "id": 782, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:shulker_shell", - "id": 599, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:shulker_spawn_egg", - "id": 497, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:silence_armor_trim_smithing_template", - "id": 729, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:silver_glazed_terracotta", - "id": 228, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:silverfish_spawn_egg", - "id": 470, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:skeleton_horse_spawn_egg", - "id": 495, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:skeleton_skull", - "id": 144, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:skeleton_spawn_egg", - "id": 471, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:skull", - "id": 737, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:skull_banner_pattern", - "id": 616, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:skull_pottery_sherd", - "id": 714, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:slime", - "id": 165, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:slime_ball", - "id": 414, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:slime_spawn_egg", - "id": 472, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:small_amethyst_bud", - "id": -332, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:small_dripleaf_block", - "id": -336, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:smithing_table", - "id": -202, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:smoker", - "id": -198, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:smooth_basalt", - "id": -377, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:smooth_quartz", - "id": -955, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:smooth_quartz_double_slab", - "id": -925, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:smooth_quartz_slab", - "id": -898, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:smooth_quartz_stairs", - "id": -185, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:smooth_red_sandstone", - "id": -958, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:smooth_red_sandstone_double_slab", - "id": -918, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:smooth_red_sandstone_slab", - "id": -891, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:smooth_red_sandstone_stairs", - "id": -176, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:smooth_sandstone", - "id": -946, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:smooth_sandstone_double_slab", - "id": -916, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:smooth_sandstone_slab", - "id": -889, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:smooth_sandstone_stairs", - "id": -177, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:smooth_stone", - "id": -183, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:smooth_stone_double_slab", - "id": 43, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:smooth_stone_slab", - "id": 44, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:sniffer_egg", - "id": -596, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:sniffer_spawn_egg", - "id": 528, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:snort_pottery_sherd", - "id": 715, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:snout_armor_trim_smithing_template", - "id": 726, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:snow", - "id": 80, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:snow_golem_spawn_egg", - "id": 534, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:snow_layer", - "id": 78, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:snowball", - "id": 399, - "version": 2, - "componentBased": true - }, - { - "name": "minecraft:soul_campfire", - "id": 659, - "version": 2, - "componentBased": true - }, - { - "name": "minecraft:soul_fire", - "id": -237, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:soul_lantern", - "id": -269, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:soul_sand", - "id": 88, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:soul_soil", - "id": -236, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:soul_torch", - "id": -268, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:sparkler", - "id": 637, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:spawn_egg", - "id": 796, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:spider_eye", - "id": 300, - "version": 0, - "componentBased": false - }, - { - "name": "minecraft:spider_spawn_egg", - "id": 473, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:spire_armor_trim_smithing_template", - "id": 728, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:splash_potion", - "id": 594, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:sponge", - "id": 19, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:spore_blossom", - "id": -321, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:spruce_boat", - "id": 404, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:spruce_button", - "id": -144, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:spruce_chest_boat", - "id": 678, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:spruce_door", - "id": 586, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:spruce_double_slab", - "id": -809, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:spruce_fence", - "id": -579, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:spruce_fence_gate", - "id": 183, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:spruce_hanging_sign", - "id": -501, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:spruce_leaves", - "id": -800, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:spruce_log", - "id": -569, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:spruce_planks", - "id": -739, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:spruce_pressure_plate", - "id": -154, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:spruce_sapling", - "id": -825, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:spruce_sign", - "id": 609, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:spruce_slab", - "id": -804, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:spruce_stairs", - "id": 134, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:spruce_standing_sign", - "id": -181, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:spruce_trapdoor", - "id": -149, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:spruce_wall_sign", - "id": -182, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:spruce_wood", - "id": -814, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:spyglass", - "id": 662, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:squid_spawn_egg", - "id": 477, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:stained_glass", - "id": 780, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:stained_glass_pane", - "id": 781, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:stained_hardened_clay", - "id": 738, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:standing_banner", - "id": 176, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:standing_sign", - "id": 63, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:stick", - "id": 345, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:sticky_piston", - "id": 29, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:sticky_piston_arm_collision", - "id": -217, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:stone", - "id": 1, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:stone_axe", - "id": 339, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:stone_block_slab", - "id": 757, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:stone_block_slab2", - "id": 758, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:stone_block_slab3", - "id": 759, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:stone_block_slab4", - "id": 760, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:stone_brick_double_slab", - "id": -881, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:stone_brick_slab", - "id": -875, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:stone_brick_stairs", - "id": 109, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:stone_brick_wall", - "id": -977, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:stone_bricks", - "id": 98, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:stone_button", - "id": 77, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:stone_hoe", - "id": 355, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:stone_pickaxe", - "id": 338, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:stone_pressure_plate", - "id": 70, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:stone_shovel", - "id": 337, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:stone_stairs", - "id": 67, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:stone_sword", - "id": 336, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:stonebrick", - "id": 755, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:stonecutter", - "id": 245, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:stonecutter_block", - "id": -197, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:stray_spawn_egg", - "id": 489, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:strider_spawn_egg", - "id": 523, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:string", - "id": 351, - "version": 2, - "componentBased": true - }, - { - "name": "minecraft:stripped_acacia_log", - "id": -8, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:stripped_acacia_wood", - "id": -823, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:stripped_bamboo_block", - "id": -528, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:stripped_birch_log", - "id": -6, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:stripped_birch_wood", - "id": -821, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:stripped_cherry_log", - "id": -535, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:stripped_cherry_wood", - "id": -545, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:stripped_crimson_hyphae", - "id": -300, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:stripped_crimson_stem", - "id": -240, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:stripped_dark_oak_log", - "id": -9, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:stripped_dark_oak_wood", - "id": -824, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:stripped_jungle_log", - "id": -7, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:stripped_jungle_wood", - "id": -822, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:stripped_mangrove_log", - "id": -485, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:stripped_mangrove_wood", - "id": -498, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:stripped_oak_log", - "id": -10, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:stripped_oak_wood", - "id": -819, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:stripped_pale_oak_log", - "id": -994, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:stripped_pale_oak_wood", - "id": -1004, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:stripped_spruce_log", - "id": -5, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:stripped_spruce_wood", - "id": -820, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:stripped_warped_hyphae", - "id": -301, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:stripped_warped_stem", - "id": -241, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:structure_block", - "id": 252, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:structure_void", - "id": 217, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:sugar", - "id": 442, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:sugar_cane", - "id": 411, - "version": 2, - "componentBased": true - }, - { - "name": "minecraft:sunflower", - "id": 175, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:suspicious_gravel", - "id": -573, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:suspicious_sand", - "id": -529, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:suspicious_stew", - "id": 625, - "version": 0, - "componentBased": false - }, - { - "name": "minecraft:sweet_berries", - "id": 309, - "version": 0, - "componentBased": false - }, - { - "name": "minecraft:sweet_berry_bush", - "id": -207, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:tadpole_bucket", - "id": 667, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:tadpole_spawn_egg", - "id": 666, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:tall_dry_grass", - "id": -1029, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:tall_grass", - "id": -864, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:tallgrass", - "id": 775, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:target", - "id": -239, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:tide_armor_trim_smithing_template", - "id": 725, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:tinted_glass", - "id": -334, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:tnt", - "id": 46, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:tnt_minecart", - "id": 558, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:torch", - "id": 50, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:torchflower", - "id": -568, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:torchflower_crop", - "id": -567, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:torchflower_seeds", - "id": 318, - "version": 0, - "componentBased": false - }, - { - "name": "minecraft:totem_of_undying", - "id": 601, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:trader_llama_spawn_egg", - "id": 685, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:trapdoor", - "id": 96, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:trapped_chest", - "id": 146, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:trial_key", - "id": 276, - "version": 1, - "componentBased": true - }, - { - "name": "minecraft:trial_spawner", - "id": -315, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:trident", - "id": 579, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:trip_wire", - "id": 132, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:tripwire_hook", - "id": 131, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:tropical_fish", - "id": 288, - "version": 0, - "componentBased": false - }, - { - "name": "minecraft:tropical_fish_bucket", - "id": 391, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:tropical_fish_spawn_egg", - "id": 507, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:tube_coral", - "id": -131, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:tube_coral_block", - "id": -132, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:tube_coral_fan", - "id": -133, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:tube_coral_wall_fan", - "id": -135, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:tuff", - "id": -333, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:tuff_brick_double_slab", - "id": -756, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:tuff_brick_slab", - "id": -755, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:tuff_brick_stairs", - "id": -757, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:tuff_brick_wall", - "id": -758, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:tuff_bricks", - "id": -754, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:tuff_double_slab", - "id": -745, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:tuff_slab", - "id": -744, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:tuff_stairs", - "id": -746, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:tuff_wall", - "id": -747, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:turtle_egg", - "id": -159, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:turtle_helmet", - "id": 606, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:turtle_scute", - "id": 605, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:turtle_spawn_egg", - "id": 513, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:twisting_vines", - "id": -287, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:underwater_tnt", - "id": -985, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:underwater_torch", - "id": 239, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:undyed_shulker_box", - "id": 205, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:unknown", - "id": -305, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:unlit_redstone_torch", - "id": 75, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:unpowered_comparator", - "id": 149, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:unpowered_repeater", - "id": 93, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:vault", - "id": -314, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:verdant_froglight", - "id": -470, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:vex_armor_trim_smithing_template", - "id": 724, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:vex_spawn_egg", - "id": 504, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:villager_spawn_egg", - "id": 476, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:vindicator_spawn_egg", - "id": 502, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:vine", - "id": 106, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:wall_banner", - "id": 177, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:wall_sign", - "id": 68, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:wandering_trader_spawn_egg", - "id": 520, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:ward_armor_trim_smithing_template", - "id": 722, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:warden_spawn_egg", - "id": 669, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:warped_button", - "id": -261, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:warped_door", - "id": 654, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:warped_double_slab", - "id": -267, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:warped_fence", - "id": -257, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:warped_fence_gate", - "id": -259, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:warped_fungus", - "id": -229, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:warped_fungus_on_a_stick", - "id": 655, - "version": 2, - "componentBased": true - }, - { - "name": "minecraft:warped_hanging_sign", - "id": -507, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:warped_hyphae", - "id": -298, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:warped_nylium", - "id": -233, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:warped_planks", - "id": -243, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:warped_pressure_plate", - "id": -263, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:warped_roots", - "id": -224, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:warped_sign", - "id": 652, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:warped_slab", - "id": -265, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:warped_stairs", - "id": -255, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:warped_standing_sign", - "id": -251, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:warped_stem", - "id": -226, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:warped_trapdoor", - "id": -247, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:warped_wall_sign", - "id": -253, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:warped_wart_block", - "id": -227, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:water", - "id": 9, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:water_bucket", - "id": 387, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:waterlily", - "id": 111, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:waxed_chiseled_copper", - "id": -764, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:waxed_copper", - "id": -344, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:waxed_copper_bulb", - "id": -780, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:waxed_copper_door", - "id": -788, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:waxed_copper_grate", - "id": -772, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:waxed_copper_trapdoor", - "id": -796, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:waxed_cut_copper", - "id": -351, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:waxed_cut_copper_slab", - "id": -365, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:waxed_cut_copper_stairs", - "id": -358, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:waxed_double_cut_copper_slab", - "id": -372, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:waxed_exposed_chiseled_copper", - "id": -765, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:waxed_exposed_copper", - "id": -345, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:waxed_exposed_copper_bulb", - "id": -781, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:waxed_exposed_copper_door", - "id": -789, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:waxed_exposed_copper_grate", - "id": -773, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:waxed_exposed_copper_trapdoor", - "id": -797, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:waxed_exposed_cut_copper", - "id": -352, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:waxed_exposed_cut_copper_slab", - "id": -366, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:waxed_exposed_cut_copper_stairs", - "id": -359, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:waxed_exposed_double_cut_copper_slab", - "id": -373, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:waxed_oxidized_chiseled_copper", - "id": -766, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:waxed_oxidized_copper", - "id": -446, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:waxed_oxidized_copper_bulb", - "id": -783, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:waxed_oxidized_copper_door", - "id": -791, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:waxed_oxidized_copper_grate", - "id": -775, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:waxed_oxidized_copper_trapdoor", - "id": -799, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:waxed_oxidized_cut_copper", - "id": -447, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:waxed_oxidized_cut_copper_slab", - "id": -449, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:waxed_oxidized_cut_copper_stairs", - "id": -448, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:waxed_oxidized_double_cut_copper_slab", - "id": -450, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:waxed_weathered_chiseled_copper", - "id": -767, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:waxed_weathered_copper", - "id": -346, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:waxed_weathered_copper_bulb", - "id": -782, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:waxed_weathered_copper_door", - "id": -790, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:waxed_weathered_copper_grate", - "id": -774, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:waxed_weathered_copper_trapdoor", - "id": -798, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:waxed_weathered_cut_copper", - "id": -353, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:waxed_weathered_cut_copper_slab", - "id": -367, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:waxed_weathered_cut_copper_stairs", - "id": -360, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:waxed_weathered_double_cut_copper_slab", - "id": -374, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:wayfinder_armor_trim_smithing_template", - "id": 730, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:weathered_chiseled_copper", - "id": -762, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:weathered_copper", - "id": -342, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:weathered_copper_bulb", - "id": -778, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:weathered_copper_door", - "id": -786, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:weathered_copper_grate", - "id": -770, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:weathered_copper_trapdoor", - "id": -794, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:weathered_cut_copper", - "id": -349, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:weathered_cut_copper_slab", - "id": -363, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:weathered_cut_copper_stairs", - "id": -356, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:weathered_double_cut_copper_slab", - "id": -370, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:web", - "id": 30, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:weeping_vines", - "id": -231, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:wet_sponge", - "id": -984, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:wheat", - "id": 359, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:wheat_seeds", - "id": 313, - "version": 0, - "componentBased": false - }, - { - "name": "minecraft:white_bundle", - "id": 272, - "version": 1, - "componentBased": true - }, - { - "name": "minecraft:white_candle", - "id": -413, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:white_candle_cake", - "id": -430, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:white_carpet", - "id": 171, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:white_concrete", - "id": 236, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:white_concrete_powder", - "id": 237, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:white_dye", - "id": 436, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:white_glazed_terracotta", - "id": 220, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:white_shulker_box", - "id": 218, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:white_stained_glass", - "id": 241, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:white_stained_glass_pane", - "id": 160, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:white_terracotta", - "id": 159, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:white_tulip", - "id": -835, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:white_wool", - "id": 35, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:wild_armor_trim_smithing_template", - "id": 721, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:wildflowers", - "id": -1024, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:wind_charge", - "id": 277, - "version": 1, - "componentBased": true - }, - { - "name": "minecraft:witch_spawn_egg", - "id": 479, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:wither_rose", - "id": -216, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:wither_skeleton_skull", - "id": -965, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:wither_skeleton_spawn_egg", - "id": 492, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:wither_spawn_egg", - "id": 536, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:wolf_armor", - "id": 741, - "version": 2, - "componentBased": true - }, - { - "name": "minecraft:wolf_spawn_egg", - "id": 466, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:wood", - "id": 783, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:wooden_axe", - "id": 335, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:wooden_button", - "id": 143, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:wooden_door", - "id": 384, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:wooden_hoe", - "id": 354, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:wooden_pickaxe", - "id": 334, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:wooden_pressure_plate", - "id": 72, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:wooden_shovel", - "id": 333, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:wooden_slab", - "id": 770, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:wooden_sword", - "id": 332, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:wool", - "id": 751, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:writable_book", - "id": 544, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:written_book", - "id": 545, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:yellow_bundle", - "id": 273, - "version": 1, - "componentBased": true - }, - { - "name": "minecraft:yellow_candle", - "id": -417, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:yellow_candle_cake", - "id": -434, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:yellow_carpet", - "id": -600, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:yellow_concrete", - "id": -631, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:yellow_concrete_powder", - "id": -712, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:yellow_dye", - "id": 432, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:yellow_glazed_terracotta", - "id": 224, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:yellow_shulker_box", - "id": -616, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:yellow_stained_glass", - "id": -676, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:yellow_stained_glass_pane", - "id": -646, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:yellow_terracotta", - "id": -727, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:yellow_wool", - "id": -558, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:zoglin_spawn_egg", - "id": 526, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:zombie_head", - "id": -966, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:zombie_horse_spawn_egg", - "id": 496, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:zombie_pigman_spawn_egg", - "id": 475, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:zombie_spawn_egg", - "id": 474, - "version": 2, - "componentBased": false - }, - { - "name": "minecraft:zombie_villager_spawn_egg", - "id": 505, - "version": 2, - "componentBased": false - } -] \ No newline at end of file diff --git a/core/src/main/resources/bedrock/stripped_biome_definitions.json b/core/src/main/resources/bedrock/stripped_biome_definitions.json index b33e04e69..2c7b7e60c 100644 --- a/core/src/main/resources/bedrock/stripped_biome_definitions.json +++ b/core/src/main/resources/bedrock/stripped_biome_definitions.json @@ -6,6 +6,7 @@ "blueSporeDensity": 0.0, "ashDensity": 0.0, "whiteAshDensity": 0.0, + "foliageSnow": 0.0, "depth": 0.45, "scale": 0.3, "mapWaterColor": { @@ -37,6 +38,7 @@ "blueSporeDensity": 0.0, "ashDensity": 0.0, "whiteAshDensity": 0.0, + "foliageSnow": 0.0, "depth": 0.125, "scale": 0.05, "mapWaterColor": { @@ -66,6 +68,7 @@ "blueSporeDensity": 0.0, "ashDensity": 0.0, "whiteAshDensity": 0.0, + "foliageSnow": 0.0, "depth": -1.0, "scale": 0.1, "mapWaterColor": { @@ -90,6 +93,7 @@ "blueSporeDensity": 0.0, "ashDensity": 0.0, "whiteAshDensity": 0.0, + "foliageSnow": 0.0, "depth": 1.0, "scale": 0.5, "mapWaterColor": { @@ -116,6 +120,7 @@ "blueSporeDensity": 0.0, "ashDensity": 0.0, "whiteAshDensity": 0.0, + "foliageSnow": 0.0, "depth": -1.8, "scale": 0.1, "mapWaterColor": { @@ -143,6 +148,7 @@ "blueSporeDensity": 0.0, "ashDensity": 0.0, "whiteAshDensity": 0.0, + "foliageSnow": 0.0, "depth": 0.125, "scale": 0.05, "mapWaterColor": { @@ -169,6 +175,7 @@ "blueSporeDensity": 0.0, "ashDensity": 0.0, "whiteAshDensity": 0.0, + "foliageSnow": 0.0, "depth": 0.1, "scale": 0.2, "mapWaterColor": { @@ -197,6 +204,7 @@ "blueSporeDensity": 0.0, "ashDensity": 0.0, "whiteAshDensity": 0.0, + "foliageSnow": 0.0, "depth": 0.125, "scale": 0.05, "mapWaterColor": { @@ -224,6 +232,7 @@ "blueSporeDensity": 0.0, "ashDensity": 0.0, "whiteAshDensity": 0.0, + "foliageSnow": 0.0, "depth": 0.45, "scale": 0.3, "mapWaterColor": { @@ -252,6 +261,7 @@ "blueSporeDensity": 0.0, "ashDensity": 0.0, "whiteAshDensity": 0.0, + "foliageSnow": 0.0, "depth": -0.5, "scale": 0.0, "mapWaterColor": { @@ -278,6 +288,7 @@ "blueSporeDensity": 0.0, "ashDensity": 0.0, "whiteAshDensity": 0.0, + "foliageSnow": 0.0, "depth": 0.1, "scale": 0.2, "mapWaterColor": { @@ -304,6 +315,7 @@ "blueSporeDensity": 0.0, "ashDensity": 0.0, "whiteAshDensity": 0.0, + "foliageSnow": 0.0, "depth": 0.1, "scale": 0.2, "mapWaterColor": { @@ -332,6 +344,7 @@ "blueSporeDensity": 0.0, "ashDensity": 0.0, "whiteAshDensity": 0.0, + "foliageSnow": 0.0, "depth": -1.8, "scale": 0.1, "mapWaterColor": { @@ -359,6 +372,7 @@ "blueSporeDensity": 0.0, "ashDensity": 0.0, "whiteAshDensity": 0.0, + "foliageSnow": 0.0, "depth": 0.2, "scale": 0.3, "mapWaterColor": { @@ -383,6 +397,7 @@ "blueSporeDensity": 0.0, "ashDensity": 0.0, "whiteAshDensity": 0.0, + "foliageSnow": 0.0, "depth": 0.45, "scale": 0.3, "mapWaterColor": { @@ -410,6 +425,7 @@ "blueSporeDensity": 0.0, "ashDensity": 0.0, "whiteAshDensity": 0.0, + "foliageSnow": 0.0, "depth": -0.2, "scale": 0.1, "mapWaterColor": { @@ -436,6 +452,7 @@ "blueSporeDensity": 0.0, "ashDensity": 0.0, "whiteAshDensity": 0.0, + "foliageSnow": 0.0, "depth": 0.1, "scale": 0.2, "mapWaterColor": { @@ -466,6 +483,7 @@ "blueSporeDensity": 0.0, "ashDensity": 0.0, "whiteAshDensity": 0.0, + "foliageSnow": 0.0, "depth": 0.1, "scale": 0.2, "mapWaterColor": { @@ -490,6 +508,7 @@ "blueSporeDensity": 0.0, "ashDensity": 0.0, "whiteAshDensity": 0.0, + "foliageSnow": 0.0, "depth": 0.45, "scale": 0.3, "mapWaterColor": { @@ -518,6 +537,7 @@ "blueSporeDensity": 0.0, "ashDensity": 0.0, "whiteAshDensity": 0.0, + "foliageSnow": 0.0, "depth": 0.1, "scale": 0.4, "mapWaterColor": { @@ -545,6 +565,7 @@ "blueSporeDensity": 0.0, "ashDensity": 0.0, "whiteAshDensity": 0.0, + "foliageSnow": 0.0, "depth": -1.0, "scale": 0.1, "mapWaterColor": { @@ -572,6 +593,7 @@ "blueSporeDensity": 0.0, "ashDensity": 0.0, "whiteAshDensity": 0.0, + "foliageSnow": 0.0, "depth": -0.5, "scale": 0.0, "mapWaterColor": { @@ -601,6 +623,7 @@ "blueSporeDensity": 0.0, "ashDensity": 0.0, "whiteAshDensity": 0.0, + "foliageSnow": 0.0, "depth": 0.1, "scale": 0.2, "mapWaterColor": { @@ -628,6 +651,7 @@ "blueSporeDensity": 0.0, "ashDensity": 0.0, "whiteAshDensity": 0.0, + "foliageSnow": 0.0, "depth": 0.45, "scale": 0.3, "mapWaterColor": { @@ -657,6 +681,7 @@ "blueSporeDensity": 0.0, "ashDensity": 0.0, "whiteAshDensity": 0.0, + "foliageSnow": 0.0, "depth": -1.0, "scale": 0.1, "mapWaterColor": { @@ -683,6 +708,7 @@ "blueSporeDensity": 0.0, "ashDensity": 0.0, "whiteAshDensity": 0.0, + "foliageSnow": 0.0, "depth": 0.0, "scale": 0.025, "mapWaterColor": { @@ -708,6 +734,7 @@ "blueSporeDensity": 0.0, "ashDensity": 0.0, "whiteAshDensity": 0.0, + "foliageSnow": 0.0, "depth": 0.2, "scale": 0.2, "mapWaterColor": { @@ -738,6 +765,7 @@ "blueSporeDensity": 0.0, "ashDensity": 0.0, "whiteAshDensity": 0.0, + "foliageSnow": 0.0, "depth": 0.0, "scale": 0.025, "mapWaterColor": { @@ -763,6 +791,7 @@ "blueSporeDensity": 0.0, "ashDensity": 0.0, "whiteAshDensity": 0.0, + "foliageSnow": 0.0, "depth": 0.2, "scale": 0.4, "mapWaterColor": { @@ -791,6 +820,7 @@ "blueSporeDensity": 0.0, "ashDensity": 0.0, "whiteAshDensity": 0.0, + "foliageSnow": 0.0, "depth": 0.45, "scale": 0.3, "mapWaterColor": { @@ -818,6 +848,7 @@ "blueSporeDensity": 0.0, "ashDensity": 0.0, "whiteAshDensity": 0.0, + "foliageSnow": 0.0, "depth": 0.45, "scale": 0.3, "mapWaterColor": { @@ -846,6 +877,7 @@ "blueSporeDensity": 0.0, "ashDensity": 0.0, "whiteAshDensity": 0.0, + "foliageSnow": 0.0, "depth": 1.5, "scale": 0.025, "mapWaterColor": { @@ -875,6 +907,7 @@ "blueSporeDensity": 0.0, "ashDensity": 0.0, "whiteAshDensity": 0.0, + "foliageSnow": 0.0, "depth": 0.8, "scale": 0.4, "mapWaterColor": { @@ -903,6 +936,7 @@ "blueSporeDensity": 0.0, "ashDensity": 0.0, "whiteAshDensity": 0.0, + "foliageSnow": 0.0, "depth": 0.1, "scale": 0.2, "mapWaterColor": { @@ -932,6 +966,7 @@ "blueSporeDensity": 0.0, "ashDensity": 0.0, "whiteAshDensity": 0.0, + "foliageSnow": 0.0, "depth": -1.8, "scale": 0.1, "mapWaterColor": { @@ -961,6 +996,7 @@ "blueSporeDensity": 0.0, "ashDensity": 0.0, "whiteAshDensity": 0.0, + "foliageSnow": 0.0, "depth": 1.0, "scale": 0.5, "mapWaterColor": { @@ -989,6 +1025,7 @@ "blueSporeDensity": 0.0, "ashDensity": 0.0, "whiteAshDensity": 0.0, + "foliageSnow": 0.0, "depth": 0.1, "scale": 0.2, "mapWaterColor": { @@ -1017,6 +1054,7 @@ "blueSporeDensity": 0.0, "ashDensity": 0.0, "whiteAshDensity": 0.0, + "foliageSnow": 0.0, "depth": -1.8, "scale": 0.1, "mapWaterColor": { @@ -1043,6 +1081,7 @@ "blueSporeDensity": 0.0, "ashDensity": 0.0, "whiteAshDensity": 0.0, + "foliageSnow": 0.0, "depth": 0.1, "scale": 0.8, "mapWaterColor": { @@ -1068,6 +1107,7 @@ "blueSporeDensity": 0.0, "ashDensity": 0.0, "whiteAshDensity": 0.0, + "foliageSnow": 0.0, "depth": 0.2, "scale": 0.4, "mapWaterColor": { @@ -1095,6 +1135,7 @@ "blueSporeDensity": 0.0, "ashDensity": 0.0, "whiteAshDensity": 0.0, + "foliageSnow": 0.0, "depth": 0.55, "scale": 0.5, "mapWaterColor": { @@ -1123,6 +1164,7 @@ "blueSporeDensity": 0.0, "ashDensity": 0.0, "whiteAshDensity": 0.0, + "foliageSnow": 0.0, "depth": 1.0, "scale": 0.5, "mapWaterColor": { @@ -1150,6 +1192,7 @@ "blueSporeDensity": 0.0, "ashDensity": 0.0, "whiteAshDensity": 0.0, + "foliageSnow": 0.0, "depth": 0.0, "scale": 0.025, "mapWaterColor": { @@ -1179,6 +1222,7 @@ "blueSporeDensity": 0.0, "ashDensity": 0.0, "whiteAshDensity": 0.0, + "foliageSnow": 0.0, "depth": 0.1, "scale": 0.2, "mapWaterColor": { @@ -1206,6 +1250,7 @@ "blueSporeDensity": 0.0, "ashDensity": 0.0, "whiteAshDensity": 0.0, + "foliageSnow": 0.0, "depth": 0.2, "scale": 0.2, "mapWaterColor": { @@ -1235,6 +1280,7 @@ "blueSporeDensity": 0.0, "ashDensity": 0.0, "whiteAshDensity": 0.0, + "foliageSnow": 0.0, "depth": -1.8, "scale": 0.1, "mapWaterColor": { @@ -1262,6 +1308,7 @@ "blueSporeDensity": 0.0, "ashDensity": 0.0, "whiteAshDensity": 0.0, + "foliageSnow": 0.0, "depth": 0.2, "scale": 0.2, "mapWaterColor": { @@ -1292,6 +1339,7 @@ "blueSporeDensity": 0.0, "ashDensity": 0.0, "whiteAshDensity": 0.0, + "foliageSnow": 0.0, "depth": -1.0, "scale": 0.1, "mapWaterColor": { @@ -1318,6 +1366,7 @@ "blueSporeDensity": 0.0, "ashDensity": 0.0, "whiteAshDensity": 0.0, + "foliageSnow": 0.0, "depth": 0.45, "scale": 0.3, "mapWaterColor": { @@ -1347,6 +1396,7 @@ "blueSporeDensity": 0.0, "ashDensity": 0.0, "whiteAshDensity": 0.0, + "foliageSnow": 0.0, "depth": 0.45, "scale": 0.3, "mapWaterColor": { @@ -1376,6 +1426,7 @@ "blueSporeDensity": 0.0, "ashDensity": 0.0, "whiteAshDensity": 0.0, + "foliageSnow": 0.0, "depth": 0.125, "scale": 0.05, "mapWaterColor": { @@ -1403,6 +1454,7 @@ "blueSporeDensity": 0.0, "ashDensity": 0.0, "whiteAshDensity": 0.0, + "foliageSnow": 0.0, "depth": 1.5, "scale": 0.025, "mapWaterColor": { @@ -1431,6 +1483,7 @@ "blueSporeDensity": 0.0, "ashDensity": 0.0, "whiteAshDensity": 0.0, + "foliageSnow": 0.0, "depth": 0.1, "scale": 0.2, "mapWaterColor": { @@ -1458,6 +1511,7 @@ "blueSporeDensity": 0.0, "ashDensity": 0.0, "whiteAshDensity": 0.0, + "foliageSnow": 0.0, "depth": 1.5, "scale": 0.025, "mapWaterColor": { @@ -1488,6 +1542,7 @@ "blueSporeDensity": 0.0, "ashDensity": 0.0, "whiteAshDensity": 0.0, + "foliageSnow": 0.0, "depth": 0.3, "scale": 0.4, "mapWaterColor": { @@ -1517,6 +1572,7 @@ "blueSporeDensity": 0.0, "ashDensity": 0.0, "whiteAshDensity": 0.0, + "foliageSnow": 0.0, "depth": -1.0, "scale": 0.1, "mapWaterColor": { @@ -1544,6 +1600,7 @@ "blueSporeDensity": 0.0, "ashDensity": 0.0, "whiteAshDensity": 0.0, + "foliageSnow": 0.0, "depth": -1.0, "scale": 0.1, "mapWaterColor": { @@ -1574,6 +1631,7 @@ "blueSporeDensity": 0.0, "ashDensity": 0.0, "whiteAshDensity": 0.0, + "foliageSnow": 0.0, "depth": 0.125, "scale": 0.05, "mapWaterColor": { @@ -1601,6 +1659,7 @@ "blueSporeDensity": 0.0, "ashDensity": 0.0, "whiteAshDensity": 0.0, + "foliageSnow": 0.0, "depth": 0.225, "scale": 0.25, "mapWaterColor": { @@ -1628,6 +1687,7 @@ "blueSporeDensity": 0.0, "ashDensity": 0.0, "whiteAshDensity": 0.0, + "foliageSnow": 0.0, "depth": -0.1, "scale": 0.3, "mapWaterColor": { @@ -1655,6 +1715,7 @@ "blueSporeDensity": 0.0, "ashDensity": 0.0, "whiteAshDensity": 0.0, + "foliageSnow": 0.0, "depth": 0.425, "scale": 0.45, "mapWaterColor": { @@ -1684,6 +1745,7 @@ "blueSporeDensity": 0.0, "ashDensity": 0.0, "whiteAshDensity": 0.0, + "foliageSnow": 0.0, "depth": 0.2, "scale": 0.4, "mapWaterColor": { @@ -1713,6 +1775,7 @@ "blueSporeDensity": 0.0, "ashDensity": 0.0, "whiteAshDensity": 0.0, + "foliageSnow": 0.0, "depth": 0.2, "scale": 0.4, "mapWaterColor": { @@ -1742,6 +1805,7 @@ "blueSporeDensity": 0.0, "ashDensity": 0.0, "whiteAshDensity": 0.0, + "foliageSnow": 0.0, "depth": 0.2, "scale": 0.4, "mapWaterColor": { @@ -1769,6 +1833,7 @@ "blueSporeDensity": 0.0, "ashDensity": 0.0, "whiteAshDensity": 0.0, + "foliageSnow": 0.0, "depth": 0.55, "scale": 0.5, "mapWaterColor": { @@ -1799,6 +1864,7 @@ "blueSporeDensity": 0.0, "ashDensity": 0.0, "whiteAshDensity": 0.0, + "foliageSnow": 0.0, "depth": 1.0, "scale": 0.5, "mapWaterColor": { @@ -1827,6 +1893,7 @@ "blueSporeDensity": 0.0, "ashDensity": 0.0, "whiteAshDensity": 0.0, + "foliageSnow": 0.0, "depth": 0.3625, "scale": 1.225, "mapWaterColor": { @@ -1835,7 +1902,7 @@ "g": 183, "b": 255 }, - "rain": true, + "rain": false, "chunkGenData": null, "id": null, "tags": [ @@ -1855,6 +1922,7 @@ "blueSporeDensity": 0.0, "ashDensity": 0.0, "whiteAshDensity": 0.0, + "foliageSnow": 0.0, "depth": 1.05, "scale": 1.2125, "mapWaterColor": { @@ -1884,6 +1952,7 @@ "blueSporeDensity": 0.0, "ashDensity": 0.0, "whiteAshDensity": 0.0, + "foliageSnow": 0.0, "depth": 0.1, "scale": 0.2, "mapWaterColor": { @@ -1912,6 +1981,7 @@ "blueSporeDensity": 0.0, "ashDensity": 0.0, "whiteAshDensity": 0.0, + "foliageSnow": 0.0, "depth": 0.45, "scale": 0.3, "mapWaterColor": { @@ -1941,6 +2011,7 @@ "blueSporeDensity": 0.0, "ashDensity": 0.0, "whiteAshDensity": 0.0, + "foliageSnow": 0.0, "depth": 0.45, "scale": 0.3, "mapWaterColor": { @@ -1969,8 +2040,9 @@ "downfall": 0.0, "redSporeDensity": 0.0, "blueSporeDensity": 0.0, - "ashDensity": 0.05, + "ashDensity": 0.0, "whiteAshDensity": 0.0, + "foliageSnow": 0.0, "depth": 0.1, "scale": 0.2, "mapWaterColor": { @@ -1993,10 +2065,11 @@ "minecraft:crimson_forest": { "temperature": 2.0, "downfall": 0.0, - "redSporeDensity": 0.25, + "redSporeDensity": 0.0, "blueSporeDensity": 0.0, "ashDensity": 0.0, "whiteAshDensity": 0.0, + "foliageSnow": 0.0, "depth": 0.1, "scale": 0.2, "mapWaterColor": { @@ -2021,9 +2094,10 @@ "temperature": 2.0, "downfall": 0.0, "redSporeDensity": 0.0, - "blueSporeDensity": 0.25, + "blueSporeDensity": 0.0, "ashDensity": 0.0, "whiteAshDensity": 0.0, + "foliageSnow": 0.0, "depth": 0.1, "scale": 0.2, "mapWaterColor": { @@ -2049,7 +2123,8 @@ "redSporeDensity": 0.0, "blueSporeDensity": 0.0, "ashDensity": 0.0, - "whiteAshDensity": 2.0, + "whiteAshDensity": 0.0, + "foliageSnow": 0.0, "depth": 0.1, "scale": 0.2, "mapWaterColor": { @@ -2076,6 +2151,7 @@ "blueSporeDensity": 0.0, "ashDensity": 0.0, "whiteAshDensity": 0.0, + "foliageSnow": 0.0, "depth": 0.1, "scale": 0.2, "mapWaterColor": { @@ -2106,6 +2182,7 @@ "blueSporeDensity": 0.0, "ashDensity": 0.0, "whiteAshDensity": 0.0, + "foliageSnow": 0.0, "depth": 0.1, "scale": 0.2, "mapWaterColor": { @@ -2136,6 +2213,7 @@ "blueSporeDensity": 0.0, "ashDensity": 0.0, "whiteAshDensity": 0.0, + "foliageSnow": 0.0, "depth": 0.1, "scale": 0.2, "mapWaterColor": { @@ -2166,6 +2244,7 @@ "blueSporeDensity": 0.0, "ashDensity": 0.0, "whiteAshDensity": 0.0, + "foliageSnow": 0.0, "depth": 0.1, "scale": 0.2, "mapWaterColor": { @@ -2196,6 +2275,7 @@ "blueSporeDensity": 0.0, "ashDensity": 0.0, "whiteAshDensity": 0.0, + "foliageSnow": 0.0, "depth": 0.1, "scale": 0.2, "mapWaterColor": { @@ -2222,6 +2302,7 @@ "blueSporeDensity": 0.0, "ashDensity": 0.0, "whiteAshDensity": 0.0, + "foliageSnow": 0.0, "depth": 0.1, "scale": 0.2, "mapWaterColor": { @@ -2230,7 +2311,7 @@ "g": 183, "b": 255 }, - "rain": true, + "rain": false, "chunkGenData": null, "id": null, "tags": [ @@ -2248,6 +2329,7 @@ "blueSporeDensity": 0.0, "ashDensity": 0.0, "whiteAshDensity": 0.0, + "foliageSnow": 0.0, "depth": 0.1, "scale": 0.2, "mapWaterColor": { @@ -2256,7 +2338,7 @@ "g": 183, "b": 255 }, - "rain": true, + "rain": false, "chunkGenData": null, "id": null, "tags": [ @@ -2273,6 +2355,7 @@ "blueSporeDensity": 0.0, "ashDensity": 0.0, "whiteAshDensity": 0.0, + "foliageSnow": 0.0, "depth": 0.1, "scale": 0.2, "mapWaterColor": { @@ -2298,6 +2381,7 @@ "blueSporeDensity": 0.0, "ashDensity": 0.0, "whiteAshDensity": 0.0, + "foliageSnow": 0.0, "depth": 0.1, "scale": 0.2, "mapWaterColor": { @@ -2324,6 +2408,7 @@ "blueSporeDensity": 0.0, "ashDensity": 0.0, "whiteAshDensity": 0.0, + "foliageSnow": 0.0, "depth": -0.2, "scale": 0.1, "mapWaterColor": { @@ -2351,6 +2436,7 @@ "blueSporeDensity": 0.0, "ashDensity": 0.0, "whiteAshDensity": 0.0, + "foliageSnow": 0.0, "depth": 0.1, "scale": 0.2, "mapWaterColor": { @@ -2377,6 +2463,7 @@ "blueSporeDensity": 0.0, "ashDensity": 0.0, "whiteAshDensity": 0.0, + "foliageSnow": 0.0, "depth": 0.1, "scale": 0.2, "mapWaterColor": { @@ -2394,4 +2481,4 @@ "pale_garden" ] } -} +} \ No newline at end of file diff --git a/core/src/main/resources/java/item_data_components.json b/core/src/main/resources/java/item_data_components.json deleted file mode 100644 index f36eb17ec..000000000 --- a/core/src/main/resources/java/item_data_components.json +++ /dev/null @@ -1,23310 +0,0 @@ -[ - { - "id": 0, - "key": "minecraft:air", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bw1taW5lY3JhZnQ6YWly", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAE2Jsb2NrLm1pbmVjcmFmdC5haXIA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1, - "key": "minecraft:stone", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bw9taW5lY3JhZnQ6c3RvbmU=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFWJsb2NrLm1pbmVjcmFmdC5zdG9uZQA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 2, - "key": "minecraft:granite", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxFtaW5lY3JhZnQ6Z3Jhbml0ZQ==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAF2Jsb2NrLm1pbmVjcmFmdC5ncmFuaXRlAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 3, - "key": "minecraft:polished_granite", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxptaW5lY3JhZnQ6cG9saXNoZWRfZ3Jhbml0ZQ==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGJsb2NrLm1pbmVjcmFmdC5wb2xpc2hlZF9ncmFuaXRlAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 4, - "key": "minecraft:diorite", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxFtaW5lY3JhZnQ6ZGlvcml0ZQ==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAF2Jsb2NrLm1pbmVjcmFmdC5kaW9yaXRlAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 5, - "key": "minecraft:polished_diorite", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxptaW5lY3JhZnQ6cG9saXNoZWRfZGlvcml0ZQ==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGJsb2NrLm1pbmVjcmFmdC5wb2xpc2hlZF9kaW9yaXRlAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 6, - "key": "minecraft:andesite", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxJtaW5lY3JhZnQ6YW5kZXNpdGU=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGGJsb2NrLm1pbmVjcmFmdC5hbmRlc2l0ZQA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 7, - "key": "minecraft:polished_andesite", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxttaW5lY3JhZnQ6cG9saXNoZWRfYW5kZXNpdGU=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWJsb2NrLm1pbmVjcmFmdC5wb2xpc2hlZF9hbmRlc2l0ZQA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 8, - "key": "minecraft:deepslate", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxNtaW5lY3JhZnQ6ZGVlcHNsYXRl", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGWJsb2NrLm1pbmVjcmFmdC5kZWVwc2xhdGUA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 9, - "key": "minecraft:cobbled_deepslate", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxttaW5lY3JhZnQ6Y29iYmxlZF9kZWVwc2xhdGU=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWJsb2NrLm1pbmVjcmFmdC5jb2JibGVkX2RlZXBzbGF0ZQA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 10, - "key": "minecraft:polished_deepslate", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxxtaW5lY3JhZnQ6cG9saXNoZWRfZGVlcHNsYXRl", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAImJsb2NrLm1pbmVjcmFmdC5wb2xpc2hlZF9kZWVwc2xhdGUA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 11, - "key": "minecraft:calcite", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxFtaW5lY3JhZnQ6Y2FsY2l0ZQ==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAF2Jsb2NrLm1pbmVjcmFmdC5jYWxjaXRlAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 12, - "key": "minecraft:tuff", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bw5taW5lY3JhZnQ6dHVmZg==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFGJsb2NrLm1pbmVjcmFmdC50dWZmAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 13, - "key": "minecraft:tuff_slab", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxNtaW5lY3JhZnQ6dHVmZl9zbGFi", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGWJsb2NrLm1pbmVjcmFmdC50dWZmX3NsYWIA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 14, - "key": "minecraft:tuff_stairs", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6dHVmZl9zdGFpcnM=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC50dWZmX3N0YWlycwA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 15, - "key": "minecraft:tuff_wall", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxNtaW5lY3JhZnQ6dHVmZl93YWxs", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGWJsb2NrLm1pbmVjcmFmdC50dWZmX3dhbGwA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 16, - "key": "minecraft:chiseled_tuff", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6Y2hpc2VsZWRfdHVmZg==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5jaGlzZWxlZF90dWZmAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 17, - "key": "minecraft:polished_tuff", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6cG9saXNoZWRfdHVmZg==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5wb2xpc2hlZF90dWZmAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 18, - "key": "minecraft:polished_tuff_slab", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxxtaW5lY3JhZnQ6cG9saXNoZWRfdHVmZl9zbGFi", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAImJsb2NrLm1pbmVjcmFmdC5wb2xpc2hlZF90dWZmX3NsYWIA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 19, - "key": "minecraft:polished_tuff_stairs", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx5taW5lY3JhZnQ6cG9saXNoZWRfdHVmZl9zdGFpcnM=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJGJsb2NrLm1pbmVjcmFmdC5wb2xpc2hlZF90dWZmX3N0YWlycwA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 20, - "key": "minecraft:polished_tuff_wall", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxxtaW5lY3JhZnQ6cG9saXNoZWRfdHVmZl93YWxs", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAImJsb2NrLm1pbmVjcmFmdC5wb2xpc2hlZF90dWZmX3dhbGwA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 21, - "key": "minecraft:tuff_bricks", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6dHVmZl9icmlja3M=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC50dWZmX2JyaWNrcwA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 22, - "key": "minecraft:tuff_brick_slab", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxltaW5lY3JhZnQ6dHVmZl9icmlja19zbGFi", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC50dWZmX2JyaWNrX3NsYWIA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 23, - "key": "minecraft:tuff_brick_stairs", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxttaW5lY3JhZnQ6dHVmZl9icmlja19zdGFpcnM=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWJsb2NrLm1pbmVjcmFmdC50dWZmX2JyaWNrX3N0YWlycwA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 24, - "key": "minecraft:tuff_brick_wall", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxltaW5lY3JhZnQ6dHVmZl9icmlja193YWxs", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC50dWZmX2JyaWNrX3dhbGwA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 25, - "key": "minecraft:chiseled_tuff_bricks", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx5taW5lY3JhZnQ6Y2hpc2VsZWRfdHVmZl9icmlja3M=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJGJsb2NrLm1pbmVjcmFmdC5jaGlzZWxlZF90dWZmX2JyaWNrcwA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 26, - "key": "minecraft:dripstone_block", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxltaW5lY3JhZnQ6ZHJpcHN0b25lX2Jsb2Nr", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC5kcmlwc3RvbmVfYmxvY2sA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 27, - "key": "minecraft:grass_block", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6Z3Jhc3NfYmxvY2s=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5ncmFzc19ibG9jawA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 28, - "key": "minecraft:dirt", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bw5taW5lY3JhZnQ6ZGlydA==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFGJsb2NrLm1pbmVjcmFmdC5kaXJ0AA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 29, - "key": "minecraft:coarse_dirt", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6Y29hcnNlX2RpcnQ=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5jb2Fyc2VfZGlydAA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 30, - "key": "minecraft:podzol", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxBtaW5lY3JhZnQ6cG9kem9s", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFmJsb2NrLm1pbmVjcmFmdC5wb2R6b2wA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 31, - "key": "minecraft:rooted_dirt", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6cm9vdGVkX2RpcnQ=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5yb290ZWRfZGlydAA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 32, - "key": "minecraft:mud", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bw1taW5lY3JhZnQ6bXVk", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAE2Jsb2NrLm1pbmVjcmFmdC5tdWQA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 33, - "key": "minecraft:crimson_nylium", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxhtaW5lY3JhZnQ6Y3JpbXNvbl9ueWxpdW0=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC5jcmltc29uX255bGl1bQA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 34, - "key": "minecraft:warped_nylium", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6d2FycGVkX255bGl1bQ==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC53YXJwZWRfbnlsaXVtAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 35, - "key": "minecraft:cobblestone", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6Y29iYmxlc3RvbmU=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5jb2JibGVzdG9uZQA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 36, - "key": "minecraft:oak_planks", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxRtaW5lY3JhZnQ6b2FrX3BsYW5rcw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC5vYWtfcGxhbmtzAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 37, - "key": "minecraft:spruce_planks", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6c3BydWNlX3BsYW5rcw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5zcHJ1Y2VfcGxhbmtzAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 38, - "key": "minecraft:birch_planks", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxZtaW5lY3JhZnQ6YmlyY2hfcGxhbmtz", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC5iaXJjaF9wbGFua3MA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 39, - "key": "minecraft:jungle_planks", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6anVuZ2xlX3BsYW5rcw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5qdW5nbGVfcGxhbmtzAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 40, - "key": "minecraft:acacia_planks", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6YWNhY2lhX3BsYW5rcw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5hY2FjaWFfcGxhbmtzAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 41, - "key": "minecraft:cherry_planks", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6Y2hlcnJ5X3BsYW5rcw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5jaGVycnlfcGxhbmtzAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 42, - "key": "minecraft:dark_oak_planks", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxltaW5lY3JhZnQ6ZGFya19vYWtfcGxhbmtz", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC5kYXJrX29ha19wbGFua3MA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 43, - "key": "minecraft:pale_oak_planks", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxltaW5lY3JhZnQ6cGFsZV9vYWtfcGxhbmtz", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC5wYWxlX29ha19wbGFua3MA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 44, - "key": "minecraft:mangrove_planks", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxltaW5lY3JhZnQ6bWFuZ3JvdmVfcGxhbmtz", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC5tYW5ncm92ZV9wbGFua3MA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 45, - "key": "minecraft:bamboo_planks", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6YmFtYm9vX3BsYW5rcw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5iYW1ib29fcGxhbmtzAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 46, - "key": "minecraft:crimson_planks", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxhtaW5lY3JhZnQ6Y3JpbXNvbl9wbGFua3M=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC5jcmltc29uX3BsYW5rcwA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 47, - "key": "minecraft:warped_planks", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6d2FycGVkX3BsYW5rcw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC53YXJwZWRfcGxhbmtzAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 48, - "key": "minecraft:bamboo_mosaic", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6YmFtYm9vX21vc2FpYw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5iYW1ib29fbW9zYWljAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 49, - "key": "minecraft:oak_sapling", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6b2FrX3NhcGxpbmc=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5vYWtfc2FwbGluZwA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 50, - "key": "minecraft:spruce_sapling", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxhtaW5lY3JhZnQ6c3BydWNlX3NhcGxpbmc=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC5zcHJ1Y2Vfc2FwbGluZwA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 51, - "key": "minecraft:birch_sapling", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6YmlyY2hfc2FwbGluZw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5iaXJjaF9zYXBsaW5nAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 52, - "key": "minecraft:jungle_sapling", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxhtaW5lY3JhZnQ6anVuZ2xlX3NhcGxpbmc=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC5qdW5nbGVfc2FwbGluZwA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 53, - "key": "minecraft:acacia_sapling", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxhtaW5lY3JhZnQ6YWNhY2lhX3NhcGxpbmc=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC5hY2FjaWFfc2FwbGluZwA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 54, - "key": "minecraft:cherry_sapling", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxhtaW5lY3JhZnQ6Y2hlcnJ5X3NhcGxpbmc=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC5jaGVycnlfc2FwbGluZwA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 55, - "key": "minecraft:dark_oak_sapling", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxptaW5lY3JhZnQ6ZGFya19vYWtfc2FwbGluZw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGJsb2NrLm1pbmVjcmFmdC5kYXJrX29ha19zYXBsaW5nAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 56, - "key": "minecraft:pale_oak_sapling", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxptaW5lY3JhZnQ6cGFsZV9vYWtfc2FwbGluZw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGJsb2NrLm1pbmVjcmFmdC5wYWxlX29ha19zYXBsaW5nAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 57, - "key": "minecraft:mangrove_propagule", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxxtaW5lY3JhZnQ6bWFuZ3JvdmVfcHJvcGFndWxl", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAImJsb2NrLm1pbmVjcmFmdC5tYW5ncm92ZV9wcm9wYWd1bGUA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 58, - "key": "minecraft:bedrock", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxFtaW5lY3JhZnQ6YmVkcm9jaw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAF2Jsb2NrLm1pbmVjcmFmdC5iZWRyb2NrAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 59, - "key": "minecraft:sand", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bw5taW5lY3JhZnQ6c2FuZA==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFGJsb2NrLm1pbmVjcmFmdC5zYW5kAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 60, - "key": "minecraft:suspicious_sand", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxltaW5lY3JhZnQ6c3VzcGljaW91c19zYW5k", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC5zdXNwaWNpb3VzX3NhbmQA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 61, - "key": "minecraft:suspicious_gravel", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxttaW5lY3JhZnQ6c3VzcGljaW91c19ncmF2ZWw=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWJsb2NrLm1pbmVjcmFmdC5zdXNwaWNpb3VzX2dyYXZlbAA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 62, - "key": "minecraft:red_sand", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxJtaW5lY3JhZnQ6cmVkX3NhbmQ=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGGJsb2NrLm1pbmVjcmFmdC5yZWRfc2FuZAA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 63, - "key": "minecraft:gravel", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxBtaW5lY3JhZnQ6Z3JhdmVs", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFmJsb2NrLm1pbmVjcmFmdC5ncmF2ZWwA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 64, - "key": "minecraft:coal_ore", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxJtaW5lY3JhZnQ6Y29hbF9vcmU=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGGJsb2NrLm1pbmVjcmFmdC5jb2FsX29yZQA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 65, - "key": "minecraft:deepslate_coal_ore", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxxtaW5lY3JhZnQ6ZGVlcHNsYXRlX2NvYWxfb3Jl", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAImJsb2NrLm1pbmVjcmFmdC5kZWVwc2xhdGVfY29hbF9vcmUA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 66, - "key": "minecraft:iron_ore", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxJtaW5lY3JhZnQ6aXJvbl9vcmU=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGGJsb2NrLm1pbmVjcmFmdC5pcm9uX29yZQA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 67, - "key": "minecraft:deepslate_iron_ore", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxxtaW5lY3JhZnQ6ZGVlcHNsYXRlX2lyb25fb3Jl", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAImJsb2NrLm1pbmVjcmFmdC5kZWVwc2xhdGVfaXJvbl9vcmUA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 68, - "key": "minecraft:copper_ore", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxRtaW5lY3JhZnQ6Y29wcGVyX29yZQ==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC5jb3BwZXJfb3JlAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 69, - "key": "minecraft:deepslate_copper_ore", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx5taW5lY3JhZnQ6ZGVlcHNsYXRlX2NvcHBlcl9vcmU=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJGJsb2NrLm1pbmVjcmFmdC5kZWVwc2xhdGVfY29wcGVyX29yZQA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 70, - "key": "minecraft:gold_ore", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxJtaW5lY3JhZnQ6Z29sZF9vcmU=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGGJsb2NrLm1pbmVjcmFmdC5nb2xkX29yZQA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 71, - "key": "minecraft:deepslate_gold_ore", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxxtaW5lY3JhZnQ6ZGVlcHNsYXRlX2dvbGRfb3Jl", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAImJsb2NrLm1pbmVjcmFmdC5kZWVwc2xhdGVfZ29sZF9vcmUA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 72, - "key": "minecraft:redstone_ore", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxZtaW5lY3JhZnQ6cmVkc3RvbmVfb3Jl", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC5yZWRzdG9uZV9vcmUA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 73, - "key": "minecraft:deepslate_redstone_ore", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByBtaW5lY3JhZnQ6ZGVlcHNsYXRlX3JlZHN0b25lX29yZQ==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJmJsb2NrLm1pbmVjcmFmdC5kZWVwc2xhdGVfcmVkc3RvbmVfb3JlAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 74, - "key": "minecraft:emerald_ore", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6ZW1lcmFsZF9vcmU=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5lbWVyYWxkX29yZQA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 75, - "key": "minecraft:deepslate_emerald_ore", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx9taW5lY3JhZnQ6ZGVlcHNsYXRlX2VtZXJhbGRfb3Jl", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWJsb2NrLm1pbmVjcmFmdC5kZWVwc2xhdGVfZW1lcmFsZF9vcmUA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 76, - "key": "minecraft:lapis_ore", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxNtaW5lY3JhZnQ6bGFwaXNfb3Jl", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGWJsb2NrLm1pbmVjcmFmdC5sYXBpc19vcmUA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 77, - "key": "minecraft:deepslate_lapis_ore", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx1taW5lY3JhZnQ6ZGVlcHNsYXRlX2xhcGlzX29yZQ==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2Jsb2NrLm1pbmVjcmFmdC5kZWVwc2xhdGVfbGFwaXNfb3JlAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 78, - "key": "minecraft:diamond_ore", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6ZGlhbW9uZF9vcmU=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5kaWFtb25kX29yZQA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 79, - "key": "minecraft:deepslate_diamond_ore", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx9taW5lY3JhZnQ6ZGVlcHNsYXRlX2RpYW1vbmRfb3Jl", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWJsb2NrLm1pbmVjcmFmdC5kZWVwc2xhdGVfZGlhbW9uZF9vcmUA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 80, - "key": "minecraft:nether_gold_ore", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxltaW5lY3JhZnQ6bmV0aGVyX2dvbGRfb3Jl", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC5uZXRoZXJfZ29sZF9vcmUA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 81, - "key": "minecraft:nether_quartz_ore", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxttaW5lY3JhZnQ6bmV0aGVyX3F1YXJ0el9vcmU=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWJsb2NrLm1pbmVjcmFmdC5uZXRoZXJfcXVhcnR6X29yZQA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 82, - "key": "minecraft:ancient_debris", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:damage_resistant": "GBFtaW5lY3JhZnQ6aXNfZmlyZQ==", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxhtaW5lY3JhZnQ6YW5jaWVudF9kZWJyaXM=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC5hbmNpZW50X2RlYnJpcwA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 83, - "key": "minecraft:coal_block", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxRtaW5lY3JhZnQ6Y29hbF9ibG9jaw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC5jb2FsX2Jsb2NrAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 84, - "key": "minecraft:raw_iron_block", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxhtaW5lY3JhZnQ6cmF3X2lyb25fYmxvY2s=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC5yYXdfaXJvbl9ibG9jawA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 85, - "key": "minecraft:raw_copper_block", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxptaW5lY3JhZnQ6cmF3X2NvcHBlcl9ibG9jaw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGJsb2NrLm1pbmVjcmFmdC5yYXdfY29wcGVyX2Jsb2NrAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 86, - "key": "minecraft:raw_gold_block", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxhtaW5lY3JhZnQ6cmF3X2dvbGRfYmxvY2s=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC5yYXdfZ29sZF9ibG9jawA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 87, - "key": "minecraft:heavy_core", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxRtaW5lY3JhZnQ6aGVhdnlfY29yZQ==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC5oZWF2eV9jb3JlAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQM=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 88, - "key": "minecraft:amethyst_block", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxhtaW5lY3JhZnQ6YW1ldGh5c3RfYmxvY2s=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC5hbWV0aHlzdF9ibG9jawA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 89, - "key": "minecraft:budding_amethyst", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxptaW5lY3JhZnQ6YnVkZGluZ19hbWV0aHlzdA==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGJsb2NrLm1pbmVjcmFmdC5idWRkaW5nX2FtZXRoeXN0AA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 90, - "key": "minecraft:iron_block", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxRtaW5lY3JhZnQ6aXJvbl9ibG9jaw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC5pcm9uX2Jsb2NrAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 91, - "key": "minecraft:copper_block", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxZtaW5lY3JhZnQ6Y29wcGVyX2Jsb2Nr", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC5jb3BwZXJfYmxvY2sA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 92, - "key": "minecraft:gold_block", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxRtaW5lY3JhZnQ6Z29sZF9ibG9jaw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC5nb2xkX2Jsb2NrAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 93, - "key": "minecraft:diamond_block", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6ZGlhbW9uZF9ibG9jaw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5kaWFtb25kX2Jsb2NrAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 94, - "key": "minecraft:netherite_block", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:damage_resistant": "GBFtaW5lY3JhZnQ6aXNfZmlyZQ==", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxltaW5lY3JhZnQ6bmV0aGVyaXRlX2Jsb2Nr", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC5uZXRoZXJpdGVfYmxvY2sA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 95, - "key": "minecraft:exposed_copper", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxhtaW5lY3JhZnQ6ZXhwb3NlZF9jb3BwZXI=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC5leHBvc2VkX2NvcHBlcgA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 96, - "key": "minecraft:weathered_copper", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxptaW5lY3JhZnQ6d2VhdGhlcmVkX2NvcHBlcg==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGJsb2NrLm1pbmVjcmFmdC53ZWF0aGVyZWRfY29wcGVyAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 97, - "key": "minecraft:oxidized_copper", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxltaW5lY3JhZnQ6b3hpZGl6ZWRfY29wcGVy", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC5veGlkaXplZF9jb3BwZXIA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 98, - "key": "minecraft:chiseled_copper", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxltaW5lY3JhZnQ6Y2hpc2VsZWRfY29wcGVy", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC5jaGlzZWxlZF9jb3BwZXIA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 99, - "key": "minecraft:exposed_chiseled_copper", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByFtaW5lY3JhZnQ6ZXhwb3NlZF9jaGlzZWxlZF9jb3BwZXI=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJ2Jsb2NrLm1pbmVjcmFmdC5leHBvc2VkX2NoaXNlbGVkX2NvcHBlcgA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 100, - "key": "minecraft:weathered_chiseled_copper", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByNtaW5lY3JhZnQ6d2VhdGhlcmVkX2NoaXNlbGVkX2NvcHBlcg==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAKWJsb2NrLm1pbmVjcmFmdC53ZWF0aGVyZWRfY2hpc2VsZWRfY29wcGVyAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 101, - "key": "minecraft:oxidized_chiseled_copper", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByJtaW5lY3JhZnQ6b3hpZGl6ZWRfY2hpc2VsZWRfY29wcGVy", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAKGJsb2NrLm1pbmVjcmFmdC5veGlkaXplZF9jaGlzZWxlZF9jb3BwZXIA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 102, - "key": "minecraft:cut_copper", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxRtaW5lY3JhZnQ6Y3V0X2NvcHBlcg==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC5jdXRfY29wcGVyAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 103, - "key": "minecraft:exposed_cut_copper", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxxtaW5lY3JhZnQ6ZXhwb3NlZF9jdXRfY29wcGVy", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAImJsb2NrLm1pbmVjcmFmdC5leHBvc2VkX2N1dF9jb3BwZXIA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 104, - "key": "minecraft:weathered_cut_copper", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx5taW5lY3JhZnQ6d2VhdGhlcmVkX2N1dF9jb3BwZXI=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJGJsb2NrLm1pbmVjcmFmdC53ZWF0aGVyZWRfY3V0X2NvcHBlcgA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 105, - "key": "minecraft:oxidized_cut_copper", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx1taW5lY3JhZnQ6b3hpZGl6ZWRfY3V0X2NvcHBlcg==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2Jsb2NrLm1pbmVjcmFmdC5veGlkaXplZF9jdXRfY29wcGVyAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 106, - "key": "minecraft:cut_copper_stairs", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxttaW5lY3JhZnQ6Y3V0X2NvcHBlcl9zdGFpcnM=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWJsb2NrLm1pbmVjcmFmdC5jdXRfY29wcGVyX3N0YWlycwA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 107, - "key": "minecraft:exposed_cut_copper_stairs", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByNtaW5lY3JhZnQ6ZXhwb3NlZF9jdXRfY29wcGVyX3N0YWlycw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAKWJsb2NrLm1pbmVjcmFmdC5leHBvc2VkX2N1dF9jb3BwZXJfc3RhaXJzAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 108, - "key": "minecraft:weathered_cut_copper_stairs", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByVtaW5lY3JhZnQ6d2VhdGhlcmVkX2N1dF9jb3BwZXJfc3RhaXJz", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAK2Jsb2NrLm1pbmVjcmFmdC53ZWF0aGVyZWRfY3V0X2NvcHBlcl9zdGFpcnMA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 109, - "key": "minecraft:oxidized_cut_copper_stairs", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByRtaW5lY3JhZnQ6b3hpZGl6ZWRfY3V0X2NvcHBlcl9zdGFpcnM=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAKmJsb2NrLm1pbmVjcmFmdC5veGlkaXplZF9jdXRfY29wcGVyX3N0YWlycwA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 110, - "key": "minecraft:cut_copper_slab", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxltaW5lY3JhZnQ6Y3V0X2NvcHBlcl9zbGFi", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC5jdXRfY29wcGVyX3NsYWIA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 111, - "key": "minecraft:exposed_cut_copper_slab", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByFtaW5lY3JhZnQ6ZXhwb3NlZF9jdXRfY29wcGVyX3NsYWI=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJ2Jsb2NrLm1pbmVjcmFmdC5leHBvc2VkX2N1dF9jb3BwZXJfc2xhYgA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 112, - "key": "minecraft:weathered_cut_copper_slab", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByNtaW5lY3JhZnQ6d2VhdGhlcmVkX2N1dF9jb3BwZXJfc2xhYg==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAKWJsb2NrLm1pbmVjcmFmdC53ZWF0aGVyZWRfY3V0X2NvcHBlcl9zbGFiAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 113, - "key": "minecraft:oxidized_cut_copper_slab", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByJtaW5lY3JhZnQ6b3hpZGl6ZWRfY3V0X2NvcHBlcl9zbGFi", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAKGJsb2NrLm1pbmVjcmFmdC5veGlkaXplZF9jdXRfY29wcGVyX3NsYWIA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 114, - "key": "minecraft:waxed_copper_block", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxxtaW5lY3JhZnQ6d2F4ZWRfY29wcGVyX2Jsb2Nr", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAImJsb2NrLm1pbmVjcmFmdC53YXhlZF9jb3BwZXJfYmxvY2sA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 115, - "key": "minecraft:waxed_exposed_copper", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx5taW5lY3JhZnQ6d2F4ZWRfZXhwb3NlZF9jb3BwZXI=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJGJsb2NrLm1pbmVjcmFmdC53YXhlZF9leHBvc2VkX2NvcHBlcgA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 116, - "key": "minecraft:waxed_weathered_copper", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByBtaW5lY3JhZnQ6d2F4ZWRfd2VhdGhlcmVkX2NvcHBlcg==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJmJsb2NrLm1pbmVjcmFmdC53YXhlZF93ZWF0aGVyZWRfY29wcGVyAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 117, - "key": "minecraft:waxed_oxidized_copper", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx9taW5lY3JhZnQ6d2F4ZWRfb3hpZGl6ZWRfY29wcGVy", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWJsb2NrLm1pbmVjcmFmdC53YXhlZF9veGlkaXplZF9jb3BwZXIA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 118, - "key": "minecraft:waxed_chiseled_copper", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx9taW5lY3JhZnQ6d2F4ZWRfY2hpc2VsZWRfY29wcGVy", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWJsb2NrLm1pbmVjcmFmdC53YXhlZF9jaGlzZWxlZF9jb3BwZXIA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 119, - "key": "minecraft:waxed_exposed_chiseled_copper", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BydtaW5lY3JhZnQ6d2F4ZWRfZXhwb3NlZF9jaGlzZWxlZF9jb3BwZXI=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUALWJsb2NrLm1pbmVjcmFmdC53YXhlZF9leHBvc2VkX2NoaXNlbGVkX2NvcHBlcgA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 120, - "key": "minecraft:waxed_weathered_chiseled_copper", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByltaW5lY3JhZnQ6d2F4ZWRfd2VhdGhlcmVkX2NoaXNlbGVkX2NvcHBlcg==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAL2Jsb2NrLm1pbmVjcmFmdC53YXhlZF93ZWF0aGVyZWRfY2hpc2VsZWRfY29wcGVyAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 121, - "key": "minecraft:waxed_oxidized_chiseled_copper", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByhtaW5lY3JhZnQ6d2F4ZWRfb3hpZGl6ZWRfY2hpc2VsZWRfY29wcGVy", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUALmJsb2NrLm1pbmVjcmFmdC53YXhlZF9veGlkaXplZF9jaGlzZWxlZF9jb3BwZXIA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 122, - "key": "minecraft:waxed_cut_copper", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxptaW5lY3JhZnQ6d2F4ZWRfY3V0X2NvcHBlcg==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGJsb2NrLm1pbmVjcmFmdC53YXhlZF9jdXRfY29wcGVyAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 123, - "key": "minecraft:waxed_exposed_cut_copper", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByJtaW5lY3JhZnQ6d2F4ZWRfZXhwb3NlZF9jdXRfY29wcGVy", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAKGJsb2NrLm1pbmVjcmFmdC53YXhlZF9leHBvc2VkX2N1dF9jb3BwZXIA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 124, - "key": "minecraft:waxed_weathered_cut_copper", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByRtaW5lY3JhZnQ6d2F4ZWRfd2VhdGhlcmVkX2N1dF9jb3BwZXI=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAKmJsb2NrLm1pbmVjcmFmdC53YXhlZF93ZWF0aGVyZWRfY3V0X2NvcHBlcgA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 125, - "key": "minecraft:waxed_oxidized_cut_copper", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByNtaW5lY3JhZnQ6d2F4ZWRfb3hpZGl6ZWRfY3V0X2NvcHBlcg==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAKWJsb2NrLm1pbmVjcmFmdC53YXhlZF9veGlkaXplZF9jdXRfY29wcGVyAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 126, - "key": "minecraft:waxed_cut_copper_stairs", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByFtaW5lY3JhZnQ6d2F4ZWRfY3V0X2NvcHBlcl9zdGFpcnM=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJ2Jsb2NrLm1pbmVjcmFmdC53YXhlZF9jdXRfY29wcGVyX3N0YWlycwA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 127, - "key": "minecraft:waxed_exposed_cut_copper_stairs", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByltaW5lY3JhZnQ6d2F4ZWRfZXhwb3NlZF9jdXRfY29wcGVyX3N0YWlycw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAL2Jsb2NrLm1pbmVjcmFmdC53YXhlZF9leHBvc2VkX2N1dF9jb3BwZXJfc3RhaXJzAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 128, - "key": "minecraft:waxed_weathered_cut_copper_stairs", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByttaW5lY3JhZnQ6d2F4ZWRfd2VhdGhlcmVkX2N1dF9jb3BwZXJfc3RhaXJz", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAMWJsb2NrLm1pbmVjcmFmdC53YXhlZF93ZWF0aGVyZWRfY3V0X2NvcHBlcl9zdGFpcnMA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 129, - "key": "minecraft:waxed_oxidized_cut_copper_stairs", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByptaW5lY3JhZnQ6d2F4ZWRfb3hpZGl6ZWRfY3V0X2NvcHBlcl9zdGFpcnM=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAMGJsb2NrLm1pbmVjcmFmdC53YXhlZF9veGlkaXplZF9jdXRfY29wcGVyX3N0YWlycwA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 130, - "key": "minecraft:waxed_cut_copper_slab", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx9taW5lY3JhZnQ6d2F4ZWRfY3V0X2NvcHBlcl9zbGFi", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWJsb2NrLm1pbmVjcmFmdC53YXhlZF9jdXRfY29wcGVyX3NsYWIA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 131, - "key": "minecraft:waxed_exposed_cut_copper_slab", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BydtaW5lY3JhZnQ6d2F4ZWRfZXhwb3NlZF9jdXRfY29wcGVyX3NsYWI=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUALWJsb2NrLm1pbmVjcmFmdC53YXhlZF9leHBvc2VkX2N1dF9jb3BwZXJfc2xhYgA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 132, - "key": "minecraft:waxed_weathered_cut_copper_slab", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByltaW5lY3JhZnQ6d2F4ZWRfd2VhdGhlcmVkX2N1dF9jb3BwZXJfc2xhYg==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAL2Jsb2NrLm1pbmVjcmFmdC53YXhlZF93ZWF0aGVyZWRfY3V0X2NvcHBlcl9zbGFiAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 133, - "key": "minecraft:waxed_oxidized_cut_copper_slab", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByhtaW5lY3JhZnQ6d2F4ZWRfb3hpZGl6ZWRfY3V0X2NvcHBlcl9zbGFi", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUALmJsb2NrLm1pbmVjcmFmdC53YXhlZF9veGlkaXplZF9jdXRfY29wcGVyX3NsYWIA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 134, - "key": "minecraft:oak_log", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxFtaW5lY3JhZnQ6b2FrX2xvZw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAF2Jsb2NrLm1pbmVjcmFmdC5vYWtfbG9nAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 135, - "key": "minecraft:spruce_log", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxRtaW5lY3JhZnQ6c3BydWNlX2xvZw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC5zcHJ1Y2VfbG9nAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 136, - "key": "minecraft:birch_log", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxNtaW5lY3JhZnQ6YmlyY2hfbG9n", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGWJsb2NrLm1pbmVjcmFmdC5iaXJjaF9sb2cA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 137, - "key": "minecraft:jungle_log", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxRtaW5lY3JhZnQ6anVuZ2xlX2xvZw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC5qdW5nbGVfbG9nAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 138, - "key": "minecraft:acacia_log", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxRtaW5lY3JhZnQ6YWNhY2lhX2xvZw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC5hY2FjaWFfbG9nAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 139, - "key": "minecraft:cherry_log", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxRtaW5lY3JhZnQ6Y2hlcnJ5X2xvZw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC5jaGVycnlfbG9nAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 140, - "key": "minecraft:pale_oak_log", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxZtaW5lY3JhZnQ6cGFsZV9vYWtfbG9n", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC5wYWxlX29ha19sb2cA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 141, - "key": "minecraft:dark_oak_log", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxZtaW5lY3JhZnQ6ZGFya19vYWtfbG9n", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC5kYXJrX29ha19sb2cA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 142, - "key": "minecraft:mangrove_log", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxZtaW5lY3JhZnQ6bWFuZ3JvdmVfbG9n", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC5tYW5ncm92ZV9sb2cA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 143, - "key": "minecraft:mangrove_roots", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxhtaW5lY3JhZnQ6bWFuZ3JvdmVfcm9vdHM=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC5tYW5ncm92ZV9yb290cwA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 144, - "key": "minecraft:muddy_mangrove_roots", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx5taW5lY3JhZnQ6bXVkZHlfbWFuZ3JvdmVfcm9vdHM=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJGJsb2NrLm1pbmVjcmFmdC5tdWRkeV9tYW5ncm92ZV9yb290cwA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 145, - "key": "minecraft:crimson_stem", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxZtaW5lY3JhZnQ6Y3JpbXNvbl9zdGVt", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC5jcmltc29uX3N0ZW0A", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 146, - "key": "minecraft:warped_stem", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6d2FycGVkX3N0ZW0=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC53YXJwZWRfc3RlbQA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 147, - "key": "minecraft:bamboo_block", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxZtaW5lY3JhZnQ6YmFtYm9vX2Jsb2Nr", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC5iYW1ib29fYmxvY2sA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 148, - "key": "minecraft:stripped_oak_log", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxptaW5lY3JhZnQ6c3RyaXBwZWRfb2FrX2xvZw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGJsb2NrLm1pbmVjcmFmdC5zdHJpcHBlZF9vYWtfbG9nAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 149, - "key": "minecraft:stripped_spruce_log", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx1taW5lY3JhZnQ6c3RyaXBwZWRfc3BydWNlX2xvZw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2Jsb2NrLm1pbmVjcmFmdC5zdHJpcHBlZF9zcHJ1Y2VfbG9nAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 150, - "key": "minecraft:stripped_birch_log", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxxtaW5lY3JhZnQ6c3RyaXBwZWRfYmlyY2hfbG9n", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAImJsb2NrLm1pbmVjcmFmdC5zdHJpcHBlZF9iaXJjaF9sb2cA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 151, - "key": "minecraft:stripped_jungle_log", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx1taW5lY3JhZnQ6c3RyaXBwZWRfanVuZ2xlX2xvZw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2Jsb2NrLm1pbmVjcmFmdC5zdHJpcHBlZF9qdW5nbGVfbG9nAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 152, - "key": "minecraft:stripped_acacia_log", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx1taW5lY3JhZnQ6c3RyaXBwZWRfYWNhY2lhX2xvZw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2Jsb2NrLm1pbmVjcmFmdC5zdHJpcHBlZF9hY2FjaWFfbG9nAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 153, - "key": "minecraft:stripped_cherry_log", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx1taW5lY3JhZnQ6c3RyaXBwZWRfY2hlcnJ5X2xvZw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2Jsb2NrLm1pbmVjcmFmdC5zdHJpcHBlZF9jaGVycnlfbG9nAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 154, - "key": "minecraft:stripped_dark_oak_log", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx9taW5lY3JhZnQ6c3RyaXBwZWRfZGFya19vYWtfbG9n", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWJsb2NrLm1pbmVjcmFmdC5zdHJpcHBlZF9kYXJrX29ha19sb2cA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 155, - "key": "minecraft:stripped_pale_oak_log", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx9taW5lY3JhZnQ6c3RyaXBwZWRfcGFsZV9vYWtfbG9n", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWJsb2NrLm1pbmVjcmFmdC5zdHJpcHBlZF9wYWxlX29ha19sb2cA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 156, - "key": "minecraft:stripped_mangrove_log", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx9taW5lY3JhZnQ6c3RyaXBwZWRfbWFuZ3JvdmVfbG9n", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWJsb2NrLm1pbmVjcmFmdC5zdHJpcHBlZF9tYW5ncm92ZV9sb2cA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 157, - "key": "minecraft:stripped_crimson_stem", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx9taW5lY3JhZnQ6c3RyaXBwZWRfY3JpbXNvbl9zdGVt", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWJsb2NrLm1pbmVjcmFmdC5zdHJpcHBlZF9jcmltc29uX3N0ZW0A", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 158, - "key": "minecraft:stripped_warped_stem", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx5taW5lY3JhZnQ6c3RyaXBwZWRfd2FycGVkX3N0ZW0=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJGJsb2NrLm1pbmVjcmFmdC5zdHJpcHBlZF93YXJwZWRfc3RlbQA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 159, - "key": "minecraft:stripped_oak_wood", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxttaW5lY3JhZnQ6c3RyaXBwZWRfb2FrX3dvb2Q=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWJsb2NrLm1pbmVjcmFmdC5zdHJpcHBlZF9vYWtfd29vZAA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 160, - "key": "minecraft:stripped_spruce_wood", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx5taW5lY3JhZnQ6c3RyaXBwZWRfc3BydWNlX3dvb2Q=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJGJsb2NrLm1pbmVjcmFmdC5zdHJpcHBlZF9zcHJ1Y2Vfd29vZAA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 161, - "key": "minecraft:stripped_birch_wood", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx1taW5lY3JhZnQ6c3RyaXBwZWRfYmlyY2hfd29vZA==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2Jsb2NrLm1pbmVjcmFmdC5zdHJpcHBlZF9iaXJjaF93b29kAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 162, - "key": "minecraft:stripped_jungle_wood", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx5taW5lY3JhZnQ6c3RyaXBwZWRfanVuZ2xlX3dvb2Q=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJGJsb2NrLm1pbmVjcmFmdC5zdHJpcHBlZF9qdW5nbGVfd29vZAA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 163, - "key": "minecraft:stripped_acacia_wood", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx5taW5lY3JhZnQ6c3RyaXBwZWRfYWNhY2lhX3dvb2Q=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJGJsb2NrLm1pbmVjcmFmdC5zdHJpcHBlZF9hY2FjaWFfd29vZAA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 164, - "key": "minecraft:stripped_cherry_wood", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx5taW5lY3JhZnQ6c3RyaXBwZWRfY2hlcnJ5X3dvb2Q=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJGJsb2NrLm1pbmVjcmFmdC5zdHJpcHBlZF9jaGVycnlfd29vZAA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 165, - "key": "minecraft:stripped_dark_oak_wood", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByBtaW5lY3JhZnQ6c3RyaXBwZWRfZGFya19vYWtfd29vZA==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJmJsb2NrLm1pbmVjcmFmdC5zdHJpcHBlZF9kYXJrX29ha193b29kAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 166, - "key": "minecraft:stripped_pale_oak_wood", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByBtaW5lY3JhZnQ6c3RyaXBwZWRfcGFsZV9vYWtfd29vZA==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJmJsb2NrLm1pbmVjcmFmdC5zdHJpcHBlZF9wYWxlX29ha193b29kAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 167, - "key": "minecraft:stripped_mangrove_wood", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByBtaW5lY3JhZnQ6c3RyaXBwZWRfbWFuZ3JvdmVfd29vZA==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJmJsb2NrLm1pbmVjcmFmdC5zdHJpcHBlZF9tYW5ncm92ZV93b29kAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 168, - "key": "minecraft:stripped_crimson_hyphae", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByFtaW5lY3JhZnQ6c3RyaXBwZWRfY3JpbXNvbl9oeXBoYWU=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJ2Jsb2NrLm1pbmVjcmFmdC5zdHJpcHBlZF9jcmltc29uX2h5cGhhZQA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 169, - "key": "minecraft:stripped_warped_hyphae", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByBtaW5lY3JhZnQ6c3RyaXBwZWRfd2FycGVkX2h5cGhhZQ==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJmJsb2NrLm1pbmVjcmFmdC5zdHJpcHBlZF93YXJwZWRfaHlwaGFlAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 170, - "key": "minecraft:stripped_bamboo_block", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx9taW5lY3JhZnQ6c3RyaXBwZWRfYmFtYm9vX2Jsb2Nr", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWJsb2NrLm1pbmVjcmFmdC5zdHJpcHBlZF9iYW1ib29fYmxvY2sA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 171, - "key": "minecraft:oak_wood", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxJtaW5lY3JhZnQ6b2FrX3dvb2Q=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGGJsb2NrLm1pbmVjcmFmdC5vYWtfd29vZAA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 172, - "key": "minecraft:spruce_wood", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6c3BydWNlX3dvb2Q=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5zcHJ1Y2Vfd29vZAA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 173, - "key": "minecraft:birch_wood", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxRtaW5lY3JhZnQ6YmlyY2hfd29vZA==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC5iaXJjaF93b29kAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 174, - "key": "minecraft:jungle_wood", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6anVuZ2xlX3dvb2Q=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5qdW5nbGVfd29vZAA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 175, - "key": "minecraft:acacia_wood", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6YWNhY2lhX3dvb2Q=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5hY2FjaWFfd29vZAA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 176, - "key": "minecraft:cherry_wood", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6Y2hlcnJ5X3dvb2Q=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5jaGVycnlfd29vZAA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 177, - "key": "minecraft:pale_oak_wood", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6cGFsZV9vYWtfd29vZA==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5wYWxlX29ha193b29kAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 178, - "key": "minecraft:dark_oak_wood", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6ZGFya19vYWtfd29vZA==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5kYXJrX29ha193b29kAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 179, - "key": "minecraft:mangrove_wood", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6bWFuZ3JvdmVfd29vZA==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5tYW5ncm92ZV93b29kAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 180, - "key": "minecraft:crimson_hyphae", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxhtaW5lY3JhZnQ6Y3JpbXNvbl9oeXBoYWU=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC5jcmltc29uX2h5cGhhZQA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 181, - "key": "minecraft:warped_hyphae", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6d2FycGVkX2h5cGhhZQ==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC53YXJwZWRfaHlwaGFlAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 182, - "key": "minecraft:oak_leaves", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxRtaW5lY3JhZnQ6b2FrX2xlYXZlcw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC5vYWtfbGVhdmVzAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 183, - "key": "minecraft:spruce_leaves", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6c3BydWNlX2xlYXZlcw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5zcHJ1Y2VfbGVhdmVzAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 184, - "key": "minecraft:birch_leaves", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxZtaW5lY3JhZnQ6YmlyY2hfbGVhdmVz", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC5iaXJjaF9sZWF2ZXMA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 185, - "key": "minecraft:jungle_leaves", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6anVuZ2xlX2xlYXZlcw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5qdW5nbGVfbGVhdmVzAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 186, - "key": "minecraft:acacia_leaves", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6YWNhY2lhX2xlYXZlcw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5hY2FjaWFfbGVhdmVzAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 187, - "key": "minecraft:cherry_leaves", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6Y2hlcnJ5X2xlYXZlcw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5jaGVycnlfbGVhdmVzAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 188, - "key": "minecraft:dark_oak_leaves", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxltaW5lY3JhZnQ6ZGFya19vYWtfbGVhdmVz", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC5kYXJrX29ha19sZWF2ZXMA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 189, - "key": "minecraft:pale_oak_leaves", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxltaW5lY3JhZnQ6cGFsZV9vYWtfbGVhdmVz", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC5wYWxlX29ha19sZWF2ZXMA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 190, - "key": "minecraft:mangrove_leaves", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxltaW5lY3JhZnQ6bWFuZ3JvdmVfbGVhdmVz", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC5tYW5ncm92ZV9sZWF2ZXMA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 191, - "key": "minecraft:azalea_leaves", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6YXphbGVhX2xlYXZlcw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5hemFsZWFfbGVhdmVzAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 192, - "key": "minecraft:flowering_azalea_leaves", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByFtaW5lY3JhZnQ6Zmxvd2VyaW5nX2F6YWxlYV9sZWF2ZXM=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJ2Jsb2NrLm1pbmVjcmFmdC5mbG93ZXJpbmdfYXphbGVhX2xlYXZlcwA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 193, - "key": "minecraft:sponge", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxBtaW5lY3JhZnQ6c3Bvbmdl", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFmJsb2NrLm1pbmVjcmFmdC5zcG9uZ2UA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 194, - "key": "minecraft:wet_sponge", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxRtaW5lY3JhZnQ6d2V0X3Nwb25nZQ==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC53ZXRfc3BvbmdlAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 195, - "key": "minecraft:glass", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bw9taW5lY3JhZnQ6Z2xhc3M=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFWJsb2NrLm1pbmVjcmFmdC5nbGFzcwA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 196, - "key": "minecraft:tinted_glass", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxZtaW5lY3JhZnQ6dGludGVkX2dsYXNz", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC50aW50ZWRfZ2xhc3MA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 197, - "key": "minecraft:lapis_block", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6bGFwaXNfYmxvY2s=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5sYXBpc19ibG9jawA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 198, - "key": "minecraft:sandstone", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxNtaW5lY3JhZnQ6c2FuZHN0b25l", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGWJsb2NrLm1pbmVjcmFmdC5zYW5kc3RvbmUA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 199, - "key": "minecraft:chiseled_sandstone", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxxtaW5lY3JhZnQ6Y2hpc2VsZWRfc2FuZHN0b25l", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAImJsb2NrLm1pbmVjcmFmdC5jaGlzZWxlZF9zYW5kc3RvbmUA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 200, - "key": "minecraft:cut_sandstone", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6Y3V0X3NhbmRzdG9uZQ==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5jdXRfc2FuZHN0b25lAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 201, - "key": "minecraft:cobweb", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxBtaW5lY3JhZnQ6Y29id2Vi", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFmJsb2NrLm1pbmVjcmFmdC5jb2J3ZWIA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 202, - "key": "minecraft:short_grass", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6c2hvcnRfZ3Jhc3M=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5zaG9ydF9ncmFzcwA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 203, - "key": "minecraft:fern", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bw5taW5lY3JhZnQ6ZmVybg==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFGJsb2NrLm1pbmVjcmFmdC5mZXJuAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 204, - "key": "minecraft:bush", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bw5taW5lY3JhZnQ6YnVzaA==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFGJsb2NrLm1pbmVjcmFmdC5idXNoAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 205, - "key": "minecraft:azalea", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxBtaW5lY3JhZnQ6YXphbGVh", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFmJsb2NrLm1pbmVjcmFmdC5hemFsZWEA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 206, - "key": "minecraft:flowering_azalea", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxptaW5lY3JhZnQ6Zmxvd2VyaW5nX2F6YWxlYQ==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGJsb2NrLm1pbmVjcmFmdC5mbG93ZXJpbmdfYXphbGVhAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 207, - "key": "minecraft:dead_bush", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxNtaW5lY3JhZnQ6ZGVhZF9idXNo", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGWJsb2NrLm1pbmVjcmFmdC5kZWFkX2J1c2gA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 208, - "key": "minecraft:firefly_bush", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxZtaW5lY3JhZnQ6ZmlyZWZseV9idXNo", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC5maXJlZmx5X2J1c2gA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 209, - "key": "minecraft:short_dry_grass", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxltaW5lY3JhZnQ6c2hvcnRfZHJ5X2dyYXNz", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC5zaG9ydF9kcnlfZ3Jhc3MA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 210, - "key": "minecraft:tall_dry_grass", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxhtaW5lY3JhZnQ6dGFsbF9kcnlfZ3Jhc3M=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC50YWxsX2RyeV9ncmFzcwA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 211, - "key": "minecraft:seagrass", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxJtaW5lY3JhZnQ6c2VhZ3Jhc3M=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGGJsb2NrLm1pbmVjcmFmdC5zZWFncmFzcwA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 212, - "key": "minecraft:sea_pickle", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxRtaW5lY3JhZnQ6c2VhX3BpY2tsZQ==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC5zZWFfcGlja2xlAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 213, - "key": "minecraft:white_wool", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxRtaW5lY3JhZnQ6d2hpdGVfd29vbA==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC53aGl0ZV93b29sAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 214, - "key": "minecraft:orange_wool", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6b3JhbmdlX3dvb2w=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5vcmFuZ2Vfd29vbAA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 215, - "key": "minecraft:magenta_wool", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxZtaW5lY3JhZnQ6bWFnZW50YV93b29s", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC5tYWdlbnRhX3dvb2wA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 216, - "key": "minecraft:light_blue_wool", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxltaW5lY3JhZnQ6bGlnaHRfYmx1ZV93b29s", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC5saWdodF9ibHVlX3dvb2wA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 217, - "key": "minecraft:yellow_wool", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6eWVsbG93X3dvb2w=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC55ZWxsb3dfd29vbAA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 218, - "key": "minecraft:lime_wool", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxNtaW5lY3JhZnQ6bGltZV93b29s", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGWJsb2NrLm1pbmVjcmFmdC5saW1lX3dvb2wA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 219, - "key": "minecraft:pink_wool", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxNtaW5lY3JhZnQ6cGlua193b29s", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGWJsb2NrLm1pbmVjcmFmdC5waW5rX3dvb2wA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 220, - "key": "minecraft:gray_wool", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxNtaW5lY3JhZnQ6Z3JheV93b29s", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGWJsb2NrLm1pbmVjcmFmdC5ncmF5X3dvb2wA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 221, - "key": "minecraft:light_gray_wool", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxltaW5lY3JhZnQ6bGlnaHRfZ3JheV93b29s", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC5saWdodF9ncmF5X3dvb2wA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 222, - "key": "minecraft:cyan_wool", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxNtaW5lY3JhZnQ6Y3lhbl93b29s", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGWJsb2NrLm1pbmVjcmFmdC5jeWFuX3dvb2wA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 223, - "key": "minecraft:purple_wool", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6cHVycGxlX3dvb2w=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5wdXJwbGVfd29vbAA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 224, - "key": "minecraft:blue_wool", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxNtaW5lY3JhZnQ6Ymx1ZV93b29s", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGWJsb2NrLm1pbmVjcmFmdC5ibHVlX3dvb2wA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 225, - "key": "minecraft:brown_wool", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxRtaW5lY3JhZnQ6YnJvd25fd29vbA==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC5icm93bl93b29sAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 226, - "key": "minecraft:green_wool", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxRtaW5lY3JhZnQ6Z3JlZW5fd29vbA==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC5ncmVlbl93b29sAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 227, - "key": "minecraft:red_wool", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxJtaW5lY3JhZnQ6cmVkX3dvb2w=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGGJsb2NrLm1pbmVjcmFmdC5yZWRfd29vbAA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 228, - "key": "minecraft:black_wool", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxRtaW5lY3JhZnQ6YmxhY2tfd29vbA==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC5ibGFja193b29sAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 229, - "key": "minecraft:dandelion", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxNtaW5lY3JhZnQ6ZGFuZGVsaW9u", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGWJsb2NrLm1pbmVjcmFmdC5kYW5kZWxpb24A", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 230, - "key": "minecraft:open_eyeblossom", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxltaW5lY3JhZnQ6b3Blbl9leWVibG9zc29t", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC5vcGVuX2V5ZWJsb3Nzb20A", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 231, - "key": "minecraft:closed_eyeblossom", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxttaW5lY3JhZnQ6Y2xvc2VkX2V5ZWJsb3Nzb20=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWJsb2NrLm1pbmVjcmFmdC5jbG9zZWRfZXllYmxvc3NvbQA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 232, - "key": "minecraft:poppy", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bw9taW5lY3JhZnQ6cG9wcHk=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFWJsb2NrLm1pbmVjcmFmdC5wb3BweQA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 233, - "key": "minecraft:blue_orchid", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6Ymx1ZV9vcmNoaWQ=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5ibHVlX29yY2hpZAA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 234, - "key": "minecraft:allium", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxBtaW5lY3JhZnQ6YWxsaXVt", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFmJsb2NrLm1pbmVjcmFmdC5hbGxpdW0A", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 235, - "key": "minecraft:azure_bluet", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6YXp1cmVfYmx1ZXQ=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5henVyZV9ibHVldAA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 236, - "key": "minecraft:red_tulip", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxNtaW5lY3JhZnQ6cmVkX3R1bGlw", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGWJsb2NrLm1pbmVjcmFmdC5yZWRfdHVsaXAA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 237, - "key": "minecraft:orange_tulip", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxZtaW5lY3JhZnQ6b3JhbmdlX3R1bGlw", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC5vcmFuZ2VfdHVsaXAA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 238, - "key": "minecraft:white_tulip", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6d2hpdGVfdHVsaXA=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC53aGl0ZV90dWxpcAA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 239, - "key": "minecraft:pink_tulip", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxRtaW5lY3JhZnQ6cGlua190dWxpcA==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC5waW5rX3R1bGlwAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 240, - "key": "minecraft:oxeye_daisy", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6b3hleWVfZGFpc3k=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5veGV5ZV9kYWlzeQA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 241, - "key": "minecraft:cornflower", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxRtaW5lY3JhZnQ6Y29ybmZsb3dlcg==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC5jb3JuZmxvd2VyAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 242, - "key": "minecraft:lily_of_the_valley", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxxtaW5lY3JhZnQ6bGlseV9vZl90aGVfdmFsbGV5", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAImJsb2NrLm1pbmVjcmFmdC5saWx5X29mX3RoZV92YWxsZXkA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 243, - "key": "minecraft:wither_rose", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6d2l0aGVyX3Jvc2U=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC53aXRoZXJfcm9zZQA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 244, - "key": "minecraft:torchflower", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6dG9yY2hmbG93ZXI=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC50b3JjaGZsb3dlcgA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 245, - "key": "minecraft:pitcher_plant", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6cGl0Y2hlcl9wbGFudA==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5waXRjaGVyX3BsYW50AA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 246, - "key": "minecraft:spore_blossom", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6c3BvcmVfYmxvc3NvbQ==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5zcG9yZV9ibG9zc29tAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 247, - "key": "minecraft:brown_mushroom", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxhtaW5lY3JhZnQ6YnJvd25fbXVzaHJvb20=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC5icm93bl9tdXNocm9vbQA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 248, - "key": "minecraft:red_mushroom", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxZtaW5lY3JhZnQ6cmVkX211c2hyb29t", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC5yZWRfbXVzaHJvb20A", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 249, - "key": "minecraft:crimson_fungus", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxhtaW5lY3JhZnQ6Y3JpbXNvbl9mdW5ndXM=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC5jcmltc29uX2Z1bmd1cwA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 250, - "key": "minecraft:warped_fungus", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6d2FycGVkX2Z1bmd1cw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC53YXJwZWRfZnVuZ3VzAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 251, - "key": "minecraft:crimson_roots", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6Y3JpbXNvbl9yb290cw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5jcmltc29uX3Jvb3RzAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 252, - "key": "minecraft:warped_roots", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxZtaW5lY3JhZnQ6d2FycGVkX3Jvb3Rz", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC53YXJwZWRfcm9vdHMA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 253, - "key": "minecraft:nether_sprouts", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxhtaW5lY3JhZnQ6bmV0aGVyX3Nwcm91dHM=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC5uZXRoZXJfc3Byb3V0cwA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 254, - "key": "minecraft:weeping_vines", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6d2VlcGluZ192aW5lcw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC53ZWVwaW5nX3ZpbmVzAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 255, - "key": "minecraft:twisting_vines", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxhtaW5lY3JhZnQ6dHdpc3RpbmdfdmluZXM=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC50d2lzdGluZ192aW5lcwA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 256, - "key": "minecraft:sugar_cane", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxRtaW5lY3JhZnQ6c3VnYXJfY2FuZQ==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC5zdWdhcl9jYW5lAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 257, - "key": "minecraft:kelp", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bw5taW5lY3JhZnQ6a2VscA==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFGJsb2NrLm1pbmVjcmFmdC5rZWxwAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 258, - "key": "minecraft:pink_petals", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6cGlua19wZXRhbHM=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5waW5rX3BldGFscwA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 259, - "key": "minecraft:wildflowers", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6d2lsZGZsb3dlcnM=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC53aWxkZmxvd2VycwA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 260, - "key": "minecraft:leaf_litter", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6bGVhZl9saXR0ZXI=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5sZWFmX2xpdHRlcgA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 261, - "key": "minecraft:moss_carpet", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6bW9zc19jYXJwZXQ=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5tb3NzX2NhcnBldAA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 262, - "key": "minecraft:moss_block", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxRtaW5lY3JhZnQ6bW9zc19ibG9jaw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC5tb3NzX2Jsb2NrAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 263, - "key": "minecraft:pale_moss_carpet", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxptaW5lY3JhZnQ6cGFsZV9tb3NzX2NhcnBldA==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGJsb2NrLm1pbmVjcmFmdC5wYWxlX21vc3NfY2FycGV0AA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 264, - "key": "minecraft:pale_hanging_moss", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxttaW5lY3JhZnQ6cGFsZV9oYW5naW5nX21vc3M=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWJsb2NrLm1pbmVjcmFmdC5wYWxlX2hhbmdpbmdfbW9zcwA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 265, - "key": "minecraft:pale_moss_block", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxltaW5lY3JhZnQ6cGFsZV9tb3NzX2Jsb2Nr", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC5wYWxlX21vc3NfYmxvY2sA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 266, - "key": "minecraft:hanging_roots", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6aGFuZ2luZ19yb290cw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5oYW5naW5nX3Jvb3RzAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 267, - "key": "minecraft:big_dripleaf", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxZtaW5lY3JhZnQ6YmlnX2RyaXBsZWFm", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC5iaWdfZHJpcGxlYWYA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 268, - "key": "minecraft:small_dripleaf", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxhtaW5lY3JhZnQ6c21hbGxfZHJpcGxlYWY=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC5zbWFsbF9kcmlwbGVhZgA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 269, - "key": "minecraft:bamboo", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxBtaW5lY3JhZnQ6YmFtYm9v", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFmJsb2NrLm1pbmVjcmFmdC5iYW1ib28A", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 270, - "key": "minecraft:oak_slab", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxJtaW5lY3JhZnQ6b2FrX3NsYWI=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGGJsb2NrLm1pbmVjcmFmdC5vYWtfc2xhYgA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 271, - "key": "minecraft:spruce_slab", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6c3BydWNlX3NsYWI=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5zcHJ1Y2Vfc2xhYgA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 272, - "key": "minecraft:birch_slab", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxRtaW5lY3JhZnQ6YmlyY2hfc2xhYg==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC5iaXJjaF9zbGFiAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 273, - "key": "minecraft:jungle_slab", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6anVuZ2xlX3NsYWI=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5qdW5nbGVfc2xhYgA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 274, - "key": "minecraft:acacia_slab", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6YWNhY2lhX3NsYWI=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5hY2FjaWFfc2xhYgA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 275, - "key": "minecraft:cherry_slab", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6Y2hlcnJ5X3NsYWI=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5jaGVycnlfc2xhYgA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 276, - "key": "minecraft:dark_oak_slab", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6ZGFya19vYWtfc2xhYg==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5kYXJrX29ha19zbGFiAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 277, - "key": "minecraft:pale_oak_slab", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6cGFsZV9vYWtfc2xhYg==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5wYWxlX29ha19zbGFiAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 278, - "key": "minecraft:mangrove_slab", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6bWFuZ3JvdmVfc2xhYg==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5tYW5ncm92ZV9zbGFiAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 279, - "key": "minecraft:bamboo_slab", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6YmFtYm9vX3NsYWI=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5iYW1ib29fc2xhYgA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 280, - "key": "minecraft:bamboo_mosaic_slab", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxxtaW5lY3JhZnQ6YmFtYm9vX21vc2FpY19zbGFi", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAImJsb2NrLm1pbmVjcmFmdC5iYW1ib29fbW9zYWljX3NsYWIA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 281, - "key": "minecraft:crimson_slab", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxZtaW5lY3JhZnQ6Y3JpbXNvbl9zbGFi", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC5jcmltc29uX3NsYWIA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 282, - "key": "minecraft:warped_slab", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6d2FycGVkX3NsYWI=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC53YXJwZWRfc2xhYgA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 283, - "key": "minecraft:stone_slab", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxRtaW5lY3JhZnQ6c3RvbmVfc2xhYg==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC5zdG9uZV9zbGFiAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 284, - "key": "minecraft:smooth_stone_slab", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxttaW5lY3JhZnQ6c21vb3RoX3N0b25lX3NsYWI=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWJsb2NrLm1pbmVjcmFmdC5zbW9vdGhfc3RvbmVfc2xhYgA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 285, - "key": "minecraft:sandstone_slab", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxhtaW5lY3JhZnQ6c2FuZHN0b25lX3NsYWI=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC5zYW5kc3RvbmVfc2xhYgA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 286, - "key": "minecraft:cut_sandstone_slab", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxxtaW5lY3JhZnQ6Y3V0X3NhbmRzdG9uZV9zbGFi", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAImJsb2NrLm1pbmVjcmFmdC5jdXRfc2FuZHN0b25lX3NsYWIA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 287, - "key": "minecraft:petrified_oak_slab", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxxtaW5lY3JhZnQ6cGV0cmlmaWVkX29ha19zbGFi", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAImJsb2NrLm1pbmVjcmFmdC5wZXRyaWZpZWRfb2FrX3NsYWIA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 288, - "key": "minecraft:cobblestone_slab", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxptaW5lY3JhZnQ6Y29iYmxlc3RvbmVfc2xhYg==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGJsb2NrLm1pbmVjcmFmdC5jb2JibGVzdG9uZV9zbGFiAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 289, - "key": "minecraft:brick_slab", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxRtaW5lY3JhZnQ6YnJpY2tfc2xhYg==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC5icmlja19zbGFiAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 290, - "key": "minecraft:stone_brick_slab", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxptaW5lY3JhZnQ6c3RvbmVfYnJpY2tfc2xhYg==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGJsb2NrLm1pbmVjcmFmdC5zdG9uZV9icmlja19zbGFiAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 291, - "key": "minecraft:mud_brick_slab", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxhtaW5lY3JhZnQ6bXVkX2JyaWNrX3NsYWI=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC5tdWRfYnJpY2tfc2xhYgA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 292, - "key": "minecraft:nether_brick_slab", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxttaW5lY3JhZnQ6bmV0aGVyX2JyaWNrX3NsYWI=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWJsb2NrLm1pbmVjcmFmdC5uZXRoZXJfYnJpY2tfc2xhYgA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 293, - "key": "minecraft:quartz_slab", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6cXVhcnR6X3NsYWI=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5xdWFydHpfc2xhYgA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 294, - "key": "minecraft:red_sandstone_slab", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxxtaW5lY3JhZnQ6cmVkX3NhbmRzdG9uZV9zbGFi", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAImJsb2NrLm1pbmVjcmFmdC5yZWRfc2FuZHN0b25lX3NsYWIA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 295, - "key": "minecraft:cut_red_sandstone_slab", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByBtaW5lY3JhZnQ6Y3V0X3JlZF9zYW5kc3RvbmVfc2xhYg==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJmJsb2NrLm1pbmVjcmFmdC5jdXRfcmVkX3NhbmRzdG9uZV9zbGFiAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 296, - "key": "minecraft:purpur_slab", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6cHVycHVyX3NsYWI=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5wdXJwdXJfc2xhYgA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 297, - "key": "minecraft:prismarine_slab", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxltaW5lY3JhZnQ6cHJpc21hcmluZV9zbGFi", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC5wcmlzbWFyaW5lX3NsYWIA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 298, - "key": "minecraft:prismarine_brick_slab", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx9taW5lY3JhZnQ6cHJpc21hcmluZV9icmlja19zbGFi", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWJsb2NrLm1pbmVjcmFmdC5wcmlzbWFyaW5lX2JyaWNrX3NsYWIA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 299, - "key": "minecraft:dark_prismarine_slab", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx5taW5lY3JhZnQ6ZGFya19wcmlzbWFyaW5lX3NsYWI=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJGJsb2NrLm1pbmVjcmFmdC5kYXJrX3ByaXNtYXJpbmVfc2xhYgA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 300, - "key": "minecraft:smooth_quartz", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6c21vb3RoX3F1YXJ0eg==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5zbW9vdGhfcXVhcnR6AA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 301, - "key": "minecraft:smooth_red_sandstone", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx5taW5lY3JhZnQ6c21vb3RoX3JlZF9zYW5kc3RvbmU=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJGJsb2NrLm1pbmVjcmFmdC5zbW9vdGhfcmVkX3NhbmRzdG9uZQA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 302, - "key": "minecraft:smooth_sandstone", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxptaW5lY3JhZnQ6c21vb3RoX3NhbmRzdG9uZQ==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGJsb2NrLm1pbmVjcmFmdC5zbW9vdGhfc2FuZHN0b25lAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 303, - "key": "minecraft:smooth_stone", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxZtaW5lY3JhZnQ6c21vb3RoX3N0b25l", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC5zbW9vdGhfc3RvbmUA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 304, - "key": "minecraft:bricks", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxBtaW5lY3JhZnQ6YnJpY2tz", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFmJsb2NrLm1pbmVjcmFmdC5icmlja3MA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 305, - "key": "minecraft:bookshelf", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxNtaW5lY3JhZnQ6Ym9va3NoZWxm", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGWJsb2NrLm1pbmVjcmFmdC5ib29rc2hlbGYA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 306, - "key": "minecraft:chiseled_bookshelf", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:container": "QgA=", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxxtaW5lY3JhZnQ6Y2hpc2VsZWRfYm9va3NoZWxm", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAImJsb2NrLm1pbmVjcmFmdC5jaGlzZWxlZF9ib29rc2hlbGYA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 307, - "key": "minecraft:decorated_pot", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:container": "QgA=", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6ZGVjb3JhdGVkX3BvdA==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5kZWNvcmF0ZWRfcG90AA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:pot_decorations": "QQTUB9QH1AfUBw==", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 308, - "key": "minecraft:mossy_cobblestone", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxttaW5lY3JhZnQ6bW9zc3lfY29iYmxlc3RvbmU=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWJsb2NrLm1pbmVjcmFmdC5tb3NzeV9jb2JibGVzdG9uZQA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 309, - "key": "minecraft:obsidian", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxJtaW5lY3JhZnQ6b2JzaWRpYW4=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGGJsb2NrLm1pbmVjcmFmdC5vYnNpZGlhbgA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 310, - "key": "minecraft:torch", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bw9taW5lY3JhZnQ6dG9yY2g=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFWJsb2NrLm1pbmVjcmFmdC50b3JjaAA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 311, - "key": "minecraft:end_rod", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxFtaW5lY3JhZnQ6ZW5kX3JvZA==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAF2Jsb2NrLm1pbmVjcmFmdC5lbmRfcm9kAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 312, - "key": "minecraft:chorus_plant", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxZtaW5lY3JhZnQ6Y2hvcnVzX3BsYW50", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC5jaG9ydXNfcGxhbnQA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 313, - "key": "minecraft:chorus_flower", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6Y2hvcnVzX2Zsb3dlcg==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5jaG9ydXNfZmxvd2VyAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 314, - "key": "minecraft:purpur_block", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxZtaW5lY3JhZnQ6cHVycHVyX2Jsb2Nr", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC5wdXJwdXJfYmxvY2sA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 315, - "key": "minecraft:purpur_pillar", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6cHVycHVyX3BpbGxhcg==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5wdXJwdXJfcGlsbGFyAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 316, - "key": "minecraft:purpur_stairs", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6cHVycHVyX3N0YWlycw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5wdXJwdXJfc3RhaXJzAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 317, - "key": "minecraft:spawner", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxFtaW5lY3JhZnQ6c3Bhd25lcg==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAF2Jsb2NrLm1pbmVjcmFmdC5zcGF3bmVyAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 318, - "key": "minecraft:creaking_heart", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxhtaW5lY3JhZnQ6Y3JlYWtpbmdfaGVhcnQ=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC5jcmVha2luZ19oZWFydAA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 319, - "key": "minecraft:chest", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:container": "QgA=", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bw9taW5lY3JhZnQ6Y2hlc3Q=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFWJsb2NrLm1pbmVjcmFmdC5jaGVzdAA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 320, - "key": "minecraft:crafting_table", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxhtaW5lY3JhZnQ6Y3JhZnRpbmdfdGFibGU=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC5jcmFmdGluZ190YWJsZQA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 321, - "key": "minecraft:farmland", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxJtaW5lY3JhZnQ6ZmFybWxhbmQ=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGGJsb2NrLm1pbmVjcmFmdC5mYXJtbGFuZAA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 322, - "key": "minecraft:furnace", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:container": "QgA=", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxFtaW5lY3JhZnQ6ZnVybmFjZQ==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAF2Jsb2NrLm1pbmVjcmFmdC5mdXJuYWNlAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 323, - "key": "minecraft:ladder", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxBtaW5lY3JhZnQ6bGFkZGVy", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFmJsb2NrLm1pbmVjcmFmdC5sYWRkZXIA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 324, - "key": "minecraft:cobblestone_stairs", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxxtaW5lY3JhZnQ6Y29iYmxlc3RvbmVfc3RhaXJz", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAImJsb2NrLm1pbmVjcmFmdC5jb2JibGVzdG9uZV9zdGFpcnMA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 325, - "key": "minecraft:snow", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bw5taW5lY3JhZnQ6c25vdw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFGJsb2NrLm1pbmVjcmFmdC5zbm93AA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 326, - "key": "minecraft:ice", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bw1taW5lY3JhZnQ6aWNl", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAE2Jsb2NrLm1pbmVjcmFmdC5pY2UA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 327, - "key": "minecraft:snow_block", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxRtaW5lY3JhZnQ6c25vd19ibG9jaw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC5zbm93X2Jsb2NrAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 328, - "key": "minecraft:cactus", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxBtaW5lY3JhZnQ6Y2FjdHVz", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFmJsb2NrLm1pbmVjcmFmdC5jYWN0dXMA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 329, - "key": "minecraft:cactus_flower", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6Y2FjdHVzX2Zsb3dlcg==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5jYWN0dXNfZmxvd2VyAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 330, - "key": "minecraft:clay", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bw5taW5lY3JhZnQ6Y2xheQ==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFGJsb2NrLm1pbmVjcmFmdC5jbGF5AA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 331, - "key": "minecraft:jukebox", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxFtaW5lY3JhZnQ6anVrZWJveA==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAF2Jsb2NrLm1pbmVjcmFmdC5qdWtlYm94AA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 332, - "key": "minecraft:oak_fence", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxNtaW5lY3JhZnQ6b2FrX2ZlbmNl", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGWJsb2NrLm1pbmVjcmFmdC5vYWtfZmVuY2UA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 333, - "key": "minecraft:spruce_fence", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxZtaW5lY3JhZnQ6c3BydWNlX2ZlbmNl", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC5zcHJ1Y2VfZmVuY2UA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 334, - "key": "minecraft:birch_fence", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6YmlyY2hfZmVuY2U=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5iaXJjaF9mZW5jZQA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 335, - "key": "minecraft:jungle_fence", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxZtaW5lY3JhZnQ6anVuZ2xlX2ZlbmNl", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC5qdW5nbGVfZmVuY2UA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 336, - "key": "minecraft:acacia_fence", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxZtaW5lY3JhZnQ6YWNhY2lhX2ZlbmNl", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC5hY2FjaWFfZmVuY2UA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 337, - "key": "minecraft:cherry_fence", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxZtaW5lY3JhZnQ6Y2hlcnJ5X2ZlbmNl", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC5jaGVycnlfZmVuY2UA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 338, - "key": "minecraft:dark_oak_fence", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxhtaW5lY3JhZnQ6ZGFya19vYWtfZmVuY2U=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC5kYXJrX29ha19mZW5jZQA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 339, - "key": "minecraft:pale_oak_fence", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxhtaW5lY3JhZnQ6cGFsZV9vYWtfZmVuY2U=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC5wYWxlX29ha19mZW5jZQA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 340, - "key": "minecraft:mangrove_fence", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxhtaW5lY3JhZnQ6bWFuZ3JvdmVfZmVuY2U=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC5tYW5ncm92ZV9mZW5jZQA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 341, - "key": "minecraft:bamboo_fence", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxZtaW5lY3JhZnQ6YmFtYm9vX2ZlbmNl", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC5iYW1ib29fZmVuY2UA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 342, - "key": "minecraft:crimson_fence", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6Y3JpbXNvbl9mZW5jZQ==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5jcmltc29uX2ZlbmNlAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 343, - "key": "minecraft:warped_fence", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxZtaW5lY3JhZnQ6d2FycGVkX2ZlbmNl", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC53YXJwZWRfZmVuY2UA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 344, - "key": "minecraft:pumpkin", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxFtaW5lY3JhZnQ6cHVtcGtpbg==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAF2Jsb2NrLm1pbmVjcmFmdC5wdW1wa2luAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 345, - "key": "minecraft:carved_pumpkin", - "components": { - "minecraft:attribute_modifiers": "DQEhJm1pbmVjcmFmdDp3YXlwb2ludF90cmFuc21pdF9yYW5nZV9oaWRlv/AAAAAAAAACBwE=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:equippable": "HARHAAEabWluZWNyYWZ0Om1pc2MvcHVtcGtpbmJsdXIAAQABAACSCg==", - "minecraft:item_model": "BxhtaW5lY3JhZnQ6Y2FydmVkX3B1bXBraW4=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC5jYXJ2ZWRfcHVtcGtpbgA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 346, - "key": "minecraft:jack_o_lantern", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxhtaW5lY3JhZnQ6amFja19vX2xhbnRlcm4=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC5qYWNrX29fbGFudGVybgA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 347, - "key": "minecraft:netherrack", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxRtaW5lY3JhZnQ6bmV0aGVycmFjaw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC5uZXRoZXJyYWNrAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 348, - "key": "minecraft:soul_sand", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxNtaW5lY3JhZnQ6c291bF9zYW5k", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGWJsb2NrLm1pbmVjcmFmdC5zb3VsX3NhbmQA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 349, - "key": "minecraft:soul_soil", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxNtaW5lY3JhZnQ6c291bF9zb2ls", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGWJsb2NrLm1pbmVjcmFmdC5zb3VsX3NvaWwA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 350, - "key": "minecraft:basalt", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxBtaW5lY3JhZnQ6YmFzYWx0", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFmJsb2NrLm1pbmVjcmFmdC5iYXNhbHQA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 351, - "key": "minecraft:polished_basalt", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxltaW5lY3JhZnQ6cG9saXNoZWRfYmFzYWx0", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC5wb2xpc2hlZF9iYXNhbHQA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 352, - "key": "minecraft:smooth_basalt", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6c21vb3RoX2Jhc2FsdA==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5zbW9vdGhfYmFzYWx0AA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 353, - "key": "minecraft:soul_torch", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxRtaW5lY3JhZnQ6c291bF90b3JjaA==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC5zb3VsX3RvcmNoAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 354, - "key": "minecraft:glowstone", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxNtaW5lY3JhZnQ6Z2xvd3N0b25l", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGWJsb2NrLm1pbmVjcmFmdC5nbG93c3RvbmUA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 355, - "key": "minecraft:infested_stone", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxhtaW5lY3JhZnQ6aW5mZXN0ZWRfc3RvbmU=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC5pbmZlc3RlZF9zdG9uZQA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 356, - "key": "minecraft:infested_cobblestone", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx5taW5lY3JhZnQ6aW5mZXN0ZWRfY29iYmxlc3RvbmU=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJGJsb2NrLm1pbmVjcmFmdC5pbmZlc3RlZF9jb2JibGVzdG9uZQA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 357, - "key": "minecraft:infested_stone_bricks", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx9taW5lY3JhZnQ6aW5mZXN0ZWRfc3RvbmVfYnJpY2tz", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWJsb2NrLm1pbmVjcmFmdC5pbmZlc3RlZF9zdG9uZV9icmlja3MA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 358, - "key": "minecraft:infested_mossy_stone_bricks", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByVtaW5lY3JhZnQ6aW5mZXN0ZWRfbW9zc3lfc3RvbmVfYnJpY2tz", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAK2Jsb2NrLm1pbmVjcmFmdC5pbmZlc3RlZF9tb3NzeV9zdG9uZV9icmlja3MA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 359, - "key": "minecraft:infested_cracked_stone_bricks", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BydtaW5lY3JhZnQ6aW5mZXN0ZWRfY3JhY2tlZF9zdG9uZV9icmlja3M=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUALWJsb2NrLm1pbmVjcmFmdC5pbmZlc3RlZF9jcmFja2VkX3N0b25lX2JyaWNrcwA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 360, - "key": "minecraft:infested_chiseled_stone_bricks", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByhtaW5lY3JhZnQ6aW5mZXN0ZWRfY2hpc2VsZWRfc3RvbmVfYnJpY2tz", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUALmJsb2NrLm1pbmVjcmFmdC5pbmZlc3RlZF9jaGlzZWxlZF9zdG9uZV9icmlja3MA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 361, - "key": "minecraft:infested_deepslate", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxxtaW5lY3JhZnQ6aW5mZXN0ZWRfZGVlcHNsYXRl", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAImJsb2NrLm1pbmVjcmFmdC5pbmZlc3RlZF9kZWVwc2xhdGUA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 362, - "key": "minecraft:stone_bricks", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxZtaW5lY3JhZnQ6c3RvbmVfYnJpY2tz", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC5zdG9uZV9icmlja3MA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 363, - "key": "minecraft:mossy_stone_bricks", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxxtaW5lY3JhZnQ6bW9zc3lfc3RvbmVfYnJpY2tz", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAImJsb2NrLm1pbmVjcmFmdC5tb3NzeV9zdG9uZV9icmlja3MA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 364, - "key": "minecraft:cracked_stone_bricks", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx5taW5lY3JhZnQ6Y3JhY2tlZF9zdG9uZV9icmlja3M=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJGJsb2NrLm1pbmVjcmFmdC5jcmFja2VkX3N0b25lX2JyaWNrcwA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 365, - "key": "minecraft:chiseled_stone_bricks", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx9taW5lY3JhZnQ6Y2hpc2VsZWRfc3RvbmVfYnJpY2tz", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWJsb2NrLm1pbmVjcmFmdC5jaGlzZWxlZF9zdG9uZV9icmlja3MA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 366, - "key": "minecraft:packed_mud", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxRtaW5lY3JhZnQ6cGFja2VkX211ZA==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC5wYWNrZWRfbXVkAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 367, - "key": "minecraft:mud_bricks", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxRtaW5lY3JhZnQ6bXVkX2JyaWNrcw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC5tdWRfYnJpY2tzAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 368, - "key": "minecraft:deepslate_bricks", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxptaW5lY3JhZnQ6ZGVlcHNsYXRlX2JyaWNrcw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGJsb2NrLm1pbmVjcmFmdC5kZWVwc2xhdGVfYnJpY2tzAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 369, - "key": "minecraft:cracked_deepslate_bricks", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByJtaW5lY3JhZnQ6Y3JhY2tlZF9kZWVwc2xhdGVfYnJpY2tz", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAKGJsb2NrLm1pbmVjcmFmdC5jcmFja2VkX2RlZXBzbGF0ZV9icmlja3MA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 370, - "key": "minecraft:deepslate_tiles", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxltaW5lY3JhZnQ6ZGVlcHNsYXRlX3RpbGVz", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC5kZWVwc2xhdGVfdGlsZXMA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 371, - "key": "minecraft:cracked_deepslate_tiles", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByFtaW5lY3JhZnQ6Y3JhY2tlZF9kZWVwc2xhdGVfdGlsZXM=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJ2Jsb2NrLm1pbmVjcmFmdC5jcmFja2VkX2RlZXBzbGF0ZV90aWxlcwA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 372, - "key": "minecraft:chiseled_deepslate", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxxtaW5lY3JhZnQ6Y2hpc2VsZWRfZGVlcHNsYXRl", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAImJsb2NrLm1pbmVjcmFmdC5jaGlzZWxlZF9kZWVwc2xhdGUA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 373, - "key": "minecraft:reinforced_deepslate", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx5taW5lY3JhZnQ6cmVpbmZvcmNlZF9kZWVwc2xhdGU=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJGJsb2NrLm1pbmVjcmFmdC5yZWluZm9yY2VkX2RlZXBzbGF0ZQA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 374, - "key": "minecraft:brown_mushroom_block", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx5taW5lY3JhZnQ6YnJvd25fbXVzaHJvb21fYmxvY2s=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJGJsb2NrLm1pbmVjcmFmdC5icm93bl9tdXNocm9vbV9ibG9jawA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 375, - "key": "minecraft:red_mushroom_block", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxxtaW5lY3JhZnQ6cmVkX211c2hyb29tX2Jsb2Nr", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAImJsb2NrLm1pbmVjcmFmdC5yZWRfbXVzaHJvb21fYmxvY2sA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 376, - "key": "minecraft:mushroom_stem", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6bXVzaHJvb21fc3RlbQ==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5tdXNocm9vbV9zdGVtAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 377, - "key": "minecraft:iron_bars", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxNtaW5lY3JhZnQ6aXJvbl9iYXJz", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGWJsb2NrLm1pbmVjcmFmdC5pcm9uX2JhcnMA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 378, - "key": "minecraft:chain", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bw9taW5lY3JhZnQ6Y2hhaW4=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFWJsb2NrLm1pbmVjcmFmdC5jaGFpbgA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 379, - "key": "minecraft:glass_pane", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxRtaW5lY3JhZnQ6Z2xhc3NfcGFuZQ==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC5nbGFzc19wYW5lAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 380, - "key": "minecraft:melon", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bw9taW5lY3JhZnQ6bWVsb24=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFWJsb2NrLm1pbmVjcmFmdC5tZWxvbgA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 381, - "key": "minecraft:vine", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bw5taW5lY3JhZnQ6dmluZQ==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFGJsb2NrLm1pbmVjcmFmdC52aW5lAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 382, - "key": "minecraft:glow_lichen", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6Z2xvd19saWNoZW4=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5nbG93X2xpY2hlbgA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 383, - "key": "minecraft:resin_clump", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6cmVzaW5fY2x1bXA=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGml0ZW0ubWluZWNyYWZ0LnJlc2luX2NsdW1wAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 384, - "key": "minecraft:resin_block", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6cmVzaW5fYmxvY2s=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5yZXNpbl9ibG9jawA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 385, - "key": "minecraft:resin_bricks", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxZtaW5lY3JhZnQ6cmVzaW5fYnJpY2tz", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC5yZXNpbl9icmlja3MA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 386, - "key": "minecraft:resin_brick_stairs", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxxtaW5lY3JhZnQ6cmVzaW5fYnJpY2tfc3RhaXJz", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAImJsb2NrLm1pbmVjcmFmdC5yZXNpbl9icmlja19zdGFpcnMA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 387, - "key": "minecraft:resin_brick_slab", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxptaW5lY3JhZnQ6cmVzaW5fYnJpY2tfc2xhYg==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGJsb2NrLm1pbmVjcmFmdC5yZXNpbl9icmlja19zbGFiAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 388, - "key": "minecraft:resin_brick_wall", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxptaW5lY3JhZnQ6cmVzaW5fYnJpY2tfd2FsbA==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGJsb2NrLm1pbmVjcmFmdC5yZXNpbl9icmlja193YWxsAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 389, - "key": "minecraft:chiseled_resin_bricks", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx9taW5lY3JhZnQ6Y2hpc2VsZWRfcmVzaW5fYnJpY2tz", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWJsb2NrLm1pbmVjcmFmdC5jaGlzZWxlZF9yZXNpbl9icmlja3MA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 390, - "key": "minecraft:brick_stairs", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxZtaW5lY3JhZnQ6YnJpY2tfc3RhaXJz", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC5icmlja19zdGFpcnMA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 391, - "key": "minecraft:stone_brick_stairs", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxxtaW5lY3JhZnQ6c3RvbmVfYnJpY2tfc3RhaXJz", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAImJsb2NrLm1pbmVjcmFmdC5zdG9uZV9icmlja19zdGFpcnMA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 392, - "key": "minecraft:mud_brick_stairs", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxptaW5lY3JhZnQ6bXVkX2JyaWNrX3N0YWlycw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGJsb2NrLm1pbmVjcmFmdC5tdWRfYnJpY2tfc3RhaXJzAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 393, - "key": "minecraft:mycelium", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxJtaW5lY3JhZnQ6bXljZWxpdW0=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGGJsb2NrLm1pbmVjcmFmdC5teWNlbGl1bQA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 394, - "key": "minecraft:lily_pad", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxJtaW5lY3JhZnQ6bGlseV9wYWQ=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGGJsb2NrLm1pbmVjcmFmdC5saWx5X3BhZAA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 395, - "key": "minecraft:nether_bricks", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6bmV0aGVyX2JyaWNrcw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5uZXRoZXJfYnJpY2tzAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 396, - "key": "minecraft:cracked_nether_bricks", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx9taW5lY3JhZnQ6Y3JhY2tlZF9uZXRoZXJfYnJpY2tz", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWJsb2NrLm1pbmVjcmFmdC5jcmFja2VkX25ldGhlcl9icmlja3MA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 397, - "key": "minecraft:chiseled_nether_bricks", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByBtaW5lY3JhZnQ6Y2hpc2VsZWRfbmV0aGVyX2JyaWNrcw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJmJsb2NrLm1pbmVjcmFmdC5jaGlzZWxlZF9uZXRoZXJfYnJpY2tzAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 398, - "key": "minecraft:nether_brick_fence", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxxtaW5lY3JhZnQ6bmV0aGVyX2JyaWNrX2ZlbmNl", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAImJsb2NrLm1pbmVjcmFmdC5uZXRoZXJfYnJpY2tfZmVuY2UA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 399, - "key": "minecraft:nether_brick_stairs", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx1taW5lY3JhZnQ6bmV0aGVyX2JyaWNrX3N0YWlycw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2Jsb2NrLm1pbmVjcmFmdC5uZXRoZXJfYnJpY2tfc3RhaXJzAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 400, - "key": "minecraft:sculk", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bw9taW5lY3JhZnQ6c2N1bGs=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFWJsb2NrLm1pbmVjcmFmdC5zY3VsawA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 401, - "key": "minecraft:sculk_vein", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxRtaW5lY3JhZnQ6c2N1bGtfdmVpbg==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC5zY3Vsa192ZWluAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 402, - "key": "minecraft:sculk_catalyst", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxhtaW5lY3JhZnQ6c2N1bGtfY2F0YWx5c3Q=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC5zY3Vsa19jYXRhbHlzdAA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 403, - "key": "minecraft:sculk_shrieker", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxhtaW5lY3JhZnQ6c2N1bGtfc2hyaWVrZXI=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC5zY3Vsa19zaHJpZWtlcgA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 404, - "key": "minecraft:enchanting_table", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxptaW5lY3JhZnQ6ZW5jaGFudGluZ190YWJsZQ==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGJsb2NrLm1pbmVjcmFmdC5lbmNoYW50aW5nX3RhYmxlAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 405, - "key": "minecraft:end_portal_frame", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxptaW5lY3JhZnQ6ZW5kX3BvcnRhbF9mcmFtZQ==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGJsb2NrLm1pbmVjcmFmdC5lbmRfcG9ydGFsX2ZyYW1lAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 406, - "key": "minecraft:end_stone", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxNtaW5lY3JhZnQ6ZW5kX3N0b25l", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGWJsb2NrLm1pbmVjcmFmdC5lbmRfc3RvbmUA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 407, - "key": "minecraft:end_stone_bricks", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxptaW5lY3JhZnQ6ZW5kX3N0b25lX2JyaWNrcw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGJsb2NrLm1pbmVjcmFmdC5lbmRfc3RvbmVfYnJpY2tzAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 408, - "key": "minecraft:dragon_egg", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxRtaW5lY3JhZnQ6ZHJhZ29uX2VnZw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC5kcmFnb25fZWdnAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQM=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 409, - "key": "minecraft:sandstone_stairs", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxptaW5lY3JhZnQ6c2FuZHN0b25lX3N0YWlycw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGJsb2NrLm1pbmVjcmFmdC5zYW5kc3RvbmVfc3RhaXJzAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 410, - "key": "minecraft:ender_chest", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6ZW5kZXJfY2hlc3Q=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5lbmRlcl9jaGVzdAA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 411, - "key": "minecraft:emerald_block", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6ZW1lcmFsZF9ibG9jaw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5lbWVyYWxkX2Jsb2NrAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 412, - "key": "minecraft:oak_stairs", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxRtaW5lY3JhZnQ6b2FrX3N0YWlycw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC5vYWtfc3RhaXJzAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 413, - "key": "minecraft:spruce_stairs", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6c3BydWNlX3N0YWlycw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5zcHJ1Y2Vfc3RhaXJzAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 414, - "key": "minecraft:birch_stairs", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxZtaW5lY3JhZnQ6YmlyY2hfc3RhaXJz", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC5iaXJjaF9zdGFpcnMA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 415, - "key": "minecraft:jungle_stairs", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6anVuZ2xlX3N0YWlycw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5qdW5nbGVfc3RhaXJzAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 416, - "key": "minecraft:acacia_stairs", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6YWNhY2lhX3N0YWlycw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5hY2FjaWFfc3RhaXJzAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 417, - "key": "minecraft:cherry_stairs", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6Y2hlcnJ5X3N0YWlycw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5jaGVycnlfc3RhaXJzAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 418, - "key": "minecraft:dark_oak_stairs", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxltaW5lY3JhZnQ6ZGFya19vYWtfc3RhaXJz", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC5kYXJrX29ha19zdGFpcnMA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 419, - "key": "minecraft:pale_oak_stairs", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxltaW5lY3JhZnQ6cGFsZV9vYWtfc3RhaXJz", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC5wYWxlX29ha19zdGFpcnMA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 420, - "key": "minecraft:mangrove_stairs", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxltaW5lY3JhZnQ6bWFuZ3JvdmVfc3RhaXJz", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC5tYW5ncm92ZV9zdGFpcnMA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 421, - "key": "minecraft:bamboo_stairs", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6YmFtYm9vX3N0YWlycw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5iYW1ib29fc3RhaXJzAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 422, - "key": "minecraft:bamboo_mosaic_stairs", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx5taW5lY3JhZnQ6YmFtYm9vX21vc2FpY19zdGFpcnM=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJGJsb2NrLm1pbmVjcmFmdC5iYW1ib29fbW9zYWljX3N0YWlycwA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 423, - "key": "minecraft:crimson_stairs", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxhtaW5lY3JhZnQ6Y3JpbXNvbl9zdGFpcnM=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC5jcmltc29uX3N0YWlycwA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 424, - "key": "minecraft:warped_stairs", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6d2FycGVkX3N0YWlycw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC53YXJwZWRfc3RhaXJzAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 425, - "key": "minecraft:command_block", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6Y29tbWFuZF9ibG9jaw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5jb21tYW5kX2Jsb2NrAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQM=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 426, - "key": "minecraft:beacon", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxBtaW5lY3JhZnQ6YmVhY29u", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFmJsb2NrLm1pbmVjcmFmdC5iZWFjb24A", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQI=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 427, - "key": "minecraft:cobblestone_wall", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxptaW5lY3JhZnQ6Y29iYmxlc3RvbmVfd2FsbA==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGJsb2NrLm1pbmVjcmFmdC5jb2JibGVzdG9uZV93YWxsAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 428, - "key": "minecraft:mossy_cobblestone_wall", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByBtaW5lY3JhZnQ6bW9zc3lfY29iYmxlc3RvbmVfd2FsbA==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJmJsb2NrLm1pbmVjcmFmdC5tb3NzeV9jb2JibGVzdG9uZV93YWxsAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 429, - "key": "minecraft:brick_wall", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxRtaW5lY3JhZnQ6YnJpY2tfd2FsbA==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC5icmlja193YWxsAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 430, - "key": "minecraft:prismarine_wall", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxltaW5lY3JhZnQ6cHJpc21hcmluZV93YWxs", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC5wcmlzbWFyaW5lX3dhbGwA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 431, - "key": "minecraft:red_sandstone_wall", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxxtaW5lY3JhZnQ6cmVkX3NhbmRzdG9uZV93YWxs", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAImJsb2NrLm1pbmVjcmFmdC5yZWRfc2FuZHN0b25lX3dhbGwA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 432, - "key": "minecraft:mossy_stone_brick_wall", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByBtaW5lY3JhZnQ6bW9zc3lfc3RvbmVfYnJpY2tfd2FsbA==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJmJsb2NrLm1pbmVjcmFmdC5tb3NzeV9zdG9uZV9icmlja193YWxsAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 433, - "key": "minecraft:granite_wall", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxZtaW5lY3JhZnQ6Z3Jhbml0ZV93YWxs", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC5ncmFuaXRlX3dhbGwA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 434, - "key": "minecraft:stone_brick_wall", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxptaW5lY3JhZnQ6c3RvbmVfYnJpY2tfd2FsbA==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGJsb2NrLm1pbmVjcmFmdC5zdG9uZV9icmlja193YWxsAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 435, - "key": "minecraft:mud_brick_wall", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxhtaW5lY3JhZnQ6bXVkX2JyaWNrX3dhbGw=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC5tdWRfYnJpY2tfd2FsbAA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 436, - "key": "minecraft:nether_brick_wall", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxttaW5lY3JhZnQ6bmV0aGVyX2JyaWNrX3dhbGw=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWJsb2NrLm1pbmVjcmFmdC5uZXRoZXJfYnJpY2tfd2FsbAA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 437, - "key": "minecraft:andesite_wall", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6YW5kZXNpdGVfd2FsbA==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5hbmRlc2l0ZV93YWxsAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 438, - "key": "minecraft:red_nether_brick_wall", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx9taW5lY3JhZnQ6cmVkX25ldGhlcl9icmlja193YWxs", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWJsb2NrLm1pbmVjcmFmdC5yZWRfbmV0aGVyX2JyaWNrX3dhbGwA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 439, - "key": "minecraft:sandstone_wall", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxhtaW5lY3JhZnQ6c2FuZHN0b25lX3dhbGw=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC5zYW5kc3RvbmVfd2FsbAA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 440, - "key": "minecraft:end_stone_brick_wall", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx5taW5lY3JhZnQ6ZW5kX3N0b25lX2JyaWNrX3dhbGw=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJGJsb2NrLm1pbmVjcmFmdC5lbmRfc3RvbmVfYnJpY2tfd2FsbAA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 441, - "key": "minecraft:diorite_wall", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxZtaW5lY3JhZnQ6ZGlvcml0ZV93YWxs", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC5kaW9yaXRlX3dhbGwA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 442, - "key": "minecraft:blackstone_wall", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxltaW5lY3JhZnQ6YmxhY2tzdG9uZV93YWxs", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC5ibGFja3N0b25lX3dhbGwA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 443, - "key": "minecraft:polished_blackstone_wall", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByJtaW5lY3JhZnQ6cG9saXNoZWRfYmxhY2tzdG9uZV93YWxs", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAKGJsb2NrLm1pbmVjcmFmdC5wb2xpc2hlZF9ibGFja3N0b25lX3dhbGwA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 444, - "key": "minecraft:polished_blackstone_brick_wall", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByhtaW5lY3JhZnQ6cG9saXNoZWRfYmxhY2tzdG9uZV9icmlja193YWxs", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUALmJsb2NrLm1pbmVjcmFmdC5wb2xpc2hlZF9ibGFja3N0b25lX2JyaWNrX3dhbGwA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 445, - "key": "minecraft:cobbled_deepslate_wall", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByBtaW5lY3JhZnQ6Y29iYmxlZF9kZWVwc2xhdGVfd2FsbA==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJmJsb2NrLm1pbmVjcmFmdC5jb2JibGVkX2RlZXBzbGF0ZV93YWxsAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 446, - "key": "minecraft:polished_deepslate_wall", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByFtaW5lY3JhZnQ6cG9saXNoZWRfZGVlcHNsYXRlX3dhbGw=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJ2Jsb2NrLm1pbmVjcmFmdC5wb2xpc2hlZF9kZWVwc2xhdGVfd2FsbAA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 447, - "key": "minecraft:deepslate_brick_wall", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx5taW5lY3JhZnQ6ZGVlcHNsYXRlX2JyaWNrX3dhbGw=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJGJsb2NrLm1pbmVjcmFmdC5kZWVwc2xhdGVfYnJpY2tfd2FsbAA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 448, - "key": "minecraft:deepslate_tile_wall", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx1taW5lY3JhZnQ6ZGVlcHNsYXRlX3RpbGVfd2FsbA==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2Jsb2NrLm1pbmVjcmFmdC5kZWVwc2xhdGVfdGlsZV93YWxsAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 449, - "key": "minecraft:anvil", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bw9taW5lY3JhZnQ6YW52aWw=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFWJsb2NrLm1pbmVjcmFmdC5hbnZpbAA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 450, - "key": "minecraft:chipped_anvil", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6Y2hpcHBlZF9hbnZpbA==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5jaGlwcGVkX2FudmlsAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 451, - "key": "minecraft:damaged_anvil", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6ZGFtYWdlZF9hbnZpbA==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5kYW1hZ2VkX2FudmlsAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 452, - "key": "minecraft:chiseled_quartz_block", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx9taW5lY3JhZnQ6Y2hpc2VsZWRfcXVhcnR6X2Jsb2Nr", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWJsb2NrLm1pbmVjcmFmdC5jaGlzZWxlZF9xdWFydHpfYmxvY2sA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 453, - "key": "minecraft:quartz_block", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxZtaW5lY3JhZnQ6cXVhcnR6X2Jsb2Nr", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC5xdWFydHpfYmxvY2sA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 454, - "key": "minecraft:quartz_bricks", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6cXVhcnR6X2JyaWNrcw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5xdWFydHpfYnJpY2tzAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 455, - "key": "minecraft:quartz_pillar", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6cXVhcnR6X3BpbGxhcg==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5xdWFydHpfcGlsbGFyAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 456, - "key": "minecraft:quartz_stairs", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6cXVhcnR6X3N0YWlycw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5xdWFydHpfc3RhaXJzAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 457, - "key": "minecraft:white_terracotta", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxptaW5lY3JhZnQ6d2hpdGVfdGVycmFjb3R0YQ==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGJsb2NrLm1pbmVjcmFmdC53aGl0ZV90ZXJyYWNvdHRhAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 458, - "key": "minecraft:orange_terracotta", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxttaW5lY3JhZnQ6b3JhbmdlX3RlcnJhY290dGE=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWJsb2NrLm1pbmVjcmFmdC5vcmFuZ2VfdGVycmFjb3R0YQA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 459, - "key": "minecraft:magenta_terracotta", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxxtaW5lY3JhZnQ6bWFnZW50YV90ZXJyYWNvdHRh", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAImJsb2NrLm1pbmVjcmFmdC5tYWdlbnRhX3RlcnJhY290dGEA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 460, - "key": "minecraft:light_blue_terracotta", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx9taW5lY3JhZnQ6bGlnaHRfYmx1ZV90ZXJyYWNvdHRh", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWJsb2NrLm1pbmVjcmFmdC5saWdodF9ibHVlX3RlcnJhY290dGEA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 461, - "key": "minecraft:yellow_terracotta", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxttaW5lY3JhZnQ6eWVsbG93X3RlcnJhY290dGE=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWJsb2NrLm1pbmVjcmFmdC55ZWxsb3dfdGVycmFjb3R0YQA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 462, - "key": "minecraft:lime_terracotta", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxltaW5lY3JhZnQ6bGltZV90ZXJyYWNvdHRh", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC5saW1lX3RlcnJhY290dGEA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 463, - "key": "minecraft:pink_terracotta", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxltaW5lY3JhZnQ6cGlua190ZXJyYWNvdHRh", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC5waW5rX3RlcnJhY290dGEA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 464, - "key": "minecraft:gray_terracotta", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxltaW5lY3JhZnQ6Z3JheV90ZXJyYWNvdHRh", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC5ncmF5X3RlcnJhY290dGEA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 465, - "key": "minecraft:light_gray_terracotta", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx9taW5lY3JhZnQ6bGlnaHRfZ3JheV90ZXJyYWNvdHRh", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWJsb2NrLm1pbmVjcmFmdC5saWdodF9ncmF5X3RlcnJhY290dGEA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 466, - "key": "minecraft:cyan_terracotta", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxltaW5lY3JhZnQ6Y3lhbl90ZXJyYWNvdHRh", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC5jeWFuX3RlcnJhY290dGEA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 467, - "key": "minecraft:purple_terracotta", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxttaW5lY3JhZnQ6cHVycGxlX3RlcnJhY290dGE=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWJsb2NrLm1pbmVjcmFmdC5wdXJwbGVfdGVycmFjb3R0YQA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 468, - "key": "minecraft:blue_terracotta", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxltaW5lY3JhZnQ6Ymx1ZV90ZXJyYWNvdHRh", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC5ibHVlX3RlcnJhY290dGEA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 469, - "key": "minecraft:brown_terracotta", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxptaW5lY3JhZnQ6YnJvd25fdGVycmFjb3R0YQ==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGJsb2NrLm1pbmVjcmFmdC5icm93bl90ZXJyYWNvdHRhAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 470, - "key": "minecraft:green_terracotta", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxptaW5lY3JhZnQ6Z3JlZW5fdGVycmFjb3R0YQ==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGJsb2NrLm1pbmVjcmFmdC5ncmVlbl90ZXJyYWNvdHRhAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 471, - "key": "minecraft:red_terracotta", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxhtaW5lY3JhZnQ6cmVkX3RlcnJhY290dGE=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC5yZWRfdGVycmFjb3R0YQA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 472, - "key": "minecraft:black_terracotta", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxptaW5lY3JhZnQ6YmxhY2tfdGVycmFjb3R0YQ==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGJsb2NrLm1pbmVjcmFmdC5ibGFja190ZXJyYWNvdHRhAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 473, - "key": "minecraft:barrier", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxFtaW5lY3JhZnQ6YmFycmllcg==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAF2Jsb2NrLm1pbmVjcmFmdC5iYXJyaWVyAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQM=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 474, - "key": "minecraft:light", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:block_state": "QwEFbGV2ZWwCMTU=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bw9taW5lY3JhZnQ6bGlnaHQ=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFWJsb2NrLm1pbmVjcmFmdC5saWdodAA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQM=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 475, - "key": "minecraft:hay_block", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxNtaW5lY3JhZnQ6aGF5X2Jsb2Nr", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGWJsb2NrLm1pbmVjcmFmdC5oYXlfYmxvY2sA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 476, - "key": "minecraft:white_carpet", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:equippable": "HAbWBgEWbWluZWNyYWZ0OndoaXRlX2NhcnBldAABA0yBAQEBAQAB1wY=", - "minecraft:item_model": "BxZtaW5lY3JhZnQ6d2hpdGVfY2FycGV0", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC53aGl0ZV9jYXJwZXQA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 477, - "key": "minecraft:orange_carpet", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:equippable": "HAbWBgEXbWluZWNyYWZ0Om9yYW5nZV9jYXJwZXQAAQNMgQEBAQEAAdcG", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6b3JhbmdlX2NhcnBldA==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5vcmFuZ2VfY2FycGV0AA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 478, - "key": "minecraft:magenta_carpet", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:equippable": "HAbWBgEYbWluZWNyYWZ0Om1hZ2VudGFfY2FycGV0AAEDTIEBAQEBAAHXBg==", - "minecraft:item_model": "BxhtaW5lY3JhZnQ6bWFnZW50YV9jYXJwZXQ=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC5tYWdlbnRhX2NhcnBldAA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 479, - "key": "minecraft:light_blue_carpet", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:equippable": "HAbWBgEbbWluZWNyYWZ0OmxpZ2h0X2JsdWVfY2FycGV0AAEDTIEBAQEBAAHXBg==", - "minecraft:item_model": "BxttaW5lY3JhZnQ6bGlnaHRfYmx1ZV9jYXJwZXQ=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWJsb2NrLm1pbmVjcmFmdC5saWdodF9ibHVlX2NhcnBldAA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 480, - "key": "minecraft:yellow_carpet", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:equippable": "HAbWBgEXbWluZWNyYWZ0OnllbGxvd19jYXJwZXQAAQNMgQEBAQEAAdcG", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6eWVsbG93X2NhcnBldA==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC55ZWxsb3dfY2FycGV0AA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 481, - "key": "minecraft:lime_carpet", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:equippable": "HAbWBgEVbWluZWNyYWZ0OmxpbWVfY2FycGV0AAEDTIEBAQEBAAHXBg==", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6bGltZV9jYXJwZXQ=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5saW1lX2NhcnBldAA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 482, - "key": "minecraft:pink_carpet", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:equippable": "HAbWBgEVbWluZWNyYWZ0OnBpbmtfY2FycGV0AAEDTIEBAQEBAAHXBg==", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6cGlua19jYXJwZXQ=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5waW5rX2NhcnBldAA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 483, - "key": "minecraft:gray_carpet", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:equippable": "HAbWBgEVbWluZWNyYWZ0OmdyYXlfY2FycGV0AAEDTIEBAQEBAAHXBg==", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6Z3JheV9jYXJwZXQ=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5ncmF5X2NhcnBldAA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 484, - "key": "minecraft:light_gray_carpet", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:equippable": "HAbWBgEbbWluZWNyYWZ0OmxpZ2h0X2dyYXlfY2FycGV0AAEDTIEBAQEBAAHXBg==", - "minecraft:item_model": "BxttaW5lY3JhZnQ6bGlnaHRfZ3JheV9jYXJwZXQ=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWJsb2NrLm1pbmVjcmFmdC5saWdodF9ncmF5X2NhcnBldAA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 485, - "key": "minecraft:cyan_carpet", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:equippable": "HAbWBgEVbWluZWNyYWZ0OmN5YW5fY2FycGV0AAEDTIEBAQEBAAHXBg==", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6Y3lhbl9jYXJwZXQ=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5jeWFuX2NhcnBldAA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 486, - "key": "minecraft:purple_carpet", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:equippable": "HAbWBgEXbWluZWNyYWZ0OnB1cnBsZV9jYXJwZXQAAQNMgQEBAQEAAdcG", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6cHVycGxlX2NhcnBldA==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5wdXJwbGVfY2FycGV0AA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 487, - "key": "minecraft:blue_carpet", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:equippable": "HAbWBgEVbWluZWNyYWZ0OmJsdWVfY2FycGV0AAEDTIEBAQEBAAHXBg==", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6Ymx1ZV9jYXJwZXQ=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5ibHVlX2NhcnBldAA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 488, - "key": "minecraft:brown_carpet", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:equippable": "HAbWBgEWbWluZWNyYWZ0OmJyb3duX2NhcnBldAABA0yBAQEBAQAB1wY=", - "minecraft:item_model": "BxZtaW5lY3JhZnQ6YnJvd25fY2FycGV0", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC5icm93bl9jYXJwZXQA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 489, - "key": "minecraft:green_carpet", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:equippable": "HAbWBgEWbWluZWNyYWZ0OmdyZWVuX2NhcnBldAABA0yBAQEBAQAB1wY=", - "minecraft:item_model": "BxZtaW5lY3JhZnQ6Z3JlZW5fY2FycGV0", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC5ncmVlbl9jYXJwZXQA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 490, - "key": "minecraft:red_carpet", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:equippable": "HAbWBgEUbWluZWNyYWZ0OnJlZF9jYXJwZXQAAQNMgQEBAQEAAdcG", - "minecraft:item_model": "BxRtaW5lY3JhZnQ6cmVkX2NhcnBldA==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC5yZWRfY2FycGV0AA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 491, - "key": "minecraft:black_carpet", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:equippable": "HAbWBgEWbWluZWNyYWZ0OmJsYWNrX2NhcnBldAABA0yBAQEBAQAB1wY=", - "minecraft:item_model": "BxZtaW5lY3JhZnQ6YmxhY2tfY2FycGV0", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC5ibGFja19jYXJwZXQA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 492, - "key": "minecraft:terracotta", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxRtaW5lY3JhZnQ6dGVycmFjb3R0YQ==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC50ZXJyYWNvdHRhAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 493, - "key": "minecraft:packed_ice", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxRtaW5lY3JhZnQ6cGFja2VkX2ljZQ==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC5wYWNrZWRfaWNlAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 494, - "key": "minecraft:dirt_path", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxNtaW5lY3JhZnQ6ZGlydF9wYXRo", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGWJsb2NrLm1pbmVjcmFmdC5kaXJ0X3BhdGgA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 495, - "key": "minecraft:sunflower", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxNtaW5lY3JhZnQ6c3VuZmxvd2Vy", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGWJsb2NrLm1pbmVjcmFmdC5zdW5mbG93ZXIA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 496, - "key": "minecraft:lilac", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bw9taW5lY3JhZnQ6bGlsYWM=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFWJsb2NrLm1pbmVjcmFmdC5saWxhYwA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 497, - "key": "minecraft:rose_bush", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxNtaW5lY3JhZnQ6cm9zZV9idXNo", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGWJsb2NrLm1pbmVjcmFmdC5yb3NlX2J1c2gA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 498, - "key": "minecraft:peony", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bw9taW5lY3JhZnQ6cGVvbnk=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFWJsb2NrLm1pbmVjcmFmdC5wZW9ueQA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 499, - "key": "minecraft:tall_grass", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxRtaW5lY3JhZnQ6dGFsbF9ncmFzcw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC50YWxsX2dyYXNzAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 500, - "key": "minecraft:large_fern", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxRtaW5lY3JhZnQ6bGFyZ2VfZmVybg==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC5sYXJnZV9mZXJuAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 501, - "key": "minecraft:white_stained_glass", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx1taW5lY3JhZnQ6d2hpdGVfc3RhaW5lZF9nbGFzcw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2Jsb2NrLm1pbmVjcmFmdC53aGl0ZV9zdGFpbmVkX2dsYXNzAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 502, - "key": "minecraft:orange_stained_glass", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx5taW5lY3JhZnQ6b3JhbmdlX3N0YWluZWRfZ2xhc3M=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJGJsb2NrLm1pbmVjcmFmdC5vcmFuZ2Vfc3RhaW5lZF9nbGFzcwA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 503, - "key": "minecraft:magenta_stained_glass", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx9taW5lY3JhZnQ6bWFnZW50YV9zdGFpbmVkX2dsYXNz", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWJsb2NrLm1pbmVjcmFmdC5tYWdlbnRhX3N0YWluZWRfZ2xhc3MA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 504, - "key": "minecraft:light_blue_stained_glass", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByJtaW5lY3JhZnQ6bGlnaHRfYmx1ZV9zdGFpbmVkX2dsYXNz", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAKGJsb2NrLm1pbmVjcmFmdC5saWdodF9ibHVlX3N0YWluZWRfZ2xhc3MA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 505, - "key": "minecraft:yellow_stained_glass", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx5taW5lY3JhZnQ6eWVsbG93X3N0YWluZWRfZ2xhc3M=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJGJsb2NrLm1pbmVjcmFmdC55ZWxsb3dfc3RhaW5lZF9nbGFzcwA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 506, - "key": "minecraft:lime_stained_glass", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxxtaW5lY3JhZnQ6bGltZV9zdGFpbmVkX2dsYXNz", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAImJsb2NrLm1pbmVjcmFmdC5saW1lX3N0YWluZWRfZ2xhc3MA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 507, - "key": "minecraft:pink_stained_glass", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxxtaW5lY3JhZnQ6cGlua19zdGFpbmVkX2dsYXNz", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAImJsb2NrLm1pbmVjcmFmdC5waW5rX3N0YWluZWRfZ2xhc3MA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 508, - "key": "minecraft:gray_stained_glass", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxxtaW5lY3JhZnQ6Z3JheV9zdGFpbmVkX2dsYXNz", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAImJsb2NrLm1pbmVjcmFmdC5ncmF5X3N0YWluZWRfZ2xhc3MA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 509, - "key": "minecraft:light_gray_stained_glass", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByJtaW5lY3JhZnQ6bGlnaHRfZ3JheV9zdGFpbmVkX2dsYXNz", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAKGJsb2NrLm1pbmVjcmFmdC5saWdodF9ncmF5X3N0YWluZWRfZ2xhc3MA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 510, - "key": "minecraft:cyan_stained_glass", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxxtaW5lY3JhZnQ6Y3lhbl9zdGFpbmVkX2dsYXNz", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAImJsb2NrLm1pbmVjcmFmdC5jeWFuX3N0YWluZWRfZ2xhc3MA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 511, - "key": "minecraft:purple_stained_glass", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx5taW5lY3JhZnQ6cHVycGxlX3N0YWluZWRfZ2xhc3M=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJGJsb2NrLm1pbmVjcmFmdC5wdXJwbGVfc3RhaW5lZF9nbGFzcwA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 512, - "key": "minecraft:blue_stained_glass", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxxtaW5lY3JhZnQ6Ymx1ZV9zdGFpbmVkX2dsYXNz", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAImJsb2NrLm1pbmVjcmFmdC5ibHVlX3N0YWluZWRfZ2xhc3MA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 513, - "key": "minecraft:brown_stained_glass", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx1taW5lY3JhZnQ6YnJvd25fc3RhaW5lZF9nbGFzcw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2Jsb2NrLm1pbmVjcmFmdC5icm93bl9zdGFpbmVkX2dsYXNzAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 514, - "key": "minecraft:green_stained_glass", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx1taW5lY3JhZnQ6Z3JlZW5fc3RhaW5lZF9nbGFzcw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2Jsb2NrLm1pbmVjcmFmdC5ncmVlbl9zdGFpbmVkX2dsYXNzAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 515, - "key": "minecraft:red_stained_glass", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxttaW5lY3JhZnQ6cmVkX3N0YWluZWRfZ2xhc3M=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWJsb2NrLm1pbmVjcmFmdC5yZWRfc3RhaW5lZF9nbGFzcwA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 516, - "key": "minecraft:black_stained_glass", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx1taW5lY3JhZnQ6YmxhY2tfc3RhaW5lZF9nbGFzcw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2Jsb2NrLm1pbmVjcmFmdC5ibGFja19zdGFpbmVkX2dsYXNzAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 517, - "key": "minecraft:white_stained_glass_pane", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByJtaW5lY3JhZnQ6d2hpdGVfc3RhaW5lZF9nbGFzc19wYW5l", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAKGJsb2NrLm1pbmVjcmFmdC53aGl0ZV9zdGFpbmVkX2dsYXNzX3BhbmUA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 518, - "key": "minecraft:orange_stained_glass_pane", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByNtaW5lY3JhZnQ6b3JhbmdlX3N0YWluZWRfZ2xhc3NfcGFuZQ==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAKWJsb2NrLm1pbmVjcmFmdC5vcmFuZ2Vfc3RhaW5lZF9nbGFzc19wYW5lAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 519, - "key": "minecraft:magenta_stained_glass_pane", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByRtaW5lY3JhZnQ6bWFnZW50YV9zdGFpbmVkX2dsYXNzX3BhbmU=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAKmJsb2NrLm1pbmVjcmFmdC5tYWdlbnRhX3N0YWluZWRfZ2xhc3NfcGFuZQA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 520, - "key": "minecraft:light_blue_stained_glass_pane", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BydtaW5lY3JhZnQ6bGlnaHRfYmx1ZV9zdGFpbmVkX2dsYXNzX3BhbmU=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUALWJsb2NrLm1pbmVjcmFmdC5saWdodF9ibHVlX3N0YWluZWRfZ2xhc3NfcGFuZQA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 521, - "key": "minecraft:yellow_stained_glass_pane", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByNtaW5lY3JhZnQ6eWVsbG93X3N0YWluZWRfZ2xhc3NfcGFuZQ==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAKWJsb2NrLm1pbmVjcmFmdC55ZWxsb3dfc3RhaW5lZF9nbGFzc19wYW5lAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 522, - "key": "minecraft:lime_stained_glass_pane", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByFtaW5lY3JhZnQ6bGltZV9zdGFpbmVkX2dsYXNzX3BhbmU=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJ2Jsb2NrLm1pbmVjcmFmdC5saW1lX3N0YWluZWRfZ2xhc3NfcGFuZQA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 523, - "key": "minecraft:pink_stained_glass_pane", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByFtaW5lY3JhZnQ6cGlua19zdGFpbmVkX2dsYXNzX3BhbmU=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJ2Jsb2NrLm1pbmVjcmFmdC5waW5rX3N0YWluZWRfZ2xhc3NfcGFuZQA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 524, - "key": "minecraft:gray_stained_glass_pane", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByFtaW5lY3JhZnQ6Z3JheV9zdGFpbmVkX2dsYXNzX3BhbmU=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJ2Jsb2NrLm1pbmVjcmFmdC5ncmF5X3N0YWluZWRfZ2xhc3NfcGFuZQA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 525, - "key": "minecraft:light_gray_stained_glass_pane", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BydtaW5lY3JhZnQ6bGlnaHRfZ3JheV9zdGFpbmVkX2dsYXNzX3BhbmU=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUALWJsb2NrLm1pbmVjcmFmdC5saWdodF9ncmF5X3N0YWluZWRfZ2xhc3NfcGFuZQA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 526, - "key": "minecraft:cyan_stained_glass_pane", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByFtaW5lY3JhZnQ6Y3lhbl9zdGFpbmVkX2dsYXNzX3BhbmU=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJ2Jsb2NrLm1pbmVjcmFmdC5jeWFuX3N0YWluZWRfZ2xhc3NfcGFuZQA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 527, - "key": "minecraft:purple_stained_glass_pane", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByNtaW5lY3JhZnQ6cHVycGxlX3N0YWluZWRfZ2xhc3NfcGFuZQ==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAKWJsb2NrLm1pbmVjcmFmdC5wdXJwbGVfc3RhaW5lZF9nbGFzc19wYW5lAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 528, - "key": "minecraft:blue_stained_glass_pane", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByFtaW5lY3JhZnQ6Ymx1ZV9zdGFpbmVkX2dsYXNzX3BhbmU=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJ2Jsb2NrLm1pbmVjcmFmdC5ibHVlX3N0YWluZWRfZ2xhc3NfcGFuZQA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 529, - "key": "minecraft:brown_stained_glass_pane", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByJtaW5lY3JhZnQ6YnJvd25fc3RhaW5lZF9nbGFzc19wYW5l", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAKGJsb2NrLm1pbmVjcmFmdC5icm93bl9zdGFpbmVkX2dsYXNzX3BhbmUA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 530, - "key": "minecraft:green_stained_glass_pane", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByJtaW5lY3JhZnQ6Z3JlZW5fc3RhaW5lZF9nbGFzc19wYW5l", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAKGJsb2NrLm1pbmVjcmFmdC5ncmVlbl9zdGFpbmVkX2dsYXNzX3BhbmUA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 531, - "key": "minecraft:red_stained_glass_pane", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByBtaW5lY3JhZnQ6cmVkX3N0YWluZWRfZ2xhc3NfcGFuZQ==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJmJsb2NrLm1pbmVjcmFmdC5yZWRfc3RhaW5lZF9nbGFzc19wYW5lAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 532, - "key": "minecraft:black_stained_glass_pane", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByJtaW5lY3JhZnQ6YmxhY2tfc3RhaW5lZF9nbGFzc19wYW5l", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAKGJsb2NrLm1pbmVjcmFmdC5ibGFja19zdGFpbmVkX2dsYXNzX3BhbmUA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 533, - "key": "minecraft:prismarine", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxRtaW5lY3JhZnQ6cHJpc21hcmluZQ==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC5wcmlzbWFyaW5lAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 534, - "key": "minecraft:prismarine_bricks", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxttaW5lY3JhZnQ6cHJpc21hcmluZV9icmlja3M=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWJsb2NrLm1pbmVjcmFmdC5wcmlzbWFyaW5lX2JyaWNrcwA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 535, - "key": "minecraft:dark_prismarine", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxltaW5lY3JhZnQ6ZGFya19wcmlzbWFyaW5l", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC5kYXJrX3ByaXNtYXJpbmUA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 536, - "key": "minecraft:prismarine_stairs", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxttaW5lY3JhZnQ6cHJpc21hcmluZV9zdGFpcnM=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWJsb2NrLm1pbmVjcmFmdC5wcmlzbWFyaW5lX3N0YWlycwA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 537, - "key": "minecraft:prismarine_brick_stairs", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByFtaW5lY3JhZnQ6cHJpc21hcmluZV9icmlja19zdGFpcnM=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJ2Jsb2NrLm1pbmVjcmFmdC5wcmlzbWFyaW5lX2JyaWNrX3N0YWlycwA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 538, - "key": "minecraft:dark_prismarine_stairs", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByBtaW5lY3JhZnQ6ZGFya19wcmlzbWFyaW5lX3N0YWlycw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJmJsb2NrLm1pbmVjcmFmdC5kYXJrX3ByaXNtYXJpbmVfc3RhaXJzAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 539, - "key": "minecraft:sea_lantern", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6c2VhX2xhbnRlcm4=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5zZWFfbGFudGVybgA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 540, - "key": "minecraft:red_sandstone", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6cmVkX3NhbmRzdG9uZQ==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5yZWRfc2FuZHN0b25lAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 541, - "key": "minecraft:chiseled_red_sandstone", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByBtaW5lY3JhZnQ6Y2hpc2VsZWRfcmVkX3NhbmRzdG9uZQ==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJmJsb2NrLm1pbmVjcmFmdC5jaGlzZWxlZF9yZWRfc2FuZHN0b25lAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 542, - "key": "minecraft:cut_red_sandstone", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxttaW5lY3JhZnQ6Y3V0X3JlZF9zYW5kc3RvbmU=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWJsb2NrLm1pbmVjcmFmdC5jdXRfcmVkX3NhbmRzdG9uZQA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 543, - "key": "minecraft:red_sandstone_stairs", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx5taW5lY3JhZnQ6cmVkX3NhbmRzdG9uZV9zdGFpcnM=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJGJsb2NrLm1pbmVjcmFmdC5yZWRfc2FuZHN0b25lX3N0YWlycwA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 544, - "key": "minecraft:repeating_command_block", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByFtaW5lY3JhZnQ6cmVwZWF0aW5nX2NvbW1hbmRfYmxvY2s=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJ2Jsb2NrLm1pbmVjcmFmdC5yZXBlYXRpbmdfY29tbWFuZF9ibG9jawA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQM=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 545, - "key": "minecraft:chain_command_block", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx1taW5lY3JhZnQ6Y2hhaW5fY29tbWFuZF9ibG9jaw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2Jsb2NrLm1pbmVjcmFmdC5jaGFpbl9jb21tYW5kX2Jsb2NrAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQM=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 546, - "key": "minecraft:magma_block", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6bWFnbWFfYmxvY2s=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5tYWdtYV9ibG9jawA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 547, - "key": "minecraft:nether_wart_block", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxttaW5lY3JhZnQ6bmV0aGVyX3dhcnRfYmxvY2s=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWJsb2NrLm1pbmVjcmFmdC5uZXRoZXJfd2FydF9ibG9jawA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 548, - "key": "minecraft:warped_wart_block", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxttaW5lY3JhZnQ6d2FycGVkX3dhcnRfYmxvY2s=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWJsb2NrLm1pbmVjcmFmdC53YXJwZWRfd2FydF9ibG9jawA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 549, - "key": "minecraft:red_nether_bricks", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxttaW5lY3JhZnQ6cmVkX25ldGhlcl9icmlja3M=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWJsb2NrLm1pbmVjcmFmdC5yZWRfbmV0aGVyX2JyaWNrcwA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 550, - "key": "minecraft:bone_block", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxRtaW5lY3JhZnQ6Ym9uZV9ibG9jaw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC5ib25lX2Jsb2NrAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 551, - "key": "minecraft:structure_void", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxhtaW5lY3JhZnQ6c3RydWN0dXJlX3ZvaWQ=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC5zdHJ1Y3R1cmVfdm9pZAA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQM=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 552, - "key": "minecraft:shulker_box", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:container": "QgA=", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6c2h1bGtlcl9ib3g=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5zaHVsa2VyX2JveAA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 553, - "key": "minecraft:white_shulker_box", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:container": "QgA=", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxttaW5lY3JhZnQ6d2hpdGVfc2h1bGtlcl9ib3g=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWJsb2NrLm1pbmVjcmFmdC53aGl0ZV9zaHVsa2VyX2JveAA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 554, - "key": "minecraft:orange_shulker_box", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:container": "QgA=", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxxtaW5lY3JhZnQ6b3JhbmdlX3NodWxrZXJfYm94", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAImJsb2NrLm1pbmVjcmFmdC5vcmFuZ2Vfc2h1bGtlcl9ib3gA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 555, - "key": "minecraft:magenta_shulker_box", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:container": "QgA=", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx1taW5lY3JhZnQ6bWFnZW50YV9zaHVsa2VyX2JveA==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2Jsb2NrLm1pbmVjcmFmdC5tYWdlbnRhX3NodWxrZXJfYm94AA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 556, - "key": "minecraft:light_blue_shulker_box", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:container": "QgA=", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByBtaW5lY3JhZnQ6bGlnaHRfYmx1ZV9zaHVsa2VyX2JveA==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJmJsb2NrLm1pbmVjcmFmdC5saWdodF9ibHVlX3NodWxrZXJfYm94AA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 557, - "key": "minecraft:yellow_shulker_box", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:container": "QgA=", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxxtaW5lY3JhZnQ6eWVsbG93X3NodWxrZXJfYm94", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAImJsb2NrLm1pbmVjcmFmdC55ZWxsb3dfc2h1bGtlcl9ib3gA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 558, - "key": "minecraft:lime_shulker_box", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:container": "QgA=", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxptaW5lY3JhZnQ6bGltZV9zaHVsa2VyX2JveA==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGJsb2NrLm1pbmVjcmFmdC5saW1lX3NodWxrZXJfYm94AA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 559, - "key": "minecraft:pink_shulker_box", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:container": "QgA=", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxptaW5lY3JhZnQ6cGlua19zaHVsa2VyX2JveA==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGJsb2NrLm1pbmVjcmFmdC5waW5rX3NodWxrZXJfYm94AA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 560, - "key": "minecraft:gray_shulker_box", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:container": "QgA=", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxptaW5lY3JhZnQ6Z3JheV9zaHVsa2VyX2JveA==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGJsb2NrLm1pbmVjcmFmdC5ncmF5X3NodWxrZXJfYm94AA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 561, - "key": "minecraft:light_gray_shulker_box", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:container": "QgA=", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByBtaW5lY3JhZnQ6bGlnaHRfZ3JheV9zaHVsa2VyX2JveA==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJmJsb2NrLm1pbmVjcmFmdC5saWdodF9ncmF5X3NodWxrZXJfYm94AA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 562, - "key": "minecraft:cyan_shulker_box", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:container": "QgA=", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxptaW5lY3JhZnQ6Y3lhbl9zaHVsa2VyX2JveA==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGJsb2NrLm1pbmVjcmFmdC5jeWFuX3NodWxrZXJfYm94AA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 563, - "key": "minecraft:purple_shulker_box", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:container": "QgA=", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxxtaW5lY3JhZnQ6cHVycGxlX3NodWxrZXJfYm94", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAImJsb2NrLm1pbmVjcmFmdC5wdXJwbGVfc2h1bGtlcl9ib3gA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 564, - "key": "minecraft:blue_shulker_box", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:container": "QgA=", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxptaW5lY3JhZnQ6Ymx1ZV9zaHVsa2VyX2JveA==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGJsb2NrLm1pbmVjcmFmdC5ibHVlX3NodWxrZXJfYm94AA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 565, - "key": "minecraft:brown_shulker_box", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:container": "QgA=", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxttaW5lY3JhZnQ6YnJvd25fc2h1bGtlcl9ib3g=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWJsb2NrLm1pbmVjcmFmdC5icm93bl9zaHVsa2VyX2JveAA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 566, - "key": "minecraft:green_shulker_box", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:container": "QgA=", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxttaW5lY3JhZnQ6Z3JlZW5fc2h1bGtlcl9ib3g=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWJsb2NrLm1pbmVjcmFmdC5ncmVlbl9zaHVsa2VyX2JveAA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 567, - "key": "minecraft:red_shulker_box", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:container": "QgA=", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxltaW5lY3JhZnQ6cmVkX3NodWxrZXJfYm94", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC5yZWRfc2h1bGtlcl9ib3gA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 568, - "key": "minecraft:black_shulker_box", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:container": "QgA=", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxttaW5lY3JhZnQ6YmxhY2tfc2h1bGtlcl9ib3g=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWJsb2NrLm1pbmVjcmFmdC5ibGFja19zaHVsa2VyX2JveAA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 569, - "key": "minecraft:white_glazed_terracotta", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByFtaW5lY3JhZnQ6d2hpdGVfZ2xhemVkX3RlcnJhY290dGE=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJ2Jsb2NrLm1pbmVjcmFmdC53aGl0ZV9nbGF6ZWRfdGVycmFjb3R0YQA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 570, - "key": "minecraft:orange_glazed_terracotta", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByJtaW5lY3JhZnQ6b3JhbmdlX2dsYXplZF90ZXJyYWNvdHRh", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAKGJsb2NrLm1pbmVjcmFmdC5vcmFuZ2VfZ2xhemVkX3RlcnJhY290dGEA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 571, - "key": "minecraft:magenta_glazed_terracotta", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByNtaW5lY3JhZnQ6bWFnZW50YV9nbGF6ZWRfdGVycmFjb3R0YQ==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAKWJsb2NrLm1pbmVjcmFmdC5tYWdlbnRhX2dsYXplZF90ZXJyYWNvdHRhAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 572, - "key": "minecraft:light_blue_glazed_terracotta", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByZtaW5lY3JhZnQ6bGlnaHRfYmx1ZV9nbGF6ZWRfdGVycmFjb3R0YQ==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUALGJsb2NrLm1pbmVjcmFmdC5saWdodF9ibHVlX2dsYXplZF90ZXJyYWNvdHRhAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 573, - "key": "minecraft:yellow_glazed_terracotta", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByJtaW5lY3JhZnQ6eWVsbG93X2dsYXplZF90ZXJyYWNvdHRh", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAKGJsb2NrLm1pbmVjcmFmdC55ZWxsb3dfZ2xhemVkX3RlcnJhY290dGEA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 574, - "key": "minecraft:lime_glazed_terracotta", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByBtaW5lY3JhZnQ6bGltZV9nbGF6ZWRfdGVycmFjb3R0YQ==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJmJsb2NrLm1pbmVjcmFmdC5saW1lX2dsYXplZF90ZXJyYWNvdHRhAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 575, - "key": "minecraft:pink_glazed_terracotta", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByBtaW5lY3JhZnQ6cGlua19nbGF6ZWRfdGVycmFjb3R0YQ==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJmJsb2NrLm1pbmVjcmFmdC5waW5rX2dsYXplZF90ZXJyYWNvdHRhAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 576, - "key": "minecraft:gray_glazed_terracotta", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByBtaW5lY3JhZnQ6Z3JheV9nbGF6ZWRfdGVycmFjb3R0YQ==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJmJsb2NrLm1pbmVjcmFmdC5ncmF5X2dsYXplZF90ZXJyYWNvdHRhAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 577, - "key": "minecraft:light_gray_glazed_terracotta", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByZtaW5lY3JhZnQ6bGlnaHRfZ3JheV9nbGF6ZWRfdGVycmFjb3R0YQ==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUALGJsb2NrLm1pbmVjcmFmdC5saWdodF9ncmF5X2dsYXplZF90ZXJyYWNvdHRhAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 578, - "key": "minecraft:cyan_glazed_terracotta", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByBtaW5lY3JhZnQ6Y3lhbl9nbGF6ZWRfdGVycmFjb3R0YQ==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJmJsb2NrLm1pbmVjcmFmdC5jeWFuX2dsYXplZF90ZXJyYWNvdHRhAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 579, - "key": "minecraft:purple_glazed_terracotta", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByJtaW5lY3JhZnQ6cHVycGxlX2dsYXplZF90ZXJyYWNvdHRh", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAKGJsb2NrLm1pbmVjcmFmdC5wdXJwbGVfZ2xhemVkX3RlcnJhY290dGEA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 580, - "key": "minecraft:blue_glazed_terracotta", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByBtaW5lY3JhZnQ6Ymx1ZV9nbGF6ZWRfdGVycmFjb3R0YQ==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJmJsb2NrLm1pbmVjcmFmdC5ibHVlX2dsYXplZF90ZXJyYWNvdHRhAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 581, - "key": "minecraft:brown_glazed_terracotta", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByFtaW5lY3JhZnQ6YnJvd25fZ2xhemVkX3RlcnJhY290dGE=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJ2Jsb2NrLm1pbmVjcmFmdC5icm93bl9nbGF6ZWRfdGVycmFjb3R0YQA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 582, - "key": "minecraft:green_glazed_terracotta", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByFtaW5lY3JhZnQ6Z3JlZW5fZ2xhemVkX3RlcnJhY290dGE=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJ2Jsb2NrLm1pbmVjcmFmdC5ncmVlbl9nbGF6ZWRfdGVycmFjb3R0YQA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 583, - "key": "minecraft:red_glazed_terracotta", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx9taW5lY3JhZnQ6cmVkX2dsYXplZF90ZXJyYWNvdHRh", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWJsb2NrLm1pbmVjcmFmdC5yZWRfZ2xhemVkX3RlcnJhY290dGEA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 584, - "key": "minecraft:black_glazed_terracotta", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByFtaW5lY3JhZnQ6YmxhY2tfZ2xhemVkX3RlcnJhY290dGE=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJ2Jsb2NrLm1pbmVjcmFmdC5ibGFja19nbGF6ZWRfdGVycmFjb3R0YQA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 585, - "key": "minecraft:white_concrete", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxhtaW5lY3JhZnQ6d2hpdGVfY29uY3JldGU=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC53aGl0ZV9jb25jcmV0ZQA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 586, - "key": "minecraft:orange_concrete", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxltaW5lY3JhZnQ6b3JhbmdlX2NvbmNyZXRl", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC5vcmFuZ2VfY29uY3JldGUA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 587, - "key": "minecraft:magenta_concrete", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxptaW5lY3JhZnQ6bWFnZW50YV9jb25jcmV0ZQ==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGJsb2NrLm1pbmVjcmFmdC5tYWdlbnRhX2NvbmNyZXRlAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 588, - "key": "minecraft:light_blue_concrete", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx1taW5lY3JhZnQ6bGlnaHRfYmx1ZV9jb25jcmV0ZQ==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2Jsb2NrLm1pbmVjcmFmdC5saWdodF9ibHVlX2NvbmNyZXRlAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 589, - "key": "minecraft:yellow_concrete", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxltaW5lY3JhZnQ6eWVsbG93X2NvbmNyZXRl", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC55ZWxsb3dfY29uY3JldGUA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 590, - "key": "minecraft:lime_concrete", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6bGltZV9jb25jcmV0ZQ==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5saW1lX2NvbmNyZXRlAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 591, - "key": "minecraft:pink_concrete", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6cGlua19jb25jcmV0ZQ==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5waW5rX2NvbmNyZXRlAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 592, - "key": "minecraft:gray_concrete", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6Z3JheV9jb25jcmV0ZQ==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5ncmF5X2NvbmNyZXRlAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 593, - "key": "minecraft:light_gray_concrete", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx1taW5lY3JhZnQ6bGlnaHRfZ3JheV9jb25jcmV0ZQ==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2Jsb2NrLm1pbmVjcmFmdC5saWdodF9ncmF5X2NvbmNyZXRlAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 594, - "key": "minecraft:cyan_concrete", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6Y3lhbl9jb25jcmV0ZQ==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5jeWFuX2NvbmNyZXRlAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 595, - "key": "minecraft:purple_concrete", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxltaW5lY3JhZnQ6cHVycGxlX2NvbmNyZXRl", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC5wdXJwbGVfY29uY3JldGUA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 596, - "key": "minecraft:blue_concrete", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6Ymx1ZV9jb25jcmV0ZQ==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5ibHVlX2NvbmNyZXRlAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 597, - "key": "minecraft:brown_concrete", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxhtaW5lY3JhZnQ6YnJvd25fY29uY3JldGU=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC5icm93bl9jb25jcmV0ZQA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 598, - "key": "minecraft:green_concrete", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxhtaW5lY3JhZnQ6Z3JlZW5fY29uY3JldGU=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC5ncmVlbl9jb25jcmV0ZQA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 599, - "key": "minecraft:red_concrete", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxZtaW5lY3JhZnQ6cmVkX2NvbmNyZXRl", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC5yZWRfY29uY3JldGUA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 600, - "key": "minecraft:black_concrete", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxhtaW5lY3JhZnQ6YmxhY2tfY29uY3JldGU=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC5ibGFja19jb25jcmV0ZQA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 601, - "key": "minecraft:white_concrete_powder", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx9taW5lY3JhZnQ6d2hpdGVfY29uY3JldGVfcG93ZGVy", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWJsb2NrLm1pbmVjcmFmdC53aGl0ZV9jb25jcmV0ZV9wb3dkZXIA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 602, - "key": "minecraft:orange_concrete_powder", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByBtaW5lY3JhZnQ6b3JhbmdlX2NvbmNyZXRlX3Bvd2Rlcg==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJmJsb2NrLm1pbmVjcmFmdC5vcmFuZ2VfY29uY3JldGVfcG93ZGVyAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 603, - "key": "minecraft:magenta_concrete_powder", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByFtaW5lY3JhZnQ6bWFnZW50YV9jb25jcmV0ZV9wb3dkZXI=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJ2Jsb2NrLm1pbmVjcmFmdC5tYWdlbnRhX2NvbmNyZXRlX3Bvd2RlcgA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 604, - "key": "minecraft:light_blue_concrete_powder", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByRtaW5lY3JhZnQ6bGlnaHRfYmx1ZV9jb25jcmV0ZV9wb3dkZXI=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAKmJsb2NrLm1pbmVjcmFmdC5saWdodF9ibHVlX2NvbmNyZXRlX3Bvd2RlcgA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 605, - "key": "minecraft:yellow_concrete_powder", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByBtaW5lY3JhZnQ6eWVsbG93X2NvbmNyZXRlX3Bvd2Rlcg==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJmJsb2NrLm1pbmVjcmFmdC55ZWxsb3dfY29uY3JldGVfcG93ZGVyAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 606, - "key": "minecraft:lime_concrete_powder", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx5taW5lY3JhZnQ6bGltZV9jb25jcmV0ZV9wb3dkZXI=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJGJsb2NrLm1pbmVjcmFmdC5saW1lX2NvbmNyZXRlX3Bvd2RlcgA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 607, - "key": "minecraft:pink_concrete_powder", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx5taW5lY3JhZnQ6cGlua19jb25jcmV0ZV9wb3dkZXI=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJGJsb2NrLm1pbmVjcmFmdC5waW5rX2NvbmNyZXRlX3Bvd2RlcgA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 608, - "key": "minecraft:gray_concrete_powder", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx5taW5lY3JhZnQ6Z3JheV9jb25jcmV0ZV9wb3dkZXI=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJGJsb2NrLm1pbmVjcmFmdC5ncmF5X2NvbmNyZXRlX3Bvd2RlcgA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 609, - "key": "minecraft:light_gray_concrete_powder", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByRtaW5lY3JhZnQ6bGlnaHRfZ3JheV9jb25jcmV0ZV9wb3dkZXI=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAKmJsb2NrLm1pbmVjcmFmdC5saWdodF9ncmF5X2NvbmNyZXRlX3Bvd2RlcgA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 610, - "key": "minecraft:cyan_concrete_powder", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx5taW5lY3JhZnQ6Y3lhbl9jb25jcmV0ZV9wb3dkZXI=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJGJsb2NrLm1pbmVjcmFmdC5jeWFuX2NvbmNyZXRlX3Bvd2RlcgA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 611, - "key": "minecraft:purple_concrete_powder", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByBtaW5lY3JhZnQ6cHVycGxlX2NvbmNyZXRlX3Bvd2Rlcg==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJmJsb2NrLm1pbmVjcmFmdC5wdXJwbGVfY29uY3JldGVfcG93ZGVyAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 612, - "key": "minecraft:blue_concrete_powder", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx5taW5lY3JhZnQ6Ymx1ZV9jb25jcmV0ZV9wb3dkZXI=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJGJsb2NrLm1pbmVjcmFmdC5ibHVlX2NvbmNyZXRlX3Bvd2RlcgA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 613, - "key": "minecraft:brown_concrete_powder", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx9taW5lY3JhZnQ6YnJvd25fY29uY3JldGVfcG93ZGVy", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWJsb2NrLm1pbmVjcmFmdC5icm93bl9jb25jcmV0ZV9wb3dkZXIA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 614, - "key": "minecraft:green_concrete_powder", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx9taW5lY3JhZnQ6Z3JlZW5fY29uY3JldGVfcG93ZGVy", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWJsb2NrLm1pbmVjcmFmdC5ncmVlbl9jb25jcmV0ZV9wb3dkZXIA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 615, - "key": "minecraft:red_concrete_powder", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx1taW5lY3JhZnQ6cmVkX2NvbmNyZXRlX3Bvd2Rlcg==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2Jsb2NrLm1pbmVjcmFmdC5yZWRfY29uY3JldGVfcG93ZGVyAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 616, - "key": "minecraft:black_concrete_powder", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx9taW5lY3JhZnQ6YmxhY2tfY29uY3JldGVfcG93ZGVy", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWJsb2NrLm1pbmVjcmFmdC5ibGFja19jb25jcmV0ZV9wb3dkZXIA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 617, - "key": "minecraft:turtle_egg", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxRtaW5lY3JhZnQ6dHVydGxlX2VnZw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC50dXJ0bGVfZWdnAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 618, - "key": "minecraft:sniffer_egg", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6c25pZmZlcl9lZ2c=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5zbmlmZmVyX2VnZwA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQE=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 619, - "key": "minecraft:dried_ghast", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6ZHJpZWRfZ2hhc3Q=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5kcmllZF9naGFzdAA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 620, - "key": "minecraft:dead_tube_coral_block", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx9taW5lY3JhZnQ6ZGVhZF90dWJlX2NvcmFsX2Jsb2Nr", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWJsb2NrLm1pbmVjcmFmdC5kZWFkX3R1YmVfY29yYWxfYmxvY2sA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 621, - "key": "minecraft:dead_brain_coral_block", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByBtaW5lY3JhZnQ6ZGVhZF9icmFpbl9jb3JhbF9ibG9jaw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJmJsb2NrLm1pbmVjcmFmdC5kZWFkX2JyYWluX2NvcmFsX2Jsb2NrAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 622, - "key": "minecraft:dead_bubble_coral_block", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByFtaW5lY3JhZnQ6ZGVhZF9idWJibGVfY29yYWxfYmxvY2s=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJ2Jsb2NrLm1pbmVjcmFmdC5kZWFkX2J1YmJsZV9jb3JhbF9ibG9jawA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 623, - "key": "minecraft:dead_fire_coral_block", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx9taW5lY3JhZnQ6ZGVhZF9maXJlX2NvcmFsX2Jsb2Nr", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWJsb2NrLm1pbmVjcmFmdC5kZWFkX2ZpcmVfY29yYWxfYmxvY2sA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 624, - "key": "minecraft:dead_horn_coral_block", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx9taW5lY3JhZnQ6ZGVhZF9ob3JuX2NvcmFsX2Jsb2Nr", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWJsb2NrLm1pbmVjcmFmdC5kZWFkX2hvcm5fY29yYWxfYmxvY2sA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 625, - "key": "minecraft:tube_coral_block", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxptaW5lY3JhZnQ6dHViZV9jb3JhbF9ibG9jaw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGJsb2NrLm1pbmVjcmFmdC50dWJlX2NvcmFsX2Jsb2NrAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 626, - "key": "minecraft:brain_coral_block", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxttaW5lY3JhZnQ6YnJhaW5fY29yYWxfYmxvY2s=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWJsb2NrLm1pbmVjcmFmdC5icmFpbl9jb3JhbF9ibG9jawA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 627, - "key": "minecraft:bubble_coral_block", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxxtaW5lY3JhZnQ6YnViYmxlX2NvcmFsX2Jsb2Nr", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAImJsb2NrLm1pbmVjcmFmdC5idWJibGVfY29yYWxfYmxvY2sA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 628, - "key": "minecraft:fire_coral_block", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxptaW5lY3JhZnQ6ZmlyZV9jb3JhbF9ibG9jaw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGJsb2NrLm1pbmVjcmFmdC5maXJlX2NvcmFsX2Jsb2NrAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 629, - "key": "minecraft:horn_coral_block", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxptaW5lY3JhZnQ6aG9ybl9jb3JhbF9ibG9jaw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGJsb2NrLm1pbmVjcmFmdC5ob3JuX2NvcmFsX2Jsb2NrAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 630, - "key": "minecraft:tube_coral", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxRtaW5lY3JhZnQ6dHViZV9jb3JhbA==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC50dWJlX2NvcmFsAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 631, - "key": "minecraft:brain_coral", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6YnJhaW5fY29yYWw=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5icmFpbl9jb3JhbAA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 632, - "key": "minecraft:bubble_coral", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxZtaW5lY3JhZnQ6YnViYmxlX2NvcmFs", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC5idWJibGVfY29yYWwA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 633, - "key": "minecraft:fire_coral", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxRtaW5lY3JhZnQ6ZmlyZV9jb3JhbA==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC5maXJlX2NvcmFsAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 634, - "key": "minecraft:horn_coral", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxRtaW5lY3JhZnQ6aG9ybl9jb3JhbA==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC5ob3JuX2NvcmFsAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 635, - "key": "minecraft:dead_brain_coral", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxptaW5lY3JhZnQ6ZGVhZF9icmFpbl9jb3JhbA==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGJsb2NrLm1pbmVjcmFmdC5kZWFkX2JyYWluX2NvcmFsAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 636, - "key": "minecraft:dead_bubble_coral", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxttaW5lY3JhZnQ6ZGVhZF9idWJibGVfY29yYWw=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWJsb2NrLm1pbmVjcmFmdC5kZWFkX2J1YmJsZV9jb3JhbAA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 637, - "key": "minecraft:dead_fire_coral", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxltaW5lY3JhZnQ6ZGVhZF9maXJlX2NvcmFs", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC5kZWFkX2ZpcmVfY29yYWwA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 638, - "key": "minecraft:dead_horn_coral", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxltaW5lY3JhZnQ6ZGVhZF9ob3JuX2NvcmFs", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC5kZWFkX2hvcm5fY29yYWwA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 639, - "key": "minecraft:dead_tube_coral", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxltaW5lY3JhZnQ6ZGVhZF90dWJlX2NvcmFs", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC5kZWFkX3R1YmVfY29yYWwA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 640, - "key": "minecraft:tube_coral_fan", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxhtaW5lY3JhZnQ6dHViZV9jb3JhbF9mYW4=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC50dWJlX2NvcmFsX2ZhbgA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 641, - "key": "minecraft:brain_coral_fan", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxltaW5lY3JhZnQ6YnJhaW5fY29yYWxfZmFu", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC5icmFpbl9jb3JhbF9mYW4A", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 642, - "key": "minecraft:bubble_coral_fan", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxptaW5lY3JhZnQ6YnViYmxlX2NvcmFsX2Zhbg==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGJsb2NrLm1pbmVjcmFmdC5idWJibGVfY29yYWxfZmFuAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 643, - "key": "minecraft:fire_coral_fan", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxhtaW5lY3JhZnQ6ZmlyZV9jb3JhbF9mYW4=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC5maXJlX2NvcmFsX2ZhbgA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 644, - "key": "minecraft:horn_coral_fan", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxhtaW5lY3JhZnQ6aG9ybl9jb3JhbF9mYW4=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC5ob3JuX2NvcmFsX2ZhbgA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 645, - "key": "minecraft:dead_tube_coral_fan", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx1taW5lY3JhZnQ6ZGVhZF90dWJlX2NvcmFsX2Zhbg==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2Jsb2NrLm1pbmVjcmFmdC5kZWFkX3R1YmVfY29yYWxfZmFuAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 646, - "key": "minecraft:dead_brain_coral_fan", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx5taW5lY3JhZnQ6ZGVhZF9icmFpbl9jb3JhbF9mYW4=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJGJsb2NrLm1pbmVjcmFmdC5kZWFkX2JyYWluX2NvcmFsX2ZhbgA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 647, - "key": "minecraft:dead_bubble_coral_fan", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx9taW5lY3JhZnQ6ZGVhZF9idWJibGVfY29yYWxfZmFu", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWJsb2NrLm1pbmVjcmFmdC5kZWFkX2J1YmJsZV9jb3JhbF9mYW4A", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 648, - "key": "minecraft:dead_fire_coral_fan", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx1taW5lY3JhZnQ6ZGVhZF9maXJlX2NvcmFsX2Zhbg==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2Jsb2NrLm1pbmVjcmFmdC5kZWFkX2ZpcmVfY29yYWxfZmFuAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 649, - "key": "minecraft:dead_horn_coral_fan", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx1taW5lY3JhZnQ6ZGVhZF9ob3JuX2NvcmFsX2Zhbg==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2Jsb2NrLm1pbmVjcmFmdC5kZWFkX2hvcm5fY29yYWxfZmFuAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 650, - "key": "minecraft:blue_ice", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxJtaW5lY3JhZnQ6Ymx1ZV9pY2U=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGGJsb2NrLm1pbmVjcmFmdC5ibHVlX2ljZQA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 651, - "key": "minecraft:conduit", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxFtaW5lY3JhZnQ6Y29uZHVpdA==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAF2Jsb2NrLm1pbmVjcmFmdC5jb25kdWl0AA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQE=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 652, - "key": "minecraft:polished_granite_stairs", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByFtaW5lY3JhZnQ6cG9saXNoZWRfZ3Jhbml0ZV9zdGFpcnM=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJ2Jsb2NrLm1pbmVjcmFmdC5wb2xpc2hlZF9ncmFuaXRlX3N0YWlycwA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 653, - "key": "minecraft:smooth_red_sandstone_stairs", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByVtaW5lY3JhZnQ6c21vb3RoX3JlZF9zYW5kc3RvbmVfc3RhaXJz", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAK2Jsb2NrLm1pbmVjcmFmdC5zbW9vdGhfcmVkX3NhbmRzdG9uZV9zdGFpcnMA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 654, - "key": "minecraft:mossy_stone_brick_stairs", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByJtaW5lY3JhZnQ6bW9zc3lfc3RvbmVfYnJpY2tfc3RhaXJz", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAKGJsb2NrLm1pbmVjcmFmdC5tb3NzeV9zdG9uZV9icmlja19zdGFpcnMA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 655, - "key": "minecraft:polished_diorite_stairs", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByFtaW5lY3JhZnQ6cG9saXNoZWRfZGlvcml0ZV9zdGFpcnM=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJ2Jsb2NrLm1pbmVjcmFmdC5wb2xpc2hlZF9kaW9yaXRlX3N0YWlycwA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 656, - "key": "minecraft:mossy_cobblestone_stairs", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByJtaW5lY3JhZnQ6bW9zc3lfY29iYmxlc3RvbmVfc3RhaXJz", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAKGJsb2NrLm1pbmVjcmFmdC5tb3NzeV9jb2JibGVzdG9uZV9zdGFpcnMA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 657, - "key": "minecraft:end_stone_brick_stairs", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByBtaW5lY3JhZnQ6ZW5kX3N0b25lX2JyaWNrX3N0YWlycw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJmJsb2NrLm1pbmVjcmFmdC5lbmRfc3RvbmVfYnJpY2tfc3RhaXJzAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 658, - "key": "minecraft:stone_stairs", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxZtaW5lY3JhZnQ6c3RvbmVfc3RhaXJz", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC5zdG9uZV9zdGFpcnMA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 659, - "key": "minecraft:smooth_sandstone_stairs", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByFtaW5lY3JhZnQ6c21vb3RoX3NhbmRzdG9uZV9zdGFpcnM=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJ2Jsb2NrLm1pbmVjcmFmdC5zbW9vdGhfc2FuZHN0b25lX3N0YWlycwA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 660, - "key": "minecraft:smooth_quartz_stairs", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx5taW5lY3JhZnQ6c21vb3RoX3F1YXJ0el9zdGFpcnM=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJGJsb2NrLm1pbmVjcmFmdC5zbW9vdGhfcXVhcnR6X3N0YWlycwA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 661, - "key": "minecraft:granite_stairs", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxhtaW5lY3JhZnQ6Z3Jhbml0ZV9zdGFpcnM=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC5ncmFuaXRlX3N0YWlycwA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 662, - "key": "minecraft:andesite_stairs", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxltaW5lY3JhZnQ6YW5kZXNpdGVfc3RhaXJz", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC5hbmRlc2l0ZV9zdGFpcnMA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 663, - "key": "minecraft:red_nether_brick_stairs", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByFtaW5lY3JhZnQ6cmVkX25ldGhlcl9icmlja19zdGFpcnM=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJ2Jsb2NrLm1pbmVjcmFmdC5yZWRfbmV0aGVyX2JyaWNrX3N0YWlycwA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 664, - "key": "minecraft:polished_andesite_stairs", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByJtaW5lY3JhZnQ6cG9saXNoZWRfYW5kZXNpdGVfc3RhaXJz", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAKGJsb2NrLm1pbmVjcmFmdC5wb2xpc2hlZF9hbmRlc2l0ZV9zdGFpcnMA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 665, - "key": "minecraft:diorite_stairs", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxhtaW5lY3JhZnQ6ZGlvcml0ZV9zdGFpcnM=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC5kaW9yaXRlX3N0YWlycwA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 666, - "key": "minecraft:cobbled_deepslate_stairs", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByJtaW5lY3JhZnQ6Y29iYmxlZF9kZWVwc2xhdGVfc3RhaXJz", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAKGJsb2NrLm1pbmVjcmFmdC5jb2JibGVkX2RlZXBzbGF0ZV9zdGFpcnMA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 667, - "key": "minecraft:polished_deepslate_stairs", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByNtaW5lY3JhZnQ6cG9saXNoZWRfZGVlcHNsYXRlX3N0YWlycw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAKWJsb2NrLm1pbmVjcmFmdC5wb2xpc2hlZF9kZWVwc2xhdGVfc3RhaXJzAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 668, - "key": "minecraft:deepslate_brick_stairs", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByBtaW5lY3JhZnQ6ZGVlcHNsYXRlX2JyaWNrX3N0YWlycw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJmJsb2NrLm1pbmVjcmFmdC5kZWVwc2xhdGVfYnJpY2tfc3RhaXJzAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 669, - "key": "minecraft:deepslate_tile_stairs", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx9taW5lY3JhZnQ6ZGVlcHNsYXRlX3RpbGVfc3RhaXJz", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWJsb2NrLm1pbmVjcmFmdC5kZWVwc2xhdGVfdGlsZV9zdGFpcnMA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 670, - "key": "minecraft:polished_granite_slab", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx9taW5lY3JhZnQ6cG9saXNoZWRfZ3Jhbml0ZV9zbGFi", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWJsb2NrLm1pbmVjcmFmdC5wb2xpc2hlZF9ncmFuaXRlX3NsYWIA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 671, - "key": "minecraft:smooth_red_sandstone_slab", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByNtaW5lY3JhZnQ6c21vb3RoX3JlZF9zYW5kc3RvbmVfc2xhYg==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAKWJsb2NrLm1pbmVjcmFmdC5zbW9vdGhfcmVkX3NhbmRzdG9uZV9zbGFiAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 672, - "key": "minecraft:mossy_stone_brick_slab", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByBtaW5lY3JhZnQ6bW9zc3lfc3RvbmVfYnJpY2tfc2xhYg==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJmJsb2NrLm1pbmVjcmFmdC5tb3NzeV9zdG9uZV9icmlja19zbGFiAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 673, - "key": "minecraft:polished_diorite_slab", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx9taW5lY3JhZnQ6cG9saXNoZWRfZGlvcml0ZV9zbGFi", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWJsb2NrLm1pbmVjcmFmdC5wb2xpc2hlZF9kaW9yaXRlX3NsYWIA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 674, - "key": "minecraft:mossy_cobblestone_slab", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByBtaW5lY3JhZnQ6bW9zc3lfY29iYmxlc3RvbmVfc2xhYg==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJmJsb2NrLm1pbmVjcmFmdC5tb3NzeV9jb2JibGVzdG9uZV9zbGFiAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 675, - "key": "minecraft:end_stone_brick_slab", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx5taW5lY3JhZnQ6ZW5kX3N0b25lX2JyaWNrX3NsYWI=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJGJsb2NrLm1pbmVjcmFmdC5lbmRfc3RvbmVfYnJpY2tfc2xhYgA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 676, - "key": "minecraft:smooth_sandstone_slab", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx9taW5lY3JhZnQ6c21vb3RoX3NhbmRzdG9uZV9zbGFi", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWJsb2NrLm1pbmVjcmFmdC5zbW9vdGhfc2FuZHN0b25lX3NsYWIA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 677, - "key": "minecraft:smooth_quartz_slab", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxxtaW5lY3JhZnQ6c21vb3RoX3F1YXJ0el9zbGFi", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAImJsb2NrLm1pbmVjcmFmdC5zbW9vdGhfcXVhcnR6X3NsYWIA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 678, - "key": "minecraft:granite_slab", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxZtaW5lY3JhZnQ6Z3Jhbml0ZV9zbGFi", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC5ncmFuaXRlX3NsYWIA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 679, - "key": "minecraft:andesite_slab", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6YW5kZXNpdGVfc2xhYg==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5hbmRlc2l0ZV9zbGFiAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 680, - "key": "minecraft:red_nether_brick_slab", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx9taW5lY3JhZnQ6cmVkX25ldGhlcl9icmlja19zbGFi", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWJsb2NrLm1pbmVjcmFmdC5yZWRfbmV0aGVyX2JyaWNrX3NsYWIA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 681, - "key": "minecraft:polished_andesite_slab", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByBtaW5lY3JhZnQ6cG9saXNoZWRfYW5kZXNpdGVfc2xhYg==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJmJsb2NrLm1pbmVjcmFmdC5wb2xpc2hlZF9hbmRlc2l0ZV9zbGFiAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 682, - "key": "minecraft:diorite_slab", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxZtaW5lY3JhZnQ6ZGlvcml0ZV9zbGFi", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC5kaW9yaXRlX3NsYWIA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 683, - "key": "minecraft:cobbled_deepslate_slab", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByBtaW5lY3JhZnQ6Y29iYmxlZF9kZWVwc2xhdGVfc2xhYg==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJmJsb2NrLm1pbmVjcmFmdC5jb2JibGVkX2RlZXBzbGF0ZV9zbGFiAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 684, - "key": "minecraft:polished_deepslate_slab", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByFtaW5lY3JhZnQ6cG9saXNoZWRfZGVlcHNsYXRlX3NsYWI=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJ2Jsb2NrLm1pbmVjcmFmdC5wb2xpc2hlZF9kZWVwc2xhdGVfc2xhYgA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 685, - "key": "minecraft:deepslate_brick_slab", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx5taW5lY3JhZnQ6ZGVlcHNsYXRlX2JyaWNrX3NsYWI=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJGJsb2NrLm1pbmVjcmFmdC5kZWVwc2xhdGVfYnJpY2tfc2xhYgA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 686, - "key": "minecraft:deepslate_tile_slab", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx1taW5lY3JhZnQ6ZGVlcHNsYXRlX3RpbGVfc2xhYg==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2Jsb2NrLm1pbmVjcmFmdC5kZWVwc2xhdGVfdGlsZV9zbGFiAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 687, - "key": "minecraft:scaffolding", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6c2NhZmZvbGRpbmc=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5zY2FmZm9sZGluZwA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 688, - "key": "minecraft:redstone", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxJtaW5lY3JhZnQ6cmVkc3RvbmU=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAF2l0ZW0ubWluZWNyYWZ0LnJlZHN0b25lAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:provides_trim_material": "NQASbWluZWNyYWZ0OnJlZHN0b25l", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 689, - "key": "minecraft:redstone_torch", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxhtaW5lY3JhZnQ6cmVkc3RvbmVfdG9yY2g=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC5yZWRzdG9uZV90b3JjaAA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 690, - "key": "minecraft:redstone_block", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxhtaW5lY3JhZnQ6cmVkc3RvbmVfYmxvY2s=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC5yZWRzdG9uZV9ibG9jawA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 691, - "key": "minecraft:repeater", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxJtaW5lY3JhZnQ6cmVwZWF0ZXI=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGGJsb2NrLm1pbmVjcmFmdC5yZXBlYXRlcgA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 692, - "key": "minecraft:comparator", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxRtaW5lY3JhZnQ6Y29tcGFyYXRvcg==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC5jb21wYXJhdG9yAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 693, - "key": "minecraft:piston", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxBtaW5lY3JhZnQ6cGlzdG9u", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFmJsb2NrLm1pbmVjcmFmdC5waXN0b24A", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 694, - "key": "minecraft:sticky_piston", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6c3RpY2t5X3Bpc3Rvbg==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5zdGlja3lfcGlzdG9uAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 695, - "key": "minecraft:slime_block", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6c2xpbWVfYmxvY2s=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5zbGltZV9ibG9jawA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 696, - "key": "minecraft:honey_block", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6aG9uZXlfYmxvY2s=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5ob25leV9ibG9jawA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 697, - "key": "minecraft:observer", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxJtaW5lY3JhZnQ6b2JzZXJ2ZXI=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGGJsb2NrLm1pbmVjcmFmdC5vYnNlcnZlcgA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 698, - "key": "minecraft:hopper", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:container": "QgA=", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxBtaW5lY3JhZnQ6aG9wcGVy", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFmJsb2NrLm1pbmVjcmFmdC5ob3BwZXIA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 699, - "key": "minecraft:dispenser", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:container": "QgA=", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxNtaW5lY3JhZnQ6ZGlzcGVuc2Vy", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGWJsb2NrLm1pbmVjcmFmdC5kaXNwZW5zZXIA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 700, - "key": "minecraft:dropper", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:container": "QgA=", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxFtaW5lY3JhZnQ6ZHJvcHBlcg==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAF2Jsb2NrLm1pbmVjcmFmdC5kcm9wcGVyAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 701, - "key": "minecraft:lectern", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxFtaW5lY3JhZnQ6bGVjdGVybg==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAF2Jsb2NrLm1pbmVjcmFmdC5sZWN0ZXJuAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 702, - "key": "minecraft:target", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxBtaW5lY3JhZnQ6dGFyZ2V0", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFmJsb2NrLm1pbmVjcmFmdC50YXJnZXQA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 703, - "key": "minecraft:lever", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bw9taW5lY3JhZnQ6bGV2ZXI=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFWJsb2NrLm1pbmVjcmFmdC5sZXZlcgA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 704, - "key": "minecraft:lightning_rod", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6bGlnaHRuaW5nX3JvZA==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5saWdodG5pbmdfcm9kAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 705, - "key": "minecraft:daylight_detector", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxttaW5lY3JhZnQ6ZGF5bGlnaHRfZGV0ZWN0b3I=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWJsb2NrLm1pbmVjcmFmdC5kYXlsaWdodF9kZXRlY3RvcgA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 706, - "key": "minecraft:sculk_sensor", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxZtaW5lY3JhZnQ6c2N1bGtfc2Vuc29y", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC5zY3Vsa19zZW5zb3IA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 707, - "key": "minecraft:calibrated_sculk_sensor", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByFtaW5lY3JhZnQ6Y2FsaWJyYXRlZF9zY3Vsa19zZW5zb3I=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJ2Jsb2NrLm1pbmVjcmFmdC5jYWxpYnJhdGVkX3NjdWxrX3NlbnNvcgA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 708, - "key": "minecraft:tripwire_hook", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6dHJpcHdpcmVfaG9vaw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC50cmlwd2lyZV9ob29rAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 709, - "key": "minecraft:trapped_chest", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:container": "QgA=", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6dHJhcHBlZF9jaGVzdA==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC50cmFwcGVkX2NoZXN0AA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 710, - "key": "minecraft:tnt", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bw1taW5lY3JhZnQ6dG50", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAE2Jsb2NrLm1pbmVjcmFmdC50bnQA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 711, - "key": "minecraft:redstone_lamp", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6cmVkc3RvbmVfbGFtcA==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5yZWRzdG9uZV9sYW1wAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 712, - "key": "minecraft:note_block", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxRtaW5lY3JhZnQ6bm90ZV9ibG9jaw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC5ub3RlX2Jsb2NrAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 713, - "key": "minecraft:stone_button", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxZtaW5lY3JhZnQ6c3RvbmVfYnV0dG9u", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC5zdG9uZV9idXR0b24A", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 714, - "key": "minecraft:polished_blackstone_button", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByRtaW5lY3JhZnQ6cG9saXNoZWRfYmxhY2tzdG9uZV9idXR0b24=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAKmJsb2NrLm1pbmVjcmFmdC5wb2xpc2hlZF9ibGFja3N0b25lX2J1dHRvbgA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 715, - "key": "minecraft:oak_button", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxRtaW5lY3JhZnQ6b2FrX2J1dHRvbg==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC5vYWtfYnV0dG9uAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 716, - "key": "minecraft:spruce_button", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6c3BydWNlX2J1dHRvbg==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5zcHJ1Y2VfYnV0dG9uAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 717, - "key": "minecraft:birch_button", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxZtaW5lY3JhZnQ6YmlyY2hfYnV0dG9u", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC5iaXJjaF9idXR0b24A", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 718, - "key": "minecraft:jungle_button", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6anVuZ2xlX2J1dHRvbg==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5qdW5nbGVfYnV0dG9uAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 719, - "key": "minecraft:acacia_button", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6YWNhY2lhX2J1dHRvbg==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5hY2FjaWFfYnV0dG9uAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 720, - "key": "minecraft:cherry_button", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6Y2hlcnJ5X2J1dHRvbg==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5jaGVycnlfYnV0dG9uAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 721, - "key": "minecraft:dark_oak_button", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxltaW5lY3JhZnQ6ZGFya19vYWtfYnV0dG9u", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC5kYXJrX29ha19idXR0b24A", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 722, - "key": "minecraft:pale_oak_button", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxltaW5lY3JhZnQ6cGFsZV9vYWtfYnV0dG9u", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC5wYWxlX29ha19idXR0b24A", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 723, - "key": "minecraft:mangrove_button", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxltaW5lY3JhZnQ6bWFuZ3JvdmVfYnV0dG9u", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC5tYW5ncm92ZV9idXR0b24A", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 724, - "key": "minecraft:bamboo_button", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6YmFtYm9vX2J1dHRvbg==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5iYW1ib29fYnV0dG9uAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 725, - "key": "minecraft:crimson_button", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxhtaW5lY3JhZnQ6Y3JpbXNvbl9idXR0b24=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC5jcmltc29uX2J1dHRvbgA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 726, - "key": "minecraft:warped_button", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6d2FycGVkX2J1dHRvbg==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC53YXJwZWRfYnV0dG9uAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 727, - "key": "minecraft:stone_pressure_plate", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx5taW5lY3JhZnQ6c3RvbmVfcHJlc3N1cmVfcGxhdGU=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJGJsb2NrLm1pbmVjcmFmdC5zdG9uZV9wcmVzc3VyZV9wbGF0ZQA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 728, - "key": "minecraft:polished_blackstone_pressure_plate", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByxtaW5lY3JhZnQ6cG9saXNoZWRfYmxhY2tzdG9uZV9wcmVzc3VyZV9wbGF0ZQ==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAMmJsb2NrLm1pbmVjcmFmdC5wb2xpc2hlZF9ibGFja3N0b25lX3ByZXNzdXJlX3BsYXRlAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 729, - "key": "minecraft:light_weighted_pressure_plate", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BydtaW5lY3JhZnQ6bGlnaHRfd2VpZ2h0ZWRfcHJlc3N1cmVfcGxhdGU=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUALWJsb2NrLm1pbmVjcmFmdC5saWdodF93ZWlnaHRlZF9wcmVzc3VyZV9wbGF0ZQA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 730, - "key": "minecraft:heavy_weighted_pressure_plate", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BydtaW5lY3JhZnQ6aGVhdnlfd2VpZ2h0ZWRfcHJlc3N1cmVfcGxhdGU=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUALWJsb2NrLm1pbmVjcmFmdC5oZWF2eV93ZWlnaHRlZF9wcmVzc3VyZV9wbGF0ZQA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 731, - "key": "minecraft:oak_pressure_plate", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxxtaW5lY3JhZnQ6b2FrX3ByZXNzdXJlX3BsYXRl", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAImJsb2NrLm1pbmVjcmFmdC5vYWtfcHJlc3N1cmVfcGxhdGUA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 732, - "key": "minecraft:spruce_pressure_plate", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx9taW5lY3JhZnQ6c3BydWNlX3ByZXNzdXJlX3BsYXRl", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWJsb2NrLm1pbmVjcmFmdC5zcHJ1Y2VfcHJlc3N1cmVfcGxhdGUA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 733, - "key": "minecraft:birch_pressure_plate", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx5taW5lY3JhZnQ6YmlyY2hfcHJlc3N1cmVfcGxhdGU=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJGJsb2NrLm1pbmVjcmFmdC5iaXJjaF9wcmVzc3VyZV9wbGF0ZQA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 734, - "key": "minecraft:jungle_pressure_plate", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx9taW5lY3JhZnQ6anVuZ2xlX3ByZXNzdXJlX3BsYXRl", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWJsb2NrLm1pbmVjcmFmdC5qdW5nbGVfcHJlc3N1cmVfcGxhdGUA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 735, - "key": "minecraft:acacia_pressure_plate", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx9taW5lY3JhZnQ6YWNhY2lhX3ByZXNzdXJlX3BsYXRl", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWJsb2NrLm1pbmVjcmFmdC5hY2FjaWFfcHJlc3N1cmVfcGxhdGUA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 736, - "key": "minecraft:cherry_pressure_plate", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx9taW5lY3JhZnQ6Y2hlcnJ5X3ByZXNzdXJlX3BsYXRl", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWJsb2NrLm1pbmVjcmFmdC5jaGVycnlfcHJlc3N1cmVfcGxhdGUA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 737, - "key": "minecraft:dark_oak_pressure_plate", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByFtaW5lY3JhZnQ6ZGFya19vYWtfcHJlc3N1cmVfcGxhdGU=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJ2Jsb2NrLm1pbmVjcmFmdC5kYXJrX29ha19wcmVzc3VyZV9wbGF0ZQA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 738, - "key": "minecraft:pale_oak_pressure_plate", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByFtaW5lY3JhZnQ6cGFsZV9vYWtfcHJlc3N1cmVfcGxhdGU=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJ2Jsb2NrLm1pbmVjcmFmdC5wYWxlX29ha19wcmVzc3VyZV9wbGF0ZQA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 739, - "key": "minecraft:mangrove_pressure_plate", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByFtaW5lY3JhZnQ6bWFuZ3JvdmVfcHJlc3N1cmVfcGxhdGU=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJ2Jsb2NrLm1pbmVjcmFmdC5tYW5ncm92ZV9wcmVzc3VyZV9wbGF0ZQA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 740, - "key": "minecraft:bamboo_pressure_plate", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx9taW5lY3JhZnQ6YmFtYm9vX3ByZXNzdXJlX3BsYXRl", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWJsb2NrLm1pbmVjcmFmdC5iYW1ib29fcHJlc3N1cmVfcGxhdGUA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 741, - "key": "minecraft:crimson_pressure_plate", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByBtaW5lY3JhZnQ6Y3JpbXNvbl9wcmVzc3VyZV9wbGF0ZQ==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJmJsb2NrLm1pbmVjcmFmdC5jcmltc29uX3ByZXNzdXJlX3BsYXRlAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 742, - "key": "minecraft:warped_pressure_plate", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx9taW5lY3JhZnQ6d2FycGVkX3ByZXNzdXJlX3BsYXRl", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWJsb2NrLm1pbmVjcmFmdC53YXJwZWRfcHJlc3N1cmVfcGxhdGUA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 743, - "key": "minecraft:iron_door", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxNtaW5lY3JhZnQ6aXJvbl9kb29y", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGWJsb2NrLm1pbmVjcmFmdC5pcm9uX2Rvb3IA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 744, - "key": "minecraft:oak_door", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxJtaW5lY3JhZnQ6b2FrX2Rvb3I=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGGJsb2NrLm1pbmVjcmFmdC5vYWtfZG9vcgA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 745, - "key": "minecraft:spruce_door", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6c3BydWNlX2Rvb3I=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5zcHJ1Y2VfZG9vcgA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 746, - "key": "minecraft:birch_door", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxRtaW5lY3JhZnQ6YmlyY2hfZG9vcg==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC5iaXJjaF9kb29yAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 747, - "key": "minecraft:jungle_door", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6anVuZ2xlX2Rvb3I=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5qdW5nbGVfZG9vcgA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 748, - "key": "minecraft:acacia_door", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6YWNhY2lhX2Rvb3I=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5hY2FjaWFfZG9vcgA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 749, - "key": "minecraft:cherry_door", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6Y2hlcnJ5X2Rvb3I=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5jaGVycnlfZG9vcgA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 750, - "key": "minecraft:dark_oak_door", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6ZGFya19vYWtfZG9vcg==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5kYXJrX29ha19kb29yAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 751, - "key": "minecraft:pale_oak_door", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6cGFsZV9vYWtfZG9vcg==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5wYWxlX29ha19kb29yAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 752, - "key": "minecraft:mangrove_door", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6bWFuZ3JvdmVfZG9vcg==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5tYW5ncm92ZV9kb29yAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 753, - "key": "minecraft:bamboo_door", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6YmFtYm9vX2Rvb3I=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5iYW1ib29fZG9vcgA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 754, - "key": "minecraft:crimson_door", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxZtaW5lY3JhZnQ6Y3JpbXNvbl9kb29y", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC5jcmltc29uX2Rvb3IA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 755, - "key": "minecraft:warped_door", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6d2FycGVkX2Rvb3I=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC53YXJwZWRfZG9vcgA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 756, - "key": "minecraft:copper_door", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6Y29wcGVyX2Rvb3I=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5jb3BwZXJfZG9vcgA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 757, - "key": "minecraft:exposed_copper_door", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx1taW5lY3JhZnQ6ZXhwb3NlZF9jb3BwZXJfZG9vcg==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2Jsb2NrLm1pbmVjcmFmdC5leHBvc2VkX2NvcHBlcl9kb29yAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 758, - "key": "minecraft:weathered_copper_door", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx9taW5lY3JhZnQ6d2VhdGhlcmVkX2NvcHBlcl9kb29y", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWJsb2NrLm1pbmVjcmFmdC53ZWF0aGVyZWRfY29wcGVyX2Rvb3IA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 759, - "key": "minecraft:oxidized_copper_door", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx5taW5lY3JhZnQ6b3hpZGl6ZWRfY29wcGVyX2Rvb3I=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJGJsb2NrLm1pbmVjcmFmdC5veGlkaXplZF9jb3BwZXJfZG9vcgA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 760, - "key": "minecraft:waxed_copper_door", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxttaW5lY3JhZnQ6d2F4ZWRfY29wcGVyX2Rvb3I=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWJsb2NrLm1pbmVjcmFmdC53YXhlZF9jb3BwZXJfZG9vcgA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 761, - "key": "minecraft:waxed_exposed_copper_door", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByNtaW5lY3JhZnQ6d2F4ZWRfZXhwb3NlZF9jb3BwZXJfZG9vcg==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAKWJsb2NrLm1pbmVjcmFmdC53YXhlZF9leHBvc2VkX2NvcHBlcl9kb29yAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 762, - "key": "minecraft:waxed_weathered_copper_door", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByVtaW5lY3JhZnQ6d2F4ZWRfd2VhdGhlcmVkX2NvcHBlcl9kb29y", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAK2Jsb2NrLm1pbmVjcmFmdC53YXhlZF93ZWF0aGVyZWRfY29wcGVyX2Rvb3IA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 763, - "key": "minecraft:waxed_oxidized_copper_door", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByRtaW5lY3JhZnQ6d2F4ZWRfb3hpZGl6ZWRfY29wcGVyX2Rvb3I=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAKmJsb2NrLm1pbmVjcmFmdC53YXhlZF9veGlkaXplZF9jb3BwZXJfZG9vcgA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 764, - "key": "minecraft:iron_trapdoor", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6aXJvbl90cmFwZG9vcg==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5pcm9uX3RyYXBkb29yAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 765, - "key": "minecraft:oak_trapdoor", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxZtaW5lY3JhZnQ6b2FrX3RyYXBkb29y", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC5vYWtfdHJhcGRvb3IA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 766, - "key": "minecraft:spruce_trapdoor", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxltaW5lY3JhZnQ6c3BydWNlX3RyYXBkb29y", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC5zcHJ1Y2VfdHJhcGRvb3IA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 767, - "key": "minecraft:birch_trapdoor", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxhtaW5lY3JhZnQ6YmlyY2hfdHJhcGRvb3I=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC5iaXJjaF90cmFwZG9vcgA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 768, - "key": "minecraft:jungle_trapdoor", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxltaW5lY3JhZnQ6anVuZ2xlX3RyYXBkb29y", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC5qdW5nbGVfdHJhcGRvb3IA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 769, - "key": "minecraft:acacia_trapdoor", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxltaW5lY3JhZnQ6YWNhY2lhX3RyYXBkb29y", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC5hY2FjaWFfdHJhcGRvb3IA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 770, - "key": "minecraft:cherry_trapdoor", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxltaW5lY3JhZnQ6Y2hlcnJ5X3RyYXBkb29y", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC5jaGVycnlfdHJhcGRvb3IA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 771, - "key": "minecraft:dark_oak_trapdoor", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxttaW5lY3JhZnQ6ZGFya19vYWtfdHJhcGRvb3I=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWJsb2NrLm1pbmVjcmFmdC5kYXJrX29ha190cmFwZG9vcgA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 772, - "key": "minecraft:pale_oak_trapdoor", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxttaW5lY3JhZnQ6cGFsZV9vYWtfdHJhcGRvb3I=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWJsb2NrLm1pbmVjcmFmdC5wYWxlX29ha190cmFwZG9vcgA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 773, - "key": "minecraft:mangrove_trapdoor", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxttaW5lY3JhZnQ6bWFuZ3JvdmVfdHJhcGRvb3I=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWJsb2NrLm1pbmVjcmFmdC5tYW5ncm92ZV90cmFwZG9vcgA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 774, - "key": "minecraft:bamboo_trapdoor", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxltaW5lY3JhZnQ6YmFtYm9vX3RyYXBkb29y", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC5iYW1ib29fdHJhcGRvb3IA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 775, - "key": "minecraft:crimson_trapdoor", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxptaW5lY3JhZnQ6Y3JpbXNvbl90cmFwZG9vcg==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGJsb2NrLm1pbmVjcmFmdC5jcmltc29uX3RyYXBkb29yAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 776, - "key": "minecraft:warped_trapdoor", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxltaW5lY3JhZnQ6d2FycGVkX3RyYXBkb29y", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC53YXJwZWRfdHJhcGRvb3IA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 777, - "key": "minecraft:copper_trapdoor", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxltaW5lY3JhZnQ6Y29wcGVyX3RyYXBkb29y", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC5jb3BwZXJfdHJhcGRvb3IA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 778, - "key": "minecraft:exposed_copper_trapdoor", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByFtaW5lY3JhZnQ6ZXhwb3NlZF9jb3BwZXJfdHJhcGRvb3I=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJ2Jsb2NrLm1pbmVjcmFmdC5leHBvc2VkX2NvcHBlcl90cmFwZG9vcgA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 779, - "key": "minecraft:weathered_copper_trapdoor", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByNtaW5lY3JhZnQ6d2VhdGhlcmVkX2NvcHBlcl90cmFwZG9vcg==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAKWJsb2NrLm1pbmVjcmFmdC53ZWF0aGVyZWRfY29wcGVyX3RyYXBkb29yAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 780, - "key": "minecraft:oxidized_copper_trapdoor", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByJtaW5lY3JhZnQ6b3hpZGl6ZWRfY29wcGVyX3RyYXBkb29y", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAKGJsb2NrLm1pbmVjcmFmdC5veGlkaXplZF9jb3BwZXJfdHJhcGRvb3IA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 781, - "key": "minecraft:waxed_copper_trapdoor", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx9taW5lY3JhZnQ6d2F4ZWRfY29wcGVyX3RyYXBkb29y", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWJsb2NrLm1pbmVjcmFmdC53YXhlZF9jb3BwZXJfdHJhcGRvb3IA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 782, - "key": "minecraft:waxed_exposed_copper_trapdoor", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BydtaW5lY3JhZnQ6d2F4ZWRfZXhwb3NlZF9jb3BwZXJfdHJhcGRvb3I=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUALWJsb2NrLm1pbmVjcmFmdC53YXhlZF9leHBvc2VkX2NvcHBlcl90cmFwZG9vcgA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 783, - "key": "minecraft:waxed_weathered_copper_trapdoor", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByltaW5lY3JhZnQ6d2F4ZWRfd2VhdGhlcmVkX2NvcHBlcl90cmFwZG9vcg==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAL2Jsb2NrLm1pbmVjcmFmdC53YXhlZF93ZWF0aGVyZWRfY29wcGVyX3RyYXBkb29yAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 784, - "key": "minecraft:waxed_oxidized_copper_trapdoor", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByhtaW5lY3JhZnQ6d2F4ZWRfb3hpZGl6ZWRfY29wcGVyX3RyYXBkb29y", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUALmJsb2NrLm1pbmVjcmFmdC53YXhlZF9veGlkaXplZF9jb3BwZXJfdHJhcGRvb3IA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 785, - "key": "minecraft:oak_fence_gate", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxhtaW5lY3JhZnQ6b2FrX2ZlbmNlX2dhdGU=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC5vYWtfZmVuY2VfZ2F0ZQA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 786, - "key": "minecraft:spruce_fence_gate", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxttaW5lY3JhZnQ6c3BydWNlX2ZlbmNlX2dhdGU=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWJsb2NrLm1pbmVjcmFmdC5zcHJ1Y2VfZmVuY2VfZ2F0ZQA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 787, - "key": "minecraft:birch_fence_gate", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxptaW5lY3JhZnQ6YmlyY2hfZmVuY2VfZ2F0ZQ==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGJsb2NrLm1pbmVjcmFmdC5iaXJjaF9mZW5jZV9nYXRlAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 788, - "key": "minecraft:jungle_fence_gate", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxttaW5lY3JhZnQ6anVuZ2xlX2ZlbmNlX2dhdGU=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWJsb2NrLm1pbmVjcmFmdC5qdW5nbGVfZmVuY2VfZ2F0ZQA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 789, - "key": "minecraft:acacia_fence_gate", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxttaW5lY3JhZnQ6YWNhY2lhX2ZlbmNlX2dhdGU=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWJsb2NrLm1pbmVjcmFmdC5hY2FjaWFfZmVuY2VfZ2F0ZQA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 790, - "key": "minecraft:cherry_fence_gate", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxttaW5lY3JhZnQ6Y2hlcnJ5X2ZlbmNlX2dhdGU=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWJsb2NrLm1pbmVjcmFmdC5jaGVycnlfZmVuY2VfZ2F0ZQA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 791, - "key": "minecraft:dark_oak_fence_gate", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx1taW5lY3JhZnQ6ZGFya19vYWtfZmVuY2VfZ2F0ZQ==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2Jsb2NrLm1pbmVjcmFmdC5kYXJrX29ha19mZW5jZV9nYXRlAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 792, - "key": "minecraft:pale_oak_fence_gate", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx1taW5lY3JhZnQ6cGFsZV9vYWtfZmVuY2VfZ2F0ZQ==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2Jsb2NrLm1pbmVjcmFmdC5wYWxlX29ha19mZW5jZV9nYXRlAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 793, - "key": "minecraft:mangrove_fence_gate", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx1taW5lY3JhZnQ6bWFuZ3JvdmVfZmVuY2VfZ2F0ZQ==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2Jsb2NrLm1pbmVjcmFmdC5tYW5ncm92ZV9mZW5jZV9nYXRlAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 794, - "key": "minecraft:bamboo_fence_gate", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxttaW5lY3JhZnQ6YmFtYm9vX2ZlbmNlX2dhdGU=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWJsb2NrLm1pbmVjcmFmdC5iYW1ib29fZmVuY2VfZ2F0ZQA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 795, - "key": "minecraft:crimson_fence_gate", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxxtaW5lY3JhZnQ6Y3JpbXNvbl9mZW5jZV9nYXRl", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAImJsb2NrLm1pbmVjcmFmdC5jcmltc29uX2ZlbmNlX2dhdGUA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 796, - "key": "minecraft:warped_fence_gate", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxttaW5lY3JhZnQ6d2FycGVkX2ZlbmNlX2dhdGU=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWJsb2NrLm1pbmVjcmFmdC53YXJwZWRfZmVuY2VfZ2F0ZQA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 797, - "key": "minecraft:powered_rail", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxZtaW5lY3JhZnQ6cG93ZXJlZF9yYWls", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC5wb3dlcmVkX3JhaWwA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 798, - "key": "minecraft:detector_rail", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6ZGV0ZWN0b3JfcmFpbA==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5kZXRlY3Rvcl9yYWlsAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 799, - "key": "minecraft:rail", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bw5taW5lY3JhZnQ6cmFpbA==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFGJsb2NrLm1pbmVjcmFmdC5yYWlsAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 800, - "key": "minecraft:activator_rail", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxhtaW5lY3JhZnQ6YWN0aXZhdG9yX3JhaWw=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC5hY3RpdmF0b3JfcmFpbAA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 801, - "key": "minecraft:saddle", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:equippable": "HAeHBgEQbWluZWNyYWZ0OnNhZGRsZQABABptaW5lY3JhZnQ6Y2FuX2VxdWlwX3NhZGRsZQEBAQEBwA0=", - "minecraft:item_model": "BxBtaW5lY3JhZnQ6c2FkZGxl", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFWl0ZW0ubWluZWNyYWZ0LnNhZGRsZQA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 802, - "key": "minecraft:white_harness", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:equippable": "HAbfBQEXbWluZWNyYWZ0OndoaXRlX2hhcm5lc3MAAQAbbWluZWNyYWZ0OmNhbl9lcXVpcF9oYXJuZXNzAQEBAQHgBQ==", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6d2hpdGVfaGFybmVzcw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGl0ZW0ubWluZWNyYWZ0LndoaXRlX2hhcm5lc3MA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 803, - "key": "minecraft:orange_harness", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:equippable": "HAbfBQEYbWluZWNyYWZ0Om9yYW5nZV9oYXJuZXNzAAEAG21pbmVjcmFmdDpjYW5fZXF1aXBfaGFybmVzcwEBAQEB4AU=", - "minecraft:item_model": "BxhtaW5lY3JhZnQ6b3JhbmdlX2hhcm5lc3M=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWl0ZW0ubWluZWNyYWZ0Lm9yYW5nZV9oYXJuZXNzAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 804, - "key": "minecraft:magenta_harness", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:equippable": "HAbfBQEZbWluZWNyYWZ0Om1hZ2VudGFfaGFybmVzcwABABttaW5lY3JhZnQ6Y2FuX2VxdWlwX2hhcm5lc3MBAQEBAeAF", - "minecraft:item_model": "BxltaW5lY3JhZnQ6bWFnZW50YV9oYXJuZXNz", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHml0ZW0ubWluZWNyYWZ0Lm1hZ2VudGFfaGFybmVzcwA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 805, - "key": "minecraft:light_blue_harness", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:equippable": "HAbfBQEcbWluZWNyYWZ0OmxpZ2h0X2JsdWVfaGFybmVzcwABABttaW5lY3JhZnQ6Y2FuX2VxdWlwX2hhcm5lc3MBAQEBAeAF", - "minecraft:item_model": "BxxtaW5lY3JhZnQ6bGlnaHRfYmx1ZV9oYXJuZXNz", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWl0ZW0ubWluZWNyYWZ0LmxpZ2h0X2JsdWVfaGFybmVzcwA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 806, - "key": "minecraft:yellow_harness", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:equippable": "HAbfBQEYbWluZWNyYWZ0OnllbGxvd19oYXJuZXNzAAEAG21pbmVjcmFmdDpjYW5fZXF1aXBfaGFybmVzcwEBAQEB4AU=", - "minecraft:item_model": "BxhtaW5lY3JhZnQ6eWVsbG93X2hhcm5lc3M=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWl0ZW0ubWluZWNyYWZ0LnllbGxvd19oYXJuZXNzAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 807, - "key": "minecraft:lime_harness", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:equippable": "HAbfBQEWbWluZWNyYWZ0OmxpbWVfaGFybmVzcwABABttaW5lY3JhZnQ6Y2FuX2VxdWlwX2hhcm5lc3MBAQEBAeAF", - "minecraft:item_model": "BxZtaW5lY3JhZnQ6bGltZV9oYXJuZXNz", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2l0ZW0ubWluZWNyYWZ0LmxpbWVfaGFybmVzcwA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 808, - "key": "minecraft:pink_harness", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:equippable": "HAbfBQEWbWluZWNyYWZ0OnBpbmtfaGFybmVzcwABABttaW5lY3JhZnQ6Y2FuX2VxdWlwX2hhcm5lc3MBAQEBAeAF", - "minecraft:item_model": "BxZtaW5lY3JhZnQ6cGlua19oYXJuZXNz", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2l0ZW0ubWluZWNyYWZ0LnBpbmtfaGFybmVzcwA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 809, - "key": "minecraft:gray_harness", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:equippable": "HAbfBQEWbWluZWNyYWZ0OmdyYXlfaGFybmVzcwABABttaW5lY3JhZnQ6Y2FuX2VxdWlwX2hhcm5lc3MBAQEBAeAF", - "minecraft:item_model": "BxZtaW5lY3JhZnQ6Z3JheV9oYXJuZXNz", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2l0ZW0ubWluZWNyYWZ0LmdyYXlfaGFybmVzcwA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 810, - "key": "minecraft:light_gray_harness", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:equippable": "HAbfBQEcbWluZWNyYWZ0OmxpZ2h0X2dyYXlfaGFybmVzcwABABttaW5lY3JhZnQ6Y2FuX2VxdWlwX2hhcm5lc3MBAQEBAeAF", - "minecraft:item_model": "BxxtaW5lY3JhZnQ6bGlnaHRfZ3JheV9oYXJuZXNz", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWl0ZW0ubWluZWNyYWZ0LmxpZ2h0X2dyYXlfaGFybmVzcwA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 811, - "key": "minecraft:cyan_harness", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:equippable": "HAbfBQEWbWluZWNyYWZ0OmN5YW5faGFybmVzcwABABttaW5lY3JhZnQ6Y2FuX2VxdWlwX2hhcm5lc3MBAQEBAeAF", - "minecraft:item_model": "BxZtaW5lY3JhZnQ6Y3lhbl9oYXJuZXNz", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2l0ZW0ubWluZWNyYWZ0LmN5YW5faGFybmVzcwA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 812, - "key": "minecraft:purple_harness", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:equippable": "HAbfBQEYbWluZWNyYWZ0OnB1cnBsZV9oYXJuZXNzAAEAG21pbmVjcmFmdDpjYW5fZXF1aXBfaGFybmVzcwEBAQEB4AU=", - "minecraft:item_model": "BxhtaW5lY3JhZnQ6cHVycGxlX2hhcm5lc3M=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWl0ZW0ubWluZWNyYWZ0LnB1cnBsZV9oYXJuZXNzAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 813, - "key": "minecraft:blue_harness", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:equippable": "HAbfBQEWbWluZWNyYWZ0OmJsdWVfaGFybmVzcwABABttaW5lY3JhZnQ6Y2FuX2VxdWlwX2hhcm5lc3MBAQEBAeAF", - "minecraft:item_model": "BxZtaW5lY3JhZnQ6Ymx1ZV9oYXJuZXNz", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2l0ZW0ubWluZWNyYWZ0LmJsdWVfaGFybmVzcwA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 814, - "key": "minecraft:brown_harness", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:equippable": "HAbfBQEXbWluZWNyYWZ0OmJyb3duX2hhcm5lc3MAAQAbbWluZWNyYWZ0OmNhbl9lcXVpcF9oYXJuZXNzAQEBAQHgBQ==", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6YnJvd25faGFybmVzcw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGl0ZW0ubWluZWNyYWZ0LmJyb3duX2hhcm5lc3MA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 815, - "key": "minecraft:green_harness", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:equippable": "HAbfBQEXbWluZWNyYWZ0OmdyZWVuX2hhcm5lc3MAAQAbbWluZWNyYWZ0OmNhbl9lcXVpcF9oYXJuZXNzAQEBAQHgBQ==", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6Z3JlZW5faGFybmVzcw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGl0ZW0ubWluZWNyYWZ0LmdyZWVuX2hhcm5lc3MA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 816, - "key": "minecraft:red_harness", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:equippable": "HAbfBQEVbWluZWNyYWZ0OnJlZF9oYXJuZXNzAAEAG21pbmVjcmFmdDpjYW5fZXF1aXBfaGFybmVzcwEBAQEB4AU=", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6cmVkX2hhcm5lc3M=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGml0ZW0ubWluZWNyYWZ0LnJlZF9oYXJuZXNzAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 817, - "key": "minecraft:black_harness", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:equippable": "HAbfBQEXbWluZWNyYWZ0OmJsYWNrX2hhcm5lc3MAAQAbbWluZWNyYWZ0OmNhbl9lcXVpcF9oYXJuZXNzAQEBAQHgBQ==", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6YmxhY2tfaGFybmVzcw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGl0ZW0ubWluZWNyYWZ0LmJsYWNrX2hhcm5lc3MA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 818, - "key": "minecraft:minecart", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxJtaW5lY3JhZnQ6bWluZWNhcnQ=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAF2l0ZW0ubWluZWNyYWZ0Lm1pbmVjYXJ0AA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 819, - "key": "minecraft:chest_minecart", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxhtaW5lY3JhZnQ6Y2hlc3RfbWluZWNhcnQ=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWl0ZW0ubWluZWNyYWZ0LmNoZXN0X21pbmVjYXJ0AA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 820, - "key": "minecraft:furnace_minecart", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxptaW5lY3JhZnQ6ZnVybmFjZV9taW5lY2FydA==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2l0ZW0ubWluZWNyYWZ0LmZ1cm5hY2VfbWluZWNhcnQA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 821, - "key": "minecraft:tnt_minecart", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxZtaW5lY3JhZnQ6dG50X21pbmVjYXJ0", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2l0ZW0ubWluZWNyYWZ0LnRudF9taW5lY2FydAA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 822, - "key": "minecraft:hopper_minecart", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxltaW5lY3JhZnQ6aG9wcGVyX21pbmVjYXJ0", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHml0ZW0ubWluZWNyYWZ0LmhvcHBlcl9taW5lY2FydAA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 823, - "key": "minecraft:carrot_on_a_stick", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:damage": "AwA=", - "minecraft:enchantments": "CgA=", - "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": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 824, - "key": "minecraft:warped_fungus_on_a_stick", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:damage": "AwA=", - "minecraft:enchantments": "CgA=", - "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": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 825, - "key": "minecraft:phantom_membrane", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxptaW5lY3JhZnQ6cGhhbnRvbV9tZW1icmFuZQ==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2l0ZW0ubWluZWNyYWZ0LnBoYW50b21fbWVtYnJhbmUA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 826, - "key": "minecraft:elytra", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:damage": "AwA=", - "minecraft:enchantments": "CgA=", - "minecraft:equippable": "HANGARBtaW5lY3JhZnQ6ZWx5dHJhAAABAQAAAJIK", - "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": "EAA=", - "minecraft:repairable": "HQK5Bg==", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 827, - "key": "minecraft:oak_boat", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxJtaW5lY3JhZnQ6b2FrX2JvYXQ=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAF2l0ZW0ubWluZWNyYWZ0Lm9ha19ib2F0AA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 828, - "key": "minecraft:oak_chest_boat", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxhtaW5lY3JhZnQ6b2FrX2NoZXN0X2JvYXQ=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWl0ZW0ubWluZWNyYWZ0Lm9ha19jaGVzdF9ib2F0AA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 829, - "key": "minecraft:spruce_boat", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6c3BydWNlX2JvYXQ=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGml0ZW0ubWluZWNyYWZ0LnNwcnVjZV9ib2F0AA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 830, - "key": "minecraft:spruce_chest_boat", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxttaW5lY3JhZnQ6c3BydWNlX2NoZXN0X2JvYXQ=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGl0ZW0ubWluZWNyYWZ0LnNwcnVjZV9jaGVzdF9ib2F0AA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 831, - "key": "minecraft:birch_boat", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxRtaW5lY3JhZnQ6YmlyY2hfYm9hdA==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGWl0ZW0ubWluZWNyYWZ0LmJpcmNoX2JvYXQA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 832, - "key": "minecraft:birch_chest_boat", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxptaW5lY3JhZnQ6YmlyY2hfY2hlc3RfYm9hdA==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2l0ZW0ubWluZWNyYWZ0LmJpcmNoX2NoZXN0X2JvYXQA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 833, - "key": "minecraft:jungle_boat", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6anVuZ2xlX2JvYXQ=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGml0ZW0ubWluZWNyYWZ0Lmp1bmdsZV9ib2F0AA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 834, - "key": "minecraft:jungle_chest_boat", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxttaW5lY3JhZnQ6anVuZ2xlX2NoZXN0X2JvYXQ=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGl0ZW0ubWluZWNyYWZ0Lmp1bmdsZV9jaGVzdF9ib2F0AA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 835, - "key": "minecraft:acacia_boat", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6YWNhY2lhX2JvYXQ=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGml0ZW0ubWluZWNyYWZ0LmFjYWNpYV9ib2F0AA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 836, - "key": "minecraft:acacia_chest_boat", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxttaW5lY3JhZnQ6YWNhY2lhX2NoZXN0X2JvYXQ=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGl0ZW0ubWluZWNyYWZ0LmFjYWNpYV9jaGVzdF9ib2F0AA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 837, - "key": "minecraft:cherry_boat", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6Y2hlcnJ5X2JvYXQ=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGml0ZW0ubWluZWNyYWZ0LmNoZXJyeV9ib2F0AA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 838, - "key": "minecraft:cherry_chest_boat", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxttaW5lY3JhZnQ6Y2hlcnJ5X2NoZXN0X2JvYXQ=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGl0ZW0ubWluZWNyYWZ0LmNoZXJyeV9jaGVzdF9ib2F0AA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 839, - "key": "minecraft:dark_oak_boat", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6ZGFya19vYWtfYm9hdA==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGl0ZW0ubWluZWNyYWZ0LmRhcmtfb2FrX2JvYXQA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 840, - "key": "minecraft:dark_oak_chest_boat", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx1taW5lY3JhZnQ6ZGFya19vYWtfY2hlc3RfYm9hdA==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIml0ZW0ubWluZWNyYWZ0LmRhcmtfb2FrX2NoZXN0X2JvYXQA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 841, - "key": "minecraft:pale_oak_boat", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6cGFsZV9vYWtfYm9hdA==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGl0ZW0ubWluZWNyYWZ0LnBhbGVfb2FrX2JvYXQA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 842, - "key": "minecraft:pale_oak_chest_boat", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx1taW5lY3JhZnQ6cGFsZV9vYWtfY2hlc3RfYm9hdA==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIml0ZW0ubWluZWNyYWZ0LnBhbGVfb2FrX2NoZXN0X2JvYXQA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 843, - "key": "minecraft:mangrove_boat", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6bWFuZ3JvdmVfYm9hdA==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGl0ZW0ubWluZWNyYWZ0Lm1hbmdyb3ZlX2JvYXQA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 844, - "key": "minecraft:mangrove_chest_boat", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx1taW5lY3JhZnQ6bWFuZ3JvdmVfY2hlc3RfYm9hdA==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIml0ZW0ubWluZWNyYWZ0Lm1hbmdyb3ZlX2NoZXN0X2JvYXQA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 845, - "key": "minecraft:bamboo_raft", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6YmFtYm9vX3JhZnQ=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGml0ZW0ubWluZWNyYWZ0LmJhbWJvb19yYWZ0AA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 846, - "key": "minecraft:bamboo_chest_raft", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxttaW5lY3JhZnQ6YmFtYm9vX2NoZXN0X3JhZnQ=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGl0ZW0ubWluZWNyYWZ0LmJhbWJvb19jaGVzdF9yYWZ0AA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 847, - "key": "minecraft:structure_block", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxltaW5lY3JhZnQ6c3RydWN0dXJlX2Jsb2Nr", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC5zdHJ1Y3R1cmVfYmxvY2sA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQM=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 848, - "key": "minecraft:jigsaw", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxBtaW5lY3JhZnQ6amlnc2F3", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFmJsb2NrLm1pbmVjcmFmdC5qaWdzYXcA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQM=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 849, - "key": "minecraft:test_block", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:block_state": "QwEEbW9kZQVzdGFydA==", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxRtaW5lY3JhZnQ6dGVzdF9ibG9jaw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC50ZXN0X2Jsb2NrAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQM=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 850, - "key": "minecraft:test_instance_block", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx1taW5lY3JhZnQ6dGVzdF9pbnN0YW5jZV9ibG9jaw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2Jsb2NrLm1pbmVjcmFmdC50ZXN0X2luc3RhbmNlX2Jsb2NrAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQM=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 851, - "key": "minecraft:turtle_helmet", - "components": { - "minecraft:attribute_modifiers": "DQIAFm1pbmVjcmFmdDphcm1vci5oZWxtZXRAAAAAAAAAAAAHAAEWbWluZWNyYWZ0OmFybW9yLmhlbG1ldAAAAAAAAAAAAAcA", - "minecraft:break_sound": "R7EG", - "minecraft:damage": "AwA=", - "minecraft:enchantable": "Gwk=", - "minecraft:enchantments": "CgA=", - "minecraft:equippable": "HARMARZtaW5lY3JhZnQ6dHVydGxlX3NjdXRlAAABAQEAAJIK", - "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": "EAA=", - "minecraft:repairable": "HQAfbWluZWNyYWZ0OnJlcGFpcnNfdHVydGxlX2hlbG1ldA==", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 852, - "key": "minecraft:turtle_scute", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxZtaW5lY3JhZnQ6dHVydGxlX3NjdXRl", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2l0ZW0ubWluZWNyYWZ0LnR1cnRsZV9zY3V0ZQA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 853, - "key": "minecraft:armadillo_scute", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxltaW5lY3JhZnQ6YXJtYWRpbGxvX3NjdXRl", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHml0ZW0ubWluZWNyYWZ0LmFybWFkaWxsb19zY3V0ZQA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 854, - "key": "minecraft:wolf_armor", - "components": { - "minecraft:attribute_modifiers": "DQIAFG1pbmVjcmFmdDphcm1vci5ib2R5QCYAAAAAAAAACQABFG1pbmVjcmFmdDphcm1vci5ib2R5AAAAAAAAAAAACQA=", - "minecraft:break_sound": "R94M", - "minecraft:damage": "AwA=", - "minecraft:enchantments": "CgA=", - "minecraft:equippable": "HAZNARltaW5lY3JhZnQ6YXJtYWRpbGxvX3NjdXRlAAECjwEBAQEAAU4=", - "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": "EAA=", - "minecraft:repairable": "HQAcbWluZWNyYWZ0OnJlcGFpcnNfd29sZl9hcm1vcg==", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 855, - "key": "minecraft:flint_and_steel", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:damage": "AwA=", - "minecraft:enchantments": "CgA=", - "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": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 856, - "key": "minecraft:bowl", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bw5taW5lY3JhZnQ6Ym93bA==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAE2l0ZW0ubWluZWNyYWZ0LmJvd2wA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 857, - "key": "minecraft:apple", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:consumable": "FT/MzM0B5wQBAA==", - "minecraft:enchantments": "CgA=", - "minecraft:food": "FARAGZmaAA==", - "minecraft:item_model": "Bw9taW5lY3JhZnQ6YXBwbGU=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFGl0ZW0ubWluZWNyYWZ0LmFwcGxlAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 858, - "key": "minecraft:bow", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:damage": "AwA=", - "minecraft:enchantable": "GwE=", - "minecraft:enchantments": "CgA=", - "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": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 859, - "key": "minecraft:arrow", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bw9taW5lY3JhZnQ6YXJyb3c=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFGl0ZW0ubWluZWNyYWZ0LmFycm93AA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 860, - "key": "minecraft:coal", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bw5taW5lY3JhZnQ6Y29hbA==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAE2l0ZW0ubWluZWNyYWZ0LmNvYWwA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 861, - "key": "minecraft:charcoal", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxJtaW5lY3JhZnQ6Y2hhcmNvYWw=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAF2l0ZW0ubWluZWNyYWZ0LmNoYXJjb2FsAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 862, - "key": "minecraft:diamond", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxFtaW5lY3JhZnQ6ZGlhbW9uZA==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFml0ZW0ubWluZWNyYWZ0LmRpYW1vbmQA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:provides_trim_material": "NQARbWluZWNyYWZ0OmRpYW1vbmQ=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 863, - "key": "minecraft:emerald", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxFtaW5lY3JhZnQ6ZW1lcmFsZA==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFml0ZW0ubWluZWNyYWZ0LmVtZXJhbGQA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:provides_trim_material": "NQARbWluZWNyYWZ0OmVtZXJhbGQ=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 864, - "key": "minecraft:lapis_lazuli", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxZtaW5lY3JhZnQ6bGFwaXNfbGF6dWxp", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2l0ZW0ubWluZWNyYWZ0LmxhcGlzX2xhenVsaQA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:provides_trim_material": "NQAPbWluZWNyYWZ0OmxhcGlz", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 865, - "key": "minecraft:quartz", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxBtaW5lY3JhZnQ6cXVhcnR6", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFWl0ZW0ubWluZWNyYWZ0LnF1YXJ0egA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:provides_trim_material": "NQAQbWluZWNyYWZ0OnF1YXJ0eg==", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 866, - "key": "minecraft:amethyst_shard", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxhtaW5lY3JhZnQ6YW1ldGh5c3Rfc2hhcmQ=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWl0ZW0ubWluZWNyYWZ0LmFtZXRoeXN0X3NoYXJkAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:provides_trim_material": "NQASbWluZWNyYWZ0OmFtZXRoeXN0", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 867, - "key": "minecraft:raw_iron", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxJtaW5lY3JhZnQ6cmF3X2lyb24=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAF2l0ZW0ubWluZWNyYWZ0LnJhd19pcm9uAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 868, - "key": "minecraft:iron_ingot", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxRtaW5lY3JhZnQ6aXJvbl9pbmdvdA==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGWl0ZW0ubWluZWNyYWZ0Lmlyb25faW5nb3QA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:provides_trim_material": "NQAObWluZWNyYWZ0Omlyb24=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 869, - "key": "minecraft:raw_copper", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxRtaW5lY3JhZnQ6cmF3X2NvcHBlcg==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGWl0ZW0ubWluZWNyYWZ0LnJhd19jb3BwZXIA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 870, - "key": "minecraft:copper_ingot", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxZtaW5lY3JhZnQ6Y29wcGVyX2luZ290", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2l0ZW0ubWluZWNyYWZ0LmNvcHBlcl9pbmdvdAA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:provides_trim_material": "NQAQbWluZWNyYWZ0OmNvcHBlcg==", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 871, - "key": "minecraft:raw_gold", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxJtaW5lY3JhZnQ6cmF3X2dvbGQ=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAF2l0ZW0ubWluZWNyYWZ0LnJhd19nb2xkAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 872, - "key": "minecraft:gold_ingot", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxRtaW5lY3JhZnQ6Z29sZF9pbmdvdA==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGWl0ZW0ubWluZWNyYWZ0LmdvbGRfaW5nb3QA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:provides_trim_material": "NQAObWluZWNyYWZ0OmdvbGQ=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 873, - "key": "minecraft:netherite_ingot", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:damage_resistant": "GBFtaW5lY3JhZnQ6aXNfZmlyZQ==", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxltaW5lY3JhZnQ6bmV0aGVyaXRlX2luZ290", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHml0ZW0ubWluZWNyYWZ0Lm5ldGhlcml0ZV9pbmdvdAA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:provides_trim_material": "NQATbWluZWNyYWZ0Om5ldGhlcml0ZQ==", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 874, - "key": "minecraft:netherite_scrap", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:damage_resistant": "GBFtaW5lY3JhZnQ6aXNfZmlyZQ==", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxltaW5lY3JhZnQ6bmV0aGVyaXRlX3NjcmFw", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHml0ZW0ubWluZWNyYWZ0Lm5ldGhlcml0ZV9zY3JhcAA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 875, - "key": "minecraft:wooden_sword", - "components": { - "minecraft:attribute_modifiers": "DQICHG1pbmVjcmFmdDpiYXNlX2F0dGFja19kYW1hZ2VACAAAAAAAAAABAAQbbWluZWNyYWZ0OmJhc2VfYXR0YWNrX3NwZWVkwAMzM0AAAAAAAQA=", - "minecraft:break_sound": "R7EG", - "minecraft:damage": "AwA=", - "minecraft:enchantable": "Gw8=", - "minecraft:enchantments": "CgA=", - "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": "EAA=", - "minecraft:repairable": "HQAfbWluZWNyYWZ0Ondvb2Rlbl90b29sX21hdGVyaWFscw==", - "minecraft:tool": "GQMCgQEBQXAAAAEBAB9taW5lY3JhZnQ6c3dvcmRfaW5zdGFudGx5X21pbmVzAX9///8AABltaW5lY3JhZnQ6c3dvcmRfZWZmaWNpZW50AT/AAAAAP4AAAAIA", - "minecraft:tooltip_display": "DwAA", - "minecraft:weapon": "GgEAAAAA" - } - }, - { - "id": 876, - "key": "minecraft:wooden_shovel", - "components": { - "minecraft:attribute_modifiers": "DQICHG1pbmVjcmFmdDpiYXNlX2F0dGFja19kYW1hZ2U/+AAAAAAAAAABAAQbbWluZWNyYWZ0OmJhc2VfYXR0YWNrX3NwZWVkwAgAAAAAAAAAAQA=", - "minecraft:break_sound": "R7EG", - "minecraft:damage": "AwA=", - "minecraft:enchantable": "Gw8=", - "minecraft:enchantments": "CgA=", - "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": "EAA=", - "minecraft:repairable": "HQAfbWluZWNyYWZ0Ondvb2Rlbl90b29sX21hdGVyaWFscw==", - "minecraft:tool": "GQIAI21pbmVjcmFmdDppbmNvcnJlY3RfZm9yX3dvb2Rlbl90b29sAAEAABltaW5lY3JhZnQ6bWluZWFibGUvc2hvdmVsAUAAAAABAT+AAAABAQ==", - "minecraft:tooltip_display": "DwAA", - "minecraft:weapon": "GgIAAAAA" - } - }, - { - "id": 877, - "key": "minecraft:wooden_pickaxe", - "components": { - "minecraft:attribute_modifiers": "DQICHG1pbmVjcmFmdDpiYXNlX2F0dGFja19kYW1hZ2U/8AAAAAAAAAABAAQbbWluZWNyYWZ0OmJhc2VfYXR0YWNrX3NwZWVkwAZmZmAAAAAAAQA=", - "minecraft:break_sound": "R7EG", - "minecraft:damage": "AwA=", - "minecraft:enchantable": "Gw8=", - "minecraft:enchantments": "CgA=", - "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": "EAA=", - "minecraft:repairable": "HQAfbWluZWNyYWZ0Ondvb2Rlbl90b29sX21hdGVyaWFscw==", - "minecraft:tool": "GQIAI21pbmVjcmFmdDppbmNvcnJlY3RfZm9yX3dvb2Rlbl90b29sAAEAABptaW5lY3JhZnQ6bWluZWFibGUvcGlja2F4ZQFAAAAAAQE/gAAAAQE=", - "minecraft:tooltip_display": "DwAA", - "minecraft:weapon": "GgIAAAAA" - } - }, - { - "id": 878, - "key": "minecraft:wooden_axe", - "components": { - "minecraft:attribute_modifiers": "DQICHG1pbmVjcmFmdDpiYXNlX2F0dGFja19kYW1hZ2VAGAAAAAAAAAABAAQbbWluZWNyYWZ0OmJhc2VfYXR0YWNrX3NwZWVkwAmZmaAAAAAAAQA=", - "minecraft:break_sound": "R7EG", - "minecraft:damage": "AwA=", - "minecraft:enchantable": "Gw8=", - "minecraft:enchantments": "CgA=", - "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": "EAA=", - "minecraft:repairable": "HQAfbWluZWNyYWZ0Ondvb2Rlbl90b29sX21hdGVyaWFscw==", - "minecraft:tool": "GQIAI21pbmVjcmFmdDppbmNvcnJlY3RfZm9yX3dvb2Rlbl90b29sAAEAABZtaW5lY3JhZnQ6bWluZWFibGUvYXhlAUAAAAABAT+AAAABAQ==", - "minecraft:tooltip_display": "DwAA", - "minecraft:weapon": "GgJAoAAA" - } - }, - { - "id": 879, - "key": "minecraft:wooden_hoe", - "components": { - "minecraft:attribute_modifiers": "DQICHG1pbmVjcmFmdDpiYXNlX2F0dGFja19kYW1hZ2UAAAAAAAAAAAABAAQbbWluZWNyYWZ0OmJhc2VfYXR0YWNrX3NwZWVkwAgAAAAAAAAAAQA=", - "minecraft:break_sound": "R7EG", - "minecraft:damage": "AwA=", - "minecraft:enchantable": "Gw8=", - "minecraft:enchantments": "CgA=", - "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": "EAA=", - "minecraft:repairable": "HQAfbWluZWNyYWZ0Ondvb2Rlbl90b29sX21hdGVyaWFscw==", - "minecraft:tool": "GQIAI21pbmVjcmFmdDppbmNvcnJlY3RfZm9yX3dvb2Rlbl90b29sAAEAABZtaW5lY3JhZnQ6bWluZWFibGUvaG9lAUAAAAABAT+AAAABAQ==", - "minecraft:tooltip_display": "DwAA", - "minecraft:weapon": "GgIAAAAA" - } - }, - { - "id": 880, - "key": "minecraft:stone_sword", - "components": { - "minecraft:attribute_modifiers": "DQICHG1pbmVjcmFmdDpiYXNlX2F0dGFja19kYW1hZ2VAEAAAAAAAAAABAAQbbWluZWNyYWZ0OmJhc2VfYXR0YWNrX3NwZWVkwAMzM0AAAAAAAQA=", - "minecraft:break_sound": "R7EG", - "minecraft:damage": "AwA=", - "minecraft:enchantable": "GwU=", - "minecraft:enchantments": "CgA=", - "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": "EAA=", - "minecraft:repairable": "HQAebWluZWNyYWZ0OnN0b25lX3Rvb2xfbWF0ZXJpYWxz", - "minecraft:tool": "GQMCgQEBQXAAAAEBAB9taW5lY3JhZnQ6c3dvcmRfaW5zdGFudGx5X21pbmVzAX9///8AABltaW5lY3JhZnQ6c3dvcmRfZWZmaWNpZW50AT/AAAAAP4AAAAIA", - "minecraft:tooltip_display": "DwAA", - "minecraft:weapon": "GgEAAAAA" - } - }, - { - "id": 881, - "key": "minecraft:stone_shovel", - "components": { - "minecraft:attribute_modifiers": "DQICHG1pbmVjcmFmdDpiYXNlX2F0dGFja19kYW1hZ2VABAAAAAAAAAABAAQbbWluZWNyYWZ0OmJhc2VfYXR0YWNrX3NwZWVkwAgAAAAAAAAAAQA=", - "minecraft:break_sound": "R7EG", - "minecraft:damage": "AwA=", - "minecraft:enchantable": "GwU=", - "minecraft:enchantments": "CgA=", - "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": "EAA=", - "minecraft:repairable": "HQAebWluZWNyYWZ0OnN0b25lX3Rvb2xfbWF0ZXJpYWxz", - "minecraft:tool": "GQIAIm1pbmVjcmFmdDppbmNvcnJlY3RfZm9yX3N0b25lX3Rvb2wAAQAAGW1pbmVjcmFmdDptaW5lYWJsZS9zaG92ZWwBQIAAAAEBP4AAAAEB", - "minecraft:tooltip_display": "DwAA", - "minecraft:weapon": "GgIAAAAA" - } - }, - { - "id": 882, - "key": "minecraft:stone_pickaxe", - "components": { - "minecraft:attribute_modifiers": "DQICHG1pbmVjcmFmdDpiYXNlX2F0dGFja19kYW1hZ2VAAAAAAAAAAAABAAQbbWluZWNyYWZ0OmJhc2VfYXR0YWNrX3NwZWVkwAZmZmAAAAAAAQA=", - "minecraft:break_sound": "R7EG", - "minecraft:damage": "AwA=", - "minecraft:enchantable": "GwU=", - "minecraft:enchantments": "CgA=", - "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": "EAA=", - "minecraft:repairable": "HQAebWluZWNyYWZ0OnN0b25lX3Rvb2xfbWF0ZXJpYWxz", - "minecraft:tool": "GQIAIm1pbmVjcmFmdDppbmNvcnJlY3RfZm9yX3N0b25lX3Rvb2wAAQAAGm1pbmVjcmFmdDptaW5lYWJsZS9waWNrYXhlAUCAAAABAT+AAAABAQ==", - "minecraft:tooltip_display": "DwAA", - "minecraft:weapon": "GgIAAAAA" - } - }, - { - "id": 883, - "key": "minecraft:stone_axe", - "components": { - "minecraft:attribute_modifiers": "DQICHG1pbmVjcmFmdDpiYXNlX2F0dGFja19kYW1hZ2VAIAAAAAAAAAABAAQbbWluZWNyYWZ0OmJhc2VfYXR0YWNrX3NwZWVkwAmZmaAAAAAAAQA=", - "minecraft:break_sound": "R7EG", - "minecraft:damage": "AwA=", - "minecraft:enchantable": "GwU=", - "minecraft:enchantments": "CgA=", - "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": "EAA=", - "minecraft:repairable": "HQAebWluZWNyYWZ0OnN0b25lX3Rvb2xfbWF0ZXJpYWxz", - "minecraft:tool": "GQIAIm1pbmVjcmFmdDppbmNvcnJlY3RfZm9yX3N0b25lX3Rvb2wAAQAAFm1pbmVjcmFmdDptaW5lYWJsZS9heGUBQIAAAAEBP4AAAAEB", - "minecraft:tooltip_display": "DwAA", - "minecraft:weapon": "GgJAoAAA" - } - }, - { - "id": 884, - "key": "minecraft:stone_hoe", - "components": { - "minecraft:attribute_modifiers": "DQICHG1pbmVjcmFmdDpiYXNlX2F0dGFja19kYW1hZ2UAAAAAAAAAAAABAAQbbWluZWNyYWZ0OmJhc2VfYXR0YWNrX3NwZWVkwAAAAAAAAAAAAQA=", - "minecraft:break_sound": "R7EG", - "minecraft:damage": "AwA=", - "minecraft:enchantable": "GwU=", - "minecraft:enchantments": "CgA=", - "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": "EAA=", - "minecraft:repairable": "HQAebWluZWNyYWZ0OnN0b25lX3Rvb2xfbWF0ZXJpYWxz", - "minecraft:tool": "GQIAIm1pbmVjcmFmdDppbmNvcnJlY3RfZm9yX3N0b25lX3Rvb2wAAQAAFm1pbmVjcmFmdDptaW5lYWJsZS9ob2UBQIAAAAEBP4AAAAEB", - "minecraft:tooltip_display": "DwAA", - "minecraft:weapon": "GgIAAAAA" - } - }, - { - "id": 885, - "key": "minecraft:golden_sword", - "components": { - "minecraft:attribute_modifiers": "DQICHG1pbmVjcmFmdDpiYXNlX2F0dGFja19kYW1hZ2VACAAAAAAAAAABAAQbbWluZWNyYWZ0OmJhc2VfYXR0YWNrX3NwZWVkwAMzM0AAAAAAAQA=", - "minecraft:break_sound": "R7EG", - "minecraft:damage": "AwA=", - "minecraft:enchantable": "GxY=", - "minecraft:enchantments": "CgA=", - "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": "EAA=", - "minecraft:repairable": "HQAdbWluZWNyYWZ0OmdvbGRfdG9vbF9tYXRlcmlhbHM=", - "minecraft:tool": "GQMCgQEBQXAAAAEBAB9taW5lY3JhZnQ6c3dvcmRfaW5zdGFudGx5X21pbmVzAX9///8AABltaW5lY3JhZnQ6c3dvcmRfZWZmaWNpZW50AT/AAAAAP4AAAAIA", - "minecraft:tooltip_display": "DwAA", - "minecraft:weapon": "GgEAAAAA" - } - }, - { - "id": 886, - "key": "minecraft:golden_shovel", - "components": { - "minecraft:attribute_modifiers": "DQICHG1pbmVjcmFmdDpiYXNlX2F0dGFja19kYW1hZ2U/+AAAAAAAAAABAAQbbWluZWNyYWZ0OmJhc2VfYXR0YWNrX3NwZWVkwAgAAAAAAAAAAQA=", - "minecraft:break_sound": "R7EG", - "minecraft:damage": "AwA=", - "minecraft:enchantable": "GxY=", - "minecraft:enchantments": "CgA=", - "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": "EAA=", - "minecraft:repairable": "HQAdbWluZWNyYWZ0OmdvbGRfdG9vbF9tYXRlcmlhbHM=", - "minecraft:tool": "GQIAIW1pbmVjcmFmdDppbmNvcnJlY3RfZm9yX2dvbGRfdG9vbAABAAAZbWluZWNyYWZ0Om1pbmVhYmxlL3Nob3ZlbAFBQAAAAQE/gAAAAQE=", - "minecraft:tooltip_display": "DwAA", - "minecraft:weapon": "GgIAAAAA" - } - }, - { - "id": 887, - "key": "minecraft:golden_pickaxe", - "components": { - "minecraft:attribute_modifiers": "DQICHG1pbmVjcmFmdDpiYXNlX2F0dGFja19kYW1hZ2U/8AAAAAAAAAABAAQbbWluZWNyYWZ0OmJhc2VfYXR0YWNrX3NwZWVkwAZmZmAAAAAAAQA=", - "minecraft:break_sound": "R7EG", - "minecraft:damage": "AwA=", - "minecraft:enchantable": "GxY=", - "minecraft:enchantments": "CgA=", - "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": "EAA=", - "minecraft:repairable": "HQAdbWluZWNyYWZ0OmdvbGRfdG9vbF9tYXRlcmlhbHM=", - "minecraft:tool": "GQIAIW1pbmVjcmFmdDppbmNvcnJlY3RfZm9yX2dvbGRfdG9vbAABAAAabWluZWNyYWZ0Om1pbmVhYmxlL3BpY2theGUBQUAAAAEBP4AAAAEB", - "minecraft:tooltip_display": "DwAA", - "minecraft:weapon": "GgIAAAAA" - } - }, - { - "id": 888, - "key": "minecraft:golden_axe", - "components": { - "minecraft:attribute_modifiers": "DQICHG1pbmVjcmFmdDpiYXNlX2F0dGFja19kYW1hZ2VAGAAAAAAAAAABAAQbbWluZWNyYWZ0OmJhc2VfYXR0YWNrX3NwZWVkwAgAAAAAAAAAAQA=", - "minecraft:break_sound": "R7EG", - "minecraft:damage": "AwA=", - "minecraft:enchantable": "GxY=", - "minecraft:enchantments": "CgA=", - "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": "EAA=", - "minecraft:repairable": "HQAdbWluZWNyYWZ0OmdvbGRfdG9vbF9tYXRlcmlhbHM=", - "minecraft:tool": "GQIAIW1pbmVjcmFmdDppbmNvcnJlY3RfZm9yX2dvbGRfdG9vbAABAAAWbWluZWNyYWZ0Om1pbmVhYmxlL2F4ZQFBQAAAAQE/gAAAAQE=", - "minecraft:tooltip_display": "DwAA", - "minecraft:weapon": "GgJAoAAA" - } - }, - { - "id": 889, - "key": "minecraft:golden_hoe", - "components": { - "minecraft:attribute_modifiers": "DQICHG1pbmVjcmFmdDpiYXNlX2F0dGFja19kYW1hZ2UAAAAAAAAAAAABAAQbbWluZWNyYWZ0OmJhc2VfYXR0YWNrX3NwZWVkwAgAAAAAAAAAAQA=", - "minecraft:break_sound": "R7EG", - "minecraft:damage": "AwA=", - "minecraft:enchantable": "GxY=", - "minecraft:enchantments": "CgA=", - "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": "EAA=", - "minecraft:repairable": "HQAdbWluZWNyYWZ0OmdvbGRfdG9vbF9tYXRlcmlhbHM=", - "minecraft:tool": "GQIAIW1pbmVjcmFmdDppbmNvcnJlY3RfZm9yX2dvbGRfdG9vbAABAAAWbWluZWNyYWZ0Om1pbmVhYmxlL2hvZQFBQAAAAQE/gAAAAQE=", - "minecraft:tooltip_display": "DwAA", - "minecraft:weapon": "GgIAAAAA" - } - }, - { - "id": 890, - "key": "minecraft:iron_sword", - "components": { - "minecraft:attribute_modifiers": "DQICHG1pbmVjcmFmdDpiYXNlX2F0dGFja19kYW1hZ2VAFAAAAAAAAAABAAQbbWluZWNyYWZ0OmJhc2VfYXR0YWNrX3NwZWVkwAMzM0AAAAAAAQA=", - "minecraft:break_sound": "R7EG", - "minecraft:damage": "AwA=", - "minecraft:enchantable": "Gw4=", - "minecraft:enchantments": "CgA=", - "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": "EAA=", - "minecraft:repairable": "HQAdbWluZWNyYWZ0Omlyb25fdG9vbF9tYXRlcmlhbHM=", - "minecraft:tool": "GQMCgQEBQXAAAAEBAB9taW5lY3JhZnQ6c3dvcmRfaW5zdGFudGx5X21pbmVzAX9///8AABltaW5lY3JhZnQ6c3dvcmRfZWZmaWNpZW50AT/AAAAAP4AAAAIA", - "minecraft:tooltip_display": "DwAA", - "minecraft:weapon": "GgEAAAAA" - } - }, - { - "id": 891, - "key": "minecraft:iron_shovel", - "components": { - "minecraft:attribute_modifiers": "DQICHG1pbmVjcmFmdDpiYXNlX2F0dGFja19kYW1hZ2VADAAAAAAAAAABAAQbbWluZWNyYWZ0OmJhc2VfYXR0YWNrX3NwZWVkwAgAAAAAAAAAAQA=", - "minecraft:break_sound": "R7EG", - "minecraft:damage": "AwA=", - "minecraft:enchantable": "Gw4=", - "minecraft:enchantments": "CgA=", - "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": "EAA=", - "minecraft:repairable": "HQAdbWluZWNyYWZ0Omlyb25fdG9vbF9tYXRlcmlhbHM=", - "minecraft:tool": "GQIAIW1pbmVjcmFmdDppbmNvcnJlY3RfZm9yX2lyb25fdG9vbAABAAAZbWluZWNyYWZ0Om1pbmVhYmxlL3Nob3ZlbAFAwAAAAQE/gAAAAQE=", - "minecraft:tooltip_display": "DwAA", - "minecraft:weapon": "GgIAAAAA" - } - }, - { - "id": 892, - "key": "minecraft:iron_pickaxe", - "components": { - "minecraft:attribute_modifiers": "DQICHG1pbmVjcmFmdDpiYXNlX2F0dGFja19kYW1hZ2VACAAAAAAAAAABAAQbbWluZWNyYWZ0OmJhc2VfYXR0YWNrX3NwZWVkwAZmZmAAAAAAAQA=", - "minecraft:break_sound": "R7EG", - "minecraft:damage": "AwA=", - "minecraft:enchantable": "Gw4=", - "minecraft:enchantments": "CgA=", - "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": "EAA=", - "minecraft:repairable": "HQAdbWluZWNyYWZ0Omlyb25fdG9vbF9tYXRlcmlhbHM=", - "minecraft:tool": "GQIAIW1pbmVjcmFmdDppbmNvcnJlY3RfZm9yX2lyb25fdG9vbAABAAAabWluZWNyYWZ0Om1pbmVhYmxlL3BpY2theGUBQMAAAAEBP4AAAAEB", - "minecraft:tooltip_display": "DwAA", - "minecraft:weapon": "GgIAAAAA" - } - }, - { - "id": 893, - "key": "minecraft:iron_axe", - "components": { - "minecraft:attribute_modifiers": "DQICHG1pbmVjcmFmdDpiYXNlX2F0dGFja19kYW1hZ2VAIAAAAAAAAAABAAQbbWluZWNyYWZ0OmJhc2VfYXR0YWNrX3NwZWVkwAjMzMAAAAAAAQA=", - "minecraft:break_sound": "R7EG", - "minecraft:damage": "AwA=", - "minecraft:enchantable": "Gw4=", - "minecraft:enchantments": "CgA=", - "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": "EAA=", - "minecraft:repairable": "HQAdbWluZWNyYWZ0Omlyb25fdG9vbF9tYXRlcmlhbHM=", - "minecraft:tool": "GQIAIW1pbmVjcmFmdDppbmNvcnJlY3RfZm9yX2lyb25fdG9vbAABAAAWbWluZWNyYWZ0Om1pbmVhYmxlL2F4ZQFAwAAAAQE/gAAAAQE=", - "minecraft:tooltip_display": "DwAA", - "minecraft:weapon": "GgJAoAAA" - } - }, - { - "id": 894, - "key": "minecraft:iron_hoe", - "components": { - "minecraft:attribute_modifiers": "DQICHG1pbmVjcmFmdDpiYXNlX2F0dGFja19kYW1hZ2UAAAAAAAAAAAABAAQbbWluZWNyYWZ0OmJhc2VfYXR0YWNrX3NwZWVkv/AAAAAAAAAAAQA=", - "minecraft:break_sound": "R7EG", - "minecraft:damage": "AwA=", - "minecraft:enchantable": "Gw4=", - "minecraft:enchantments": "CgA=", - "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": "EAA=", - "minecraft:repairable": "HQAdbWluZWNyYWZ0Omlyb25fdG9vbF9tYXRlcmlhbHM=", - "minecraft:tool": "GQIAIW1pbmVjcmFmdDppbmNvcnJlY3RfZm9yX2lyb25fdG9vbAABAAAWbWluZWNyYWZ0Om1pbmVhYmxlL2hvZQFAwAAAAQE/gAAAAQE=", - "minecraft:tooltip_display": "DwAA", - "minecraft:weapon": "GgIAAAAA" - } - }, - { - "id": 895, - "key": "minecraft:diamond_sword", - "components": { - "minecraft:attribute_modifiers": "DQICHG1pbmVjcmFmdDpiYXNlX2F0dGFja19kYW1hZ2VAGAAAAAAAAAABAAQbbWluZWNyYWZ0OmJhc2VfYXR0YWNrX3NwZWVkwAMzM0AAAAAAAQA=", - "minecraft:break_sound": "R7EG", - "minecraft:damage": "AwA=", - "minecraft:enchantable": "Gwo=", - "minecraft:enchantments": "CgA=", - "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": "EAA=", - "minecraft:repairable": "HQAgbWluZWNyYWZ0OmRpYW1vbmRfdG9vbF9tYXRlcmlhbHM=", - "minecraft:tool": "GQMCgQEBQXAAAAEBAB9taW5lY3JhZnQ6c3dvcmRfaW5zdGFudGx5X21pbmVzAX9///8AABltaW5lY3JhZnQ6c3dvcmRfZWZmaWNpZW50AT/AAAAAP4AAAAIA", - "minecraft:tooltip_display": "DwAA", - "minecraft:weapon": "GgEAAAAA" - } - }, - { - "id": 896, - "key": "minecraft:diamond_shovel", - "components": { - "minecraft:attribute_modifiers": "DQICHG1pbmVjcmFmdDpiYXNlX2F0dGFja19kYW1hZ2VAEgAAAAAAAAABAAQbbWluZWNyYWZ0OmJhc2VfYXR0YWNrX3NwZWVkwAgAAAAAAAAAAQA=", - "minecraft:break_sound": "R7EG", - "minecraft:damage": "AwA=", - "minecraft:enchantable": "Gwo=", - "minecraft:enchantments": "CgA=", - "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": "EAA=", - "minecraft:repairable": "HQAgbWluZWNyYWZ0OmRpYW1vbmRfdG9vbF9tYXRlcmlhbHM=", - "minecraft:tool": "GQIAJG1pbmVjcmFmdDppbmNvcnJlY3RfZm9yX2RpYW1vbmRfdG9vbAABAAAZbWluZWNyYWZ0Om1pbmVhYmxlL3Nob3ZlbAFBAAAAAQE/gAAAAQE=", - "minecraft:tooltip_display": "DwAA", - "minecraft:weapon": "GgIAAAAA" - } - }, - { - "id": 897, - "key": "minecraft:diamond_pickaxe", - "components": { - "minecraft:attribute_modifiers": "DQICHG1pbmVjcmFmdDpiYXNlX2F0dGFja19kYW1hZ2VAEAAAAAAAAAABAAQbbWluZWNyYWZ0OmJhc2VfYXR0YWNrX3NwZWVkwAZmZmAAAAAAAQA=", - "minecraft:break_sound": "R7EG", - "minecraft:damage": "AwA=", - "minecraft:enchantable": "Gwo=", - "minecraft:enchantments": "CgA=", - "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": "EAA=", - "minecraft:repairable": "HQAgbWluZWNyYWZ0OmRpYW1vbmRfdG9vbF9tYXRlcmlhbHM=", - "minecraft:tool": "GQIAJG1pbmVjcmFmdDppbmNvcnJlY3RfZm9yX2RpYW1vbmRfdG9vbAABAAAabWluZWNyYWZ0Om1pbmVhYmxlL3BpY2theGUBQQAAAAEBP4AAAAEB", - "minecraft:tooltip_display": "DwAA", - "minecraft:weapon": "GgIAAAAA" - } - }, - { - "id": 898, - "key": "minecraft:diamond_axe", - "components": { - "minecraft:attribute_modifiers": "DQICHG1pbmVjcmFmdDpiYXNlX2F0dGFja19kYW1hZ2VAIAAAAAAAAAABAAQbbWluZWNyYWZ0OmJhc2VfYXR0YWNrX3NwZWVkwAgAAAAAAAAAAQA=", - "minecraft:break_sound": "R7EG", - "minecraft:damage": "AwA=", - "minecraft:enchantable": "Gwo=", - "minecraft:enchantments": "CgA=", - "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": "EAA=", - "minecraft:repairable": "HQAgbWluZWNyYWZ0OmRpYW1vbmRfdG9vbF9tYXRlcmlhbHM=", - "minecraft:tool": "GQIAJG1pbmVjcmFmdDppbmNvcnJlY3RfZm9yX2RpYW1vbmRfdG9vbAABAAAWbWluZWNyYWZ0Om1pbmVhYmxlL2F4ZQFBAAAAAQE/gAAAAQE=", - "minecraft:tooltip_display": "DwAA", - "minecraft:weapon": "GgJAoAAA" - } - }, - { - "id": 899, - "key": "minecraft:diamond_hoe", - "components": { - "minecraft:attribute_modifiers": "DQICHG1pbmVjcmFmdDpiYXNlX2F0dGFja19kYW1hZ2UAAAAAAAAAAAABAAQbbWluZWNyYWZ0OmJhc2VfYXR0YWNrX3NwZWVkAAAAAAAAAAAAAQA=", - "minecraft:break_sound": "R7EG", - "minecraft:damage": "AwA=", - "minecraft:enchantable": "Gwo=", - "minecraft:enchantments": "CgA=", - "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": "EAA=", - "minecraft:repairable": "HQAgbWluZWNyYWZ0OmRpYW1vbmRfdG9vbF9tYXRlcmlhbHM=", - "minecraft:tool": "GQIAJG1pbmVjcmFmdDppbmNvcnJlY3RfZm9yX2RpYW1vbmRfdG9vbAABAAAWbWluZWNyYWZ0Om1pbmVhYmxlL2hvZQFBAAAAAQE/gAAAAQE=", - "minecraft:tooltip_display": "DwAA", - "minecraft:weapon": "GgIAAAAA" - } - }, - { - "id": 900, - "key": "minecraft:netherite_sword", - "components": { - "minecraft:attribute_modifiers": "DQICHG1pbmVjcmFmdDpiYXNlX2F0dGFja19kYW1hZ2VAHAAAAAAAAAABAAQbbWluZWNyYWZ0OmJhc2VfYXR0YWNrX3NwZWVkwAMzM0AAAAAAAQA=", - "minecraft:break_sound": "R7EG", - "minecraft:damage": "AwA=", - "minecraft:damage_resistant": "GBFtaW5lY3JhZnQ6aXNfZmlyZQ==", - "minecraft:enchantable": "Gw8=", - "minecraft:enchantments": "CgA=", - "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": "EAA=", - "minecraft:repairable": "HQAibWluZWNyYWZ0Om5ldGhlcml0ZV90b29sX21hdGVyaWFscw==", - "minecraft:tool": "GQMCgQEBQXAAAAEBAB9taW5lY3JhZnQ6c3dvcmRfaW5zdGFudGx5X21pbmVzAX9///8AABltaW5lY3JhZnQ6c3dvcmRfZWZmaWNpZW50AT/AAAAAP4AAAAIA", - "minecraft:tooltip_display": "DwAA", - "minecraft:weapon": "GgEAAAAA" - } - }, - { - "id": 901, - "key": "minecraft:netherite_shovel", - "components": { - "minecraft:attribute_modifiers": "DQICHG1pbmVjcmFmdDpiYXNlX2F0dGFja19kYW1hZ2VAFgAAAAAAAAABAAQbbWluZWNyYWZ0OmJhc2VfYXR0YWNrX3NwZWVkwAgAAAAAAAAAAQA=", - "minecraft:break_sound": "R7EG", - "minecraft:damage": "AwA=", - "minecraft:damage_resistant": "GBFtaW5lY3JhZnQ6aXNfZmlyZQ==", - "minecraft:enchantable": "Gw8=", - "minecraft:enchantments": "CgA=", - "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": "EAA=", - "minecraft:repairable": "HQAibWluZWNyYWZ0Om5ldGhlcml0ZV90b29sX21hdGVyaWFscw==", - "minecraft:tool": "GQIAJm1pbmVjcmFmdDppbmNvcnJlY3RfZm9yX25ldGhlcml0ZV90b29sAAEAABltaW5lY3JhZnQ6bWluZWFibGUvc2hvdmVsAUEQAAABAT+AAAABAQ==", - "minecraft:tooltip_display": "DwAA", - "minecraft:weapon": "GgIAAAAA" - } - }, - { - "id": 902, - "key": "minecraft:netherite_pickaxe", - "components": { - "minecraft:attribute_modifiers": "DQICHG1pbmVjcmFmdDpiYXNlX2F0dGFja19kYW1hZ2VAFAAAAAAAAAABAAQbbWluZWNyYWZ0OmJhc2VfYXR0YWNrX3NwZWVkwAZmZmAAAAAAAQA=", - "minecraft:break_sound": "R7EG", - "minecraft:damage": "AwA=", - "minecraft:damage_resistant": "GBFtaW5lY3JhZnQ6aXNfZmlyZQ==", - "minecraft:enchantable": "Gw8=", - "minecraft:enchantments": "CgA=", - "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": "EAA=", - "minecraft:repairable": "HQAibWluZWNyYWZ0Om5ldGhlcml0ZV90b29sX21hdGVyaWFscw==", - "minecraft:tool": "GQIAJm1pbmVjcmFmdDppbmNvcnJlY3RfZm9yX25ldGhlcml0ZV90b29sAAEAABptaW5lY3JhZnQ6bWluZWFibGUvcGlja2F4ZQFBEAAAAQE/gAAAAQE=", - "minecraft:tooltip_display": "DwAA", - "minecraft:weapon": "GgIAAAAA" - } - }, - { - "id": 903, - "key": "minecraft:netherite_axe", - "components": { - "minecraft:attribute_modifiers": "DQICHG1pbmVjcmFmdDpiYXNlX2F0dGFja19kYW1hZ2VAIgAAAAAAAAABAAQbbWluZWNyYWZ0OmJhc2VfYXR0YWNrX3NwZWVkwAgAAAAAAAAAAQA=", - "minecraft:break_sound": "R7EG", - "minecraft:damage": "AwA=", - "minecraft:damage_resistant": "GBFtaW5lY3JhZnQ6aXNfZmlyZQ==", - "minecraft:enchantable": "Gw8=", - "minecraft:enchantments": "CgA=", - "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": "EAA=", - "minecraft:repairable": "HQAibWluZWNyYWZ0Om5ldGhlcml0ZV90b29sX21hdGVyaWFscw==", - "minecraft:tool": "GQIAJm1pbmVjcmFmdDppbmNvcnJlY3RfZm9yX25ldGhlcml0ZV90b29sAAEAABZtaW5lY3JhZnQ6bWluZWFibGUvYXhlAUEQAAABAT+AAAABAQ==", - "minecraft:tooltip_display": "DwAA", - "minecraft:weapon": "GgJAoAAA" - } - }, - { - "id": 904, - "key": "minecraft:netherite_hoe", - "components": { - "minecraft:attribute_modifiers": "DQICHG1pbmVjcmFmdDpiYXNlX2F0dGFja19kYW1hZ2UAAAAAAAAAAAABAAQbbWluZWNyYWZ0OmJhc2VfYXR0YWNrX3NwZWVkAAAAAAAAAAAAAQA=", - "minecraft:break_sound": "R7EG", - "minecraft:damage": "AwA=", - "minecraft:damage_resistant": "GBFtaW5lY3JhZnQ6aXNfZmlyZQ==", - "minecraft:enchantable": "Gw8=", - "minecraft:enchantments": "CgA=", - "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": "EAA=", - "minecraft:repairable": "HQAibWluZWNyYWZ0Om5ldGhlcml0ZV90b29sX21hdGVyaWFscw==", - "minecraft:tool": "GQIAJm1pbmVjcmFmdDppbmNvcnJlY3RfZm9yX25ldGhlcml0ZV90b29sAAEAABZtaW5lY3JhZnQ6bWluZWFibGUvaG9lAUEQAAABAT+AAAABAQ==", - "minecraft:tooltip_display": "DwAA", - "minecraft:weapon": "GgIAAAAA" - } - }, - { - "id": 905, - "key": "minecraft:stick", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bw9taW5lY3JhZnQ6c3RpY2s=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFGl0ZW0ubWluZWNyYWZ0LnN0aWNrAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 906, - "key": "minecraft:mushroom_stew", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:consumable": "FT/MzM0B5wQBAA==", - "minecraft:enchantments": "CgA=", - "minecraft:food": "FAZA5mZnAA==", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6bXVzaHJvb21fc3Rldw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGl0ZW0ubWluZWNyYWZ0Lm11c2hyb29tX3N0ZXcA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA", - "minecraft:use_remainder": "FgHYBgAA" - } - }, - { - "id": 907, - "key": "minecraft:string", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxBtaW5lY3JhZnQ6c3RyaW5n", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFWl0ZW0ubWluZWNyYWZ0LnN0cmluZwA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 908, - "key": "minecraft:feather", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxFtaW5lY3JhZnQ6ZmVhdGhlcg==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFml0ZW0ubWluZWNyYWZ0LmZlYXRoZXIA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 909, - "key": "minecraft:gunpowder", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxNtaW5lY3JhZnQ6Z3VucG93ZGVy", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGGl0ZW0ubWluZWNyYWZ0Lmd1bnBvd2RlcgA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 910, - "key": "minecraft:wheat_seeds", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6d2hlYXRfc2VlZHM=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGml0ZW0ubWluZWNyYWZ0LndoZWF0X3NlZWRzAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 911, - "key": "minecraft:wheat", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bw9taW5lY3JhZnQ6d2hlYXQ=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFGl0ZW0ubWluZWNyYWZ0LndoZWF0AA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 912, - "key": "minecraft:bread", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:consumable": "FT/MzM0B5wQBAA==", - "minecraft:enchantments": "CgA=", - "minecraft:food": "FAVAwAAAAA==", - "minecraft:item_model": "Bw9taW5lY3JhZnQ6YnJlYWQ=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFGl0ZW0ubWluZWNyYWZ0LmJyZWFkAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 913, - "key": "minecraft:leather_helmet", - "components": { - "minecraft:attribute_modifiers": "DQIAFm1pbmVjcmFmdDphcm1vci5oZWxtZXQ/8AAAAAAAAAAHAAEWbWluZWNyYWZ0OmFybW9yLmhlbG1ldAAAAAAAAAAAAAcA", - "minecraft:break_sound": "R7EG", - "minecraft:damage": "AwA=", - "minecraft:enchantable": "Gw8=", - "minecraft:enchantments": "CgA=", - "minecraft:equippable": "HARKARFtaW5lY3JhZnQ6bGVhdGhlcgAAAQEBAACSCg==", - "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": "EAA=", - "minecraft:repairable": "HQAfbWluZWNyYWZ0OnJlcGFpcnNfbGVhdGhlcl9hcm1vcg==", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 914, - "key": "minecraft:leather_chestplate", - "components": { - "minecraft:attribute_modifiers": "DQIAGm1pbmVjcmFmdDphcm1vci5jaGVzdHBsYXRlQAgAAAAAAAAABgABGm1pbmVjcmFmdDphcm1vci5jaGVzdHBsYXRlAAAAAAAAAAAABgA=", - "minecraft:break_sound": "R7EG", - "minecraft:damage": "AwA=", - "minecraft:enchantable": "Gw8=", - "minecraft:enchantments": "CgA=", - "minecraft:equippable": "HANKARFtaW5lY3JhZnQ6bGVhdGhlcgAAAQEBAACSCg==", - "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": "EAA=", - "minecraft:repairable": "HQAfbWluZWNyYWZ0OnJlcGFpcnNfbGVhdGhlcl9hcm1vcg==", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 915, - "key": "minecraft:leather_leggings", - "components": { - "minecraft:attribute_modifiers": "DQIAGG1pbmVjcmFmdDphcm1vci5sZWdnaW5nc0AAAAAAAAAAAAUAARhtaW5lY3JhZnQ6YXJtb3IubGVnZ2luZ3MAAAAAAAAAAAAFAA==", - "minecraft:break_sound": "R7EG", - "minecraft:damage": "AwA=", - "minecraft:enchantable": "Gw8=", - "minecraft:enchantments": "CgA=", - "minecraft:equippable": "HAJKARFtaW5lY3JhZnQ6bGVhdGhlcgAAAQEBAACSCg==", - "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": "EAA=", - "minecraft:repairable": "HQAfbWluZWNyYWZ0OnJlcGFpcnNfbGVhdGhlcl9hcm1vcg==", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 916, - "key": "minecraft:leather_boots", - "components": { - "minecraft:attribute_modifiers": "DQIAFW1pbmVjcmFmdDphcm1vci5ib290cz/wAAAAAAAAAAQAARVtaW5lY3JhZnQ6YXJtb3IuYm9vdHMAAAAAAAAAAAAEAA==", - "minecraft:break_sound": "R7EG", - "minecraft:damage": "AwA=", - "minecraft:enchantable": "Gw8=", - "minecraft:enchantments": "CgA=", - "minecraft:equippable": "HAFKARFtaW5lY3JhZnQ6bGVhdGhlcgAAAQEBAACSCg==", - "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": "EAA=", - "minecraft:repairable": "HQAfbWluZWNyYWZ0OnJlcGFpcnNfbGVhdGhlcl9hcm1vcg==", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 917, - "key": "minecraft:chainmail_helmet", - "components": { - "minecraft:attribute_modifiers": "DQIAFm1pbmVjcmFmdDphcm1vci5oZWxtZXRAAAAAAAAAAAAHAAEWbWluZWNyYWZ0OmFybW9yLmhlbG1ldAAAAAAAAAAAAAcA", - "minecraft:break_sound": "R7EG", - "minecraft:damage": "AwA=", - "minecraft:enchantable": "Gww=", - "minecraft:enchantments": "CgA=", - "minecraft:equippable": "HAREARNtaW5lY3JhZnQ6Y2hhaW5tYWlsAAABAQEAAJIK", - "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": "EAA=", - "minecraft:repairable": "HQAdbWluZWNyYWZ0OnJlcGFpcnNfY2hhaW5fYXJtb3I=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 918, - "key": "minecraft:chainmail_chestplate", - "components": { - "minecraft:attribute_modifiers": "DQIAGm1pbmVjcmFmdDphcm1vci5jaGVzdHBsYXRlQBQAAAAAAAAABgABGm1pbmVjcmFmdDphcm1vci5jaGVzdHBsYXRlAAAAAAAAAAAABgA=", - "minecraft:break_sound": "R7EG", - "minecraft:damage": "AwA=", - "minecraft:enchantable": "Gww=", - "minecraft:enchantments": "CgA=", - "minecraft:equippable": "HANEARNtaW5lY3JhZnQ6Y2hhaW5tYWlsAAABAQEAAJIK", - "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": "EAA=", - "minecraft:repairable": "HQAdbWluZWNyYWZ0OnJlcGFpcnNfY2hhaW5fYXJtb3I=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 919, - "key": "minecraft:chainmail_leggings", - "components": { - "minecraft:attribute_modifiers": "DQIAGG1pbmVjcmFmdDphcm1vci5sZWdnaW5nc0AQAAAAAAAAAAUAARhtaW5lY3JhZnQ6YXJtb3IubGVnZ2luZ3MAAAAAAAAAAAAFAA==", - "minecraft:break_sound": "R7EG", - "minecraft:damage": "AwA=", - "minecraft:enchantable": "Gww=", - "minecraft:enchantments": "CgA=", - "minecraft:equippable": "HAJEARNtaW5lY3JhZnQ6Y2hhaW5tYWlsAAABAQEAAJIK", - "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": "EAA=", - "minecraft:repairable": "HQAdbWluZWNyYWZ0OnJlcGFpcnNfY2hhaW5fYXJtb3I=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 920, - "key": "minecraft:chainmail_boots", - "components": { - "minecraft:attribute_modifiers": "DQIAFW1pbmVjcmFmdDphcm1vci5ib290cz/wAAAAAAAAAAQAARVtaW5lY3JhZnQ6YXJtb3IuYm9vdHMAAAAAAAAAAAAEAA==", - "minecraft:break_sound": "R7EG", - "minecraft:damage": "AwA=", - "minecraft:enchantable": "Gww=", - "minecraft:enchantments": "CgA=", - "minecraft:equippable": "HAFEARNtaW5lY3JhZnQ6Y2hhaW5tYWlsAAABAQEAAJIK", - "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": "EAA=", - "minecraft:repairable": "HQAdbWluZWNyYWZ0OnJlcGFpcnNfY2hhaW5fYXJtb3I=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 921, - "key": "minecraft:iron_helmet", - "components": { - "minecraft:attribute_modifiers": "DQIAFm1pbmVjcmFmdDphcm1vci5oZWxtZXRAAAAAAAAAAAAHAAEWbWluZWNyYWZ0OmFybW9yLmhlbG1ldAAAAAAAAAAAAAcA", - "minecraft:break_sound": "R7EG", - "minecraft:damage": "AwA=", - "minecraft:enchantable": "Gwk=", - "minecraft:enchantments": "CgA=", - "minecraft:equippable": "HARJAQ5taW5lY3JhZnQ6aXJvbgAAAQEBAACSCg==", - "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": "EAA=", - "minecraft:repairable": "HQAcbWluZWNyYWZ0OnJlcGFpcnNfaXJvbl9hcm1vcg==", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 922, - "key": "minecraft:iron_chestplate", - "components": { - "minecraft:attribute_modifiers": "DQIAGm1pbmVjcmFmdDphcm1vci5jaGVzdHBsYXRlQBgAAAAAAAAABgABGm1pbmVjcmFmdDphcm1vci5jaGVzdHBsYXRlAAAAAAAAAAAABgA=", - "minecraft:break_sound": "R7EG", - "minecraft:damage": "AwA=", - "minecraft:enchantable": "Gwk=", - "minecraft:enchantments": "CgA=", - "minecraft:equippable": "HANJAQ5taW5lY3JhZnQ6aXJvbgAAAQEBAACSCg==", - "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": "EAA=", - "minecraft:repairable": "HQAcbWluZWNyYWZ0OnJlcGFpcnNfaXJvbl9hcm1vcg==", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 923, - "key": "minecraft:iron_leggings", - "components": { - "minecraft:attribute_modifiers": "DQIAGG1pbmVjcmFmdDphcm1vci5sZWdnaW5nc0AUAAAAAAAAAAUAARhtaW5lY3JhZnQ6YXJtb3IubGVnZ2luZ3MAAAAAAAAAAAAFAA==", - "minecraft:break_sound": "R7EG", - "minecraft:damage": "AwA=", - "minecraft:enchantable": "Gwk=", - "minecraft:enchantments": "CgA=", - "minecraft:equippable": "HAJJAQ5taW5lY3JhZnQ6aXJvbgAAAQEBAACSCg==", - "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": "EAA=", - "minecraft:repairable": "HQAcbWluZWNyYWZ0OnJlcGFpcnNfaXJvbl9hcm1vcg==", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 924, - "key": "minecraft:iron_boots", - "components": { - "minecraft:attribute_modifiers": "DQIAFW1pbmVjcmFmdDphcm1vci5ib290c0AAAAAAAAAAAAQAARVtaW5lY3JhZnQ6YXJtb3IuYm9vdHMAAAAAAAAAAAAEAA==", - "minecraft:break_sound": "R7EG", - "minecraft:damage": "AwA=", - "minecraft:enchantable": "Gwk=", - "minecraft:enchantments": "CgA=", - "minecraft:equippable": "HAFJAQ5taW5lY3JhZnQ6aXJvbgAAAQEBAACSCg==", - "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": "EAA=", - "minecraft:repairable": "HQAcbWluZWNyYWZ0OnJlcGFpcnNfaXJvbl9hcm1vcg==", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 925, - "key": "minecraft:diamond_helmet", - "components": { - "minecraft:attribute_modifiers": "DQIAFm1pbmVjcmFmdDphcm1vci5oZWxtZXRACAAAAAAAAAAHAAEWbWluZWNyYWZ0OmFybW9yLmhlbG1ldEAAAAAAAAAAAAcA", - "minecraft:break_sound": "R7EG", - "minecraft:damage": "AwA=", - "minecraft:enchantable": "Gwo=", - "minecraft:enchantments": "CgA=", - "minecraft:equippable": "HARFARFtaW5lY3JhZnQ6ZGlhbW9uZAAAAQEBAACSCg==", - "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": "EAA=", - "minecraft:repairable": "HQAfbWluZWNyYWZ0OnJlcGFpcnNfZGlhbW9uZF9hcm1vcg==", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 926, - "key": "minecraft:diamond_chestplate", - "components": { - "minecraft:attribute_modifiers": "DQIAGm1pbmVjcmFmdDphcm1vci5jaGVzdHBsYXRlQCAAAAAAAAAABgABGm1pbmVjcmFmdDphcm1vci5jaGVzdHBsYXRlQAAAAAAAAAAABgA=", - "minecraft:break_sound": "R7EG", - "minecraft:damage": "AwA=", - "minecraft:enchantable": "Gwo=", - "minecraft:enchantments": "CgA=", - "minecraft:equippable": "HANFARFtaW5lY3JhZnQ6ZGlhbW9uZAAAAQEBAACSCg==", - "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": "EAA=", - "minecraft:repairable": "HQAfbWluZWNyYWZ0OnJlcGFpcnNfZGlhbW9uZF9hcm1vcg==", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 927, - "key": "minecraft:diamond_leggings", - "components": { - "minecraft:attribute_modifiers": "DQIAGG1pbmVjcmFmdDphcm1vci5sZWdnaW5nc0AYAAAAAAAAAAUAARhtaW5lY3JhZnQ6YXJtb3IubGVnZ2luZ3NAAAAAAAAAAAAFAA==", - "minecraft:break_sound": "R7EG", - "minecraft:damage": "AwA=", - "minecraft:enchantable": "Gwo=", - "minecraft:enchantments": "CgA=", - "minecraft:equippable": "HAJFARFtaW5lY3JhZnQ6ZGlhbW9uZAAAAQEBAACSCg==", - "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": "EAA=", - "minecraft:repairable": "HQAfbWluZWNyYWZ0OnJlcGFpcnNfZGlhbW9uZF9hcm1vcg==", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 928, - "key": "minecraft:diamond_boots", - "components": { - "minecraft:attribute_modifiers": "DQIAFW1pbmVjcmFmdDphcm1vci5ib290c0AIAAAAAAAAAAQAARVtaW5lY3JhZnQ6YXJtb3IuYm9vdHNAAAAAAAAAAAAEAA==", - "minecraft:break_sound": "R7EG", - "minecraft:damage": "AwA=", - "minecraft:enchantable": "Gwo=", - "minecraft:enchantments": "CgA=", - "minecraft:equippable": "HAFFARFtaW5lY3JhZnQ6ZGlhbW9uZAAAAQEBAACSCg==", - "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": "EAA=", - "minecraft:repairable": "HQAfbWluZWNyYWZ0OnJlcGFpcnNfZGlhbW9uZF9hcm1vcg==", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 929, - "key": "minecraft:golden_helmet", - "components": { - "minecraft:attribute_modifiers": "DQIAFm1pbmVjcmFmdDphcm1vci5oZWxtZXRAAAAAAAAAAAAHAAEWbWluZWNyYWZ0OmFybW9yLmhlbG1ldAAAAAAAAAAAAAcA", - "minecraft:break_sound": "R7EG", - "minecraft:damage": "AwA=", - "minecraft:enchantable": "Gxk=", - "minecraft:enchantments": "CgA=", - "minecraft:equippable": "HARIAQ5taW5lY3JhZnQ6Z29sZAAAAQEBAACSCg==", - "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": "EAA=", - "minecraft:repairable": "HQAcbWluZWNyYWZ0OnJlcGFpcnNfZ29sZF9hcm1vcg==", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 930, - "key": "minecraft:golden_chestplate", - "components": { - "minecraft:attribute_modifiers": "DQIAGm1pbmVjcmFmdDphcm1vci5jaGVzdHBsYXRlQBQAAAAAAAAABgABGm1pbmVjcmFmdDphcm1vci5jaGVzdHBsYXRlAAAAAAAAAAAABgA=", - "minecraft:break_sound": "R7EG", - "minecraft:damage": "AwA=", - "minecraft:enchantable": "Gxk=", - "minecraft:enchantments": "CgA=", - "minecraft:equippable": "HANIAQ5taW5lY3JhZnQ6Z29sZAAAAQEBAACSCg==", - "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": "EAA=", - "minecraft:repairable": "HQAcbWluZWNyYWZ0OnJlcGFpcnNfZ29sZF9hcm1vcg==", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 931, - "key": "minecraft:golden_leggings", - "components": { - "minecraft:attribute_modifiers": "DQIAGG1pbmVjcmFmdDphcm1vci5sZWdnaW5nc0AIAAAAAAAAAAUAARhtaW5lY3JhZnQ6YXJtb3IubGVnZ2luZ3MAAAAAAAAAAAAFAA==", - "minecraft:break_sound": "R7EG", - "minecraft:damage": "AwA=", - "minecraft:enchantable": "Gxk=", - "minecraft:enchantments": "CgA=", - "minecraft:equippable": "HAJIAQ5taW5lY3JhZnQ6Z29sZAAAAQEBAACSCg==", - "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": "EAA=", - "minecraft:repairable": "HQAcbWluZWNyYWZ0OnJlcGFpcnNfZ29sZF9hcm1vcg==", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 932, - "key": "minecraft:golden_boots", - "components": { - "minecraft:attribute_modifiers": "DQIAFW1pbmVjcmFmdDphcm1vci5ib290cz/wAAAAAAAAAAQAARVtaW5lY3JhZnQ6YXJtb3IuYm9vdHMAAAAAAAAAAAAEAA==", - "minecraft:break_sound": "R7EG", - "minecraft:damage": "AwA=", - "minecraft:enchantable": "Gxk=", - "minecraft:enchantments": "CgA=", - "minecraft:equippable": "HAFIAQ5taW5lY3JhZnQ6Z29sZAAAAQEBAACSCg==", - "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": "EAA=", - "minecraft:repairable": "HQAcbWluZWNyYWZ0OnJlcGFpcnNfZ29sZF9hcm1vcg==", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 933, - "key": "minecraft:netherite_helmet", - "components": { - "minecraft:attribute_modifiers": "DQMAFm1pbmVjcmFmdDphcm1vci5oZWxtZXRACAAAAAAAAAAHAAEWbWluZWNyYWZ0OmFybW9yLmhlbG1ldEAIAAAAAAAAAAcAEBZtaW5lY3JhZnQ6YXJtb3IuaGVsbWV0P7mZmaAAAAAABwA=", - "minecraft:break_sound": "R7EG", - "minecraft:damage": "AwA=", - "minecraft:damage_resistant": "GBFtaW5lY3JhZnQ6aXNfZmlyZQ==", - "minecraft:enchantable": "Gw8=", - "minecraft:enchantments": "CgA=", - "minecraft:equippable": "HARLARNtaW5lY3JhZnQ6bmV0aGVyaXRlAAABAQEAAJIK", - "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": "EAA=", - "minecraft:repairable": "HQAhbWluZWNyYWZ0OnJlcGFpcnNfbmV0aGVyaXRlX2FybW9y", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 934, - "key": "minecraft:netherite_chestplate", - "components": { - "minecraft:attribute_modifiers": "DQMAGm1pbmVjcmFmdDphcm1vci5jaGVzdHBsYXRlQCAAAAAAAAAABgABGm1pbmVjcmFmdDphcm1vci5jaGVzdHBsYXRlQAgAAAAAAAAABgAQGm1pbmVjcmFmdDphcm1vci5jaGVzdHBsYXRlP7mZmaAAAAAABgA=", - "minecraft:break_sound": "R7EG", - "minecraft:damage": "AwA=", - "minecraft:damage_resistant": "GBFtaW5lY3JhZnQ6aXNfZmlyZQ==", - "minecraft:enchantable": "Gw8=", - "minecraft:enchantments": "CgA=", - "minecraft:equippable": "HANLARNtaW5lY3JhZnQ6bmV0aGVyaXRlAAABAQEAAJIK", - "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": "EAA=", - "minecraft:repairable": "HQAhbWluZWNyYWZ0OnJlcGFpcnNfbmV0aGVyaXRlX2FybW9y", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 935, - "key": "minecraft:netherite_leggings", - "components": { - "minecraft:attribute_modifiers": "DQMAGG1pbmVjcmFmdDphcm1vci5sZWdnaW5nc0AYAAAAAAAAAAUAARhtaW5lY3JhZnQ6YXJtb3IubGVnZ2luZ3NACAAAAAAAAAAFABAYbWluZWNyYWZ0OmFybW9yLmxlZ2dpbmdzP7mZmaAAAAAABQA=", - "minecraft:break_sound": "R7EG", - "minecraft:damage": "AwA=", - "minecraft:damage_resistant": "GBFtaW5lY3JhZnQ6aXNfZmlyZQ==", - "minecraft:enchantable": "Gw8=", - "minecraft:enchantments": "CgA=", - "minecraft:equippable": "HAJLARNtaW5lY3JhZnQ6bmV0aGVyaXRlAAABAQEAAJIK", - "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": "EAA=", - "minecraft:repairable": "HQAhbWluZWNyYWZ0OnJlcGFpcnNfbmV0aGVyaXRlX2FybW9y", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 936, - "key": "minecraft:netherite_boots", - "components": { - "minecraft:attribute_modifiers": "DQMAFW1pbmVjcmFmdDphcm1vci5ib290c0AIAAAAAAAAAAQAARVtaW5lY3JhZnQ6YXJtb3IuYm9vdHNACAAAAAAAAAAEABAVbWluZWNyYWZ0OmFybW9yLmJvb3RzP7mZmaAAAAAABAA=", - "minecraft:break_sound": "R7EG", - "minecraft:damage": "AwA=", - "minecraft:damage_resistant": "GBFtaW5lY3JhZnQ6aXNfZmlyZQ==", - "minecraft:enchantable": "Gw8=", - "minecraft:enchantments": "CgA=", - "minecraft:equippable": "HAFLARNtaW5lY3JhZnQ6bmV0aGVyaXRlAAABAQEAAJIK", - "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": "EAA=", - "minecraft:repairable": "HQAhbWluZWNyYWZ0OnJlcGFpcnNfbmV0aGVyaXRlX2FybW9y", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 937, - "key": "minecraft:flint", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bw9taW5lY3JhZnQ6ZmxpbnQ=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFGl0ZW0ubWluZWNyYWZ0LmZsaW50AA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 938, - "key": "minecraft:porkchop", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:consumable": "FT/MzM0B5wQBAA==", - "minecraft:enchantments": "CgA=", - "minecraft:food": "FAM/5mZnAA==", - "minecraft:item_model": "BxJtaW5lY3JhZnQ6cG9ya2Nob3A=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAF2l0ZW0ubWluZWNyYWZ0LnBvcmtjaG9wAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 939, - "key": "minecraft:cooked_porkchop", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:consumable": "FT/MzM0B5wQBAA==", - "minecraft:enchantments": "CgA=", - "minecraft:food": "FAhBTMzNAA==", - "minecraft:item_model": "BxltaW5lY3JhZnQ6Y29va2VkX3BvcmtjaG9w", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHml0ZW0ubWluZWNyYWZ0LmNvb2tlZF9wb3JrY2hvcAA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 940, - "key": "minecraft:painting", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxJtaW5lY3JhZnQ6cGFpbnRpbmc=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAF2l0ZW0ubWluZWNyYWZ0LnBhaW50aW5nAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 941, - "key": "minecraft:golden_apple", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:consumable": "FT/MzM0B5wQBAQACCQFkAAEBABUA4BIAAQEAP4AAAA==", - "minecraft:enchantments": "CgA=", - "minecraft:food": "FARBGZmaAQ==", - "minecraft:item_model": "BxZtaW5lY3JhZnQ6Z29sZGVuX2FwcGxl", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2l0ZW0ubWluZWNyYWZ0LmdvbGRlbl9hcHBsZQA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 942, - "key": "minecraft:enchanted_golden_apple", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:consumable": "FT/MzM0B5wQBAQAECQGQAwABAQAKAPAuAAEBAAsA8C4AAQEAFQPgEgABAQA/gAAA", - "minecraft:enchantment_glint_override": "EgE=", - "minecraft:enchantments": "CgA=", - "minecraft:food": "FARBGZmaAQ==", - "minecraft:item_model": "ByBtaW5lY3JhZnQ6ZW5jaGFudGVkX2dvbGRlbl9hcHBsZQ==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWl0ZW0ubWluZWNyYWZ0LmVuY2hhbnRlZF9nb2xkZW5fYXBwbGUA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQI=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 943, - "key": "minecraft:oak_sign", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxJtaW5lY3JhZnQ6b2FrX3NpZ24=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGGJsb2NrLm1pbmVjcmFmdC5vYWtfc2lnbgA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "ARA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 944, - "key": "minecraft:spruce_sign", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6c3BydWNlX3NpZ24=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5zcHJ1Y2Vfc2lnbgA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "ARA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 945, - "key": "minecraft:birch_sign", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxRtaW5lY3JhZnQ6YmlyY2hfc2lnbg==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC5iaXJjaF9zaWduAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "ARA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 946, - "key": "minecraft:jungle_sign", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6anVuZ2xlX3NpZ24=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5qdW5nbGVfc2lnbgA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "ARA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 947, - "key": "minecraft:acacia_sign", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6YWNhY2lhX3NpZ24=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5hY2FjaWFfc2lnbgA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "ARA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 948, - "key": "minecraft:cherry_sign", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6Y2hlcnJ5X3NpZ24=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5jaGVycnlfc2lnbgA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "ARA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 949, - "key": "minecraft:dark_oak_sign", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6ZGFya19vYWtfc2lnbg==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5kYXJrX29ha19zaWduAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "ARA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 950, - "key": "minecraft:pale_oak_sign", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6cGFsZV9vYWtfc2lnbg==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5wYWxlX29ha19zaWduAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "ARA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 951, - "key": "minecraft:mangrove_sign", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6bWFuZ3JvdmVfc2lnbg==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5tYW5ncm92ZV9zaWduAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "ARA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 952, - "key": "minecraft:bamboo_sign", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6YmFtYm9vX3NpZ24=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5iYW1ib29fc2lnbgA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "ARA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 953, - "key": "minecraft:crimson_sign", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxZtaW5lY3JhZnQ6Y3JpbXNvbl9zaWdu", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC5jcmltc29uX3NpZ24A", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "ARA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 954, - "key": "minecraft:warped_sign", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6d2FycGVkX3NpZ24=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC53YXJwZWRfc2lnbgA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "ARA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 955, - "key": "minecraft:oak_hanging_sign", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxptaW5lY3JhZnQ6b2FrX2hhbmdpbmdfc2lnbg==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGJsb2NrLm1pbmVjcmFmdC5vYWtfaGFuZ2luZ19zaWduAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "ARA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 956, - "key": "minecraft:spruce_hanging_sign", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx1taW5lY3JhZnQ6c3BydWNlX2hhbmdpbmdfc2lnbg==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2Jsb2NrLm1pbmVjcmFmdC5zcHJ1Y2VfaGFuZ2luZ19zaWduAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "ARA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 957, - "key": "minecraft:birch_hanging_sign", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxxtaW5lY3JhZnQ6YmlyY2hfaGFuZ2luZ19zaWdu", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAImJsb2NrLm1pbmVjcmFmdC5iaXJjaF9oYW5naW5nX3NpZ24A", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "ARA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 958, - "key": "minecraft:jungle_hanging_sign", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx1taW5lY3JhZnQ6anVuZ2xlX2hhbmdpbmdfc2lnbg==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2Jsb2NrLm1pbmVjcmFmdC5qdW5nbGVfaGFuZ2luZ19zaWduAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "ARA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 959, - "key": "minecraft:acacia_hanging_sign", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx1taW5lY3JhZnQ6YWNhY2lhX2hhbmdpbmdfc2lnbg==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2Jsb2NrLm1pbmVjcmFmdC5hY2FjaWFfaGFuZ2luZ19zaWduAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "ARA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 960, - "key": "minecraft:cherry_hanging_sign", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx1taW5lY3JhZnQ6Y2hlcnJ5X2hhbmdpbmdfc2lnbg==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2Jsb2NrLm1pbmVjcmFmdC5jaGVycnlfaGFuZ2luZ19zaWduAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "ARA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 961, - "key": "minecraft:dark_oak_hanging_sign", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx9taW5lY3JhZnQ6ZGFya19vYWtfaGFuZ2luZ19zaWdu", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWJsb2NrLm1pbmVjcmFmdC5kYXJrX29ha19oYW5naW5nX3NpZ24A", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "ARA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 962, - "key": "minecraft:pale_oak_hanging_sign", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx9taW5lY3JhZnQ6cGFsZV9vYWtfaGFuZ2luZ19zaWdu", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWJsb2NrLm1pbmVjcmFmdC5wYWxlX29ha19oYW5naW5nX3NpZ24A", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "ARA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 963, - "key": "minecraft:mangrove_hanging_sign", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx9taW5lY3JhZnQ6bWFuZ3JvdmVfaGFuZ2luZ19zaWdu", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWJsb2NrLm1pbmVjcmFmdC5tYW5ncm92ZV9oYW5naW5nX3NpZ24A", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "ARA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 964, - "key": "minecraft:bamboo_hanging_sign", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx1taW5lY3JhZnQ6YmFtYm9vX2hhbmdpbmdfc2lnbg==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2Jsb2NrLm1pbmVjcmFmdC5iYW1ib29faGFuZ2luZ19zaWduAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "ARA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 965, - "key": "minecraft:crimson_hanging_sign", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx5taW5lY3JhZnQ6Y3JpbXNvbl9oYW5naW5nX3NpZ24=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJGJsb2NrLm1pbmVjcmFmdC5jcmltc29uX2hhbmdpbmdfc2lnbgA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "ARA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 966, - "key": "minecraft:warped_hanging_sign", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx1taW5lY3JhZnQ6d2FycGVkX2hhbmdpbmdfc2lnbg==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2Jsb2NrLm1pbmVjcmFmdC53YXJwZWRfaGFuZ2luZ19zaWduAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "ARA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 967, - "key": "minecraft:bucket", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxBtaW5lY3JhZnQ6YnVja2V0", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFWl0ZW0ubWluZWNyYWZ0LmJ1Y2tldAA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "ARA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 968, - "key": "minecraft:water_bucket", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxZtaW5lY3JhZnQ6d2F0ZXJfYnVja2V0", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2l0ZW0ubWluZWNyYWZ0LndhdGVyX2J1Y2tldAA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 969, - "key": "minecraft:lava_bucket", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6bGF2YV9idWNrZXQ=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGml0ZW0ubWluZWNyYWZ0LmxhdmFfYnVja2V0AA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 970, - "key": "minecraft:powder_snow_bucket", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxxtaW5lY3JhZnQ6cG93ZGVyX3Nub3dfYnVja2V0", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWl0ZW0ubWluZWNyYWZ0LnBvd2Rlcl9zbm93X2J1Y2tldAA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 971, - "key": "minecraft:snowball", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxJtaW5lY3JhZnQ6c25vd2JhbGw=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAF2l0ZW0ubWluZWNyYWZ0LnNub3diYWxsAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "ARA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 972, - "key": "minecraft:leather", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxFtaW5lY3JhZnQ6bGVhdGhlcg==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFml0ZW0ubWluZWNyYWZ0LmxlYXRoZXIA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 973, - "key": "minecraft:milk_bucket", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:consumable": "FT/MzM0C5gQAAQI=", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6bWlsa19idWNrZXQ=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGml0ZW0ubWluZWNyYWZ0Lm1pbGtfYnVja2V0AA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA", - "minecraft:use_remainder": "FgHHBwAA" - } - }, - { - "id": 974, - "key": "minecraft:pufferfish_bucket", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:bucket_entity_data": "MgoA", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxttaW5lY3JhZnQ6cHVmZmVyZmlzaF9idWNrZXQ=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGl0ZW0ubWluZWNyYWZ0LnB1ZmZlcmZpc2hfYnVja2V0AA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 975, - "key": "minecraft:salmon_bucket", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:bucket_entity_data": "MgoA", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6c2FsbW9uX2J1Y2tldA==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGl0ZW0ubWluZWNyYWZ0LnNhbG1vbl9idWNrZXQA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 976, - "key": "minecraft:cod_bucket", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:bucket_entity_data": "MgoA", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxRtaW5lY3JhZnQ6Y29kX2J1Y2tldA==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGWl0ZW0ubWluZWNyYWZ0LmNvZF9idWNrZXQA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 977, - "key": "minecraft:tropical_fish_bucket", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:bucket_entity_data": "MgoA", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx5taW5lY3JhZnQ6dHJvcGljYWxfZmlzaF9idWNrZXQ=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2l0ZW0ubWluZWNyYWZ0LnRyb3BpY2FsX2Zpc2hfYnVja2V0AA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 978, - "key": "minecraft:axolotl_bucket", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:bucket_entity_data": "MgoA", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxhtaW5lY3JhZnQ6YXhvbG90bF9idWNrZXQ=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWl0ZW0ubWluZWNyYWZ0LmF4b2xvdGxfYnVja2V0AA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 979, - "key": "minecraft:tadpole_bucket", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:bucket_entity_data": "MgoA", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxhtaW5lY3JhZnQ6dGFkcG9sZV9idWNrZXQ=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWl0ZW0ubWluZWNyYWZ0LnRhZHBvbGVfYnVja2V0AA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 980, - "key": "minecraft:brick", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bw9taW5lY3JhZnQ6YnJpY2s=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFGl0ZW0ubWluZWNyYWZ0LmJyaWNrAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 981, - "key": "minecraft:clay_ball", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxNtaW5lY3JhZnQ6Y2xheV9iYWxs", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGGl0ZW0ubWluZWNyYWZ0LmNsYXlfYmFsbAA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 982, - "key": "minecraft:dried_kelp_block", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxptaW5lY3JhZnQ6ZHJpZWRfa2VscF9ibG9jaw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGJsb2NrLm1pbmVjcmFmdC5kcmllZF9rZWxwX2Jsb2NrAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 983, - "key": "minecraft:paper", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bw9taW5lY3JhZnQ6cGFwZXI=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFGl0ZW0ubWluZWNyYWZ0LnBhcGVyAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 984, - "key": "minecraft:book", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantable": "GwE=", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bw5taW5lY3JhZnQ6Ym9vaw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAE2l0ZW0ubWluZWNyYWZ0LmJvb2sA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 985, - "key": "minecraft:slime_ball", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxRtaW5lY3JhZnQ6c2xpbWVfYmFsbA==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGWl0ZW0ubWluZWNyYWZ0LnNsaW1lX2JhbGwA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 986, - "key": "minecraft:egg", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:chicken/variant": "VgATbWluZWNyYWZ0OnRlbXBlcmF0ZQ==", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bw1taW5lY3JhZnQ6ZWdn", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAEml0ZW0ubWluZWNyYWZ0LmVnZwA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "ARA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 987, - "key": "minecraft:blue_egg", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:chicken/variant": "VgAObWluZWNyYWZ0OmNvbGQ=", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxJtaW5lY3JhZnQ6Ymx1ZV9lZ2c=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAF2l0ZW0ubWluZWNyYWZ0LmJsdWVfZWdnAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "ARA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 988, - "key": "minecraft:brown_egg", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:chicken/variant": "VgAObWluZWNyYWZ0Ondhcm0=", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxNtaW5lY3JhZnQ6YnJvd25fZWdn", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGGl0ZW0ubWluZWNyYWZ0LmJyb3duX2VnZwA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "ARA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 989, - "key": "minecraft:compass", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxFtaW5lY3JhZnQ6Y29tcGFzcw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFml0ZW0ubWluZWNyYWZ0LmNvbXBhc3MA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 990, - "key": "minecraft:recovery_compass", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxptaW5lY3JhZnQ6cmVjb3ZlcnlfY29tcGFzcw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2l0ZW0ubWluZWNyYWZ0LnJlY292ZXJ5X2NvbXBhc3MA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQE=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 991, - "key": "minecraft:bundle", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:bundle_contents": "KQA=", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxBtaW5lY3JhZnQ6YnVuZGxl", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFWl0ZW0ubWluZWNyYWZ0LmJ1bmRsZQA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 992, - "key": "minecraft:white_bundle", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:bundle_contents": "KQA=", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxZtaW5lY3JhZnQ6d2hpdGVfYnVuZGxl", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2l0ZW0ubWluZWNyYWZ0LndoaXRlX2J1bmRsZQA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 993, - "key": "minecraft:orange_bundle", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:bundle_contents": "KQA=", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6b3JhbmdlX2J1bmRsZQ==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGl0ZW0ubWluZWNyYWZ0Lm9yYW5nZV9idW5kbGUA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 994, - "key": "minecraft:magenta_bundle", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:bundle_contents": "KQA=", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxhtaW5lY3JhZnQ6bWFnZW50YV9idW5kbGU=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWl0ZW0ubWluZWNyYWZ0Lm1hZ2VudGFfYnVuZGxlAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 995, - "key": "minecraft:light_blue_bundle", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:bundle_contents": "KQA=", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxttaW5lY3JhZnQ6bGlnaHRfYmx1ZV9idW5kbGU=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGl0ZW0ubWluZWNyYWZ0LmxpZ2h0X2JsdWVfYnVuZGxlAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 996, - "key": "minecraft:yellow_bundle", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:bundle_contents": "KQA=", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6eWVsbG93X2J1bmRsZQ==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGl0ZW0ubWluZWNyYWZ0LnllbGxvd19idW5kbGUA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 997, - "key": "minecraft:lime_bundle", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:bundle_contents": "KQA=", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6bGltZV9idW5kbGU=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGml0ZW0ubWluZWNyYWZ0LmxpbWVfYnVuZGxlAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 998, - "key": "minecraft:pink_bundle", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:bundle_contents": "KQA=", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6cGlua19idW5kbGU=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGml0ZW0ubWluZWNyYWZ0LnBpbmtfYnVuZGxlAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 999, - "key": "minecraft:gray_bundle", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:bundle_contents": "KQA=", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6Z3JheV9idW5kbGU=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGml0ZW0ubWluZWNyYWZ0LmdyYXlfYnVuZGxlAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1000, - "key": "minecraft:light_gray_bundle", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:bundle_contents": "KQA=", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxttaW5lY3JhZnQ6bGlnaHRfZ3JheV9idW5kbGU=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGl0ZW0ubWluZWNyYWZ0LmxpZ2h0X2dyYXlfYnVuZGxlAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1001, - "key": "minecraft:cyan_bundle", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:bundle_contents": "KQA=", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6Y3lhbl9idW5kbGU=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGml0ZW0ubWluZWNyYWZ0LmN5YW5fYnVuZGxlAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1002, - "key": "minecraft:purple_bundle", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:bundle_contents": "KQA=", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6cHVycGxlX2J1bmRsZQ==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGl0ZW0ubWluZWNyYWZ0LnB1cnBsZV9idW5kbGUA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1003, - "key": "minecraft:blue_bundle", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:bundle_contents": "KQA=", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6Ymx1ZV9idW5kbGU=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGml0ZW0ubWluZWNyYWZ0LmJsdWVfYnVuZGxlAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1004, - "key": "minecraft:brown_bundle", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:bundle_contents": "KQA=", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxZtaW5lY3JhZnQ6YnJvd25fYnVuZGxl", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2l0ZW0ubWluZWNyYWZ0LmJyb3duX2J1bmRsZQA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1005, - "key": "minecraft:green_bundle", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:bundle_contents": "KQA=", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxZtaW5lY3JhZnQ6Z3JlZW5fYnVuZGxl", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2l0ZW0ubWluZWNyYWZ0LmdyZWVuX2J1bmRsZQA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1006, - "key": "minecraft:red_bundle", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:bundle_contents": "KQA=", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxRtaW5lY3JhZnQ6cmVkX2J1bmRsZQ==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGWl0ZW0ubWluZWNyYWZ0LnJlZF9idW5kbGUA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1007, - "key": "minecraft:black_bundle", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:bundle_contents": "KQA=", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxZtaW5lY3JhZnQ6YmxhY2tfYnVuZGxl", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2l0ZW0ubWluZWNyYWZ0LmJsYWNrX2J1bmRsZQA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1008, - "key": "minecraft:fishing_rod", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:damage": "AwA=", - "minecraft:enchantable": "GwE=", - "minecraft:enchantments": "CgA=", - "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": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1009, - "key": "minecraft:clock", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bw9taW5lY3JhZnQ6Y2xvY2s=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFGl0ZW0ubWluZWNyYWZ0LmNsb2NrAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1010, - "key": "minecraft:spyglass", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxJtaW5lY3JhZnQ6c3B5Z2xhc3M=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAF2l0ZW0ubWluZWNyYWZ0LnNweWdsYXNzAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1011, - "key": "minecraft:glowstone_dust", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxhtaW5lY3JhZnQ6Z2xvd3N0b25lX2R1c3Q=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWl0ZW0ubWluZWNyYWZ0Lmdsb3dzdG9uZV9kdXN0AA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1012, - "key": "minecraft:cod", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:consumable": "FT/MzM0B5wQBAA==", - "minecraft:enchantments": "CgA=", - "minecraft:food": "FAI+zMzNAA==", - "minecraft:item_model": "Bw1taW5lY3JhZnQ6Y29k", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAEml0ZW0ubWluZWNyYWZ0LmNvZAA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1013, - "key": "minecraft:salmon", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:consumable": "FT/MzM0B5wQBAA==", - "minecraft:enchantments": "CgA=", - "minecraft:food": "FAI+zMzNAA==", - "minecraft:item_model": "BxBtaW5lY3JhZnQ6c2FsbW9u", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFWl0ZW0ubWluZWNyYWZ0LnNhbG1vbgA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1014, - "key": "minecraft:tropical_fish", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:consumable": "FT/MzM0B5wQBAA==", - "minecraft:enchantments": "CgA=", - "minecraft:food": "FAE+TMzNAA==", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6dHJvcGljYWxfZmlzaA==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGl0ZW0ubWluZWNyYWZ0LnRyb3BpY2FsX2Zpc2gA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1015, - "key": "minecraft:pufferfish", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:consumable": "FT/MzM0B5wQBAQADEgGwCQABAQAQAqwCAAEBAAgArAIAAQEAP4AAAA==", - "minecraft:enchantments": "CgA=", - "minecraft:food": "FAE+TMzNAA==", - "minecraft:item_model": "BxRtaW5lY3JhZnQ6cHVmZmVyZmlzaA==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGWl0ZW0ubWluZWNyYWZ0LnB1ZmZlcmZpc2gA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1016, - "key": "minecraft:cooked_cod", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:consumable": "FT/MzM0B5wQBAA==", - "minecraft:enchantments": "CgA=", - "minecraft:food": "FAVAwAAAAA==", - "minecraft:item_model": "BxRtaW5lY3JhZnQ6Y29va2VkX2NvZA==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGWl0ZW0ubWluZWNyYWZ0LmNvb2tlZF9jb2QA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1017, - "key": "minecraft:cooked_salmon", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:consumable": "FT/MzM0B5wQBAA==", - "minecraft:enchantments": "CgA=", - "minecraft:food": "FAZBGZmaAA==", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6Y29va2VkX3NhbG1vbg==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGl0ZW0ubWluZWNyYWZ0LmNvb2tlZF9zYWxtb24A", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1018, - "key": "minecraft:ink_sac", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxFtaW5lY3JhZnQ6aW5rX3NhYw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFml0ZW0ubWluZWNyYWZ0Lmlua19zYWMA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1019, - "key": "minecraft:glow_ink_sac", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxZtaW5lY3JhZnQ6Z2xvd19pbmtfc2Fj", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2l0ZW0ubWluZWNyYWZ0Lmdsb3dfaW5rX3NhYwA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1020, - "key": "minecraft:cocoa_beans", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6Y29jb2FfYmVhbnM=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGml0ZW0ubWluZWNyYWZ0LmNvY29hX2JlYW5zAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1021, - "key": "minecraft:white_dye", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxNtaW5lY3JhZnQ6d2hpdGVfZHll", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGGl0ZW0ubWluZWNyYWZ0LndoaXRlX2R5ZQA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1022, - "key": "minecraft:orange_dye", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxRtaW5lY3JhZnQ6b3JhbmdlX2R5ZQ==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGWl0ZW0ubWluZWNyYWZ0Lm9yYW5nZV9keWUA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1023, - "key": "minecraft:magenta_dye", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6bWFnZW50YV9keWU=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGml0ZW0ubWluZWNyYWZ0Lm1hZ2VudGFfZHllAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1024, - "key": "minecraft:light_blue_dye", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxhtaW5lY3JhZnQ6bGlnaHRfYmx1ZV9keWU=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWl0ZW0ubWluZWNyYWZ0LmxpZ2h0X2JsdWVfZHllAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1025, - "key": "minecraft:yellow_dye", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxRtaW5lY3JhZnQ6eWVsbG93X2R5ZQ==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGWl0ZW0ubWluZWNyYWZ0LnllbGxvd19keWUA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1026, - "key": "minecraft:lime_dye", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxJtaW5lY3JhZnQ6bGltZV9keWU=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAF2l0ZW0ubWluZWNyYWZ0LmxpbWVfZHllAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1027, - "key": "minecraft:pink_dye", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxJtaW5lY3JhZnQ6cGlua19keWU=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAF2l0ZW0ubWluZWNyYWZ0LnBpbmtfZHllAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1028, - "key": "minecraft:gray_dye", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxJtaW5lY3JhZnQ6Z3JheV9keWU=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAF2l0ZW0ubWluZWNyYWZ0LmdyYXlfZHllAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1029, - "key": "minecraft:light_gray_dye", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxhtaW5lY3JhZnQ6bGlnaHRfZ3JheV9keWU=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWl0ZW0ubWluZWNyYWZ0LmxpZ2h0X2dyYXlfZHllAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1030, - "key": "minecraft:cyan_dye", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxJtaW5lY3JhZnQ6Y3lhbl9keWU=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAF2l0ZW0ubWluZWNyYWZ0LmN5YW5fZHllAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1031, - "key": "minecraft:purple_dye", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxRtaW5lY3JhZnQ6cHVycGxlX2R5ZQ==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGWl0ZW0ubWluZWNyYWZ0LnB1cnBsZV9keWUA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1032, - "key": "minecraft:blue_dye", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxJtaW5lY3JhZnQ6Ymx1ZV9keWU=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAF2l0ZW0ubWluZWNyYWZ0LmJsdWVfZHllAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1033, - "key": "minecraft:brown_dye", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxNtaW5lY3JhZnQ6YnJvd25fZHll", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGGl0ZW0ubWluZWNyYWZ0LmJyb3duX2R5ZQA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1034, - "key": "minecraft:green_dye", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxNtaW5lY3JhZnQ6Z3JlZW5fZHll", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGGl0ZW0ubWluZWNyYWZ0LmdyZWVuX2R5ZQA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1035, - "key": "minecraft:red_dye", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxFtaW5lY3JhZnQ6cmVkX2R5ZQ==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFml0ZW0ubWluZWNyYWZ0LnJlZF9keWUA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1036, - "key": "minecraft:black_dye", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxNtaW5lY3JhZnQ6YmxhY2tfZHll", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGGl0ZW0ubWluZWNyYWZ0LmJsYWNrX2R5ZQA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1037, - "key": "minecraft:bone_meal", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxNtaW5lY3JhZnQ6Ym9uZV9tZWFs", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGGl0ZW0ubWluZWNyYWZ0LmJvbmVfbWVhbAA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1038, - "key": "minecraft:bone", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bw5taW5lY3JhZnQ6Ym9uZQ==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAE2l0ZW0ubWluZWNyYWZ0LmJvbmUA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1039, - "key": "minecraft:sugar", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bw9taW5lY3JhZnQ6c3VnYXI=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFGl0ZW0ubWluZWNyYWZ0LnN1Z2FyAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1040, - "key": "minecraft:cake", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bw5taW5lY3JhZnQ6Y2FrZQ==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFGJsb2NrLm1pbmVjcmFmdC5jYWtlAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1041, - "key": "minecraft:white_bed", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxNtaW5lY3JhZnQ6d2hpdGVfYmVk", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGWJsb2NrLm1pbmVjcmFmdC53aGl0ZV9iZWQA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1042, - "key": "minecraft:orange_bed", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxRtaW5lY3JhZnQ6b3JhbmdlX2JlZA==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC5vcmFuZ2VfYmVkAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1043, - "key": "minecraft:magenta_bed", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6bWFnZW50YV9iZWQ=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5tYWdlbnRhX2JlZAA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1044, - "key": "minecraft:light_blue_bed", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxhtaW5lY3JhZnQ6bGlnaHRfYmx1ZV9iZWQ=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC5saWdodF9ibHVlX2JlZAA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1045, - "key": "minecraft:yellow_bed", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxRtaW5lY3JhZnQ6eWVsbG93X2JlZA==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC55ZWxsb3dfYmVkAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1046, - "key": "minecraft:lime_bed", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxJtaW5lY3JhZnQ6bGltZV9iZWQ=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGGJsb2NrLm1pbmVjcmFmdC5saW1lX2JlZAA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1047, - "key": "minecraft:pink_bed", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxJtaW5lY3JhZnQ6cGlua19iZWQ=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGGJsb2NrLm1pbmVjcmFmdC5waW5rX2JlZAA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1048, - "key": "minecraft:gray_bed", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxJtaW5lY3JhZnQ6Z3JheV9iZWQ=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGGJsb2NrLm1pbmVjcmFmdC5ncmF5X2JlZAA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1049, - "key": "minecraft:light_gray_bed", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxhtaW5lY3JhZnQ6bGlnaHRfZ3JheV9iZWQ=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC5saWdodF9ncmF5X2JlZAA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1050, - "key": "minecraft:cyan_bed", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxJtaW5lY3JhZnQ6Y3lhbl9iZWQ=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGGJsb2NrLm1pbmVjcmFmdC5jeWFuX2JlZAA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1051, - "key": "minecraft:purple_bed", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxRtaW5lY3JhZnQ6cHVycGxlX2JlZA==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC5wdXJwbGVfYmVkAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1052, - "key": "minecraft:blue_bed", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxJtaW5lY3JhZnQ6Ymx1ZV9iZWQ=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGGJsb2NrLm1pbmVjcmFmdC5ibHVlX2JlZAA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1053, - "key": "minecraft:brown_bed", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxNtaW5lY3JhZnQ6YnJvd25fYmVk", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGWJsb2NrLm1pbmVjcmFmdC5icm93bl9iZWQA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1054, - "key": "minecraft:green_bed", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxNtaW5lY3JhZnQ6Z3JlZW5fYmVk", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGWJsb2NrLm1pbmVjcmFmdC5ncmVlbl9iZWQA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1055, - "key": "minecraft:red_bed", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxFtaW5lY3JhZnQ6cmVkX2JlZA==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAF2Jsb2NrLm1pbmVjcmFmdC5yZWRfYmVkAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1056, - "key": "minecraft:black_bed", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxNtaW5lY3JhZnQ6YmxhY2tfYmVk", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGWJsb2NrLm1pbmVjcmFmdC5ibGFja19iZWQA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1057, - "key": "minecraft:cookie", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:consumable": "FT/MzM0B5wQBAA==", - "minecraft:enchantments": "CgA=", - "minecraft:food": "FAI+zMzNAA==", - "minecraft:item_model": "BxBtaW5lY3JhZnQ6Y29va2ll", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFWl0ZW0ubWluZWNyYWZ0LmNvb2tpZQA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1058, - "key": "minecraft:crafter", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:container": "QgA=", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxFtaW5lY3JhZnQ6Y3JhZnRlcg==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAF2Jsb2NrLm1pbmVjcmFmdC5jcmFmdGVyAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1059, - "key": "minecraft:filled_map", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxRtaW5lY3JhZnQ6ZmlsbGVkX21hcA==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGWl0ZW0ubWluZWNyYWZ0LmZpbGxlZF9tYXAA", - "minecraft:lore": "CAA=", - "minecraft:map_color": "JABGQC4=", - "minecraft:map_decorations": "JgoA", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1060, - "key": "minecraft:shears", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:damage": "AwA=", - "minecraft:enchantments": "CgA=", - "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": "EAA=", - "minecraft:tool": "GQQCgQEBQXAAAAEBABBtaW5lY3JhZnQ6bGVhdmVzAUFwAAAAAA5taW5lY3JhZnQ6d29vbAFAoAAAAAPPAtACAUAAAAAAP4AAAAEB", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1061, - "key": "minecraft:melon_slice", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:consumable": "FT/MzM0B5wQBAA==", - "minecraft:enchantments": "CgA=", - "minecraft:food": "FAI/mZmaAA==", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6bWVsb25fc2xpY2U=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGml0ZW0ubWluZWNyYWZ0Lm1lbG9uX3NsaWNlAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1062, - "key": "minecraft:dried_kelp", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:consumable": "FT9MzM0B5wQBAA==", - "minecraft:enchantments": "CgA=", - "minecraft:food": "FAE/GZmaAA==", - "minecraft:item_model": "BxRtaW5lY3JhZnQ6ZHJpZWRfa2VscA==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGWl0ZW0ubWluZWNyYWZ0LmRyaWVkX2tlbHAA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1063, - "key": "minecraft:pumpkin_seeds", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6cHVtcGtpbl9zZWVkcw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGl0ZW0ubWluZWNyYWZ0LnB1bXBraW5fc2VlZHMA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1064, - "key": "minecraft:melon_seeds", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6bWVsb25fc2VlZHM=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGml0ZW0ubWluZWNyYWZ0Lm1lbG9uX3NlZWRzAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1065, - "key": "minecraft:beef", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:consumable": "FT/MzM0B5wQBAA==", - "minecraft:enchantments": "CgA=", - "minecraft:food": "FAM/5mZnAA==", - "minecraft:item_model": "Bw5taW5lY3JhZnQ6YmVlZg==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAE2l0ZW0ubWluZWNyYWZ0LmJlZWYA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1066, - "key": "minecraft:cooked_beef", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:consumable": "FT/MzM0B5wQBAA==", - "minecraft:enchantments": "CgA=", - "minecraft:food": "FAhBTMzNAA==", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6Y29va2VkX2JlZWY=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGml0ZW0ubWluZWNyYWZ0LmNvb2tlZF9iZWVmAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1067, - "key": "minecraft:chicken", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:consumable": "FT/MzM0B5wQBAQABEADYBAABAQA+mZma", - "minecraft:enchantments": "CgA=", - "minecraft:food": "FAI/mZmaAA==", - "minecraft:item_model": "BxFtaW5lY3JhZnQ6Y2hpY2tlbg==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFml0ZW0ubWluZWNyYWZ0LmNoaWNrZW4A", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1068, - "key": "minecraft:cooked_chicken", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:consumable": "FT/MzM0B5wQBAA==", - "minecraft:enchantments": "CgA=", - "minecraft:food": "FAZA5mZnAA==", - "minecraft:item_model": "BxhtaW5lY3JhZnQ6Y29va2VkX2NoaWNrZW4=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWl0ZW0ubWluZWNyYWZ0LmNvb2tlZF9jaGlja2VuAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1069, - "key": "minecraft:rotten_flesh", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:consumable": "FT/MzM0B5wQBAQABEADYBAABAQA/TMzN", - "minecraft:enchantments": "CgA=", - "minecraft:food": "FAQ/TMzNAA==", - "minecraft:item_model": "BxZtaW5lY3JhZnQ6cm90dGVuX2ZsZXNo", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2l0ZW0ubWluZWNyYWZ0LnJvdHRlbl9mbGVzaAA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1070, - "key": "minecraft:ender_pearl", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6ZW5kZXJfcGVhcmw=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGml0ZW0ubWluZWNyYWZ0LmVuZGVyX3BlYXJsAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "ARA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA", - "minecraft:use_cooldown": "Fz+AAAAA" - } - }, - { - "id": 1071, - "key": "minecraft:blaze_rod", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxNtaW5lY3JhZnQ6YmxhemVfcm9k", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGGl0ZW0ubWluZWNyYWZ0LmJsYXplX3JvZAA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1072, - "key": "minecraft:ghast_tear", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxRtaW5lY3JhZnQ6Z2hhc3RfdGVhcg==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGWl0ZW0ubWluZWNyYWZ0LmdoYXN0X3RlYXIA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1073, - "key": "minecraft:gold_nugget", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6Z29sZF9udWdnZXQ=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGml0ZW0ubWluZWNyYWZ0LmdvbGRfbnVnZ2V0AA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1074, - "key": "minecraft:nether_wart", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6bmV0aGVyX3dhcnQ=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGml0ZW0ubWluZWNyYWZ0Lm5ldGhlcl93YXJ0AA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1075, - "key": "minecraft:glass_bottle", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxZtaW5lY3JhZnQ6Z2xhc3NfYm90dGxl", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2l0ZW0ubWluZWNyYWZ0LmdsYXNzX2JvdHRsZQA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1076, - "key": "minecraft:potion", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:consumable": "FT/MzM0C5gQAAA==", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxBtaW5lY3JhZnQ6cG90aW9u", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFWl0ZW0ubWluZWNyYWZ0LnBvdGlvbgA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:potion_contents": "KgAAAAA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA", - "minecraft:use_remainder": "FgGzCAAA" - } - }, - { - "id": 1077, - "key": "minecraft:spider_eye", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:consumable": "FT/MzM0B5wQBAQABEgBkAAEBAD+AAAA=", - "minecraft:enchantments": "CgA=", - "minecraft:food": "FAJATMzNAA==", - "minecraft:item_model": "BxRtaW5lY3JhZnQ6c3BpZGVyX2V5ZQ==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGWl0ZW0ubWluZWNyYWZ0LnNwaWRlcl9leWUA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1078, - "key": "minecraft:fermented_spider_eye", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx5taW5lY3JhZnQ6ZmVybWVudGVkX3NwaWRlcl9leWU=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2l0ZW0ubWluZWNyYWZ0LmZlcm1lbnRlZF9zcGlkZXJfZXllAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1079, - "key": "minecraft:blaze_powder", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxZtaW5lY3JhZnQ6YmxhemVfcG93ZGVy", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2l0ZW0ubWluZWNyYWZ0LmJsYXplX3Bvd2RlcgA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1080, - "key": "minecraft:magma_cream", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6bWFnbWFfY3JlYW0=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGml0ZW0ubWluZWNyYWZ0Lm1hZ21hX2NyZWFtAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1081, - "key": "minecraft:brewing_stand", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:container": "QgA=", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6YnJld2luZ19zdGFuZA==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5icmV3aW5nX3N0YW5kAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1082, - "key": "minecraft:cauldron", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxJtaW5lY3JhZnQ6Y2F1bGRyb24=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGGJsb2NrLm1pbmVjcmFmdC5jYXVsZHJvbgA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1083, - "key": "minecraft:ender_eye", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxNtaW5lY3JhZnQ6ZW5kZXJfZXll", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGGl0ZW0ubWluZWNyYWZ0LmVuZGVyX2V5ZQA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1084, - "key": "minecraft:glistering_melon_slice", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByBtaW5lY3JhZnQ6Z2xpc3RlcmluZ19tZWxvbl9zbGljZQ==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWl0ZW0ubWluZWNyYWZ0LmdsaXN0ZXJpbmdfbWVsb25fc2xpY2UA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1085, - "key": "minecraft:armadillo_spawn_egg", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx1taW5lY3JhZnQ6YXJtYWRpbGxvX3NwYXduX2VnZw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIml0ZW0ubWluZWNyYWZ0LmFybWFkaWxsb19zcGF3bl9lZ2cA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1086, - "key": "minecraft:allay_spawn_egg", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxltaW5lY3JhZnQ6YWxsYXlfc3Bhd25fZWdn", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHml0ZW0ubWluZWNyYWZ0LmFsbGF5X3NwYXduX2VnZwA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1087, - "key": "minecraft:axolotl_spawn_egg", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxttaW5lY3JhZnQ6YXhvbG90bF9zcGF3bl9lZ2c=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGl0ZW0ubWluZWNyYWZ0LmF4b2xvdGxfc3Bhd25fZWdnAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1088, - "key": "minecraft:bat_spawn_egg", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6YmF0X3NwYXduX2VnZw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGl0ZW0ubWluZWNyYWZ0LmJhdF9zcGF3bl9lZ2cA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1089, - "key": "minecraft:bee_spawn_egg", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6YmVlX3NwYXduX2VnZw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGl0ZW0ubWluZWNyYWZ0LmJlZV9zcGF3bl9lZ2cA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1090, - "key": "minecraft:blaze_spawn_egg", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxltaW5lY3JhZnQ6YmxhemVfc3Bhd25fZWdn", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHml0ZW0ubWluZWNyYWZ0LmJsYXplX3NwYXduX2VnZwA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1091, - "key": "minecraft:bogged_spawn_egg", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxptaW5lY3JhZnQ6Ym9nZ2VkX3NwYXduX2VnZw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2l0ZW0ubWluZWNyYWZ0LmJvZ2dlZF9zcGF3bl9lZ2cA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1092, - "key": "minecraft:breeze_spawn_egg", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxptaW5lY3JhZnQ6YnJlZXplX3NwYXduX2VnZw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2l0ZW0ubWluZWNyYWZ0LmJyZWV6ZV9zcGF3bl9lZ2cA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1093, - "key": "minecraft:cat_spawn_egg", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6Y2F0X3NwYXduX2VnZw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGl0ZW0ubWluZWNyYWZ0LmNhdF9zcGF3bl9lZ2cA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1094, - "key": "minecraft:camel_spawn_egg", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxltaW5lY3JhZnQ6Y2FtZWxfc3Bhd25fZWdn", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHml0ZW0ubWluZWNyYWZ0LmNhbWVsX3NwYXduX2VnZwA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1095, - "key": "minecraft:cave_spider_spawn_egg", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx9taW5lY3JhZnQ6Y2F2ZV9zcGlkZXJfc3Bhd25fZWdn", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJGl0ZW0ubWluZWNyYWZ0LmNhdmVfc3BpZGVyX3NwYXduX2VnZwA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1096, - "key": "minecraft:chicken_spawn_egg", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxttaW5lY3JhZnQ6Y2hpY2tlbl9zcGF3bl9lZ2c=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGl0ZW0ubWluZWNyYWZ0LmNoaWNrZW5fc3Bhd25fZWdnAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1097, - "key": "minecraft:cod_spawn_egg", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6Y29kX3NwYXduX2VnZw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGl0ZW0ubWluZWNyYWZ0LmNvZF9zcGF3bl9lZ2cA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1098, - "key": "minecraft:cow_spawn_egg", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6Y293X3NwYXduX2VnZw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGl0ZW0ubWluZWNyYWZ0LmNvd19zcGF3bl9lZ2cA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1099, - "key": "minecraft:creeper_spawn_egg", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxttaW5lY3JhZnQ6Y3JlZXBlcl9zcGF3bl9lZ2c=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGl0ZW0ubWluZWNyYWZ0LmNyZWVwZXJfc3Bhd25fZWdnAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1100, - "key": "minecraft:dolphin_spawn_egg", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxttaW5lY3JhZnQ6ZG9scGhpbl9zcGF3bl9lZ2c=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGl0ZW0ubWluZWNyYWZ0LmRvbHBoaW5fc3Bhd25fZWdnAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1101, - "key": "minecraft:donkey_spawn_egg", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxptaW5lY3JhZnQ6ZG9ua2V5X3NwYXduX2VnZw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2l0ZW0ubWluZWNyYWZ0LmRvbmtleV9zcGF3bl9lZ2cA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1102, - "key": "minecraft:drowned_spawn_egg", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxttaW5lY3JhZnQ6ZHJvd25lZF9zcGF3bl9lZ2c=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGl0ZW0ubWluZWNyYWZ0LmRyb3duZWRfc3Bhd25fZWdnAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1103, - "key": "minecraft:elder_guardian_spawn_egg", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByJtaW5lY3JhZnQ6ZWxkZXJfZ3VhcmRpYW5fc3Bhd25fZWdn", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJ2l0ZW0ubWluZWNyYWZ0LmVsZGVyX2d1YXJkaWFuX3NwYXduX2VnZwA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1104, - "key": "minecraft:ender_dragon_spawn_egg", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByBtaW5lY3JhZnQ6ZW5kZXJfZHJhZ29uX3NwYXduX2VnZw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWl0ZW0ubWluZWNyYWZ0LmVuZGVyX2RyYWdvbl9zcGF3bl9lZ2cA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1105, - "key": "minecraft:enderman_spawn_egg", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxxtaW5lY3JhZnQ6ZW5kZXJtYW5fc3Bhd25fZWdn", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWl0ZW0ubWluZWNyYWZ0LmVuZGVybWFuX3NwYXduX2VnZwA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1106, - "key": "minecraft:endermite_spawn_egg", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx1taW5lY3JhZnQ6ZW5kZXJtaXRlX3NwYXduX2VnZw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIml0ZW0ubWluZWNyYWZ0LmVuZGVybWl0ZV9zcGF3bl9lZ2cA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1107, - "key": "minecraft:evoker_spawn_egg", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxptaW5lY3JhZnQ6ZXZva2VyX3NwYXduX2VnZw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2l0ZW0ubWluZWNyYWZ0LmV2b2tlcl9zcGF3bl9lZ2cA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1108, - "key": "minecraft:fox_spawn_egg", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6Zm94X3NwYXduX2VnZw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGl0ZW0ubWluZWNyYWZ0LmZveF9zcGF3bl9lZ2cA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1109, - "key": "minecraft:frog_spawn_egg", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxhtaW5lY3JhZnQ6ZnJvZ19zcGF3bl9lZ2c=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWl0ZW0ubWluZWNyYWZ0LmZyb2dfc3Bhd25fZWdnAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1110, - "key": "minecraft:ghast_spawn_egg", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxltaW5lY3JhZnQ6Z2hhc3Rfc3Bhd25fZWdn", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHml0ZW0ubWluZWNyYWZ0LmdoYXN0X3NwYXduX2VnZwA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1111, - "key": "minecraft:happy_ghast_spawn_egg", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx9taW5lY3JhZnQ6aGFwcHlfZ2hhc3Rfc3Bhd25fZWdn", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJGl0ZW0ubWluZWNyYWZ0LmhhcHB5X2doYXN0X3NwYXduX2VnZwA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1112, - "key": "minecraft:glow_squid_spawn_egg", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx5taW5lY3JhZnQ6Z2xvd19zcXVpZF9zcGF3bl9lZ2c=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2l0ZW0ubWluZWNyYWZ0Lmdsb3dfc3F1aWRfc3Bhd25fZWdnAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1113, - "key": "minecraft:goat_spawn_egg", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxhtaW5lY3JhZnQ6Z29hdF9zcGF3bl9lZ2c=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWl0ZW0ubWluZWNyYWZ0LmdvYXRfc3Bhd25fZWdnAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1114, - "key": "minecraft:guardian_spawn_egg", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxxtaW5lY3JhZnQ6Z3VhcmRpYW5fc3Bhd25fZWdn", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWl0ZW0ubWluZWNyYWZ0Lmd1YXJkaWFuX3NwYXduX2VnZwA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1115, - "key": "minecraft:hoglin_spawn_egg", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxptaW5lY3JhZnQ6aG9nbGluX3NwYXduX2VnZw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2l0ZW0ubWluZWNyYWZ0LmhvZ2xpbl9zcGF3bl9lZ2cA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1116, - "key": "minecraft:horse_spawn_egg", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxltaW5lY3JhZnQ6aG9yc2Vfc3Bhd25fZWdn", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHml0ZW0ubWluZWNyYWZ0LmhvcnNlX3NwYXduX2VnZwA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1117, - "key": "minecraft:husk_spawn_egg", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxhtaW5lY3JhZnQ6aHVza19zcGF3bl9lZ2c=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWl0ZW0ubWluZWNyYWZ0Lmh1c2tfc3Bhd25fZWdnAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1118, - "key": "minecraft:iron_golem_spawn_egg", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx5taW5lY3JhZnQ6aXJvbl9nb2xlbV9zcGF3bl9lZ2c=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2l0ZW0ubWluZWNyYWZ0Lmlyb25fZ29sZW1fc3Bhd25fZWdnAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1119, - "key": "minecraft:llama_spawn_egg", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxltaW5lY3JhZnQ6bGxhbWFfc3Bhd25fZWdn", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHml0ZW0ubWluZWNyYWZ0LmxsYW1hX3NwYXduX2VnZwA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1120, - "key": "minecraft:magma_cube_spawn_egg", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx5taW5lY3JhZnQ6bWFnbWFfY3ViZV9zcGF3bl9lZ2c=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2l0ZW0ubWluZWNyYWZ0Lm1hZ21hX2N1YmVfc3Bhd25fZWdnAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1121, - "key": "minecraft:mooshroom_spawn_egg", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx1taW5lY3JhZnQ6bW9vc2hyb29tX3NwYXduX2VnZw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIml0ZW0ubWluZWNyYWZ0Lm1vb3Nocm9vbV9zcGF3bl9lZ2cA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1122, - "key": "minecraft:mule_spawn_egg", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxhtaW5lY3JhZnQ6bXVsZV9zcGF3bl9lZ2c=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWl0ZW0ubWluZWNyYWZ0Lm11bGVfc3Bhd25fZWdnAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1123, - "key": "minecraft:ocelot_spawn_egg", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxptaW5lY3JhZnQ6b2NlbG90X3NwYXduX2VnZw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2l0ZW0ubWluZWNyYWZ0Lm9jZWxvdF9zcGF3bl9lZ2cA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1124, - "key": "minecraft:panda_spawn_egg", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxltaW5lY3JhZnQ6cGFuZGFfc3Bhd25fZWdn", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHml0ZW0ubWluZWNyYWZ0LnBhbmRhX3NwYXduX2VnZwA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1125, - "key": "minecraft:parrot_spawn_egg", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxptaW5lY3JhZnQ6cGFycm90X3NwYXduX2VnZw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2l0ZW0ubWluZWNyYWZ0LnBhcnJvdF9zcGF3bl9lZ2cA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1126, - "key": "minecraft:phantom_spawn_egg", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxttaW5lY3JhZnQ6cGhhbnRvbV9zcGF3bl9lZ2c=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGl0ZW0ubWluZWNyYWZ0LnBoYW50b21fc3Bhd25fZWdnAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1127, - "key": "minecraft:pig_spawn_egg", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6cGlnX3NwYXduX2VnZw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGl0ZW0ubWluZWNyYWZ0LnBpZ19zcGF3bl9lZ2cA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1128, - "key": "minecraft:piglin_spawn_egg", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxptaW5lY3JhZnQ6cGlnbGluX3NwYXduX2VnZw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2l0ZW0ubWluZWNyYWZ0LnBpZ2xpbl9zcGF3bl9lZ2cA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1129, - "key": "minecraft:piglin_brute_spawn_egg", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByBtaW5lY3JhZnQ6cGlnbGluX2JydXRlX3NwYXduX2VnZw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWl0ZW0ubWluZWNyYWZ0LnBpZ2xpbl9icnV0ZV9zcGF3bl9lZ2cA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1130, - "key": "minecraft:pillager_spawn_egg", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxxtaW5lY3JhZnQ6cGlsbGFnZXJfc3Bhd25fZWdn", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWl0ZW0ubWluZWNyYWZ0LnBpbGxhZ2VyX3NwYXduX2VnZwA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1131, - "key": "minecraft:polar_bear_spawn_egg", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx5taW5lY3JhZnQ6cG9sYXJfYmVhcl9zcGF3bl9lZ2c=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2l0ZW0ubWluZWNyYWZ0LnBvbGFyX2JlYXJfc3Bhd25fZWdnAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1132, - "key": "minecraft:pufferfish_spawn_egg", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx5taW5lY3JhZnQ6cHVmZmVyZmlzaF9zcGF3bl9lZ2c=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2l0ZW0ubWluZWNyYWZ0LnB1ZmZlcmZpc2hfc3Bhd25fZWdnAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1133, - "key": "minecraft:rabbit_spawn_egg", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxptaW5lY3JhZnQ6cmFiYml0X3NwYXduX2VnZw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2l0ZW0ubWluZWNyYWZ0LnJhYmJpdF9zcGF3bl9lZ2cA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1134, - "key": "minecraft:ravager_spawn_egg", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxttaW5lY3JhZnQ6cmF2YWdlcl9zcGF3bl9lZ2c=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGl0ZW0ubWluZWNyYWZ0LnJhdmFnZXJfc3Bhd25fZWdnAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1135, - "key": "minecraft:salmon_spawn_egg", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxptaW5lY3JhZnQ6c2FsbW9uX3NwYXduX2VnZw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2l0ZW0ubWluZWNyYWZ0LnNhbG1vbl9zcGF3bl9lZ2cA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1136, - "key": "minecraft:sheep_spawn_egg", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxltaW5lY3JhZnQ6c2hlZXBfc3Bhd25fZWdn", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHml0ZW0ubWluZWNyYWZ0LnNoZWVwX3NwYXduX2VnZwA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1137, - "key": "minecraft:shulker_spawn_egg", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxttaW5lY3JhZnQ6c2h1bGtlcl9zcGF3bl9lZ2c=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGl0ZW0ubWluZWNyYWZ0LnNodWxrZXJfc3Bhd25fZWdnAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1138, - "key": "minecraft:silverfish_spawn_egg", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx5taW5lY3JhZnQ6c2lsdmVyZmlzaF9zcGF3bl9lZ2c=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2l0ZW0ubWluZWNyYWZ0LnNpbHZlcmZpc2hfc3Bhd25fZWdnAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1139, - "key": "minecraft:skeleton_spawn_egg", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxxtaW5lY3JhZnQ6c2tlbGV0b25fc3Bhd25fZWdn", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWl0ZW0ubWluZWNyYWZ0LnNrZWxldG9uX3NwYXduX2VnZwA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1140, - "key": "minecraft:skeleton_horse_spawn_egg", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByJtaW5lY3JhZnQ6c2tlbGV0b25faG9yc2Vfc3Bhd25fZWdn", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJ2l0ZW0ubWluZWNyYWZ0LnNrZWxldG9uX2hvcnNlX3NwYXduX2VnZwA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1141, - "key": "minecraft:slime_spawn_egg", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxltaW5lY3JhZnQ6c2xpbWVfc3Bhd25fZWdn", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHml0ZW0ubWluZWNyYWZ0LnNsaW1lX3NwYXduX2VnZwA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1142, - "key": "minecraft:sniffer_spawn_egg", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxttaW5lY3JhZnQ6c25pZmZlcl9zcGF3bl9lZ2c=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGl0ZW0ubWluZWNyYWZ0LnNuaWZmZXJfc3Bhd25fZWdnAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1143, - "key": "minecraft:snow_golem_spawn_egg", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx5taW5lY3JhZnQ6c25vd19nb2xlbV9zcGF3bl9lZ2c=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2l0ZW0ubWluZWNyYWZ0LnNub3dfZ29sZW1fc3Bhd25fZWdnAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1144, - "key": "minecraft:spider_spawn_egg", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxptaW5lY3JhZnQ6c3BpZGVyX3NwYXduX2VnZw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2l0ZW0ubWluZWNyYWZ0LnNwaWRlcl9zcGF3bl9lZ2cA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1145, - "key": "minecraft:squid_spawn_egg", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxltaW5lY3JhZnQ6c3F1aWRfc3Bhd25fZWdn", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHml0ZW0ubWluZWNyYWZ0LnNxdWlkX3NwYXduX2VnZwA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1146, - "key": "minecraft:stray_spawn_egg", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxltaW5lY3JhZnQ6c3RyYXlfc3Bhd25fZWdn", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHml0ZW0ubWluZWNyYWZ0LnN0cmF5X3NwYXduX2VnZwA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1147, - "key": "minecraft:strider_spawn_egg", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxttaW5lY3JhZnQ6c3RyaWRlcl9zcGF3bl9lZ2c=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGl0ZW0ubWluZWNyYWZ0LnN0cmlkZXJfc3Bhd25fZWdnAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1148, - "key": "minecraft:tadpole_spawn_egg", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxttaW5lY3JhZnQ6dGFkcG9sZV9zcGF3bl9lZ2c=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGl0ZW0ubWluZWNyYWZ0LnRhZHBvbGVfc3Bhd25fZWdnAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1149, - "key": "minecraft:trader_llama_spawn_egg", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByBtaW5lY3JhZnQ6dHJhZGVyX2xsYW1hX3NwYXduX2VnZw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWl0ZW0ubWluZWNyYWZ0LnRyYWRlcl9sbGFtYV9zcGF3bl9lZ2cA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1150, - "key": "minecraft:tropical_fish_spawn_egg", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByFtaW5lY3JhZnQ6dHJvcGljYWxfZmlzaF9zcGF3bl9lZ2c=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJml0ZW0ubWluZWNyYWZ0LnRyb3BpY2FsX2Zpc2hfc3Bhd25fZWdnAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1151, - "key": "minecraft:turtle_spawn_egg", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxptaW5lY3JhZnQ6dHVydGxlX3NwYXduX2VnZw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2l0ZW0ubWluZWNyYWZ0LnR1cnRsZV9zcGF3bl9lZ2cA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1152, - "key": "minecraft:vex_spawn_egg", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6dmV4X3NwYXduX2VnZw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGl0ZW0ubWluZWNyYWZ0LnZleF9zcGF3bl9lZ2cA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1153, - "key": "minecraft:villager_spawn_egg", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxxtaW5lY3JhZnQ6dmlsbGFnZXJfc3Bhd25fZWdn", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWl0ZW0ubWluZWNyYWZ0LnZpbGxhZ2VyX3NwYXduX2VnZwA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1154, - "key": "minecraft:vindicator_spawn_egg", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx5taW5lY3JhZnQ6dmluZGljYXRvcl9zcGF3bl9lZ2c=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2l0ZW0ubWluZWNyYWZ0LnZpbmRpY2F0b3Jfc3Bhd25fZWdnAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1155, - "key": "minecraft:wandering_trader_spawn_egg", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByRtaW5lY3JhZnQ6d2FuZGVyaW5nX3RyYWRlcl9zcGF3bl9lZ2c=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAKWl0ZW0ubWluZWNyYWZ0LndhbmRlcmluZ190cmFkZXJfc3Bhd25fZWdnAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1156, - "key": "minecraft:warden_spawn_egg", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxptaW5lY3JhZnQ6d2FyZGVuX3NwYXduX2VnZw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2l0ZW0ubWluZWNyYWZ0LndhcmRlbl9zcGF3bl9lZ2cA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1157, - "key": "minecraft:witch_spawn_egg", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxltaW5lY3JhZnQ6d2l0Y2hfc3Bhd25fZWdn", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHml0ZW0ubWluZWNyYWZ0LndpdGNoX3NwYXduX2VnZwA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1158, - "key": "minecraft:wither_spawn_egg", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxptaW5lY3JhZnQ6d2l0aGVyX3NwYXduX2VnZw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2l0ZW0ubWluZWNyYWZ0LndpdGhlcl9zcGF3bl9lZ2cA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1159, - "key": "minecraft:wither_skeleton_spawn_egg", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByNtaW5lY3JhZnQ6d2l0aGVyX3NrZWxldG9uX3NwYXduX2VnZw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAKGl0ZW0ubWluZWNyYWZ0LndpdGhlcl9za2VsZXRvbl9zcGF3bl9lZ2cA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1160, - "key": "minecraft:wolf_spawn_egg", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxhtaW5lY3JhZnQ6d29sZl9zcGF3bl9lZ2c=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWl0ZW0ubWluZWNyYWZ0LndvbGZfc3Bhd25fZWdnAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1161, - "key": "minecraft:zoglin_spawn_egg", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxptaW5lY3JhZnQ6em9nbGluX3NwYXduX2VnZw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2l0ZW0ubWluZWNyYWZ0LnpvZ2xpbl9zcGF3bl9lZ2cA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1162, - "key": "minecraft:creaking_spawn_egg", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxxtaW5lY3JhZnQ6Y3JlYWtpbmdfc3Bhd25fZWdn", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWl0ZW0ubWluZWNyYWZ0LmNyZWFraW5nX3NwYXduX2VnZwA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1163, - "key": "minecraft:zombie_spawn_egg", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxptaW5lY3JhZnQ6em9tYmllX3NwYXduX2VnZw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2l0ZW0ubWluZWNyYWZ0LnpvbWJpZV9zcGF3bl9lZ2cA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1164, - "key": "minecraft:zombie_horse_spawn_egg", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByBtaW5lY3JhZnQ6em9tYmllX2hvcnNlX3NwYXduX2VnZw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWl0ZW0ubWluZWNyYWZ0LnpvbWJpZV9ob3JzZV9zcGF3bl9lZ2cA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1165, - "key": "minecraft:zombie_villager_spawn_egg", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByNtaW5lY3JhZnQ6em9tYmllX3ZpbGxhZ2VyX3NwYXduX2VnZw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAKGl0ZW0ubWluZWNyYWZ0LnpvbWJpZV92aWxsYWdlcl9zcGF3bl9lZ2cA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1166, - "key": "minecraft:zombified_piglin_spawn_egg", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByRtaW5lY3JhZnQ6em9tYmlmaWVkX3BpZ2xpbl9zcGF3bl9lZ2c=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAKWl0ZW0ubWluZWNyYWZ0LnpvbWJpZmllZF9waWdsaW5fc3Bhd25fZWdnAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1167, - "key": "minecraft:experience_bottle", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantment_glint_override": "EgE=", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxttaW5lY3JhZnQ6ZXhwZXJpZW5jZV9ib3R0bGU=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGl0ZW0ubWluZWNyYWZ0LmV4cGVyaWVuY2VfYm90dGxlAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQE=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1168, - "key": "minecraft:fire_charge", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6ZmlyZV9jaGFyZ2U=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGml0ZW0ubWluZWNyYWZ0LmZpcmVfY2hhcmdlAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1169, - "key": "minecraft:wind_charge", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6d2luZF9jaGFyZ2U=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGml0ZW0ubWluZWNyYWZ0LndpbmRfY2hhcmdlAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA", - "minecraft:use_cooldown": "Fz8AAAAA" - } - }, - { - "id": 1170, - "key": "minecraft:writable_book", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6d3JpdGFibGVfYm9vaw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGl0ZW0ubWluZWNyYWZ0LndyaXRhYmxlX2Jvb2sA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA", - "minecraft:writable_book_content": "LQA=" - } - }, - { - "id": 1171, - "key": "minecraft:written_book", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantment_glint_override": "EgE=", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxZtaW5lY3JhZnQ6d3JpdHRlbl9ib29r", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2l0ZW0ubWluZWNyYWZ0LndyaXR0ZW5fYm9vawA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "ARA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1172, - "key": "minecraft:breeze_rod", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxRtaW5lY3JhZnQ6YnJlZXplX3JvZA==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGWl0ZW0ubWluZWNyYWZ0LmJyZWV6ZV9yb2QA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1173, - "key": "minecraft:mace", - "components": { - "minecraft:attribute_modifiers": "DQICHG1pbmVjcmFmdDpiYXNlX2F0dGFja19kYW1hZ2VAFAAAAAAAAAABAAQbbWluZWNyYWZ0OmJhc2VfYXR0YWNrX3NwZWVkwAszM0AAAAAAAQA=", - "minecraft:break_sound": "R7EG", - "minecraft:damage": "AwA=", - "minecraft:enchantable": "Gw8=", - "minecraft:enchantments": "CgA=", - "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": "EAA=", - "minecraft:repairable": "HQKUCQ==", - "minecraft:tool": "GQA/gAAAAgA=", - "minecraft:tooltip_display": "DwAA", - "minecraft:weapon": "GgEAAAAA" - } - }, - { - "id": 1174, - "key": "minecraft:item_frame", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxRtaW5lY3JhZnQ6aXRlbV9mcmFtZQ==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGWl0ZW0ubWluZWNyYWZ0Lml0ZW1fZnJhbWUA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1175, - "key": "minecraft:glow_item_frame", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxltaW5lY3JhZnQ6Z2xvd19pdGVtX2ZyYW1l", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHml0ZW0ubWluZWNyYWZ0Lmdsb3dfaXRlbV9mcmFtZQA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1176, - "key": "minecraft:flower_pot", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxRtaW5lY3JhZnQ6Zmxvd2VyX3BvdA==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC5mbG93ZXJfcG90AA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1177, - "key": "minecraft:carrot", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:consumable": "FT/MzM0B5wQBAA==", - "minecraft:enchantments": "CgA=", - "minecraft:food": "FANAZmZnAA==", - "minecraft:item_model": "BxBtaW5lY3JhZnQ6Y2Fycm90", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFWl0ZW0ubWluZWNyYWZ0LmNhcnJvdAA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1178, - "key": "minecraft:potato", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:consumable": "FT/MzM0B5wQBAA==", - "minecraft:enchantments": "CgA=", - "minecraft:food": "FAE/GZmaAA==", - "minecraft:item_model": "BxBtaW5lY3JhZnQ6cG90YXRv", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFWl0ZW0ubWluZWNyYWZ0LnBvdGF0bwA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1179, - "key": "minecraft:baked_potato", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:consumable": "FT/MzM0B5wQBAA==", - "minecraft:enchantments": "CgA=", - "minecraft:food": "FAVAwAAAAA==", - "minecraft:item_model": "BxZtaW5lY3JhZnQ6YmFrZWRfcG90YXRv", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2l0ZW0ubWluZWNyYWZ0LmJha2VkX3BvdGF0bwA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1180, - "key": "minecraft:poisonous_potato", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:consumable": "FT/MzM0B5wQBAQABEgBkAAEBAD8ZmZo=", - "minecraft:enchantments": "CgA=", - "minecraft:food": "FAI/mZmaAA==", - "minecraft:item_model": "BxptaW5lY3JhZnQ6cG9pc29ub3VzX3BvdGF0bw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2l0ZW0ubWluZWNyYWZ0LnBvaXNvbm91c19wb3RhdG8A", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1181, - "key": "minecraft:map", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bw1taW5lY3JhZnQ6bWFw", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAEml0ZW0ubWluZWNyYWZ0Lm1hcAA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1182, - "key": "minecraft:golden_carrot", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:consumable": "FT/MzM0B5wQBAA==", - "minecraft:enchantments": "CgA=", - "minecraft:food": "FAZBZmZnAA==", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6Z29sZGVuX2NhcnJvdA==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGl0ZW0ubWluZWNyYWZ0LmdvbGRlbl9jYXJyb3QA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1183, - "key": "minecraft:skeleton_skull", - "components": { - "minecraft:attribute_modifiers": "DQEhJm1pbmVjcmFmdDp3YXlwb2ludF90cmFuc21pdF9yYW5nZV9oaWRlv/AAAAAAAAACBwE=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:equippable": "HARHAAAAAQABAACSCg==", - "minecraft:item_model": "BxhtaW5lY3JhZnQ6c2tlbGV0b25fc2t1bGw=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC5za2VsZXRvbl9za3VsbAA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQE=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1184, - "key": "minecraft:wither_skeleton_skull", - "components": { - "minecraft:attribute_modifiers": "DQEhJm1pbmVjcmFmdDp3YXlwb2ludF90cmFuc21pdF9yYW5nZV9oaWRlv/AAAAAAAAACBwE=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:equippable": "HARHAAAAAQABAACSCg==", - "minecraft:item_model": "Bx9taW5lY3JhZnQ6d2l0aGVyX3NrZWxldG9uX3NrdWxs", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWJsb2NrLm1pbmVjcmFmdC53aXRoZXJfc2tlbGV0b25fc2t1bGwA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQI=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1185, - "key": "minecraft:player_head", - "components": { - "minecraft:attribute_modifiers": "DQEhJm1pbmVjcmFmdDp3YXlwb2ludF90cmFuc21pdF9yYW5nZV9oaWRlv/AAAAAAAAACBwE=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:equippable": "HARHAAAAAQABAACSCg==", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6cGxheWVyX2hlYWQ=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5wbGF5ZXJfaGVhZAA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQE=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1186, - "key": "minecraft:zombie_head", - "components": { - "minecraft:attribute_modifiers": "DQEhJm1pbmVjcmFmdDp3YXlwb2ludF90cmFuc21pdF9yYW5nZV9oaWRlv/AAAAAAAAACBwE=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:equippable": "HARHAAAAAQABAACSCg==", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6em9tYmllX2hlYWQ=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC56b21iaWVfaGVhZAA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQE=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1187, - "key": "minecraft:creeper_head", - "components": { - "minecraft:attribute_modifiers": "DQEhJm1pbmVjcmFmdDp3YXlwb2ludF90cmFuc21pdF9yYW5nZV9oaWRlv/AAAAAAAAACBwE=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:equippable": "HARHAAAAAQABAACSCg==", - "minecraft:item_model": "BxZtaW5lY3JhZnQ6Y3JlZXBlcl9oZWFk", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC5jcmVlcGVyX2hlYWQA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQE=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1188, - "key": "minecraft:dragon_head", - "components": { - "minecraft:attribute_modifiers": "DQEhJm1pbmVjcmFmdDp3YXlwb2ludF90cmFuc21pdF9yYW5nZV9oaWRlv/AAAAAAAAACBwE=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:equippable": "HARHAAAAAQABAACSCg==", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6ZHJhZ29uX2hlYWQ=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5kcmFnb25faGVhZAA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQM=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1189, - "key": "minecraft:piglin_head", - "components": { - "minecraft:attribute_modifiers": "DQEhJm1pbmVjcmFmdDp3YXlwb2ludF90cmFuc21pdF9yYW5nZV9oaWRlv/AAAAAAAAACBwE=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:equippable": "HARHAAAAAQABAACSCg==", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6cGlnbGluX2hlYWQ=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5waWdsaW5faGVhZAA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQE=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1190, - "key": "minecraft:nether_star", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:damage_resistant": "GBZtaW5lY3JhZnQ6aXNfZXhwbG9zaW9u", - "minecraft:enchantment_glint_override": "EgE=", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6bmV0aGVyX3N0YXI=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGml0ZW0ubWluZWNyYWZ0Lm5ldGhlcl9zdGFyAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQI=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1191, - "key": "minecraft:pumpkin_pie", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:consumable": "FT/MzM0B5wQBAA==", - "minecraft:enchantments": "CgA=", - "minecraft:food": "FAhAmZmaAA==", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6cHVtcGtpbl9waWU=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGml0ZW0ubWluZWNyYWZ0LnB1bXBraW5fcGllAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1192, - "key": "minecraft:firework_rocket", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:fireworks": "PAEA", - "minecraft:item_model": "BxltaW5lY3JhZnQ6ZmlyZXdvcmtfcm9ja2V0", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHml0ZW0ubWluZWNyYWZ0LmZpcmV3b3JrX3JvY2tldAA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1193, - "key": "minecraft:firework_star", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6ZmlyZXdvcmtfc3Rhcg==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGl0ZW0ubWluZWNyYWZ0LmZpcmV3b3JrX3N0YXIA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1194, - "key": "minecraft:enchanted_book", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantment_glint_override": "EgE=", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxhtaW5lY3JhZnQ6ZW5jaGFudGVkX2Jvb2s=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWl0ZW0ubWluZWNyYWZ0LmVuY2hhbnRlZF9ib29rAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQE=", - "minecraft:repair_cost": "EAA=", - "minecraft:stored_enchantments": "IgA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1195, - "key": "minecraft:nether_brick", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxZtaW5lY3JhZnQ6bmV0aGVyX2JyaWNr", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2l0ZW0ubWluZWNyYWZ0Lm5ldGhlcl9icmljawA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1196, - "key": "minecraft:resin_brick", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6cmVzaW5fYnJpY2s=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGml0ZW0ubWluZWNyYWZ0LnJlc2luX2JyaWNrAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:provides_trim_material": "NQAPbWluZWNyYWZ0OnJlc2lu", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1197, - "key": "minecraft:prismarine_shard", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxptaW5lY3JhZnQ6cHJpc21hcmluZV9zaGFyZA==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2l0ZW0ubWluZWNyYWZ0LnByaXNtYXJpbmVfc2hhcmQA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1198, - "key": "minecraft:prismarine_crystals", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx1taW5lY3JhZnQ6cHJpc21hcmluZV9jcnlzdGFscw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIml0ZW0ubWluZWNyYWZ0LnByaXNtYXJpbmVfY3J5c3RhbHMA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1199, - "key": "minecraft:rabbit", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:consumable": "FT/MzM0B5wQBAA==", - "minecraft:enchantments": "CgA=", - "minecraft:food": "FAM/5mZnAA==", - "minecraft:item_model": "BxBtaW5lY3JhZnQ6cmFiYml0", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFWl0ZW0ubWluZWNyYWZ0LnJhYmJpdAA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1200, - "key": "minecraft:cooked_rabbit", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:consumable": "FT/MzM0B5wQBAA==", - "minecraft:enchantments": "CgA=", - "minecraft:food": "FAVAwAAAAA==", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6Y29va2VkX3JhYmJpdA==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGl0ZW0ubWluZWNyYWZ0LmNvb2tlZF9yYWJiaXQA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1201, - "key": "minecraft:rabbit_stew", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:consumable": "FT/MzM0B5wQBAA==", - "minecraft:enchantments": "CgA=", - "minecraft:food": "FApBQAAAAA==", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6cmFiYml0X3N0ZXc=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGml0ZW0ubWluZWNyYWZ0LnJhYmJpdF9zdGV3AA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA", - "minecraft:use_remainder": "FgHYBgAA" - } - }, - { - "id": 1202, - "key": "minecraft:rabbit_foot", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6cmFiYml0X2Zvb3Q=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGml0ZW0ubWluZWNyYWZ0LnJhYmJpdF9mb290AA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1203, - "key": "minecraft:rabbit_hide", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6cmFiYml0X2hpZGU=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGml0ZW0ubWluZWNyYWZ0LnJhYmJpdF9oaWRlAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1204, - "key": "minecraft:armor_stand", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6YXJtb3Jfc3RhbmQ=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGml0ZW0ubWluZWNyYWZ0LmFybW9yX3N0YW5kAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "ARA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1205, - "key": "minecraft:iron_horse_armor", - "components": { - "minecraft:attribute_modifiers": "DQIAFG1pbmVjcmFmdDphcm1vci5ib2R5QBQAAAAAAAAACQABFG1pbmVjcmFmdDphcm1vci5ib2R5AAAAAAAAAAAACQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:equippable": "HAb+BQEObWluZWNyYWZ0Omlyb24AAQAebWluZWNyYWZ0OmNhbl93ZWFyX2hvcnNlX2FybW9yAQEAAAH/BQ==", - "minecraft:item_model": "BxptaW5lY3JhZnQ6aXJvbl9ob3JzZV9hcm1vcg==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2l0ZW0ubWluZWNyYWZ0Lmlyb25faG9yc2VfYXJtb3IA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1206, - "key": "minecraft:golden_horse_armor", - "components": { - "minecraft:attribute_modifiers": "DQIAFG1pbmVjcmFmdDphcm1vci5ib2R5QBwAAAAAAAAACQABFG1pbmVjcmFmdDphcm1vci5ib2R5AAAAAAAAAAAACQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:equippable": "HAb+BQEObWluZWNyYWZ0OmdvbGQAAQAebWluZWNyYWZ0OmNhbl93ZWFyX2hvcnNlX2FybW9yAQEAAAH/BQ==", - "minecraft:item_model": "BxxtaW5lY3JhZnQ6Z29sZGVuX2hvcnNlX2FybW9y", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWl0ZW0ubWluZWNyYWZ0LmdvbGRlbl9ob3JzZV9hcm1vcgA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1207, - "key": "minecraft:diamond_horse_armor", - "components": { - "minecraft:attribute_modifiers": "DQIAFG1pbmVjcmFmdDphcm1vci5ib2R5QCYAAAAAAAAACQABFG1pbmVjcmFmdDphcm1vci5ib2R5QAAAAAAAAAAACQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:equippable": "HAb+BQERbWluZWNyYWZ0OmRpYW1vbmQAAQAebWluZWNyYWZ0OmNhbl93ZWFyX2hvcnNlX2FybW9yAQEAAAH/BQ==", - "minecraft:item_model": "Bx1taW5lY3JhZnQ6ZGlhbW9uZF9ob3JzZV9hcm1vcg==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIml0ZW0ubWluZWNyYWZ0LmRpYW1vbmRfaG9yc2VfYXJtb3IA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1208, - "key": "minecraft:leather_horse_armor", - "components": { - "minecraft:attribute_modifiers": "DQIAFG1pbmVjcmFmdDphcm1vci5ib2R5QAgAAAAAAAAACQABFG1pbmVjcmFmdDphcm1vci5ib2R5AAAAAAAAAAAACQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:equippable": "HAb+BQERbWluZWNyYWZ0OmxlYXRoZXIAAQAebWluZWNyYWZ0OmNhbl93ZWFyX2hvcnNlX2FybW9yAQEAAAH/BQ==", - "minecraft:item_model": "Bx1taW5lY3JhZnQ6bGVhdGhlcl9ob3JzZV9hcm1vcg==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIml0ZW0ubWluZWNyYWZ0LmxlYXRoZXJfaG9yc2VfYXJtb3IA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1209, - "key": "minecraft:lead", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bw5taW5lY3JhZnQ6bGVhZA==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAE2l0ZW0ubWluZWNyYWZ0LmxlYWQA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1210, - "key": "minecraft:name_tag", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxJtaW5lY3JhZnQ6bmFtZV90YWc=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAF2l0ZW0ubWluZWNyYWZ0Lm5hbWVfdGFnAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1211, - "key": "minecraft:command_block_minecart", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByBtaW5lY3JhZnQ6Y29tbWFuZF9ibG9ja19taW5lY2FydA==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWl0ZW0ubWluZWNyYWZ0LmNvbW1hbmRfYmxvY2tfbWluZWNhcnQA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQM=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1212, - "key": "minecraft:mutton", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:consumable": "FT/MzM0B5wQBAA==", - "minecraft:enchantments": "CgA=", - "minecraft:food": "FAI/mZmaAA==", - "minecraft:item_model": "BxBtaW5lY3JhZnQ6bXV0dG9u", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFWl0ZW0ubWluZWNyYWZ0Lm11dHRvbgA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1213, - "key": "minecraft:cooked_mutton", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:consumable": "FT/MzM0B5wQBAA==", - "minecraft:enchantments": "CgA=", - "minecraft:food": "FAZBGZmaAA==", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6Y29va2VkX211dHRvbg==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGl0ZW0ubWluZWNyYWZ0LmNvb2tlZF9tdXR0b24A", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1214, - "key": "minecraft:white_banner", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:banner_patterns": "PwA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxZtaW5lY3JhZnQ6d2hpdGVfYmFubmVy", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC53aGl0ZV9iYW5uZXIA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "ARA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1215, - "key": "minecraft:orange_banner", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:banner_patterns": "PwA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6b3JhbmdlX2Jhbm5lcg==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5vcmFuZ2VfYmFubmVyAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "ARA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1216, - "key": "minecraft:magenta_banner", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:banner_patterns": "PwA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxhtaW5lY3JhZnQ6bWFnZW50YV9iYW5uZXI=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC5tYWdlbnRhX2Jhbm5lcgA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "ARA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1217, - "key": "minecraft:light_blue_banner", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:banner_patterns": "PwA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxttaW5lY3JhZnQ6bGlnaHRfYmx1ZV9iYW5uZXI=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWJsb2NrLm1pbmVjcmFmdC5saWdodF9ibHVlX2Jhbm5lcgA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "ARA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1218, - "key": "minecraft:yellow_banner", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:banner_patterns": "PwA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6eWVsbG93X2Jhbm5lcg==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC55ZWxsb3dfYmFubmVyAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "ARA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1219, - "key": "minecraft:lime_banner", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:banner_patterns": "PwA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6bGltZV9iYW5uZXI=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5saW1lX2Jhbm5lcgA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "ARA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1220, - "key": "minecraft:pink_banner", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:banner_patterns": "PwA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6cGlua19iYW5uZXI=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5waW5rX2Jhbm5lcgA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "ARA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1221, - "key": "minecraft:gray_banner", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:banner_patterns": "PwA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6Z3JheV9iYW5uZXI=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5ncmF5X2Jhbm5lcgA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "ARA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1222, - "key": "minecraft:light_gray_banner", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:banner_patterns": "PwA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxttaW5lY3JhZnQ6bGlnaHRfZ3JheV9iYW5uZXI=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWJsb2NrLm1pbmVjcmFmdC5saWdodF9ncmF5X2Jhbm5lcgA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "ARA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1223, - "key": "minecraft:cyan_banner", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:banner_patterns": "PwA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6Y3lhbl9iYW5uZXI=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5jeWFuX2Jhbm5lcgA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "ARA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1224, - "key": "minecraft:purple_banner", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:banner_patterns": "PwA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6cHVycGxlX2Jhbm5lcg==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5wdXJwbGVfYmFubmVyAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "ARA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1225, - "key": "minecraft:blue_banner", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:banner_patterns": "PwA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6Ymx1ZV9iYW5uZXI=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5ibHVlX2Jhbm5lcgA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "ARA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1226, - "key": "minecraft:brown_banner", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:banner_patterns": "PwA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxZtaW5lY3JhZnQ6YnJvd25fYmFubmVy", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC5icm93bl9iYW5uZXIA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "ARA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1227, - "key": "minecraft:green_banner", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:banner_patterns": "PwA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxZtaW5lY3JhZnQ6Z3JlZW5fYmFubmVy", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC5ncmVlbl9iYW5uZXIA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "ARA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1228, - "key": "minecraft:red_banner", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:banner_patterns": "PwA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxRtaW5lY3JhZnQ6cmVkX2Jhbm5lcg==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC5yZWRfYmFubmVyAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "ARA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1229, - "key": "minecraft:black_banner", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:banner_patterns": "PwA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxZtaW5lY3JhZnQ6YmxhY2tfYmFubmVy", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC5ibGFja19iYW5uZXIA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "ARA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1230, - "key": "minecraft:end_crystal", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantment_glint_override": "EgE=", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6ZW5kX2NyeXN0YWw=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGml0ZW0ubWluZWNyYWZ0LmVuZF9jcnlzdGFsAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1231, - "key": "minecraft:chorus_fruit", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:consumable": "FT/MzM0B5wQBAQNBgAAA", - "minecraft:enchantments": "CgA=", - "minecraft:food": "FARAGZmaAQ==", - "minecraft:item_model": "BxZtaW5lY3JhZnQ6Y2hvcnVzX2ZydWl0", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2l0ZW0ubWluZWNyYWZ0LmNob3J1c19mcnVpdAA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA", - "minecraft:use_cooldown": "Fz+AAAAA" - } - }, - { - "id": 1232, - "key": "minecraft:popped_chorus_fruit", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx1taW5lY3JhZnQ6cG9wcGVkX2Nob3J1c19mcnVpdA==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIml0ZW0ubWluZWNyYWZ0LnBvcHBlZF9jaG9ydXNfZnJ1aXQA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1233, - "key": "minecraft:torchflower_seeds", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxttaW5lY3JhZnQ6dG9yY2hmbG93ZXJfc2VlZHM=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGl0ZW0ubWluZWNyYWZ0LnRvcmNoZmxvd2VyX3NlZWRzAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1234, - "key": "minecraft:pitcher_pod", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6cGl0Y2hlcl9wb2Q=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGml0ZW0ubWluZWNyYWZ0LnBpdGNoZXJfcG9kAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1235, - "key": "minecraft:beetroot", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:consumable": "FT/MzM0B5wQBAA==", - "minecraft:enchantments": "CgA=", - "minecraft:food": "FAE/mZmaAA==", - "minecraft:item_model": "BxJtaW5lY3JhZnQ6YmVldHJvb3Q=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAF2l0ZW0ubWluZWNyYWZ0LmJlZXRyb290AA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1236, - "key": "minecraft:beetroot_seeds", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxhtaW5lY3JhZnQ6YmVldHJvb3Rfc2VlZHM=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWl0ZW0ubWluZWNyYWZ0LmJlZXRyb290X3NlZWRzAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1237, - "key": "minecraft:beetroot_soup", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:consumable": "FT/MzM0B5wQBAA==", - "minecraft:enchantments": "CgA=", - "minecraft:food": "FAZA5mZnAA==", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6YmVldHJvb3Rfc291cA==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGl0ZW0ubWluZWNyYWZ0LmJlZXRyb290X3NvdXAA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA", - "minecraft:use_remainder": "FgHYBgAA" - } - }, - { - "id": 1238, - "key": "minecraft:dragon_breath", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6ZHJhZ29uX2JyZWF0aA==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGl0ZW0ubWluZWNyYWZ0LmRyYWdvbl9icmVhdGgA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQE=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1239, - "key": "minecraft:splash_potion", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6c3BsYXNoX3BvdGlvbg==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGl0ZW0ubWluZWNyYWZ0LnNwbGFzaF9wb3Rpb24A", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:potion_contents": "KgAAAAA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1240, - "key": "minecraft:spectral_arrow", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxhtaW5lY3JhZnQ6c3BlY3RyYWxfYXJyb3c=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWl0ZW0ubWluZWNyYWZ0LnNwZWN0cmFsX2Fycm93AA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1241, - "key": "minecraft:tipped_arrow", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxZtaW5lY3JhZnQ6dGlwcGVkX2Fycm93", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2l0ZW0ubWluZWNyYWZ0LnRpcHBlZF9hcnJvdwA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:potion_contents": "KgAAAAA=", - "minecraft:potion_duration_scale": "Kz4AAAA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1242, - "key": "minecraft:lingering_potion", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxptaW5lY3JhZnQ6bGluZ2VyaW5nX3BvdGlvbg==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2l0ZW0ubWluZWNyYWZ0LmxpbmdlcmluZ19wb3Rpb24A", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:potion_contents": "KgAAAAA=", - "minecraft:potion_duration_scale": "Kz6AAAA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1243, - "key": "minecraft:shield", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:banner_patterns": "PwA=", - "minecraft:blocks_attacks": "IT6AAAA/gAAAAUK0AAAAAAAAAD+AAABAQAAAP4AAAD+AAAABGW1pbmVjcmFmdDpieXBhc3Nlc19zaGllbGQBkwoBlAo=", - "minecraft:break_sound": "R5QK", - "minecraft:damage": "AwA=", - "minecraft:enchantments": "CgA=", - "minecraft:equippable": "HAVHAAAAAQABAACSCg==", - "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": "EAA=", - "minecraft:repairable": "HQAfbWluZWNyYWZ0Ondvb2Rlbl90b29sX21hdGVyaWFscw==", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1244, - "key": "minecraft:totem_of_undying", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:death_protection": "IAICAAMJAYQHAAEBABUBZAABAQALAKAGAAEBAD+AAAA=", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxptaW5lY3JhZnQ6dG90ZW1fb2ZfdW5keWluZw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2l0ZW0ubWluZWNyYWZ0LnRvdGVtX29mX3VuZHlpbmcA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQE=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1245, - "key": "minecraft:shulker_shell", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6c2h1bGtlcl9zaGVsbA==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGl0ZW0ubWluZWNyYWZ0LnNodWxrZXJfc2hlbGwA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1246, - "key": "minecraft:iron_nugget", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6aXJvbl9udWdnZXQ=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGml0ZW0ubWluZWNyYWZ0Lmlyb25fbnVnZ2V0AA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1247, - "key": "minecraft:knowledge_book", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxhtaW5lY3JhZnQ6a25vd2xlZGdlX2Jvb2s=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWl0ZW0ubWluZWNyYWZ0Lmtub3dsZWRnZV9ib29rAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQM=", - "minecraft:recipes": "OQkAAAAAAA==", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1248, - "key": "minecraft:debug_stick", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:debug_stick_state": "MAoA", - "minecraft:enchantment_glint_override": "EgE=", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6ZGVidWdfc3RpY2s=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGml0ZW0ubWluZWNyYWZ0LmRlYnVnX3N0aWNrAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQM=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1249, - "key": "minecraft:music_disc_13", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6bXVzaWNfZGlzY18xMw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGl0ZW0ubWluZWNyYWZ0Lm11c2ljX2Rpc2NfMTMA", - "minecraft:jukebox_playable": "NwAMbWluZWNyYWZ0OjEz", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQE=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1250, - "key": "minecraft:music_disc_cat", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxhtaW5lY3JhZnQ6bXVzaWNfZGlzY19jYXQ=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWl0ZW0ubWluZWNyYWZ0Lm11c2ljX2Rpc2NfY2F0AA==", - "minecraft:jukebox_playable": "NwANbWluZWNyYWZ0OmNhdA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQE=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1251, - "key": "minecraft:music_disc_blocks", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxttaW5lY3JhZnQ6bXVzaWNfZGlzY19ibG9ja3M=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGl0ZW0ubWluZWNyYWZ0Lm11c2ljX2Rpc2NfYmxvY2tzAA==", - "minecraft:jukebox_playable": "NwAQbWluZWNyYWZ0OmJsb2Nrcw==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQE=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1252, - "key": "minecraft:music_disc_chirp", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxptaW5lY3JhZnQ6bXVzaWNfZGlzY19jaGlycA==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2l0ZW0ubWluZWNyYWZ0Lm11c2ljX2Rpc2NfY2hpcnAA", - "minecraft:jukebox_playable": "NwAPbWluZWNyYWZ0OmNoaXJw", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQE=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1253, - "key": "minecraft:music_disc_creator", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxxtaW5lY3JhZnQ6bXVzaWNfZGlzY19jcmVhdG9y", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWl0ZW0ubWluZWNyYWZ0Lm11c2ljX2Rpc2NfY3JlYXRvcgA=", - "minecraft:jukebox_playable": "NwARbWluZWNyYWZ0OmNyZWF0b3I=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQI=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1254, - "key": "minecraft:music_disc_creator_music_box", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByZtaW5lY3JhZnQ6bXVzaWNfZGlzY19jcmVhdG9yX211c2ljX2JveA==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAK2l0ZW0ubWluZWNyYWZ0Lm11c2ljX2Rpc2NfY3JlYXRvcl9tdXNpY19ib3gA", - "minecraft:jukebox_playable": "NwAbbWluZWNyYWZ0OmNyZWF0b3JfbXVzaWNfYm94", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQE=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1255, - "key": "minecraft:music_disc_far", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxhtaW5lY3JhZnQ6bXVzaWNfZGlzY19mYXI=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWl0ZW0ubWluZWNyYWZ0Lm11c2ljX2Rpc2NfZmFyAA==", - "minecraft:jukebox_playable": "NwANbWluZWNyYWZ0OmZhcg==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQE=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1256, - "key": "minecraft:music_disc_lava_chicken", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByFtaW5lY3JhZnQ6bXVzaWNfZGlzY19sYXZhX2NoaWNrZW4=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJml0ZW0ubWluZWNyYWZ0Lm11c2ljX2Rpc2NfbGF2YV9jaGlja2VuAA==", - "minecraft:jukebox_playable": "NwAWbWluZWNyYWZ0OmxhdmFfY2hpY2tlbg==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQI=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1257, - "key": "minecraft:music_disc_mall", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxltaW5lY3JhZnQ6bXVzaWNfZGlzY19tYWxs", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHml0ZW0ubWluZWNyYWZ0Lm11c2ljX2Rpc2NfbWFsbAA=", - "minecraft:jukebox_playable": "NwAObWluZWNyYWZ0Om1hbGw=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQE=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1258, - "key": "minecraft:music_disc_mellohi", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxxtaW5lY3JhZnQ6bXVzaWNfZGlzY19tZWxsb2hp", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWl0ZW0ubWluZWNyYWZ0Lm11c2ljX2Rpc2NfbWVsbG9oaQA=", - "minecraft:jukebox_playable": "NwARbWluZWNyYWZ0Om1lbGxvaGk=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQE=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1259, - "key": "minecraft:music_disc_stal", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxltaW5lY3JhZnQ6bXVzaWNfZGlzY19zdGFs", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHml0ZW0ubWluZWNyYWZ0Lm11c2ljX2Rpc2Nfc3RhbAA=", - "minecraft:jukebox_playable": "NwAObWluZWNyYWZ0OnN0YWw=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQE=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1260, - "key": "minecraft:music_disc_strad", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxptaW5lY3JhZnQ6bXVzaWNfZGlzY19zdHJhZA==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2l0ZW0ubWluZWNyYWZ0Lm11c2ljX2Rpc2Nfc3RyYWQA", - "minecraft:jukebox_playable": "NwAPbWluZWNyYWZ0OnN0cmFk", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQE=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1261, - "key": "minecraft:music_disc_ward", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxltaW5lY3JhZnQ6bXVzaWNfZGlzY193YXJk", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHml0ZW0ubWluZWNyYWZ0Lm11c2ljX2Rpc2Nfd2FyZAA=", - "minecraft:jukebox_playable": "NwAObWluZWNyYWZ0OndhcmQ=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQE=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1262, - "key": "minecraft:music_disc_11", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6bXVzaWNfZGlzY18xMQ==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGl0ZW0ubWluZWNyYWZ0Lm11c2ljX2Rpc2NfMTEA", - "minecraft:jukebox_playable": "NwAMbWluZWNyYWZ0OjEx", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQE=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1263, - "key": "minecraft:music_disc_wait", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxltaW5lY3JhZnQ6bXVzaWNfZGlzY193YWl0", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHml0ZW0ubWluZWNyYWZ0Lm11c2ljX2Rpc2Nfd2FpdAA=", - "minecraft:jukebox_playable": "NwAObWluZWNyYWZ0OndhaXQ=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQE=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1264, - "key": "minecraft:music_disc_otherside", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx5taW5lY3JhZnQ6bXVzaWNfZGlzY19vdGhlcnNpZGU=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2l0ZW0ubWluZWNyYWZ0Lm11c2ljX2Rpc2Nfb3RoZXJzaWRlAA==", - "minecraft:jukebox_playable": "NwATbWluZWNyYWZ0Om90aGVyc2lkZQ==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQI=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1265, - "key": "minecraft:music_disc_relic", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxptaW5lY3JhZnQ6bXVzaWNfZGlzY19yZWxpYw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2l0ZW0ubWluZWNyYWZ0Lm11c2ljX2Rpc2NfcmVsaWMA", - "minecraft:jukebox_playable": "NwAPbWluZWNyYWZ0OnJlbGlj", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQE=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1266, - "key": "minecraft:music_disc_5", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxZtaW5lY3JhZnQ6bXVzaWNfZGlzY181", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2l0ZW0ubWluZWNyYWZ0Lm11c2ljX2Rpc2NfNQA=", - "minecraft:jukebox_playable": "NwALbWluZWNyYWZ0OjU=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQE=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1267, - "key": "minecraft:music_disc_pigstep", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxxtaW5lY3JhZnQ6bXVzaWNfZGlzY19waWdzdGVw", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWl0ZW0ubWluZWNyYWZ0Lm11c2ljX2Rpc2NfcGlnc3RlcAA=", - "minecraft:jukebox_playable": "NwARbWluZWNyYWZ0OnBpZ3N0ZXA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQI=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1268, - "key": "minecraft:music_disc_precipice", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx5taW5lY3JhZnQ6bXVzaWNfZGlzY19wcmVjaXBpY2U=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2l0ZW0ubWluZWNyYWZ0Lm11c2ljX2Rpc2NfcHJlY2lwaWNlAA==", - "minecraft:jukebox_playable": "NwATbWluZWNyYWZ0OnByZWNpcGljZQ==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQE=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1269, - "key": "minecraft:music_disc_tears", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxptaW5lY3JhZnQ6bXVzaWNfZGlzY190ZWFycw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2l0ZW0ubWluZWNyYWZ0Lm11c2ljX2Rpc2NfdGVhcnMA", - "minecraft:jukebox_playable": "NwAPbWluZWNyYWZ0OnRlYXJz", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQE=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1270, - "key": "minecraft:disc_fragment_5", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxltaW5lY3JhZnQ6ZGlzY19mcmFnbWVudF81", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHml0ZW0ubWluZWNyYWZ0LmRpc2NfZnJhZ21lbnRfNQA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQE=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1271, - "key": "minecraft:trident", - "components": { - "minecraft:attribute_modifiers": "DQICHG1pbmVjcmFmdDpiYXNlX2F0dGFja19kYW1hZ2VAIAAAAAAAAAABAAQbbWluZWNyYWZ0OmJhc2VfYXR0YWNrX3NwZWVkwAczM0AAAAAAAQA=", - "minecraft:break_sound": "R7EG", - "minecraft:damage": "AwA=", - "minecraft:enchantable": "GwE=", - "minecraft:enchantments": "CgA=", - "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": "EAA=", - "minecraft:tool": "GQA/gAAAAgA=", - "minecraft:tooltip_display": "DwAA", - "minecraft:weapon": "GgEAAAAA" - } - }, - { - "id": 1272, - "key": "minecraft:nautilus_shell", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxhtaW5lY3JhZnQ6bmF1dGlsdXNfc2hlbGw=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWl0ZW0ubWluZWNyYWZ0Lm5hdXRpbHVzX3NoZWxsAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQE=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1273, - "key": "minecraft:heart_of_the_sea", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxptaW5lY3JhZnQ6aGVhcnRfb2ZfdGhlX3NlYQ==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2l0ZW0ubWluZWNyYWZ0LmhlYXJ0X29mX3RoZV9zZWEA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQE=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1274, - "key": "minecraft:crossbow", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:charged_projectiles": "KAA=", - "minecraft:damage": "AwA=", - "minecraft:enchantable": "GwE=", - "minecraft:enchantments": "CgA=", - "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": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1275, - "key": "minecraft:suspicious_stew", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:consumable": "FT/MzM0B5wQBAA==", - "minecraft:enchantments": "CgA=", - "minecraft:food": "FAZA5mZnAQ==", - "minecraft:item_model": "BxltaW5lY3JhZnQ6c3VzcGljaW91c19zdGV3", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHml0ZW0ubWluZWNyYWZ0LnN1c3BpY2lvdXNfc3RldwA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:suspicious_stew_effects": "LAA=", - "minecraft:tooltip_display": "DwAA", - "minecraft:use_remainder": "FgHYBgAA" - } - }, - { - "id": 1276, - "key": "minecraft:loom", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bw5taW5lY3JhZnQ6bG9vbQ==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFGJsb2NrLm1pbmVjcmFmdC5sb29tAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1277, - "key": "minecraft:flower_banner_pattern", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx9taW5lY3JhZnQ6Zmxvd2VyX2Jhbm5lcl9wYXR0ZXJu", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJGl0ZW0ubWluZWNyYWZ0LmZsb3dlcl9iYW5uZXJfcGF0dGVybgA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:provides_banner_patterns": "OB1taW5lY3JhZnQ6cGF0dGVybl9pdGVtL2Zsb3dlcg==", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1278, - "key": "minecraft:creeper_banner_pattern", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByBtaW5lY3JhZnQ6Y3JlZXBlcl9iYW5uZXJfcGF0dGVybg==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWl0ZW0ubWluZWNyYWZ0LmNyZWVwZXJfYmFubmVyX3BhdHRlcm4A", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:provides_banner_patterns": "OB5taW5lY3JhZnQ6cGF0dGVybl9pdGVtL2NyZWVwZXI=", - "minecraft:rarity": "CQE=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1279, - "key": "minecraft:skull_banner_pattern", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx5taW5lY3JhZnQ6c2t1bGxfYmFubmVyX3BhdHRlcm4=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2l0ZW0ubWluZWNyYWZ0LnNrdWxsX2Jhbm5lcl9wYXR0ZXJuAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:provides_banner_patterns": "OBxtaW5lY3JhZnQ6cGF0dGVybl9pdGVtL3NrdWxs", - "minecraft:rarity": "CQI=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1280, - "key": "minecraft:mojang_banner_pattern", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx9taW5lY3JhZnQ6bW9qYW5nX2Jhbm5lcl9wYXR0ZXJu", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJGl0ZW0ubWluZWNyYWZ0Lm1vamFuZ19iYW5uZXJfcGF0dGVybgA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:provides_banner_patterns": "OB1taW5lY3JhZnQ6cGF0dGVybl9pdGVtL21vamFuZw==", - "minecraft:rarity": "CQI=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1281, - "key": "minecraft:globe_banner_pattern", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx5taW5lY3JhZnQ6Z2xvYmVfYmFubmVyX3BhdHRlcm4=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2l0ZW0ubWluZWNyYWZ0Lmdsb2JlX2Jhbm5lcl9wYXR0ZXJuAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:provides_banner_patterns": "OBxtaW5lY3JhZnQ6cGF0dGVybl9pdGVtL2dsb2Jl", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1282, - "key": "minecraft:piglin_banner_pattern", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx9taW5lY3JhZnQ6cGlnbGluX2Jhbm5lcl9wYXR0ZXJu", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJGl0ZW0ubWluZWNyYWZ0LnBpZ2xpbl9iYW5uZXJfcGF0dGVybgA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:provides_banner_patterns": "OB1taW5lY3JhZnQ6cGF0dGVybl9pdGVtL3BpZ2xpbg==", - "minecraft:rarity": "CQE=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1283, - "key": "minecraft:flow_banner_pattern", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx1taW5lY3JhZnQ6Zmxvd19iYW5uZXJfcGF0dGVybg==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIml0ZW0ubWluZWNyYWZ0LmZsb3dfYmFubmVyX3BhdHRlcm4A", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:provides_banner_patterns": "OBttaW5lY3JhZnQ6cGF0dGVybl9pdGVtL2Zsb3c=", - "minecraft:rarity": "CQI=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1284, - "key": "minecraft:guster_banner_pattern", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx9taW5lY3JhZnQ6Z3VzdGVyX2Jhbm5lcl9wYXR0ZXJu", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJGl0ZW0ubWluZWNyYWZ0Lmd1c3Rlcl9iYW5uZXJfcGF0dGVybgA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:provides_banner_patterns": "OB1taW5lY3JhZnQ6cGF0dGVybl9pdGVtL2d1c3Rlcg==", - "minecraft:rarity": "CQI=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1285, - "key": "minecraft:field_masoned_banner_pattern", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByZtaW5lY3JhZnQ6ZmllbGRfbWFzb25lZF9iYW5uZXJfcGF0dGVybg==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAK2l0ZW0ubWluZWNyYWZ0LmZpZWxkX21hc29uZWRfYmFubmVyX3BhdHRlcm4A", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:provides_banner_patterns": "OCRtaW5lY3JhZnQ6cGF0dGVybl9pdGVtL2ZpZWxkX21hc29uZWQ=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1286, - "key": "minecraft:bordure_indented_banner_pattern", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByltaW5lY3JhZnQ6Ym9yZHVyZV9pbmRlbnRlZF9iYW5uZXJfcGF0dGVybg==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUALml0ZW0ubWluZWNyYWZ0LmJvcmR1cmVfaW5kZW50ZWRfYmFubmVyX3BhdHRlcm4A", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:provides_banner_patterns": "OCdtaW5lY3JhZnQ6cGF0dGVybl9pdGVtL2JvcmR1cmVfaW5kZW50ZWQ=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1287, - "key": "minecraft:goat_horn", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:instrument": "NAAabWluZWNyYWZ0OnBvbmRlcl9nb2F0X2hvcm4=", - "minecraft:item_model": "BxNtaW5lY3JhZnQ6Z29hdF9ob3Ju", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGGl0ZW0ubWluZWNyYWZ0LmdvYXRfaG9ybgA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AQE=", - "minecraft:rarity": "CQE=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1288, - "key": "minecraft:composter", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxNtaW5lY3JhZnQ6Y29tcG9zdGVy", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGWJsb2NrLm1pbmVjcmFmdC5jb21wb3N0ZXIA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1289, - "key": "minecraft:barrel", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:container": "QgA=", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxBtaW5lY3JhZnQ6YmFycmVs", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFmJsb2NrLm1pbmVjcmFmdC5iYXJyZWwA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1290, - "key": "minecraft:smoker", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:container": "QgA=", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxBtaW5lY3JhZnQ6c21va2Vy", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFmJsb2NrLm1pbmVjcmFmdC5zbW9rZXIA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1291, - "key": "minecraft:blast_furnace", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:container": "QgA=", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6Ymxhc3RfZnVybmFjZQ==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5ibGFzdF9mdXJuYWNlAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1292, - "key": "minecraft:cartography_table", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxttaW5lY3JhZnQ6Y2FydG9ncmFwaHlfdGFibGU=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWJsb2NrLm1pbmVjcmFmdC5jYXJ0b2dyYXBoeV90YWJsZQA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1293, - "key": "minecraft:fletching_table", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxltaW5lY3JhZnQ6ZmxldGNoaW5nX3RhYmxl", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC5mbGV0Y2hpbmdfdGFibGUA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1294, - "key": "minecraft:grindstone", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxRtaW5lY3JhZnQ6Z3JpbmRzdG9uZQ==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC5ncmluZHN0b25lAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1295, - "key": "minecraft:smithing_table", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxhtaW5lY3JhZnQ6c21pdGhpbmdfdGFibGU=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC5zbWl0aGluZ190YWJsZQA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1296, - "key": "minecraft:stonecutter", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6c3RvbmVjdXR0ZXI=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5zdG9uZWN1dHRlcgA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1297, - "key": "minecraft:bell", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bw5taW5lY3JhZnQ6YmVsbA==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFGJsb2NrLm1pbmVjcmFmdC5iZWxsAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1298, - "key": "minecraft:lantern", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxFtaW5lY3JhZnQ6bGFudGVybg==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAF2Jsb2NrLm1pbmVjcmFmdC5sYW50ZXJuAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1299, - "key": "minecraft:soul_lantern", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxZtaW5lY3JhZnQ6c291bF9sYW50ZXJu", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC5zb3VsX2xhbnRlcm4A", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1300, - "key": "minecraft:sweet_berries", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:consumable": "FT/MzM0B5wQBAA==", - "minecraft:enchantments": "CgA=", - "minecraft:food": "FAI+zMzNAA==", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6c3dlZXRfYmVycmllcw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGl0ZW0ubWluZWNyYWZ0LnN3ZWV0X2JlcnJpZXMA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1301, - "key": "minecraft:glow_berries", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:consumable": "FT/MzM0B5wQBAA==", - "minecraft:enchantments": "CgA=", - "minecraft:food": "FAI+zMzNAA==", - "minecraft:item_model": "BxZtaW5lY3JhZnQ6Z2xvd19iZXJyaWVz", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2l0ZW0ubWluZWNyYWZ0Lmdsb3dfYmVycmllcwA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1302, - "key": "minecraft:campfire", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:container": "QgA=", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxJtaW5lY3JhZnQ6Y2FtcGZpcmU=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGGJsb2NrLm1pbmVjcmFmdC5jYW1wZmlyZQA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1303, - "key": "minecraft:soul_campfire", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:container": "QgA=", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6c291bF9jYW1wZmlyZQ==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5zb3VsX2NhbXBmaXJlAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1304, - "key": "minecraft:shroomlight", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6c2hyb29tbGlnaHQ=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5zaHJvb21saWdodAA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1305, - "key": "minecraft:honeycomb", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxNtaW5lY3JhZnQ6aG9uZXljb21i", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGGl0ZW0ubWluZWNyYWZ0LmhvbmV5Y29tYgA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1306, - "key": "minecraft:bee_nest", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:bees": "RAA=", - "minecraft:block_state": "QwELaG9uZXlfbGV2ZWwBMA==", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxJtaW5lY3JhZnQ6YmVlX25lc3Q=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGGJsb2NrLm1pbmVjcmFmdC5iZWVfbmVzdAA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1307, - "key": "minecraft:beehive", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:bees": "RAA=", - "minecraft:block_state": "QwELaG9uZXlfbGV2ZWwBMA==", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxFtaW5lY3JhZnQ6YmVlaGl2ZQ==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAF2Jsb2NrLm1pbmVjcmFmdC5iZWVoaXZlAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1308, - "key": "minecraft:honey_bottle", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:consumable": "FUAAAAAC8wUAAQECEg==", - "minecraft:enchantments": "CgA=", - "minecraft:food": "FAY/mZmaAQ==", - "minecraft:item_model": "BxZtaW5lY3JhZnQ6aG9uZXlfYm90dGxl", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2l0ZW0ubWluZWNyYWZ0LmhvbmV5X2JvdHRsZQA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "ARA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA", - "minecraft:use_remainder": "FgGzCAAA" - } - }, - { - "id": 1309, - "key": "minecraft:honeycomb_block", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxltaW5lY3JhZnQ6aG9uZXljb21iX2Jsb2Nr", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC5ob25leWNvbWJfYmxvY2sA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1310, - "key": "minecraft:lodestone", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxNtaW5lY3JhZnQ6bG9kZXN0b25l", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGWJsb2NrLm1pbmVjcmFmdC5sb2Rlc3RvbmUA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1311, - "key": "minecraft:crying_obsidian", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxltaW5lY3JhZnQ6Y3J5aW5nX29ic2lkaWFu", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC5jcnlpbmdfb2JzaWRpYW4A", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1312, - "key": "minecraft:blackstone", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxRtaW5lY3JhZnQ6YmxhY2tzdG9uZQ==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC5ibGFja3N0b25lAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1313, - "key": "minecraft:blackstone_slab", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxltaW5lY3JhZnQ6YmxhY2tzdG9uZV9zbGFi", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC5ibGFja3N0b25lX3NsYWIA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1314, - "key": "minecraft:blackstone_stairs", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxttaW5lY3JhZnQ6YmxhY2tzdG9uZV9zdGFpcnM=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWJsb2NrLm1pbmVjcmFmdC5ibGFja3N0b25lX3N0YWlycwA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1315, - "key": "minecraft:gilded_blackstone", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxttaW5lY3JhZnQ6Z2lsZGVkX2JsYWNrc3RvbmU=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWJsb2NrLm1pbmVjcmFmdC5naWxkZWRfYmxhY2tzdG9uZQA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1316, - "key": "minecraft:polished_blackstone", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx1taW5lY3JhZnQ6cG9saXNoZWRfYmxhY2tzdG9uZQ==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2Jsb2NrLm1pbmVjcmFmdC5wb2xpc2hlZF9ibGFja3N0b25lAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1317, - "key": "minecraft:polished_blackstone_slab", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByJtaW5lY3JhZnQ6cG9saXNoZWRfYmxhY2tzdG9uZV9zbGFi", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAKGJsb2NrLm1pbmVjcmFmdC5wb2xpc2hlZF9ibGFja3N0b25lX3NsYWIA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1318, - "key": "minecraft:polished_blackstone_stairs", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByRtaW5lY3JhZnQ6cG9saXNoZWRfYmxhY2tzdG9uZV9zdGFpcnM=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAKmJsb2NrLm1pbmVjcmFmdC5wb2xpc2hlZF9ibGFja3N0b25lX3N0YWlycwA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1319, - "key": "minecraft:chiseled_polished_blackstone", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByZtaW5lY3JhZnQ6Y2hpc2VsZWRfcG9saXNoZWRfYmxhY2tzdG9uZQ==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUALGJsb2NrLm1pbmVjcmFmdC5jaGlzZWxlZF9wb2xpc2hlZF9ibGFja3N0b25lAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1320, - "key": "minecraft:polished_blackstone_bricks", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByRtaW5lY3JhZnQ6cG9saXNoZWRfYmxhY2tzdG9uZV9icmlja3M=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAKmJsb2NrLm1pbmVjcmFmdC5wb2xpc2hlZF9ibGFja3N0b25lX2JyaWNrcwA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1321, - "key": "minecraft:polished_blackstone_brick_slab", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByhtaW5lY3JhZnQ6cG9saXNoZWRfYmxhY2tzdG9uZV9icmlja19zbGFi", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUALmJsb2NrLm1pbmVjcmFmdC5wb2xpc2hlZF9ibGFja3N0b25lX2JyaWNrX3NsYWIA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1322, - "key": "minecraft:polished_blackstone_brick_stairs", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByptaW5lY3JhZnQ6cG9saXNoZWRfYmxhY2tzdG9uZV9icmlja19zdGFpcnM=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAMGJsb2NrLm1pbmVjcmFmdC5wb2xpc2hlZF9ibGFja3N0b25lX2JyaWNrX3N0YWlycwA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1323, - "key": "minecraft:cracked_polished_blackstone_bricks", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByxtaW5lY3JhZnQ6Y3JhY2tlZF9wb2xpc2hlZF9ibGFja3N0b25lX2JyaWNrcw==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAMmJsb2NrLm1pbmVjcmFmdC5jcmFja2VkX3BvbGlzaGVkX2JsYWNrc3RvbmVfYnJpY2tzAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1324, - "key": "minecraft:respawn_anchor", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxhtaW5lY3JhZnQ6cmVzcGF3bl9hbmNob3I=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC5yZXNwYXduX2FuY2hvcgA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1325, - "key": "minecraft:candle", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxBtaW5lY3JhZnQ6Y2FuZGxl", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFmJsb2NrLm1pbmVjcmFmdC5jYW5kbGUA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1326, - "key": "minecraft:white_candle", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxZtaW5lY3JhZnQ6d2hpdGVfY2FuZGxl", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC53aGl0ZV9jYW5kbGUA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1327, - "key": "minecraft:orange_candle", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6b3JhbmdlX2NhbmRsZQ==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5vcmFuZ2VfY2FuZGxlAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1328, - "key": "minecraft:magenta_candle", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxhtaW5lY3JhZnQ6bWFnZW50YV9jYW5kbGU=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHmJsb2NrLm1pbmVjcmFmdC5tYWdlbnRhX2NhbmRsZQA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1329, - "key": "minecraft:light_blue_candle", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxttaW5lY3JhZnQ6bGlnaHRfYmx1ZV9jYW5kbGU=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWJsb2NrLm1pbmVjcmFmdC5saWdodF9ibHVlX2NhbmRsZQA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1330, - "key": "minecraft:yellow_candle", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6eWVsbG93X2NhbmRsZQ==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC55ZWxsb3dfY2FuZGxlAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1331, - "key": "minecraft:lime_candle", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6bGltZV9jYW5kbGU=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5saW1lX2NhbmRsZQA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1332, - "key": "minecraft:pink_candle", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6cGlua19jYW5kbGU=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5waW5rX2NhbmRsZQA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1333, - "key": "minecraft:gray_candle", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6Z3JheV9jYW5kbGU=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5ncmF5X2NhbmRsZQA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1334, - "key": "minecraft:light_gray_candle", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxttaW5lY3JhZnQ6bGlnaHRfZ3JheV9jYW5kbGU=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWJsb2NrLm1pbmVjcmFmdC5saWdodF9ncmF5X2NhbmRsZQA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1335, - "key": "minecraft:cyan_candle", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6Y3lhbl9jYW5kbGU=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5jeWFuX2NhbmRsZQA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1336, - "key": "minecraft:purple_candle", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6cHVycGxlX2NhbmRsZQ==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC5wdXJwbGVfY2FuZGxlAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1337, - "key": "minecraft:blue_candle", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6Ymx1ZV9jYW5kbGU=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5ibHVlX2NhbmRsZQA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1338, - "key": "minecraft:brown_candle", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxZtaW5lY3JhZnQ6YnJvd25fY2FuZGxl", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC5icm93bl9jYW5kbGUA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1339, - "key": "minecraft:green_candle", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxZtaW5lY3JhZnQ6Z3JlZW5fY2FuZGxl", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC5ncmVlbl9jYW5kbGUA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1340, - "key": "minecraft:red_candle", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxRtaW5lY3JhZnQ6cmVkX2NhbmRsZQ==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGmJsb2NrLm1pbmVjcmFmdC5yZWRfY2FuZGxlAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1341, - "key": "minecraft:black_candle", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxZtaW5lY3JhZnQ6YmxhY2tfY2FuZGxl", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC5ibGFja19jYW5kbGUA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1342, - "key": "minecraft:small_amethyst_bud", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxxtaW5lY3JhZnQ6c21hbGxfYW1ldGh5c3RfYnVk", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAImJsb2NrLm1pbmVjcmFmdC5zbWFsbF9hbWV0aHlzdF9idWQA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1343, - "key": "minecraft:medium_amethyst_bud", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx1taW5lY3JhZnQ6bWVkaXVtX2FtZXRoeXN0X2J1ZA==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2Jsb2NrLm1pbmVjcmFmdC5tZWRpdW1fYW1ldGh5c3RfYnVkAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1344, - "key": "minecraft:large_amethyst_bud", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxxtaW5lY3JhZnQ6bGFyZ2VfYW1ldGh5c3RfYnVk", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAImJsb2NrLm1pbmVjcmFmdC5sYXJnZV9hbWV0aHlzdF9idWQA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1345, - "key": "minecraft:amethyst_cluster", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxptaW5lY3JhZnQ6YW1ldGh5c3RfY2x1c3Rlcg==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGJsb2NrLm1pbmVjcmFmdC5hbWV0aHlzdF9jbHVzdGVyAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1346, - "key": "minecraft:pointed_dripstone", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxttaW5lY3JhZnQ6cG9pbnRlZF9kcmlwc3RvbmU=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWJsb2NrLm1pbmVjcmFmdC5wb2ludGVkX2RyaXBzdG9uZQA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1347, - "key": "minecraft:ochre_froglight", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxltaW5lY3JhZnQ6b2NocmVfZnJvZ2xpZ2h0", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAH2Jsb2NrLm1pbmVjcmFmdC5vY2hyZV9mcm9nbGlnaHQA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1348, - "key": "minecraft:verdant_froglight", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxttaW5lY3JhZnQ6dmVyZGFudF9mcm9nbGlnaHQ=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWJsb2NrLm1pbmVjcmFmdC52ZXJkYW50X2Zyb2dsaWdodAA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1349, - "key": "minecraft:pearlescent_froglight", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx9taW5lY3JhZnQ6cGVhcmxlc2NlbnRfZnJvZ2xpZ2h0", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWJsb2NrLm1pbmVjcmFmdC5wZWFybGVzY2VudF9mcm9nbGlnaHQA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1350, - "key": "minecraft:frogspawn", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxNtaW5lY3JhZnQ6ZnJvZ3NwYXdu", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGWJsb2NrLm1pbmVjcmFmdC5mcm9nc3Bhd24A", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1351, - "key": "minecraft:echo_shard", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxRtaW5lY3JhZnQ6ZWNob19zaGFyZA==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGWl0ZW0ubWluZWNyYWZ0LmVjaG9fc2hhcmQA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQE=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1352, - "key": "minecraft:brush", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:damage": "AwA=", - "minecraft:enchantments": "CgA=", - "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": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1353, - "key": "minecraft:netherite_upgrade_smithing_template", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "By1taW5lY3JhZnQ6bmV0aGVyaXRlX3VwZ3JhZGVfc21pdGhpbmdfdGVtcGxhdGU=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAMml0ZW0ubWluZWNyYWZ0Lm5ldGhlcml0ZV91cGdyYWRlX3NtaXRoaW5nX3RlbXBsYXRlAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQE=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1354, - "key": "minecraft:sentry_armor_trim_smithing_template", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "By1taW5lY3JhZnQ6c2VudHJ5X2FybW9yX3RyaW1fc21pdGhpbmdfdGVtcGxhdGU=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAMml0ZW0ubWluZWNyYWZ0LnNlbnRyeV9hcm1vcl90cmltX3NtaXRoaW5nX3RlbXBsYXRlAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQE=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1355, - "key": "minecraft:dune_armor_trim_smithing_template", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByttaW5lY3JhZnQ6ZHVuZV9hcm1vcl90cmltX3NtaXRoaW5nX3RlbXBsYXRl", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAMGl0ZW0ubWluZWNyYWZ0LmR1bmVfYXJtb3JfdHJpbV9zbWl0aGluZ190ZW1wbGF0ZQA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQE=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1356, - "key": "minecraft:coast_armor_trim_smithing_template", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByxtaW5lY3JhZnQ6Y29hc3RfYXJtb3JfdHJpbV9zbWl0aGluZ190ZW1wbGF0ZQ==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAMWl0ZW0ubWluZWNyYWZ0LmNvYXN0X2FybW9yX3RyaW1fc21pdGhpbmdfdGVtcGxhdGUA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQE=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1357, - "key": "minecraft:wild_armor_trim_smithing_template", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByttaW5lY3JhZnQ6d2lsZF9hcm1vcl90cmltX3NtaXRoaW5nX3RlbXBsYXRl", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAMGl0ZW0ubWluZWNyYWZ0LndpbGRfYXJtb3JfdHJpbV9zbWl0aGluZ190ZW1wbGF0ZQA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQE=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1358, - "key": "minecraft:ward_armor_trim_smithing_template", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByttaW5lY3JhZnQ6d2FyZF9hcm1vcl90cmltX3NtaXRoaW5nX3RlbXBsYXRl", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAMGl0ZW0ubWluZWNyYWZ0LndhcmRfYXJtb3JfdHJpbV9zbWl0aGluZ190ZW1wbGF0ZQA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQI=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1359, - "key": "minecraft:eye_armor_trim_smithing_template", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByptaW5lY3JhZnQ6ZXllX2FybW9yX3RyaW1fc21pdGhpbmdfdGVtcGxhdGU=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAL2l0ZW0ubWluZWNyYWZ0LmV5ZV9hcm1vcl90cmltX3NtaXRoaW5nX3RlbXBsYXRlAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQI=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1360, - "key": "minecraft:vex_armor_trim_smithing_template", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByptaW5lY3JhZnQ6dmV4X2FybW9yX3RyaW1fc21pdGhpbmdfdGVtcGxhdGU=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAL2l0ZW0ubWluZWNyYWZ0LnZleF9hcm1vcl90cmltX3NtaXRoaW5nX3RlbXBsYXRlAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQI=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1361, - "key": "minecraft:tide_armor_trim_smithing_template", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByttaW5lY3JhZnQ6dGlkZV9hcm1vcl90cmltX3NtaXRoaW5nX3RlbXBsYXRl", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAMGl0ZW0ubWluZWNyYWZ0LnRpZGVfYXJtb3JfdHJpbV9zbWl0aGluZ190ZW1wbGF0ZQA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQE=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1362, - "key": "minecraft:snout_armor_trim_smithing_template", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByxtaW5lY3JhZnQ6c25vdXRfYXJtb3JfdHJpbV9zbWl0aGluZ190ZW1wbGF0ZQ==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAMWl0ZW0ubWluZWNyYWZ0LnNub3V0X2FybW9yX3RyaW1fc21pdGhpbmdfdGVtcGxhdGUA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQE=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1363, - "key": "minecraft:rib_armor_trim_smithing_template", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByptaW5lY3JhZnQ6cmliX2FybW9yX3RyaW1fc21pdGhpbmdfdGVtcGxhdGU=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAL2l0ZW0ubWluZWNyYWZ0LnJpYl9hcm1vcl90cmltX3NtaXRoaW5nX3RlbXBsYXRlAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQE=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1364, - "key": "minecraft:spire_armor_trim_smithing_template", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByxtaW5lY3JhZnQ6c3BpcmVfYXJtb3JfdHJpbV9zbWl0aGluZ190ZW1wbGF0ZQ==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAMWl0ZW0ubWluZWNyYWZ0LnNwaXJlX2FybW9yX3RyaW1fc21pdGhpbmdfdGVtcGxhdGUA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQI=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1365, - "key": "minecraft:wayfinder_armor_trim_smithing_template", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BzBtaW5lY3JhZnQ6d2F5ZmluZGVyX2FybW9yX3RyaW1fc21pdGhpbmdfdGVtcGxhdGU=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUANWl0ZW0ubWluZWNyYWZ0LndheWZpbmRlcl9hcm1vcl90cmltX3NtaXRoaW5nX3RlbXBsYXRlAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQE=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1366, - "key": "minecraft:shaper_armor_trim_smithing_template", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "By1taW5lY3JhZnQ6c2hhcGVyX2FybW9yX3RyaW1fc21pdGhpbmdfdGVtcGxhdGU=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAMml0ZW0ubWluZWNyYWZ0LnNoYXBlcl9hcm1vcl90cmltX3NtaXRoaW5nX3RlbXBsYXRlAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQE=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1367, - "key": "minecraft:silence_armor_trim_smithing_template", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "By5taW5lY3JhZnQ6c2lsZW5jZV9hcm1vcl90cmltX3NtaXRoaW5nX3RlbXBsYXRl", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAM2l0ZW0ubWluZWNyYWZ0LnNpbGVuY2VfYXJtb3JfdHJpbV9zbWl0aGluZ190ZW1wbGF0ZQA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQM=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1368, - "key": "minecraft:raiser_armor_trim_smithing_template", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "By1taW5lY3JhZnQ6cmFpc2VyX2FybW9yX3RyaW1fc21pdGhpbmdfdGVtcGxhdGU=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAMml0ZW0ubWluZWNyYWZ0LnJhaXNlcl9hcm1vcl90cmltX3NtaXRoaW5nX3RlbXBsYXRlAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQE=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1369, - "key": "minecraft:host_armor_trim_smithing_template", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByttaW5lY3JhZnQ6aG9zdF9hcm1vcl90cmltX3NtaXRoaW5nX3RlbXBsYXRl", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAMGl0ZW0ubWluZWNyYWZ0Lmhvc3RfYXJtb3JfdHJpbV9zbWl0aGluZ190ZW1wbGF0ZQA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQE=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1370, - "key": "minecraft:flow_armor_trim_smithing_template", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByttaW5lY3JhZnQ6Zmxvd19hcm1vcl90cmltX3NtaXRoaW5nX3RlbXBsYXRl", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAMGl0ZW0ubWluZWNyYWZ0LmZsb3dfYXJtb3JfdHJpbV9zbWl0aGluZ190ZW1wbGF0ZQA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQE=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1371, - "key": "minecraft:bolt_armor_trim_smithing_template", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByttaW5lY3JhZnQ6Ym9sdF9hcm1vcl90cmltX3NtaXRoaW5nX3RlbXBsYXRl", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAMGl0ZW0ubWluZWNyYWZ0LmJvbHRfYXJtb3JfdHJpbV9zbWl0aGluZ190ZW1wbGF0ZQA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQE=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1372, - "key": "minecraft:angler_pottery_sherd", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx5taW5lY3JhZnQ6YW5nbGVyX3BvdHRlcnlfc2hlcmQ=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2l0ZW0ubWluZWNyYWZ0LmFuZ2xlcl9wb3R0ZXJ5X3NoZXJkAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQE=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1373, - "key": "minecraft:archer_pottery_sherd", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx5taW5lY3JhZnQ6YXJjaGVyX3BvdHRlcnlfc2hlcmQ=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2l0ZW0ubWluZWNyYWZ0LmFyY2hlcl9wb3R0ZXJ5X3NoZXJkAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQE=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1374, - "key": "minecraft:arms_up_pottery_sherd", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx9taW5lY3JhZnQ6YXJtc191cF9wb3R0ZXJ5X3NoZXJk", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJGl0ZW0ubWluZWNyYWZ0LmFybXNfdXBfcG90dGVyeV9zaGVyZAA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQE=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1375, - "key": "minecraft:blade_pottery_sherd", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx1taW5lY3JhZnQ6YmxhZGVfcG90dGVyeV9zaGVyZA==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIml0ZW0ubWluZWNyYWZ0LmJsYWRlX3BvdHRlcnlfc2hlcmQA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQE=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1376, - "key": "minecraft:brewer_pottery_sherd", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx5taW5lY3JhZnQ6YnJld2VyX3BvdHRlcnlfc2hlcmQ=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2l0ZW0ubWluZWNyYWZ0LmJyZXdlcl9wb3R0ZXJ5X3NoZXJkAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQE=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1377, - "key": "minecraft:burn_pottery_sherd", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxxtaW5lY3JhZnQ6YnVybl9wb3R0ZXJ5X3NoZXJk", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWl0ZW0ubWluZWNyYWZ0LmJ1cm5fcG90dGVyeV9zaGVyZAA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQE=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1378, - "key": "minecraft:danger_pottery_sherd", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx5taW5lY3JhZnQ6ZGFuZ2VyX3BvdHRlcnlfc2hlcmQ=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2l0ZW0ubWluZWNyYWZ0LmRhbmdlcl9wb3R0ZXJ5X3NoZXJkAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQE=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1379, - "key": "minecraft:explorer_pottery_sherd", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByBtaW5lY3JhZnQ6ZXhwbG9yZXJfcG90dGVyeV9zaGVyZA==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWl0ZW0ubWluZWNyYWZ0LmV4cGxvcmVyX3BvdHRlcnlfc2hlcmQA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQE=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1380, - "key": "minecraft:flow_pottery_sherd", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxxtaW5lY3JhZnQ6Zmxvd19wb3R0ZXJ5X3NoZXJk", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWl0ZW0ubWluZWNyYWZ0LmZsb3dfcG90dGVyeV9zaGVyZAA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQE=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1381, - "key": "minecraft:friend_pottery_sherd", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx5taW5lY3JhZnQ6ZnJpZW5kX3BvdHRlcnlfc2hlcmQ=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2l0ZW0ubWluZWNyYWZ0LmZyaWVuZF9wb3R0ZXJ5X3NoZXJkAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQE=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1382, - "key": "minecraft:guster_pottery_sherd", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx5taW5lY3JhZnQ6Z3VzdGVyX3BvdHRlcnlfc2hlcmQ=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2l0ZW0ubWluZWNyYWZ0Lmd1c3Rlcl9wb3R0ZXJ5X3NoZXJkAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQE=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1383, - "key": "minecraft:heart_pottery_sherd", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx1taW5lY3JhZnQ6aGVhcnRfcG90dGVyeV9zaGVyZA==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIml0ZW0ubWluZWNyYWZ0LmhlYXJ0X3BvdHRlcnlfc2hlcmQA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQE=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1384, - "key": "minecraft:heartbreak_pottery_sherd", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByJtaW5lY3JhZnQ6aGVhcnRicmVha19wb3R0ZXJ5X3NoZXJk", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJ2l0ZW0ubWluZWNyYWZ0LmhlYXJ0YnJlYWtfcG90dGVyeV9zaGVyZAA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQE=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1385, - "key": "minecraft:howl_pottery_sherd", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxxtaW5lY3JhZnQ6aG93bF9wb3R0ZXJ5X3NoZXJk", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWl0ZW0ubWluZWNyYWZ0Lmhvd2xfcG90dGVyeV9zaGVyZAA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQE=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1386, - "key": "minecraft:miner_pottery_sherd", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx1taW5lY3JhZnQ6bWluZXJfcG90dGVyeV9zaGVyZA==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIml0ZW0ubWluZWNyYWZ0Lm1pbmVyX3BvdHRlcnlfc2hlcmQA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQE=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1387, - "key": "minecraft:mourner_pottery_sherd", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx9taW5lY3JhZnQ6bW91cm5lcl9wb3R0ZXJ5X3NoZXJk", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJGl0ZW0ubWluZWNyYWZ0Lm1vdXJuZXJfcG90dGVyeV9zaGVyZAA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQE=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1388, - "key": "minecraft:plenty_pottery_sherd", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx5taW5lY3JhZnQ6cGxlbnR5X3BvdHRlcnlfc2hlcmQ=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2l0ZW0ubWluZWNyYWZ0LnBsZW50eV9wb3R0ZXJ5X3NoZXJkAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQE=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1389, - "key": "minecraft:prize_pottery_sherd", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx1taW5lY3JhZnQ6cHJpemVfcG90dGVyeV9zaGVyZA==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIml0ZW0ubWluZWNyYWZ0LnByaXplX3BvdHRlcnlfc2hlcmQA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQE=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1390, - "key": "minecraft:scrape_pottery_sherd", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx5taW5lY3JhZnQ6c2NyYXBlX3BvdHRlcnlfc2hlcmQ=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2l0ZW0ubWluZWNyYWZ0LnNjcmFwZV9wb3R0ZXJ5X3NoZXJkAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQE=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1391, - "key": "minecraft:sheaf_pottery_sherd", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx1taW5lY3JhZnQ6c2hlYWZfcG90dGVyeV9zaGVyZA==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIml0ZW0ubWluZWNyYWZ0LnNoZWFmX3BvdHRlcnlfc2hlcmQA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQE=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1392, - "key": "minecraft:shelter_pottery_sherd", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx9taW5lY3JhZnQ6c2hlbHRlcl9wb3R0ZXJ5X3NoZXJk", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJGl0ZW0ubWluZWNyYWZ0LnNoZWx0ZXJfcG90dGVyeV9zaGVyZAA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQE=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1393, - "key": "minecraft:skull_pottery_sherd", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx1taW5lY3JhZnQ6c2t1bGxfcG90dGVyeV9zaGVyZA==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIml0ZW0ubWluZWNyYWZ0LnNrdWxsX3BvdHRlcnlfc2hlcmQA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQE=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1394, - "key": "minecraft:snort_pottery_sherd", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx1taW5lY3JhZnQ6c25vcnRfcG90dGVyeV9zaGVyZA==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIml0ZW0ubWluZWNyYWZ0LnNub3J0X3BvdHRlcnlfc2hlcmQA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQE=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1395, - "key": "minecraft:copper_grate", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxZtaW5lY3JhZnQ6Y29wcGVyX2dyYXRl", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHGJsb2NrLm1pbmVjcmFmdC5jb3BwZXJfZ3JhdGUA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1396, - "key": "minecraft:exposed_copper_grate", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx5taW5lY3JhZnQ6ZXhwb3NlZF9jb3BwZXJfZ3JhdGU=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJGJsb2NrLm1pbmVjcmFmdC5leHBvc2VkX2NvcHBlcl9ncmF0ZQA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1397, - "key": "minecraft:weathered_copper_grate", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByBtaW5lY3JhZnQ6d2VhdGhlcmVkX2NvcHBlcl9ncmF0ZQ==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJmJsb2NrLm1pbmVjcmFmdC53ZWF0aGVyZWRfY29wcGVyX2dyYXRlAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1398, - "key": "minecraft:oxidized_copper_grate", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx9taW5lY3JhZnQ6b3hpZGl6ZWRfY29wcGVyX2dyYXRl", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWJsb2NrLm1pbmVjcmFmdC5veGlkaXplZF9jb3BwZXJfZ3JhdGUA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1399, - "key": "minecraft:waxed_copper_grate", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxxtaW5lY3JhZnQ6d2F4ZWRfY29wcGVyX2dyYXRl", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAImJsb2NrLm1pbmVjcmFmdC53YXhlZF9jb3BwZXJfZ3JhdGUA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1400, - "key": "minecraft:waxed_exposed_copper_grate", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByRtaW5lY3JhZnQ6d2F4ZWRfZXhwb3NlZF9jb3BwZXJfZ3JhdGU=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAKmJsb2NrLm1pbmVjcmFmdC53YXhlZF9leHBvc2VkX2NvcHBlcl9ncmF0ZQA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1401, - "key": "minecraft:waxed_weathered_copper_grate", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByZtaW5lY3JhZnQ6d2F4ZWRfd2VhdGhlcmVkX2NvcHBlcl9ncmF0ZQ==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUALGJsb2NrLm1pbmVjcmFmdC53YXhlZF93ZWF0aGVyZWRfY29wcGVyX2dyYXRlAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1402, - "key": "minecraft:waxed_oxidized_copper_grate", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByVtaW5lY3JhZnQ6d2F4ZWRfb3hpZGl6ZWRfY29wcGVyX2dyYXRl", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAK2Jsb2NrLm1pbmVjcmFmdC53YXhlZF9veGlkaXplZF9jb3BwZXJfZ3JhdGUA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1403, - "key": "minecraft:copper_bulb", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxVtaW5lY3JhZnQ6Y29wcGVyX2J1bGI=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAG2Jsb2NrLm1pbmVjcmFmdC5jb3BwZXJfYnVsYgA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1404, - "key": "minecraft:exposed_copper_bulb", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx1taW5lY3JhZnQ6ZXhwb3NlZF9jb3BwZXJfYnVsYg==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAI2Jsb2NrLm1pbmVjcmFmdC5leHBvc2VkX2NvcHBlcl9idWxiAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1405, - "key": "minecraft:weathered_copper_bulb", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx9taW5lY3JhZnQ6d2VhdGhlcmVkX2NvcHBlcl9idWxi", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJWJsb2NrLm1pbmVjcmFmdC53ZWF0aGVyZWRfY29wcGVyX2J1bGIA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1406, - "key": "minecraft:oxidized_copper_bulb", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bx5taW5lY3JhZnQ6b3hpZGl6ZWRfY29wcGVyX2J1bGI=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAJGJsb2NrLm1pbmVjcmFmdC5veGlkaXplZF9jb3BwZXJfYnVsYgA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1407, - "key": "minecraft:waxed_copper_bulb", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxttaW5lY3JhZnQ6d2F4ZWRfY29wcGVyX2J1bGI=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIWJsb2NrLm1pbmVjcmFmdC53YXhlZF9jb3BwZXJfYnVsYgA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1408, - "key": "minecraft:waxed_exposed_copper_bulb", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByNtaW5lY3JhZnQ6d2F4ZWRfZXhwb3NlZF9jb3BwZXJfYnVsYg==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAKWJsb2NrLm1pbmVjcmFmdC53YXhlZF9leHBvc2VkX2NvcHBlcl9idWxiAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1409, - "key": "minecraft:waxed_weathered_copper_bulb", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByVtaW5lY3JhZnQ6d2F4ZWRfd2VhdGhlcmVkX2NvcHBlcl9idWxi", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAK2Jsb2NrLm1pbmVjcmFmdC53YXhlZF93ZWF0aGVyZWRfY29wcGVyX2J1bGIA", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1410, - "key": "minecraft:waxed_oxidized_copper_bulb", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "ByRtaW5lY3JhZnQ6d2F4ZWRfb3hpZGl6ZWRfY29wcGVyX2J1bGI=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAKmJsb2NrLm1pbmVjcmFmdC53YXhlZF9veGlkaXplZF9jb3BwZXJfYnVsYgA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1411, - "key": "minecraft:trial_spawner", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxdtaW5lY3JhZnQ6dHJpYWxfc3Bhd25lcg==", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWJsb2NrLm1pbmVjcmFmdC50cmlhbF9zcGF3bmVyAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1412, - "key": "minecraft:trial_key", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxNtaW5lY3JhZnQ6dHJpYWxfa2V5", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAGGl0ZW0ubWluZWNyYWZ0LnRyaWFsX2tleQA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1413, - "key": "minecraft:ominous_trial_key", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxttaW5lY3JhZnQ6b21pbm91c190cmlhbF9rZXk=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAIGl0ZW0ubWluZWNyYWZ0Lm9taW5vdXNfdHJpYWxfa2V5AA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1414, - "key": "minecraft:vault", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "Bw9taW5lY3JhZnQ6dmF1bHQ=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAFWJsb2NrLm1pbmVjcmFmdC52YXVsdAA=", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:rarity": "CQA=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - }, - { - "id": 1415, - "key": "minecraft:ominous_bottle", - "components": { - "minecraft:attribute_modifiers": "DQA=", - "minecraft:break_sound": "R7EG", - "minecraft:consumable": "FT/MzM0C5gQAAQS0CA==", - "minecraft:enchantments": "CgA=", - "minecraft:item_model": "BxhtaW5lY3JhZnQ6b21pbm91c19ib3R0bGU=", - "minecraft:item_name": "BgoIAAl0cmFuc2xhdGUAHWl0ZW0ubWluZWNyYWZ0Lm9taW5vdXNfYm90dGxlAA==", - "minecraft:lore": "CAA=", - "minecraft:max_stack_size": "AUA=", - "minecraft:ominous_bottle_amplifier": "NgA=", - "minecraft:rarity": "CQE=", - "minecraft:repair_cost": "EAA=", - "minecraft:tooltip_display": "DwAA" - } - } -] \ No newline at end of file diff --git a/core/src/main/resources/languages b/core/src/main/resources/languages index 40253e5f3..4ce8ad58e 160000 --- a/core/src/main/resources/languages +++ b/core/src/main/resources/languages @@ -1 +1 @@ -Subproject commit 40253e5f317ede6020aa563d0823c54c37380ebf +Subproject commit 4ce8ad58ea7ab779d613a64862956d6d0563a8e3 diff --git a/core/src/main/resources/mappings b/core/src/main/resources/mappings index 8002ed6ed..15398c158 160000 --- a/core/src/main/resources/mappings +++ b/core/src/main/resources/mappings @@ -1 +1 @@ -Subproject commit 8002ed6ed859686b9f544e626ad01995fc3ba7f1 +Subproject commit 15398c1588f5149824db8bd625e21f6886f98b10 diff --git a/core/src/main/resources/permissions.yml b/core/src/main/resources/permissions.yml index 4da9251e8..d4238666f 100644 --- a/core/src/main/resources/permissions.yml +++ b/core/src/main/resources/permissions.yml @@ -1,9 +1,14 @@ # Add any permissions here that all players should have. -# Permissions for builtin Geyser commands do not have to be listed here. +# Permissions for builtin Geyser commands do not have to be listed here, +# unless you want to override their default value. # If an extension/plugin registers their permissions with default values, entries here are typically unnecessary. -# If extensions don't register their permissions, permissions that everyone should have must be added here manually. +# If extensions don't register their permissions, permissions that everyone should (not) have must be added here manually. +# If a permission is both lists, default-denied permissions takes precedence default-permissions: - geyser.command.help # this is unnecessary + +default-denied-permissions: + - geyser.command.stop # also unnecessary diff --git a/gradle.properties b/gradle.properties index 9f2693389..0dc5199e3 100644 --- a/gradle.properties +++ b/gradle.properties @@ -8,5 +8,5 @@ org.gradle.vfs.watch=false group=org.geysermc id=geyser -version=2.8.3-SNAPSHOT +version=2.9.0-SNAPSHOT description=Allows for players from Minecraft: Bedrock Edition to join Minecraft: Java Edition servers. diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 8478e7c17..361b33e0e 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -12,12 +12,12 @@ guava = "29.0-jre" gson = "2.3.1" # Provided by Spigot 1.8.8 TODO bump to 2.8.1 or similar (Spigot 1.16.5 version) after Merge gson-runtime = "2.10.1" websocket = "1.5.1" -protocol-connection = "3.0.0.Beta7-20250812.232642-18" -protocol-common = "3.0.0.Beta7-20250812.232642-18" -protocol-codec = "3.0.0.Beta7-20250812.232642-18" +protocol-connection = "3.0.0.Beta8-20250929.213851-8" +protocol-common = "3.0.0.Beta8-20250929.213851-8" +protocol-codec = "3.0.0.Beta8-20250929.213851-8" raknet = "1.0.0.CR3-20250811.214335-20" minecraftauth = "4.1.1" -mcprotocollib = "1.21.7-20250725.134643-4" +mcprotocollib = "1.21.9-20251008.155050-11" adventure = "4.24.0" adventure-platform = "4.3.0" junit = "5.9.2" @@ -29,29 +29,30 @@ folia = "1.19.4-R0.1-SNAPSHOT" viaversion = "4.9.2" adapters = "1.16-SNAPSHOT" cloud = "2.0.0-rc.2" -cloud-minecraft = "2.0.0-beta.11" -cloud-minecraft-modded = "2.0.0-beta.12" +cloud-minecraft = "2.0.0-beta.13" +cloud-minecraft-modded = "2.0.0-beta.13" commodore = "2.2" bungeecord = "1.21-R0.1-20250215.224541-54" +bungeecord-api = "1.21-R0.1" velocity = "3.4.0-SNAPSHOT" viaproxy = "3.3.2-SNAPSHOT" -fabric-loader = "0.16.14" -fabric-api = "0.128.1+1.21.7" -fabric-permissions-api = "0.4.0-SNAPSHOT" -neoforge-minecraft = "21.8.0-beta" +fabric-loader = "0.17.2" +fabric-api = "0.133.14+1.21.9" +fabric-permissions-api = "0.4.1" +neoforge-minecraft = "21.10.0-beta" mixin = "0.8.5" mixinextras = "0.3.5" -minecraft = "1.21.8" +minecraft = "1.21.10" mockito = "5.+" runtask = "2.3.1" -runpaperversion = "1.21.8" +runpaperversion = "1.21.10" runvelocityversion = "3.4.0-SNAPSHOT" # plugin versions indra = "3.1.3" shadow = "8.1.1" architectury-plugin = "3.4-SNAPSHOT" -architectury-loom = "1.10-SNAPSHOT" +architectury-loom = "1.11-SNAPSHOT" minotaur = "2.8.7" lombok = "8.4" blossom = "2.1.0" @@ -125,6 +126,7 @@ neoforge-minecraft = { group = "net.neoforged", name = "neoforge", version.ref = adapters-spigot = { group = "org.geysermc.geyser.adapters", name = "spigot-all", version.ref = "adapters" } adapters-paper = { group = "org.geysermc.geyser.adapters", name = "paper-all", version.ref = "adapters" } bungeecord-proxy = { group = "net.md-5", name = "bungeecord-proxy", version.ref = "bungeecord" } +bungeecord-api = { group = "net.md-5", name = "bungeecord-api", version.ref = "bungeecord-api" } checker-qual = { group = "org.checkerframework", name = "checker-qual", version.ref = "checkerframework" } commodore = { group = "me.lucko", name = "commodore", version.ref = "commodore" } guava = { group = "com.google.guava", name = "guava", version.ref = "guava" }