From 68eea925e15f751afa1555869cc80b4acd98882d Mon Sep 17 00:00:00 2001 From: Jesse Boyd Date: Thu, 29 Aug 2019 13:57:03 +0100 Subject: [PATCH] update adapter and platform manager --- worldedit-bukkit/build.gradle.kts | 1 + .../adapter/mc1_14/BukkitGetBlocks_1_14.java | 4 +- .../mc1_14/DataConverters_1_14_R4.java | 2711 +++ .../adapter/mc1_14/FakePlayer_v1_14_R4.java | 80 + ...got_v1_14_R1.java => Spigot_v1_14_R4.java} | 95 +- .../fawe/bukkit/wrapper/AsyncWorld.java | 2 +- .../fawe/bukkit/wrapper/state/AsyncSign.java | 3 +- .../bukkit/BukkitBlockCommandSender.java | 18 +- .../worldedit/bukkit/BukkitCommandSender.java | 8 +- .../worldedit/bukkit/WorldEditPlugin.java | 19 +- .../bukkit/adapter/BukkitImplAdapter.java | 90 +- .../fawe/util/DocumentationPrinter.java | 2 - .../worldedit/command/ApplyBrushCommands.java | 22 + .../worldedit/command/BrushCommands.java | 94 + .../command/BrushOptionsCommands.java | 491 - .../sk89q/worldedit/command/MaskCommands.java | 894 +- .../worldedit/command/PaintBrushCommands.java | 22 + .../sk89q/worldedit/command/ToolCommands.java | 30 +- .../worldedit/command/ToolUtilCommands.java | 386 +- .../command/argument/RegistryConverter.java | 2 +- .../platform/PlatformCommandManager.java | 177 +- .../sk89q/worldedit/session/SessionOwner.java | 6 + .../worldedit/world/block/BlockTypes.java | 7 +- .../worldedit/world/registry/blocks.114.json | 16902 ++++++++++++++++ .../worldedit/world/registry/items.114.json | 6141 ++++++ .../worldedit/world/registry/legacy.json | 48 +- worldedit-libs/core/build.gradle.kts | 2 +- 27 files changed, 27060 insertions(+), 1197 deletions(-) create mode 100644 worldedit-bukkit/src/main/java/com/boydti/fawe/bukkit/adapter/mc1_14/DataConverters_1_14_R4.java create mode 100644 worldedit-bukkit/src/main/java/com/boydti/fawe/bukkit/adapter/mc1_14/FakePlayer_v1_14_R4.java rename worldedit-bukkit/src/main/java/com/boydti/fawe/bukkit/adapter/mc1_14/{Spigot_v1_14_R1.java => Spigot_v1_14_R4.java} (86%) delete mode 100644 worldedit-core/src/main/java/com/sk89q/worldedit/command/BrushOptionsCommands.java create mode 100644 worldedit-core/src/main/resources/com/sk89q/worldedit/world/registry/blocks.114.json create mode 100644 worldedit-core/src/main/resources/com/sk89q/worldedit/world/registry/items.114.json diff --git a/worldedit-bukkit/build.gradle.kts b/worldedit-bukkit/build.gradle.kts index bf07b7bb6..6108d2abf 100644 --- a/worldedit-bukkit/build.gradle.kts +++ b/worldedit-bukkit/build.gradle.kts @@ -29,6 +29,7 @@ configurations.all { dependencies { "compile"("net.milkbowl.vault:VaultAPI:1.7") { isTransitive = false } "api"(project(":worldedit-core")) + "api"(project(":worldedit-libs:core")) "api"(project(":worldedit-libs:bukkit")) "compile"("it.unimi.dsi:fastutil:8.2.1") "api"("com.destroystokyo.paper:paper-api:1.14.4-R0.1-SNAPSHOT") { diff --git a/worldedit-bukkit/src/main/java/com/boydti/fawe/bukkit/adapter/mc1_14/BukkitGetBlocks_1_14.java b/worldedit-bukkit/src/main/java/com/boydti/fawe/bukkit/adapter/mc1_14/BukkitGetBlocks_1_14.java index 925b6ff29..a3828361f 100644 --- a/worldedit-bukkit/src/main/java/com/boydti/fawe/bukkit/adapter/mc1_14/BukkitGetBlocks_1_14.java +++ b/worldedit-bukkit/src/main/java/com/boydti/fawe/bukkit/adapter/mc1_14/BukkitGetBlocks_1_14.java @@ -403,7 +403,7 @@ public class BukkitGetBlocks_1_14 extends CharGetBlocks { lock.setModified(false); // Efficiently convert ChunkSection to raw data try { - Spigot_v1_14_R1 adapter = ((Spigot_v1_14_R1) WorldEditPlugin.getInstance().getBukkitImplAdapter()); + Spigot_v1_14_R4 adapter = ((Spigot_v1_14_R4) WorldEditPlugin.getInstance().getBukkitImplAdapter()); final DataPaletteBlock blocks = section.getBlocks(); final DataBits bits = (DataBits) BukkitAdapter_1_14.fieldBits.get(blocks); @@ -478,7 +478,7 @@ public class BukkitGetBlocks_1_14 extends CharGetBlocks { } } - private final char ordinal(IBlockData ibd, Spigot_v1_14_R1 adapter) { + private final char ordinal(IBlockData ibd, Spigot_v1_14_R4 adapter) { if (ibd == null) { return BlockTypes.AIR.getDefaultState().getOrdinalChar(); } else { diff --git a/worldedit-bukkit/src/main/java/com/boydti/fawe/bukkit/adapter/mc1_14/DataConverters_1_14_R4.java b/worldedit-bukkit/src/main/java/com/boydti/fawe/bukkit/adapter/mc1_14/DataConverters_1_14_R4.java new file mode 100644 index 000000000..01497bbba --- /dev/null +++ b/worldedit-bukkit/src/main/java/com/boydti/fawe/bukkit/adapter/mc1_14/DataConverters_1_14_R4.java @@ -0,0 +1,2711 @@ +package com.boydti.fawe.bukkit.adapter.mc1_14; + +import com.google.common.collect.Lists; +import com.google.common.collect.Maps; +import com.google.common.collect.Sets; +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonParseException; +import com.mojang.datafixers.DSL.TypeReference; +import com.mojang.datafixers.DataFixer; +import com.mojang.datafixers.DataFixerBuilder; +import com.mojang.datafixers.Dynamic; +import com.mojang.datafixers.schemas.Schema; +import com.sk89q.jnbt.CompoundTag; +import net.minecraft.server.v1_14_R1.ChatComponentText; +import net.minecraft.server.v1_14_R1.ChatDeserializer; +import net.minecraft.server.v1_14_R1.DataConverterRegistry; +import net.minecraft.server.v1_14_R1.DataConverterTypes; +import net.minecraft.server.v1_14_R1.DataFixTypes; +import net.minecraft.server.v1_14_R1.DynamicOpsNBT; +import net.minecraft.server.v1_14_R1.EnumColor; +import net.minecraft.server.v1_14_R1.EnumDirection; +import net.minecraft.server.v1_14_R1.IChatBaseComponent; +import net.minecraft.server.v1_14_R1.MinecraftKey; +import net.minecraft.server.v1_14_R1.NBTBase; +import net.minecraft.server.v1_14_R1.NBTTagCompound; +import net.minecraft.server.v1_14_R1.NBTTagFloat; +import net.minecraft.server.v1_14_R1.NBTTagList; +import net.minecraft.server.v1_14_R1.NBTTagString; +import net.minecraft.server.v1_14_R1.UtilColor; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +import javax.annotation.Nullable; +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.EnumMap; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Locale; +import java.util.Map; +import java.util.Random; +import java.util.Set; +import java.util.UUID; +import java.util.concurrent.Executor; +import java.util.stream.Collectors; + +/** + * Handles converting all Pre 1.13.2 data using the Legacy DataFix System (ported to 1.13.2) + * + * We register a DFU Fixer per Legacy Data Version and apply the fixes using legacy strategy + * which is safer, faster and cleaner code. + * + * The pre DFU code did not fail when the Source version was unknown. + * + * This class also provides util methods for converting compounds to wrap the update call to + * receive the source version in the compound + * + */ +@SuppressWarnings("UnnecessarilyQualifiedStaticUsage") +public class DataConverters_1_14_R4 extends DataFixerBuilder implements com.sk89q.worldedit.world.DataFixer { + + @SuppressWarnings("unchecked") + @Override + public T fixUp(FixType type, T original, int srcVer) { + if (type == FixTypes.CHUNK) { + return (T) fixChunk((CompoundTag) original, srcVer); + } else if (type == FixTypes.BLOCK_ENTITY) { + return (T) fixBlockEntity((CompoundTag) original, srcVer); + } else if (type == FixTypes.ENTITY) { + return (T) fixEntity((CompoundTag) original, srcVer); + } else if (type == FixTypes.BLOCK_STATE) { + return (T) fixBlockState((String) original, srcVer); + } else if (type == FixTypes.ITEM_TYPE) { + return (T) fixItemType((String) original, srcVer); + } else if (type == FixTypes.BIOME) { + return (T) fixBiome((String) original, srcVer); + } + return original; + } + + private CompoundTag fixChunk(CompoundTag originalChunk, int srcVer) { + NBTTagCompound tag = (NBTTagCompound) adapter.fromNative(originalChunk); + NBTTagCompound fixed = convert(LegacyType.CHUNK, tag, srcVer); + return (CompoundTag) adapter.toNative(fixed); + } + + private CompoundTag fixBlockEntity(CompoundTag origTileEnt, int srcVer) { + NBTTagCompound tag = (NBTTagCompound) adapter.fromNative(origTileEnt); + NBTTagCompound fixed = convert(LegacyType.BLOCK_ENTITY, tag, srcVer); + return (CompoundTag) adapter.toNative(fixed); + } + + private CompoundTag fixEntity(CompoundTag origEnt, int srcVer) { + NBTTagCompound tag = (NBTTagCompound) adapter.fromNative(origEnt); + NBTTagCompound fixed = convert(LegacyType.ENTITY, tag, srcVer); + return (CompoundTag) adapter.toNative(fixed); + } + + private String fixBlockState(String blockState, int srcVer) { + NBTTagCompound stateNBT = stateToNBT(blockState); + Dynamic dynamic = new Dynamic<>(OPS_NBT, stateNBT); + NBTTagCompound fixed = (NBTTagCompound) INSTANCE.fixer.update(DataConverterTypes.m, dynamic, srcVer, DATA_VERSION).getValue(); + return nbtToState(fixed); + } + + private String nbtToState(NBTTagCompound tagCompound) { + StringBuilder sb = new StringBuilder(); + sb.append(tagCompound.getString("Name")); + if (tagCompound.hasKeyOfType("Properties", 10)) { + sb.append('['); + NBTTagCompound props = tagCompound.getCompound("Properties"); + sb.append(props.getKeys().stream().map(k -> k + "=" + props.getString(k).replace("\"", "")).collect(Collectors.joining(","))); + sb.append(']'); + } + return sb.toString(); + } + + private static NBTTagCompound stateToNBT(String blockState) { + int propIdx = blockState.indexOf('['); + NBTTagCompound tag = new NBTTagCompound(); + if (propIdx < 0) { + tag.setString("Name", blockState); + } else { + tag.setString("Name", blockState.substring(0, propIdx)); + NBTTagCompound propTag = new NBTTagCompound(); + String props = blockState.substring(propIdx + 1, blockState.length() - 1); + String[] propArr = props.split(","); + for (String pair : propArr) { + final String[] split = pair.split("="); + propTag.setString(split[0], split[1]); + } + tag.set("Properties", propTag); + } + return tag; + } + + private String fixBiome(String key, int srcVer) { + return fixName(key, srcVer, DataConverterTypes.x); // "biome" + } + + private String fixItemType(String key, int srcVer) { + return fixName(key, srcVer, DataConverterTypes.r); // "item_name" + } + + private static String fixName(String key, int srcVer, TypeReference type) { + return INSTANCE.fixer.update(type, new Dynamic<>(OPS_NBT, new NBTTagString(key)), srcVer, DATA_VERSION) + .getValue().asString(); + } + + private final Spigot_v1_14_R4 adapter; + + private static final DynamicOpsNBT OPS_NBT = DynamicOpsNBT.a; + private static final int LEGACY_VERSION = 1343; + private static int DATA_VERSION; + static DataConverters_1_14_R4 INSTANCE; + + private final Map> converters = new EnumMap<>(LegacyType.class); + private final Map> inspectors = new EnumMap<>(LegacyType.class); + + // Set on build + private DataFixer fixer; + private static final Map DFU_TO_LEGACY = new HashMap<>(); + + public enum LegacyType { + LEVEL(DataFixTypes.LEVEL.a()), + PLAYER(DataFixTypes.PLAYER.a()), + CHUNK(DataFixTypes.CHUNK.a()), + BLOCK_ENTITY(DataConverterTypes.k), // "block_entity" + ENTITY(DataConverterTypes.ENTITY), + ITEM_INSTANCE(DataConverterTypes.ITEM_STACK), + OPTIONS(DataFixTypes.OPTIONS.a()), + STRUCTURE(DataFixTypes.STRUCTURE.a()); + + private final TypeReference type; + + LegacyType(TypeReference type) { + this.type = type; + DFU_TO_LEGACY.put(type.typeName(), this); + } + + public TypeReference getDFUType() { + return type; + } + } + + DataConverters_1_14_R4(int dataVersion, Spigot_v1_14_R4 adapter) { + super(dataVersion); + DATA_VERSION = dataVersion; + INSTANCE = this; + this.adapter = adapter; + registerConverters(); + registerInspectors(); + } + + + // Called after fixers are built and ready for FIXING + @Override + public DataFixer build(final Executor executor) { + return this.fixer = new WrappedDataFixer(DataConverterRegistry.a()); + } + + private class WrappedDataFixer implements DataFixer { + private final DataFixer realFixer; + + WrappedDataFixer(DataFixer realFixer) { + this.realFixer = realFixer; + } + + @Override + public Dynamic update(TypeReference type, Dynamic dynamic, int sourceVer, int targetVer) { + LegacyType legacyType = DFU_TO_LEGACY.get(type.typeName()); + if (sourceVer < LEGACY_VERSION && legacyType != null) { + NBTTagCompound cmp = (NBTTagCompound) dynamic.getValue(); + int desiredVersion = Math.min(targetVer, LEGACY_VERSION); + + cmp = convert(legacyType, cmp, sourceVer, desiredVersion); + sourceVer = desiredVersion; + dynamic = new Dynamic(OPS_NBT, cmp); + } + return realFixer.update(type, dynamic, sourceVer, targetVer); + } + + private NBTTagCompound convert(LegacyType type, NBTTagCompound cmp, int sourceVer, int desiredVersion) { + List converters = DataConverters_1_14_R4.this.converters.get(type); + if (converters != null && !converters.isEmpty()) { + for (DataConverter converter : converters) { + int dataVersion = converter.getDataVersion(); + if (dataVersion > sourceVer && dataVersion <= desiredVersion) { + cmp = converter.convert(cmp); + } + } + } + + List inspectors = DataConverters_1_14_R4.this.inspectors.get(type); + if (inspectors != null && !inspectors.isEmpty()) { + for (DataInspector inspector : inspectors) { + cmp = inspector.inspect(cmp, sourceVer, desiredVersion); + } + } + + return cmp; + } + + @Override + public Schema getSchema(int i) { + return realFixer.getSchema(i); + } + } + + public static NBTTagCompound convert(LegacyType type, NBTTagCompound cmp) { + return convert(type.getDFUType(), cmp); + } + + public static NBTTagCompound convert(LegacyType type, NBTTagCompound cmp, int sourceVer) { + return convert(type.getDFUType(), cmp, sourceVer); + } + + public static NBTTagCompound convert(LegacyType type, NBTTagCompound cmp, int sourceVer, int targetVer) { + return convert(type.getDFUType(), cmp, sourceVer, targetVer); + } + + public static NBTTagCompound convert(TypeReference type, NBTTagCompound cmp) { + int i = cmp.hasKeyOfType("DataVersion", 99) ? cmp.getInt("DataVersion") : -1; + return convert(type, cmp, i); + } + + public static NBTTagCompound convert(TypeReference type, NBTTagCompound cmp, int sourceVer) { + return convert(type, cmp, sourceVer, DATA_VERSION); + } + + public static NBTTagCompound convert(TypeReference type, NBTTagCompound cmp, int sourceVer, int targetVer) { + if (sourceVer >= targetVer) { + return cmp; + } + return (NBTTagCompound) INSTANCE.fixer.update(type, new Dynamic<>(OPS_NBT, cmp), sourceVer, targetVer).getValue(); + } + + + public interface DataInspector { + NBTTagCompound inspect(NBTTagCompound cmp, int sourceVer, int targetVer); + } + + public interface DataConverter { + + int getDataVersion(); + + NBTTagCompound convert(NBTTagCompound cmp); + } + + + private void registerInspector(LegacyType type, DataInspector inspector) { + this.inspectors.computeIfAbsent(type, k -> new ArrayList<>()).add(inspector); + } + + private void registerConverter(LegacyType type, DataConverter converter) { + int version = converter.getDataVersion(); + + List list = this.converters.computeIfAbsent(type, k -> new ArrayList<>()); + if (!list.isEmpty() && list.get(list.size() - 1).getDataVersion() > version) { + for (int j = 0; j < list.size(); ++j) { + if (list.get(j).getDataVersion() > version) { + list.add(j, converter); + break; + } + } + } else { + list.add(converter); + } + } + + private void registerInspectors() { + registerEntityItemList("EntityHorseDonkey", "SaddleItem", "Items"); + registerEntityItemList("EntityHorseMule", "Items"); + registerEntityItemList("EntityMinecartChest", "Items"); + registerEntityItemList("EntityMinecartHopper", "Items"); + registerEntityItemList("EntityVillager", "Inventory"); + registerEntityItemListEquipment("EntityArmorStand"); + registerEntityItemListEquipment("EntityBat"); + registerEntityItemListEquipment("EntityBlaze"); + registerEntityItemListEquipment("EntityCaveSpider"); + registerEntityItemListEquipment("EntityChicken"); + registerEntityItemListEquipment("EntityCow"); + registerEntityItemListEquipment("EntityCreeper"); + registerEntityItemListEquipment("EntityEnderDragon"); + registerEntityItemListEquipment("EntityEnderman"); + registerEntityItemListEquipment("EntityEndermite"); + registerEntityItemListEquipment("EntityEvoker"); + registerEntityItemListEquipment("EntityGhast"); + registerEntityItemListEquipment("EntityGiantZombie"); + registerEntityItemListEquipment("EntityGuardian"); + registerEntityItemListEquipment("EntityGuardianElder"); + registerEntityItemListEquipment("EntityHorse"); + registerEntityItemListEquipment("EntityHorseDonkey"); + registerEntityItemListEquipment("EntityHorseMule"); + registerEntityItemListEquipment("EntityHorseSkeleton"); + registerEntityItemListEquipment("EntityHorseZombie"); + registerEntityItemListEquipment("EntityIronGolem"); + registerEntityItemListEquipment("EntityMagmaCube"); + registerEntityItemListEquipment("EntityMushroomCow"); + registerEntityItemListEquipment("EntityOcelot"); + registerEntityItemListEquipment("EntityPig"); + registerEntityItemListEquipment("EntityPigZombie"); + registerEntityItemListEquipment("EntityRabbit"); + registerEntityItemListEquipment("EntitySheep"); + registerEntityItemListEquipment("EntityShulker"); + registerEntityItemListEquipment("EntitySilverfish"); + registerEntityItemListEquipment("EntitySkeleton"); + registerEntityItemListEquipment("EntitySkeletonStray"); + registerEntityItemListEquipment("EntitySkeletonWither"); + registerEntityItemListEquipment("EntitySlime"); + registerEntityItemListEquipment("EntitySnowman"); + registerEntityItemListEquipment("EntitySpider"); + registerEntityItemListEquipment("EntitySquid"); + registerEntityItemListEquipment("EntityVex"); + registerEntityItemListEquipment("EntityVillager"); + registerEntityItemListEquipment("EntityVindicator"); + registerEntityItemListEquipment("EntityWitch"); + registerEntityItemListEquipment("EntityWither"); + registerEntityItemListEquipment("EntityWolf"); + registerEntityItemListEquipment("EntityZombie"); + registerEntityItemListEquipment("EntityZombieHusk"); + registerEntityItemListEquipment("EntityZombieVillager"); + registerEntityItemSingle("EntityFireworks", "FireworksItem"); + registerEntityItemSingle("EntityHorse", "ArmorItem"); + registerEntityItemSingle("EntityHorse", "SaddleItem"); + registerEntityItemSingle("EntityHorseMule", "SaddleItem"); + registerEntityItemSingle("EntityHorseSkeleton", "SaddleItem"); + registerEntityItemSingle("EntityHorseZombie", "SaddleItem"); + registerEntityItemSingle("EntityItem", "Item"); + registerEntityItemSingle("EntityItemFrame", "Item"); + registerEntityItemSingle("EntityPotion", "Potion"); + + registerInspector(LegacyType.BLOCK_ENTITY, new DataInspectorItem("TileEntityRecordPlayer", "RecordItem")); + registerInspector(LegacyType.BLOCK_ENTITY, new DataInspectorItemList("TileEntityBrewingStand", "Items")); + registerInspector(LegacyType.BLOCK_ENTITY, new DataInspectorItemList("TileEntityChest", "Items")); + registerInspector(LegacyType.BLOCK_ENTITY, new DataInspectorItemList("TileEntityDispenser", "Items")); + registerInspector(LegacyType.BLOCK_ENTITY, new DataInspectorItemList("TileEntityDropper", "Items")); + registerInspector(LegacyType.BLOCK_ENTITY, new DataInspectorItemList("TileEntityFurnace", "Items")); + registerInspector(LegacyType.BLOCK_ENTITY, new DataInspectorItemList("TileEntityHopper", "Items")); + registerInspector(LegacyType.BLOCK_ENTITY, new DataInspectorItemList("TileEntityShulkerBox", "Items")); + registerInspector(LegacyType.BLOCK_ENTITY, new DataInspectorMobSpawnerMobs()); + registerInspector(LegacyType.CHUNK, new DataInspectorChunks()); + registerInspector(LegacyType.ENTITY, new DataInspectorCommandBlock()); + registerInspector(LegacyType.ENTITY, new DataInspectorEntityPassengers()); + registerInspector(LegacyType.ENTITY, new DataInspectorMobSpawnerMinecart()); + registerInspector(LegacyType.ENTITY, new DataInspectorVillagers()); + registerInspector(LegacyType.ITEM_INSTANCE, new DataInspectorBlockEntity()); + registerInspector(LegacyType.ITEM_INSTANCE, new DataInspectorEntity()); + registerInspector(LegacyType.LEVEL, new DataInspectorLevelPlayer()); + registerInspector(LegacyType.PLAYER, new DataInspectorPlayer()); + registerInspector(LegacyType.PLAYER, new DataInspectorPlayerVehicle()); + registerInspector(LegacyType.STRUCTURE, new DataInspectorStructure()); + } + + private void registerConverters() { + registerConverter(LegacyType.ENTITY, new DataConverterEquipment()); + registerConverter(LegacyType.BLOCK_ENTITY, new DataConverterSignText()); + registerConverter(LegacyType.ITEM_INSTANCE, new DataConverterMaterialId()); + registerConverter(LegacyType.ITEM_INSTANCE, new DataConverterPotionId()); + registerConverter(LegacyType.ITEM_INSTANCE, new DataConverterSpawnEgg()); + registerConverter(LegacyType.ENTITY, new DataConverterMinecart()); + registerConverter(LegacyType.BLOCK_ENTITY, new DataConverterMobSpawner()); + registerConverter(LegacyType.ENTITY, new DataConverterUUID()); + registerConverter(LegacyType.ENTITY, new DataConverterHealth()); + registerConverter(LegacyType.ENTITY, new DataConverterSaddle()); + registerConverter(LegacyType.ENTITY, new DataConverterHanging()); + registerConverter(LegacyType.ENTITY, new DataConverterDropChances()); + registerConverter(LegacyType.ENTITY, new DataConverterRiding()); + registerConverter(LegacyType.ENTITY, new DataConverterArmorStand()); + registerConverter(LegacyType.ITEM_INSTANCE, new DataConverterBook()); + registerConverter(LegacyType.ITEM_INSTANCE, new DataConverterCookedFish()); + registerConverter(LegacyType.ENTITY, new DataConverterZombie()); + registerConverter(LegacyType.OPTIONS, new DataConverterVBO()); + registerConverter(LegacyType.ENTITY, new DataConverterGuardian()); + registerConverter(LegacyType.ENTITY, new DataConverterSkeleton()); + registerConverter(LegacyType.ENTITY, new DataConverterZombieType()); + registerConverter(LegacyType.ENTITY, new DataConverterHorse()); + registerConverter(LegacyType.BLOCK_ENTITY, new DataConverterTileEntity()); + registerConverter(LegacyType.ENTITY, new DataConverterEntity()); + registerConverter(LegacyType.ITEM_INSTANCE, new DataConverterBanner()); + registerConverter(LegacyType.ITEM_INSTANCE, new DataConverterPotionWater()); + registerConverter(LegacyType.ENTITY, new DataConverterShulker()); + registerConverter(LegacyType.ITEM_INSTANCE, new DataConverterShulkerBoxItem()); + registerConverter(LegacyType.BLOCK_ENTITY, new DataConverterShulkerBoxBlock()); + registerConverter(LegacyType.OPTIONS, new DataConverterLang()); + registerConverter(LegacyType.ITEM_INSTANCE, new DataConverterTotem()); + registerConverter(LegacyType.CHUNK, new DataConverterBedBlock()); + registerConverter(LegacyType.ITEM_INSTANCE, new DataConverterBedItem()); + } + + private void registerEntityItemList(String type, String... keys) { + registerInspector(LegacyType.ENTITY, new DataInspectorItemList(type, keys)); + } + + private void registerEntityItemSingle(String type, String key) { + registerInspector(LegacyType.ENTITY, new DataInspectorItem(type, key)); + } + + private void registerEntityItemListEquipment(String type) { + registerEntityItemList(type, "ArmorItems", "HandItems"); + } + private static final Map OLD_ID_TO_KEY_MAP = new HashMap<>(); + + static { + final Map map = OLD_ID_TO_KEY_MAP; + map.put("EntityItem", new MinecraftKey("item")); + map.put("EntityExperienceOrb", new MinecraftKey("xp_orb")); + map.put("EntityAreaEffectCloud", new MinecraftKey("area_effect_cloud")); + map.put("EntityGuardianElder", new MinecraftKey("elder_guardian")); + map.put("EntitySkeletonWither", new MinecraftKey("wither_skeleton")); + map.put("EntitySkeletonStray", new MinecraftKey("stray")); + map.put("EntityEgg", new MinecraftKey("egg")); + map.put("EntityLeash", new MinecraftKey("leash_knot")); + map.put("EntityPainting", new MinecraftKey("painting")); + map.put("EntityTippedArrow", new MinecraftKey("arrow")); + map.put("EntitySnowball", new MinecraftKey("snowball")); + map.put("EntityLargeFireball", new MinecraftKey("fireball")); + map.put("EntitySmallFireball", new MinecraftKey("small_fireball")); + map.put("EntityEnderPearl", new MinecraftKey("ender_pearl")); + map.put("EntityEnderSignal", new MinecraftKey("eye_of_ender_signal")); + map.put("EntityPotion", new MinecraftKey("potion")); + map.put("EntityThrownExpBottle", new MinecraftKey("xp_bottle")); + map.put("EntityItemFrame", new MinecraftKey("item_frame")); + map.put("EntityWitherSkull", new MinecraftKey("wither_skull")); + map.put("EntityTNTPrimed", new MinecraftKey("tnt")); + map.put("EntityFallingBlock", new MinecraftKey("falling_block")); + map.put("EntityFireworks", new MinecraftKey("fireworks_rocket")); + map.put("EntityZombieHusk", new MinecraftKey("husk")); + map.put("EntitySpectralArrow", new MinecraftKey("spectral_arrow")); + map.put("EntityShulkerBullet", new MinecraftKey("shulker_bullet")); + map.put("EntityDragonFireball", new MinecraftKey("dragon_fireball")); + map.put("EntityZombieVillager", new MinecraftKey("zombie_villager")); + map.put("EntityHorseSkeleton", new MinecraftKey("skeleton_horse")); + map.put("EntityHorseZombie", new MinecraftKey("zombie_horse")); + map.put("EntityArmorStand", new MinecraftKey("armor_stand")); + map.put("EntityHorseDonkey", new MinecraftKey("donkey")); + map.put("EntityHorseMule", new MinecraftKey("mule")); + map.put("EntityEvokerFangs", new MinecraftKey("evocation_fangs")); + map.put("EntityEvoker", new MinecraftKey("evocation_illager")); + map.put("EntityVex", new MinecraftKey("vex")); + map.put("EntityVindicator", new MinecraftKey("vindication_illager")); + map.put("EntityIllagerIllusioner", new MinecraftKey("illusion_illager")); + map.put("EntityMinecartCommandBlock", new MinecraftKey("commandblock_minecart")); + map.put("EntityBoat", new MinecraftKey("boat")); + map.put("EntityMinecartRideable", new MinecraftKey("minecart")); + map.put("EntityMinecartChest", new MinecraftKey("chest_minecart")); + map.put("EntityMinecartFurnace", new MinecraftKey("furnace_minecart")); + map.put("EntityMinecartTNT", new MinecraftKey("tnt_minecart")); + map.put("EntityMinecartHopper", new MinecraftKey("hopper_minecart")); + map.put("EntityMinecartMobSpawner", new MinecraftKey("spawner_minecart")); + map.put("EntityCreeper", new MinecraftKey("creeper")); + map.put("EntitySkeleton", new MinecraftKey("skeleton")); + map.put("EntitySpider", new MinecraftKey("spider")); + map.put("EntityGiantZombie", new MinecraftKey("giant")); + map.put("EntityZombie", new MinecraftKey("zombie")); + map.put("EntitySlime", new MinecraftKey("slime")); + map.put("EntityGhast", new MinecraftKey("ghast")); + map.put("EntityPigZombie", new MinecraftKey("zombie_pigman")); + map.put("EntityEnderman", new MinecraftKey("enderman")); + map.put("EntityCaveSpider", new MinecraftKey("cave_spider")); + map.put("EntitySilverfish", new MinecraftKey("silverfish")); + map.put("EntityBlaze", new MinecraftKey("blaze")); + map.put("EntityMagmaCube", new MinecraftKey("magma_cube")); + map.put("EntityEnderDragon", new MinecraftKey("ender_dragon")); + map.put("EntityWither", new MinecraftKey("wither")); + map.put("EntityBat", new MinecraftKey("bat")); + map.put("EntityWitch", new MinecraftKey("witch")); + map.put("EntityEndermite", new MinecraftKey("endermite")); + map.put("EntityGuardian", new MinecraftKey("guardian")); + map.put("EntityShulker", new MinecraftKey("shulker")); + map.put("EntityPig", new MinecraftKey("pig")); + map.put("EntitySheep", new MinecraftKey("sheep")); + map.put("EntityCow", new MinecraftKey("cow")); + map.put("EntityChicken", new MinecraftKey("chicken")); + map.put("EntitySquid", new MinecraftKey("squid")); + map.put("EntityWolf", new MinecraftKey("wolf")); + map.put("EntityMushroomCow", new MinecraftKey("mooshroom")); + map.put("EntitySnowman", new MinecraftKey("snowman")); + map.put("EntityOcelot", new MinecraftKey("ocelot")); + map.put("EntityIronGolem", new MinecraftKey("villager_golem")); + map.put("EntityHorse", new MinecraftKey("horse")); + map.put("EntityRabbit", new MinecraftKey("rabbit")); + map.put("EntityPolarBear", new MinecraftKey("polar_bear")); + map.put("EntityLlama", new MinecraftKey("llama")); + map.put("EntityLlamaSpit", new MinecraftKey("llama_spit")); + map.put("EntityParrot", new MinecraftKey("parrot")); + map.put("EntityVillager", new MinecraftKey("villager")); + map.put("EntityEnderCrystal", new MinecraftKey("ender_crystal")); + map.put("TileEntityFurnace", new MinecraftKey("furnace")); + map.put("TileEntityChest", new MinecraftKey("chest")); + map.put("TileEntityEnderChest", new MinecraftKey("ender_chest")); + map.put("TileEntityRecordPlayer", new MinecraftKey("jukebox")); + map.put("TileEntityDispenser", new MinecraftKey("dispenser")); + map.put("TileEntityDropper", new MinecraftKey("dropper")); + map.put("TileEntitySign", new MinecraftKey("sign")); + map.put("TileEntityMobSpawner", new MinecraftKey("mob_spawner")); + map.put("TileEntityNote", new MinecraftKey("noteblock")); + map.put("TileEntityPiston", new MinecraftKey("piston")); + map.put("TileEntityBrewingStand", new MinecraftKey("brewing_stand")); + map.put("TileEntityEnchantTable", new MinecraftKey("enchanting_table")); + map.put("TileEntityEnderPortal", new MinecraftKey("end_portal")); + map.put("TileEntityBeacon", new MinecraftKey("beacon")); + map.put("TileEntitySkull", new MinecraftKey("skull")); + map.put("TileEntityLightDetector", new MinecraftKey("daylight_detector")); + map.put("TileEntityHopper", new MinecraftKey("hopper")); + map.put("TileEntityComparator", new MinecraftKey("comparator")); + map.put("TileEntityFlowerPot", new MinecraftKey("flower_pot")); + map.put("TileEntityBanner", new MinecraftKey("banner")); + map.put("TileEntityStructure", new MinecraftKey("structure_block")); + map.put("TileEntityEndGateway", new MinecraftKey("end_gateway")); + map.put("TileEntityCommand", new MinecraftKey("command_block")); + map.put("TileEntityShulkerBox", new MinecraftKey("shulker_box")); + map.put("TileEntityBed", new MinecraftKey("bed")); + } + + private static MinecraftKey getKey(String type) { + final MinecraftKey key = OLD_ID_TO_KEY_MAP.get(type); + if (key == null) { + throw new IllegalArgumentException("Unknown mapping for " + type); + } + return key; + } + + private static void convertCompound(LegacyType type, NBTTagCompound cmp, String key, int sourceVer, int targetVer) { + cmp.set(key, convert(type, cmp.getCompound(key), sourceVer, targetVer)); + } + + private static void convertItem(NBTTagCompound nbttagcompound, String key, int sourceVer, int targetVer) { + if (nbttagcompound.hasKeyOfType(key, 10)) { + convertCompound(LegacyType.ITEM_INSTANCE, nbttagcompound, key, sourceVer, targetVer); + } + } + + private static void convertItems(NBTTagCompound nbttagcompound, String key, int sourceVer, int targetVer) { + if (nbttagcompound.hasKeyOfType(key, 9)) { + NBTTagList nbttaglist = nbttagcompound.getList(key, 10); + + for (int j = 0; j < nbttaglist.size(); ++j) { + nbttaglist.set(j, convert(LegacyType.ITEM_INSTANCE, nbttaglist.getCompound(j), sourceVer, targetVer)); + } + } + + } + + private static class DataConverterEquipment implements DataConverter { + + DataConverterEquipment() {} + + public int getDataVersion() { + return 100; + } + + public NBTTagCompound convert(NBTTagCompound cmp) { + NBTTagList nbttaglist = cmp.getList("Equipment", 10); + NBTTagList nbttaglist1; + + if (!nbttaglist.isEmpty() && !cmp.hasKeyOfType("HandItems", 10)) { + nbttaglist1 = new NBTTagList(); + nbttaglist1.add(nbttaglist.get(0)); + nbttaglist1.add(new NBTTagCompound()); + cmp.set("HandItems", nbttaglist1); + } + + if (nbttaglist.size() > 1 && !cmp.hasKeyOfType("ArmorItem", 10)) { + nbttaglist1 = new NBTTagList(); + nbttaglist1.add(nbttaglist.get(1)); + nbttaglist1.add(nbttaglist.get(2)); + nbttaglist1.add(nbttaglist.get(3)); + nbttaglist1.add(nbttaglist.get(4)); + cmp.set("ArmorItems", nbttaglist1); + } + + cmp.remove("Equipment"); + if (cmp.hasKeyOfType("DropChances", 9)) { + nbttaglist1 = cmp.getList("DropChances", 5); + NBTTagList nbttaglist2; + + if (!cmp.hasKeyOfType("HandDropChances", 10)) { + nbttaglist2 = new NBTTagList(); + nbttaglist2.add(new NBTTagFloat(nbttaglist1.i(0))); + nbttaglist2.add(new NBTTagFloat(0.0F)); + cmp.set("HandDropChances", nbttaglist2); + } + + if (!cmp.hasKeyOfType("ArmorDropChances", 10)) { + nbttaglist2 = new NBTTagList(); + nbttaglist2.add(new NBTTagFloat(nbttaglist1.i(1))); + nbttaglist2.add(new NBTTagFloat(nbttaglist1.i(2))); + nbttaglist2.add(new NBTTagFloat(nbttaglist1.i(3))); + nbttaglist2.add(new NBTTagFloat(nbttaglist1.i(4))); + cmp.set("ArmorDropChances", nbttaglist2); + } + + cmp.remove("DropChances"); + } + + return cmp; + } + } + + private static class DataInspectorBlockEntity implements DataInspector { + + private static final Map b = Maps.newHashMap(); + private static final Map c = Maps.newHashMap(); + + DataInspectorBlockEntity() {} + + @Nullable + private static String convertEntityId(int i, String s) { + String key = new MinecraftKey(s).toString(); + if (i < 515 && DataInspectorBlockEntity.b.containsKey(key)) { + return DataInspectorBlockEntity.b.get(key); + } else { + return DataInspectorBlockEntity.c.get(key); + } + } + + public NBTTagCompound inspect(NBTTagCompound cmp, int sourceVer, int targetVer) { + if (!cmp.hasKeyOfType("tag", 10)) { + return cmp; + } else { + NBTTagCompound nbttagcompound1 = cmp.getCompound("tag"); + + if (nbttagcompound1.hasKeyOfType("BlockEntityTag", 10)) { + NBTTagCompound nbttagcompound2 = nbttagcompound1.getCompound("BlockEntityTag"); + String s = cmp.getString("id"); + String s1 = convertEntityId(sourceVer, s); + boolean flag; + + if (s1 == null) { + // CraftBukkit - Remove unnecessary warning (occurs when deserializing a Shulker Box item) + // DataInspectorBlockEntity.a.warn("Unable to resolve BlockEntity for ItemInstance: {}", s); + flag = false; + } else { + flag = !nbttagcompound2.hasKey("id"); + nbttagcompound2.setString("id", s1); + } + + convert(LegacyType.BLOCK_ENTITY, nbttagcompound2, sourceVer, targetVer); + if (flag) { + nbttagcompound2.remove("id"); + } + } + + return cmp; + } + } + + static { + Map map = DataInspectorBlockEntity.b; + + map.put("minecraft:furnace", "Furnace"); + map.put("minecraft:lit_furnace", "Furnace"); + map.put("minecraft:chest", "Chest"); + map.put("minecraft:trapped_chest", "Chest"); + map.put("minecraft:ender_chest", "EnderChest"); + map.put("minecraft:jukebox", "RecordPlayer"); + map.put("minecraft:dispenser", "Trap"); + map.put("minecraft:dropper", "Dropper"); + map.put("minecraft:sign", "Sign"); + map.put("minecraft:mob_spawner", "MobSpawner"); + map.put("minecraft:noteblock", "Music"); + map.put("minecraft:brewing_stand", "Cauldron"); + map.put("minecraft:enhanting_table", "EnchantTable"); + map.put("minecraft:command_block", "CommandBlock"); + map.put("minecraft:beacon", "Beacon"); + map.put("minecraft:skull", "Skull"); + map.put("minecraft:daylight_detector", "DLDetector"); + map.put("minecraft:hopper", "Hopper"); + map.put("minecraft:banner", "Banner"); + map.put("minecraft:flower_pot", "FlowerPot"); + map.put("minecraft:repeating_command_block", "CommandBlock"); + map.put("minecraft:chain_command_block", "CommandBlock"); + map.put("minecraft:standing_sign", "Sign"); + map.put("minecraft:wall_sign", "Sign"); + map.put("minecraft:piston_head", "Piston"); + map.put("minecraft:daylight_detector_inverted", "DLDetector"); + map.put("minecraft:unpowered_comparator", "Comparator"); + map.put("minecraft:powered_comparator", "Comparator"); + map.put("minecraft:wall_banner", "Banner"); + map.put("minecraft:standing_banner", "Banner"); + map.put("minecraft:structure_block", "Structure"); + map.put("minecraft:end_portal", "Airportal"); + map.put("minecraft:end_gateway", "EndGateway"); + map.put("minecraft:shield", "Shield"); + map = DataInspectorBlockEntity.c; + map.put("minecraft:furnace", "minecraft:furnace"); + map.put("minecraft:lit_furnace", "minecraft:furnace"); + map.put("minecraft:chest", "minecraft:chest"); + map.put("minecraft:trapped_chest", "minecraft:chest"); + map.put("minecraft:ender_chest", "minecraft:enderchest"); + map.put("minecraft:jukebox", "minecraft:jukebox"); + map.put("minecraft:dispenser", "minecraft:dispenser"); + map.put("minecraft:dropper", "minecraft:dropper"); + map.put("minecraft:sign", "minecraft:sign"); + map.put("minecraft:mob_spawner", "minecraft:mob_spawner"); + map.put("minecraft:noteblock", "minecraft:noteblock"); + map.put("minecraft:brewing_stand", "minecraft:brewing_stand"); + map.put("minecraft:enhanting_table", "minecraft:enchanting_table"); + map.put("minecraft:command_block", "minecraft:command_block"); + map.put("minecraft:beacon", "minecraft:beacon"); + map.put("minecraft:skull", "minecraft:skull"); + map.put("minecraft:daylight_detector", "minecraft:daylight_detector"); + map.put("minecraft:hopper", "minecraft:hopper"); + map.put("minecraft:banner", "minecraft:banner"); + map.put("minecraft:flower_pot", "minecraft:flower_pot"); + map.put("minecraft:repeating_command_block", "minecraft:command_block"); + map.put("minecraft:chain_command_block", "minecraft:command_block"); + map.put("minecraft:shulker_box", "minecraft:shulker_box"); + map.put("minecraft:white_shulker_box", "minecraft:shulker_box"); + map.put("minecraft:orange_shulker_box", "minecraft:shulker_box"); + map.put("minecraft:magenta_shulker_box", "minecraft:shulker_box"); + map.put("minecraft:light_blue_shulker_box", "minecraft:shulker_box"); + map.put("minecraft:yellow_shulker_box", "minecraft:shulker_box"); + map.put("minecraft:lime_shulker_box", "minecraft:shulker_box"); + map.put("minecraft:pink_shulker_box", "minecraft:shulker_box"); + map.put("minecraft:gray_shulker_box", "minecraft:shulker_box"); + map.put("minecraft:silver_shulker_box", "minecraft:shulker_box"); + map.put("minecraft:cyan_shulker_box", "minecraft:shulker_box"); + map.put("minecraft:purple_shulker_box", "minecraft:shulker_box"); + map.put("minecraft:blue_shulker_box", "minecraft:shulker_box"); + map.put("minecraft:brown_shulker_box", "minecraft:shulker_box"); + map.put("minecraft:green_shulker_box", "minecraft:shulker_box"); + map.put("minecraft:red_shulker_box", "minecraft:shulker_box"); + map.put("minecraft:black_shulker_box", "minecraft:shulker_box"); + map.put("minecraft:bed", "minecraft:bed"); + map.put("minecraft:standing_sign", "minecraft:sign"); + map.put("minecraft:wall_sign", "minecraft:sign"); + map.put("minecraft:piston_head", "minecraft:piston"); + map.put("minecraft:daylight_detector_inverted", "minecraft:daylight_detector"); + map.put("minecraft:unpowered_comparator", "minecraft:comparator"); + map.put("minecraft:powered_comparator", "minecraft:comparator"); + map.put("minecraft:wall_banner", "minecraft:banner"); + map.put("minecraft:standing_banner", "minecraft:banner"); + map.put("minecraft:structure_block", "minecraft:structure_block"); + map.put("minecraft:end_portal", "minecraft:end_portal"); + map.put("minecraft:end_gateway", "minecraft:end_gateway"); + map.put("minecraft:shield", "minecraft:shield"); + } + } + + private static class DataInspectorEntity implements DataInspector { + + private static final Logger a = LogManager.getLogger(DataConverters_1_14_R4.class); + + DataInspectorEntity() {} + + public NBTTagCompound inspect(NBTTagCompound cmp, int sourceVer, int targetVer) { + NBTTagCompound nbttagcompound1 = cmp.getCompound("tag"); + + if (nbttagcompound1.hasKeyOfType("EntityTag", 10)) { + NBTTagCompound nbttagcompound2 = nbttagcompound1.getCompound("EntityTag"); + String s = cmp.getString("id"); + String s1; + + if ("minecraft:armor_stand".equals(s)) { + s1 = sourceVer < 515 ? "ArmorStand" : "minecraft:armor_stand"; + } else { + if (!"minecraft:spawn_egg".equals(s)) { + return cmp; + } + + s1 = nbttagcompound2.getString("id"); + } + + boolean flag; + + if (s1 == null) { + DataInspectorEntity.a.warn("Unable to resolve Entity for ItemInstance: {}", s); + flag = false; + } else { + flag = !nbttagcompound2.hasKeyOfType("id", 8); + nbttagcompound2.setString("id", s1); + } + + convert(LegacyType.ENTITY, nbttagcompound2, sourceVer, targetVer); + if (flag) { + nbttagcompound2.remove("id"); + } + } + + return cmp; + } + } + + + private abstract static class DataInspectorTagged implements DataInspector { + + private final MinecraftKey key; + + DataInspectorTagged(String type) { + this.key = getKey(type); + } + + public NBTTagCompound inspect(NBTTagCompound cmp, int sourceVer, int targetVer) { + if (this.key.equals(new MinecraftKey(cmp.getString("id")))) { + cmp = this.inspectChecked(cmp, sourceVer, targetVer); + } + + return cmp; + } + + abstract NBTTagCompound inspectChecked(NBTTagCompound nbttagcompound, int sourceVer, int targetVer); + } + + private static class DataInspectorItemList extends DataInspectorTagged { + + private final String[] keys; + + DataInspectorItemList(String oclass, String... astring) { + super(oclass); + this.keys = astring; + } + + NBTTagCompound inspectChecked(NBTTagCompound nbttagcompound, int sourceVer, int targetVer) { + for (String s : this.keys) { + DataConverters_1_14_R4.convertItems(nbttagcompound, s, sourceVer, targetVer); + } + + return nbttagcompound; + } + } + private static class DataInspectorItem extends DataInspectorTagged { + + private final String[] keys; + + DataInspectorItem(String oclass, String... astring) { + super(oclass); + this.keys = astring; + } + + NBTTagCompound inspectChecked(NBTTagCompound nbttagcompound, int sourceVer, int targetVer) { + for (String key : this.keys) { + DataConverters_1_14_R4.convertItem(nbttagcompound, key, sourceVer, targetVer); + } + + return nbttagcompound; + } + } + + private static class DataConverterMaterialId implements DataConverter { + + private static final String[] materials = new String[2268]; + + DataConverterMaterialId() {} + + public int getDataVersion() { + return 102; + } + + public NBTTagCompound convert(NBTTagCompound cmp) { + if (cmp.hasKeyOfType("id", 99)) { + short short0 = cmp.getShort("id"); + + if (short0 > 0 && short0 < materials.length && materials[short0] != null) { + cmp.setString("id", materials[short0]); + } + } + + return cmp; + } + + static { + materials[1] = "minecraft:stone"; + materials[2] = "minecraft:grass"; + materials[3] = "minecraft:dirt"; + materials[4] = "minecraft:cobblestone"; + materials[5] = "minecraft:planks"; + materials[6] = "minecraft:sapling"; + materials[7] = "minecraft:bedrock"; + materials[8] = "minecraft:flowing_water"; + materials[9] = "minecraft:water"; + materials[10] = "minecraft:flowing_lava"; + materials[11] = "minecraft:lava"; + materials[12] = "minecraft:sand"; + materials[13] = "minecraft:gravel"; + materials[14] = "minecraft:gold_ore"; + materials[15] = "minecraft:iron_ore"; + materials[16] = "minecraft:coal_ore"; + materials[17] = "minecraft:log"; + materials[18] = "minecraft:leaves"; + materials[19] = "minecraft:sponge"; + materials[20] = "minecraft:glass"; + materials[21] = "minecraft:lapis_ore"; + materials[22] = "minecraft:lapis_block"; + materials[23] = "minecraft:dispenser"; + materials[24] = "minecraft:sandstone"; + materials[25] = "minecraft:noteblock"; + materials[27] = "minecraft:golden_rail"; + materials[28] = "minecraft:detector_rail"; + materials[29] = "minecraft:sticky_piston"; + materials[30] = "minecraft:web"; + materials[31] = "minecraft:tallgrass"; + materials[32] = "minecraft:deadbush"; + materials[33] = "minecraft:piston"; + materials[35] = "minecraft:wool"; + materials[37] = "minecraft:yellow_flower"; + materials[38] = "minecraft:red_flower"; + materials[39] = "minecraft:brown_mushroom"; + materials[40] = "minecraft:red_mushroom"; + materials[41] = "minecraft:gold_block"; + materials[42] = "minecraft:iron_block"; + materials[43] = "minecraft:double_stone_slab"; + materials[44] = "minecraft:stone_slab"; + materials[45] = "minecraft:brick_block"; + materials[46] = "minecraft:tnt"; + materials[47] = "minecraft:bookshelf"; + materials[48] = "minecraft:mossy_cobblestone"; + materials[49] = "minecraft:obsidian"; + materials[50] = "minecraft:torch"; + materials[51] = "minecraft:fire"; + materials[52] = "minecraft:mob_spawner"; + materials[53] = "minecraft:oak_stairs"; + materials[54] = "minecraft:chest"; + materials[56] = "minecraft:diamond_ore"; + materials[57] = "minecraft:diamond_block"; + materials[58] = "minecraft:crafting_table"; + materials[60] = "minecraft:farmland"; + materials[61] = "minecraft:furnace"; + materials[62] = "minecraft:lit_furnace"; + materials[65] = "minecraft:ladder"; + materials[66] = "minecraft:rail"; + materials[67] = "minecraft:stone_stairs"; + materials[69] = "minecraft:lever"; + materials[70] = "minecraft:stone_pressure_plate"; + materials[72] = "minecraft:wooden_pressure_plate"; + materials[73] = "minecraft:redstone_ore"; + materials[76] = "minecraft:redstone_torch"; + materials[77] = "minecraft:stone_button"; + materials[78] = "minecraft:snow_layer"; + materials[79] = "minecraft:ice"; + materials[80] = "minecraft:snow"; + materials[81] = "minecraft:cactus"; + materials[82] = "minecraft:clay"; + materials[84] = "minecraft:jukebox"; + materials[85] = "minecraft:fence"; + materials[86] = "minecraft:pumpkin"; + materials[87] = "minecraft:netherrack"; + materials[88] = "minecraft:soul_sand"; + materials[89] = "minecraft:glowstone"; + materials[90] = "minecraft:portal"; + materials[91] = "minecraft:lit_pumpkin"; + materials[95] = "minecraft:stained_glass"; + materials[96] = "minecraft:trapdoor"; + materials[97] = "minecraft:monster_egg"; + materials[98] = "minecraft:stonebrick"; + materials[99] = "minecraft:brown_mushroom_block"; + materials[100] = "minecraft:red_mushroom_block"; + materials[101] = "minecraft:iron_bars"; + materials[102] = "minecraft:glass_pane"; + materials[103] = "minecraft:melon_block"; + materials[106] = "minecraft:vine"; + materials[107] = "minecraft:fence_gate"; + materials[108] = "minecraft:brick_stairs"; + materials[109] = "minecraft:stone_brick_stairs"; + materials[110] = "minecraft:mycelium"; + materials[111] = "minecraft:waterlily"; + materials[112] = "minecraft:nether_brick"; + materials[113] = "minecraft:nether_brick_fence"; + materials[114] = "minecraft:nether_brick_stairs"; + materials[116] = "minecraft:enchanting_table"; + materials[119] = "minecraft:end_portal"; + materials[120] = "minecraft:end_portal_frame"; + materials[121] = "minecraft:end_stone"; + materials[122] = "minecraft:dragon_egg"; + materials[123] = "minecraft:redstone_lamp"; + materials[125] = "minecraft:double_wooden_slab"; + materials[126] = "minecraft:wooden_slab"; + materials[127] = "minecraft:cocoa"; + materials[128] = "minecraft:sandstone_stairs"; + materials[129] = "minecraft:emerald_ore"; + materials[130] = "minecraft:ender_chest"; + materials[131] = "minecraft:tripwire_hook"; + materials[133] = "minecraft:emerald_block"; + materials[134] = "minecraft:spruce_stairs"; + materials[135] = "minecraft:birch_stairs"; + materials[136] = "minecraft:jungle_stairs"; + materials[137] = "minecraft:command_block"; + materials[138] = "minecraft:beacon"; + materials[139] = "minecraft:cobblestone_wall"; + materials[141] = "minecraft:carrots"; + materials[142] = "minecraft:potatoes"; + materials[143] = "minecraft:wooden_button"; + materials[145] = "minecraft:anvil"; + materials[146] = "minecraft:trapped_chest"; + materials[147] = "minecraft:light_weighted_pressure_plate"; + materials[148] = "minecraft:heavy_weighted_pressure_plate"; + materials[151] = "minecraft:daylight_detector"; + materials[152] = "minecraft:redstone_block"; + materials[153] = "minecraft:quartz_ore"; + materials[154] = "minecraft:hopper"; + materials[155] = "minecraft:quartz_block"; + materials[156] = "minecraft:quartz_stairs"; + materials[157] = "minecraft:activator_rail"; + materials[158] = "minecraft:dropper"; + materials[159] = "minecraft:stained_hardened_clay"; + materials[160] = "minecraft:stained_glass_pane"; + materials[161] = "minecraft:leaves2"; + materials[162] = "minecraft:log2"; + materials[163] = "minecraft:acacia_stairs"; + materials[164] = "minecraft:dark_oak_stairs"; + materials[170] = "minecraft:hay_block"; + materials[171] = "minecraft:carpet"; + materials[172] = "minecraft:hardened_clay"; + materials[173] = "minecraft:coal_block"; + materials[174] = "minecraft:packed_ice"; + materials[175] = "minecraft:double_plant"; + materials[256] = "minecraft:iron_shovel"; + materials[257] = "minecraft:iron_pickaxe"; + materials[258] = "minecraft:iron_axe"; + materials[259] = "minecraft:flint_and_steel"; + materials[260] = "minecraft:apple"; + materials[261] = "minecraft:bow"; + materials[262] = "minecraft:arrow"; + materials[263] = "minecraft:coal"; + materials[264] = "minecraft:diamond"; + materials[265] = "minecraft:iron_ingot"; + materials[266] = "minecraft:gold_ingot"; + materials[267] = "minecraft:iron_sword"; + materials[268] = "minecraft:wooden_sword"; + materials[269] = "minecraft:wooden_shovel"; + materials[270] = "minecraft:wooden_pickaxe"; + materials[271] = "minecraft:wooden_axe"; + materials[272] = "minecraft:stone_sword"; + materials[273] = "minecraft:stone_shovel"; + materials[274] = "minecraft:stone_pickaxe"; + materials[275] = "minecraft:stone_axe"; + materials[276] = "minecraft:diamond_sword"; + materials[277] = "minecraft:diamond_shovel"; + materials[278] = "minecraft:diamond_pickaxe"; + materials[279] = "minecraft:diamond_axe"; + materials[280] = "minecraft:stick"; + materials[281] = "minecraft:bowl"; + materials[282] = "minecraft:mushroom_stew"; + materials[283] = "minecraft:golden_sword"; + materials[284] = "minecraft:golden_shovel"; + materials[285] = "minecraft:golden_pickaxe"; + materials[286] = "minecraft:golden_axe"; + materials[287] = "minecraft:string"; + materials[288] = "minecraft:feather"; + materials[289] = "minecraft:gunpowder"; + materials[290] = "minecraft:wooden_hoe"; + materials[291] = "minecraft:stone_hoe"; + materials[292] = "minecraft:iron_hoe"; + materials[293] = "minecraft:diamond_hoe"; + materials[294] = "minecraft:golden_hoe"; + materials[295] = "minecraft:wheat_seeds"; + materials[296] = "minecraft:wheat"; + materials[297] = "minecraft:bread"; + materials[298] = "minecraft:leather_helmet"; + materials[299] = "minecraft:leather_chestplate"; + materials[300] = "minecraft:leather_leggings"; + materials[301] = "minecraft:leather_boots"; + materials[302] = "minecraft:chainmail_helmet"; + materials[303] = "minecraft:chainmail_chestplate"; + materials[304] = "minecraft:chainmail_leggings"; + materials[305] = "minecraft:chainmail_boots"; + materials[306] = "minecraft:iron_helmet"; + materials[307] = "minecraft:iron_chestplate"; + materials[308] = "minecraft:iron_leggings"; + materials[309] = "minecraft:iron_boots"; + materials[310] = "minecraft:diamond_helmet"; + materials[311] = "minecraft:diamond_chestplate"; + materials[312] = "minecraft:diamond_leggings"; + materials[313] = "minecraft:diamond_boots"; + materials[314] = "minecraft:golden_helmet"; + materials[315] = "minecraft:golden_chestplate"; + materials[316] = "minecraft:golden_leggings"; + materials[317] = "minecraft:golden_boots"; + materials[318] = "minecraft:flint"; + materials[319] = "minecraft:porkchop"; + materials[320] = "minecraft:cooked_porkchop"; + materials[321] = "minecraft:painting"; + materials[322] = "minecraft:golden_apple"; + materials[323] = "minecraft:sign"; + materials[324] = "minecraft:wooden_door"; + materials[325] = "minecraft:bucket"; + materials[326] = "minecraft:water_bucket"; + materials[327] = "minecraft:lava_bucket"; + materials[328] = "minecraft:minecart"; + materials[329] = "minecraft:saddle"; + materials[330] = "minecraft:iron_door"; + materials[331] = "minecraft:redstone"; + materials[332] = "minecraft:snowball"; + materials[333] = "minecraft:boat"; + materials[334] = "minecraft:leather"; + materials[335] = "minecraft:milk_bucket"; + materials[336] = "minecraft:brick"; + materials[337] = "minecraft:clay_ball"; + materials[338] = "minecraft:reeds"; + materials[339] = "minecraft:paper"; + materials[340] = "minecraft:book"; + materials[341] = "minecraft:slime_ball"; + materials[342] = "minecraft:chest_minecart"; + materials[343] = "minecraft:furnace_minecart"; + materials[344] = "minecraft:egg"; + materials[345] = "minecraft:compass"; + materials[346] = "minecraft:fishing_rod"; + materials[347] = "minecraft:clock"; + materials[348] = "minecraft:glowstone_dust"; + materials[349] = "minecraft:fish"; + materials[350] = "minecraft:cooked_fish"; // Paper - cooked_fished -> cooked_fish + materials[351] = "minecraft:dye"; + materials[352] = "minecraft:bone"; + materials[353] = "minecraft:sugar"; + materials[354] = "minecraft:cake"; + materials[355] = "minecraft:bed"; + materials[356] = "minecraft:repeater"; + materials[357] = "minecraft:cookie"; + materials[358] = "minecraft:filled_map"; + materials[359] = "minecraft:shears"; + materials[360] = "minecraft:melon"; + materials[361] = "minecraft:pumpkin_seeds"; + materials[362] = "minecraft:melon_seeds"; + materials[363] = "minecraft:beef"; + materials[364] = "minecraft:cooked_beef"; + materials[365] = "minecraft:chicken"; + materials[366] = "minecraft:cooked_chicken"; + materials[367] = "minecraft:rotten_flesh"; + materials[368] = "minecraft:ender_pearl"; + materials[369] = "minecraft:blaze_rod"; + materials[370] = "minecraft:ghast_tear"; + materials[371] = "minecraft:gold_nugget"; + materials[372] = "minecraft:nether_wart"; + materials[373] = "minecraft:potion"; + materials[374] = "minecraft:glass_bottle"; + materials[375] = "minecraft:spider_eye"; + materials[376] = "minecraft:fermented_spider_eye"; + materials[377] = "minecraft:blaze_powder"; + materials[378] = "minecraft:magma_cream"; + materials[379] = "minecraft:brewing_stand"; + materials[380] = "minecraft:cauldron"; + materials[381] = "minecraft:ender_eye"; + materials[382] = "minecraft:speckled_melon"; + materials[383] = "minecraft:spawn_egg"; + materials[384] = "minecraft:experience_bottle"; + materials[385] = "minecraft:fire_charge"; + materials[386] = "minecraft:writable_book"; + materials[387] = "minecraft:written_book"; + materials[388] = "minecraft:emerald"; + materials[389] = "minecraft:item_frame"; + materials[390] = "minecraft:flower_pot"; + materials[391] = "minecraft:carrot"; + materials[392] = "minecraft:potato"; + materials[393] = "minecraft:baked_potato"; + materials[394] = "minecraft:poisonous_potato"; + materials[395] = "minecraft:map"; + materials[396] = "minecraft:golden_carrot"; + materials[397] = "minecraft:skull"; + materials[398] = "minecraft:carrot_on_a_stick"; + materials[399] = "minecraft:nether_star"; + materials[400] = "minecraft:pumpkin_pie"; + materials[401] = "minecraft:fireworks"; + materials[402] = "minecraft:firework_charge"; + materials[403] = "minecraft:enchanted_book"; + materials[404] = "minecraft:comparator"; + materials[405] = "minecraft:netherbrick"; + materials[406] = "minecraft:quartz"; + materials[407] = "minecraft:tnt_minecart"; + materials[408] = "minecraft:hopper_minecart"; + materials[417] = "minecraft:iron_horse_armor"; + materials[418] = "minecraft:golden_horse_armor"; + materials[419] = "minecraft:diamond_horse_armor"; + materials[420] = "minecraft:lead"; + materials[421] = "minecraft:name_tag"; + materials[422] = "minecraft:command_block_minecart"; + materials[2256] = "minecraft:record_13"; + materials[2257] = "minecraft:record_cat"; + materials[2258] = "minecraft:record_blocks"; + materials[2259] = "minecraft:record_chirp"; + materials[2260] = "minecraft:record_far"; + materials[2261] = "minecraft:record_mall"; + materials[2262] = "minecraft:record_mellohi"; + materials[2263] = "minecraft:record_stal"; + materials[2264] = "minecraft:record_strad"; + materials[2265] = "minecraft:record_ward"; + materials[2266] = "minecraft:record_11"; + materials[2267] = "minecraft:record_wait"; + } + } + + private static class DataConverterArmorStand implements DataConverter { + + DataConverterArmorStand() {} + + public int getDataVersion() { + return 147; + } + + public NBTTagCompound convert(NBTTagCompound cmp) { + if ("ArmorStand".equals(cmp.getString("id")) && cmp.getBoolean("Silent") && !cmp.getBoolean("Marker")) { + cmp.remove("Silent"); + } + + return cmp; + } + } + + private static class DataConverterBanner implements DataConverter { + + DataConverterBanner() {} + + public int getDataVersion() { + return 804; + } + + public NBTTagCompound convert(NBTTagCompound cmp) { + if ("minecraft:banner".equals(cmp.getString("id")) && cmp.hasKeyOfType("tag", 10)) { + NBTTagCompound nbttagcompound1 = cmp.getCompound("tag"); + + if (nbttagcompound1.hasKeyOfType("BlockEntityTag", 10)) { + NBTTagCompound nbttagcompound2 = nbttagcompound1.getCompound("BlockEntityTag"); + + if (nbttagcompound2.hasKeyOfType("Base", 99)) { + cmp.setShort("Damage", (short) (nbttagcompound2.getShort("Base") & 15)); + if (nbttagcompound1.hasKeyOfType("display", 10)) { + NBTTagCompound nbttagcompound3 = nbttagcompound1.getCompound("display"); + + if (nbttagcompound3.hasKeyOfType("Lore", 9)) { + NBTTagList nbttaglist = nbttagcompound3.getList("Lore", 8); + + if (nbttaglist.size() == 1 && "(+NBT)".equals(nbttaglist.getString(0))) { + return cmp; + } + } + } + + nbttagcompound2.remove("Base"); + if (nbttagcompound2.isEmpty()) { + nbttagcompound1.remove("BlockEntityTag"); + } + + if (nbttagcompound1.isEmpty()) { + cmp.remove("tag"); + } + } + } + } + + return cmp; + } + } + + private static class DataConverterPotionId implements DataConverter { + + private static final String[] potions = new String[128]; + + DataConverterPotionId() {} + + public int getDataVersion() { + return 102; + } + + public NBTTagCompound convert(NBTTagCompound cmp) { + if ("minecraft:potion".equals(cmp.getString("id"))) { + NBTTagCompound nbttagcompound1 = cmp.getCompound("tag"); + short short0 = cmp.getShort("Damage"); + + if (!nbttagcompound1.hasKeyOfType("Potion", 8)) { + String s = DataConverterPotionId.potions[short0 & 127]; + + nbttagcompound1.setString("Potion", s == null ? "minecraft:water" : s); + cmp.set("tag", nbttagcompound1); + if ((short0 & 16384) == 16384) { + cmp.setString("id", "minecraft:splash_potion"); + } + } + + if (short0 != 0) { + cmp.setShort("Damage", (short) 0); + } + } + + return cmp; + } + + static { + DataConverterPotionId.potions[0] = "minecraft:water"; + DataConverterPotionId.potions[1] = "minecraft:regeneration"; + DataConverterPotionId.potions[2] = "minecraft:swiftness"; + DataConverterPotionId.potions[3] = "minecraft:fire_resistance"; + DataConverterPotionId.potions[4] = "minecraft:poison"; + DataConverterPotionId.potions[5] = "minecraft:healing"; + DataConverterPotionId.potions[6] = "minecraft:night_vision"; + DataConverterPotionId.potions[7] = null; + DataConverterPotionId.potions[8] = "minecraft:weakness"; + DataConverterPotionId.potions[9] = "minecraft:strength"; + DataConverterPotionId.potions[10] = "minecraft:slowness"; + DataConverterPotionId.potions[11] = "minecraft:leaping"; + DataConverterPotionId.potions[12] = "minecraft:harming"; + DataConverterPotionId.potions[13] = "minecraft:water_breathing"; + DataConverterPotionId.potions[14] = "minecraft:invisibility"; + DataConverterPotionId.potions[15] = null; + DataConverterPotionId.potions[16] = "minecraft:awkward"; + DataConverterPotionId.potions[17] = "minecraft:regeneration"; + DataConverterPotionId.potions[18] = "minecraft:swiftness"; + DataConverterPotionId.potions[19] = "minecraft:fire_resistance"; + DataConverterPotionId.potions[20] = "minecraft:poison"; + DataConverterPotionId.potions[21] = "minecraft:healing"; + DataConverterPotionId.potions[22] = "minecraft:night_vision"; + DataConverterPotionId.potions[23] = null; + DataConverterPotionId.potions[24] = "minecraft:weakness"; + DataConverterPotionId.potions[25] = "minecraft:strength"; + DataConverterPotionId.potions[26] = "minecraft:slowness"; + DataConverterPotionId.potions[27] = "minecraft:leaping"; + DataConverterPotionId.potions[28] = "minecraft:harming"; + DataConverterPotionId.potions[29] = "minecraft:water_breathing"; + DataConverterPotionId.potions[30] = "minecraft:invisibility"; + DataConverterPotionId.potions[31] = null; + DataConverterPotionId.potions[32] = "minecraft:thick"; + DataConverterPotionId.potions[33] = "minecraft:strong_regeneration"; + DataConverterPotionId.potions[34] = "minecraft:strong_swiftness"; + DataConverterPotionId.potions[35] = "minecraft:fire_resistance"; + DataConverterPotionId.potions[36] = "minecraft:strong_poison"; + DataConverterPotionId.potions[37] = "minecraft:strong_healing"; + DataConverterPotionId.potions[38] = "minecraft:night_vision"; + DataConverterPotionId.potions[39] = null; + DataConverterPotionId.potions[40] = "minecraft:weakness"; + DataConverterPotionId.potions[41] = "minecraft:strong_strength"; + DataConverterPotionId.potions[42] = "minecraft:slowness"; + DataConverterPotionId.potions[43] = "minecraft:strong_leaping"; + DataConverterPotionId.potions[44] = "minecraft:strong_harming"; + DataConverterPotionId.potions[45] = "minecraft:water_breathing"; + DataConverterPotionId.potions[46] = "minecraft:invisibility"; + DataConverterPotionId.potions[47] = null; + DataConverterPotionId.potions[48] = null; + DataConverterPotionId.potions[49] = "minecraft:strong_regeneration"; + DataConverterPotionId.potions[50] = "minecraft:strong_swiftness"; + DataConverterPotionId.potions[51] = "minecraft:fire_resistance"; + DataConverterPotionId.potions[52] = "minecraft:strong_poison"; + DataConverterPotionId.potions[53] = "minecraft:strong_healing"; + DataConverterPotionId.potions[54] = "minecraft:night_vision"; + DataConverterPotionId.potions[55] = null; + DataConverterPotionId.potions[56] = "minecraft:weakness"; + DataConverterPotionId.potions[57] = "minecraft:strong_strength"; + DataConverterPotionId.potions[58] = "minecraft:slowness"; + DataConverterPotionId.potions[59] = "minecraft:strong_leaping"; + DataConverterPotionId.potions[60] = "minecraft:strong_harming"; + DataConverterPotionId.potions[61] = "minecraft:water_breathing"; + DataConverterPotionId.potions[62] = "minecraft:invisibility"; + DataConverterPotionId.potions[63] = null; + DataConverterPotionId.potions[64] = "minecraft:mundane"; + DataConverterPotionId.potions[65] = "minecraft:long_regeneration"; + DataConverterPotionId.potions[66] = "minecraft:long_swiftness"; + DataConverterPotionId.potions[67] = "minecraft:long_fire_resistance"; + DataConverterPotionId.potions[68] = "minecraft:long_poison"; + DataConverterPotionId.potions[69] = "minecraft:healing"; + DataConverterPotionId.potions[70] = "minecraft:long_night_vision"; + DataConverterPotionId.potions[71] = null; + DataConverterPotionId.potions[72] = "minecraft:long_weakness"; + DataConverterPotionId.potions[73] = "minecraft:long_strength"; + DataConverterPotionId.potions[74] = "minecraft:long_slowness"; + DataConverterPotionId.potions[75] = "minecraft:long_leaping"; + DataConverterPotionId.potions[76] = "minecraft:harming"; + DataConverterPotionId.potions[77] = "minecraft:long_water_breathing"; + DataConverterPotionId.potions[78] = "minecraft:long_invisibility"; + DataConverterPotionId.potions[79] = null; + DataConverterPotionId.potions[80] = "minecraft:awkward"; + DataConverterPotionId.potions[81] = "minecraft:long_regeneration"; + DataConverterPotionId.potions[82] = "minecraft:long_swiftness"; + DataConverterPotionId.potions[83] = "minecraft:long_fire_resistance"; + DataConverterPotionId.potions[84] = "minecraft:long_poison"; + DataConverterPotionId.potions[85] = "minecraft:healing"; + DataConverterPotionId.potions[86] = "minecraft:long_night_vision"; + DataConverterPotionId.potions[87] = null; + DataConverterPotionId.potions[88] = "minecraft:long_weakness"; + DataConverterPotionId.potions[89] = "minecraft:long_strength"; + DataConverterPotionId.potions[90] = "minecraft:long_slowness"; + DataConverterPotionId.potions[91] = "minecraft:long_leaping"; + DataConverterPotionId.potions[92] = "minecraft:harming"; + DataConverterPotionId.potions[93] = "minecraft:long_water_breathing"; + DataConverterPotionId.potions[94] = "minecraft:long_invisibility"; + DataConverterPotionId.potions[95] = null; + DataConverterPotionId.potions[96] = "minecraft:thick"; + DataConverterPotionId.potions[97] = "minecraft:regeneration"; + DataConverterPotionId.potions[98] = "minecraft:swiftness"; + DataConverterPotionId.potions[99] = "minecraft:long_fire_resistance"; + DataConverterPotionId.potions[100] = "minecraft:poison"; + DataConverterPotionId.potions[101] = "minecraft:strong_healing"; + DataConverterPotionId.potions[102] = "minecraft:long_night_vision"; + DataConverterPotionId.potions[103] = null; + DataConverterPotionId.potions[104] = "minecraft:long_weakness"; + DataConverterPotionId.potions[105] = "minecraft:strength"; + DataConverterPotionId.potions[106] = "minecraft:long_slowness"; + DataConverterPotionId.potions[107] = "minecraft:leaping"; + DataConverterPotionId.potions[108] = "minecraft:strong_harming"; + DataConverterPotionId.potions[109] = "minecraft:long_water_breathing"; + DataConverterPotionId.potions[110] = "minecraft:long_invisibility"; + DataConverterPotionId.potions[111] = null; + DataConverterPotionId.potions[112] = null; + DataConverterPotionId.potions[113] = "minecraft:regeneration"; + DataConverterPotionId.potions[114] = "minecraft:swiftness"; + DataConverterPotionId.potions[115] = "minecraft:long_fire_resistance"; + DataConverterPotionId.potions[116] = "minecraft:poison"; + DataConverterPotionId.potions[117] = "minecraft:strong_healing"; + DataConverterPotionId.potions[118] = "minecraft:long_night_vision"; + DataConverterPotionId.potions[119] = null; + DataConverterPotionId.potions[120] = "minecraft:long_weakness"; + DataConverterPotionId.potions[121] = "minecraft:strength"; + DataConverterPotionId.potions[122] = "minecraft:long_slowness"; + DataConverterPotionId.potions[123] = "minecraft:leaping"; + DataConverterPotionId.potions[124] = "minecraft:strong_harming"; + DataConverterPotionId.potions[125] = "minecraft:long_water_breathing"; + DataConverterPotionId.potions[126] = "minecraft:long_invisibility"; + DataConverterPotionId.potions[127] = null; + } + } + + private static class DataConverterSpawnEgg implements DataConverter { + + private static final String[] eggs = new String[256]; + + DataConverterSpawnEgg() {} + + public int getDataVersion() { + return 105; + } + + public NBTTagCompound convert(NBTTagCompound cmp) { + if ("minecraft:spawn_egg".equals(cmp.getString("id"))) { + NBTTagCompound nbttagcompound1 = cmp.getCompound("tag"); + NBTTagCompound nbttagcompound2 = nbttagcompound1.getCompound("EntityTag"); + short short0 = cmp.getShort("Damage"); + + if (!nbttagcompound2.hasKeyOfType("id", 8)) { + String s = DataConverterSpawnEgg.eggs[short0 & 255]; + + if (s != null) { + nbttagcompound2.setString("id", s); + nbttagcompound1.set("EntityTag", nbttagcompound2); + cmp.set("tag", nbttagcompound1); + } + } + + if (short0 != 0) { + cmp.setShort("Damage", (short) 0); + } + } + + return cmp; + } + + static { + + DataConverterSpawnEgg.eggs[1] = "Item"; + DataConverterSpawnEgg.eggs[2] = "XPOrb"; + DataConverterSpawnEgg.eggs[7] = "ThrownEgg"; + DataConverterSpawnEgg.eggs[8] = "LeashKnot"; + DataConverterSpawnEgg.eggs[9] = "Painting"; + DataConverterSpawnEgg.eggs[10] = "Arrow"; + DataConverterSpawnEgg.eggs[11] = "Snowball"; + DataConverterSpawnEgg.eggs[12] = "Fireball"; + DataConverterSpawnEgg.eggs[13] = "SmallFireball"; + DataConverterSpawnEgg.eggs[14] = "ThrownEnderpearl"; + DataConverterSpawnEgg.eggs[15] = "EyeOfEnderSignal"; + DataConverterSpawnEgg.eggs[16] = "ThrownPotion"; + DataConverterSpawnEgg.eggs[17] = "ThrownExpBottle"; + DataConverterSpawnEgg.eggs[18] = "ItemFrame"; + DataConverterSpawnEgg.eggs[19] = "WitherSkull"; + DataConverterSpawnEgg.eggs[20] = "PrimedTnt"; + DataConverterSpawnEgg.eggs[21] = "FallingSand"; + DataConverterSpawnEgg.eggs[22] = "FireworksRocketEntity"; + DataConverterSpawnEgg.eggs[23] = "TippedArrow"; + DataConverterSpawnEgg.eggs[24] = "SpectralArrow"; + DataConverterSpawnEgg.eggs[25] = "ShulkerBullet"; + DataConverterSpawnEgg.eggs[26] = "DragonFireball"; + DataConverterSpawnEgg.eggs[30] = "ArmorStand"; + DataConverterSpawnEgg.eggs[41] = "Boat"; + DataConverterSpawnEgg.eggs[42] = "MinecartRideable"; + DataConverterSpawnEgg.eggs[43] = "MinecartChest"; + DataConverterSpawnEgg.eggs[44] = "MinecartFurnace"; + DataConverterSpawnEgg.eggs[45] = "MinecartTNT"; + DataConverterSpawnEgg.eggs[46] = "MinecartHopper"; + DataConverterSpawnEgg.eggs[47] = "MinecartSpawner"; + DataConverterSpawnEgg.eggs[40] = "MinecartCommandBlock"; + DataConverterSpawnEgg.eggs[48] = "Mob"; + DataConverterSpawnEgg.eggs[49] = "Monster"; + DataConverterSpawnEgg.eggs[50] = "Creeper"; + DataConverterSpawnEgg.eggs[51] = "Skeleton"; + DataConverterSpawnEgg.eggs[52] = "Spider"; + DataConverterSpawnEgg.eggs[53] = "Giant"; + DataConverterSpawnEgg.eggs[54] = "Zombie"; + DataConverterSpawnEgg.eggs[55] = "Slime"; + DataConverterSpawnEgg.eggs[56] = "Ghast"; + DataConverterSpawnEgg.eggs[57] = "PigZombie"; + DataConverterSpawnEgg.eggs[58] = "Enderman"; + DataConverterSpawnEgg.eggs[59] = "CaveSpider"; + DataConverterSpawnEgg.eggs[60] = "Silverfish"; + DataConverterSpawnEgg.eggs[61] = "Blaze"; + DataConverterSpawnEgg.eggs[62] = "LavaSlime"; + DataConverterSpawnEgg.eggs[63] = "EnderDragon"; + DataConverterSpawnEgg.eggs[64] = "WitherBoss"; + DataConverterSpawnEgg.eggs[65] = "Bat"; + DataConverterSpawnEgg.eggs[66] = "Witch"; + DataConverterSpawnEgg.eggs[67] = "Endermite"; + DataConverterSpawnEgg.eggs[68] = "Guardian"; + DataConverterSpawnEgg.eggs[69] = "Shulker"; + DataConverterSpawnEgg.eggs[90] = "Pig"; + DataConverterSpawnEgg.eggs[91] = "Sheep"; + DataConverterSpawnEgg.eggs[92] = "Cow"; + DataConverterSpawnEgg.eggs[93] = "Chicken"; + DataConverterSpawnEgg.eggs[94] = "Squid"; + DataConverterSpawnEgg.eggs[95] = "Wolf"; + DataConverterSpawnEgg.eggs[96] = "MushroomCow"; + DataConverterSpawnEgg.eggs[97] = "SnowMan"; + DataConverterSpawnEgg.eggs[98] = "Ozelot"; + DataConverterSpawnEgg.eggs[99] = "VillagerGolem"; + DataConverterSpawnEgg.eggs[100] = "EntityHorse"; + DataConverterSpawnEgg.eggs[101] = "Rabbit"; + DataConverterSpawnEgg.eggs[120] = "Villager"; + DataConverterSpawnEgg.eggs[200] = "EnderCrystal"; + } + } + + private static class DataConverterMinecart implements DataConverter { + + private static final List a = Lists.newArrayList(new String[] { "MinecartRideable", "MinecartChest", "MinecartFurnace", "MinecartTNT", "MinecartSpawner", "MinecartHopper", "MinecartCommandBlock"}); + + DataConverterMinecart() {} + + public int getDataVersion() { + return 106; + } + + public NBTTagCompound convert(NBTTagCompound cmp) { + if ("Minecart".equals(cmp.getString("id"))) { + String s = "MinecartRideable"; + int i = cmp.getInt("Type"); + + if (i > 0 && i < DataConverterMinecart.a.size()) { + s = DataConverterMinecart.a.get(i); + } + + cmp.setString("id", s); + cmp.remove("Type"); + } + + return cmp; + } + } + + private static class DataConverterMobSpawner implements DataConverter { + + DataConverterMobSpawner() {} + + public int getDataVersion() { + return 107; + } + + public NBTTagCompound convert(NBTTagCompound cmp) { + if (!"MobSpawner".equals(cmp.getString("id"))) { + return cmp; + } else { + if (cmp.hasKeyOfType("EntityId", 8)) { + String s = cmp.getString("EntityId"); + NBTTagCompound nbttagcompound1 = cmp.getCompound("SpawnData"); + + nbttagcompound1.setString("id", s.isEmpty() ? "Pig" : s); + cmp.set("SpawnData", nbttagcompound1); + cmp.remove("EntityId"); + } + + if (cmp.hasKeyOfType("SpawnPotentials", 9)) { + NBTTagList nbttaglist = cmp.getList("SpawnPotentials", 10); + + for (int i = 0; i < nbttaglist.size(); ++i) { + NBTTagCompound nbttagcompound2 = nbttaglist.getCompound(i); + + if (nbttagcompound2.hasKeyOfType("Type", 8)) { + NBTTagCompound nbttagcompound3 = nbttagcompound2.getCompound("Properties"); + + nbttagcompound3.setString("id", nbttagcompound2.getString("Type")); + nbttagcompound2.set("Entity", nbttagcompound3); + nbttagcompound2.remove("Type"); + nbttagcompound2.remove("Properties"); + } + } + } + + return cmp; + } + } + } + + private static class DataConverterUUID implements DataConverter { + + DataConverterUUID() {} + + public int getDataVersion() { + return 108; + } + + public NBTTagCompound convert(NBTTagCompound cmp) { + if (cmp.hasKeyOfType("UUID", 8)) { + cmp.a("UUID", UUID.fromString(cmp.getString("UUID"))); + } + + return cmp; + } + } + + private static class DataConverterHealth implements DataConverter { + + private static final Set a = Sets.newHashSet(new String[] { "ArmorStand", "Bat", "Blaze", "CaveSpider", "Chicken", "Cow", "Creeper", "EnderDragon", "Enderman", "Endermite", "EntityHorse", "Ghast", "Giant", "Guardian", "LavaSlime", "MushroomCow", "Ozelot", "Pig", "PigZombie", "Rabbit", "Sheep", "Shulker", "Silverfish", "Skeleton", "Slime", "SnowMan", "Spider", "Squid", "Villager", "VillagerGolem", "Witch", "WitherBoss", "Wolf", "Zombie"}); + + DataConverterHealth() {} + + public int getDataVersion() { + return 109; + } + + public NBTTagCompound convert(NBTTagCompound cmp) { + if (DataConverterHealth.a.contains(cmp.getString("id"))) { + float f; + + if (cmp.hasKeyOfType("HealF", 99)) { + f = cmp.getFloat("HealF"); + cmp.remove("HealF"); + } else { + if (!cmp.hasKeyOfType("Health", 99)) { + return cmp; + } + + f = cmp.getFloat("Health"); + } + + cmp.setFloat("Health", f); + } + + return cmp; + } + } + + private static class DataConverterSaddle implements DataConverter { + + DataConverterSaddle() {} + + public int getDataVersion() { + return 110; + } + + public NBTTagCompound convert(NBTTagCompound cmp) { + if ("EntityHorse".equals(cmp.getString("id")) && !cmp.hasKeyOfType("SaddleItem", 10) && cmp.getBoolean("Saddle")) { + NBTTagCompound nbttagcompound1 = new NBTTagCompound(); + + nbttagcompound1.setString("id", "minecraft:saddle"); + nbttagcompound1.setByte("Count", (byte) 1); + nbttagcompound1.setShort("Damage", (short) 0); + cmp.set("SaddleItem", nbttagcompound1); + cmp.remove("Saddle"); + } + + return cmp; + } + } + + private static class DataConverterHanging implements DataConverter { + + DataConverterHanging() {} + + public int getDataVersion() { + return 111; + } + + public NBTTagCompound convert(NBTTagCompound cmp) { + String s = cmp.getString("id"); + boolean flag = "Painting".equals(s); + boolean flag1 = "ItemFrame".equals(s); + + if ((flag || flag1) && !cmp.hasKeyOfType("Facing", 99)) { + EnumDirection enumdirection; + + if (cmp.hasKeyOfType("Direction", 99)) { + enumdirection = EnumDirection.fromType2(cmp.getByte("Direction")); + cmp.setInt("TileX", cmp.getInt("TileX") + enumdirection.getAdjacentX()); + cmp.setInt("TileY", cmp.getInt("TileY") + enumdirection.getAdjacentY()); + cmp.setInt("TileZ", cmp.getInt("TileZ") + enumdirection.getAdjacentZ()); + cmp.remove("Direction"); + if (flag1 && cmp.hasKeyOfType("ItemRotation", 99)) { + cmp.setByte("ItemRotation", (byte) (cmp.getByte("ItemRotation") * 2)); + } + } else { + enumdirection = EnumDirection.fromType2(cmp.getByte("Dir")); + cmp.remove("Dir"); + } + + cmp.setByte("Facing", (byte) enumdirection.get2DRotationValue()); + } + + return cmp; + } + } + + private static class DataConverterDropChances implements DataConverter { + + DataConverterDropChances() {} + + public int getDataVersion() { + return 113; + } + + public NBTTagCompound convert(NBTTagCompound cmp) { + NBTTagList nbttaglist; + + if (cmp.hasKeyOfType("HandDropChances", 9)) { + nbttaglist = cmp.getList("HandDropChances", 5); + if (nbttaglist.size() == 2 && nbttaglist.i(0) == 0.0F && nbttaglist.i(1) == 0.0F) { + cmp.remove("HandDropChances"); + } + } + + if (cmp.hasKeyOfType("ArmorDropChances", 9)) { + nbttaglist = cmp.getList("ArmorDropChances", 5); + if (nbttaglist.size() == 4 && nbttaglist.i(0) == 0.0F && nbttaglist.i(1) == 0.0F && nbttaglist.i(2) == 0.0F && nbttaglist.i(3) == 0.0F) { + cmp.remove("ArmorDropChances"); + } + } + + return cmp; + } + } + + private static class DataConverterRiding implements DataConverter { + + DataConverterRiding() {} + + public int getDataVersion() { + return 135; + } + + public NBTTagCompound convert(NBTTagCompound cmp) { + while (cmp.hasKeyOfType("Riding", 10)) { + NBTTagCompound nbttagcompound1 = this.b(cmp); + + this.convert(cmp, nbttagcompound1); + cmp = nbttagcompound1; + } + + return cmp; + } + + protected void convert(NBTTagCompound nbttagcompound, NBTTagCompound nbttagcompound1) { + NBTTagList nbttaglist = new NBTTagList(); + + nbttaglist.add(nbttagcompound); + nbttagcompound1.set("Passengers", nbttaglist); + } + + protected NBTTagCompound b(NBTTagCompound nbttagcompound) { + NBTTagCompound nbttagcompound1 = nbttagcompound.getCompound("Riding"); + + nbttagcompound.remove("Riding"); + return nbttagcompound1; + } + } + + private static class DataConverterBook implements DataConverter { + + DataConverterBook() {} + + public int getDataVersion() { + return 165; + } + + public NBTTagCompound convert(NBTTagCompound cmp) { + if ("minecraft:written_book".equals(cmp.getString("id"))) { + NBTTagCompound nbttagcompound1 = cmp.getCompound("tag"); + + if (nbttagcompound1.hasKeyOfType("pages", 9)) { + NBTTagList nbttaglist = nbttagcompound1.getList("pages", 8); + + for (int i = 0; i < nbttaglist.size(); ++i) { + String s = nbttaglist.getString(i); + Object object = null; + + if (!"null".equals(s) && !UtilColor.b(s)) { + if ((s.charAt(0) != 34 || s.charAt(s.length() - 1) != 34) && (s.charAt(0) != 123 || s.charAt(s.length() - 1) != 125)) { + object = new ChatComponentText(s); + } else { + try { + object = ChatDeserializer.a(DataConverterSignText.a, s, IChatBaseComponent.class, true); + if (object == null) { + object = new ChatComponentText(""); + } + } catch (JsonParseException jsonparseexception) { + ; + } + + if (object == null) { + try { + object = IChatBaseComponent.ChatSerializer.a(s); + } catch (JsonParseException jsonparseexception1) { + ; + } + } + + if (object == null) { + try { + object = IChatBaseComponent.ChatSerializer.b(s); + } catch (JsonParseException jsonparseexception2) { + ; + } + } + + if (object == null) { + object = new ChatComponentText(s); + } + } + } else { + object = new ChatComponentText(""); + } + + nbttaglist.set(i, new NBTTagString(IChatBaseComponent.ChatSerializer.a((IChatBaseComponent) object))); + } + + nbttagcompound1.set("pages", nbttaglist); + } + } + + return cmp; + } + } + + private static class DataConverterCookedFish implements DataConverter { + + private static final MinecraftKey a = new MinecraftKey("cooked_fished"); + + DataConverterCookedFish() {} + + public int getDataVersion() { + return 502; + } + + public NBTTagCompound convert(NBTTagCompound cmp) { + if (cmp.hasKeyOfType("id", 8) && DataConverterCookedFish.a.equals(new MinecraftKey(cmp.getString("id")))) { + cmp.setString("id", "minecraft:cooked_fish"); + } + + return cmp; + } + } + + private static class DataConverterZombie implements DataConverter { + + private static final Random a = new Random(); + + DataConverterZombie() {} + + public int getDataVersion() { + return 502; + } + + public NBTTagCompound convert(NBTTagCompound cmp) { + if ("Zombie".equals(cmp.getString("id")) && cmp.getBoolean("IsVillager")) { + if (!cmp.hasKeyOfType("ZombieType", 99)) { + int i = -1; + + if (cmp.hasKeyOfType("VillagerProfession", 99)) { + try { + i = this.convert(cmp.getInt("VillagerProfession")); + } catch (RuntimeException runtimeexception) { + ; + } + } + + if (i == -1) { + i = this.convert(DataConverterZombie.a.nextInt(6)); + } + + cmp.setInt("ZombieType", i); + } + + cmp.remove("IsVillager"); + } + + return cmp; + } + + private int convert(int i) { + return i >= 0 && i < 6 ? i : -1; + } + } + + private static class DataConverterVBO implements DataConverter { + + DataConverterVBO() {} + + public int getDataVersion() { + return 505; + } + + public NBTTagCompound convert(NBTTagCompound cmp) { + cmp.setString("useVbo", "true"); + return cmp; + } + } + + private static class DataConverterGuardian implements DataConverter { + + DataConverterGuardian() {} + + public int getDataVersion() { + return 700; + } + + public NBTTagCompound convert(NBTTagCompound cmp) { + if ("Guardian".equals(cmp.getString("id"))) { + if (cmp.getBoolean("Elder")) { + cmp.setString("id", "ElderGuardian"); + } + + cmp.remove("Elder"); + } + + return cmp; + } + } + + private static class DataConverterSkeleton implements DataConverter { + + DataConverterSkeleton() {} + + public int getDataVersion() { + return 701; + } + + public NBTTagCompound convert(NBTTagCompound cmp) { + String s = cmp.getString("id"); + + if ("Skeleton".equals(s)) { + int i = cmp.getInt("SkeletonType"); + + if (i == 1) { + cmp.setString("id", "WitherSkeleton"); + } else if (i == 2) { + cmp.setString("id", "Stray"); + } + + cmp.remove("SkeletonType"); + } + + return cmp; + } + } + + private static class DataConverterZombieType implements DataConverter { + + DataConverterZombieType() {} + + public int getDataVersion() { + return 702; + } + + public NBTTagCompound convert(NBTTagCompound cmp) { + if ("Zombie".equals(cmp.getString("id"))) { + int i = cmp.getInt("ZombieType"); + + switch (i) { + case 0: + default: + break; + + case 1: + case 2: + case 3: + case 4: + case 5: + cmp.setString("id", "ZombieVillager"); + cmp.setInt("Profession", i - 1); + break; + + case 6: + cmp.setString("id", "Husk"); + } + + cmp.remove("ZombieType"); + } + + return cmp; + } + } + + private static class DataConverterHorse implements DataConverter { + + DataConverterHorse() {} + + public int getDataVersion() { + return 703; + } + + public NBTTagCompound convert(NBTTagCompound cmp) { + if ("EntityHorse".equals(cmp.getString("id"))) { + int i = cmp.getInt("Type"); + + switch (i) { + case 0: + default: + cmp.setString("id", "Horse"); + break; + + case 1: + cmp.setString("id", "Donkey"); + break; + + case 2: + cmp.setString("id", "Mule"); + break; + + case 3: + cmp.setString("id", "ZombieHorse"); + break; + + case 4: + cmp.setString("id", "SkeletonHorse"); + } + + cmp.remove("Type"); + } + + return cmp; + } + } + + private static class DataConverterTileEntity implements DataConverter { + + private static final Map a = Maps.newHashMap(); + + DataConverterTileEntity() {} + + public int getDataVersion() { + return 704; + } + + public NBTTagCompound convert(NBTTagCompound cmp) { + String s = DataConverterTileEntity.a.get(cmp.getString("id")); + + if (s != null) { + cmp.setString("id", s); + } + + return cmp; + } + + static { + DataConverterTileEntity.a.put("Airportal", "minecraft:end_portal"); + DataConverterTileEntity.a.put("Banner", "minecraft:banner"); + DataConverterTileEntity.a.put("Beacon", "minecraft:beacon"); + DataConverterTileEntity.a.put("Cauldron", "minecraft:brewing_stand"); + DataConverterTileEntity.a.put("Chest", "minecraft:chest"); + DataConverterTileEntity.a.put("Comparator", "minecraft:comparator"); + DataConverterTileEntity.a.put("Control", "minecraft:command_block"); + DataConverterTileEntity.a.put("DLDetector", "minecraft:daylight_detector"); + DataConverterTileEntity.a.put("Dropper", "minecraft:dropper"); + DataConverterTileEntity.a.put("EnchantTable", "minecraft:enchanting_table"); + DataConverterTileEntity.a.put("EndGateway", "minecraft:end_gateway"); + DataConverterTileEntity.a.put("EnderChest", "minecraft:ender_chest"); + DataConverterTileEntity.a.put("FlowerPot", "minecraft:flower_pot"); + DataConverterTileEntity.a.put("Furnace", "minecraft:furnace"); + DataConverterTileEntity.a.put("Hopper", "minecraft:hopper"); + DataConverterTileEntity.a.put("MobSpawner", "minecraft:mob_spawner"); + DataConverterTileEntity.a.put("Music", "minecraft:noteblock"); + DataConverterTileEntity.a.put("Piston", "minecraft:piston"); + DataConverterTileEntity.a.put("RecordPlayer", "minecraft:jukebox"); + DataConverterTileEntity.a.put("Sign", "minecraft:sign"); + DataConverterTileEntity.a.put("Skull", "minecraft:skull"); + DataConverterTileEntity.a.put("Structure", "minecraft:structure_block"); + DataConverterTileEntity.a.put("Trap", "minecraft:dispenser"); + } + } + + private static class DataConverterEntity implements DataConverter { + + private static final Map a = Maps.newHashMap(); + + DataConverterEntity() {} + + public int getDataVersion() { + return 704; + } + + public NBTTagCompound convert(NBTTagCompound cmp) { + String s = DataConverterEntity.a.get(cmp.getString("id")); + + if (s != null) { + cmp.setString("id", s); + } + + return cmp; + } + + static { + DataConverterEntity.a.put("AreaEffectCloud", "minecraft:area_effect_cloud"); + DataConverterEntity.a.put("ArmorStand", "minecraft:armor_stand"); + DataConverterEntity.a.put("Arrow", "minecraft:arrow"); + DataConverterEntity.a.put("Bat", "minecraft:bat"); + DataConverterEntity.a.put("Blaze", "minecraft:blaze"); + DataConverterEntity.a.put("Boat", "minecraft:boat"); + DataConverterEntity.a.put("CaveSpider", "minecraft:cave_spider"); + DataConverterEntity.a.put("Chicken", "minecraft:chicken"); + DataConverterEntity.a.put("Cow", "minecraft:cow"); + DataConverterEntity.a.put("Creeper", "minecraft:creeper"); + DataConverterEntity.a.put("Donkey", "minecraft:donkey"); + DataConverterEntity.a.put("DragonFireball", "minecraft:dragon_fireball"); + DataConverterEntity.a.put("ElderGuardian", "minecraft:elder_guardian"); + DataConverterEntity.a.put("EnderCrystal", "minecraft:ender_crystal"); + DataConverterEntity.a.put("EnderDragon", "minecraft:ender_dragon"); + DataConverterEntity.a.put("Enderman", "minecraft:enderman"); + DataConverterEntity.a.put("Endermite", "minecraft:endermite"); + DataConverterEntity.a.put("EyeOfEnderSignal", "minecraft:eye_of_ender_signal"); + DataConverterEntity.a.put("FallingSand", "minecraft:falling_block"); + DataConverterEntity.a.put("Fireball", "minecraft:fireball"); + DataConverterEntity.a.put("FireworksRocketEntity", "minecraft:fireworks_rocket"); + DataConverterEntity.a.put("Ghast", "minecraft:ghast"); + DataConverterEntity.a.put("Giant", "minecraft:giant"); + DataConverterEntity.a.put("Guardian", "minecraft:guardian"); + DataConverterEntity.a.put("Horse", "minecraft:horse"); + DataConverterEntity.a.put("Husk", "minecraft:husk"); + DataConverterEntity.a.put("Item", "minecraft:item"); + DataConverterEntity.a.put("ItemFrame", "minecraft:item_frame"); + DataConverterEntity.a.put("LavaSlime", "minecraft:magma_cube"); + DataConverterEntity.a.put("LeashKnot", "minecraft:leash_knot"); + DataConverterEntity.a.put("MinecartChest", "minecraft:chest_minecart"); + DataConverterEntity.a.put("MinecartCommandBlock", "minecraft:commandblock_minecart"); + DataConverterEntity.a.put("MinecartFurnace", "minecraft:furnace_minecart"); + DataConverterEntity.a.put("MinecartHopper", "minecraft:hopper_minecart"); + DataConverterEntity.a.put("MinecartRideable", "minecraft:minecart"); + DataConverterEntity.a.put("MinecartSpawner", "minecraft:spawner_minecart"); + DataConverterEntity.a.put("MinecartTNT", "minecraft:tnt_minecart"); + DataConverterEntity.a.put("Mule", "minecraft:mule"); + DataConverterEntity.a.put("MushroomCow", "minecraft:mooshroom"); + DataConverterEntity.a.put("Ozelot", "minecraft:ocelot"); + DataConverterEntity.a.put("Painting", "minecraft:painting"); + DataConverterEntity.a.put("Pig", "minecraft:pig"); + DataConverterEntity.a.put("PigZombie", "minecraft:zombie_pigman"); + DataConverterEntity.a.put("PolarBear", "minecraft:polar_bear"); + DataConverterEntity.a.put("PrimedTnt", "minecraft:tnt"); + DataConverterEntity.a.put("Rabbit", "minecraft:rabbit"); + DataConverterEntity.a.put("Sheep", "minecraft:sheep"); + DataConverterEntity.a.put("Shulker", "minecraft:shulker"); + DataConverterEntity.a.put("ShulkerBullet", "minecraft:shulker_bullet"); + DataConverterEntity.a.put("Silverfish", "minecraft:silverfish"); + DataConverterEntity.a.put("Skeleton", "minecraft:skeleton"); + DataConverterEntity.a.put("SkeletonHorse", "minecraft:skeleton_horse"); + DataConverterEntity.a.put("Slime", "minecraft:slime"); + DataConverterEntity.a.put("SmallFireball", "minecraft:small_fireball"); + DataConverterEntity.a.put("SnowMan", "minecraft:snowman"); + DataConverterEntity.a.put("Snowball", "minecraft:snowball"); + DataConverterEntity.a.put("SpectralArrow", "minecraft:spectral_arrow"); + DataConverterEntity.a.put("Spider", "minecraft:spider"); + DataConverterEntity.a.put("Squid", "minecraft:squid"); + DataConverterEntity.a.put("Stray", "minecraft:stray"); + DataConverterEntity.a.put("ThrownEgg", "minecraft:egg"); + DataConverterEntity.a.put("ThrownEnderpearl", "minecraft:ender_pearl"); + DataConverterEntity.a.put("ThrownExpBottle", "minecraft:xp_bottle"); + DataConverterEntity.a.put("ThrownPotion", "minecraft:potion"); + DataConverterEntity.a.put("Villager", "minecraft:villager"); + DataConverterEntity.a.put("VillagerGolem", "minecraft:villager_golem"); + DataConverterEntity.a.put("Witch", "minecraft:witch"); + DataConverterEntity.a.put("WitherBoss", "minecraft:wither"); + DataConverterEntity.a.put("WitherSkeleton", "minecraft:wither_skeleton"); + DataConverterEntity.a.put("WitherSkull", "minecraft:wither_skull"); + DataConverterEntity.a.put("Wolf", "minecraft:wolf"); + DataConverterEntity.a.put("XPOrb", "minecraft:xp_orb"); + DataConverterEntity.a.put("Zombie", "minecraft:zombie"); + DataConverterEntity.a.put("ZombieHorse", "minecraft:zombie_horse"); + DataConverterEntity.a.put("ZombieVillager", "minecraft:zombie_villager"); + } + } + + private static class DataConverterPotionWater implements DataConverter { + + DataConverterPotionWater() {} + + public int getDataVersion() { + return 806; + } + + public NBTTagCompound convert(NBTTagCompound cmp) { + String s = cmp.getString("id"); + + if ("minecraft:potion".equals(s) || "minecraft:splash_potion".equals(s) || "minecraft:lingering_potion".equals(s) || "minecraft:tipped_arrow".equals(s)) { + NBTTagCompound nbttagcompound1 = cmp.getCompound("tag"); + + if (!nbttagcompound1.hasKeyOfType("Potion", 8)) { + nbttagcompound1.setString("Potion", "minecraft:water"); + } + + if (!cmp.hasKeyOfType("tag", 10)) { + cmp.set("tag", nbttagcompound1); + } + } + + return cmp; + } + } + + private static class DataConverterShulker implements DataConverter { + + DataConverterShulker() {} + + public int getDataVersion() { + return 808; + } + + public NBTTagCompound convert(NBTTagCompound cmp) { + if ("minecraft:shulker".equals(cmp.getString("id")) && !cmp.hasKeyOfType("Color", 99)) { + cmp.setByte("Color", (byte) 10); + } + + return cmp; + } + } + + private static class DataConverterShulkerBoxItem implements DataConverter { + + public static final String[] a = new String[] { "minecraft:white_shulker_box", "minecraft:orange_shulker_box", "minecraft:magenta_shulker_box", "minecraft:light_blue_shulker_box", "minecraft:yellow_shulker_box", "minecraft:lime_shulker_box", "minecraft:pink_shulker_box", "minecraft:gray_shulker_box", "minecraft:silver_shulker_box", "minecraft:cyan_shulker_box", "minecraft:purple_shulker_box", "minecraft:blue_shulker_box", "minecraft:brown_shulker_box", "minecraft:green_shulker_box", "minecraft:red_shulker_box", "minecraft:black_shulker_box"}; + + DataConverterShulkerBoxItem() {} + + public int getDataVersion() { + return 813; + } + + public NBTTagCompound convert(NBTTagCompound cmp) { + if ("minecraft:shulker_box".equals(cmp.getString("id")) && cmp.hasKeyOfType("tag", 10)) { + NBTTagCompound nbttagcompound1 = cmp.getCompound("tag"); + + if (nbttagcompound1.hasKeyOfType("BlockEntityTag", 10)) { + NBTTagCompound nbttagcompound2 = nbttagcompound1.getCompound("BlockEntityTag"); + + if (nbttagcompound2.getList("Items", 10).isEmpty()) { + nbttagcompound2.remove("Items"); + } + + int i = nbttagcompound2.getInt("Color"); + + nbttagcompound2.remove("Color"); + if (nbttagcompound2.isEmpty()) { + nbttagcompound1.remove("BlockEntityTag"); + } + + if (nbttagcompound1.isEmpty()) { + cmp.remove("tag"); + } + + cmp.setString("id", DataConverterShulkerBoxItem.a[i % 16]); + } + } + + return cmp; + } + } + + private static class DataConverterShulkerBoxBlock implements DataConverter { + + DataConverterShulkerBoxBlock() {} + + public int getDataVersion() { + return 813; + } + + public NBTTagCompound convert(NBTTagCompound cmp) { + if ("minecraft:shulker".equals(cmp.getString("id"))) { + cmp.remove("Color"); + } + + return cmp; + } + } + + private static class DataConverterLang implements DataConverter { + + DataConverterLang() {} + + public int getDataVersion() { + return 816; + } + + public NBTTagCompound convert(NBTTagCompound cmp) { + if (cmp.hasKeyOfType("lang", 8)) { + cmp.setString("lang", cmp.getString("lang").toLowerCase(Locale.ROOT)); + } + + return cmp; + } + } + + private static class DataConverterTotem implements DataConverter { + + DataConverterTotem() {} + + public int getDataVersion() { + return 820; + } + + public NBTTagCompound convert(NBTTagCompound cmp) { + if ("minecraft:totem".equals(cmp.getString("id"))) { + cmp.setString("id", "minecraft:totem_of_undying"); + } + + return cmp; + } + } + + private static class DataConverterBedBlock implements DataConverter { + + private static final Logger a = LogManager.getLogger(DataConverters_1_14_R4.class); + + DataConverterBedBlock() {} + + public int getDataVersion() { + return 1125; + } + + public NBTTagCompound convert(NBTTagCompound cmp) { + boolean flag = true; + + try { + NBTTagCompound nbttagcompound1 = cmp.getCompound("Level"); + int i = nbttagcompound1.getInt("xPos"); + int j = nbttagcompound1.getInt("zPos"); + NBTTagList nbttaglist = nbttagcompound1.getList("TileEntities", 10); + NBTTagList nbttaglist1 = nbttagcompound1.getList("Sections", 10); + + for (int k = 0; k < nbttaglist1.size(); ++k) { + NBTTagCompound nbttagcompound2 = nbttaglist1.getCompound(k); + byte b0 = nbttagcompound2.getByte("Y"); + byte[] abyte = nbttagcompound2.getByteArray("Blocks"); + + for (int l = 0; l < abyte.length; ++l) { + if (416 == (abyte[l] & 255) << 4) { + int i1 = l & 15; + int j1 = l >> 8 & 15; + int k1 = l >> 4 & 15; + NBTTagCompound nbttagcompound3 = new NBTTagCompound(); + + nbttagcompound3.setString("id", "bed"); + nbttagcompound3.setInt("x", i1 + (i << 4)); + nbttagcompound3.setInt("y", j1 + (b0 << 4)); + nbttagcompound3.setInt("z", k1 + (j << 4)); + nbttaglist.add(nbttagcompound3); + } + } + } + } catch (Exception exception) { + DataConverterBedBlock.a.warn("Unable to datafix Bed blocks, level format may be missing tags."); + } + + return cmp; + } + } + + private static class DataConverterBedItem implements DataConverter { + + DataConverterBedItem() {} + + public int getDataVersion() { + return 1125; + } + + public NBTTagCompound convert(NBTTagCompound cmp) { + if ("minecraft:bed".equals(cmp.getString("id")) && cmp.getShort("Damage") == 0) { + cmp.setShort("Damage", (short) EnumColor.RED.getColorIndex()); + } + + return cmp; + } + } + + private static class DataConverterSignText implements DataConverter { + + public static final Gson a = new GsonBuilder().registerTypeAdapter(IChatBaseComponent.class, new JsonDeserializer() { + IChatBaseComponent a(JsonElement jsonelement, Type type, JsonDeserializationContext jsondeserializationcontext) throws JsonParseException { + if (jsonelement.isJsonPrimitive()) { + return new ChatComponentText(jsonelement.getAsString()); + } else if (jsonelement.isJsonArray()) { + JsonArray jsonarray = jsonelement.getAsJsonArray(); + IChatBaseComponent ichatbasecomponent = null; + Iterator iterator = jsonarray.iterator(); + + while (iterator.hasNext()) { + JsonElement jsonelement1 = (JsonElement) iterator.next(); + IChatBaseComponent ichatbasecomponent1 = this.a(jsonelement1, jsonelement1.getClass(), jsondeserializationcontext); + + if (ichatbasecomponent == null) { + ichatbasecomponent = ichatbasecomponent1; + } else { + ichatbasecomponent.addSibling(ichatbasecomponent1); + } + } + + return ichatbasecomponent; + } else { + throw new JsonParseException("Don\'t know how to turn " + jsonelement + " into a Component"); + } + } + + public Object deserialize(JsonElement jsonelement, Type type, JsonDeserializationContext jsondeserializationcontext) throws JsonParseException { + return this.a(jsonelement, type, jsondeserializationcontext); + } + }).create(); + + DataConverterSignText() {} + + public int getDataVersion() { + return 101; + } + + public NBTTagCompound convert(NBTTagCompound cmp) { + if ("Sign".equals(cmp.getString("id"))) { + this.convert(cmp, "Text1"); + this.convert(cmp, "Text2"); + this.convert(cmp, "Text3"); + this.convert(cmp, "Text4"); + } + + return cmp; + } + + private void convert(NBTTagCompound nbttagcompound, String s) { + String s1 = nbttagcompound.getString(s); + Object object = null; + + if (!"null".equals(s1) && !UtilColor.b(s1)) { + if ((s1.charAt(0) != 34 || s1.charAt(s1.length() - 1) != 34) && (s1.charAt(0) != 123 || s1.charAt(s1.length() - 1) != 125)) { + object = new ChatComponentText(s1); + } else { + try { + object = ChatDeserializer.a(DataConverterSignText.a, s1, IChatBaseComponent.class, true); + if (object == null) { + object = new ChatComponentText(""); + } + } catch (JsonParseException jsonparseexception) { + ; + } + + if (object == null) { + try { + object = IChatBaseComponent.ChatSerializer.a(s1); + } catch (JsonParseException jsonparseexception1) { + ; + } + } + + if (object == null) { + try { + object = IChatBaseComponent.ChatSerializer.b(s1); + } catch (JsonParseException jsonparseexception2) { + ; + } + } + + if (object == null) { + object = new ChatComponentText(s1); + } + } + } else { + object = new ChatComponentText(""); + } + + nbttagcompound.setString(s, IChatBaseComponent.ChatSerializer.a((IChatBaseComponent) object)); + } + } + + private static class DataInspectorPlayerVehicle implements DataInspector { + @Override + public NBTTagCompound inspect(NBTTagCompound cmp, int sourceVer, int targetVer) { + if (cmp.hasKeyOfType("RootVehicle", 10)) { + NBTTagCompound nbttagcompound1 = cmp.getCompound("RootVehicle"); + + if (nbttagcompound1.hasKeyOfType("Entity", 10)) { + convertCompound(LegacyType.ENTITY, nbttagcompound1, "Entity", sourceVer, targetVer); + } + } + + return cmp; + } + } + + private static class DataInspectorLevelPlayer implements DataInspector { + @Override + public NBTTagCompound inspect(NBTTagCompound cmp, int sourceVer, int targetVer) { + if (cmp.hasKeyOfType("Player", 10)) { + convertCompound(LegacyType.PLAYER, cmp, "Player", sourceVer, targetVer); + } + + return cmp; + } + } + + private static class DataInspectorStructure implements DataInspector { + @Override + public NBTTagCompound inspect(NBTTagCompound cmp, int sourceVer, int targetVer) { + NBTTagList nbttaglist; + int j; + NBTTagCompound nbttagcompound1; + + if (cmp.hasKeyOfType("entities", 9)) { + nbttaglist = cmp.getList("entities", 10); + + for (j = 0; j < nbttaglist.size(); ++j) { + nbttagcompound1 = (NBTTagCompound) nbttaglist.get(j); + if (nbttagcompound1.hasKeyOfType("nbt", 10)) { + convertCompound(LegacyType.ENTITY, nbttagcompound1, "nbt", sourceVer, targetVer); + } + } + } + + if (cmp.hasKeyOfType("blocks", 9)) { + nbttaglist = cmp.getList("blocks", 10); + + for (j = 0; j < nbttaglist.size(); ++j) { + nbttagcompound1 = (NBTTagCompound) nbttaglist.get(j); + if (nbttagcompound1.hasKeyOfType("nbt", 10)) { + convertCompound(LegacyType.BLOCK_ENTITY, nbttagcompound1, "nbt", sourceVer, targetVer); + } + } + } + + return cmp; + } + } + + private static class DataInspectorChunks implements DataInspector { + @Override + public NBTTagCompound inspect(NBTTagCompound cmp, int sourceVer, int targetVer) { + if (cmp.hasKeyOfType("Level", 10)) { + NBTTagCompound nbttagcompound1 = cmp.getCompound("Level"); + NBTTagList nbttaglist; + int j; + + if (nbttagcompound1.hasKeyOfType("Entities", 9)) { + nbttaglist = nbttagcompound1.getList("Entities", 10); + + for (j = 0; j < nbttaglist.size(); ++j) { + nbttaglist.set(j, convert(LegacyType.ENTITY, (NBTTagCompound) nbttaglist.get(j), sourceVer, targetVer)); + } + } + + if (nbttagcompound1.hasKeyOfType("TileEntities", 9)) { + nbttaglist = nbttagcompound1.getList("TileEntities", 10); + + for (j = 0; j < nbttaglist.size(); ++j) { + nbttaglist.set(j, convert(LegacyType.BLOCK_ENTITY, (NBTTagCompound) nbttaglist.get(j), sourceVer, targetVer)); + } + } + } + + return cmp; + } + } + + private static class DataInspectorEntityPassengers implements DataInspector { + @Override + public NBTTagCompound inspect(NBTTagCompound cmp, int sourceVer, int targetVer) { + if (cmp.hasKeyOfType("Passengers", 9)) { + NBTTagList nbttaglist = cmp.getList("Passengers", 10); + + for (int j = 0; j < nbttaglist.size(); ++j) { + nbttaglist.set(j, convert(LegacyType.ENTITY, nbttaglist.getCompound(j), sourceVer, targetVer)); + } + } + + return cmp; + } + } + + private static class DataInspectorPlayer implements DataInspector { + @Override + public NBTTagCompound inspect(NBTTagCompound cmp, int sourceVer, int targetVer) { + convertItems(cmp, "Inventory", sourceVer, targetVer); + convertItems(cmp, "EnderItems", sourceVer, targetVer); + if (cmp.hasKeyOfType("ShoulderEntityLeft", 10)) { + convertCompound(LegacyType.ENTITY, cmp, "ShoulderEntityLeft", sourceVer, targetVer); + } + + if (cmp.hasKeyOfType("ShoulderEntityRight", 10)) { + convertCompound(LegacyType.ENTITY, cmp, "ShoulderEntityRight", sourceVer, targetVer); + } + + return cmp; + } + } + + private static class DataInspectorVillagers implements DataInspector { + MinecraftKey entityVillager = getKey("EntityVillager"); + + @Override + public NBTTagCompound inspect(NBTTagCompound cmp, int sourceVer, int targetVer) { + if (entityVillager.equals(new MinecraftKey(cmp.getString("id"))) && cmp.hasKeyOfType("Offers", 10)) { + NBTTagCompound nbttagcompound1 = cmp.getCompound("Offers"); + + if (nbttagcompound1.hasKeyOfType("Recipes", 9)) { + NBTTagList nbttaglist = nbttagcompound1.getList("Recipes", 10); + + for (int j = 0; j < nbttaglist.size(); ++j) { + NBTTagCompound nbttagcompound2 = nbttaglist.getCompound(j); + + convertItem(nbttagcompound2, "buy", sourceVer, targetVer); + convertItem(nbttagcompound2, "buyB", sourceVer, targetVer); + convertItem(nbttagcompound2, "sell", sourceVer, targetVer); + nbttaglist.set(j, nbttagcompound2); + } + } + } + + return cmp; + } + } + + private static class DataInspectorMobSpawnerMinecart implements DataInspector { + MinecraftKey entityMinecartMobSpawner = getKey("EntityMinecartMobSpawner"); + MinecraftKey tileEntityMobSpawner = getKey("TileEntityMobSpawner"); + + @Override + public NBTTagCompound inspect(NBTTagCompound cmp, int sourceVer, int targetVer) { + String s = cmp.getString("id"); + if (entityMinecartMobSpawner.equals(new MinecraftKey(s))) { + cmp.setString("id", tileEntityMobSpawner.toString()); + convert(LegacyType.BLOCK_ENTITY, cmp, sourceVer, targetVer); + cmp.setString("id", s); + } + + return cmp; + } + } + + private static class DataInspectorMobSpawnerMobs implements DataInspector { + MinecraftKey tileEntityMobSpawner = getKey("TileEntityMobSpawner"); + + @Override + public NBTTagCompound inspect(NBTTagCompound cmp, int sourceVer, int targetVer) { + if (tileEntityMobSpawner.equals(new MinecraftKey(cmp.getString("id")))) { + if (cmp.hasKeyOfType("SpawnPotentials", 9)) { + NBTTagList nbttaglist = cmp.getList("SpawnPotentials", 10); + + for (int j = 0; j < nbttaglist.size(); ++j) { + NBTTagCompound nbttagcompound1 = nbttaglist.getCompound(j); + + convertCompound(LegacyType.ENTITY, nbttagcompound1, "Entity", sourceVer, targetVer); + } + } + + convertCompound(LegacyType.ENTITY, cmp, "SpawnData", sourceVer, targetVer); + } + + return cmp; + } + } + + private static class DataInspectorCommandBlock implements DataInspector { + MinecraftKey tileEntityCommand = getKey("TileEntityCommand"); + + @Override + public NBTTagCompound inspect(NBTTagCompound cmp, int sourceVer, int targetVer) { + if (tileEntityCommand.equals(new MinecraftKey(cmp.getString("id")))) { + cmp.setString("id", "Control"); + convert(LegacyType.BLOCK_ENTITY, cmp, sourceVer, targetVer); + cmp.setString("id", "MinecartCommandBlock"); + } + + return cmp; + } + } +} \ No newline at end of file diff --git a/worldedit-bukkit/src/main/java/com/boydti/fawe/bukkit/adapter/mc1_14/FakePlayer_v1_14_R4.java b/worldedit-bukkit/src/main/java/com/boydti/fawe/bukkit/adapter/mc1_14/FakePlayer_v1_14_R4.java new file mode 100644 index 000000000..db01e2165 --- /dev/null +++ b/worldedit-bukkit/src/main/java/com/boydti/fawe/bukkit/adapter/mc1_14/FakePlayer_v1_14_R4.java @@ -0,0 +1,80 @@ +package com.boydti.fawe.bukkit.adapter.mc1_14; + +import com.mojang.authlib.GameProfile; +import net.minecraft.server.v1_14_R1.DamageSource; +import net.minecraft.server.v1_14_R1.DimensionManager; +import net.minecraft.server.v1_14_R1.Entity; +import net.minecraft.server.v1_14_R1.EntityPlayer; +import net.minecraft.server.v1_14_R1.IChatBaseComponent; +import net.minecraft.server.v1_14_R1.ITileInventory; +import net.minecraft.server.v1_14_R1.PacketPlayInSettings; +import net.minecraft.server.v1_14_R1.PlayerInteractManager; +import net.minecraft.server.v1_14_R1.Statistic; +import net.minecraft.server.v1_14_R1.Vec3D; +import net.minecraft.server.v1_14_R1.WorldServer; +import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause; + +import javax.annotation.Nullable; +import java.util.OptionalInt; +import java.util.UUID; + +class FakePlayer_v1_14_R4 extends EntityPlayer { + private static final GameProfile FAKE_WORLDEDIT_PROFILE = new GameProfile(UUID.nameUUIDFromBytes("worldedit".getBytes()), "[WorldEdit]"); + + FakePlayer_v1_14_R4(WorldServer world) { + super(world.getMinecraftServer(), world, FAKE_WORLDEDIT_PROFILE, new PlayerInteractManager(world)); + } + + @Override + public Vec3D bP() { + return new Vec3D(0, 0, 0); + } + + @Override + public void tick() { + } + + @Override + public void die(DamageSource damagesource) { + } + + @Override + public Entity a(DimensionManager dimensionmanager, TeleportCause cause) { + return this; + } + + @Override + public OptionalInt openContainer(@Nullable ITileInventory itileinventory) { + return OptionalInt.empty(); + } + + @Override + public void a(PacketPlayInSettings packetplayinsettings) { + } + + @Override + public void sendMessage(IChatBaseComponent ichatbasecomponent) { + } + + @Override + public void a(IChatBaseComponent ichatbasecomponent, boolean flag) { + } + + @Override + public void a(Statistic statistic, int i) { + } + + @Override + public void a(Statistic statistic) { + } + + @Override + public boolean isInvulnerable(DamageSource damagesource) { + return true; + } + + @Override + public boolean p(boolean flag) { // canEat, search for foodData usage + return true; + } +} \ No newline at end of file diff --git a/worldedit-bukkit/src/main/java/com/boydti/fawe/bukkit/adapter/mc1_14/Spigot_v1_14_R1.java b/worldedit-bukkit/src/main/java/com/boydti/fawe/bukkit/adapter/mc1_14/Spigot_v1_14_R4.java similarity index 86% rename from worldedit-bukkit/src/main/java/com/boydti/fawe/bukkit/adapter/mc1_14/Spigot_v1_14_R1.java rename to worldedit-bukkit/src/main/java/com/boydti/fawe/bukkit/adapter/mc1_14/Spigot_v1_14_R4.java index 7e5bb11c2..b6bf9693b 100644 --- a/worldedit-bukkit/src/main/java/com/boydti/fawe/bukkit/adapter/mc1_14/Spigot_v1_14_R1.java +++ b/worldedit-bukkit/src/main/java/com/boydti/fawe/bukkit/adapter/mc1_14/Spigot_v1_14_R4.java @@ -20,6 +20,9 @@ package com.boydti.fawe.bukkit.adapter.mc1_14; import com.boydti.fawe.Fawe; +import com.google.common.cache.CacheBuilder; +import com.google.common.cache.CacheLoader; +import com.google.common.cache.LoadingCache; import com.google.common.collect.ImmutableList; import com.google.common.collect.Maps; import com.sk89q.jnbt.ByteArrayTag; @@ -37,6 +40,8 @@ import com.sk89q.jnbt.NBTConstants; import com.sk89q.jnbt.ShortTag; import com.sk89q.jnbt.StringTag; import com.sk89q.jnbt.Tag; +import com.sk89q.worldedit.blocks.BaseItem; +import com.sk89q.worldedit.blocks.BaseItemStack; import com.sk89q.worldedit.blocks.TileEntityBlock; import com.sk89q.worldedit.bukkit.BukkitAdapter; import com.sk89q.worldedit.bukkit.adapter.BukkitImplAdapter; @@ -71,11 +76,17 @@ import net.minecraft.server.v1_14_R1.ChunkCoordIntPair; import net.minecraft.server.v1_14_R1.ChunkSection; import net.minecraft.server.v1_14_R1.Entity; import net.minecraft.server.v1_14_R1.EntityTypes; +import net.minecraft.server.v1_14_R1.EnumDirection; +import net.minecraft.server.v1_14_R1.EnumHand; +import net.minecraft.server.v1_14_R1.EnumInteractionResult; import net.minecraft.server.v1_14_R1.IBlockData; import net.minecraft.server.v1_14_R1.IBlockState; import net.minecraft.server.v1_14_R1.INamable; import net.minecraft.server.v1_14_R1.IRegistry; +import net.minecraft.server.v1_14_R1.ItemActionContext; +import net.minecraft.server.v1_14_R1.ItemStack; import net.minecraft.server.v1_14_R1.MinecraftKey; +import net.minecraft.server.v1_14_R1.MovingObjectPositionBlock; import net.minecraft.server.v1_14_R1.NBTBase; import net.minecraft.server.v1_14_R1.NBTTagByte; import net.minecraft.server.v1_14_R1.NBTTagByteArray; @@ -94,6 +105,7 @@ import net.minecraft.server.v1_14_R1.PacketPlayOutEntityStatus; import net.minecraft.server.v1_14_R1.PacketPlayOutTileEntityData; import net.minecraft.server.v1_14_R1.PlayerChunkMap; import net.minecraft.server.v1_14_R1.TileEntity; +import net.minecraft.server.v1_14_R1.Vec3D; import net.minecraft.server.v1_14_R1.World; import net.minecraft.server.v1_14_R1.WorldServer; import org.bukkit.Bukkit; @@ -105,6 +117,7 @@ import org.bukkit.craftbukkit.v1_14_R1.CraftWorld; import org.bukkit.craftbukkit.v1_14_R1.block.data.CraftBlockData; import org.bukkit.craftbukkit.v1_14_R1.entity.CraftEntity; import org.bukkit.craftbukkit.v1_14_R1.entity.CraftPlayer; +import org.bukkit.craftbukkit.v1_14_R1.inventory.CraftItemStack; import org.bukkit.craftbukkit.v1_14_R1.util.CraftMagicNumbers; import org.bukkit.entity.Player; import org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason; @@ -120,12 +133,13 @@ import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Set; +import java.util.concurrent.ExecutionException; import java.util.function.Supplier; import java.util.stream.Collectors; import static com.google.common.base.Preconditions.checkNotNull; -public final class Spigot_v1_14_R1 extends CachedBukkitAdapter implements BukkitImplAdapter{ +public final class Spigot_v1_14_R4 extends CachedBukkitAdapter implements BukkitImplAdapter{ private final Logger logger = LoggerFactory.getLogger(getClass()); @@ -141,7 +155,7 @@ public final class Spigot_v1_14_R1 extends CachedBukkitAdapter implements Bukkit // Code that may break between versions of Minecraft // ------------------------------------------------------------------------ - public Spigot_v1_14_R1() throws NoSuchFieldException, NoSuchMethodException { + public Spigot_v1_14_R4() throws NoSuchFieldException, NoSuchMethodException { // The list of tags on an NBTTagList nbtListTagListField = NBTTagList.class.getDeclaredField("list"); nbtListTagListField.setAccessible(true); @@ -259,12 +273,7 @@ public final class Spigot_v1_14_R1 extends CachedBukkitAdapter implements Bukkit @Override public DataFixer getDataFixer() { - try { - Class converter = Class.forName("com.sk89q.worldedit.bukkit.adapter.impl.DataConverters_1_14_R4"); - return (DataFixer) converter.getDeclaredField("INSTANCE").get(null); - } catch (ClassNotFoundException | NoSuchFieldException | IllegalAccessException e) { - throw new RuntimeException(e); - } + return DataConverters_1_14_R4.INSTANCE; } @SuppressWarnings("deprecation") @@ -632,15 +641,75 @@ public final class Spigot_v1_14_R1 extends CachedBukkitAdapter implements Bukkit this.setBlock(position.getChunk(), position.getBlockX(), position.getBlockY(), position.getBlockZ(), previousType, true); } - @Override - public boolean setBlock(Location location, BlockStateHolder state, boolean notifyAndLight) { - return this.setBlock(location.getChunk(), location.getBlockX(), location.getBlockY(), location.getBlockZ(), state, notifyAndLight); - } - @Override public void sendFakeOP(Player player) { ((CraftPlayer) player).getHandle().playerConnection.sendPacket(new PacketPlayOutEntityStatus( ((CraftPlayer) player).getHandle(), (byte) 28 )); } + + private static EnumDirection adapt(Direction face) { + switch (face) { + case NORTH: return EnumDirection.NORTH; + case SOUTH: return EnumDirection.SOUTH; + case WEST: return EnumDirection.WEST; + case EAST: return EnumDirection.EAST; + case DOWN: return EnumDirection.DOWN; + case UP: + default: + return EnumDirection.UP; + } + } + + private LoadingCache fakePlayers = CacheBuilder.newBuilder().weakKeys().softValues().build(CacheLoader.from(FakePlayer_v1_14_R4::new)); + + @Override + public synchronized boolean simulateItemUse(org.bukkit.World world, BlockVector3 position, BaseItem item, Direction face) { + CraftWorld craftWorld = (CraftWorld) world; + WorldServer worldServer = craftWorld.getHandle(); + ItemStack stack = CraftItemStack.asNMSCopy(BukkitAdapter.adapt(item instanceof BaseItemStack + ? ((BaseItemStack) item) : new BaseItemStack(item.getType(), item.getNbtData(), 1))); + stack.setTag((NBTTagCompound) fromNative(item.getNbtData())); + + FakePlayer_v1_14_R4 fakePlayer; + try { + fakePlayer = fakePlayers.get(worldServer); + } catch (ExecutionException ignored) { + return false; + } + fakePlayer.a(EnumHand.MAIN_HAND, stack); + fakePlayer.setLocation(position.getBlockX(), position.getBlockY(), position.getBlockZ(), + (float) face.toVector().toYaw(), (float) face.toVector().toPitch()); + + final BlockPosition blockPos = new BlockPosition(position.getBlockX(), position.getBlockY(), position.getBlockZ()); + final Vec3D blockVec = new Vec3D(blockPos); + final EnumDirection enumFacing = adapt(face); + MovingObjectPositionBlock rayTrace = new MovingObjectPositionBlock(blockVec, enumFacing, blockPos, false); + ItemActionContext context = new ItemActionContext(fakePlayer, EnumHand.MAIN_HAND, rayTrace); + EnumInteractionResult result = stack.placeItem(context, EnumHand.MAIN_HAND); + if (result != EnumInteractionResult.SUCCESS) { + if (worldServer.getType(blockPos).interact(worldServer, fakePlayer, EnumHand.MAIN_HAND, rayTrace)) { + result = EnumInteractionResult.SUCCESS; + } else { + result = stack.getItem().a(worldServer, fakePlayer, EnumHand.MAIN_HAND).a(); + } + } + + return result == EnumInteractionResult.SUCCESS; + } + + @Override + public org.bukkit.inventory.ItemStack adapt(BaseItemStack item) { + ItemStack stack = new ItemStack(IRegistry.ITEM.get(MinecraftKey.a(item.getType().getId())), item.getAmount()); + stack.setTag(((NBTTagCompound) fromNative(item.getNbtData()))); + return CraftItemStack.asCraftMirror(stack); + } + + @Override + public BaseItemStack adapt(org.bukkit.inventory.ItemStack itemStack) { + final ItemStack nmsStack = CraftItemStack.asNMSCopy(itemStack); + final BaseItemStack weStack = new BaseItemStack(BukkitAdapter.asItemType(itemStack.getType()), itemStack.getAmount()); + weStack.setNbtData(((CompoundTag) toNative(nmsStack.getTag()))); + return weStack; + } } diff --git a/worldedit-bukkit/src/main/java/com/boydti/fawe/bukkit/wrapper/AsyncWorld.java b/worldedit-bukkit/src/main/java/com/boydti/fawe/bukkit/wrapper/AsyncWorld.java index 0a0e9d617..93e0b1512 100644 --- a/worldedit-bukkit/src/main/java/com/boydti/fawe/bukkit/wrapper/AsyncWorld.java +++ b/worldedit-bukkit/src/main/java/com/boydti/fawe/bukkit/wrapper/AsyncWorld.java @@ -54,8 +54,8 @@ import org.bukkit.util.Consumer; import org.bukkit.util.RayTraceResult; import org.bukkit.util.Vector; import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; +import javax.annotation.Nullable; import java.io.File; import java.util.Collection; import java.util.List; diff --git a/worldedit-bukkit/src/main/java/com/boydti/fawe/bukkit/wrapper/state/AsyncSign.java b/worldedit-bukkit/src/main/java/com/boydti/fawe/bukkit/wrapper/state/AsyncSign.java index b6e073bee..b3bde9636 100644 --- a/worldedit-bukkit/src/main/java/com/boydti/fawe/bukkit/wrapper/state/AsyncSign.java +++ b/worldedit-bukkit/src/main/java/com/boydti/fawe/bukkit/wrapper/state/AsyncSign.java @@ -16,7 +16,8 @@ import org.bukkit.DyeColor; import org.bukkit.block.Sign; import org.bukkit.persistence.PersistentDataContainer; import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; + +import javax.annotation.Nullable; public class AsyncSign extends AsyncBlockState implements Sign { public AsyncSign(AsyncBlock block, BaseBlock state) { diff --git a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitBlockCommandSender.java b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitBlockCommandSender.java index 21053ba35..ce24c1da4 100644 --- a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitBlockCommandSender.java +++ b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitBlockCommandSender.java @@ -29,8 +29,12 @@ import com.sk89q.worldedit.util.Location; import com.sk89q.worldedit.util.auth.AuthorizationException; import com.sk89q.worldedit.util.formatting.text.Component; import com.sk89q.worldedit.util.formatting.text.adapter.bukkit.TextAdapter; +import org.bukkit.Chunk; import org.bukkit.Material; +import org.bukkit.World; +import org.bukkit.block.Block; import org.bukkit.command.BlockCommandSender; +import org.jetbrains.annotations.NotNull; import java.util.UUID; @@ -149,14 +153,20 @@ public class BukkitBlockCommandSender extends AbstractNonPlayerActor implements @Override public boolean isActive() { - return sender.getBlock().getType() == Material.COMMAND_BLOCK - || sender.getBlock().getType() == Material.CHAIN_COMMAND_BLOCK - || sender.getBlock().getType() == Material.REPEATING_COMMAND_BLOCK; + @NotNull Block block = sender.getBlock(); + @NotNull World world = block.getWorld(); + if (world.isChunkLoaded(block.getX() >> 4, block.getZ() >> 4)) { + @NotNull Material type = block.getType(); + return type == Material.COMMAND_BLOCK + || type == Material.CHAIN_COMMAND_BLOCK + || type == Material.REPEATING_COMMAND_BLOCK; + } + return false; } @Override public boolean isPersistent() { - return false; + return true; } @Override diff --git a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitCommandSender.java b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitCommandSender.java index 455fdc47f..d0549b087 100644 --- a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitCommandSender.java +++ b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitCommandSender.java @@ -32,6 +32,8 @@ import java.io.File; import java.util.UUID; import javax.annotation.Nullable; import org.bukkit.command.CommandSender; +import org.bukkit.command.ConsoleCommandSender; +import org.bukkit.entity.Entity; import org.bukkit.entity.Player; public class BukkitCommandSender extends AbstractNonPlayerActor { @@ -42,14 +44,12 @@ public class BukkitCommandSender extends AbstractNonPlayerActor { private static final UUID DEFAULT_ID = UUID.fromString("a233eb4b-4cab-42cd-9fd9-7e7b9a3f74be"); private CommandSender sender; - private WorldEditPlugin plugin; public BukkitCommandSender(WorldEditPlugin plugin, CommandSender sender) { checkNotNull(plugin); checkNotNull(sender); checkArgument(!(sender instanceof Player), "Cannot wrap a player"); - this.plugin = plugin; this.sender = sender; } @@ -152,6 +152,10 @@ public class BukkitCommandSender extends AbstractNonPlayerActor { @Override public boolean isActive() { + if (sender instanceof Entity) { + Entity entity = (Entity) sender; + return (entity.isValid() && !entity.isDead()); + } return true; } diff --git a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/WorldEditPlugin.java b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/WorldEditPlugin.java index 23bb23acb..f735febb4 100644 --- a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/WorldEditPlugin.java +++ b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/WorldEditPlugin.java @@ -19,11 +19,12 @@ package com.sk89q.worldedit.bukkit; +import com.bekvon.bukkit.residence.commands.message; import com.boydti.fawe.Fawe; import com.boydti.fawe.bukkit.FaweBukkit; import com.boydti.fawe.util.MainUtil; -import com.boydti.fawe.bukkit.adapter.mc1_14.Spigot_v1_14_R1; +import com.boydti.fawe.bukkit.adapter.mc1_14.Spigot_v1_14_R4; import com.google.common.base.Joiner; import static com.google.common.base.Preconditions.checkNotNull; import com.sk89q.util.yaml.YAMLProcessor; @@ -37,19 +38,13 @@ import com.sk89q.worldedit.bukkit.adapter.BukkitImplLoader; import com.sk89q.worldedit.event.platform.CommandEvent; import com.sk89q.worldedit.event.platform.CommandSuggestionEvent; import com.sk89q.worldedit.event.platform.PlatformReadyEvent; -import com.sk89q.worldedit.extension.input.InputParseException; -import com.sk89q.worldedit.extension.input.ParserContext; import com.sk89q.worldedit.extension.platform.Actor; import com.sk89q.worldedit.extension.platform.Capability; import com.sk89q.worldedit.extension.platform.Platform; import com.sk89q.worldedit.extent.inventory.BlockBag; import com.sk89q.worldedit.internal.command.CommandUtil; -import com.sk89q.worldedit.registry.state.Property; import com.sk89q.worldedit.world.biome.BiomeType; import com.sk89q.worldedit.world.block.BlockCategory; -import com.sk89q.worldedit.world.block.BlockState; -import com.sk89q.worldedit.world.block.BlockType; -import com.sk89q.worldedit.world.block.FuzzyBlockState; import com.sk89q.worldedit.world.entity.EntityType; import com.sk89q.worldedit.world.gamemode.GameModes; import com.sk89q.worldedit.world.item.ItemCategory; @@ -305,7 +300,11 @@ public class WorldEditPlugin extends JavaPlugin { //implements TabCompleter try { Bukkit.getPluginManager().loadPlugin(dummy); } catch (Throwable e) { - e.printStackTrace(); + if (Bukkit.getUpdateFolderFile().mkdirs()) { + MainUtil.copyFile(MainUtil.getJarFile(), "DummyFawe.src", pluginsFolder, Bukkit.getUpdateFolder() + File.separator + "DummyFawe.jar"); + } else { + getLogger().info("Please delete DummyFawe.jar and restart"); + } } getLogger().info("Please restart the server if you have any plugins which depend on FAWE."); } else if (dummy == null) { @@ -343,7 +342,7 @@ public class WorldEditPlugin extends JavaPlugin { //implements TabCompleter // Attempt to load a Bukkit adapter BukkitImplLoader adapterLoader = new BukkitImplLoader(); try { - adapterLoader.addClass(Spigot_v1_14_R1.class); + adapterLoader.addClass(Spigot_v1_14_R4.class); } catch (Throwable throwable) { throwable.printStackTrace(); } @@ -439,7 +438,7 @@ public class WorldEditPlugin extends JavaPlugin { //implements TabCompleter // code of WorldEdit expects it String[] split = new String[args.length + 1]; System.arraycopy(args, 0, split, 1, args.length); - split[0] = "/" + commandLabel; + split[0] = commandLabel; CommandEvent event = new CommandEvent(wrapCommandSender(sender), Joiner.on(" ").join(split)); getWorldEdit().getEventBus().post(event); diff --git a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/adapter/BukkitImplAdapter.java b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/adapter/BukkitImplAdapter.java index e48b847b9..901d04d81 100644 --- a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/adapter/BukkitImplAdapter.java +++ b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/adapter/BukkitImplAdapter.java @@ -23,9 +23,12 @@ import com.boydti.fawe.Fawe; import com.boydti.fawe.bukkit.FaweBukkit; import com.sk89q.jnbt.CompoundTag; import com.sk89q.jnbt.Tag; +import com.sk89q.worldedit.blocks.BaseItem; +import com.sk89q.worldedit.blocks.BaseItemStack; import com.sk89q.worldedit.entity.BaseEntity; import com.sk89q.worldedit.math.BlockVector3; import com.sk89q.worldedit.registry.state.Property; +import com.sk89q.worldedit.util.Direction; import com.sk89q.worldedit.world.DataFixer; import com.sk89q.worldedit.world.block.BaseBlock; import com.sk89q.worldedit.world.block.BlockState; @@ -39,8 +42,10 @@ import org.bukkit.World; import org.bukkit.WorldCreator; import org.bukkit.entity.Entity; import org.bukkit.entity.Player; +import org.bukkit.inventory.ItemStack; import java.util.Map; +import java.util.OptionalInt; import javax.annotation.Nullable; @@ -72,9 +77,6 @@ public interface BukkitImplAdapter extends IBukkitAdapter { */ BaseBlock getBlock(Location location); - boolean setBlock(Chunk chunk, int x, int y, int z, BlockStateHolder state, boolean update); - - boolean isChunkInUse(Chunk chunk); /** * Set the block at the given location. * @@ -83,7 +85,11 @@ public interface BukkitImplAdapter extends IBukkitAdapter { * @param notifyAndLight notify and light if set * @return true if a block was likely changed */ - boolean setBlock(Location location, BlockStateHolder state, boolean notifyAndLight); + default boolean setBlock(Location location, BlockStateHolder state, boolean notifyAndLight) { + return this.setBlock(location.getChunk(), location.getBlockX(), location.getBlockY(), location.getBlockZ(), state, notifyAndLight); + } + + boolean setBlock(Chunk chunk, int x, int y, int z, BlockStateHolder state, boolean update); /** * Notifies the simulation that the block at the given location has @@ -121,22 +127,6 @@ public interface BukkitImplAdapter extends IBukkitAdapter { */ Map> getProperties(BlockType blockType); - default BlockMaterial getMaterial(BlockType blockType) { - return null; - } - - default BlockMaterial getMaterial(BlockState blockState) { - return null; - } - - default Tag toNative(T foreign) { - return null; - } - - default T fromNative(Tag foreign) { - return null; - } - /** * Send the given NBT data to the player. * @@ -154,7 +144,65 @@ public interface BukkitImplAdapter extends IBukkitAdapter { */ void sendFakeOP(Player player); - default @org.jetbrains.annotations.Nullable World createWorld(WorldCreator creator) { + /** + * Simulates a player using an item. + * + * @param world the world + * @param position the location + * @param item the item to be used + * @param face the direction in which to "face" when using the item + * @return whether the usage was successful + */ + default boolean simulateItemUse(World world, BlockVector3 position, BaseItem item, Direction face) { + return false; + } + + /** + * Create a Bukkit ItemStack with NBT, if available. + * + * @param item the WorldEdit BaseItemStack to adapt + * @return the Bukkit ItemStack + */ + ItemStack adapt(BaseItemStack item); + + /** + * Create a WorldEdit ItemStack with NBT, if available. + * + * @param itemStack the Bukkit ItemStack to adapt + * @return the WorldEdit BaseItemStack + */ + BaseItemStack adapt(ItemStack itemStack); + + + /** + * Retrieve the internal ID for a given state, if possible. + * + * @param state The block state + * @return the internal ID of the state + */ + default OptionalInt getInternalBlockStateId(BlockState state) { + return OptionalInt.empty(); + } + + boolean isChunkInUse(Chunk chunk); + + default BlockMaterial getMaterial(BlockType blockType) { + return null; + } + + default BlockMaterial getMaterial(BlockState blockState) { + return null; + } + + default Tag toNative(T foreign) { + return null; + } + + default T fromNative(Tag foreign) { + return null; + } + + default @Nullable World createWorld(WorldCreator creator) { return ((FaweBukkit) Fawe.imp()).createWorldUnloaded(creator::createWorld); } } diff --git a/worldedit-core/src/main/java/com/boydti/fawe/util/DocumentationPrinter.java b/worldedit-core/src/main/java/com/boydti/fawe/util/DocumentationPrinter.java index cd679e35c..5d24d29ab 100644 --- a/worldedit-core/src/main/java/com/boydti/fawe/util/DocumentationPrinter.java +++ b/worldedit-core/src/main/java/com/boydti/fawe/util/DocumentationPrinter.java @@ -29,7 +29,6 @@ import com.sk89q.worldedit.command.util.CommandPermissions; import com.sk89q.minecraft.util.commands.NestedCommand; import com.sk89q.worldedit.command.BiomeCommands; import com.sk89q.worldedit.command.BrushCommands; -import com.sk89q.worldedit.command.BrushOptionsCommands; import com.sk89q.worldedit.command.ChunkCommands; import com.sk89q.worldedit.command.ClipboardCommands; import com.sk89q.worldedit.command.GenerationCommands; @@ -124,7 +123,6 @@ public final class DocumentationPrinter { writePermissionsWikiTable(stream, builder, "/", ScriptingCommands.class); writePermissionsWikiTable(stream, builder, "/", ChunkCommands.class); writePermissionsWikiTable(stream, builder, "/", ToolUtilCommands.class); - writePermissionsWikiTable(stream, builder, "/", BrushOptionsCommands.class); writePermissionsWikiTable(stream, builder, "/tool ", ToolCommands.class); writePermissionsWikiTable(stream, builder, "/brush ", BrushCommands.class); //writePermissionsWikiTable(stream, builder, "", MaskCommands.class, "/Masks"); diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/ApplyBrushCommands.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/ApplyBrushCommands.java index 823852c37..48e3f8d66 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/ApplyBrushCommands.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/ApplyBrushCommands.java @@ -72,6 +72,28 @@ public class ApplyBrushCommands { .ofTypes(ImmutableList.of(Key.of(double.class))) .build(); + public static void register(CommandManagerService service, CommandManager commandManager, CommandRegistrationHandler registration) { + commandManager.register("apply", builder -> { + builder.description(TextComponent.of("Apply brush, apply a function to every block")); + builder.action(org.enginehub.piston.Command.Action.NULL_ACTION); + + CommandManager manager = service.newCommandManager(); + registration.register( + manager, + ApplyBrushCommandsRegistration.builder(), + new ApplyBrushCommands() + ); + + builder.condition(new PermissionCondition(ImmutableSet.of("worldedit.brush.apply"))); + + builder.addParts(REGION_FACTORY, RADIUS); + builder.addPart(SubCommandPart.builder(TranslatableComponent.of("type"), TextComponent.of("Type of brush to use")) + .withCommands(manager.getAllCommands().collect(Collectors.toList())) + .required() + .build()); + }); + } + private void setApplyBrush(CommandParameters parameters, Player player, LocalSession localSession, Contextual generatorFactory) throws WorldEditException { double radius = requireNonNull(RADIUS.value(parameters).asSingle(double.class)); diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/BrushCommands.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/BrushCommands.java index 3a118b100..f7131a65d 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/BrushCommands.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/BrushCommands.java @@ -56,7 +56,9 @@ import com.boydti.fawe.object.brush.heightmap.ScalableHeightMap; import com.boydti.fawe.object.brush.heightmap.ScalableHeightMap.Shape; import com.boydti.fawe.object.brush.sweep.SweepBrush; import com.boydti.fawe.object.clipboard.MultiClipboardHolder; +import com.boydti.fawe.object.io.PGZIPOutputStream; import com.boydti.fawe.object.mask.IdMask; +import com.boydti.fawe.util.MainUtil; import com.boydti.fawe.util.MathMan; import com.boydti.fawe.util.StringMan; import com.boydti.fawe.util.image.ImageUtil; @@ -67,6 +69,7 @@ import com.sk89q.worldedit.EmptyClipboardException; import com.sk89q.worldedit.LocalSession; import com.sk89q.worldedit.WorldEdit; import com.sk89q.worldedit.WorldEditException; +import com.sk89q.worldedit.blocks.BaseItem; import com.sk89q.worldedit.command.factory.TreeGeneratorFactory; import com.sk89q.worldedit.command.tool.BrushTool; import com.sk89q.worldedit.command.tool.InvalidToolBindException; @@ -112,13 +115,19 @@ import com.sk89q.worldedit.world.block.BlockStateHolder; import com.sk89q.worldedit.world.block.BlockType; import com.sk89q.worldedit.world.block.BlockTypes; import java.awt.image.BufferedImage; +import java.io.DataInputStream; +import java.io.DataOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; +import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.net.URI; +import java.nio.file.FileSystems; import java.util.List; +import java.util.zip.GZIPInputStream; + import org.enginehub.piston.annotation.Command; import org.enginehub.piston.annotation.CommandContainer; import org.enginehub.piston.annotation.param.Arg; @@ -930,6 +939,91 @@ public class BrushCommands { new Deform("y+=1"), shape, "worldedit.brush.lower"); } + @Command( + name = "savebrush", + aliases = {"save"}, + desc = "Save your current brush" + ) + @CommandPermissions("worldedit.brush.save") + public void saveBrush(Player player, LocalSession session, String name, + @Switch(name = 'g', desc = "Save the brush globally") boolean root) throws WorldEditException, IOException { + BrushTool tool = session.getBrushTool(player); + if (tool != null) { + root |= name.startsWith("../"); + name = FileSystems.getDefault().getPath(name).getFileName().toString(); + File folder = MainUtil.getFile(Fawe.imp().getDirectory(), "brushes"); + name = name.endsWith(".jsgz") ? name : name + ".jsgz"; + File file; + if (root && player.hasPermission("worldedit.brush.save.other")) { + file = new File(folder, name); + } else { + file = new File(folder, player.getUniqueId() + File.separator + name); + } + File parent = file.getParentFile(); + if (!parent.exists()) { + parent.mkdirs(); + } + file.createNewFile(); + try (DataOutputStream out = new DataOutputStream( + new PGZIPOutputStream(new FileOutputStream(file)))) { + out.writeUTF(tool.toString()); + } catch (Throwable e) { + e.printStackTrace(); + } + BBC.SCHEMATIC_SAVED.send(player, name); + } else { + BBC.BRUSH_NONE.send(player); + } + } + + @Command( + name = "loadbrush", + aliases = {"load"}, + desc = "Load a brush" + ) + @CommandPermissions("worldedit.brush.load") + public void loadBrush(Player player, LocalSession session, String name) + throws WorldEditException, IOException { + name = FileSystems.getDefault().getPath(name).getFileName().toString(); + File folder = MainUtil.getFile(Fawe.imp().getDirectory(), "brushes"); + name = name.endsWith(".jsgz") ? name : name + ".jsgz"; + File file = new File(folder, player.getUniqueId() + File.separator + name); + if (!file.exists()) { + file = new File(folder, name); + } + if (!file.exists()) { + File[] files = folder.listFiles(pathname -> false); + BBC.BRUSH_NOT_FOUND.send(player, name); + return; + } + try (DataInputStream in = new DataInputStream( + new GZIPInputStream(new FileInputStream(file)))) { + String json = in.readUTF(); + BrushTool tool = BrushTool.fromString(player, session, json); + BaseItem item = player.getItemInHand(HandSide.MAIN_HAND); + session.setTool(item, tool, player); + BBC.BRUSH_EQUIPPED.send(player, name); + } catch (Throwable e) { + e.printStackTrace(); + BBC.BRUSH_INCOMPATIBLE.send(player); + } + } + + @Command( + name = "/listbrush", + desc = "List saved brushes", + descFooter = "List all brushes in the brush directory" + ) + @CommandPermissions("worldedit.brush.list") + public void list(Actor actor, InjectedValueAccess args, + @ArgFlag(name = 'p', desc = "Prints the requested page", def = "0") + int page) throws WorldEditException { + String baseCmd = "/brush loadbrush"; + File dir = MainUtil.getFile(Fawe.imp().getDirectory(), "brushes"); + // TODO NOT IMPLEMENTED +// UtilityCommands.list(dir, actor, args, page, null, true, baseCmd); + } + static void setOperationBasedBrush(Player player, LocalSession session, Expression radius, Contextual factory, RegionFactory shape, diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/BrushOptionsCommands.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/BrushOptionsCommands.java deleted file mode 100644 index f87219bf2..000000000 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/BrushOptionsCommands.java +++ /dev/null @@ -1,491 +0,0 @@ -package com.sk89q.worldedit.command; - -import com.boydti.fawe.Fawe; -import com.boydti.fawe.config.BBC; -import com.boydti.fawe.object.brush.BrushSettings; -import com.boydti.fawe.object.brush.TargetMode; -import com.boydti.fawe.object.brush.scroll.ScrollAction; -import com.boydti.fawe.object.brush.visualization.VisualMode; -import com.boydti.fawe.object.extent.ResettableExtent; -import com.boydti.fawe.object.io.PGZIPOutputStream; -import com.boydti.fawe.util.MainUtil; -import com.boydti.fawe.util.MathMan; -import com.boydti.fawe.util.StringMan; -import com.google.common.collect.Iterables; -import com.sk89q.worldedit.EditSession; -import com.sk89q.worldedit.LocalSession; -import com.sk89q.worldedit.WorldEdit; -import com.sk89q.worldedit.WorldEditException; -import com.sk89q.worldedit.blocks.BaseItem; -import com.sk89q.worldedit.command.argument.Arguments; -import com.sk89q.worldedit.command.tool.BrushTool; -import com.sk89q.worldedit.command.util.CommandPermissions; -import com.sk89q.worldedit.command.util.CommandPermissionsConditionGenerator; -import com.sk89q.worldedit.entity.Player; -import com.sk89q.worldedit.event.platform.CommandEvent; -import com.sk89q.worldedit.extension.platform.Actor; -import com.sk89q.worldedit.extension.platform.PlatformCommandManager; -import com.sk89q.worldedit.function.mask.Mask; -import com.sk89q.worldedit.function.pattern.Pattern; -import com.sk89q.worldedit.internal.annotation.Range; -import com.sk89q.worldedit.internal.command.CommandArgParser; -import com.sk89q.worldedit.util.HandSide; -import java.io.DataInputStream; -import java.io.DataOutputStream; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.IOException; -import java.nio.file.FileSystems; -import java.util.List; -import java.util.zip.GZIPInputStream; -import org.enginehub.piston.annotation.Command; -import org.enginehub.piston.annotation.CommandContainer; -import org.enginehub.piston.annotation.param.Arg; -import org.enginehub.piston.annotation.param.ArgFlag; -import org.enginehub.piston.annotation.param.Switch; -import org.enginehub.piston.inject.InjectedValueAccess; - -/** - * Tool commands. - */ - -@CommandContainer(superTypes = CommandPermissionsConditionGenerator.Registration.class) -public class BrushOptionsCommands { - - private WorldEdit worldEdit; - - public BrushOptionsCommands(WorldEdit worldEdit) { - this.worldEdit = worldEdit; - } - - @Command( - name = "savebrush", - aliases = {"save"}, - desc = "Save your current brush" - ) - @CommandPermissions("worldedit.brush.save") - public void saveBrush(Player player, LocalSession session, String name, - @Switch(name = 'g', desc = "Save the brush globally") boolean root) throws WorldEditException, IOException { - BrushTool tool = session.getBrushTool(player); - if (tool != null) { - root |= name.startsWith("../"); - name = FileSystems.getDefault().getPath(name).getFileName().toString(); - File folder = MainUtil.getFile(Fawe.imp().getDirectory(), "brushes"); - name = name.endsWith(".jsgz") ? name : name + ".jsgz"; - File file; - if (root && player.hasPermission("worldedit.brush.save.other")) { - file = new File(folder, name); - } else { - file = new File(folder, player.getUniqueId() + File.separator + name); - } - File parent = file.getParentFile(); - if (!parent.exists()) { - parent.mkdirs(); - } - file.createNewFile(); - try (DataOutputStream out = new DataOutputStream( - new PGZIPOutputStream(new FileOutputStream(file)))) { - out.writeUTF(tool.toString()); - } catch (Throwable e) { - e.printStackTrace(); - } - BBC.SCHEMATIC_SAVED.send(player, name); - } else { - BBC.BRUSH_NONE.send(player); - } - } - - @Command( - name = "loadbrush", - aliases = {"load"}, - desc = "Load a brush" - ) - @CommandPermissions("worldedit.brush.load") - public void loadBrush(Player player, LocalSession session, String name) - throws WorldEditException, IOException { - name = FileSystems.getDefault().getPath(name).getFileName().toString(); - File folder = MainUtil.getFile(Fawe.imp().getDirectory(), "brushes"); - name = name.endsWith(".jsgz") ? name : name + ".jsgz"; - File file = new File(folder, player.getUniqueId() + File.separator + name); - if (!file.exists()) { - file = new File(folder, name); - } - if (!file.exists()) { - File[] files = folder.listFiles(pathname -> false); - BBC.BRUSH_NOT_FOUND.send(player, name); - return; - } - try (DataInputStream in = new DataInputStream( - new GZIPInputStream(new FileInputStream(file)))) { - String json = in.readUTF(); - BrushTool tool = BrushTool.fromString(player, session, json); - BaseItem item = player.getItemInHand(HandSide.MAIN_HAND); - session.setTool(item, tool, player); - BBC.BRUSH_EQUIPPED.send(player, name); - } catch (Throwable e) { - e.printStackTrace(); - BBC.BRUSH_INCOMPATIBLE.send(player); - } - } - - @Command( - name = "/listbrush", - desc = "List saved brushes", - descFooter = "List all brushes in the brush directory" - ) - @CommandPermissions("worldedit.brush.list") - public void list(Actor actor, InjectedValueAccess args, - @ArgFlag(name = 'p', desc = "Prints the requested page", def = "0") - int page) throws WorldEditException { - String baseCmd = "/brush loadbrush"; - File dir = MainUtil.getFile(Fawe.imp().getDirectory(), "brushes"); - // TODO NOT IMPLEMENTED -// UtilityCommands.list(dir, actor, args, page, null, true, baseCmd); - } - - @Command( - name = "none", - aliases = {"/none"}, - desc = "Unbind a bound tool from your current item" - ) - public void none(Player player, LocalSession session) throws WorldEditException { - session.setTool(player, null); - BBC.TOOL_NONE.send(player); - } - - @Command( - name = "/", - aliases = {","}, - desc = "Toggle the super pickaxe function" - ) - @CommandPermissions("worldedit.superpickaxe") - public void togglePickaxe(Player player, LocalSession session, - @Arg(desc = "state", def = "on") String state) throws WorldEditException { - if (session.hasSuperPickAxe()) { - if ("on".equals(state)) { - BBC.SUPERPICKAXE_ENABLED.send(player); - return; - } - - session.disableSuperPickAxe(); - BBC.SUPERPICKAXE_DISABLED.send(player); - } else { - if ("off".equals(state)) { - - BBC.SUPERPICKAXE_DISABLED.send(player); - return; - } - session.enableSuperPickAxe(); - BBC.SUPERPICKAXE_ENABLED.send(player); - } - } - - @Command( - name = "primary", - desc = "Set the right click brush", - descFooter = "Set the right click brush" - ) - @CommandPermissions("worldedit.brush.primary") - public void primary(Player player, LocalSession session, - @Arg(desc = "The brush command", variable = true) List commandStr) throws WorldEditException { - BaseItem item = player.getItemInHand(HandSide.MAIN_HAND); - BrushTool tool = session.getBrushTool(player, false); - session.setTool(item, null, player); - String cmd = "brush " + StringMan.join(commandStr, " "); - CommandEvent event = new CommandEvent(player, cmd); - PlatformCommandManager.getInstance().handleCommandOnCurrentThread(event); - BrushTool newTool = session.getBrushTool(item, player, false); - if (newTool != null && tool != null) { - newTool.setSecondary(tool.getSecondary()); - } - } - - @Command( - name = "secondary", - desc = "Set the left click brush", - descFooter = "Set the left click brush" - ) - @CommandPermissions("worldedit.brush.secondary") - public void secondary(Player player, LocalSession session, - @Arg(desc = "The brush command", variable = true) List commandStr) - throws WorldEditException { - BaseItem item = player.getItemInHand(HandSide.MAIN_HAND); - BrushTool tool = session.getBrushTool(player, false); - session.setTool(item, null, player); - String cmd = "brush " + StringMan.join(commandStr, " "); - CommandEvent event = new CommandEvent(player, cmd); - PlatformCommandManager.getInstance().handleCommandOnCurrentThread(event); - BrushTool newTool = session.getBrushTool(item, player, false); - if (newTool != null && tool != null) { - newTool.setPrimary(tool.getPrimary()); - } - } - - @Command( - name = "visualize", - aliases = {"visual", "vis"}, - desc = "Toggle between different visualization modes", - descFooter = "Toggle between different visualization modes\n" + - "0 = No visualization\n" + - "1 = Single block at target position\n" + - "2 = Glass showing what blocks will be changed" - ) - @CommandPermissions("worldedit.brush.visualize") - public void visual(Player player, LocalSession session, @Arg(name = "mode", desc = "int", def = "0") @Range(min = 0, max = 2) int mode) - throws WorldEditException { - BrushTool tool = session.getBrushTool(player, false); - if (tool == null) { - BBC.BRUSH_NONE.send(player); - return; - } - VisualMode[] modes = VisualMode.values(); - VisualMode newMode = modes[MathMan.wrap(mode, 0, modes.length - 1)]; - tool.setVisualMode(player, newMode); - BBC.BRUSH_VISUAL_MODE_SET.send(player, newMode); - } - - @Command( - name = "target", - aliases = {"tar"}, - desc = "Toggle between different target modes" - ) - @CommandPermissions("worldedit.brush.target") - public void target(Player player, LocalSession session, - @Arg(name = "mode", desc = "int", def = "0") int mode) throws WorldEditException { - BrushTool tool = session.getBrushTool(player, false); - if (tool == null) { - BBC.BRUSH_NONE.send(player); - return; - } - TargetMode[] modes = TargetMode.values(); - TargetMode newMode = modes[MathMan.wrap(mode, 0, modes.length - 1)]; - tool.setTargetMode(newMode); - BBC.BRUSH_TARGET_MODE_SET.send(player, newMode); - } - - @Command( - name = "targetmask", - aliases = {"tarmask", "tm"}, - desc = "Set the targeting mask" - ) - @CommandPermissions("worldedit.brush.targetmask") - public void targetMask(Player player, EditSession editSession, LocalSession session, @Arg(desc = "The destination mask", def = "") Mask maskOpt) throws WorldEditException { - BrushTool tool = session.getBrushTool(player, false); - if (tool == null) { - BBC.BRUSH_NONE.send(player); - return; - } - tool.setTraceMask(maskOpt); - BBC.BRUSH_TARGET_MASK_SET.send(player, maskOpt.toString()); - } - - @Command( - name = "targetoffset", - aliases = {"to"}, - desc = "Set the targeting mask" - ) - @CommandPermissions("worldedit.brush.targetoffset") - public void targetOffset(Player player, EditSession editSession, LocalSession session, - int offset) throws WorldEditException { - BrushTool tool = session.getBrushTool(player, false); - if (tool == null) { - BBC.BRUSH_NONE.send(player); - return; - } - tool.setTargetOffset(offset); - BBC.BRUSH_TARGET_OFFSET_SET.send(player, offset); - } - - @Command( - name = "scroll", - desc = "Toggle between different target modes" - ) - @CommandPermissions("worldedit.brush.scroll") - public void scroll(Player player, EditSession editSession, LocalSession session, - @Switch(name = 'h', desc = "TODO") - boolean offHand, - @Arg(desc = "Target Modes") - String modes, - @Arg(desc = "The scroll action", variable = true) - List commandStr) throws WorldEditException { - // TODO NOT IMPLEMENTED Convert ScrollAction to an argument converter - BrushTool bt = session.getBrushTool(player, false); - if (bt == null) { - BBC.BRUSH_NONE.send(player); - return; - } - BrushSettings settings = offHand ? bt.getOffHand() : bt.getContext(); - ScrollAction action = ScrollAction.fromArguments(bt, player, session, StringMan.join(commandStr, " "), true); - settings.setScrollAction(action); - if (modes.equalsIgnoreCase("none")) { - BBC.BRUSH_SCROLL_ACTION_UNSET.send(player); - } else if (action != null) { - settings.addSetting(BrushSettings.SettingType.SCROLL_ACTION, modes); - BBC.BRUSH_SCROLL_ACTION_SET.send(player, modes); - } - bt.update(); - } - - @Command( - name = "mask", - aliases = {"/mask"}, - desc = "Set the brush destination mask" - ) - @CommandPermissions({"worldedit.brush.options.mask", "worldedit.mask.brush"}) - public void mask(Player player, LocalSession session, EditSession editSession, - @Switch(name = 'h', desc = "TODO") - boolean offHand, - @Arg(desc = "The destination mask", def = "") - Mask maskArg, - Arguments arguments) - throws WorldEditException { - BrushTool tool = session.getBrushTool(player, false); - if (tool == null) { - player.print(BBC.BRUSH_NONE.s()); - return; - } - if (maskArg == null) { - BBC.BRUSH_MASK_DISABLED.send(player); - tool.setMask(null); - return; - } - BrushSettings settings = offHand ? tool.getOffHand() : tool.getContext(); - String lastArg = Iterables.getLast(CommandArgParser.spaceSplit(arguments.get())).getSubstring(); - System.out.println(lastArg + " TODO check this is not the whole command"); - settings.addSetting(BrushSettings.SettingType.MASK, lastArg); - settings.setMask(maskArg); - tool.update(); - BBC.BRUSH_MASK.send(player); - } - - @Command( - name = "smask", - aliases = {"/smask", "/sourcemask", "sourcemask"}, - desc = "Set the brush source mask", - descFooter = "Set the brush source mask" - ) - @CommandPermissions({"worldedit.brush.options.mask", "worldedit.mask.brush"}) - public void smask(Player player, LocalSession session, EditSession editSession, - @Arg(desc = "The destination mask", def = "") - Mask maskArg, - @Switch(name = 'h', desc = "TODO") - boolean offHand, - Arguments arguments) throws WorldEditException { - BrushTool tool = session.getBrushTool(player, false); - if (tool == null) { - player.print(BBC.BRUSH_NONE.s()); - return; - } - if (maskArg == null) { - BBC.BRUSH_SOURCE_MASK_DISABLED.send(player); - tool.setSourceMask(null); - return; - } - BrushSettings settings = offHand ? tool.getOffHand() : tool.getContext(); - String lastArg = Iterables.getLast(CommandArgParser.spaceSplit(arguments.get())).getSubstring(); - settings.addSetting(BrushSettings.SettingType.SOURCE_MASK, lastArg); - settings.setSourceMask(maskArg); - tool.update(); - BBC.BRUSH_SOURCE_MASK.send(player); - } - - @Command( - name = "transform", - desc = "Set the brush transform" - ) - @CommandPermissions({"worldedit.brush.options.transform", "worldedit.transform.brush"}) - public void transform(Player player, LocalSession session, EditSession editSession, - @Arg(desc = "The transform", def = "") ResettableExtent transform, - @Switch(name = 'h', desc = "TODO") - boolean offHand, - Arguments arguments) throws WorldEditException { - BrushTool tool = session.getBrushTool(player, false); - if (tool == null) { - player.print(BBC.BRUSH_NONE.s()); - return; - } - if (transform == null) { - BBC.BRUSH_TRANSFORM_DISABLED.send(player); - tool.setTransform(null); - return; - } - BrushSettings settings = offHand ? tool.getOffHand() : tool.getContext(); - String lastArg = Iterables.getLast(CommandArgParser.spaceSplit(arguments.get())).getSubstring(); - settings.addSetting(BrushSettings.SettingType.TRANSFORM, lastArg); - settings.setTransform(transform); - tool.update(); - BBC.BRUSH_TRANSFORM.send(player); - } - - @Command( - name = "mat", - aliases = {"material"}, - desc = "Set the brush material" - ) - @CommandPermissions("worldedit.brush.options.material") - public void material(Player player, EditSession editSession, LocalSession session, - @Arg(desc = "brush material pattern", def = "") Pattern patternOpt, - @Switch(name = 'h', desc = "TODO") - boolean offHand, - Arguments arguments) throws WorldEditException { - BrushTool tool = session.getBrushTool(player, false); - if (tool == null) { - player.print(BBC.BRUSH_NONE.s()); - return; - } - if (patternOpt == null) { - BBC.BRUSH_MATERIAL.send(player); - tool.setFill(null); - return; - } - BrushSettings settings = offHand ? tool.getOffHand() : tool.getContext(); - settings.setFill(patternOpt); - String lastArg = Iterables.getLast(CommandArgParser.spaceSplit(arguments.get())).getSubstring(); - settings.addSetting(BrushSettings.SettingType.FILL, lastArg); - tool.update(); - BBC.BRUSH_MATERIAL.send(player); - } - - @Command( - name = "range", - desc = "Set the brush range" - ) - @CommandPermissions("worldedit.brush.options.range") - public void range(Player player, LocalSession session, - @Arg(desc = "Range") - int range) throws WorldEditException { - range = Math.max(0, Math.min(256, range)); - BrushTool tool = session.getBrushTool(player, false); - if (tool == null) { - player.print(BBC.BRUSH_NONE.s()); - return; - } - tool.setRange(range); - BBC.BRUSH_RANGE.send(player); - } - - @Command( - name = "size", - desc = "Set the brush size" - ) - @CommandPermissions("worldedit.brush.options.size") - public void size(Player player, LocalSession session, - @Arg(desc = "The size of the brush", def = "5") - int radius, - @Switch(name = 'h', desc = "TODO") - boolean offHand) throws WorldEditException { - worldEdit.checkMaxBrushRadius(radius); - BrushTool tool = session.getBrushTool(player, false); - if (tool == null) { - player.print(BBC.BRUSH_NONE.s()); - return; - } - BrushSettings settings = offHand ? tool.getOffHand() : tool.getContext(); - settings.setSize(radius); - tool.update(); - BBC.BRUSH_SIZE.send(player); - } - - -} diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/MaskCommands.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/MaskCommands.java index 5fcae45ed..82a6f46ab 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/MaskCommands.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/MaskCommands.java @@ -1,448 +1,448 @@ -//package com.sk89q.worldedit.command; -// -//import com.boydti.fawe.object.mask.AdjacentAnyMask; -//import com.boydti.fawe.object.mask.AdjacentMask; -//import com.boydti.fawe.object.mask.AngleMask; -//import com.boydti.fawe.object.mask.BiomeMask; -//import com.boydti.fawe.object.mask.BlockLightMask; -//import com.boydti.fawe.object.mask.BrightnessMask; -//import com.boydti.fawe.object.mask.DataMask; -//import com.boydti.fawe.object.mask.ExtremaMask; -//import com.boydti.fawe.object.mask.IdDataMask; -//import com.boydti.fawe.object.mask.IdMask; -//import com.boydti.fawe.object.mask.LightMask; -//import com.boydti.fawe.object.mask.OpacityMask; -//import com.boydti.fawe.object.mask.ROCAngleMask; -//import com.boydti.fawe.object.mask.RadiusMask; -//import com.boydti.fawe.object.mask.RandomMask; -//import com.boydti.fawe.object.mask.SimplexMask; -//import com.boydti.fawe.object.mask.SkyLightMask; -//import com.boydti.fawe.object.mask.SurfaceMask; -//import com.boydti.fawe.object.mask.WallMask; -//import com.boydti.fawe.object.mask.XAxisMask; -//import com.boydti.fawe.object.mask.YAxisMask; -//import com.boydti.fawe.object.mask.ZAxisMask; -//import com.sk89q.worldedit.IncompleteRegionException; -//import com.sk89q.worldedit.LocalSession; -//import com.sk89q.worldedit.WorldEdit; -//import com.sk89q.worldedit.command.util.CommandPermissionsConditionGenerator; -//import com.sk89q.worldedit.entity.Player; -//import com.sk89q.worldedit.extent.Extent; -//import com.sk89q.worldedit.function.mask.BlockMaskBuilder; -//import com.sk89q.worldedit.function.mask.ExistingBlockMask; -//import com.sk89q.worldedit.function.mask.ExpressionMask; -//import com.sk89q.worldedit.function.mask.Mask; -//import com.sk89q.worldedit.function.mask.MaskIntersection; -//import com.sk89q.worldedit.function.mask.MaskUnion; -//import com.sk89q.worldedit.function.mask.Masks; -//import com.sk89q.worldedit.function.mask.OffsetMask; -//import com.sk89q.worldedit.function.mask.RegionMask; -//import com.sk89q.worldedit.function.mask.SolidBlockMask; -//import com.sk89q.worldedit.internal.expression.Expression; -//import com.sk89q.worldedit.internal.expression.ExpressionException; -//import com.sk89q.worldedit.internal.expression.runtime.ExpressionEnvironment; -//import com.sk89q.worldedit.math.BlockVector3; -//import com.sk89q.worldedit.math.Vector3; -//import com.sk89q.worldedit.regions.shape.WorldEditExpressionEnvironment; -//import com.sk89q.worldedit.session.request.RequestSelection; -//import com.sk89q.worldedit.world.biome.BiomeType; -//import org.enginehub.piston.annotation.Command; -//import org.enginehub.piston.annotation.CommandContainer; -//import org.enginehub.piston.annotation.param.Arg; -//import org.enginehub.piston.annotation.param.Switch; -// -////@Command(aliases = {"masks"}, -//// desc = "Help for the various masks. [More Info](https://git.io/v9r4K)", -//// descFooter = "Masks determine if a block can be placed\n" + -//// " - Use [brackets] for arguments\n" + -//// " - Use , to OR multiple\n" + -//// " - Use & to AND multiple\n" + -//// "e.g. >[stone,dirt],#light[0][5],$jungle\n" + -//// "More Info: https://git.io/v9r4K" -////) -//@CommandContainer//(superTypes = CommandPermissionsConditionGenerator.Registration.class) -//public class MaskCommands { -// private final WorldEdit worldEdit; -// -// public MaskCommands(WorldEdit worldEdit) { -// this.worldEdit = worldEdit; -// } -// -// @Command( -// name = "#simplex", -// desc = "Use simplex noise as the mask" -// ) -// public Mask simplex(double scale, @Arg(name="mine", desc = "min light") double minInt, @Arg(name="mine", desc = "max light") double maxInt) { -// scale = 1d / Math.max(1, scale); -// minInt = (minInt - 50) / 50; -// maxInt = (maxInt - 50) / 50; -// return new SimplexMask(scale, minInt, maxInt); -// } -// -// @Command( -// name = "#light", -// desc = "Restrict to specific light levels" -// ) -// public Mask light(Extent extent, @Arg(name="mine", desc = "min light") double minInt, @Arg(name="mine", desc = "max light") double maxInt) { -// return new LightMask(extent, (int) minInt, (int) maxInt); -// } -// -// @Command( -// name = "#false", -// desc = "Always false" -// ) -// public Mask falseMask(Extent extent) { -// return Masks.alwaysFalse(); -// } -// -// @Command( -// name = "#true", -// desc = "Always true" -// ) -// public Mask trueMask(Extent extent) { -// return Masks.alwaysTrue(); -// } -// -// @Command( -// name = "#skylight", -// desc = "Restrict to specific sky light levels" -// ) -// public Mask skylight(Extent extent, @Arg(name="mine", desc = "min light") double minInt, @Arg(name="mine", desc = "max light") double maxInt) { -// return new SkyLightMask(extent, (int) minInt, (int) maxInt); -// } -// -// @Command( -// name = "#blocklight", -// aliases = {"#emittedlight"}, -// desc = "Restrict to specific block light levels" -// ) -// public Mask blocklight(Extent extent, @Arg(name="mine", desc = "min light") double minInt, @Arg(name="mine", desc = "max light") double maxInt) { -// return new BlockLightMask(extent, (int) minInt, (int) maxInt); -// } -// -// @Command( -// name = "#opacity", -// desc = "Restrict to specific opacity levels" -// ) -// public Mask opacity(Extent extent, @Arg(name="mine", desc = "min light") double minInt, @Arg(name="mine", desc = "max light") double maxInt) { -// return new OpacityMask(extent, (int) minInt, (int) maxInt); -// } -// -// @Command( -// name = "#brightness", -// desc = "Restrict to specific block brightness" -// ) -// public Mask brightness(Extent extent, @Arg(name="mine", desc = "min light") double minInt, @Arg(name="mine", desc = "max light") double maxInt) { -// return new BrightnessMask(extent, (int) minInt, (int) maxInt); -// } -// -// @Command( -// name = "#offset", -// desc = "Offset a mask" -// ) -// public Mask offset(double x, double y, double z, Mask mask) { -// return new OffsetMask(mask, BlockVector3.at(x, y, z)); -// } -// -// @Command( -// name = "#haslight", -// desc = "Restricts to blocks with light (sky or emitted)" -// ) -// public Mask haslight(Extent extent) { -// return new LightMask(extent, 1, Integer.MAX_VALUE); -// } -// -// @Command( -// name = "#nolight", -// desc = "Restrict to blocks without light (sky or emitted)" -// ) -// public Mask nolight(Extent extent) { -// return new LightMask(extent, 0, 0); -// } -// -// @Command( -// name = "#existing", -// desc = "If there is a non air block" -// ) -// public Mask existing(Extent extent) { -// return new ExistingBlockMask(extent); -// } -// -// @Command( -// name = "#solid", -// desc = "If there is a solid block" -// ) -// public Mask solid(Extent extent) { -// return new SolidBlockMask(extent); -// } -// -// @Command( -// name = "#liquid", -// desc = "If there is a solid block" -// ) -// public Mask liquid(Extent extent) { -// return new BlockMaskBuilder().addAll(b -> b.getMaterial().isLiquid()).build(extent); -// } -// -// @Command( -// name = "#dregion", -// aliases = {"#dselection", "#dsel"}, -// desc = "inside the player's selection" -// ) -// public Mask dregion() { -// return new RegionMask(new RequestSelection()); -// } -// -// @Command( -// name = "#region", -// aliases = {"#selection", "#sel"}, -// desc = "inside the provided selection" -// ) -// public Mask selection(Player player, LocalSession session) throws IncompleteRegionException { -// return new RegionMask(session.getSelection(player.getWorld()).clone()); -// } -// -// @Command( -// name = "#xaxis", -// desc = "Restrict to initial x axis" -// ) -// public Mask xaxis() { -// return new XAxisMask(); -// } -// -// @Command( -// name = "#yaxis", -// desc = "Restrict to initial y axis" -// ) -// public Mask yaxis() { -// return new YAxisMask(); -// } -// -// @Command( -// name = "#zaxis", -// desc = "Restrict to initial z axis" -// ) -// public Mask zaxis() { -// return new ZAxisMask(); -// } -// -// @Command( -// name = "#id", -// desc = "Restrict to initial id" -// ) -// public Mask id(Extent extent) { -// return new IdMask(extent); -// } -// -// @Command( -// name = "#data", -// desc = "Restrict to initial data" -// ) -// public Mask data(Extent extent) { -// return new DataMask(extent); -// } -// -// @Command( -// name = "#iddata", -// desc = "Restrict to initial block id and data" -// ) -// public Mask iddata(Extent extent) { -// return new IdDataMask(extent); -// } -// -// @Command( -// name = "#air", -// desc = "Restrict to types of air" -// ) -// public Mask air(Extent extent) { -// return new BlockMaskBuilder().addAll(b -> b.getMaterial().isAir()).build(extent); -// } -// -// @Command( -// name = "#wall", -// desc = "Restrict to walls (any block n,e,s,w of air)" -// ) -// public Mask wall(Extent extent) { -// Mask blockMask = air(extent); -// return new MaskUnion(new ExistingBlockMask(extent), new WallMask(blockMask, 1, 8)); -// } -// -// @Command( -// name = "#surface", -// desc = "Restrict to surfaces (any solid block touching air)" -// ) -// public Mask surface(Extent extent) { -// return new SurfaceMask(extent); -// } -// -// @Command( -// name = "\\", -// aliases = {"/", "#angle", "#\\", "#/"}, -// desc = "Restrict to specific terrain angle", -// descFooter = "Restrict to specific terrain angle\n" + -// "The -o flag will only overlay\n" + -// "Example: /[0d][45d]\n" + -// "Explanation: Allows any block where the adjacent block is between 0 and 45 degrees.\n" + -// "Example: /[3][20]\n" + -// "Explanation: Allows any block where the adjacent block is between 3 and 20 blocks below" +package com.sk89q.worldedit.command; + +import com.boydti.fawe.object.mask.AdjacentAnyMask; +import com.boydti.fawe.object.mask.AdjacentMask; +import com.boydti.fawe.object.mask.AngleMask; +import com.boydti.fawe.object.mask.BiomeMask; +import com.boydti.fawe.object.mask.BlockLightMask; +import com.boydti.fawe.object.mask.BrightnessMask; +import com.boydti.fawe.object.mask.DataMask; +import com.boydti.fawe.object.mask.ExtremaMask; +import com.boydti.fawe.object.mask.IdDataMask; +import com.boydti.fawe.object.mask.IdMask; +import com.boydti.fawe.object.mask.LightMask; +import com.boydti.fawe.object.mask.OpacityMask; +import com.boydti.fawe.object.mask.ROCAngleMask; +import com.boydti.fawe.object.mask.RadiusMask; +import com.boydti.fawe.object.mask.RandomMask; +import com.boydti.fawe.object.mask.SimplexMask; +import com.boydti.fawe.object.mask.SkyLightMask; +import com.boydti.fawe.object.mask.SurfaceMask; +import com.boydti.fawe.object.mask.WallMask; +import com.boydti.fawe.object.mask.XAxisMask; +import com.boydti.fawe.object.mask.YAxisMask; +import com.boydti.fawe.object.mask.ZAxisMask; +import com.sk89q.worldedit.IncompleteRegionException; +import com.sk89q.worldedit.LocalSession; +import com.sk89q.worldedit.WorldEdit; +import com.sk89q.worldedit.command.util.CommandPermissionsConditionGenerator; +import com.sk89q.worldedit.entity.Player; +import com.sk89q.worldedit.extent.Extent; +import com.sk89q.worldedit.function.mask.BlockMaskBuilder; +import com.sk89q.worldedit.function.mask.ExistingBlockMask; +import com.sk89q.worldedit.function.mask.ExpressionMask; +import com.sk89q.worldedit.function.mask.Mask; +import com.sk89q.worldedit.function.mask.MaskIntersection; +import com.sk89q.worldedit.function.mask.MaskUnion; +import com.sk89q.worldedit.function.mask.Masks; +import com.sk89q.worldedit.function.mask.OffsetMask; +import com.sk89q.worldedit.function.mask.RegionMask; +import com.sk89q.worldedit.function.mask.SolidBlockMask; +import com.sk89q.worldedit.internal.expression.Expression; +import com.sk89q.worldedit.internal.expression.ExpressionException; +import com.sk89q.worldedit.internal.expression.runtime.ExpressionEnvironment; +import com.sk89q.worldedit.math.BlockVector3; +import com.sk89q.worldedit.math.Vector3; +import com.sk89q.worldedit.regions.shape.WorldEditExpressionEnvironment; +import com.sk89q.worldedit.session.request.RequestSelection; +import com.sk89q.worldedit.world.biome.BiomeType; +import org.enginehub.piston.annotation.Command; +import org.enginehub.piston.annotation.CommandContainer; +import org.enginehub.piston.annotation.param.Arg; +import org.enginehub.piston.annotation.param.Switch; + +//@Command(aliases = {"masks"}, +// desc = "Help for the various masks. [More Info](https://git.io/v9r4K)", +// descFooter = "Masks determine if a block can be placed\n" + +// " - Use [brackets] for arguments\n" + +// " - Use , to OR multiple\n" + +// " - Use & to AND multiple\n" + +// "e.g. >[stone,dirt],#light[0][5],$jungle\n" + +// "More Info: https://git.io/v9r4K" //) -// public Mask angle(Extent extent, @Arg(name="min", desc = "min angle") String minStr, @Arg(name="max", desc = "max angle") String maxStr, @Switch(name = 'o', desc = "TODO") boolean overlay, @Arg(name = "distance", desc = "int", def = "1") int distanceOpt) throws ExpressionException { -// double y1, y2; -// boolean override; -// if (maxStr.endsWith("d")) { -// double y1d = Expression.compile(minStr.substring(0, minStr.length() - 1)).evaluate(); -// double y2d = Expression.compile(maxStr.substring(0, maxStr.length() - 1)).evaluate(); -// y1 = Math.tan(y1d * (Math.PI / 180)); -// y2 = Math.tan(y2d * (Math.PI / 180)); -// } else { -// y1 = Expression.compile(minStr).evaluate(); -// y2 = Expression.compile(maxStr).evaluate(); -// } -// return new AngleMask(extent, y1, y2, overlay, distanceOpt); -// } -// -// @Command( -// name = "(", -// aliases = {")", "#roc", "#(", "#)"}, -// desc = "Restrict to near specific terrain slope rate of change", -// descFooter = "Restrict to near specific terrain slope rate of change\n" + -// "The -o flag will only overlay\n" + -// "Example: ([0d][45d][5]\n" + -// "Explanation: Restrict near where the angle changes between 0-45 degrees within 5 blocks\n" + -// "Note: Use negatives for decreasing slope" -//) -// public Mask roc(Extent extent, @Arg(name="min", desc = "min angle") String minStr, @Arg(name="max", desc = "max angle") String maxStr, @Switch(name = 'o', desc = "TODO") boolean overlay, @Arg(name = "distance", desc = "int", def = "4") int distanceOpt) throws ExpressionException { -// double y1, y2; -// boolean override; -// if (maxStr.endsWith("d")) { -// double y1d = Expression.compile(minStr.substring(0, minStr.length() - 1)).evaluate(); -// double y2d = Expression.compile(maxStr.substring(0, maxStr.length() - 1)).evaluate(); -// y1 = Math.tan(y1d * (Math.PI / 180)); -// y2 = Math.tan(y2d * (Math.PI / 180)); -// } else { -// y1 = Expression.compile(minStr).evaluate(); -// y2 = Expression.compile(maxStr).evaluate(); -// } -// return new ROCAngleMask(extent, y1, y2, overlay, distanceOpt); -// } -// -// @Command( -// name = "^", -// aliases = {"#extrema", "#^"}, -// desc = "Restrict to near specific terrain extrema", -// descFooter = "Restrict to near specific terrain extrema\n" + -// "The -o flag will only overlay\n" + -// "Example: ([0d][45d][5]\n" + -// "Explanation: Restrict to near 45 degrees of local maxima\n" + -// "Note: Use negatives for local minima" -//) -// public Mask extrema(Extent extent, @Arg(name="min", desc = "min angle") String minStr, @Arg(name="max", desc = "max angle") String maxStr, @Switch(name = 'o', desc = "TODO") boolean overlay, @Arg(name = "distance", desc = "int", def = "4") int distanceOpt) throws ExpressionException { -// double y1, y2; -// boolean override; -// if (maxStr.endsWith("d")) { -// double y1d = Expression.compile(minStr.substring(0, minStr.length() - 1)).evaluate(); -// double y2d = Expression.compile(maxStr.substring(0, maxStr.length() - 1)).evaluate(); -// y1 = Math.tan(y1d * (Math.PI / 180)); -// y2 = Math.tan(y2d * (Math.PI / 180)); -// } else { -// y1 = Expression.compile(minStr).evaluate(); -// y2 = Expression.compile(maxStr).evaluate(); -// } -// return new ExtremaMask(extent, y1, y2, overlay, distanceOpt); -// } -// -// @Command( -// name = "{", -// aliases = {"#{"}, -// desc = "Restricts blocks to within a specific radius range of the initial block" -//) -// public Mask radius(@Arg(name="mine", desc = "min light") double minInt, @Arg(name="mine", desc = "max light") double maxInt) throws ExpressionException { -// return new RadiusMask((int) minInt, (int) maxInt); -// } -// -// @Command( -// name = "|", -// aliases = {"#|", "#side"}, -// desc = "sides with a specific number of other blocks" -//) -// public Mask wall(Mask mask, @Arg(name="mine", desc = "min light") double minInt, @Arg(name="mine", desc = "max light") double maxInt) throws ExpressionException { -// return new WallMask(mask, (int) minInt, (int) maxInt); -// } -// -// @Command( -// name = "~", -// aliases = {"#~", "#adjacent"}, -// desc = "Adjacent to a specific number of other blocks" -//) -// public Mask adjacent(Mask mask, @Arg(name = "min", desc = "double", def = "-1") double min, @Arg(name = "max", desc = "double", def = "-1") double max) throws ExpressionException { -// if (min == -1 && max == -1) { -// min = 1; -// max = 8; -// } else if (max == -1) max = min; -// if (max >= 8 && min == 1) { -// return new AdjacentAnyMask(mask); -// } -// return new AdjacentMask(mask, (int) min, (int) max); -// } -// -// @Command( -// name = "<", -// aliases = {"#<", "#below"}, -// desc = "below a specific block" -//) -// public Mask below(Mask mask) throws ExpressionException { -// OffsetMask offsetMask = new OffsetMask(mask, BlockVector3.at(0, 1, 0)); -// return new MaskIntersection(offsetMask, Masks.negate(mask)); -// } -// -// @Command( -// name = ">", -// aliases = {"#>", "#above"}, -// desc = "above a specific block" -//) -// public Mask above(Mask mask) throws ExpressionException { -// OffsetMask offsetMask = new OffsetMask(mask, BlockVector3.at(0, -1, 0)); -// return new MaskIntersection(offsetMask, Masks.negate(mask)); -// } -// -// @Command( -// name = "$", -// aliases = {"#biome", "#$"}, -// desc = "in a specific biome", -// descFooter = "in a specific biome. For a list of biomes use //biomelist" -//) -// public Mask biome(Extent extent, BiomeType biome) throws ExpressionException { -// return new BiomeMask(extent, biome); -// } -// -// @Command( -// name = "%", -// aliases = {"#%", "#percent"}, -// desc = "percentage chance" -//) -// public Mask random(double chance) throws ExpressionException { -// chance = chance / 100; -// return new RandomMask(chance); -// } -// -// @Command( -// name = "=", -// aliases = {"#=", "#expression"}, -// desc = "expression mask" -//) -// public Mask expression(Extent extent, String input) throws ExpressionException { -// Expression exp = Expression.compile(input, "x", "y", "z"); -// ExpressionEnvironment env = new WorldEditExpressionEnvironment(extent, Vector3.ONE, Vector3.ZERO); -// exp.setEnvironment(env); -// return new ExpressionMask(exp); -// } -// -// @Command( -// name = "!", -// aliases = {"#not", "#negate", "#!"}, -// desc = "Negate another mask" -//) -// public Mask expression(Mask mask) throws ExpressionException { -// return Masks.negate(mask); -// } -//} +@CommandContainer//(superTypes = CommandPermissionsConditionGenerator.Registration.class) +public class MaskCommands { + private final WorldEdit worldEdit; + + public MaskCommands(WorldEdit worldEdit) { + this.worldEdit = worldEdit; + } + + @Command( + name = "#simplex", + desc = "Use simplex noise as the mask" + ) + public Mask simplex(double scale, @Arg(name="mine", desc = "min light") double minInt, @Arg(name="mine", desc = "max light") double maxInt) { + scale = 1d / Math.max(1, scale); + minInt = (minInt - 50) / 50; + maxInt = (maxInt - 50) / 50; + return new SimplexMask(scale, minInt, maxInt); + } + + @Command( + name = "#light", + desc = "Restrict to specific light levels" + ) + public Mask light(Extent extent, @Arg(name="mine", desc = "min light") double minInt, @Arg(name="mine", desc = "max light") double maxInt) { + return new LightMask(extent, (int) minInt, (int) maxInt); + } + + @Command( + name = "#false", + desc = "Always false" + ) + public Mask falseMask(Extent extent) { + return Masks.alwaysFalse(); + } + + @Command( + name = "#true", + desc = "Always true" + ) + public Mask trueMask(Extent extent) { + return Masks.alwaysTrue(); + } + + @Command( + name = "#skylight", + desc = "Restrict to specific sky light levels" + ) + public Mask skylight(Extent extent, @Arg(name="mine", desc = "min light") double minInt, @Arg(name="mine", desc = "max light") double maxInt) { + return new SkyLightMask(extent, (int) minInt, (int) maxInt); + } + + @Command( + name = "#blocklight", + aliases = {"#emittedlight"}, + desc = "Restrict to specific block light levels" + ) + public Mask blocklight(Extent extent, @Arg(name="mine", desc = "min light") double minInt, @Arg(name="mine", desc = "max light") double maxInt) { + return new BlockLightMask(extent, (int) minInt, (int) maxInt); + } + + @Command( + name = "#opacity", + desc = "Restrict to specific opacity levels" + ) + public Mask opacity(Extent extent, @Arg(name="mine", desc = "min light") double minInt, @Arg(name="mine", desc = "max light") double maxInt) { + return new OpacityMask(extent, (int) minInt, (int) maxInt); + } + + @Command( + name = "#brightness", + desc = "Restrict to specific block brightness" + ) + public Mask brightness(Extent extent, @Arg(name="mine", desc = "min light") double minInt, @Arg(name="mine", desc = "max light") double maxInt) { + return new BrightnessMask(extent, (int) minInt, (int) maxInt); + } + + @Command( + name = "#offset", + desc = "Offset a mask" + ) + public Mask offset(double x, double y, double z, Mask mask) { + return new OffsetMask(mask, BlockVector3.at(x, y, z)); + } + + @Command( + name = "#haslight", + desc = "Restricts to blocks with light (sky or emitted)" + ) + public Mask haslight(Extent extent) { + return new LightMask(extent, 1, Integer.MAX_VALUE); + } + + @Command( + name = "#nolight", + desc = "Restrict to blocks without light (sky or emitted)" + ) + public Mask nolight(Extent extent) { + return new LightMask(extent, 0, 0); + } + + @Command( + name = "#existing", + desc = "If there is a non air block" + ) + public Mask existing(Extent extent) { + return new ExistingBlockMask(extent); + } + + @Command( + name = "#solid", + desc = "If there is a solid block" + ) + public Mask solid(Extent extent) { + return new SolidBlockMask(extent); + } + + @Command( + name = "#liquid", + desc = "If there is a solid block" + ) + public Mask liquid(Extent extent) { + return new BlockMaskBuilder().addAll(b -> b.getMaterial().isLiquid()).build(extent); + } + + @Command( + name = "#dregion", + aliases = {"#dselection", "#dsel"}, + desc = "inside the player's selection" + ) + public Mask dregion() { + return new RegionMask(new RequestSelection()); + } + + @Command( + name = "#region", + aliases = {"#selection", "#sel"}, + desc = "inside the provided selection" + ) + public Mask selection(Player player, LocalSession session) throws IncompleteRegionException { + return new RegionMask(session.getSelection(player.getWorld()).clone()); + } + + @Command( + name = "#xaxis", + desc = "Restrict to initial x axis" + ) + public Mask xaxis() { + return new XAxisMask(); + } + + @Command( + name = "#yaxis", + desc = "Restrict to initial y axis" + ) + public Mask yaxis() { + return new YAxisMask(); + } + + @Command( + name = "#zaxis", + desc = "Restrict to initial z axis" + ) + public Mask zaxis() { + return new ZAxisMask(); + } + + @Command( + name = "#id", + desc = "Restrict to initial id" + ) + public Mask id(Extent extent) { + return new IdMask(extent); + } + + @Command( + name = "#data", + desc = "Restrict to initial data" + ) + public Mask data(Extent extent) { + return new DataMask(extent); + } + + @Command( + name = "#iddata", + desc = "Restrict to initial block id and data" + ) + public Mask iddata(Extent extent) { + return new IdDataMask(extent); + } + + @Command( + name = "#air", + desc = "Restrict to types of air" + ) + public Mask air(Extent extent) { + return new BlockMaskBuilder().addAll(b -> b.getMaterial().isAir()).build(extent); + } + + @Command( + name = "#wall", + desc = "Restrict to walls (any block n,e,s,w of air)" + ) + public Mask wall(Extent extent) { + Mask blockMask = air(extent); + return new MaskUnion(new ExistingBlockMask(extent), new WallMask(blockMask, 1, 8)); + } + + @Command( + name = "#surface", + desc = "Restrict to surfaces (any solid block touching air)" + ) + public Mask surface(Extent extent) { + return new SurfaceMask(extent); + } + + @Command( + name = "\\", + aliases = {"/", "#angle", "#\\", "#/"}, + desc = "Restrict to specific terrain angle", + descFooter = "Restrict to specific terrain angle\n" + + "The -o flag will only overlay\n" + + "Example: /[0d][45d]\n" + + "Explanation: Allows any block where the adjacent block is between 0 and 45 degrees.\n" + + "Example: /[3][20]\n" + + "Explanation: Allows any block where the adjacent block is between 3 and 20 blocks below" +) + public Mask angle(Extent extent, @Arg(name="min", desc = "min angle") String minStr, @Arg(name="max", desc = "max angle") String maxStr, @Switch(name = 'o', desc = "TODO") boolean overlay, @Arg(name = "distance", desc = "int", def = "1") int distanceOpt) throws ExpressionException { + double y1, y2; + boolean override; + if (maxStr.endsWith("d")) { + double y1d = Expression.compile(minStr.substring(0, minStr.length() - 1)).evaluate(); + double y2d = Expression.compile(maxStr.substring(0, maxStr.length() - 1)).evaluate(); + y1 = Math.tan(y1d * (Math.PI / 180)); + y2 = Math.tan(y2d * (Math.PI / 180)); + } else { + y1 = Expression.compile(minStr).evaluate(); + y2 = Expression.compile(maxStr).evaluate(); + } + return new AngleMask(extent, y1, y2, overlay, distanceOpt); + } + + @Command( + name = "(", + aliases = {")", "#roc", "#(", "#)"}, + desc = "Restrict to near specific terrain slope rate of change", + descFooter = "Restrict to near specific terrain slope rate of change\n" + + "The -o flag will only overlay\n" + + "Example: ([0d][45d][5]\n" + + "Explanation: Restrict near where the angle changes between 0-45 degrees within 5 blocks\n" + + "Note: Use negatives for decreasing slope" +) + public Mask roc(Extent extent, @Arg(name="min", desc = "min angle") String minStr, @Arg(name="max", desc = "max angle") String maxStr, @Switch(name = 'o', desc = "TODO") boolean overlay, @Arg(name = "distance", desc = "int", def = "4") int distanceOpt) throws ExpressionException { + double y1, y2; + boolean override; + if (maxStr.endsWith("d")) { + double y1d = Expression.compile(minStr.substring(0, minStr.length() - 1)).evaluate(); + double y2d = Expression.compile(maxStr.substring(0, maxStr.length() - 1)).evaluate(); + y1 = Math.tan(y1d * (Math.PI / 180)); + y2 = Math.tan(y2d * (Math.PI / 180)); + } else { + y1 = Expression.compile(minStr).evaluate(); + y2 = Expression.compile(maxStr).evaluate(); + } + return new ROCAngleMask(extent, y1, y2, overlay, distanceOpt); + } + + @Command( + name = "^", + aliases = {"#extrema", "#^"}, + desc = "Restrict to near specific terrain extrema", + descFooter = "Restrict to near specific terrain extrema\n" + + "The -o flag will only overlay\n" + + "Example: ([0d][45d][5]\n" + + "Explanation: Restrict to near 45 degrees of local maxima\n" + + "Note: Use negatives for local minima" +) + public Mask extrema(Extent extent, @Arg(name="min", desc = "min angle") String minStr, @Arg(name="max", desc = "max angle") String maxStr, @Switch(name = 'o', desc = "TODO") boolean overlay, @Arg(name = "distance", desc = "int", def = "4") int distanceOpt) throws ExpressionException { + double y1, y2; + boolean override; + if (maxStr.endsWith("d")) { + double y1d = Expression.compile(minStr.substring(0, minStr.length() - 1)).evaluate(); + double y2d = Expression.compile(maxStr.substring(0, maxStr.length() - 1)).evaluate(); + y1 = Math.tan(y1d * (Math.PI / 180)); + y2 = Math.tan(y2d * (Math.PI / 180)); + } else { + y1 = Expression.compile(minStr).evaluate(); + y2 = Expression.compile(maxStr).evaluate(); + } + return new ExtremaMask(extent, y1, y2, overlay, distanceOpt); + } + + @Command( + name = "{", + aliases = {"#{"}, + desc = "Restricts blocks to within a specific radius range of the initial block" +) + public Mask radius(@Arg(name="mine", desc = "min light") double minInt, @Arg(name="mine", desc = "max light") double maxInt) throws ExpressionException { + return new RadiusMask((int) minInt, (int) maxInt); + } + + @Command( + name = "|", + aliases = {"#|", "#side"}, + desc = "sides with a specific number of other blocks" +) + public Mask wall(Mask mask, @Arg(name="mine", desc = "min light") double minInt, @Arg(name="mine", desc = "max light") double maxInt) throws ExpressionException { + return new WallMask(mask, (int) minInt, (int) maxInt); + } + + @Command( + name = "~", + aliases = {"#~", "#adjacent"}, + desc = "Adjacent to a specific number of other blocks" +) + public Mask adjacent(Mask mask, @Arg(name = "min", desc = "double", def = "-1") double min, @Arg(name = "max", desc = "double", def = "-1") double max) throws ExpressionException { + if (min == -1 && max == -1) { + min = 1; + max = 8; + } else if (max == -1) max = min; + if (max >= 8 && min == 1) { + return new AdjacentAnyMask(mask); + } + return new AdjacentMask(mask, (int) min, (int) max); + } + + @Command( + name = "<", + aliases = {"#<", "#below"}, + desc = "below a specific block" +) + public Mask below(Mask mask) throws ExpressionException { + OffsetMask offsetMask = new OffsetMask(mask, BlockVector3.at(0, 1, 0)); + return new MaskIntersection(offsetMask, Masks.negate(mask)); + } + + @Command( + name = ">", + aliases = {"#>", "#above"}, + desc = "above a specific block" +) + public Mask above(Mask mask) throws ExpressionException { + OffsetMask offsetMask = new OffsetMask(mask, BlockVector3.at(0, -1, 0)); + return new MaskIntersection(offsetMask, Masks.negate(mask)); + } + + @Command( + name = "$", + aliases = {"#biome", "#$"}, + desc = "in a specific biome", + descFooter = "in a specific biome. For a list of biomes use //biomelist" +) + public Mask biome(Extent extent, BiomeType biome) throws ExpressionException { + return new BiomeMask(extent, biome); + } + + @Command( + name = "%", + aliases = {"#%", "#percent"}, + desc = "percentage chance" +) + public Mask random(double chance) throws ExpressionException { + chance = chance / 100; + return new RandomMask(chance); + } + + @Command( + name = "=", + aliases = {"#=", "#expression"}, + desc = "expression mask" +) + public Mask expression(Extent extent, String input) throws ExpressionException { + Expression exp = Expression.compile(input, "x", "y", "z"); + ExpressionEnvironment env = new WorldEditExpressionEnvironment(extent, Vector3.ONE, Vector3.ZERO); + exp.setEnvironment(env); + return new ExpressionMask(exp); + } + + @Command( + name = "!", + aliases = {"#not", "#negate", "#!"}, + desc = "Negate another mask" +) + public Mask expression(Mask mask) throws ExpressionException { + return Masks.negate(mask); + } +} diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/PaintBrushCommands.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/PaintBrushCommands.java index 348150638..0cda0303b 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/PaintBrushCommands.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/PaintBrushCommands.java @@ -77,6 +77,28 @@ public class PaintBrushCommands { .ofTypes(ImmutableList.of(Key.of(double.class))) .build(); + public static void register(CommandManagerService service, CommandManager commandManager, CommandRegistrationHandler registration) { + commandManager.register("paint", builder -> { + builder.description(TextComponent.of("Paint brush, apply a function to a surface")); + builder.action(org.enginehub.piston.Command.Action.NULL_ACTION); + + CommandManager manager = service.newCommandManager(); + registration.register( + manager, + PaintBrushCommandsRegistration.builder(), + new PaintBrushCommands() + ); + + builder.condition(new PermissionCondition(ImmutableSet.of("worldedit.brush.paint"))); + + builder.addParts(REGION_FACTORY, RADIUS, DENSITY); + builder.addPart(SubCommandPart.builder(TranslatableComponent.of("type"), TextComponent.of("Type of brush to use")) + .withCommands(manager.getAllCommands().collect(Collectors.toList())) + .required() + .build()); + }); + } + private void setPaintBrush(CommandParameters parameters, Player player, LocalSession localSession, Contextual generatorFactory) throws WorldEditException { double radius = requireNonNull(RADIUS.value(parameters).asSingle(double.class)); diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/ToolCommands.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/ToolCommands.java index 6af865433..718f19af2 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/ToolCommands.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/ToolCommands.java @@ -20,14 +20,26 @@ package com.sk89q.worldedit.command; import com.boydti.fawe.config.BBC; +import com.boydti.fawe.object.brush.BrushSettings; import com.boydti.fawe.object.brush.InspectBrush; +import com.boydti.fawe.object.brush.TargetMode; +import com.boydti.fawe.object.brush.scroll.ScrollAction; +import com.boydti.fawe.object.brush.visualization.VisualMode; +import com.boydti.fawe.object.extent.ResettableExtent; +import com.boydti.fawe.util.MathMan; +import com.boydti.fawe.util.StringMan; +import com.google.common.collect.Iterables; +import com.sk89q.worldedit.EditSession; import com.sk89q.worldedit.LocalConfiguration; import com.sk89q.worldedit.LocalSession; import com.sk89q.worldedit.WorldEdit; import com.sk89q.worldedit.WorldEditException; +import com.sk89q.worldedit.blocks.BaseItem; import com.sk89q.worldedit.blocks.BaseItemStack; +import com.sk89q.worldedit.command.argument.Arguments; import com.sk89q.worldedit.command.tool.BlockDataCyler; import com.sk89q.worldedit.command.tool.BlockReplacer; +import com.sk89q.worldedit.command.tool.BrushTool; import com.sk89q.worldedit.command.tool.DistanceWand; import com.sk89q.worldedit.command.tool.FloatingTreeRemover; import com.sk89q.worldedit.command.tool.FloodFillTool; @@ -39,7 +51,12 @@ import com.sk89q.worldedit.command.tool.TreePlanter; import com.sk89q.worldedit.command.util.CommandPermissions; import com.sk89q.worldedit.command.util.CommandPermissionsConditionGenerator; import com.sk89q.worldedit.entity.Player; +import com.sk89q.worldedit.event.platform.CommandEvent; +import com.sk89q.worldedit.extension.platform.PlatformCommandManager; +import com.sk89q.worldedit.function.mask.Mask; import com.sk89q.worldedit.function.pattern.Pattern; +import com.sk89q.worldedit.internal.annotation.Range; +import com.sk89q.worldedit.internal.command.CommandArgParser; import com.sk89q.worldedit.internal.expression.Expression; import com.sk89q.worldedit.util.HandSide; import com.sk89q.worldedit.util.TreeGenerator; @@ -47,6 +64,9 @@ import com.sk89q.worldedit.world.item.ItemType; import org.enginehub.piston.annotation.Command; import org.enginehub.piston.annotation.CommandContainer; import org.enginehub.piston.annotation.param.Arg; +import org.enginehub.piston.annotation.param.Switch; + +import java.util.List; @CommandContainer(superTypes = CommandPermissionsConditionGenerator.Registration.class) public class ToolCommands { @@ -56,16 +76,6 @@ public class ToolCommands { this.we = we; } - @Command( - name = "none", - desc = "Unbind a bound tool from your current item" - ) - public void none(Player player, LocalSession session) throws WorldEditException { - - session.setTool(player, null); - player.print("Tool unbound from your current item."); - } - @Command( name = "/selwand", aliases = "selwand", diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/ToolUtilCommands.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/ToolUtilCommands.java index 471cd1304..fc3d8d8c7 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/ToolUtilCommands.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/ToolUtilCommands.java @@ -19,18 +19,38 @@ package com.sk89q.worldedit.command; +import com.boydti.fawe.config.BBC; +import com.boydti.fawe.object.brush.BrushSettings; +import com.boydti.fawe.object.brush.TargetMode; +import com.boydti.fawe.object.brush.scroll.ScrollAction; +import com.boydti.fawe.object.brush.visualization.VisualMode; +import com.boydti.fawe.object.extent.ResettableExtent; +import com.boydti.fawe.util.MathMan; +import com.boydti.fawe.util.StringMan; +import com.google.common.collect.Iterables; +import com.sk89q.worldedit.EditSession; import com.sk89q.worldedit.LocalSession; import com.sk89q.worldedit.WorldEdit; import com.sk89q.worldedit.WorldEditException; +import com.sk89q.worldedit.blocks.BaseItem; +import com.sk89q.worldedit.command.argument.Arguments; +import com.sk89q.worldedit.command.tool.BrushTool; import com.sk89q.worldedit.command.util.CommandPermissions; import com.sk89q.worldedit.command.util.CommandPermissionsConditionGenerator; import com.sk89q.worldedit.entity.Player; +import com.sk89q.worldedit.event.platform.CommandEvent; +import com.sk89q.worldedit.extension.platform.PlatformCommandManager; import com.sk89q.worldedit.function.mask.Mask; import com.sk89q.worldedit.function.pattern.Pattern; +import com.sk89q.worldedit.internal.annotation.Range; +import com.sk89q.worldedit.internal.command.CommandArgParser; import com.sk89q.worldedit.util.HandSide; import org.enginehub.piston.annotation.Command; import org.enginehub.piston.annotation.CommandContainer; import org.enginehub.piston.annotation.param.Arg; +import org.enginehub.piston.annotation.param.Switch; + +import java.util.List; /** * Tool commands. @@ -44,97 +64,349 @@ public class ToolUtilCommands { } @Command( - name = "/", - aliases = { "," }, - desc = "Toggle the super pickaxe function" + name = "mask", + aliases = {"/mask"}, + desc = "Set the brush destination mask" ) - @CommandPermissions("worldedit.superpickaxe") - public void togglePickaxe(Player player, LocalSession session, - @Arg(desc = "The new super pickaxe state", def = "") - Boolean superPickaxe) { - boolean hasSuperPickAxe = session.hasSuperPickAxe(); - if (superPickaxe != null && superPickaxe == hasSuperPickAxe) { - player.printError("Super pickaxe already " + (superPickaxe ? "enabled" : "disabled") + "."); + @CommandPermissions({"worldedit.brush.options.mask", "worldedit.mask.brush"}) + public void mask(Player player, LocalSession session, + @Switch(name = 'h', desc = "TODO") + boolean offHand, + @Arg(desc = "The destination mask", def = "") + Mask maskOpt, + Arguments arguments) + throws WorldEditException { + BrushTool tool = session.getBrushTool(player, false); + if (tool == null) { + player.print(BBC.BRUSH_NONE.s()); return; } - if (hasSuperPickAxe) { - session.disableSuperPickAxe(); - player.print("Super pickaxe disabled."); - } else { - session.enableSuperPickAxe(); - player.print("Super pickaxe enabled."); - } - - } - - @Command( - name = "mask", - desc = "Set the brush mask" - ) - @CommandPermissions("worldedit.brush.options.mask") - public void mask(Player player, LocalSession session, - @Arg(desc = "The mask to set", def = "") - Mask maskOpt) throws WorldEditException { - session.getBrushTool(player).setMask(maskOpt); if (maskOpt == null) { - player.print("Brush mask disabled."); - } else { - player.print("Brush mask set."); + BBC.BRUSH_MASK_DISABLED.send(player); + tool.setMask(null); + return; } + BrushSettings settings = offHand ? tool.getOffHand() : tool.getContext(); + String lastArg = Iterables.getLast(CommandArgParser.spaceSplit(arguments.get())).getSubstring(); + System.out.println(lastArg + " TODO check this is not the whole command"); + settings.addSetting(BrushSettings.SettingType.MASK, lastArg); + settings.setMask(maskOpt); + tool.update(); + BBC.BRUSH_MASK.send(player); } @Command( - name = "material", - aliases = { "/material" }, - desc = "Set the brush material" + name = "material", + aliases = {"mat", "/material", "pattern"}, + desc = "Set the brush material" ) @CommandPermissions("worldedit.brush.options.material") public void material(Player player, LocalSession session, - @Arg(desc = "The pattern of blocks to use") - Pattern pattern) throws WorldEditException { - session.getBrushTool(player).setFill(pattern); - player.print("Brush material set."); + @Arg(desc = "brush material pattern", def = "") Pattern patternOpt, + @Switch(name = 'h', desc = "TODO") + boolean offHand, + Arguments arguments) throws WorldEditException { + BrushTool tool = session.getBrushTool(player, false); + if (tool == null) { + player.print(BBC.BRUSH_NONE.s()); + return; + } + if (patternOpt == null) { + BBC.BRUSH_MATERIAL.send(player); + tool.setFill(null); + return; + } + BrushSettings settings = offHand ? tool.getOffHand() : tool.getContext(); + settings.setFill(patternOpt); + String lastArg = Iterables.getLast(CommandArgParser.spaceSplit(arguments.get())).getSubstring(); + settings.addSetting(BrushSettings.SettingType.FILL, lastArg); + tool.update(); + BBC.BRUSH_MATERIAL.send(player); } @Command( - name = "range", - desc = "Set the brush range" + name = "range", + desc = "Set the brush range" ) @CommandPermissions("worldedit.brush.options.range") public void range(Player player, LocalSession session, - @Arg(desc = "The range of the brush") - int range) throws WorldEditException { - session.getBrushTool(player).setRange(range); - player.print("Brush range set."); + @Arg(desc = "Range") + int range) throws WorldEditException { + range = Math.max(0, Math.min(256, range)); + BrushTool tool = session.getBrushTool(player, false); + if (tool == null) { + player.print(BBC.BRUSH_NONE.s()); + return; + } + tool.setRange(range); + BBC.BRUSH_RANGE.send(player); } @Command( - name = "size", - desc = "Set the brush size" + name = "size", + desc = "Set the brush size" ) @CommandPermissions("worldedit.brush.options.size") public void size(Player player, LocalSession session, - @Arg(desc = "The size of the brush") - int size) throws WorldEditException { - we.checkMaxBrushRadius(size); - - session.getBrushTool(player).setSize(size); - player.print("Brush size set."); + @Arg(desc = "The size of the brush", def = "5") + int radius, + @Switch(name = 'h', desc = "TODO") + boolean offHand) throws WorldEditException { + we.checkMaxBrushRadius(radius); + BrushTool tool = session.getBrushTool(player, false); + if (tool == null) { + player.print(BBC.BRUSH_NONE.s()); + return; + } + BrushSettings settings = offHand ? tool.getOffHand() : tool.getContext(); + settings.setSize(radius); + tool.update(); + BBC.BRUSH_SIZE.send(player); } @Command( name = "tracemask", + aliases = {"tarmask", "tm", "targetmask"}, desc = "Set the mask used to stop tool traces" ) @CommandPermissions("worldedit.brush.options.tracemask") public void traceMask(Player player, LocalSession session, @Arg(desc = "The trace mask to set", def = "") Mask maskOpt) throws WorldEditException { - session.getBrushTool(player).setTraceMask(maskOpt); - if (maskOpt == null) { - player.print("Trace mask disabled."); + BrushTool tool = session.getBrushTool(player, false); + if (tool == null) { + BBC.BRUSH_NONE.send(player); + return; + } + tool.setTraceMask(maskOpt); + BBC.BRUSH_TARGET_MASK_SET.send(player, maskOpt.toString()); + } + + @Command( + name = "none", + aliases = {"/none"}, + desc = "Unbind a bound tool from your current item" + ) + public void none(Player player, LocalSession session) throws WorldEditException { + session.setTool(player, null); + BBC.TOOL_NONE.send(player); + } + + @Command( + name = "/", + aliases = {","}, + desc = "Toggle the super pickaxe function" + ) + @CommandPermissions("worldedit.superpickaxe") + public void togglePickaxe(Player player, LocalSession session, + @Arg(desc = "state", def = "on") String state) throws WorldEditException { + if (session.hasSuperPickAxe()) { + if ("on".equals(state)) { + BBC.SUPERPICKAXE_ENABLED.send(player); + return; + } + + session.disableSuperPickAxe(); + BBC.SUPERPICKAXE_DISABLED.send(player); } else { - player.print("Trace mask set."); + if ("off".equals(state)) { + + BBC.SUPERPICKAXE_DISABLED.send(player); + return; + } + session.enableSuperPickAxe(); + BBC.SUPERPICKAXE_ENABLED.send(player); } } + + @Command( + name = "primary", + desc = "Set the right click brush", + descFooter = "Set the right click brush" + ) + @CommandPermissions("worldedit.brush.primary") + public void primary(Player player, LocalSession session, + @Arg(desc = "The brush command", variable = true) List commandStr) throws WorldEditException { + BaseItem item = player.getItemInHand(HandSide.MAIN_HAND); + BrushTool tool = session.getBrushTool(player, false); + session.setTool(item, null, player); + String cmd = "brush " + StringMan.join(commandStr, " "); + CommandEvent event = new CommandEvent(player, cmd); + PlatformCommandManager.getInstance().handleCommandOnCurrentThread(event); + BrushTool newTool = session.getBrushTool(item, player, false); + if (newTool != null && tool != null) { + newTool.setSecondary(tool.getSecondary()); + } + } + + @Command( + name = "secondary", + desc = "Set the left click brush", + descFooter = "Set the left click brush" + ) + @CommandPermissions("worldedit.brush.secondary") + public void secondary(Player player, LocalSession session, + @Arg(desc = "The brush command", variable = true) List commandStr) + throws WorldEditException { + BaseItem item = player.getItemInHand(HandSide.MAIN_HAND); + BrushTool tool = session.getBrushTool(player, false); + session.setTool(item, null, player); + String cmd = "brush " + StringMan.join(commandStr, " "); + CommandEvent event = new CommandEvent(player, cmd); + PlatformCommandManager.getInstance().handleCommandOnCurrentThread(event); + BrushTool newTool = session.getBrushTool(item, player, false); + if (newTool != null && tool != null) { + newTool.setPrimary(tool.getPrimary()); + } + } + + @Command( + name = "visualize", + aliases = {"visual", "vis"}, + desc = "Toggle between different visualization modes", + descFooter = "Toggle between different visualization modes\n" + + "0 = No visualization\n" + + "1 = Single block at target position\n" + + "2 = Glass showing what blocks will be changed" + ) + @CommandPermissions("worldedit.brush.visualize") + public void visual(Player player, LocalSession session, @Arg(name = "mode", desc = "int", def = "0") @Range(min = 0, max = 2) int mode) + throws WorldEditException { + BrushTool tool = session.getBrushTool(player, false); + if (tool == null) { + BBC.BRUSH_NONE.send(player); + return; + } + VisualMode[] modes = VisualMode.values(); + VisualMode newMode = modes[MathMan.wrap(mode, 0, modes.length - 1)]; + tool.setVisualMode(player, newMode); + BBC.BRUSH_VISUAL_MODE_SET.send(player, newMode); + } + + @Command( + name = "target", + aliases = {"tar"}, + desc = "Toggle between different target modes" + ) + @CommandPermissions("worldedit.brush.target") + public void target(Player player, LocalSession session, + @Arg(name = "mode", desc = "int", def = "0") int mode) throws WorldEditException { + BrushTool tool = session.getBrushTool(player, false); + if (tool == null) { + BBC.BRUSH_NONE.send(player); + return; + } + TargetMode[] modes = TargetMode.values(); + TargetMode newMode = modes[MathMan.wrap(mode, 0, modes.length - 1)]; + tool.setTargetMode(newMode); + BBC.BRUSH_TARGET_MODE_SET.send(player, newMode); + } + + @Command( + name = "targetoffset", + aliases = {"to"}, + desc = "Set the targeting mask" + ) + @CommandPermissions("worldedit.brush.targetoffset") + public void targetOffset(Player player, EditSession editSession, LocalSession session, + int offset) throws WorldEditException { + BrushTool tool = session.getBrushTool(player, false); + if (tool == null) { + BBC.BRUSH_NONE.send(player); + return; + } + tool.setTargetOffset(offset); + BBC.BRUSH_TARGET_OFFSET_SET.send(player, offset); + } + + @Command( + name = "scroll", + desc = "Toggle between different target modes" + ) + @CommandPermissions("worldedit.brush.scroll") + public void scroll(Player player, EditSession editSession, LocalSession session, + @Switch(name = 'h', desc = "TODO") + boolean offHand, + @Arg(desc = "Target Modes") + String modes, + @Arg(desc = "The scroll action", variable = true) + List commandStr) throws WorldEditException { + // TODO NOT IMPLEMENTED Convert ScrollAction to an argument converter + BrushTool bt = session.getBrushTool(player, false); + if (bt == null) { + BBC.BRUSH_NONE.send(player); + return; + } + BrushSettings settings = offHand ? bt.getOffHand() : bt.getContext(); + ScrollAction action = ScrollAction.fromArguments(bt, player, session, StringMan.join(commandStr, " "), true); + settings.setScrollAction(action); + if (modes.equalsIgnoreCase("none")) { + BBC.BRUSH_SCROLL_ACTION_UNSET.send(player); + } else if (action != null) { + settings.addSetting(BrushSettings.SettingType.SCROLL_ACTION, modes); + BBC.BRUSH_SCROLL_ACTION_SET.send(player, modes); + } + bt.update(); + } + + + + @Command( + name = "smask", + aliases = {"/smask", "/sourcemask", "sourcemask"}, + desc = "Set the brush source mask", + descFooter = "Set the brush source mask" + ) + @CommandPermissions({"worldedit.brush.options.mask", "worldedit.mask.brush"}) + public void smask(Player player, LocalSession session, EditSession editSession, + @Arg(desc = "The destination mask", def = "") + Mask maskArg, + @Switch(name = 'h', desc = "TODO") + boolean offHand, + Arguments arguments) throws WorldEditException { + BrushTool tool = session.getBrushTool(player, false); + if (tool == null) { + player.print(BBC.BRUSH_NONE.s()); + return; + } + if (maskArg == null) { + BBC.BRUSH_SOURCE_MASK_DISABLED.send(player); + tool.setSourceMask(null); + return; + } + BrushSettings settings = offHand ? tool.getOffHand() : tool.getContext(); + String lastArg = Iterables.getLast(CommandArgParser.spaceSplit(arguments.get())).getSubstring(); + settings.addSetting(BrushSettings.SettingType.SOURCE_MASK, lastArg); + settings.setSourceMask(maskArg); + tool.update(); + BBC.BRUSH_SOURCE_MASK.send(player); + } + + @Command( + name = "transform", + desc = "Set the brush transform" + ) + @CommandPermissions({"worldedit.brush.options.transform", "worldedit.transform.brush"}) + public void transform(Player player, LocalSession session, EditSession editSession, + @Arg(desc = "The transform", def = "") ResettableExtent transform, + @Switch(name = 'h', desc = "TODO") + boolean offHand, + Arguments arguments) throws WorldEditException { + BrushTool tool = session.getBrushTool(player, false); + if (tool == null) { + player.print(BBC.BRUSH_NONE.s()); + return; + } + if (transform == null) { + BBC.BRUSH_TRANSFORM_DISABLED.send(player); + tool.setTransform(null); + return; + } + BrushSettings settings = offHand ? tool.getOffHand() : tool.getContext(); + String lastArg = Iterables.getLast(CommandArgParser.spaceSplit(arguments.get())).getSubstring(); + settings.addSetting(BrushSettings.SettingType.TRANSFORM, lastArg); + settings.setTransform(transform); + tool.update(); + BBC.BRUSH_TRANSFORM.send(player); + } } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/argument/RegistryConverter.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/argument/RegistryConverter.java index caaf29da6..c42dd5ea4 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/argument/RegistryConverter.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/argument/RegistryConverter.java @@ -54,7 +54,7 @@ public final class RegistryConverter implements ArgumentConvert @SuppressWarnings("unchecked") public static void register(CommandManager commandManager) { ImmutableList.of( - BlockTypes.class, + BlockType.class, BlockCategory.class, ItemType.class, ItemCategory.class, diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/PlatformCommandManager.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/PlatformCommandManager.java index a24a6cab7..81a0df32e 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/PlatformCommandManager.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/PlatformCommandManager.java @@ -19,38 +19,30 @@ package com.sk89q.worldedit.extension.platform; -import static com.google.common.base.Preconditions.checkNotNull; - import com.boydti.fawe.Fawe; import com.boydti.fawe.command.AnvilCommands; import com.boydti.fawe.command.AnvilCommandsRegistration; -import com.boydti.fawe.command.CFICommand; import com.boydti.fawe.command.CFICommands; import com.boydti.fawe.command.CFICommandsRegistration; import com.boydti.fawe.config.BBC; import com.boydti.fawe.config.Settings; import com.boydti.fawe.object.FawePlayer; import com.boydti.fawe.object.task.ThrowableSupplier; +import com.boydti.fawe.util.StringMan; import com.boydti.fawe.util.TaskManager; import com.boydti.fawe.wrappers.LocationMaskedPlayerWrapper; -import com.google.common.collect.HashMultimap; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; -import com.google.common.collect.Multimap; -import com.google.common.collect.SetMultimap; import com.google.common.reflect.TypeToken; import com.sk89q.worldedit.EditSession; import com.sk89q.worldedit.LocalConfiguration; import com.sk89q.worldedit.LocalSession; import com.sk89q.worldedit.WorldEdit; import com.sk89q.worldedit.command.ApplyBrushCommands; -import com.sk89q.worldedit.command.ApplyBrushCommandsRegistration; import com.sk89q.worldedit.command.BiomeCommands; import com.sk89q.worldedit.command.BiomeCommandsRegistration; import com.sk89q.worldedit.command.BrushCommands; import com.sk89q.worldedit.command.BrushCommandsRegistration; -import com.sk89q.worldedit.command.BrushOptionsCommands; -import com.sk89q.worldedit.command.BrushOptionsCommandsRegistration; import com.sk89q.worldedit.command.ChunkCommands; import com.sk89q.worldedit.command.ChunkCommandsRegistration; import com.sk89q.worldedit.command.ClipboardCommands; @@ -62,10 +54,11 @@ import com.sk89q.worldedit.command.GenerationCommands; import com.sk89q.worldedit.command.GenerationCommandsRegistration; import com.sk89q.worldedit.command.HistoryCommands; import com.sk89q.worldedit.command.HistoryCommandsRegistration; +import com.sk89q.worldedit.command.MaskCommands; +import com.sk89q.worldedit.command.MaskCommandsRegistration; import com.sk89q.worldedit.command.NavigationCommands; import com.sk89q.worldedit.command.NavigationCommandsRegistration; import com.sk89q.worldedit.command.PaintBrushCommands; -import com.sk89q.worldedit.command.PaintBrushCommandsRegistration; import com.sk89q.worldedit.command.PatternCommands; import com.sk89q.worldedit.command.PatternCommandsRegistration; import com.sk89q.worldedit.command.RegionCommands; @@ -123,6 +116,7 @@ import com.sk89q.worldedit.internal.command.CommandRegistrationHandler; import com.sk89q.worldedit.internal.command.exception.ExceptionConverter; import com.sk89q.worldedit.internal.command.exception.WorldEditExceptionConverter; import com.sk89q.worldedit.internal.util.Substring; +import com.sk89q.worldedit.session.SessionKey; import com.sk89q.worldedit.session.request.Request; import com.sk89q.worldedit.util.auth.AuthorizationException; import com.sk89q.worldedit.util.eventbus.Subscribe; @@ -132,29 +126,6 @@ import com.sk89q.worldedit.util.formatting.text.format.TextColor; import com.sk89q.worldedit.util.logging.DynamicStreamHandler; import com.sk89q.worldedit.util.logging.LogFormat; import com.sk89q.worldedit.world.World; -import java.io.File; -import java.io.IOException; -import java.lang.annotation.Annotation; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collection; -import java.util.Collections; -import java.util.LinkedHashSet; -import java.util.List; -import java.util.Map; -import java.util.Optional; -import java.util.Set; -import java.util.concurrent.Callable; -import java.util.function.BiConsumer; -import java.util.function.BiFunction; -import java.util.function.Consumer; -import java.util.function.Function; -import java.util.logging.FileHandler; -import java.util.logging.Level; -import java.util.regex.Pattern; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import javax.annotation.Nullable; import org.enginehub.piston.Command; import org.enginehub.piston.CommandManager; import org.enginehub.piston.TextConfig; @@ -180,6 +151,28 @@ import org.enginehub.piston.util.ValueProvider; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import javax.annotation.Nullable; +import java.io.File; +import java.io.IOException; +import java.lang.annotation.Annotation; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; +import java.util.Collections; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Optional; +import java.util.Set; +import java.util.function.BiConsumer; +import java.util.function.Consumer; +import java.util.logging.FileHandler; +import java.util.logging.Level; +import java.util.regex.Pattern; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +import static com.google.common.base.Preconditions.checkNotNull; + /** * Handles the registration and invocation of commands. @@ -234,6 +227,7 @@ public final class PlatformCommandManager { } private void initialize() { + System.out.println("========== INITIALIZE"); // Register this instance for command events worldEdit.getEventBus().register(this); @@ -279,42 +273,14 @@ public final class PlatformCommandManager { // TODO NOT IMPLEMENTED - register the following using a custom processor / annotations } - public org.enginehub.piston.annotation.Command createAnnotation(String name, List aliases, String desc) { - return new org.enginehub.piston.annotation.Command() { - @Override - public Class annotationType() { - return getClass(); - } - - @Override - public String name() { - return name; - } - - @Override - public String[] aliases() { - return aliases.toArray(new String[0]); - } - - @Override - public String desc() { - return desc; - } - - @Override - public String descFooter() { - return ""; - } - }; + public void registerSubCommands(String name, List aliases, String desc, CommandManager commandManager, Consumer> handlerInstance) { + registerSubCommands(name, aliases, desc, commandManager, handlerInstance, m -> {}); } - public void registerSubCommands(org.enginehub.piston.annotation.Command annotation, Consumer> handlerInstance) { - registerSubCommands(annotation, commandManager, handlerInstance); - } - - public void registerSubCommands(org.enginehub.piston.annotation.Command annotation, CommandManager commandManager, Consumer> handlerInstance) { - commandManager.register(annotation.name(), builder -> { - builder.description(TextComponent.of(annotation.desc())); + public void registerSubCommands(String name, List aliases, String desc, CommandManager commandManager, Consumer> handlerInstance, Consumer additionalConfig) { + commandManager.register(name, builder -> { + builder.aliases(aliases); + builder.description(TextComponent.of(desc)); builder.action(org.enginehub.piston.Command.Action.NULL_ACTION); CommandManager manager = commandManagerService.newCommandManager(); @@ -338,21 +304,28 @@ public final class PlatformCommandManager { public void registerSubCommands(String name, List aliases, String desc, CommandRegistration registration, CI instance) { - registerSubCommands(createAnnotation(name, aliases, desc), commandManager, c -> c.accept(registration, instance)); + registerSubCommands(name, aliases, desc, commandManager, c -> c.accept(registration, instance)); } public void registerSubCommands(String name, List aliases, String desc, Consumer> handlerInstance) { - registerSubCommands(createAnnotation(name, aliases, desc), commandManager, handlerInstance); + registerSubCommands(name, aliases, desc, commandManager, handlerInstance); } public void registerAllCommands() { if (Settings.IMP.ENABLED_COMPONENTS.COMMANDS) { registerSubCommands( - "patterns", - ImmutableList.of(), - "Patterns determine what blocks are placed", - PatternCommandsRegistration.builder(), - new PatternCommands() + "patterns", + ImmutableList.of(), + "Patterns determine what blocks are placed", + PatternCommandsRegistration.builder(), + new PatternCommands() + ); + registerSubCommands( + "masks", + ImmutableList.of(), + "Masks determine which blocks are placed", + MaskCommandsRegistration.builder(), + new MaskCommands(worldEdit) ); registerSubCommands( "transforms", @@ -383,20 +356,17 @@ public final class PlatformCommandManager { new SuperPickaxeCommands(worldEdit) ); registerSubCommands( - createAnnotation("brush", Arrays.asList("br", "/brush", "/br", "/tool", "tool"), "Brushing commands"), + "brush", Arrays.asList("br", "/brush", "/br", "/tool", "tool"), "Brushing commands", + commandManager, c -> { c.accept(BrushCommandsRegistration.builder(), new BrushCommands(worldEdit)); - c.accept(PaintBrushCommandsRegistration.builder(), new PaintBrushCommands()); - c.accept(ApplyBrushCommandsRegistration.builder(), new ApplyBrushCommands()); + c.accept(ToolCommandsRegistration.builder(), new ToolCommands(worldEdit)); + }, + manager -> { + PaintBrushCommands.register(commandManagerService, manager, registration); + ApplyBrushCommands.register(commandManagerService, manager, registration); } ); - registerSubCommands( - "brush", - ImmutableList.of("br", "/brush", "/br", "/tool", "tool"), - "Tool commands", - BrushOptionsCommandsRegistration.builder(), - new BrushOptionsCommands(worldEdit) - ); registerSubCommands( "worldedit", ImmutableList.of("we"), @@ -418,17 +388,6 @@ public final class PlatformCommandManager { AnvilCommandsRegistration.builder(), new AnvilCommands(worldEdit) ); -// registerSubCommands( -// "transforms", -// ImmutableList.of(), -// "Transforms modify how a block is placed\n" + -// " - Use [brackets] for arguments\n" + -// " - Use , to OR multiple\n" + -// " - Use & to AND multiple\n" + -// "More Info: https://git.io/v9KHO", -// TransformCommandsRegistration.builder(), -// new TransformCommands() -// ); this.registration.register( commandManager, BiomeCommandsRegistration.builder(), @@ -491,15 +450,16 @@ public final class PlatformCommandManager { new ToolCommands(worldEdit) ); this.registration.register( - commandManager, - ToolUtilCommandsRegistration.builder(), - new ToolUtilCommands(worldEdit) + commandManager, + ToolUtilCommandsRegistration.builder(), + new ToolUtilCommands(worldEdit) ); this.registration.register( commandManager, UtilityCommandsRegistration.builder(), new UtilityCommands(worldEdit) ); + System.out.println("========== REGISTERED COMMANDS"); } } @@ -609,7 +569,7 @@ public final class PlatformCommandManager { } public Stream parseArgs(String input) { - return new CommandArgParser(CommandArgParser.spaceSplit(input.substring(1))).parseArgs(); + return new CommandArgParser(CommandArgParser.spaceSplit(input)).parseArgs(); } public Collection parse(Class clazz, String arguments, @Nullable Actor actor) { @@ -667,24 +627,30 @@ public final class PlatformCommandManager { Request.reset(); Actor actor = event.getActor(); String args = event.getArguments(); - CommandEvent finalEvent = new CommandEvent(actor, args); + CommandEvent finalEvent = event; final FawePlayer fp = FawePlayer.wrap(actor); + System.out.println(1); TaskManager.IMP.taskNow(() -> { int space0 = args.indexOf(' '); String arg0 = space0 == -1 ? args : args.substring(0, space0); Optional optional = commandManager.getCommand(arg0); - if (!optional.isPresent()) return; + if (!optional.isPresent()) { + System.out.println("No command for '" + arg0 + "' " + StringMan.getString(commandManager.getAllCommands().map(command -> command.getName()).collect(Collectors.toList()))); + return; + } Command cmd = optional.get(); CommandQueuedCondition queued = cmd.getCondition().as(CommandQueuedCondition.class).orElse(null); if (queued != null && !queued.isQueued()) { handleCommandOnCurrentThread(finalEvent); return; } - if (!fp.runAction( - () -> PlatformCommandManager.this.handleCommandOnCurrentThread(finalEvent), false, true)) { - BBC.WORLDEDIT_COMMAND_LIMIT.send(fp); + LocalSession session = worldEdit.getSessionManager().get(actor); + synchronized (session) { + SessionKey key = actor.getSessionKey(); + if (key.isActive()) { + PlatformCommandManager.this.handleCommandOnCurrentThread(finalEvent); + } } - finalEvent.setCancelled(true); }, Fawe.isMainThread()); } @@ -707,7 +673,6 @@ public final class PlatformCommandManager { Request.request().setWorld(((World) extent)); } } - LocalConfiguration config = worldEdit.getConfiguration(); MemoizingValueAccess context = initializeInjectedValues(event::getArguments, actor); diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/session/SessionOwner.java b/worldedit-core/src/main/java/com/sk89q/worldedit/session/SessionOwner.java index 6326e30ba..e35fd17a5 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/session/SessionOwner.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/session/SessionOwner.java @@ -19,6 +19,8 @@ package com.sk89q.worldedit.session; +import com.sk89q.worldedit.LocalSession; +import com.sk89q.worldedit.WorldEdit; import com.sk89q.worldedit.util.auth.Subject; /** @@ -33,4 +35,8 @@ public interface SessionOwner extends Subject { */ SessionKey getSessionKey(); + default LocalSession getSession() { + return WorldEdit.getInstance().getSessionManager().get(this); + } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/block/BlockTypes.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/block/BlockTypes.java index 8f1fb9343..98684f1d2 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/block/BlockTypes.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/block/BlockTypes.java @@ -937,9 +937,9 @@ public final class BlockTypes { } // Add to $Registry - for (BlockType type : values) { - BlockType.REGISTRY.register(type.getId().toLowerCase(Locale.ROOT), type); - } +// for (BlockType type : values) { +// BlockType.REGISTRY.register(type.getId().toLowerCase(Locale.ROOT), type); +// } states = stateList.toArray(new BlockState[stateList.size()]); @@ -969,7 +969,6 @@ public final class BlockTypes { } // register states - if (typeName.startsWith("minecraft:")) BlockType.REGISTRY.register(typeName.substring(10), existing); BlockType.REGISTRY.register(typeName, existing); String nameSpace = typeName.substring(0, typeName.indexOf(':')); $NAMESPACES.add(nameSpace); diff --git a/worldedit-core/src/main/resources/com/sk89q/worldedit/world/registry/blocks.114.json b/worldedit-core/src/main/resources/com/sk89q/worldedit/world/registry/blocks.114.json new file mode 100644 index 000000000..d5f98648d --- /dev/null +++ b/worldedit-core/src/main/resources/com/sk89q/worldedit/world/registry/blocks.114.json @@ -0,0 +1,16902 @@ +[ + { + "id": "minecraft:acacia_button", + "localizedName": "Acacia Button", + "material": { + "powerSource": true, + "lightValue": 0, + "hardness": 0.5, + "resistance": 0.5, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#000000", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:acacia_door", + "localizedName": "Acacia Door", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 3.0, + "resistance": 3.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:acacia_fence", + "localizedName": "Acacia Fence", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 3.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:acacia_fence_gate", + "localizedName": "Acacia Fence Gate", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 3.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:acacia_leaves", + "localizedName": "Acacia Leaves", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.2, + "resistance": 0.2, + "ticksRandomly": true, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#007c00", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:acacia_log", + "localizedName": "Acacia Log", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 2.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:acacia_planks", + "localizedName": "Acacia Planks", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 3.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:acacia_pressure_plate", + "localizedName": "Acacia Pressure Plate", + "material": { + "powerSource": true, + "lightValue": 0, + "hardness": 0.5, + "resistance": 0.5, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:acacia_sapling", + "localizedName": "Acacia Sapling", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": true, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#007c00", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:acacia_sign", + "localizedName": "Acacia Sign", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.0, + "resistance": 1.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:acacia_slab", + "localizedName": "Acacia Slab", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 3.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:acacia_stairs", + "localizedName": "Acacia Stairs", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 3.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:acacia_trapdoor", + "localizedName": "Acacia Trapdoor", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 3.0, + "resistance": 3.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:acacia_wall_sign", + "localizedName": "Acacia Sign", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.0, + "resistance": 1.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:acacia_wood", + "localizedName": "Acacia Wood", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 2.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:activator_rail", + "localizedName": "Activator Rail", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.7, + "resistance": 0.7, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#000000", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:air", + "localizedName": "Air", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": true, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#000000", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:allium", + "localizedName": "Allium", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#007c00", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:andesite", + "localizedName": "Andesite", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.5, + "resistance": 6.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:andesite_slab", + "localizedName": "Andesite Slab", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.5, + "resistance": 6.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:andesite_stairs", + "localizedName": "Andesite Stairs", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.5, + "resistance": 6.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:andesite_wall", + "localizedName": "Andesite Wall", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.5, + "resistance": 6.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:anvil", + "localizedName": "Anvil", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 5.0, + "resistance": 1200.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": true, + "mapColor": "#a7a7a7", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:attached_melon_stem", + "localizedName": "Attached Melon Stem", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#007c00", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:attached_pumpkin_stem", + "localizedName": "Attached Pumpkin Stem", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#007c00", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:azure_bluet", + "localizedName": "Azure Bluet", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#007c00", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:bamboo", + "localizedName": "Bamboo", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.0, + "resistance": 1.0, + "ticksRandomly": true, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:bamboo_sapling", + "localizedName": "Bamboo Sapling", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.0, + "resistance": 1.0, + "ticksRandomly": true, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": false, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:barrel", + "localizedName": "Barrel", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.5, + "resistance": 2.5, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": true + } + }, + { + "id": "minecraft:barrier", + "localizedName": "Barrier", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": -1.0, + "resistance": 3600000.8, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": true, + "mapColor": "#000000", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:beacon", + "localizedName": "Beacon", + "material": { + "powerSource": false, + "lightValue": 15, + "hardness": 3.0, + "resistance": 3.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#000000", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:bedrock", + "localizedName": "Bedrock", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": -1.0, + "resistance": 3600000.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:beetroots", + "localizedName": "Beetroots", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": true, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#007c00", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:bell", + "localizedName": "Bell", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 5.0, + "resistance": 5.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#a7a7a7", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:birch_button", + "localizedName": "Birch Button", + "material": { + "powerSource": true, + "lightValue": 0, + "hardness": 0.5, + "resistance": 0.5, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#000000", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:birch_door", + "localizedName": "Birch Door", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 3.0, + "resistance": 3.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:birch_fence", + "localizedName": "Birch Fence", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 3.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:birch_fence_gate", + "localizedName": "Birch Fence Gate", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 3.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:birch_leaves", + "localizedName": "Birch Leaves", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.2, + "resistance": 0.2, + "ticksRandomly": true, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#007c00", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:birch_log", + "localizedName": "Birch Log", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 2.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:birch_planks", + "localizedName": "Birch Planks", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 3.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:birch_pressure_plate", + "localizedName": "Birch Pressure Plate", + "material": { + "powerSource": true, + "lightValue": 0, + "hardness": 0.5, + "resistance": 0.5, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:birch_sapling", + "localizedName": "Birch Sapling", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": true, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#007c00", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:birch_sign", + "localizedName": "Birch Sign", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.0, + "resistance": 1.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:birch_slab", + "localizedName": "Birch Slab", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 3.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:birch_stairs", + "localizedName": "Birch Stairs", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 3.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:birch_trapdoor", + "localizedName": "Birch Trapdoor", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 3.0, + "resistance": 3.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:birch_wall_sign", + "localizedName": "Birch Sign", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.0, + "resistance": 1.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:birch_wood", + "localizedName": "Birch Wood", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 2.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:black_banner", + "localizedName": "Black Banner", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.0, + "resistance": 1.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:black_bed", + "localizedName": "Black Bed", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.2, + "resistance": 0.2, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#c7c7c7", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:black_carpet", + "localizedName": "Black Carpet", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.1, + "resistance": 0.1, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": true, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#c7c7c7", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:black_concrete", + "localizedName": "Black Concrete", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.8, + "resistance": 1.8, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:black_concrete_powder", + "localizedName": "Black Concrete Powder", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.5, + "resistance": 0.5, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#f7e9a3", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:black_glazed_terracotta", + "localizedName": "Black Glazed Terracotta", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.4, + "resistance": 1.4, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:black_shulker_box", + "localizedName": "Black Shulker Box", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 2.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#7f3fb2", + "isTranslucent": true, + "hasContainer": true + } + }, + { + "id": "minecraft:black_stained_glass", + "localizedName": "Black Stained Glass", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.3, + "resistance": 0.3, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#000000", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:black_stained_glass_pane", + "localizedName": "Black Stained Glass Pane", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.3, + "resistance": 0.3, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#000000", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:black_terracotta", + "localizedName": "Black Terracotta", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.25, + "resistance": 4.2, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:black_wall_banner", + "localizedName": "Black Banner", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.0, + "resistance": 1.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:black_wool", + "localizedName": "Black Wool", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.8, + "resistance": 0.8, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#c7c7c7", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:blast_furnace", + "localizedName": "Blast Furnace", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 3.5, + "resistance": 3.5, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": true + } + }, + { + "id": "minecraft:blue_banner", + "localizedName": "Blue Banner", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.0, + "resistance": 1.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:blue_bed", + "localizedName": "Blue Bed", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.2, + "resistance": 0.2, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#c7c7c7", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:blue_carpet", + "localizedName": "Blue Carpet", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.1, + "resistance": 0.1, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": true, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#c7c7c7", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:blue_concrete", + "localizedName": "Blue Concrete", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.8, + "resistance": 1.8, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:blue_concrete_powder", + "localizedName": "Blue Concrete Powder", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.5, + "resistance": 0.5, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#f7e9a3", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:blue_glazed_terracotta", + "localizedName": "Blue Glazed Terracotta", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.4, + "resistance": 1.4, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:blue_ice", + "localizedName": "Blue Ice", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.8, + "resistance": 2.8, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.989, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#a0a0ff", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:blue_orchid", + "localizedName": "Blue Orchid", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#007c00", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:blue_shulker_box", + "localizedName": "Blue Shulker Box", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 2.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#7f3fb2", + "isTranslucent": true, + "hasContainer": true + } + }, + { + "id": "minecraft:blue_stained_glass", + "localizedName": "Blue Stained Glass", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.3, + "resistance": 0.3, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#000000", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:blue_stained_glass_pane", + "localizedName": "Blue Stained Glass Pane", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.3, + "resistance": 0.3, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#000000", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:blue_terracotta", + "localizedName": "Blue Terracotta", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.25, + "resistance": 4.2, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:blue_wall_banner", + "localizedName": "Blue Banner", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.0, + "resistance": 1.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:blue_wool", + "localizedName": "Blue Wool", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.8, + "resistance": 0.8, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#c7c7c7", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:bone_block", + "localizedName": "Bone Block", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 2.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:bookshelf", + "localizedName": "Bookshelf", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.5, + "resistance": 1.5, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:brain_coral", + "localizedName": "Brain Coral", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#4040ff", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:brain_coral_block", + "localizedName": "Brain Coral Block", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.5, + "resistance": 6.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:brain_coral_fan", + "localizedName": "Brain Coral Fan", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#4040ff", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:brain_coral_wall_fan", + "localizedName": "Brain Coral Wall Fan", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#4040ff", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:brewing_stand", + "localizedName": "Brewing Stand", + "material": { + "powerSource": false, + "lightValue": 1, + "hardness": 0.5, + "resistance": 0.5, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#a7a7a7", + "isTranslucent": false, + "hasContainer": true + } + }, + { + "id": "minecraft:brick_slab", + "localizedName": "Brick Slab", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 6.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:brick_stairs", + "localizedName": "Brick Stairs", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 6.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:brick_wall", + "localizedName": "Brick Wall", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 6.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:bricks", + "localizedName": "Bricks", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 6.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:brown_banner", + "localizedName": "Brown Banner", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.0, + "resistance": 1.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:brown_bed", + "localizedName": "Brown Bed", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.2, + "resistance": 0.2, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#c7c7c7", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:brown_carpet", + "localizedName": "Brown Carpet", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.1, + "resistance": 0.1, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": true, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#c7c7c7", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:brown_concrete", + "localizedName": "Brown Concrete", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.8, + "resistance": 1.8, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:brown_concrete_powder", + "localizedName": "Brown Concrete Powder", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.5, + "resistance": 0.5, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#f7e9a3", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:brown_glazed_terracotta", + "localizedName": "Brown Glazed Terracotta", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.4, + "resistance": 1.4, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:brown_mushroom", + "localizedName": "Brown Mushroom", + "material": { + "powerSource": false, + "lightValue": 1, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": true, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#007c00", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:brown_mushroom_block", + "localizedName": "Brown Mushroom Block", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.2, + "resistance": 0.2, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:brown_shulker_box", + "localizedName": "Brown Shulker Box", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 2.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#7f3fb2", + "isTranslucent": true, + "hasContainer": true + } + }, + { + "id": "minecraft:brown_stained_glass", + "localizedName": "Brown Stained Glass", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.3, + "resistance": 0.3, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#000000", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:brown_stained_glass_pane", + "localizedName": "Brown Stained Glass Pane", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.3, + "resistance": 0.3, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#000000", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:brown_terracotta", + "localizedName": "Brown Terracotta", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.25, + "resistance": 4.2, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:brown_wall_banner", + "localizedName": "Brown Banner", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.0, + "resistance": 1.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:brown_wool", + "localizedName": "Brown Wool", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.8, + "resistance": 0.8, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#c7c7c7", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:bubble_column", + "localizedName": "Bubble Column", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": true, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": true, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#4040ff", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:bubble_coral", + "localizedName": "Bubble Coral", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#4040ff", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:bubble_coral_block", + "localizedName": "Bubble Coral Block", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.5, + "resistance": 6.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:bubble_coral_fan", + "localizedName": "Bubble Coral Fan", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#4040ff", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:bubble_coral_wall_fan", + "localizedName": "Bubble Coral Wall Fan", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#4040ff", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:cactus", + "localizedName": "Cactus", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.4, + "resistance": 0.4, + "ticksRandomly": true, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#007c00", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:cake", + "localizedName": "Cake", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.5, + "resistance": 0.5, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#000000", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:campfire", + "localizedName": "Campfire", + "material": { + "powerSource": false, + "lightValue": 15, + "hardness": 2.0, + "resistance": 2.0, + "ticksRandomly": true, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": true + } + }, + { + "id": "minecraft:carrots", + "localizedName": "Carrots", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": true, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#007c00", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:cartography_table", + "localizedName": "Cartography Table", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.5, + "resistance": 2.5, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:carved_pumpkin", + "localizedName": "Carved Pumpkin", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.0, + "resistance": 1.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#007c00", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:cauldron", + "localizedName": "Cauldron", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 2.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#a7a7a7", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:cave_air", + "localizedName": "Cave Air", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": true, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#000000", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:chain_command_block", + "localizedName": "Chain Command Block", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": -1.0, + "resistance": 3600000.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#a7a7a7", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:chest", + "localizedName": "Chest", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.5, + "resistance": 2.5, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": true + } + }, + { + "id": "minecraft:chipped_anvil", + "localizedName": "Chipped Anvil", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 5.0, + "resistance": 1200.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": true, + "mapColor": "#a7a7a7", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:chiseled_quartz_block", + "localizedName": "Chiseled Quartz Block", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.8, + "resistance": 0.8, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:chiseled_red_sandstone", + "localizedName": "Chiseled Red Sandstone", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.8, + "resistance": 0.8, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:chiseled_sandstone", + "localizedName": "Chiseled Sandstone", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.8, + "resistance": 0.8, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:chiseled_stone_bricks", + "localizedName": "Chiseled Stone Bricks", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.5, + "resistance": 6.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:chorus_flower", + "localizedName": "Chorus Flower", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.4, + "resistance": 0.4, + "ticksRandomly": true, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#007c00", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:chorus_plant", + "localizedName": "Chorus Plant", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.4, + "resistance": 0.4, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#007c00", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:clay", + "localizedName": "Clay", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.6, + "resistance": 0.6, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#a4a8b8", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:coal_block", + "localizedName": "Block of Coal", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 5.0, + "resistance": 6.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:coal_ore", + "localizedName": "Coal Ore", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 3.0, + "resistance": 3.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:coarse_dirt", + "localizedName": "Coarse Dirt", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.5, + "resistance": 0.5, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#976d4d", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:cobblestone", + "localizedName": "Cobblestone", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 6.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:cobblestone_slab", + "localizedName": "Cobblestone Slab", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 6.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:cobblestone_stairs", + "localizedName": "Cobblestone Stairs", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 6.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:cobblestone_wall", + "localizedName": "Cobblestone Wall", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 6.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:cobweb", + "localizedName": "Cobweb", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 4.0, + "resistance": 4.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#c7c7c7", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:cocoa", + "localizedName": "Cocoa", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.2, + "resistance": 3.0, + "ticksRandomly": true, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#007c00", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:command_block", + "localizedName": "Command Block", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": -1.0, + "resistance": 3600000.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#a7a7a7", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:comparator", + "localizedName": "Redstone Comparator", + "material": { + "powerSource": true, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#000000", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:composter", + "localizedName": "Composter", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.6, + "resistance": 0.6, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:conduit", + "localizedName": "Conduit", + "material": { + "powerSource": false, + "lightValue": 15, + "hardness": 3.0, + "resistance": 3.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#000000", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:cornflower", + "localizedName": "Cornflower", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#007c00", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:cracked_stone_bricks", + "localizedName": "Cracked Stone Bricks", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.5, + "resistance": 6.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:crafting_table", + "localizedName": "Crafting Table", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.5, + "resistance": 2.5, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:creeper_head", + "localizedName": "Creeper Head", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.0, + "resistance": 1.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#000000", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:creeper_wall_head", + "localizedName": "Creeper Head", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.0, + "resistance": 1.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#000000", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:cut_red_sandstone", + "localizedName": "Cut Red Sandstone", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.8, + "resistance": 0.8, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:cut_red_sandstone_slab", + "localizedName": "Cut Red Sandstone Slab", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 6.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:cut_sandstone", + "localizedName": "Cut Sandstone", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.8, + "resistance": 0.8, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:cut_sandstone_slab", + "localizedName": "Cut Sandstone Slab", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 6.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:cyan_banner", + "localizedName": "Cyan Banner", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.0, + "resistance": 1.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:cyan_bed", + "localizedName": "Cyan Bed", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.2, + "resistance": 0.2, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#c7c7c7", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:cyan_carpet", + "localizedName": "Cyan Carpet", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.1, + "resistance": 0.1, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": true, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#c7c7c7", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:cyan_concrete", + "localizedName": "Cyan Concrete", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.8, + "resistance": 1.8, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:cyan_concrete_powder", + "localizedName": "Cyan Concrete Powder", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.5, + "resistance": 0.5, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#f7e9a3", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:cyan_glazed_terracotta", + "localizedName": "Cyan Glazed Terracotta", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.4, + "resistance": 1.4, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:cyan_shulker_box", + "localizedName": "Cyan Shulker Box", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 2.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#7f3fb2", + "isTranslucent": true, + "hasContainer": true + } + }, + { + "id": "minecraft:cyan_stained_glass", + "localizedName": "Cyan Stained Glass", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.3, + "resistance": 0.3, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#000000", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:cyan_stained_glass_pane", + "localizedName": "Cyan Stained Glass Pane", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.3, + "resistance": 0.3, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#000000", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:cyan_terracotta", + "localizedName": "Cyan Terracotta", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.25, + "resistance": 4.2, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:cyan_wall_banner", + "localizedName": "Cyan Banner", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.0, + "resistance": 1.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:cyan_wool", + "localizedName": "Cyan Wool", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.8, + "resistance": 0.8, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#c7c7c7", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:damaged_anvil", + "localizedName": "Damaged Anvil", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 5.0, + "resistance": 1200.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": true, + "mapColor": "#a7a7a7", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:dandelion", + "localizedName": "Dandelion", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#007c00", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:dark_oak_button", + "localizedName": "Dark Oak Button", + "material": { + "powerSource": true, + "lightValue": 0, + "hardness": 0.5, + "resistance": 0.5, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#000000", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:dark_oak_door", + "localizedName": "Dark Oak Door", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 3.0, + "resistance": 3.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:dark_oak_fence", + "localizedName": "Dark Oak Fence", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 3.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:dark_oak_fence_gate", + "localizedName": "Dark Oak Fence Gate", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 3.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:dark_oak_leaves", + "localizedName": "Dark Oak Leaves", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.2, + "resistance": 0.2, + "ticksRandomly": true, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#007c00", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:dark_oak_log", + "localizedName": "Dark Oak Log", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 2.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:dark_oak_planks", + "localizedName": "Dark Oak Planks", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 3.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:dark_oak_pressure_plate", + "localizedName": "Dark Oak Pressure Plate", + "material": { + "powerSource": true, + "lightValue": 0, + "hardness": 0.5, + "resistance": 0.5, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:dark_oak_sapling", + "localizedName": "Dark Oak Sapling", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": true, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#007c00", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:dark_oak_sign", + "localizedName": "Dark Oak Sign", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.0, + "resistance": 1.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:dark_oak_slab", + "localizedName": "Dark Oak Slab", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 3.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:dark_oak_stairs", + "localizedName": "Dark Oak Stairs", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 3.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:dark_oak_trapdoor", + "localizedName": "Dark Oak Trapdoor", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 3.0, + "resistance": 3.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:dark_oak_wall_sign", + "localizedName": "Dark Oak Sign", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.0, + "resistance": 1.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:dark_oak_wood", + "localizedName": "Dark Oak Wood", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 2.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:dark_prismarine", + "localizedName": "Dark Prismarine", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.5, + "resistance": 6.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:dark_prismarine_slab", + "localizedName": "Dark Prismarine Slab", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.5, + "resistance": 6.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:dark_prismarine_stairs", + "localizedName": "Dark Prismarine Stairs", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.5, + "resistance": 6.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:daylight_detector", + "localizedName": "Daylight Detector", + "material": { + "powerSource": true, + "lightValue": 0, + "hardness": 0.2, + "resistance": 0.2, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:dead_brain_coral", + "localizedName": "Dead Brain Coral", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:dead_brain_coral_block", + "localizedName": "Dead Brain Coral Block", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.5, + "resistance": 6.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:dead_brain_coral_fan", + "localizedName": "Dead Brain Coral Fan", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:dead_brain_coral_wall_fan", + "localizedName": "Dead Brain Coral Wall Fan", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:dead_bubble_coral", + "localizedName": "Dead Bubble Coral", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:dead_bubble_coral_block", + "localizedName": "Dead Bubble Coral Block", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.5, + "resistance": 6.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:dead_bubble_coral_fan", + "localizedName": "Dead Bubble Coral Fan", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:dead_bubble_coral_wall_fan", + "localizedName": "Dead Bubble Coral Wall Fan", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:dead_bush", + "localizedName": "Dead Bush", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": true, + "opaque": false, + "replacedDuringPlacement": true, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#007c00", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:dead_fire_coral", + "localizedName": "Dead Fire Coral", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:dead_fire_coral_block", + "localizedName": "Dead Fire Coral Block", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.5, + "resistance": 6.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:dead_fire_coral_fan", + "localizedName": "Dead Fire Coral Fan", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:dead_fire_coral_wall_fan", + "localizedName": "Dead Fire Coral Wall Fan", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:dead_horn_coral", + "localizedName": "Dead Horn Coral", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:dead_horn_coral_block", + "localizedName": "Dead Horn Coral Block", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.5, + "resistance": 6.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:dead_horn_coral_fan", + "localizedName": "Dead Horn Coral Fan", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:dead_horn_coral_wall_fan", + "localizedName": "Dead Horn Coral Wall Fan", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:dead_tube_coral", + "localizedName": "Dead Tube Coral", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:dead_tube_coral_block", + "localizedName": "Dead Tube Coral Block", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.5, + "resistance": 6.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:dead_tube_coral_fan", + "localizedName": "Dead Tube Coral Fan", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:dead_tube_coral_wall_fan", + "localizedName": "Dead Tube Coral Wall Fan", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:detector_rail", + "localizedName": "Detector Rail", + "material": { + "powerSource": true, + "lightValue": 0, + "hardness": 0.7, + "resistance": 0.7, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#000000", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:diamond_block", + "localizedName": "Block of Diamond", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 5.0, + "resistance": 6.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#a7a7a7", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:diamond_ore", + "localizedName": "Diamond Ore", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 3.0, + "resistance": 3.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:diorite", + "localizedName": "Diorite", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.5, + "resistance": 6.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:diorite_slab", + "localizedName": "Diorite Slab", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.5, + "resistance": 6.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:diorite_stairs", + "localizedName": "Diorite Stairs", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.5, + "resistance": 6.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:diorite_wall", + "localizedName": "Diorite Wall", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.5, + "resistance": 6.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:dirt", + "localizedName": "Dirt", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.5, + "resistance": 0.5, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#976d4d", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:dispenser", + "localizedName": "Dispenser", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 3.5, + "resistance": 3.5, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": true + } + }, + { + "id": "minecraft:dragon_egg", + "localizedName": "Dragon Egg", + "material": { + "powerSource": false, + "lightValue": 1, + "hardness": 3.0, + "resistance": 9.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#007c00", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:dragon_head", + "localizedName": "Dragon Head", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.0, + "resistance": 1.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#000000", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:dragon_wall_head", + "localizedName": "Dragon Head", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.0, + "resistance": 1.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#000000", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:dried_kelp_block", + "localizedName": "Dried Kelp Block", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.5, + "resistance": 2.5, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#7fb238", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:dropper", + "localizedName": "Dropper", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 3.5, + "resistance": 3.5, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": true + } + }, + { + "id": "minecraft:emerald_block", + "localizedName": "Block of Emerald", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 5.0, + "resistance": 6.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#a7a7a7", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:emerald_ore", + "localizedName": "Emerald Ore", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 3.0, + "resistance": 3.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:enchanting_table", + "localizedName": "Enchanting Table", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 5.0, + "resistance": 1200.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:end_gateway", + "localizedName": "End Gateway", + "material": { + "powerSource": false, + "lightValue": 15, + "hardness": -1.0, + "resistance": 3600000.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": true, + "mapColor": "#000000", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:end_portal", + "localizedName": "End Portal", + "material": { + "powerSource": false, + "lightValue": 15, + "hardness": -1.0, + "resistance": 3600000.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": true, + "mapColor": "#000000", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:end_portal_frame", + "localizedName": "End Portal Frame", + "material": { + "powerSource": false, + "lightValue": 1, + "hardness": -1.0, + "resistance": 3600000.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:end_rod", + "localizedName": "End Rod", + "material": { + "powerSource": false, + "lightValue": 14, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#000000", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:end_stone", + "localizedName": "End Stone", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 3.0, + "resistance": 9.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:end_stone_brick_slab", + "localizedName": "End Stone Brick Slab", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.8, + "resistance": 0.8, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:end_stone_brick_stairs", + "localizedName": "End Stone Brick Stairs", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.8, + "resistance": 0.8, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:end_stone_brick_wall", + "localizedName": "End Stone Brick Wall", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.8, + "resistance": 0.8, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:end_stone_bricks", + "localizedName": "End Stone Bricks", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.8, + "resistance": 0.8, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:ender_chest", + "localizedName": "Ender Chest", + "material": { + "powerSource": false, + "lightValue": 7, + "hardness": 22.5, + "resistance": 600.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:farmland", + "localizedName": "Farmland", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.6, + "resistance": 0.6, + "ticksRandomly": true, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#976d4d", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:fern", + "localizedName": "Fern", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": true, + "opaque": false, + "replacedDuringPlacement": true, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#007c00", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:fire", + "localizedName": "Fire", + "material": { + "powerSource": false, + "lightValue": 15, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": true, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": true, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#000000", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:fire_coral", + "localizedName": "Fire Coral", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#4040ff", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:fire_coral_block", + "localizedName": "Fire Coral Block", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.5, + "resistance": 6.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:fire_coral_fan", + "localizedName": "Fire Coral Fan", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#4040ff", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:fire_coral_wall_fan", + "localizedName": "Fire Coral Wall Fan", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#4040ff", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:fletching_table", + "localizedName": "Fletching Table", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.5, + "resistance": 2.5, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:flower_pot", + "localizedName": "Flower Pot", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#000000", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:frosted_ice", + "localizedName": "Frosted Ice", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.5, + "resistance": 0.5, + "ticksRandomly": true, + "fullCube": true, + "slipperiness": 0.98, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#a0a0ff", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:furnace", + "localizedName": "Furnace", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 3.5, + "resistance": 3.5, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": true + } + }, + { + "id": "minecraft:glass", + "localizedName": "Glass", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.3, + "resistance": 0.3, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#000000", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:glass_pane", + "localizedName": "Glass Pane", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.3, + "resistance": 0.3, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#000000", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:glowstone", + "localizedName": "Glowstone", + "material": { + "powerSource": false, + "lightValue": 15, + "hardness": 0.3, + "resistance": 0.3, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#000000", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:gold_block", + "localizedName": "Block of Gold", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 3.0, + "resistance": 6.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#a7a7a7", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:gold_ore", + "localizedName": "Gold Ore", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 3.0, + "resistance": 3.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:granite", + "localizedName": "Granite", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.5, + "resistance": 6.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:granite_slab", + "localizedName": "Granite Slab", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.5, + "resistance": 6.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:granite_stairs", + "localizedName": "Granite Stairs", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.5, + "resistance": 6.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:granite_wall", + "localizedName": "Granite Wall", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.5, + "resistance": 6.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:grass", + "localizedName": "Grass", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": true, + "opaque": false, + "replacedDuringPlacement": true, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#007c00", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:grass_block", + "localizedName": "Grass Block", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.6, + "resistance": 0.6, + "ticksRandomly": true, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#7fb238", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:grass_path", + "localizedName": "Grass Path", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.65, + "resistance": 0.65, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#976d4d", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:gravel", + "localizedName": "Gravel", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.6, + "resistance": 0.6, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#f7e9a3", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:gray_banner", + "localizedName": "Gray Banner", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.0, + "resistance": 1.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:gray_bed", + "localizedName": "Gray Bed", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.2, + "resistance": 0.2, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#c7c7c7", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:gray_carpet", + "localizedName": "Gray Carpet", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.1, + "resistance": 0.1, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": true, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#c7c7c7", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:gray_concrete", + "localizedName": "Gray Concrete", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.8, + "resistance": 1.8, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:gray_concrete_powder", + "localizedName": "Gray Concrete Powder", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.5, + "resistance": 0.5, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#f7e9a3", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:gray_glazed_terracotta", + "localizedName": "Gray Glazed Terracotta", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.4, + "resistance": 1.4, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:gray_shulker_box", + "localizedName": "Gray Shulker Box", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 2.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#7f3fb2", + "isTranslucent": true, + "hasContainer": true + } + }, + { + "id": "minecraft:gray_stained_glass", + "localizedName": "Gray Stained Glass", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.3, + "resistance": 0.3, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#000000", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:gray_stained_glass_pane", + "localizedName": "Gray Stained Glass Pane", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.3, + "resistance": 0.3, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#000000", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:gray_terracotta", + "localizedName": "Gray Terracotta", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.25, + "resistance": 4.2, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:gray_wall_banner", + "localizedName": "Gray Banner", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.0, + "resistance": 1.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:gray_wool", + "localizedName": "Gray Wool", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.8, + "resistance": 0.8, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#c7c7c7", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:green_banner", + "localizedName": "Green Banner", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.0, + "resistance": 1.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:green_bed", + "localizedName": "Green Bed", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.2, + "resistance": 0.2, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#c7c7c7", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:green_carpet", + "localizedName": "Green Carpet", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.1, + "resistance": 0.1, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": true, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#c7c7c7", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:green_concrete", + "localizedName": "Green Concrete", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.8, + "resistance": 1.8, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:green_concrete_powder", + "localizedName": "Green Concrete Powder", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.5, + "resistance": 0.5, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#f7e9a3", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:green_glazed_terracotta", + "localizedName": "Green Glazed Terracotta", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.4, + "resistance": 1.4, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:green_shulker_box", + "localizedName": "Green Shulker Box", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 2.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#7f3fb2", + "isTranslucent": true, + "hasContainer": true + } + }, + { + "id": "minecraft:green_stained_glass", + "localizedName": "Green Stained Glass", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.3, + "resistance": 0.3, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#000000", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:green_stained_glass_pane", + "localizedName": "Green Stained Glass Pane", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.3, + "resistance": 0.3, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#000000", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:green_terracotta", + "localizedName": "Green Terracotta", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.25, + "resistance": 4.2, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:green_wall_banner", + "localizedName": "Green Banner", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.0, + "resistance": 1.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:green_wool", + "localizedName": "Green Wool", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.8, + "resistance": 0.8, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#c7c7c7", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:grindstone", + "localizedName": "Grindstone", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 6.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": true, + "mapColor": "#a7a7a7", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:hay_block", + "localizedName": "Hay Bale", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.5, + "resistance": 0.5, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#7fb238", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:heavy_weighted_pressure_plate", + "localizedName": "Heavy Weighted Pressure Plate", + "material": { + "powerSource": true, + "lightValue": 0, + "hardness": 0.5, + "resistance": 0.5, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#a7a7a7", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:hopper", + "localizedName": "Hopper", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 3.0, + "resistance": 4.8, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#a7a7a7", + "isTranslucent": false, + "hasContainer": true + } + }, + { + "id": "minecraft:horn_coral", + "localizedName": "Horn Coral", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#4040ff", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:horn_coral_block", + "localizedName": "Horn Coral Block", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.5, + "resistance": 6.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:horn_coral_fan", + "localizedName": "Horn Coral Fan", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#4040ff", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:horn_coral_wall_fan", + "localizedName": "Horn Coral Wall Fan", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#4040ff", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:ice", + "localizedName": "Ice", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.5, + "resistance": 0.5, + "ticksRandomly": true, + "fullCube": true, + "slipperiness": 0.98, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#a0a0ff", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:infested_chiseled_stone_bricks", + "localizedName": "Infested Chiseled Stone Bricks", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.75, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#a4a8b8", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:infested_cobblestone", + "localizedName": "Infested Cobblestone", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.75, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#a4a8b8", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:infested_cracked_stone_bricks", + "localizedName": "Infested Cracked Stone Bricks", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.75, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#a4a8b8", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:infested_mossy_stone_bricks", + "localizedName": "Infested Mossy Stone Bricks", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.75, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#a4a8b8", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:infested_stone", + "localizedName": "Infested Stone", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.75, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#a4a8b8", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:infested_stone_bricks", + "localizedName": "Infested Stone Bricks", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.75, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#a4a8b8", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:iron_bars", + "localizedName": "Iron Bars", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 5.0, + "resistance": 6.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#a7a7a7", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:iron_block", + "localizedName": "Block of Iron", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 5.0, + "resistance": 6.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#a7a7a7", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:iron_door", + "localizedName": "Iron Door", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 5.0, + "resistance": 5.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#a7a7a7", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:iron_ore", + "localizedName": "Iron Ore", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 3.0, + "resistance": 3.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:iron_trapdoor", + "localizedName": "Iron Trapdoor", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 5.0, + "resistance": 5.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#a7a7a7", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:jack_o_lantern", + "localizedName": "Jack o\u0027Lantern", + "material": { + "powerSource": false, + "lightValue": 15, + "hardness": 1.0, + "resistance": 1.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#007c00", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:jigsaw", + "localizedName": "Jigsaw Block", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": -1.0, + "resistance": 3600000.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#a7a7a7", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:jukebox", + "localizedName": "Jukebox", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 6.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": true + } + }, + { + "id": "minecraft:jungle_button", + "localizedName": "Jungle Button", + "material": { + "powerSource": true, + "lightValue": 0, + "hardness": 0.5, + "resistance": 0.5, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#000000", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:jungle_door", + "localizedName": "Jungle Door", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 3.0, + "resistance": 3.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:jungle_fence", + "localizedName": "Jungle Fence", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 3.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:jungle_fence_gate", + "localizedName": "Jungle Fence Gate", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 3.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:jungle_leaves", + "localizedName": "Jungle Leaves", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.2, + "resistance": 0.2, + "ticksRandomly": true, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#007c00", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:jungle_log", + "localizedName": "Jungle Log", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 2.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:jungle_planks", + "localizedName": "Jungle Planks", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 3.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:jungle_pressure_plate", + "localizedName": "Jungle Pressure Plate", + "material": { + "powerSource": true, + "lightValue": 0, + "hardness": 0.5, + "resistance": 0.5, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:jungle_sapling", + "localizedName": "Jungle Sapling", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": true, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#007c00", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:jungle_sign", + "localizedName": "Jungle Sign", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.0, + "resistance": 1.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:jungle_slab", + "localizedName": "Jungle Slab", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 3.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:jungle_stairs", + "localizedName": "Jungle Stairs", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 3.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:jungle_trapdoor", + "localizedName": "Jungle Trapdoor", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 3.0, + "resistance": 3.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:jungle_wall_sign", + "localizedName": "Jungle Sign", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.0, + "resistance": 1.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:jungle_wood", + "localizedName": "Jungle Wood", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 2.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:kelp", + "localizedName": "Kelp", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": true, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#4040ff", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:kelp_plant", + "localizedName": "Kelp Plant", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#4040ff", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:ladder", + "localizedName": "Ladder", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.4, + "resistance": 0.4, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#000000", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:lantern", + "localizedName": "Lantern", + "material": { + "powerSource": false, + "lightValue": 15, + "hardness": 3.5, + "resistance": 3.5, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#a7a7a7", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:lapis_block", + "localizedName": "Lapis Lazuli Block", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 3.0, + "resistance": 3.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#a7a7a7", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:lapis_ore", + "localizedName": "Lapis Lazuli Ore", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 3.0, + "resistance": 3.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:large_fern", + "localizedName": "Large Fern", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": true, + "opaque": false, + "replacedDuringPlacement": true, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#007c00", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:lava", + "localizedName": "Lava", + "material": { + "powerSource": false, + "lightValue": 15, + "hardness": 100.0, + "resistance": 100.0, + "ticksRandomly": true, + "fullCube": false, + "slipperiness": 0.6, + "liquid": true, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": true, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#ff0000", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:lectern", + "localizedName": "Lectern", + "material": { + "powerSource": true, + "lightValue": 0, + "hardness": 2.5, + "resistance": 2.5, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": true + } + }, + { + "id": "minecraft:lever", + "localizedName": "Lever", + "material": { + "powerSource": true, + "lightValue": 0, + "hardness": 0.5, + "resistance": 0.5, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#000000", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:light_blue_banner", + "localizedName": "Light Blue Banner", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.0, + "resistance": 1.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:light_blue_bed", + "localizedName": "Light Blue Bed", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.2, + "resistance": 0.2, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#c7c7c7", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:light_blue_carpet", + "localizedName": "Light Blue Carpet", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.1, + "resistance": 0.1, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": true, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#c7c7c7", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:light_blue_concrete", + "localizedName": "Light Blue Concrete", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.8, + "resistance": 1.8, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:light_blue_concrete_powder", + "localizedName": "Light Blue Concrete Powder", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.5, + "resistance": 0.5, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#f7e9a3", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:light_blue_glazed_terracotta", + "localizedName": "Light Blue Glazed Terracotta", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.4, + "resistance": 1.4, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:light_blue_shulker_box", + "localizedName": "Light Blue Shulker Box", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 2.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#7f3fb2", + "isTranslucent": true, + "hasContainer": true + } + }, + { + "id": "minecraft:light_blue_stained_glass", + "localizedName": "Light Blue Stained Glass", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.3, + "resistance": 0.3, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#000000", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:light_blue_stained_glass_pane", + "localizedName": "Light Blue Stained Glass Pane", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.3, + "resistance": 0.3, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#000000", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:light_blue_terracotta", + "localizedName": "Light Blue Terracotta", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.25, + "resistance": 4.2, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:light_blue_wall_banner", + "localizedName": "Light Blue Banner", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.0, + "resistance": 1.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:light_blue_wool", + "localizedName": "Light Blue Wool", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.8, + "resistance": 0.8, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#c7c7c7", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:light_gray_banner", + "localizedName": "Light Gray Banner", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.0, + "resistance": 1.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:light_gray_bed", + "localizedName": "Light Gray Bed", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.2, + "resistance": 0.2, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#c7c7c7", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:light_gray_carpet", + "localizedName": "Light Gray Carpet", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.1, + "resistance": 0.1, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": true, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#c7c7c7", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:light_gray_concrete", + "localizedName": "Light Gray Concrete", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.8, + "resistance": 1.8, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:light_gray_concrete_powder", + "localizedName": "Light Gray Concrete Powder", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.5, + "resistance": 0.5, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#f7e9a3", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:light_gray_glazed_terracotta", + "localizedName": "Light Gray Glazed Terracotta", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.4, + "resistance": 1.4, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:light_gray_shulker_box", + "localizedName": "Light Gray Shulker Box", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 2.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#7f3fb2", + "isTranslucent": true, + "hasContainer": true + } + }, + { + "id": "minecraft:light_gray_stained_glass", + "localizedName": "Light Gray Stained Glass", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.3, + "resistance": 0.3, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#000000", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:light_gray_stained_glass_pane", + "localizedName": "Light Gray Stained Glass Pane", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.3, + "resistance": 0.3, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#000000", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:light_gray_terracotta", + "localizedName": "Light Gray Terracotta", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.25, + "resistance": 4.2, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:light_gray_wall_banner", + "localizedName": "Light Gray Banner", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.0, + "resistance": 1.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:light_gray_wool", + "localizedName": "Light Gray Wool", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.8, + "resistance": 0.8, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#c7c7c7", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:light_weighted_pressure_plate", + "localizedName": "Light Weighted Pressure Plate", + "material": { + "powerSource": true, + "lightValue": 0, + "hardness": 0.5, + "resistance": 0.5, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#a7a7a7", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:lilac", + "localizedName": "Lilac", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": true, + "opaque": false, + "replacedDuringPlacement": true, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#007c00", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:lily_of_the_valley", + "localizedName": "Lily of the Valley", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#007c00", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:lily_pad", + "localizedName": "Lily Pad", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#007c00", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:lime_banner", + "localizedName": "Lime Banner", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.0, + "resistance": 1.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:lime_bed", + "localizedName": "Lime Bed", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.2, + "resistance": 0.2, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#c7c7c7", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:lime_carpet", + "localizedName": "Lime Carpet", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.1, + "resistance": 0.1, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": true, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#c7c7c7", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:lime_concrete", + "localizedName": "Lime Concrete", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.8, + "resistance": 1.8, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:lime_concrete_powder", + "localizedName": "Lime Concrete Powder", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.5, + "resistance": 0.5, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#f7e9a3", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:lime_glazed_terracotta", + "localizedName": "Lime Glazed Terracotta", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.4, + "resistance": 1.4, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:lime_shulker_box", + "localizedName": "Lime Shulker Box", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 2.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#7f3fb2", + "isTranslucent": true, + "hasContainer": true + } + }, + { + "id": "minecraft:lime_stained_glass", + "localizedName": "Lime Stained Glass", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.3, + "resistance": 0.3, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#000000", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:lime_stained_glass_pane", + "localizedName": "Lime Stained Glass Pane", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.3, + "resistance": 0.3, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#000000", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:lime_terracotta", + "localizedName": "Lime Terracotta", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.25, + "resistance": 4.2, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:lime_wall_banner", + "localizedName": "Lime Banner", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.0, + "resistance": 1.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:lime_wool", + "localizedName": "Lime Wool", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.8, + "resistance": 0.8, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#c7c7c7", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:loom", + "localizedName": "Loom", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.5, + "resistance": 2.5, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:magenta_banner", + "localizedName": "Magenta Banner", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.0, + "resistance": 1.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:magenta_bed", + "localizedName": "Magenta Bed", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.2, + "resistance": 0.2, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#c7c7c7", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:magenta_carpet", + "localizedName": "Magenta Carpet", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.1, + "resistance": 0.1, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": true, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#c7c7c7", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:magenta_concrete", + "localizedName": "Magenta Concrete", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.8, + "resistance": 1.8, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:magenta_concrete_powder", + "localizedName": "Magenta Concrete Powder", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.5, + "resistance": 0.5, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#f7e9a3", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:magenta_glazed_terracotta", + "localizedName": "Magenta Glazed Terracotta", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.4, + "resistance": 1.4, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:magenta_shulker_box", + "localizedName": "Magenta Shulker Box", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 2.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#7f3fb2", + "isTranslucent": true, + "hasContainer": true + } + }, + { + "id": "minecraft:magenta_stained_glass", + "localizedName": "Magenta Stained Glass", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.3, + "resistance": 0.3, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#000000", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:magenta_stained_glass_pane", + "localizedName": "Magenta Stained Glass Pane", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.3, + "resistance": 0.3, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#000000", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:magenta_terracotta", + "localizedName": "Magenta Terracotta", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.25, + "resistance": 4.2, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:magenta_wall_banner", + "localizedName": "Magenta Banner", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.0, + "resistance": 1.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:magenta_wool", + "localizedName": "Magenta Wool", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.8, + "resistance": 0.8, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#c7c7c7", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:magma_block", + "localizedName": "Magma Block", + "material": { + "powerSource": false, + "lightValue": 3, + "hardness": 0.5, + "resistance": 0.5, + "ticksRandomly": true, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:melon", + "localizedName": "Melon", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.0, + "resistance": 1.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#007c00", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:melon_stem", + "localizedName": "Melon Stem", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": true, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#007c00", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:mossy_cobblestone", + "localizedName": "Mossy Cobblestone", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 6.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:mossy_cobblestone_slab", + "localizedName": "Mossy Cobblestone Slab", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 6.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:mossy_cobblestone_stairs", + "localizedName": "Mossy Cobblestone Stairs", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 6.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:mossy_cobblestone_wall", + "localizedName": "Mossy Cobblestone Wall", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 6.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:mossy_stone_brick_slab", + "localizedName": "Mossy Stone Brick Slab", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.5, + "resistance": 6.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:mossy_stone_brick_stairs", + "localizedName": "Mossy Stone Brick Stairs", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.5, + "resistance": 6.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:mossy_stone_brick_wall", + "localizedName": "Mossy Stone Brick Wall", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.5, + "resistance": 6.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:mossy_stone_bricks", + "localizedName": "Mossy Stone Bricks", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.5, + "resistance": 6.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:moving_piston", + "localizedName": "Moving Piston", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": -1.0, + "resistance": 0.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": true, + "mapColor": "#707070", + "isTranslucent": true, + "hasContainer": false + } + }, + { + "id": "minecraft:mushroom_stem", + "localizedName": "Mushroom Stem", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.2, + "resistance": 0.2, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:mycelium", + "localizedName": "Mycelium", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.6, + "resistance": 0.6, + "ticksRandomly": true, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#7fb238", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:nether_brick_fence", + "localizedName": "Nether Brick Fence", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 6.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:nether_brick_slab", + "localizedName": "Nether Brick Slab", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 6.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:nether_brick_stairs", + "localizedName": "Nether Brick Stairs", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 6.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:nether_brick_wall", + "localizedName": "Nether Brick Wall", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 6.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:nether_bricks", + "localizedName": "Nether Bricks", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 6.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:nether_portal", + "localizedName": "Nether Portal", + "material": { + "powerSource": false, + "lightValue": 11, + "hardness": -1.0, + "resistance": 0.0, + "ticksRandomly": true, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": true, + "mapColor": "#000000", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:nether_quartz_ore", + "localizedName": "Nether Quartz Ore", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 3.0, + "resistance": 3.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:nether_wart", + "localizedName": "Nether Wart", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": true, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#007c00", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:nether_wart_block", + "localizedName": "Nether Wart Block", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.0, + "resistance": 1.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#7fb238", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:netherrack", + "localizedName": "Netherrack", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.4, + "resistance": 0.4, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:note_block", + "localizedName": "Note Block", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.8, + "resistance": 0.8, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:oak_button", + "localizedName": "Oak Button", + "material": { + "powerSource": true, + "lightValue": 0, + "hardness": 0.5, + "resistance": 0.5, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#000000", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:oak_door", + "localizedName": "Oak Door", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 3.0, + "resistance": 3.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:oak_fence", + "localizedName": "Oak Fence", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 3.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:oak_fence_gate", + "localizedName": "Oak Fence Gate", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 3.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:oak_leaves", + "localizedName": "Oak Leaves", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.2, + "resistance": 0.2, + "ticksRandomly": true, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#007c00", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:oak_log", + "localizedName": "Oak Log", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 2.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:oak_planks", + "localizedName": "Oak Planks", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 3.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:oak_pressure_plate", + "localizedName": "Oak Pressure Plate", + "material": { + "powerSource": true, + "lightValue": 0, + "hardness": 0.5, + "resistance": 0.5, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:oak_sapling", + "localizedName": "Oak Sapling", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": true, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#007c00", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:oak_sign", + "localizedName": "Oak Sign", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.0, + "resistance": 1.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:oak_slab", + "localizedName": "Oak Slab", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 3.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:oak_stairs", + "localizedName": "Oak Stairs", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 3.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:oak_trapdoor", + "localizedName": "Oak Trapdoor", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 3.0, + "resistance": 3.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:oak_wall_sign", + "localizedName": "Oak Sign", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.0, + "resistance": 1.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:oak_wood", + "localizedName": "Oak Wood", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 2.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:observer", + "localizedName": "Observer", + "material": { + "powerSource": true, + "lightValue": 0, + "hardness": 3.0, + "resistance": 3.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:obsidian", + "localizedName": "Obsidian", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 50.0, + "resistance": 1200.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:orange_banner", + "localizedName": "Orange Banner", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.0, + "resistance": 1.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:orange_bed", + "localizedName": "Orange Bed", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.2, + "resistance": 0.2, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#c7c7c7", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:orange_carpet", + "localizedName": "Orange Carpet", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.1, + "resistance": 0.1, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": true, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#c7c7c7", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:orange_concrete", + "localizedName": "Orange Concrete", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.8, + "resistance": 1.8, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:orange_concrete_powder", + "localizedName": "Orange Concrete Powder", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.5, + "resistance": 0.5, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#f7e9a3", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:orange_glazed_terracotta", + "localizedName": "Orange Glazed Terracotta", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.4, + "resistance": 1.4, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:orange_shulker_box", + "localizedName": "Orange Shulker Box", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 2.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#7f3fb2", + "isTranslucent": true, + "hasContainer": true + } + }, + { + "id": "minecraft:orange_stained_glass", + "localizedName": "Orange Stained Glass", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.3, + "resistance": 0.3, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#000000", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:orange_stained_glass_pane", + "localizedName": "Orange Stained Glass Pane", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.3, + "resistance": 0.3, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#000000", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:orange_terracotta", + "localizedName": "Orange Terracotta", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.25, + "resistance": 4.2, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:orange_tulip", + "localizedName": "Orange Tulip", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#007c00", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:orange_wall_banner", + "localizedName": "Orange Banner", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.0, + "resistance": 1.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:orange_wool", + "localizedName": "Orange Wool", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.8, + "resistance": 0.8, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#c7c7c7", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:oxeye_daisy", + "localizedName": "Oxeye Daisy", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#007c00", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:packed_ice", + "localizedName": "Packed Ice", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.5, + "resistance": 0.5, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.98, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#a0a0ff", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:peony", + "localizedName": "Peony", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": true, + "opaque": false, + "replacedDuringPlacement": true, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#007c00", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:petrified_oak_slab", + "localizedName": "Petrified Oak Slab", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 6.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:pink_banner", + "localizedName": "Pink Banner", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.0, + "resistance": 1.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:pink_bed", + "localizedName": "Pink Bed", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.2, + "resistance": 0.2, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#c7c7c7", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:pink_carpet", + "localizedName": "Pink Carpet", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.1, + "resistance": 0.1, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": true, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#c7c7c7", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:pink_concrete", + "localizedName": "Pink Concrete", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.8, + "resistance": 1.8, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:pink_concrete_powder", + "localizedName": "Pink Concrete Powder", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.5, + "resistance": 0.5, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#f7e9a3", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:pink_glazed_terracotta", + "localizedName": "Pink Glazed Terracotta", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.4, + "resistance": 1.4, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:pink_shulker_box", + "localizedName": "Pink Shulker Box", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 2.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#7f3fb2", + "isTranslucent": true, + "hasContainer": true + } + }, + { + "id": "minecraft:pink_stained_glass", + "localizedName": "Pink Stained Glass", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.3, + "resistance": 0.3, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#000000", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:pink_stained_glass_pane", + "localizedName": "Pink Stained Glass Pane", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.3, + "resistance": 0.3, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#000000", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:pink_terracotta", + "localizedName": "Pink Terracotta", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.25, + "resistance": 4.2, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:pink_tulip", + "localizedName": "Pink Tulip", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#007c00", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:pink_wall_banner", + "localizedName": "Pink Banner", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.0, + "resistance": 1.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:pink_wool", + "localizedName": "Pink Wool", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.8, + "resistance": 0.8, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#c7c7c7", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:piston", + "localizedName": "Piston", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.5, + "resistance": 0.5, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": true, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:piston_head", + "localizedName": "Piston Head", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.5, + "resistance": 0.5, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": true, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:player_head", + "localizedName": "Player Head", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.0, + "resistance": 1.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#000000", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:player_wall_head", + "localizedName": "Player Head", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.0, + "resistance": 1.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#000000", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:podzol", + "localizedName": "Podzol", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.5, + "resistance": 0.5, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#976d4d", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:polished_andesite", + "localizedName": "Polished Andesite", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.5, + "resistance": 6.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:polished_andesite_slab", + "localizedName": "Polished Andesite Slab", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.5, + "resistance": 6.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:polished_andesite_stairs", + "localizedName": "Polished Andesite Stairs", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.5, + "resistance": 6.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:polished_diorite", + "localizedName": "Polished Diorite", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.5, + "resistance": 6.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:polished_diorite_slab", + "localizedName": "Polished Diorite Slab", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.5, + "resistance": 6.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:polished_diorite_stairs", + "localizedName": "Polished Diorite Stairs", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.5, + "resistance": 6.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:polished_granite", + "localizedName": "Polished Granite", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.5, + "resistance": 6.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:polished_granite_slab", + "localizedName": "Polished Granite Slab", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.5, + "resistance": 6.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:polished_granite_stairs", + "localizedName": "Polished Granite Stairs", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.5, + "resistance": 6.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:poppy", + "localizedName": "Poppy", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#007c00", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:potatoes", + "localizedName": "Potatoes", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": true, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#007c00", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:potted_acacia_sapling", + "localizedName": "Potted Acacia Sapling", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#000000", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:potted_allium", + "localizedName": "Potted Allium", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#000000", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:potted_azure_bluet", + "localizedName": "Potted Azure Bluet", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#000000", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:potted_bamboo", + "localizedName": "Potted Bamboo", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#000000", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:potted_birch_sapling", + "localizedName": "Potted Birch Sapling", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#000000", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:potted_blue_orchid", + "localizedName": "Potted Blue Orchid", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#000000", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:potted_brown_mushroom", + "localizedName": "Potted Brown Mushroom", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#000000", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:potted_cactus", + "localizedName": "Potted Cactus", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#000000", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:potted_cornflower", + "localizedName": "Potted Cornflower", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#000000", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:potted_dandelion", + "localizedName": "Potted Dandelion", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#000000", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:potted_dark_oak_sapling", + "localizedName": "Potted Dark Oak Sapling", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#000000", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:potted_dead_bush", + "localizedName": "Potted Dead Bush", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#000000", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:potted_fern", + "localizedName": "Potted Fern", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#000000", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:potted_jungle_sapling", + "localizedName": "Potted Jungle Sapling", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#000000", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:potted_lily_of_the_valley", + "localizedName": "Potted Lily of the Valley", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#000000", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:potted_oak_sapling", + "localizedName": "Potted Oak Sapling", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#000000", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:potted_orange_tulip", + "localizedName": "Potted Orange Tulip", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#000000", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:potted_oxeye_daisy", + "localizedName": "Potted Oxeye Daisy", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#000000", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:potted_pink_tulip", + "localizedName": "Potted Pink Tulip", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#000000", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:potted_poppy", + "localizedName": "Potted Poppy", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#000000", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:potted_red_mushroom", + "localizedName": "Potted Red Mushroom", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#000000", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:potted_red_tulip", + "localizedName": "Potted Red Tulip", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#000000", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:potted_spruce_sapling", + "localizedName": "Potted Spruce Sapling", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#000000", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:potted_white_tulip", + "localizedName": "Potted White Tulip", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#000000", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:potted_wither_rose", + "localizedName": "Potted Wither Rose", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#000000", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:powered_rail", + "localizedName": "Powered Rail", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.7, + "resistance": 0.7, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#000000", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:prismarine", + "localizedName": "Prismarine", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.5, + "resistance": 6.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:prismarine_brick_slab", + "localizedName": "Prismarine Brick Slab", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.5, + "resistance": 6.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:prismarine_brick_stairs", + "localizedName": "Prismarine Brick Stairs", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.5, + "resistance": 6.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:prismarine_bricks", + "localizedName": "Prismarine Bricks", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.5, + "resistance": 6.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:prismarine_slab", + "localizedName": "Prismarine Slab", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.5, + "resistance": 6.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:prismarine_stairs", + "localizedName": "Prismarine Stairs", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.5, + "resistance": 6.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:prismarine_wall", + "localizedName": "Prismarine Wall", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.5, + "resistance": 6.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:pumpkin", + "localizedName": "Pumpkin", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.0, + "resistance": 1.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#007c00", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:pumpkin_stem", + "localizedName": "Pumpkin Stem", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": true, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#007c00", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:purple_banner", + "localizedName": "Purple Banner", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.0, + "resistance": 1.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:purple_bed", + "localizedName": "Purple Bed", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.2, + "resistance": 0.2, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#c7c7c7", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:purple_carpet", + "localizedName": "Purple Carpet", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.1, + "resistance": 0.1, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": true, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#c7c7c7", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:purple_concrete", + "localizedName": "Purple Concrete", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.8, + "resistance": 1.8, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:purple_concrete_powder", + "localizedName": "Purple Concrete Powder", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.5, + "resistance": 0.5, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#f7e9a3", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:purple_glazed_terracotta", + "localizedName": "Purple Glazed Terracotta", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.4, + "resistance": 1.4, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:purple_shulker_box", + "localizedName": "Purple Shulker Box", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 2.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#7f3fb2", + "isTranslucent": true, + "hasContainer": true + } + }, + { + "id": "minecraft:purple_stained_glass", + "localizedName": "Purple Stained Glass", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.3, + "resistance": 0.3, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#000000", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:purple_stained_glass_pane", + "localizedName": "Purple Stained Glass Pane", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.3, + "resistance": 0.3, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#000000", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:purple_terracotta", + "localizedName": "Purple Terracotta", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.25, + "resistance": 4.2, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:purple_wall_banner", + "localizedName": "Purple Banner", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.0, + "resistance": 1.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:purple_wool", + "localizedName": "Purple Wool", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.8, + "resistance": 0.8, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#c7c7c7", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:purpur_block", + "localizedName": "Purpur Block", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.5, + "resistance": 6.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:purpur_pillar", + "localizedName": "Purpur Pillar", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.5, + "resistance": 6.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:purpur_slab", + "localizedName": "Purpur Slab", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 6.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:purpur_stairs", + "localizedName": "Purpur Stairs", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.5, + "resistance": 6.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:quartz_block", + "localizedName": "Block of Quartz", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.8, + "resistance": 0.8, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:quartz_pillar", + "localizedName": "Quartz Pillar", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.8, + "resistance": 0.8, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:quartz_slab", + "localizedName": "Quartz Slab", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 6.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:quartz_stairs", + "localizedName": "Quartz Stairs", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.8, + "resistance": 0.8, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:rail", + "localizedName": "Rail", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.7, + "resistance": 0.7, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#000000", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:red_banner", + "localizedName": "Red Banner", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.0, + "resistance": 1.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:red_bed", + "localizedName": "Red Bed", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.2, + "resistance": 0.2, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#c7c7c7", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:red_carpet", + "localizedName": "Red Carpet", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.1, + "resistance": 0.1, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": true, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#c7c7c7", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:red_concrete", + "localizedName": "Red Concrete", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.8, + "resistance": 1.8, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:red_concrete_powder", + "localizedName": "Red Concrete Powder", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.5, + "resistance": 0.5, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#f7e9a3", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:red_glazed_terracotta", + "localizedName": "Red Glazed Terracotta", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.4, + "resistance": 1.4, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:red_mushroom", + "localizedName": "Red Mushroom", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": true, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#007c00", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:red_mushroom_block", + "localizedName": "Red Mushroom Block", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.2, + "resistance": 0.2, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:red_nether_brick_slab", + "localizedName": "Red Nether Brick Slab", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 6.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:red_nether_brick_stairs", + "localizedName": "Red Nether Brick Stairs", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 6.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:red_nether_brick_wall", + "localizedName": "Red Nether Brick Wall", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 6.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:red_nether_bricks", + "localizedName": "Red Nether Bricks", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 6.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:red_sand", + "localizedName": "Red Sand", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.5, + "resistance": 0.5, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#f7e9a3", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:red_sandstone", + "localizedName": "Red Sandstone", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.8, + "resistance": 0.8, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:red_sandstone_slab", + "localizedName": "Red Sandstone Slab", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 6.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:red_sandstone_stairs", + "localizedName": "Red Sandstone Stairs", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.8, + "resistance": 0.8, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:red_sandstone_wall", + "localizedName": "Red Sandstone Wall", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.8, + "resistance": 0.8, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:red_shulker_box", + "localizedName": "Red Shulker Box", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 2.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#7f3fb2", + "isTranslucent": true, + "hasContainer": true + } + }, + { + "id": "minecraft:red_stained_glass", + "localizedName": "Red Stained Glass", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.3, + "resistance": 0.3, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#000000", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:red_stained_glass_pane", + "localizedName": "Red Stained Glass Pane", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.3, + "resistance": 0.3, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#000000", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:red_terracotta", + "localizedName": "Red Terracotta", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.25, + "resistance": 4.2, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:red_tulip", + "localizedName": "Red Tulip", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#007c00", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:red_wall_banner", + "localizedName": "Red Banner", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.0, + "resistance": 1.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:red_wool", + "localizedName": "Red Wool", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.8, + "resistance": 0.8, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#c7c7c7", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:redstone_block", + "localizedName": "Block of Redstone", + "material": { + "powerSource": true, + "lightValue": 0, + "hardness": 5.0, + "resistance": 6.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#a7a7a7", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:redstone_lamp", + "localizedName": "Redstone Lamp", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.3, + "resistance": 0.3, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#000000", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:redstone_ore", + "localizedName": "Redstone Ore", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 3.0, + "resistance": 3.0, + "ticksRandomly": true, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:redstone_torch", + "localizedName": "Redstone Torch", + "material": { + "powerSource": true, + "lightValue": 7, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#000000", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:redstone_wall_torch", + "localizedName": "Redstone Torch", + "material": { + "powerSource": true, + "lightValue": 7, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#000000", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:redstone_wire", + "localizedName": "Redstone Wire", + "material": { + "powerSource": true, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#000000", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:repeater", + "localizedName": "Redstone Repeater", + "material": { + "powerSource": true, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#000000", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:repeating_command_block", + "localizedName": "Repeating Command Block", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": -1.0, + "resistance": 3600000.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#a7a7a7", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:rose_bush", + "localizedName": "Rose Bush", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": true, + "opaque": false, + "replacedDuringPlacement": true, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#007c00", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:sand", + "localizedName": "Sand", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.5, + "resistance": 0.5, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#f7e9a3", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:sandstone", + "localizedName": "Sandstone", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.8, + "resistance": 0.8, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:sandstone_slab", + "localizedName": "Sandstone Slab", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 6.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:sandstone_stairs", + "localizedName": "Sandstone Stairs", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.8, + "resistance": 0.8, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:sandstone_wall", + "localizedName": "Sandstone Wall", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.8, + "resistance": 0.8, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:scaffolding", + "localizedName": "Scaffolding", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#000000", + "isTranslucent": true, + "hasContainer": false + } + }, + { + "id": "minecraft:sea_lantern", + "localizedName": "Sea Lantern", + "material": { + "powerSource": false, + "lightValue": 15, + "hardness": 0.3, + "resistance": 0.3, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#000000", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:sea_pickle", + "localizedName": "Sea Pickle", + "material": { + "powerSource": false, + "lightValue": 6, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#4040ff", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:seagrass", + "localizedName": "Seagrass", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": true, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#4040ff", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:shulker_box", + "localizedName": "Shulker Box", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 2.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#7f3fb2", + "isTranslucent": true, + "hasContainer": true + } + }, + { + "id": "minecraft:skeleton_skull", + "localizedName": "Skeleton Skull", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.0, + "resistance": 1.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#000000", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:skeleton_wall_skull", + "localizedName": "Skeleton Skull", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.0, + "resistance": 1.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#000000", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:slime_block", + "localizedName": "Slime Block", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.8, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#a4a8b8", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:smithing_table", + "localizedName": "Smithing Table", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.5, + "resistance": 2.5, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:smoker", + "localizedName": "Smoker", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 3.5, + "resistance": 3.5, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": true + } + }, + { + "id": "minecraft:smooth_quartz", + "localizedName": "Smooth Quartz", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 6.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:smooth_quartz_slab", + "localizedName": "Smooth Quartz Slab", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 6.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:smooth_quartz_stairs", + "localizedName": "Smooth Quartz Stairs", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 6.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:smooth_red_sandstone", + "localizedName": "Smooth Red Sandstone", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 6.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:smooth_red_sandstone_slab", + "localizedName": "Smooth Red Sandstone Slab", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 6.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:smooth_red_sandstone_stairs", + "localizedName": "Smooth Red Sandstone Stairs", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 6.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:smooth_sandstone", + "localizedName": "Smooth Sandstone", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 6.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:smooth_sandstone_slab", + "localizedName": "Smooth Sandstone Slab", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 6.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:smooth_sandstone_stairs", + "localizedName": "Smooth Sandstone Stairs", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 6.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:smooth_stone", + "localizedName": "Smooth Stone", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 6.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:smooth_stone_slab", + "localizedName": "Smooth Stone Slab", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 6.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:snow", + "localizedName": "Snow", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.1, + "resistance": 0.1, + "ticksRandomly": true, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": true, + "toolRequired": true, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#ffffff", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:snow_block", + "localizedName": "Snow Block", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.2, + "resistance": 0.2, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#ffffff", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:soul_sand", + "localizedName": "Soul Sand", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.5, + "resistance": 0.5, + "ticksRandomly": true, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#f7e9a3", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:spawner", + "localizedName": "Spawner", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 5.0, + "resistance": 5.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:sponge", + "localizedName": "Sponge", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.6, + "resistance": 0.6, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#e5e533", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:spruce_button", + "localizedName": "Spruce Button", + "material": { + "powerSource": true, + "lightValue": 0, + "hardness": 0.5, + "resistance": 0.5, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#000000", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:spruce_door", + "localizedName": "Spruce Door", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 3.0, + "resistance": 3.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:spruce_fence", + "localizedName": "Spruce Fence", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 3.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:spruce_fence_gate", + "localizedName": "Spruce Fence Gate", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 3.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:spruce_leaves", + "localizedName": "Spruce Leaves", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.2, + "resistance": 0.2, + "ticksRandomly": true, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#007c00", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:spruce_log", + "localizedName": "Spruce Log", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 2.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:spruce_planks", + "localizedName": "Spruce Planks", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 3.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:spruce_pressure_plate", + "localizedName": "Spruce Pressure Plate", + "material": { + "powerSource": true, + "lightValue": 0, + "hardness": 0.5, + "resistance": 0.5, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:spruce_sapling", + "localizedName": "Spruce Sapling", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": true, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#007c00", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:spruce_sign", + "localizedName": "Spruce Sign", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.0, + "resistance": 1.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:spruce_slab", + "localizedName": "Spruce Slab", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 3.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:spruce_stairs", + "localizedName": "Spruce Stairs", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 3.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:spruce_trapdoor", + "localizedName": "Spruce Trapdoor", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 3.0, + "resistance": 3.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:spruce_wall_sign", + "localizedName": "Spruce Sign", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.0, + "resistance": 1.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:spruce_wood", + "localizedName": "Spruce Wood", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 2.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:sticky_piston", + "localizedName": "Sticky Piston", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.5, + "resistance": 0.5, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": true, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:stone", + "localizedName": "Stone", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.5, + "resistance": 6.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:stone_brick_slab", + "localizedName": "Stone Brick Slab", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 6.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:stone_brick_stairs", + "localizedName": "Stone Brick Stairs", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.5, + "resistance": 6.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:stone_brick_wall", + "localizedName": "Stone Brick Wall", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.5, + "resistance": 6.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:stone_bricks", + "localizedName": "Stone Bricks", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.5, + "resistance": 6.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:stone_button", + "localizedName": "Stone Button", + "material": { + "powerSource": true, + "lightValue": 0, + "hardness": 0.5, + "resistance": 0.5, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#000000", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:stone_pressure_plate", + "localizedName": "Stone Pressure Plate", + "material": { + "powerSource": true, + "lightValue": 0, + "hardness": 0.5, + "resistance": 0.5, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:stone_slab", + "localizedName": "Stone Slab", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 6.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:stone_stairs", + "localizedName": "Stone Stairs", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.5, + "resistance": 6.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:stonecutter", + "localizedName": "Stonecutter", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 3.5, + "resistance": 3.5, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:stripped_acacia_log", + "localizedName": "Stripped Acacia Log", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 2.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:stripped_acacia_wood", + "localizedName": "Stripped Acacia Wood", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 2.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:stripped_birch_log", + "localizedName": "Stripped Birch Log", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 2.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:stripped_birch_wood", + "localizedName": "Stripped Birch Wood", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 2.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:stripped_dark_oak_log", + "localizedName": "Stripped Dark Oak Log", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 2.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:stripped_dark_oak_wood", + "localizedName": "Stripped Dark Oak Wood", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 2.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:stripped_jungle_log", + "localizedName": "Stripped Jungle Log", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 2.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:stripped_jungle_wood", + "localizedName": "Stripped Jungle Wood", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 2.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:stripped_oak_log", + "localizedName": "Stripped Oak Log", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 2.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:stripped_oak_wood", + "localizedName": "Stripped Oak Wood", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 2.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:stripped_spruce_log", + "localizedName": "Stripped Spruce Log", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 2.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:stripped_spruce_wood", + "localizedName": "Stripped Spruce Wood", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 2.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:structure_block", + "localizedName": "Structure Block", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": -1.0, + "resistance": 3600000.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#a7a7a7", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:structure_void", + "localizedName": "Structure Void", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": true, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#000000", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:sugar_cane", + "localizedName": "Sugar Cane", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": true, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#007c00", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:sunflower", + "localizedName": "Sunflower", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": true, + "opaque": false, + "replacedDuringPlacement": true, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#007c00", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:sweet_berry_bush", + "localizedName": "Sweet Berry Bush", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": true, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#007c00", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:tall_grass", + "localizedName": "Tall Grass", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": true, + "opaque": false, + "replacedDuringPlacement": true, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#007c00", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:tall_seagrass", + "localizedName": "Tall Seagrass", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": true, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#4040ff", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:terracotta", + "localizedName": "Terracotta", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.25, + "resistance": 4.2, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:tnt", + "localizedName": "TNT", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#ff0000", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:torch", + "localizedName": "Torch", + "material": { + "powerSource": false, + "lightValue": 14, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#000000", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:trapped_chest", + "localizedName": "Trapped Chest", + "material": { + "powerSource": true, + "lightValue": 0, + "hardness": 2.5, + "resistance": 2.5, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": true + } + }, + { + "id": "minecraft:tripwire", + "localizedName": "Tripwire", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#000000", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:tripwire_hook", + "localizedName": "Tripwire Hook", + "material": { + "powerSource": true, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#000000", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:tube_coral", + "localizedName": "Tube Coral", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#4040ff", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:tube_coral_block", + "localizedName": "Tube Coral Block", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.5, + "resistance": 6.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:tube_coral_fan", + "localizedName": "Tube Coral Fan", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#4040ff", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:tube_coral_wall_fan", + "localizedName": "Tube Coral Wall Fan", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#4040ff", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:turtle_egg", + "localizedName": "Turtle Egg", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.5, + "resistance": 0.5, + "ticksRandomly": true, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#007c00", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:vine", + "localizedName": "Vines", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.2, + "resistance": 0.2, + "ticksRandomly": true, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": true, + "opaque": false, + "replacedDuringPlacement": true, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#007c00", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:void_air", + "localizedName": "Void Air", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": true, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#000000", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:wall_torch", + "localizedName": "Torch", + "material": { + "powerSource": false, + "lightValue": 14, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#000000", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:water", + "localizedName": "Water", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 100.0, + "resistance": 100.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": true, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": true, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#4040ff", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:wet_sponge", + "localizedName": "Wet Sponge", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.6, + "resistance": 0.6, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#e5e533", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:wheat", + "localizedName": "Wheat Crops", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": true, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#007c00", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:white_banner", + "localizedName": "White Banner", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.0, + "resistance": 1.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:white_bed", + "localizedName": "White Bed", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.2, + "resistance": 0.2, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#c7c7c7", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:white_carpet", + "localizedName": "White Carpet", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.1, + "resistance": 0.1, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": true, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#c7c7c7", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:white_concrete", + "localizedName": "White Concrete", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.8, + "resistance": 1.8, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:white_concrete_powder", + "localizedName": "White Concrete Powder", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.5, + "resistance": 0.5, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#f7e9a3", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:white_glazed_terracotta", + "localizedName": "White Glazed Terracotta", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.4, + "resistance": 1.4, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:white_shulker_box", + "localizedName": "White Shulker Box", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 2.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#7f3fb2", + "isTranslucent": true, + "hasContainer": true + } + }, + { + "id": "minecraft:white_stained_glass", + "localizedName": "White Stained Glass", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.3, + "resistance": 0.3, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#000000", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:white_stained_glass_pane", + "localizedName": "White Stained Glass Pane", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.3, + "resistance": 0.3, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#000000", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:white_terracotta", + "localizedName": "White Terracotta", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.25, + "resistance": 4.2, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:white_tulip", + "localizedName": "White Tulip", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#007c00", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:white_wall_banner", + "localizedName": "White Banner", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.0, + "resistance": 1.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:white_wool", + "localizedName": "White Wool", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.8, + "resistance": 0.8, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#c7c7c7", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:wither_rose", + "localizedName": "Wither Rose", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.0, + "resistance": 0.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#007c00", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:wither_skeleton_skull", + "localizedName": "Wither Skeleton Skull", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.0, + "resistance": 1.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#000000", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:wither_skeleton_wall_skull", + "localizedName": "Wither Skeleton Skull", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.0, + "resistance": 1.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#000000", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:yellow_banner", + "localizedName": "Yellow Banner", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.0, + "resistance": 1.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:yellow_bed", + "localizedName": "Yellow Bed", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.2, + "resistance": 0.2, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#c7c7c7", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:yellow_carpet", + "localizedName": "Yellow Carpet", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.1, + "resistance": 0.1, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": true, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#c7c7c7", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:yellow_concrete", + "localizedName": "Yellow Concrete", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.8, + "resistance": 1.8, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:yellow_concrete_powder", + "localizedName": "Yellow Concrete Powder", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.5, + "resistance": 0.5, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#f7e9a3", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:yellow_glazed_terracotta", + "localizedName": "Yellow Glazed Terracotta", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.4, + "resistance": 1.4, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:yellow_shulker_box", + "localizedName": "Yellow Shulker Box", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 2.0, + "resistance": 2.0, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#7f3fb2", + "isTranslucent": true, + "hasContainer": true + } + }, + { + "id": "minecraft:yellow_stained_glass", + "localizedName": "Yellow Stained Glass", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.3, + "resistance": 0.3, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#000000", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:yellow_stained_glass_pane", + "localizedName": "Yellow Stained Glass Pane", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.3, + "resistance": 0.3, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#000000", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:yellow_terracotta", + "localizedName": "Yellow Terracotta", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.25, + "resistance": 4.2, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": false, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": true, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#707070", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:yellow_wall_banner", + "localizedName": "Yellow Banner", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.0, + "resistance": 1.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#8f7748", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:yellow_wool", + "localizedName": "Yellow Wool", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 0.8, + "resistance": 0.8, + "ticksRandomly": false, + "fullCube": true, + "slipperiness": 0.6, + "liquid": false, + "solid": true, + "movementBlocker": true, + "burnable": true, + "opaque": true, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": false, + "unpushable": false, + "mapColor": "#c7c7c7", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:zombie_head", + "localizedName": "Zombie Head", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.0, + "resistance": 1.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#000000", + "isTranslucent": false, + "hasContainer": false + } + }, + { + "id": "minecraft:zombie_wall_head", + "localizedName": "Zombie Head", + "material": { + "powerSource": false, + "lightValue": 0, + "hardness": 1.0, + "resistance": 1.0, + "ticksRandomly": false, + "fullCube": false, + "slipperiness": 0.6, + "liquid": false, + "solid": false, + "movementBlocker": false, + "burnable": false, + "opaque": false, + "replacedDuringPlacement": false, + "toolRequired": false, + "fragileWhenPushed": true, + "unpushable": false, + "mapColor": "#000000", + "isTranslucent": false, + "hasContainer": false + } + } +] \ No newline at end of file diff --git a/worldedit-core/src/main/resources/com/sk89q/worldedit/world/registry/items.114.json b/worldedit-core/src/main/resources/com/sk89q/worldedit/world/registry/items.114.json new file mode 100644 index 000000000..f139d1082 --- /dev/null +++ b/worldedit-core/src/main/resources/com/sk89q/worldedit/world/registry/items.114.json @@ -0,0 +1,6141 @@ +[ + { + "id": "minecraft:acacia_boat", + "unlocalizedName": "item.minecraft.acacia_boat", + "localizedName": "Acacia Boat", + "maxStackSize": 1, + "maxDamage": 0 + }, + { + "id": "minecraft:acacia_button", + "unlocalizedName": "block.minecraft.acacia_button", + "localizedName": "Acacia Button", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:acacia_door", + "unlocalizedName": "block.minecraft.acacia_door", + "localizedName": "Acacia Door", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:acacia_fence", + "unlocalizedName": "block.minecraft.acacia_fence", + "localizedName": "Acacia Fence", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:acacia_fence_gate", + "unlocalizedName": "block.minecraft.acacia_fence_gate", + "localizedName": "Acacia Fence Gate", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:acacia_leaves", + "unlocalizedName": "block.minecraft.acacia_leaves", + "localizedName": "Acacia Leaves", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:acacia_log", + "unlocalizedName": "block.minecraft.acacia_log", + "localizedName": "Acacia Log", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:acacia_planks", + "unlocalizedName": "block.minecraft.acacia_planks", + "localizedName": "Acacia Planks", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:acacia_pressure_plate", + "unlocalizedName": "block.minecraft.acacia_pressure_plate", + "localizedName": "Acacia Pressure Plate", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:acacia_sapling", + "unlocalizedName": "block.minecraft.acacia_sapling", + "localizedName": "Acacia Sapling", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:acacia_sign", + "unlocalizedName": "block.minecraft.acacia_sign", + "localizedName": "Acacia Sign", + "maxStackSize": 16, + "maxDamage": 0 + }, + { + "id": "minecraft:acacia_slab", + "unlocalizedName": "block.minecraft.acacia_slab", + "localizedName": "Acacia Slab", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:acacia_stairs", + "unlocalizedName": "block.minecraft.acacia_stairs", + "localizedName": "Acacia Stairs", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:acacia_trapdoor", + "unlocalizedName": "block.minecraft.acacia_trapdoor", + "localizedName": "Acacia Trapdoor", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:acacia_wood", + "unlocalizedName": "block.minecraft.acacia_wood", + "localizedName": "Acacia Wood", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:activator_rail", + "unlocalizedName": "block.minecraft.activator_rail", + "localizedName": "Activator Rail", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:air", + "unlocalizedName": "block.minecraft.air", + "localizedName": "Air", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:allium", + "unlocalizedName": "block.minecraft.allium", + "localizedName": "Allium", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:andesite", + "unlocalizedName": "block.minecraft.andesite", + "localizedName": "Andesite", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:andesite_slab", + "unlocalizedName": "block.minecraft.andesite_slab", + "localizedName": "Andesite Slab", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:andesite_stairs", + "unlocalizedName": "block.minecraft.andesite_stairs", + "localizedName": "Andesite Stairs", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:andesite_wall", + "unlocalizedName": "block.minecraft.andesite_wall", + "localizedName": "Andesite Wall", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:anvil", + "unlocalizedName": "block.minecraft.anvil", + "localizedName": "Anvil", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:apple", + "unlocalizedName": "item.minecraft.apple", + "localizedName": "Apple", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:armor_stand", + "unlocalizedName": "item.minecraft.armor_stand", + "localizedName": "Armor Stand", + "maxStackSize": 16, + "maxDamage": 0 + }, + { + "id": "minecraft:arrow", + "unlocalizedName": "item.minecraft.arrow", + "localizedName": "Arrow", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:azure_bluet", + "unlocalizedName": "block.minecraft.azure_bluet", + "localizedName": "Azure Bluet", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:baked_potato", + "unlocalizedName": "item.minecraft.baked_potato", + "localizedName": "Baked Potato", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:bamboo", + "unlocalizedName": "block.minecraft.bamboo", + "localizedName": "Bamboo", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:barrel", + "unlocalizedName": "block.minecraft.barrel", + "localizedName": "Barrel", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:barrier", + "unlocalizedName": "block.minecraft.barrier", + "localizedName": "Barrier", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:bat_spawn_egg", + "unlocalizedName": "item.minecraft.bat_spawn_egg", + "localizedName": "Bat Spawn Egg", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:beacon", + "unlocalizedName": "block.minecraft.beacon", + "localizedName": "Beacon", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:bedrock", + "unlocalizedName": "block.minecraft.bedrock", + "localizedName": "Bedrock", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:beef", + "unlocalizedName": "item.minecraft.beef", + "localizedName": "Raw Beef", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:beetroot", + "unlocalizedName": "item.minecraft.beetroot", + "localizedName": "Beetroot", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:beetroot_seeds", + "unlocalizedName": "item.minecraft.beetroot_seeds", + "localizedName": "Beetroot Seeds", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:beetroot_soup", + "unlocalizedName": "item.minecraft.beetroot_soup", + "localizedName": "Beetroot Soup", + "maxStackSize": 1, + "maxDamage": 0 + }, + { + "id": "minecraft:bell", + "unlocalizedName": "block.minecraft.bell", + "localizedName": "Bell", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:birch_boat", + "unlocalizedName": "item.minecraft.birch_boat", + "localizedName": "Birch Boat", + "maxStackSize": 1, + "maxDamage": 0 + }, + { + "id": "minecraft:birch_button", + "unlocalizedName": "block.minecraft.birch_button", + "localizedName": "Birch Button", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:birch_door", + "unlocalizedName": "block.minecraft.birch_door", + "localizedName": "Birch Door", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:birch_fence", + "unlocalizedName": "block.minecraft.birch_fence", + "localizedName": "Birch Fence", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:birch_fence_gate", + "unlocalizedName": "block.minecraft.birch_fence_gate", + "localizedName": "Birch Fence Gate", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:birch_leaves", + "unlocalizedName": "block.minecraft.birch_leaves", + "localizedName": "Birch Leaves", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:birch_log", + "unlocalizedName": "block.minecraft.birch_log", + "localizedName": "Birch Log", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:birch_planks", + "unlocalizedName": "block.minecraft.birch_planks", + "localizedName": "Birch Planks", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:birch_pressure_plate", + "unlocalizedName": "block.minecraft.birch_pressure_plate", + "localizedName": "Birch Pressure Plate", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:birch_sapling", + "unlocalizedName": "block.minecraft.birch_sapling", + "localizedName": "Birch Sapling", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:birch_sign", + "unlocalizedName": "block.minecraft.birch_sign", + "localizedName": "Birch Sign", + "maxStackSize": 16, + "maxDamage": 0 + }, + { + "id": "minecraft:birch_slab", + "unlocalizedName": "block.minecraft.birch_slab", + "localizedName": "Birch Slab", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:birch_stairs", + "unlocalizedName": "block.minecraft.birch_stairs", + "localizedName": "Birch Stairs", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:birch_trapdoor", + "unlocalizedName": "block.minecraft.birch_trapdoor", + "localizedName": "Birch Trapdoor", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:birch_wood", + "unlocalizedName": "block.minecraft.birch_wood", + "localizedName": "Birch Wood", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:black_banner", + "unlocalizedName": "block.minecraft.black_banner", + "localizedName": "Black Banner", + "maxStackSize": 16, + "maxDamage": 0 + }, + { + "id": "minecraft:black_bed", + "unlocalizedName": "block.minecraft.black_bed", + "localizedName": "Black Bed", + "maxStackSize": 1, + "maxDamage": 0 + }, + { + "id": "minecraft:black_carpet", + "unlocalizedName": "block.minecraft.black_carpet", + "localizedName": "Black Carpet", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:black_concrete", + "unlocalizedName": "block.minecraft.black_concrete", + "localizedName": "Black Concrete", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:black_concrete_powder", + "unlocalizedName": "block.minecraft.black_concrete_powder", + "localizedName": "Black Concrete Powder", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:black_dye", + "unlocalizedName": "item.minecraft.black_dye", + "localizedName": "Black Dye", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:black_glazed_terracotta", + "unlocalizedName": "block.minecraft.black_glazed_terracotta", + "localizedName": "Black Glazed Terracotta", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:black_shulker_box", + "unlocalizedName": "block.minecraft.black_shulker_box", + "localizedName": "Black Shulker Box", + "maxStackSize": 1, + "maxDamage": 0 + }, + { + "id": "minecraft:black_stained_glass", + "unlocalizedName": "block.minecraft.black_stained_glass", + "localizedName": "Black Stained Glass", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:black_stained_glass_pane", + "unlocalizedName": "block.minecraft.black_stained_glass_pane", + "localizedName": "Black Stained Glass Pane", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:black_terracotta", + "unlocalizedName": "block.minecraft.black_terracotta", + "localizedName": "Black Terracotta", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:black_wool", + "unlocalizedName": "block.minecraft.black_wool", + "localizedName": "Black Wool", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:blast_furnace", + "unlocalizedName": "block.minecraft.blast_furnace", + "localizedName": "Blast Furnace", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:blaze_powder", + "unlocalizedName": "item.minecraft.blaze_powder", + "localizedName": "Blaze Powder", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:blaze_rod", + "unlocalizedName": "item.minecraft.blaze_rod", + "localizedName": "Blaze Rod", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:blaze_spawn_egg", + "unlocalizedName": "item.minecraft.blaze_spawn_egg", + "localizedName": "Blaze Spawn Egg", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:blue_banner", + "unlocalizedName": "block.minecraft.blue_banner", + "localizedName": "Blue Banner", + "maxStackSize": 16, + "maxDamage": 0 + }, + { + "id": "minecraft:blue_bed", + "unlocalizedName": "block.minecraft.blue_bed", + "localizedName": "Blue Bed", + "maxStackSize": 1, + "maxDamage": 0 + }, + { + "id": "minecraft:blue_carpet", + "unlocalizedName": "block.minecraft.blue_carpet", + "localizedName": "Blue Carpet", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:blue_concrete", + "unlocalizedName": "block.minecraft.blue_concrete", + "localizedName": "Blue Concrete", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:blue_concrete_powder", + "unlocalizedName": "block.minecraft.blue_concrete_powder", + "localizedName": "Blue Concrete Powder", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:blue_dye", + "unlocalizedName": "item.minecraft.blue_dye", + "localizedName": "Blue Dye", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:blue_glazed_terracotta", + "unlocalizedName": "block.minecraft.blue_glazed_terracotta", + "localizedName": "Blue Glazed Terracotta", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:blue_ice", + "unlocalizedName": "block.minecraft.blue_ice", + "localizedName": "Blue Ice", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:blue_orchid", + "unlocalizedName": "block.minecraft.blue_orchid", + "localizedName": "Blue Orchid", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:blue_shulker_box", + "unlocalizedName": "block.minecraft.blue_shulker_box", + "localizedName": "Blue Shulker Box", + "maxStackSize": 1, + "maxDamage": 0 + }, + { + "id": "minecraft:blue_stained_glass", + "unlocalizedName": "block.minecraft.blue_stained_glass", + "localizedName": "Blue Stained Glass", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:blue_stained_glass_pane", + "unlocalizedName": "block.minecraft.blue_stained_glass_pane", + "localizedName": "Blue Stained Glass Pane", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:blue_terracotta", + "unlocalizedName": "block.minecraft.blue_terracotta", + "localizedName": "Blue Terracotta", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:blue_wool", + "unlocalizedName": "block.minecraft.blue_wool", + "localizedName": "Blue Wool", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:bone", + "unlocalizedName": "item.minecraft.bone", + "localizedName": "Bone", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:bone_block", + "unlocalizedName": "block.minecraft.bone_block", + "localizedName": "Bone Block", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:bone_meal", + "unlocalizedName": "item.minecraft.bone_meal", + "localizedName": "Bone Meal", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:book", + "unlocalizedName": "item.minecraft.book", + "localizedName": "Book", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:bookshelf", + "unlocalizedName": "block.minecraft.bookshelf", + "localizedName": "Bookshelf", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:bow", + "unlocalizedName": "item.minecraft.bow", + "localizedName": "Bow", + "maxStackSize": 1, + "maxDamage": 384 + }, + { + "id": "minecraft:bowl", + "unlocalizedName": "item.minecraft.bowl", + "localizedName": "Bowl", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:brain_coral", + "unlocalizedName": "block.minecraft.brain_coral", + "localizedName": "Brain Coral", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:brain_coral_block", + "unlocalizedName": "block.minecraft.brain_coral_block", + "localizedName": "Brain Coral Block", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:brain_coral_fan", + "unlocalizedName": "block.minecraft.brain_coral_fan", + "localizedName": "Brain Coral Fan", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:bread", + "unlocalizedName": "item.minecraft.bread", + "localizedName": "Bread", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:brewing_stand", + "unlocalizedName": "block.minecraft.brewing_stand", + "localizedName": "Brewing Stand", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:brick", + "unlocalizedName": "item.minecraft.brick", + "localizedName": "Brick", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:brick_slab", + "unlocalizedName": "block.minecraft.brick_slab", + "localizedName": "Brick Slab", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:brick_stairs", + "unlocalizedName": "block.minecraft.brick_stairs", + "localizedName": "Brick Stairs", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:brick_wall", + "unlocalizedName": "block.minecraft.brick_wall", + "localizedName": "Brick Wall", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:bricks", + "unlocalizedName": "block.minecraft.bricks", + "localizedName": "Bricks", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:brown_banner", + "unlocalizedName": "block.minecraft.brown_banner", + "localizedName": "Brown Banner", + "maxStackSize": 16, + "maxDamage": 0 + }, + { + "id": "minecraft:brown_bed", + "unlocalizedName": "block.minecraft.brown_bed", + "localizedName": "Brown Bed", + "maxStackSize": 1, + "maxDamage": 0 + }, + { + "id": "minecraft:brown_carpet", + "unlocalizedName": "block.minecraft.brown_carpet", + "localizedName": "Brown Carpet", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:brown_concrete", + "unlocalizedName": "block.minecraft.brown_concrete", + "localizedName": "Brown Concrete", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:brown_concrete_powder", + "unlocalizedName": "block.minecraft.brown_concrete_powder", + "localizedName": "Brown Concrete Powder", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:brown_dye", + "unlocalizedName": "item.minecraft.brown_dye", + "localizedName": "Brown Dye", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:brown_glazed_terracotta", + "unlocalizedName": "block.minecraft.brown_glazed_terracotta", + "localizedName": "Brown Glazed Terracotta", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:brown_mushroom", + "unlocalizedName": "block.minecraft.brown_mushroom", + "localizedName": "Brown Mushroom", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:brown_mushroom_block", + "unlocalizedName": "block.minecraft.brown_mushroom_block", + "localizedName": "Brown Mushroom Block", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:brown_shulker_box", + "unlocalizedName": "block.minecraft.brown_shulker_box", + "localizedName": "Brown Shulker Box", + "maxStackSize": 1, + "maxDamage": 0 + }, + { + "id": "minecraft:brown_stained_glass", + "unlocalizedName": "block.minecraft.brown_stained_glass", + "localizedName": "Brown Stained Glass", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:brown_stained_glass_pane", + "unlocalizedName": "block.minecraft.brown_stained_glass_pane", + "localizedName": "Brown Stained Glass Pane", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:brown_terracotta", + "unlocalizedName": "block.minecraft.brown_terracotta", + "localizedName": "Brown Terracotta", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:brown_wool", + "unlocalizedName": "block.minecraft.brown_wool", + "localizedName": "Brown Wool", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:bubble_coral", + "unlocalizedName": "block.minecraft.bubble_coral", + "localizedName": "Bubble Coral", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:bubble_coral_block", + "unlocalizedName": "block.minecraft.bubble_coral_block", + "localizedName": "Bubble Coral Block", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:bubble_coral_fan", + "unlocalizedName": "block.minecraft.bubble_coral_fan", + "localizedName": "Bubble Coral Fan", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:bucket", + "unlocalizedName": "item.minecraft.bucket", + "localizedName": "Bucket", + "maxStackSize": 16, + "maxDamage": 0 + }, + { + "id": "minecraft:cactus", + "unlocalizedName": "block.minecraft.cactus", + "localizedName": "Cactus", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:cake", + "unlocalizedName": "block.minecraft.cake", + "localizedName": "Cake", + "maxStackSize": 1, + "maxDamage": 0 + }, + { + "id": "minecraft:campfire", + "unlocalizedName": "block.minecraft.campfire", + "localizedName": "Campfire", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:carrot", + "unlocalizedName": "item.minecraft.carrot", + "localizedName": "Carrot", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:carrot_on_a_stick", + "unlocalizedName": "item.minecraft.carrot_on_a_stick", + "localizedName": "Carrot on a Stick", + "maxStackSize": 1, + "maxDamage": 25 + }, + { + "id": "minecraft:cartography_table", + "unlocalizedName": "block.minecraft.cartography_table", + "localizedName": "Cartography Table", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:carved_pumpkin", + "unlocalizedName": "block.minecraft.carved_pumpkin", + "localizedName": "Carved Pumpkin", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:cat_spawn_egg", + "unlocalizedName": "item.minecraft.cat_spawn_egg", + "localizedName": "Cat Spawn Egg", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:cauldron", + "unlocalizedName": "block.minecraft.cauldron", + "localizedName": "Cauldron", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:cave_spider_spawn_egg", + "unlocalizedName": "item.minecraft.cave_spider_spawn_egg", + "localizedName": "Cave Spider Spawn Egg", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:chain_command_block", + "unlocalizedName": "block.minecraft.chain_command_block", + "localizedName": "Chain Command Block", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:chainmail_boots", + "unlocalizedName": "item.minecraft.chainmail_boots", + "localizedName": "Chainmail Boots", + "maxStackSize": 1, + "maxDamage": 195 + }, + { + "id": "minecraft:chainmail_chestplate", + "unlocalizedName": "item.minecraft.chainmail_chestplate", + "localizedName": "Chainmail Chestplate", + "maxStackSize": 1, + "maxDamage": 240 + }, + { + "id": "minecraft:chainmail_helmet", + "unlocalizedName": "item.minecraft.chainmail_helmet", + "localizedName": "Chainmail Helmet", + "maxStackSize": 1, + "maxDamage": 165 + }, + { + "id": "minecraft:chainmail_leggings", + "unlocalizedName": "item.minecraft.chainmail_leggings", + "localizedName": "Chainmail Leggings", + "maxStackSize": 1, + "maxDamage": 225 + }, + { + "id": "minecraft:charcoal", + "unlocalizedName": "item.minecraft.charcoal", + "localizedName": "Charcoal", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:chest", + "unlocalizedName": "block.minecraft.chest", + "localizedName": "Chest", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:chest_minecart", + "unlocalizedName": "item.minecraft.chest_minecart", + "localizedName": "Minecart with Chest", + "maxStackSize": 1, + "maxDamage": 0 + }, + { + "id": "minecraft:chicken", + "unlocalizedName": "item.minecraft.chicken", + "localizedName": "Raw Chicken", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:chicken_spawn_egg", + "unlocalizedName": "item.minecraft.chicken_spawn_egg", + "localizedName": "Chicken Spawn Egg", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:chipped_anvil", + "unlocalizedName": "block.minecraft.chipped_anvil", + "localizedName": "Chipped Anvil", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:chiseled_quartz_block", + "unlocalizedName": "block.minecraft.chiseled_quartz_block", + "localizedName": "Chiseled Quartz Block", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:chiseled_red_sandstone", + "unlocalizedName": "block.minecraft.chiseled_red_sandstone", + "localizedName": "Chiseled Red Sandstone", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:chiseled_sandstone", + "unlocalizedName": "block.minecraft.chiseled_sandstone", + "localizedName": "Chiseled Sandstone", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:chiseled_stone_bricks", + "unlocalizedName": "block.minecraft.chiseled_stone_bricks", + "localizedName": "Chiseled Stone Bricks", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:chorus_flower", + "unlocalizedName": "block.minecraft.chorus_flower", + "localizedName": "Chorus Flower", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:chorus_fruit", + "unlocalizedName": "item.minecraft.chorus_fruit", + "localizedName": "Chorus Fruit", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:chorus_plant", + "unlocalizedName": "block.minecraft.chorus_plant", + "localizedName": "Chorus Plant", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:clay", + "unlocalizedName": "block.minecraft.clay", + "localizedName": "Clay", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:clay_ball", + "unlocalizedName": "item.minecraft.clay_ball", + "localizedName": "Clay", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:clock", + "unlocalizedName": "item.minecraft.clock", + "localizedName": "Clock", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:coal", + "unlocalizedName": "item.minecraft.coal", + "localizedName": "Coal", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:coal_block", + "unlocalizedName": "block.minecraft.coal_block", + "localizedName": "Block of Coal", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:coal_ore", + "unlocalizedName": "block.minecraft.coal_ore", + "localizedName": "Coal Ore", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:coarse_dirt", + "unlocalizedName": "block.minecraft.coarse_dirt", + "localizedName": "Coarse Dirt", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:cobblestone", + "unlocalizedName": "block.minecraft.cobblestone", + "localizedName": "Cobblestone", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:cobblestone_slab", + "unlocalizedName": "block.minecraft.cobblestone_slab", + "localizedName": "Cobblestone Slab", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:cobblestone_stairs", + "unlocalizedName": "block.minecraft.cobblestone_stairs", + "localizedName": "Cobblestone Stairs", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:cobblestone_wall", + "unlocalizedName": "block.minecraft.cobblestone_wall", + "localizedName": "Cobblestone Wall", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:cobweb", + "unlocalizedName": "block.minecraft.cobweb", + "localizedName": "Cobweb", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:cocoa_beans", + "unlocalizedName": "item.minecraft.cocoa_beans", + "localizedName": "Cocoa Beans", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:cod", + "unlocalizedName": "item.minecraft.cod", + "localizedName": "Raw Cod", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:cod_bucket", + "unlocalizedName": "item.minecraft.cod_bucket", + "localizedName": "Bucket of Cod", + "maxStackSize": 1, + "maxDamage": 0 + }, + { + "id": "minecraft:cod_spawn_egg", + "unlocalizedName": "item.minecraft.cod_spawn_egg", + "localizedName": "Cod Spawn Egg", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:command_block", + "unlocalizedName": "block.minecraft.command_block", + "localizedName": "Command Block", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:command_block_minecart", + "unlocalizedName": "item.minecraft.command_block_minecart", + "localizedName": "Minecart with Command Block", + "maxStackSize": 1, + "maxDamage": 0 + }, + { + "id": "minecraft:comparator", + "unlocalizedName": "block.minecraft.comparator", + "localizedName": "Redstone Comparator", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:compass", + "unlocalizedName": "item.minecraft.compass", + "localizedName": "Compass", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:composter", + "unlocalizedName": "block.minecraft.composter", + "localizedName": "Composter", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:conduit", + "unlocalizedName": "block.minecraft.conduit", + "localizedName": "Conduit", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:cooked_beef", + "unlocalizedName": "item.minecraft.cooked_beef", + "localizedName": "Steak", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:cooked_chicken", + "unlocalizedName": "item.minecraft.cooked_chicken", + "localizedName": "Cooked Chicken", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:cooked_cod", + "unlocalizedName": "item.minecraft.cooked_cod", + "localizedName": "Cooked Cod", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:cooked_mutton", + "unlocalizedName": "item.minecraft.cooked_mutton", + "localizedName": "Cooked Mutton", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:cooked_porkchop", + "unlocalizedName": "item.minecraft.cooked_porkchop", + "localizedName": "Cooked Porkchop", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:cooked_rabbit", + "unlocalizedName": "item.minecraft.cooked_rabbit", + "localizedName": "Cooked Rabbit", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:cooked_salmon", + "unlocalizedName": "item.minecraft.cooked_salmon", + "localizedName": "Cooked Salmon", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:cookie", + "unlocalizedName": "item.minecraft.cookie", + "localizedName": "Cookie", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:cornflower", + "unlocalizedName": "block.minecraft.cornflower", + "localizedName": "Cornflower", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:cow_spawn_egg", + "unlocalizedName": "item.minecraft.cow_spawn_egg", + "localizedName": "Cow Spawn Egg", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:cracked_stone_bricks", + "unlocalizedName": "block.minecraft.cracked_stone_bricks", + "localizedName": "Cracked Stone Bricks", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:crafting_table", + "unlocalizedName": "block.minecraft.crafting_table", + "localizedName": "Crafting Table", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:creeper_banner_pattern", + "unlocalizedName": "item.minecraft.creeper_banner_pattern", + "localizedName": "Banner Pattern", + "maxStackSize": 1, + "maxDamage": 0 + }, + { + "id": "minecraft:creeper_head", + "unlocalizedName": "block.minecraft.creeper_head", + "localizedName": "Creeper Head", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:creeper_spawn_egg", + "unlocalizedName": "item.minecraft.creeper_spawn_egg", + "localizedName": "Creeper Spawn Egg", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:crossbow", + "unlocalizedName": "item.minecraft.crossbow", + "localizedName": "Crossbow", + "maxStackSize": 1, + "maxDamage": 326 + }, + { + "id": "minecraft:cut_red_sandstone", + "unlocalizedName": "block.minecraft.cut_red_sandstone", + "localizedName": "Cut Red Sandstone", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:cut_red_sandstone_slab", + "unlocalizedName": "block.minecraft.cut_red_sandstone_slab", + "localizedName": "Cut Red Sandstone Slab", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:cut_sandstone", + "unlocalizedName": "block.minecraft.cut_sandstone", + "localizedName": "Cut Sandstone", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:cut_sandstone_slab", + "unlocalizedName": "block.minecraft.cut_sandstone_slab", + "localizedName": "Cut Sandstone Slab", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:cyan_banner", + "unlocalizedName": "block.minecraft.cyan_banner", + "localizedName": "Cyan Banner", + "maxStackSize": 16, + "maxDamage": 0 + }, + { + "id": "minecraft:cyan_bed", + "unlocalizedName": "block.minecraft.cyan_bed", + "localizedName": "Cyan Bed", + "maxStackSize": 1, + "maxDamage": 0 + }, + { + "id": "minecraft:cyan_carpet", + "unlocalizedName": "block.minecraft.cyan_carpet", + "localizedName": "Cyan Carpet", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:cyan_concrete", + "unlocalizedName": "block.minecraft.cyan_concrete", + "localizedName": "Cyan Concrete", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:cyan_concrete_powder", + "unlocalizedName": "block.minecraft.cyan_concrete_powder", + "localizedName": "Cyan Concrete Powder", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:cyan_dye", + "unlocalizedName": "item.minecraft.cyan_dye", + "localizedName": "Cyan Dye", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:cyan_glazed_terracotta", + "unlocalizedName": "block.minecraft.cyan_glazed_terracotta", + "localizedName": "Cyan Glazed Terracotta", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:cyan_shulker_box", + "unlocalizedName": "block.minecraft.cyan_shulker_box", + "localizedName": "Cyan Shulker Box", + "maxStackSize": 1, + "maxDamage": 0 + }, + { + "id": "minecraft:cyan_stained_glass", + "unlocalizedName": "block.minecraft.cyan_stained_glass", + "localizedName": "Cyan Stained Glass", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:cyan_stained_glass_pane", + "unlocalizedName": "block.minecraft.cyan_stained_glass_pane", + "localizedName": "Cyan Stained Glass Pane", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:cyan_terracotta", + "unlocalizedName": "block.minecraft.cyan_terracotta", + "localizedName": "Cyan Terracotta", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:cyan_wool", + "unlocalizedName": "block.minecraft.cyan_wool", + "localizedName": "Cyan Wool", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:damaged_anvil", + "unlocalizedName": "block.minecraft.damaged_anvil", + "localizedName": "Damaged Anvil", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:dandelion", + "unlocalizedName": "block.minecraft.dandelion", + "localizedName": "Dandelion", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:dark_oak_boat", + "unlocalizedName": "item.minecraft.dark_oak_boat", + "localizedName": "Dark Oak Boat", + "maxStackSize": 1, + "maxDamage": 0 + }, + { + "id": "minecraft:dark_oak_button", + "unlocalizedName": "block.minecraft.dark_oak_button", + "localizedName": "Dark Oak Button", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:dark_oak_door", + "unlocalizedName": "block.minecraft.dark_oak_door", + "localizedName": "Dark Oak Door", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:dark_oak_fence", + "unlocalizedName": "block.minecraft.dark_oak_fence", + "localizedName": "Dark Oak Fence", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:dark_oak_fence_gate", + "unlocalizedName": "block.minecraft.dark_oak_fence_gate", + "localizedName": "Dark Oak Fence Gate", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:dark_oak_leaves", + "unlocalizedName": "block.minecraft.dark_oak_leaves", + "localizedName": "Dark Oak Leaves", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:dark_oak_log", + "unlocalizedName": "block.minecraft.dark_oak_log", + "localizedName": "Dark Oak Log", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:dark_oak_planks", + "unlocalizedName": "block.minecraft.dark_oak_planks", + "localizedName": "Dark Oak Planks", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:dark_oak_pressure_plate", + "unlocalizedName": "block.minecraft.dark_oak_pressure_plate", + "localizedName": "Dark Oak Pressure Plate", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:dark_oak_sapling", + "unlocalizedName": "block.minecraft.dark_oak_sapling", + "localizedName": "Dark Oak Sapling", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:dark_oak_sign", + "unlocalizedName": "block.minecraft.dark_oak_sign", + "localizedName": "Dark Oak Sign", + "maxStackSize": 16, + "maxDamage": 0 + }, + { + "id": "minecraft:dark_oak_slab", + "unlocalizedName": "block.minecraft.dark_oak_slab", + "localizedName": "Dark Oak Slab", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:dark_oak_stairs", + "unlocalizedName": "block.minecraft.dark_oak_stairs", + "localizedName": "Dark Oak Stairs", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:dark_oak_trapdoor", + "unlocalizedName": "block.minecraft.dark_oak_trapdoor", + "localizedName": "Dark Oak Trapdoor", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:dark_oak_wood", + "unlocalizedName": "block.minecraft.dark_oak_wood", + "localizedName": "Dark Oak Wood", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:dark_prismarine", + "unlocalizedName": "block.minecraft.dark_prismarine", + "localizedName": "Dark Prismarine", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:dark_prismarine_slab", + "unlocalizedName": "block.minecraft.dark_prismarine_slab", + "localizedName": "Dark Prismarine Slab", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:dark_prismarine_stairs", + "unlocalizedName": "block.minecraft.dark_prismarine_stairs", + "localizedName": "Dark Prismarine Stairs", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:daylight_detector", + "unlocalizedName": "block.minecraft.daylight_detector", + "localizedName": "Daylight Detector", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:dead_brain_coral", + "unlocalizedName": "block.minecraft.dead_brain_coral", + "localizedName": "Dead Brain Coral", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:dead_brain_coral_block", + "unlocalizedName": "block.minecraft.dead_brain_coral_block", + "localizedName": "Dead Brain Coral Block", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:dead_brain_coral_fan", + "unlocalizedName": "block.minecraft.dead_brain_coral_fan", + "localizedName": "Dead Brain Coral Fan", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:dead_bubble_coral", + "unlocalizedName": "block.minecraft.dead_bubble_coral", + "localizedName": "Dead Bubble Coral", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:dead_bubble_coral_block", + "unlocalizedName": "block.minecraft.dead_bubble_coral_block", + "localizedName": "Dead Bubble Coral Block", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:dead_bubble_coral_fan", + "unlocalizedName": "block.minecraft.dead_bubble_coral_fan", + "localizedName": "Dead Bubble Coral Fan", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:dead_bush", + "unlocalizedName": "block.minecraft.dead_bush", + "localizedName": "Dead Bush", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:dead_fire_coral", + "unlocalizedName": "block.minecraft.dead_fire_coral", + "localizedName": "Dead Fire Coral", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:dead_fire_coral_block", + "unlocalizedName": "block.minecraft.dead_fire_coral_block", + "localizedName": "Dead Fire Coral Block", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:dead_fire_coral_fan", + "unlocalizedName": "block.minecraft.dead_fire_coral_fan", + "localizedName": "Dead Fire Coral Fan", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:dead_horn_coral", + "unlocalizedName": "block.minecraft.dead_horn_coral", + "localizedName": "Dead Horn Coral", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:dead_horn_coral_block", + "unlocalizedName": "block.minecraft.dead_horn_coral_block", + "localizedName": "Dead Horn Coral Block", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:dead_horn_coral_fan", + "unlocalizedName": "block.minecraft.dead_horn_coral_fan", + "localizedName": "Dead Horn Coral Fan", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:dead_tube_coral", + "unlocalizedName": "block.minecraft.dead_tube_coral", + "localizedName": "Dead Tube Coral", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:dead_tube_coral_block", + "unlocalizedName": "block.minecraft.dead_tube_coral_block", + "localizedName": "Dead Tube Coral Block", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:dead_tube_coral_fan", + "unlocalizedName": "block.minecraft.dead_tube_coral_fan", + "localizedName": "Dead Tube Coral Fan", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:debug_stick", + "unlocalizedName": "item.minecraft.debug_stick", + "localizedName": "Debug Stick", + "maxStackSize": 1, + "maxDamage": 0 + }, + { + "id": "minecraft:detector_rail", + "unlocalizedName": "block.minecraft.detector_rail", + "localizedName": "Detector Rail", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:diamond", + "unlocalizedName": "item.minecraft.diamond", + "localizedName": "Diamond", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:diamond_axe", + "unlocalizedName": "item.minecraft.diamond_axe", + "localizedName": "Diamond Axe", + "maxStackSize": 1, + "maxDamage": 1561 + }, + { + "id": "minecraft:diamond_block", + "unlocalizedName": "block.minecraft.diamond_block", + "localizedName": "Block of Diamond", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:diamond_boots", + "unlocalizedName": "item.minecraft.diamond_boots", + "localizedName": "Diamond Boots", + "maxStackSize": 1, + "maxDamage": 429 + }, + { + "id": "minecraft:diamond_chestplate", + "unlocalizedName": "item.minecraft.diamond_chestplate", + "localizedName": "Diamond Chestplate", + "maxStackSize": 1, + "maxDamage": 528 + }, + { + "id": "minecraft:diamond_helmet", + "unlocalizedName": "item.minecraft.diamond_helmet", + "localizedName": "Diamond Helmet", + "maxStackSize": 1, + "maxDamage": 363 + }, + { + "id": "minecraft:diamond_hoe", + "unlocalizedName": "item.minecraft.diamond_hoe", + "localizedName": "Diamond Hoe", + "maxStackSize": 1, + "maxDamage": 1561 + }, + { + "id": "minecraft:diamond_horse_armor", + "unlocalizedName": "item.minecraft.diamond_horse_armor", + "localizedName": "Diamond Horse Armor", + "maxStackSize": 1, + "maxDamage": 0 + }, + { + "id": "minecraft:diamond_leggings", + "unlocalizedName": "item.minecraft.diamond_leggings", + "localizedName": "Diamond Leggings", + "maxStackSize": 1, + "maxDamage": 495 + }, + { + "id": "minecraft:diamond_ore", + "unlocalizedName": "block.minecraft.diamond_ore", + "localizedName": "Diamond Ore", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:diamond_pickaxe", + "unlocalizedName": "item.minecraft.diamond_pickaxe", + "localizedName": "Diamond Pickaxe", + "maxStackSize": 1, + "maxDamage": 1561 + }, + { + "id": "minecraft:diamond_shovel", + "unlocalizedName": "item.minecraft.diamond_shovel", + "localizedName": "Diamond Shovel", + "maxStackSize": 1, + "maxDamage": 1561 + }, + { + "id": "minecraft:diamond_sword", + "unlocalizedName": "item.minecraft.diamond_sword", + "localizedName": "Diamond Sword", + "maxStackSize": 1, + "maxDamage": 1561 + }, + { + "id": "minecraft:diorite", + "unlocalizedName": "block.minecraft.diorite", + "localizedName": "Diorite", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:diorite_slab", + "unlocalizedName": "block.minecraft.diorite_slab", + "localizedName": "Diorite Slab", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:diorite_stairs", + "unlocalizedName": "block.minecraft.diorite_stairs", + "localizedName": "Diorite Stairs", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:diorite_wall", + "unlocalizedName": "block.minecraft.diorite_wall", + "localizedName": "Diorite Wall", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:dirt", + "unlocalizedName": "block.minecraft.dirt", + "localizedName": "Dirt", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:dispenser", + "unlocalizedName": "block.minecraft.dispenser", + "localizedName": "Dispenser", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:dolphin_spawn_egg", + "unlocalizedName": "item.minecraft.dolphin_spawn_egg", + "localizedName": "Dolphin Spawn Egg", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:donkey_spawn_egg", + "unlocalizedName": "item.minecraft.donkey_spawn_egg", + "localizedName": "Donkey Spawn Egg", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:dragon_breath", + "unlocalizedName": "item.minecraft.dragon_breath", + "localizedName": "Dragon\u0027s Breath", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:dragon_egg", + "unlocalizedName": "block.minecraft.dragon_egg", + "localizedName": "Dragon Egg", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:dragon_head", + "unlocalizedName": "block.minecraft.dragon_head", + "localizedName": "Dragon Head", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:dried_kelp", + "unlocalizedName": "item.minecraft.dried_kelp", + "localizedName": "Dried Kelp", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:dried_kelp_block", + "unlocalizedName": "block.minecraft.dried_kelp_block", + "localizedName": "Dried Kelp Block", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:dropper", + "unlocalizedName": "block.minecraft.dropper", + "localizedName": "Dropper", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:drowned_spawn_egg", + "unlocalizedName": "item.minecraft.drowned_spawn_egg", + "localizedName": "Drowned Spawn Egg", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:egg", + "unlocalizedName": "item.minecraft.egg", + "localizedName": "Egg", + "maxStackSize": 16, + "maxDamage": 0 + }, + { + "id": "minecraft:elder_guardian_spawn_egg", + "unlocalizedName": "item.minecraft.elder_guardian_spawn_egg", + "localizedName": "Elder Guardian Spawn Egg", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:elytra", + "unlocalizedName": "item.minecraft.elytra", + "localizedName": "Elytra", + "maxStackSize": 1, + "maxDamage": 432 + }, + { + "id": "minecraft:emerald", + "unlocalizedName": "item.minecraft.emerald", + "localizedName": "Emerald", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:emerald_block", + "unlocalizedName": "block.minecraft.emerald_block", + "localizedName": "Block of Emerald", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:emerald_ore", + "unlocalizedName": "block.minecraft.emerald_ore", + "localizedName": "Emerald Ore", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:enchanted_book", + "unlocalizedName": "item.minecraft.enchanted_book", + "localizedName": "Enchanted Book", + "maxStackSize": 1, + "maxDamage": 0 + }, + { + "id": "minecraft:enchanted_golden_apple", + "unlocalizedName": "item.minecraft.enchanted_golden_apple", + "localizedName": "Enchanted Golden Apple", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:enchanting_table", + "unlocalizedName": "block.minecraft.enchanting_table", + "localizedName": "Enchanting Table", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:end_crystal", + "unlocalizedName": "item.minecraft.end_crystal", + "localizedName": "End Crystal", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:end_portal_frame", + "unlocalizedName": "block.minecraft.end_portal_frame", + "localizedName": "End Portal Frame", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:end_rod", + "unlocalizedName": "block.minecraft.end_rod", + "localizedName": "End Rod", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:end_stone", + "unlocalizedName": "block.minecraft.end_stone", + "localizedName": "End Stone", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:end_stone_brick_slab", + "unlocalizedName": "block.minecraft.end_stone_brick_slab", + "localizedName": "End Stone Brick Slab", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:end_stone_brick_stairs", + "unlocalizedName": "block.minecraft.end_stone_brick_stairs", + "localizedName": "End Stone Brick Stairs", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:end_stone_brick_wall", + "unlocalizedName": "block.minecraft.end_stone_brick_wall", + "localizedName": "End Stone Brick Wall", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:end_stone_bricks", + "unlocalizedName": "block.minecraft.end_stone_bricks", + "localizedName": "End Stone Bricks", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:ender_chest", + "unlocalizedName": "block.minecraft.ender_chest", + "localizedName": "Ender Chest", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:ender_eye", + "unlocalizedName": "item.minecraft.ender_eye", + "localizedName": "Eye of Ender", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:ender_pearl", + "unlocalizedName": "item.minecraft.ender_pearl", + "localizedName": "Ender Pearl", + "maxStackSize": 16, + "maxDamage": 0 + }, + { + "id": "minecraft:enderman_spawn_egg", + "unlocalizedName": "item.minecraft.enderman_spawn_egg", + "localizedName": "Enderman Spawn Egg", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:endermite_spawn_egg", + "unlocalizedName": "item.minecraft.endermite_spawn_egg", + "localizedName": "Endermite Spawn Egg", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:evoker_spawn_egg", + "unlocalizedName": "item.minecraft.evoker_spawn_egg", + "localizedName": "Evoker Spawn Egg", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:experience_bottle", + "unlocalizedName": "item.minecraft.experience_bottle", + "localizedName": "Bottle o\u0027 Enchanting", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:farmland", + "unlocalizedName": "block.minecraft.farmland", + "localizedName": "Farmland", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:feather", + "unlocalizedName": "item.minecraft.feather", + "localizedName": "Feather", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:fermented_spider_eye", + "unlocalizedName": "item.minecraft.fermented_spider_eye", + "localizedName": "Fermented Spider Eye", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:fern", + "unlocalizedName": "block.minecraft.fern", + "localizedName": "Fern", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:filled_map", + "unlocalizedName": "item.minecraft.filled_map", + "localizedName": "Map", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:fire_charge", + "unlocalizedName": "item.minecraft.fire_charge", + "localizedName": "Fire Charge", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:fire_coral", + "unlocalizedName": "block.minecraft.fire_coral", + "localizedName": "Fire Coral", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:fire_coral_block", + "unlocalizedName": "block.minecraft.fire_coral_block", + "localizedName": "Fire Coral Block", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:fire_coral_fan", + "unlocalizedName": "block.minecraft.fire_coral_fan", + "localizedName": "Fire Coral Fan", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:firework_rocket", + "unlocalizedName": "item.minecraft.firework_rocket", + "localizedName": "Firework Rocket", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:firework_star", + "unlocalizedName": "item.minecraft.firework_star", + "localizedName": "Firework Star", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:fishing_rod", + "unlocalizedName": "item.minecraft.fishing_rod", + "localizedName": "Fishing Rod", + "maxStackSize": 1, + "maxDamage": 64 + }, + { + "id": "minecraft:fletching_table", + "unlocalizedName": "block.minecraft.fletching_table", + "localizedName": "Fletching Table", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:flint", + "unlocalizedName": "item.minecraft.flint", + "localizedName": "Flint", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:flint_and_steel", + "unlocalizedName": "item.minecraft.flint_and_steel", + "localizedName": "Flint and Steel", + "maxStackSize": 1, + "maxDamage": 64 + }, + { + "id": "minecraft:flower_banner_pattern", + "unlocalizedName": "item.minecraft.flower_banner_pattern", + "localizedName": "Banner Pattern", + "maxStackSize": 1, + "maxDamage": 0 + }, + { + "id": "minecraft:flower_pot", + "unlocalizedName": "block.minecraft.flower_pot", + "localizedName": "Flower Pot", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:fox_spawn_egg", + "unlocalizedName": "item.minecraft.fox_spawn_egg", + "localizedName": "Fox Spawn Egg", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:furnace", + "unlocalizedName": "block.minecraft.furnace", + "localizedName": "Furnace", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:furnace_minecart", + "unlocalizedName": "item.minecraft.furnace_minecart", + "localizedName": "Minecart with Furnace", + "maxStackSize": 1, + "maxDamage": 0 + }, + { + "id": "minecraft:ghast_spawn_egg", + "unlocalizedName": "item.minecraft.ghast_spawn_egg", + "localizedName": "Ghast Spawn Egg", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:ghast_tear", + "unlocalizedName": "item.minecraft.ghast_tear", + "localizedName": "Ghast Tear", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:glass", + "unlocalizedName": "block.minecraft.glass", + "localizedName": "Glass", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:glass_bottle", + "unlocalizedName": "item.minecraft.glass_bottle", + "localizedName": "Glass Bottle", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:glass_pane", + "unlocalizedName": "block.minecraft.glass_pane", + "localizedName": "Glass Pane", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:glistering_melon_slice", + "unlocalizedName": "item.minecraft.glistering_melon_slice", + "localizedName": "Glistering Melon Slice", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:globe_banner_pattern", + "unlocalizedName": "item.minecraft.globe_banner_pattern", + "localizedName": "Banner Pattern", + "maxStackSize": 1, + "maxDamage": 0 + }, + { + "id": "minecraft:glowstone", + "unlocalizedName": "block.minecraft.glowstone", + "localizedName": "Glowstone", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:glowstone_dust", + "unlocalizedName": "item.minecraft.glowstone_dust", + "localizedName": "Glowstone Dust", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:gold_block", + "unlocalizedName": "block.minecraft.gold_block", + "localizedName": "Block of Gold", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:gold_ingot", + "unlocalizedName": "item.minecraft.gold_ingot", + "localizedName": "Gold Ingot", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:gold_nugget", + "unlocalizedName": "item.minecraft.gold_nugget", + "localizedName": "Gold Nugget", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:gold_ore", + "unlocalizedName": "block.minecraft.gold_ore", + "localizedName": "Gold Ore", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:golden_apple", + "unlocalizedName": "item.minecraft.golden_apple", + "localizedName": "Golden Apple", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:golden_axe", + "unlocalizedName": "item.minecraft.golden_axe", + "localizedName": "Golden Axe", + "maxStackSize": 1, + "maxDamage": 32 + }, + { + "id": "minecraft:golden_boots", + "unlocalizedName": "item.minecraft.golden_boots", + "localizedName": "Golden Boots", + "maxStackSize": 1, + "maxDamage": 91 + }, + { + "id": "minecraft:golden_carrot", + "unlocalizedName": "item.minecraft.golden_carrot", + "localizedName": "Golden Carrot", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:golden_chestplate", + "unlocalizedName": "item.minecraft.golden_chestplate", + "localizedName": "Golden Chestplate", + "maxStackSize": 1, + "maxDamage": 112 + }, + { + "id": "minecraft:golden_helmet", + "unlocalizedName": "item.minecraft.golden_helmet", + "localizedName": "Golden Helmet", + "maxStackSize": 1, + "maxDamage": 77 + }, + { + "id": "minecraft:golden_hoe", + "unlocalizedName": "item.minecraft.golden_hoe", + "localizedName": "Golden Hoe", + "maxStackSize": 1, + "maxDamage": 32 + }, + { + "id": "minecraft:golden_horse_armor", + "unlocalizedName": "item.minecraft.golden_horse_armor", + "localizedName": "Golden Horse Armor", + "maxStackSize": 1, + "maxDamage": 0 + }, + { + "id": "minecraft:golden_leggings", + "unlocalizedName": "item.minecraft.golden_leggings", + "localizedName": "Golden Leggings", + "maxStackSize": 1, + "maxDamage": 105 + }, + { + "id": "minecraft:golden_pickaxe", + "unlocalizedName": "item.minecraft.golden_pickaxe", + "localizedName": "Golden Pickaxe", + "maxStackSize": 1, + "maxDamage": 32 + }, + { + "id": "minecraft:golden_shovel", + "unlocalizedName": "item.minecraft.golden_shovel", + "localizedName": "Golden Shovel", + "maxStackSize": 1, + "maxDamage": 32 + }, + { + "id": "minecraft:golden_sword", + "unlocalizedName": "item.minecraft.golden_sword", + "localizedName": "Golden Sword", + "maxStackSize": 1, + "maxDamage": 32 + }, + { + "id": "minecraft:granite", + "unlocalizedName": "block.minecraft.granite", + "localizedName": "Granite", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:granite_slab", + "unlocalizedName": "block.minecraft.granite_slab", + "localizedName": "Granite Slab", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:granite_stairs", + "unlocalizedName": "block.minecraft.granite_stairs", + "localizedName": "Granite Stairs", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:granite_wall", + "unlocalizedName": "block.minecraft.granite_wall", + "localizedName": "Granite Wall", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:grass", + "unlocalizedName": "block.minecraft.grass", + "localizedName": "Grass", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:grass_block", + "unlocalizedName": "block.minecraft.grass_block", + "localizedName": "Grass Block", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:grass_path", + "unlocalizedName": "block.minecraft.grass_path", + "localizedName": "Grass Path", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:gravel", + "unlocalizedName": "block.minecraft.gravel", + "localizedName": "Gravel", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:gray_banner", + "unlocalizedName": "block.minecraft.gray_banner", + "localizedName": "Gray Banner", + "maxStackSize": 16, + "maxDamage": 0 + }, + { + "id": "minecraft:gray_bed", + "unlocalizedName": "block.minecraft.gray_bed", + "localizedName": "Gray Bed", + "maxStackSize": 1, + "maxDamage": 0 + }, + { + "id": "minecraft:gray_carpet", + "unlocalizedName": "block.minecraft.gray_carpet", + "localizedName": "Gray Carpet", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:gray_concrete", + "unlocalizedName": "block.minecraft.gray_concrete", + "localizedName": "Gray Concrete", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:gray_concrete_powder", + "unlocalizedName": "block.minecraft.gray_concrete_powder", + "localizedName": "Gray Concrete Powder", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:gray_dye", + "unlocalizedName": "item.minecraft.gray_dye", + "localizedName": "Gray Dye", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:gray_glazed_terracotta", + "unlocalizedName": "block.minecraft.gray_glazed_terracotta", + "localizedName": "Gray Glazed Terracotta", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:gray_shulker_box", + "unlocalizedName": "block.minecraft.gray_shulker_box", + "localizedName": "Gray Shulker Box", + "maxStackSize": 1, + "maxDamage": 0 + }, + { + "id": "minecraft:gray_stained_glass", + "unlocalizedName": "block.minecraft.gray_stained_glass", + "localizedName": "Gray Stained Glass", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:gray_stained_glass_pane", + "unlocalizedName": "block.minecraft.gray_stained_glass_pane", + "localizedName": "Gray Stained Glass Pane", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:gray_terracotta", + "unlocalizedName": "block.minecraft.gray_terracotta", + "localizedName": "Gray Terracotta", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:gray_wool", + "unlocalizedName": "block.minecraft.gray_wool", + "localizedName": "Gray Wool", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:green_banner", + "unlocalizedName": "block.minecraft.green_banner", + "localizedName": "Green Banner", + "maxStackSize": 16, + "maxDamage": 0 + }, + { + "id": "minecraft:green_bed", + "unlocalizedName": "block.minecraft.green_bed", + "localizedName": "Green Bed", + "maxStackSize": 1, + "maxDamage": 0 + }, + { + "id": "minecraft:green_carpet", + "unlocalizedName": "block.minecraft.green_carpet", + "localizedName": "Green Carpet", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:green_concrete", + "unlocalizedName": "block.minecraft.green_concrete", + "localizedName": "Green Concrete", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:green_concrete_powder", + "unlocalizedName": "block.minecraft.green_concrete_powder", + "localizedName": "Green Concrete Powder", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:green_dye", + "unlocalizedName": "item.minecraft.green_dye", + "localizedName": "Green Dye", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:green_glazed_terracotta", + "unlocalizedName": "block.minecraft.green_glazed_terracotta", + "localizedName": "Green Glazed Terracotta", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:green_shulker_box", + "unlocalizedName": "block.minecraft.green_shulker_box", + "localizedName": "Green Shulker Box", + "maxStackSize": 1, + "maxDamage": 0 + }, + { + "id": "minecraft:green_stained_glass", + "unlocalizedName": "block.minecraft.green_stained_glass", + "localizedName": "Green Stained Glass", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:green_stained_glass_pane", + "unlocalizedName": "block.minecraft.green_stained_glass_pane", + "localizedName": "Green Stained Glass Pane", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:green_terracotta", + "unlocalizedName": "block.minecraft.green_terracotta", + "localizedName": "Green Terracotta", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:green_wool", + "unlocalizedName": "block.minecraft.green_wool", + "localizedName": "Green Wool", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:grindstone", + "unlocalizedName": "block.minecraft.grindstone", + "localizedName": "Grindstone", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:guardian_spawn_egg", + "unlocalizedName": "item.minecraft.guardian_spawn_egg", + "localizedName": "Guardian Spawn Egg", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:gunpowder", + "unlocalizedName": "item.minecraft.gunpowder", + "localizedName": "Gunpowder", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:hay_block", + "unlocalizedName": "block.minecraft.hay_block", + "localizedName": "Hay Bale", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:heart_of_the_sea", + "unlocalizedName": "item.minecraft.heart_of_the_sea", + "localizedName": "Heart of the Sea", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:heavy_weighted_pressure_plate", + "unlocalizedName": "block.minecraft.heavy_weighted_pressure_plate", + "localizedName": "Heavy Weighted Pressure Plate", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:hopper", + "unlocalizedName": "block.minecraft.hopper", + "localizedName": "Hopper", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:hopper_minecart", + "unlocalizedName": "item.minecraft.hopper_minecart", + "localizedName": "Minecart with Hopper", + "maxStackSize": 1, + "maxDamage": 0 + }, + { + "id": "minecraft:horn_coral", + "unlocalizedName": "block.minecraft.horn_coral", + "localizedName": "Horn Coral", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:horn_coral_block", + "unlocalizedName": "block.minecraft.horn_coral_block", + "localizedName": "Horn Coral Block", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:horn_coral_fan", + "unlocalizedName": "block.minecraft.horn_coral_fan", + "localizedName": "Horn Coral Fan", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:horse_spawn_egg", + "unlocalizedName": "item.minecraft.horse_spawn_egg", + "localizedName": "Horse Spawn Egg", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:husk_spawn_egg", + "unlocalizedName": "item.minecraft.husk_spawn_egg", + "localizedName": "Husk Spawn Egg", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:ice", + "unlocalizedName": "block.minecraft.ice", + "localizedName": "Ice", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:infested_chiseled_stone_bricks", + "unlocalizedName": "block.minecraft.infested_chiseled_stone_bricks", + "localizedName": "Infested Chiseled Stone Bricks", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:infested_cobblestone", + "unlocalizedName": "block.minecraft.infested_cobblestone", + "localizedName": "Infested Cobblestone", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:infested_cracked_stone_bricks", + "unlocalizedName": "block.minecraft.infested_cracked_stone_bricks", + "localizedName": "Infested Cracked Stone Bricks", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:infested_mossy_stone_bricks", + "unlocalizedName": "block.minecraft.infested_mossy_stone_bricks", + "localizedName": "Infested Mossy Stone Bricks", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:infested_stone", + "unlocalizedName": "block.minecraft.infested_stone", + "localizedName": "Infested Stone", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:infested_stone_bricks", + "unlocalizedName": "block.minecraft.infested_stone_bricks", + "localizedName": "Infested Stone Bricks", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:ink_sac", + "unlocalizedName": "item.minecraft.ink_sac", + "localizedName": "Ink Sac", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:iron_axe", + "unlocalizedName": "item.minecraft.iron_axe", + "localizedName": "Iron Axe", + "maxStackSize": 1, + "maxDamage": 250 + }, + { + "id": "minecraft:iron_bars", + "unlocalizedName": "block.minecraft.iron_bars", + "localizedName": "Iron Bars", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:iron_block", + "unlocalizedName": "block.minecraft.iron_block", + "localizedName": "Block of Iron", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:iron_boots", + "unlocalizedName": "item.minecraft.iron_boots", + "localizedName": "Iron Boots", + "maxStackSize": 1, + "maxDamage": 195 + }, + { + "id": "minecraft:iron_chestplate", + "unlocalizedName": "item.minecraft.iron_chestplate", + "localizedName": "Iron Chestplate", + "maxStackSize": 1, + "maxDamage": 240 + }, + { + "id": "minecraft:iron_door", + "unlocalizedName": "block.minecraft.iron_door", + "localizedName": "Iron Door", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:iron_helmet", + "unlocalizedName": "item.minecraft.iron_helmet", + "localizedName": "Iron Helmet", + "maxStackSize": 1, + "maxDamage": 165 + }, + { + "id": "minecraft:iron_hoe", + "unlocalizedName": "item.minecraft.iron_hoe", + "localizedName": "Iron Hoe", + "maxStackSize": 1, + "maxDamage": 250 + }, + { + "id": "minecraft:iron_horse_armor", + "unlocalizedName": "item.minecraft.iron_horse_armor", + "localizedName": "Iron Horse Armor", + "maxStackSize": 1, + "maxDamage": 0 + }, + { + "id": "minecraft:iron_ingot", + "unlocalizedName": "item.minecraft.iron_ingot", + "localizedName": "Iron Ingot", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:iron_leggings", + "unlocalizedName": "item.minecraft.iron_leggings", + "localizedName": "Iron Leggings", + "maxStackSize": 1, + "maxDamage": 225 + }, + { + "id": "minecraft:iron_nugget", + "unlocalizedName": "item.minecraft.iron_nugget", + "localizedName": "Iron Nugget", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:iron_ore", + "unlocalizedName": "block.minecraft.iron_ore", + "localizedName": "Iron Ore", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:iron_pickaxe", + "unlocalizedName": "item.minecraft.iron_pickaxe", + "localizedName": "Iron Pickaxe", + "maxStackSize": 1, + "maxDamage": 250 + }, + { + "id": "minecraft:iron_shovel", + "unlocalizedName": "item.minecraft.iron_shovel", + "localizedName": "Iron Shovel", + "maxStackSize": 1, + "maxDamage": 250 + }, + { + "id": "minecraft:iron_sword", + "unlocalizedName": "item.minecraft.iron_sword", + "localizedName": "Iron Sword", + "maxStackSize": 1, + "maxDamage": 250 + }, + { + "id": "minecraft:iron_trapdoor", + "unlocalizedName": "block.minecraft.iron_trapdoor", + "localizedName": "Iron Trapdoor", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:item_frame", + "unlocalizedName": "item.minecraft.item_frame", + "localizedName": "Item Frame", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:jack_o_lantern", + "unlocalizedName": "block.minecraft.jack_o_lantern", + "localizedName": "Jack o\u0027Lantern", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:jigsaw", + "unlocalizedName": "block.minecraft.jigsaw", + "localizedName": "Jigsaw Block", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:jukebox", + "unlocalizedName": "block.minecraft.jukebox", + "localizedName": "Jukebox", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:jungle_boat", + "unlocalizedName": "item.minecraft.jungle_boat", + "localizedName": "Jungle Boat", + "maxStackSize": 1, + "maxDamage": 0 + }, + { + "id": "minecraft:jungle_button", + "unlocalizedName": "block.minecraft.jungle_button", + "localizedName": "Jungle Button", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:jungle_door", + "unlocalizedName": "block.minecraft.jungle_door", + "localizedName": "Jungle Door", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:jungle_fence", + "unlocalizedName": "block.minecraft.jungle_fence", + "localizedName": "Jungle Fence", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:jungle_fence_gate", + "unlocalizedName": "block.minecraft.jungle_fence_gate", + "localizedName": "Jungle Fence Gate", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:jungle_leaves", + "unlocalizedName": "block.minecraft.jungle_leaves", + "localizedName": "Jungle Leaves", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:jungle_log", + "unlocalizedName": "block.minecraft.jungle_log", + "localizedName": "Jungle Log", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:jungle_planks", + "unlocalizedName": "block.minecraft.jungle_planks", + "localizedName": "Jungle Planks", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:jungle_pressure_plate", + "unlocalizedName": "block.minecraft.jungle_pressure_plate", + "localizedName": "Jungle Pressure Plate", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:jungle_sapling", + "unlocalizedName": "block.minecraft.jungle_sapling", + "localizedName": "Jungle Sapling", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:jungle_sign", + "unlocalizedName": "block.minecraft.jungle_sign", + "localizedName": "Jungle Sign", + "maxStackSize": 16, + "maxDamage": 0 + }, + { + "id": "minecraft:jungle_slab", + "unlocalizedName": "block.minecraft.jungle_slab", + "localizedName": "Jungle Slab", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:jungle_stairs", + "unlocalizedName": "block.minecraft.jungle_stairs", + "localizedName": "Jungle Stairs", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:jungle_trapdoor", + "unlocalizedName": "block.minecraft.jungle_trapdoor", + "localizedName": "Jungle Trapdoor", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:jungle_wood", + "unlocalizedName": "block.minecraft.jungle_wood", + "localizedName": "Jungle Wood", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:kelp", + "unlocalizedName": "block.minecraft.kelp", + "localizedName": "Kelp", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:knowledge_book", + "unlocalizedName": "item.minecraft.knowledge_book", + "localizedName": "Knowledge Book", + "maxStackSize": 1, + "maxDamage": 0 + }, + { + "id": "minecraft:ladder", + "unlocalizedName": "block.minecraft.ladder", + "localizedName": "Ladder", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:lantern", + "unlocalizedName": "block.minecraft.lantern", + "localizedName": "Lantern", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:lapis_block", + "unlocalizedName": "block.minecraft.lapis_block", + "localizedName": "Lapis Lazuli Block", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:lapis_lazuli", + "unlocalizedName": "item.minecraft.lapis_lazuli", + "localizedName": "Lapis Lazuli", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:lapis_ore", + "unlocalizedName": "block.minecraft.lapis_ore", + "localizedName": "Lapis Lazuli Ore", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:large_fern", + "unlocalizedName": "block.minecraft.large_fern", + "localizedName": "Large Fern", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:lava_bucket", + "unlocalizedName": "item.minecraft.lava_bucket", + "localizedName": "Lava Bucket", + "maxStackSize": 1, + "maxDamage": 0 + }, + { + "id": "minecraft:lead", + "unlocalizedName": "item.minecraft.lead", + "localizedName": "Lead", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:leather", + "unlocalizedName": "item.minecraft.leather", + "localizedName": "Leather", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:leather_boots", + "unlocalizedName": "item.minecraft.leather_boots", + "localizedName": "Leather Boots", + "maxStackSize": 1, + "maxDamage": 65 + }, + { + "id": "minecraft:leather_chestplate", + "unlocalizedName": "item.minecraft.leather_chestplate", + "localizedName": "Leather Tunic", + "maxStackSize": 1, + "maxDamage": 80 + }, + { + "id": "minecraft:leather_helmet", + "unlocalizedName": "item.minecraft.leather_helmet", + "localizedName": "Leather Cap", + "maxStackSize": 1, + "maxDamage": 55 + }, + { + "id": "minecraft:leather_horse_armor", + "unlocalizedName": "item.minecraft.leather_horse_armor", + "localizedName": "Leather Horse Armor", + "maxStackSize": 1, + "maxDamage": 0 + }, + { + "id": "minecraft:leather_leggings", + "unlocalizedName": "item.minecraft.leather_leggings", + "localizedName": "Leather Pants", + "maxStackSize": 1, + "maxDamage": 75 + }, + { + "id": "minecraft:lectern", + "unlocalizedName": "block.minecraft.lectern", + "localizedName": "Lectern", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:lever", + "unlocalizedName": "block.minecraft.lever", + "localizedName": "Lever", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:light_blue_banner", + "unlocalizedName": "block.minecraft.light_blue_banner", + "localizedName": "Light Blue Banner", + "maxStackSize": 16, + "maxDamage": 0 + }, + { + "id": "minecraft:light_blue_bed", + "unlocalizedName": "block.minecraft.light_blue_bed", + "localizedName": "Light Blue Bed", + "maxStackSize": 1, + "maxDamage": 0 + }, + { + "id": "minecraft:light_blue_carpet", + "unlocalizedName": "block.minecraft.light_blue_carpet", + "localizedName": "Light Blue Carpet", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:light_blue_concrete", + "unlocalizedName": "block.minecraft.light_blue_concrete", + "localizedName": "Light Blue Concrete", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:light_blue_concrete_powder", + "unlocalizedName": "block.minecraft.light_blue_concrete_powder", + "localizedName": "Light Blue Concrete Powder", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:light_blue_dye", + "unlocalizedName": "item.minecraft.light_blue_dye", + "localizedName": "Light Blue Dye", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:light_blue_glazed_terracotta", + "unlocalizedName": "block.minecraft.light_blue_glazed_terracotta", + "localizedName": "Light Blue Glazed Terracotta", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:light_blue_shulker_box", + "unlocalizedName": "block.minecraft.light_blue_shulker_box", + "localizedName": "Light Blue Shulker Box", + "maxStackSize": 1, + "maxDamage": 0 + }, + { + "id": "minecraft:light_blue_stained_glass", + "unlocalizedName": "block.minecraft.light_blue_stained_glass", + "localizedName": "Light Blue Stained Glass", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:light_blue_stained_glass_pane", + "unlocalizedName": "block.minecraft.light_blue_stained_glass_pane", + "localizedName": "Light Blue Stained Glass Pane", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:light_blue_terracotta", + "unlocalizedName": "block.minecraft.light_blue_terracotta", + "localizedName": "Light Blue Terracotta", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:light_blue_wool", + "unlocalizedName": "block.minecraft.light_blue_wool", + "localizedName": "Light Blue Wool", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:light_gray_banner", + "unlocalizedName": "block.minecraft.light_gray_banner", + "localizedName": "Light Gray Banner", + "maxStackSize": 16, + "maxDamage": 0 + }, + { + "id": "minecraft:light_gray_bed", + "unlocalizedName": "block.minecraft.light_gray_bed", + "localizedName": "Light Gray Bed", + "maxStackSize": 1, + "maxDamage": 0 + }, + { + "id": "minecraft:light_gray_carpet", + "unlocalizedName": "block.minecraft.light_gray_carpet", + "localizedName": "Light Gray Carpet", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:light_gray_concrete", + "unlocalizedName": "block.minecraft.light_gray_concrete", + "localizedName": "Light Gray Concrete", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:light_gray_concrete_powder", + "unlocalizedName": "block.minecraft.light_gray_concrete_powder", + "localizedName": "Light Gray Concrete Powder", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:light_gray_dye", + "unlocalizedName": "item.minecraft.light_gray_dye", + "localizedName": "Light Gray Dye", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:light_gray_glazed_terracotta", + "unlocalizedName": "block.minecraft.light_gray_glazed_terracotta", + "localizedName": "Light Gray Glazed Terracotta", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:light_gray_shulker_box", + "unlocalizedName": "block.minecraft.light_gray_shulker_box", + "localizedName": "Light Gray Shulker Box", + "maxStackSize": 1, + "maxDamage": 0 + }, + { + "id": "minecraft:light_gray_stained_glass", + "unlocalizedName": "block.minecraft.light_gray_stained_glass", + "localizedName": "Light Gray Stained Glass", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:light_gray_stained_glass_pane", + "unlocalizedName": "block.minecraft.light_gray_stained_glass_pane", + "localizedName": "Light Gray Stained Glass Pane", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:light_gray_terracotta", + "unlocalizedName": "block.minecraft.light_gray_terracotta", + "localizedName": "Light Gray Terracotta", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:light_gray_wool", + "unlocalizedName": "block.minecraft.light_gray_wool", + "localizedName": "Light Gray Wool", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:light_weighted_pressure_plate", + "unlocalizedName": "block.minecraft.light_weighted_pressure_plate", + "localizedName": "Light Weighted Pressure Plate", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:lilac", + "unlocalizedName": "block.minecraft.lilac", + "localizedName": "Lilac", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:lily_of_the_valley", + "unlocalizedName": "block.minecraft.lily_of_the_valley", + "localizedName": "Lily of the Valley", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:lily_pad", + "unlocalizedName": "block.minecraft.lily_pad", + "localizedName": "Lily Pad", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:lime_banner", + "unlocalizedName": "block.minecraft.lime_banner", + "localizedName": "Lime Banner", + "maxStackSize": 16, + "maxDamage": 0 + }, + { + "id": "minecraft:lime_bed", + "unlocalizedName": "block.minecraft.lime_bed", + "localizedName": "Lime Bed", + "maxStackSize": 1, + "maxDamage": 0 + }, + { + "id": "minecraft:lime_carpet", + "unlocalizedName": "block.minecraft.lime_carpet", + "localizedName": "Lime Carpet", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:lime_concrete", + "unlocalizedName": "block.minecraft.lime_concrete", + "localizedName": "Lime Concrete", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:lime_concrete_powder", + "unlocalizedName": "block.minecraft.lime_concrete_powder", + "localizedName": "Lime Concrete Powder", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:lime_dye", + "unlocalizedName": "item.minecraft.lime_dye", + "localizedName": "Lime Dye", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:lime_glazed_terracotta", + "unlocalizedName": "block.minecraft.lime_glazed_terracotta", + "localizedName": "Lime Glazed Terracotta", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:lime_shulker_box", + "unlocalizedName": "block.minecraft.lime_shulker_box", + "localizedName": "Lime Shulker Box", + "maxStackSize": 1, + "maxDamage": 0 + }, + { + "id": "minecraft:lime_stained_glass", + "unlocalizedName": "block.minecraft.lime_stained_glass", + "localizedName": "Lime Stained Glass", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:lime_stained_glass_pane", + "unlocalizedName": "block.minecraft.lime_stained_glass_pane", + "localizedName": "Lime Stained Glass Pane", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:lime_terracotta", + "unlocalizedName": "block.minecraft.lime_terracotta", + "localizedName": "Lime Terracotta", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:lime_wool", + "unlocalizedName": "block.minecraft.lime_wool", + "localizedName": "Lime Wool", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:lingering_potion", + "unlocalizedName": "item.minecraft.lingering_potion.effect.water", + "localizedName": "Lingering Water Bottle", + "maxStackSize": 1, + "maxDamage": 0 + }, + { + "id": "minecraft:llama_spawn_egg", + "unlocalizedName": "item.minecraft.llama_spawn_egg", + "localizedName": "Llama Spawn Egg", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:loom", + "unlocalizedName": "block.minecraft.loom", + "localizedName": "Loom", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:magenta_banner", + "unlocalizedName": "block.minecraft.magenta_banner", + "localizedName": "Magenta Banner", + "maxStackSize": 16, + "maxDamage": 0 + }, + { + "id": "minecraft:magenta_bed", + "unlocalizedName": "block.minecraft.magenta_bed", + "localizedName": "Magenta Bed", + "maxStackSize": 1, + "maxDamage": 0 + }, + { + "id": "minecraft:magenta_carpet", + "unlocalizedName": "block.minecraft.magenta_carpet", + "localizedName": "Magenta Carpet", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:magenta_concrete", + "unlocalizedName": "block.minecraft.magenta_concrete", + "localizedName": "Magenta Concrete", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:magenta_concrete_powder", + "unlocalizedName": "block.minecraft.magenta_concrete_powder", + "localizedName": "Magenta Concrete Powder", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:magenta_dye", + "unlocalizedName": "item.minecraft.magenta_dye", + "localizedName": "Magenta Dye", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:magenta_glazed_terracotta", + "unlocalizedName": "block.minecraft.magenta_glazed_terracotta", + "localizedName": "Magenta Glazed Terracotta", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:magenta_shulker_box", + "unlocalizedName": "block.minecraft.magenta_shulker_box", + "localizedName": "Magenta Shulker Box", + "maxStackSize": 1, + "maxDamage": 0 + }, + { + "id": "minecraft:magenta_stained_glass", + "unlocalizedName": "block.minecraft.magenta_stained_glass", + "localizedName": "Magenta Stained Glass", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:magenta_stained_glass_pane", + "unlocalizedName": "block.minecraft.magenta_stained_glass_pane", + "localizedName": "Magenta Stained Glass Pane", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:magenta_terracotta", + "unlocalizedName": "block.minecraft.magenta_terracotta", + "localizedName": "Magenta Terracotta", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:magenta_wool", + "unlocalizedName": "block.minecraft.magenta_wool", + "localizedName": "Magenta Wool", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:magma_block", + "unlocalizedName": "block.minecraft.magma_block", + "localizedName": "Magma Block", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:magma_cream", + "unlocalizedName": "item.minecraft.magma_cream", + "localizedName": "Magma Cream", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:magma_cube_spawn_egg", + "unlocalizedName": "item.minecraft.magma_cube_spawn_egg", + "localizedName": "Magma Cube Spawn Egg", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:map", + "unlocalizedName": "item.minecraft.map", + "localizedName": "Empty Map", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:melon", + "unlocalizedName": "block.minecraft.melon", + "localizedName": "Melon", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:melon_seeds", + "unlocalizedName": "item.minecraft.melon_seeds", + "localizedName": "Melon Seeds", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:melon_slice", + "unlocalizedName": "item.minecraft.melon_slice", + "localizedName": "Melon Slice", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:milk_bucket", + "unlocalizedName": "item.minecraft.milk_bucket", + "localizedName": "Milk Bucket", + "maxStackSize": 1, + "maxDamage": 0 + }, + { + "id": "minecraft:minecart", + "unlocalizedName": "item.minecraft.minecart", + "localizedName": "Minecart", + "maxStackSize": 1, + "maxDamage": 0 + }, + { + "id": "minecraft:mojang_banner_pattern", + "unlocalizedName": "item.minecraft.mojang_banner_pattern", + "localizedName": "Banner Pattern", + "maxStackSize": 1, + "maxDamage": 0 + }, + { + "id": "minecraft:mooshroom_spawn_egg", + "unlocalizedName": "item.minecraft.mooshroom_spawn_egg", + "localizedName": "Mooshroom Spawn Egg", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:mossy_cobblestone", + "unlocalizedName": "block.minecraft.mossy_cobblestone", + "localizedName": "Mossy Cobblestone", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:mossy_cobblestone_slab", + "unlocalizedName": "block.minecraft.mossy_cobblestone_slab", + "localizedName": "Mossy Cobblestone Slab", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:mossy_cobblestone_stairs", + "unlocalizedName": "block.minecraft.mossy_cobblestone_stairs", + "localizedName": "Mossy Cobblestone Stairs", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:mossy_cobblestone_wall", + "unlocalizedName": "block.minecraft.mossy_cobblestone_wall", + "localizedName": "Mossy Cobblestone Wall", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:mossy_stone_brick_slab", + "unlocalizedName": "block.minecraft.mossy_stone_brick_slab", + "localizedName": "Mossy Stone Brick Slab", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:mossy_stone_brick_stairs", + "unlocalizedName": "block.minecraft.mossy_stone_brick_stairs", + "localizedName": "Mossy Stone Brick Stairs", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:mossy_stone_brick_wall", + "unlocalizedName": "block.minecraft.mossy_stone_brick_wall", + "localizedName": "Mossy Stone Brick Wall", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:mossy_stone_bricks", + "unlocalizedName": "block.minecraft.mossy_stone_bricks", + "localizedName": "Mossy Stone Bricks", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:mule_spawn_egg", + "unlocalizedName": "item.minecraft.mule_spawn_egg", + "localizedName": "Mule Spawn Egg", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:mushroom_stem", + "unlocalizedName": "block.minecraft.mushroom_stem", + "localizedName": "Mushroom Stem", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:mushroom_stew", + "unlocalizedName": "item.minecraft.mushroom_stew", + "localizedName": "Mushroom Stew", + "maxStackSize": 1, + "maxDamage": 0 + }, + { + "id": "minecraft:music_disc_11", + "unlocalizedName": "item.minecraft.music_disc_11", + "localizedName": "Music Disc", + "maxStackSize": 1, + "maxDamage": 0 + }, + { + "id": "minecraft:music_disc_13", + "unlocalizedName": "item.minecraft.music_disc_13", + "localizedName": "Music Disc", + "maxStackSize": 1, + "maxDamage": 0 + }, + { + "id": "minecraft:music_disc_blocks", + "unlocalizedName": "item.minecraft.music_disc_blocks", + "localizedName": "Music Disc", + "maxStackSize": 1, + "maxDamage": 0 + }, + { + "id": "minecraft:music_disc_cat", + "unlocalizedName": "item.minecraft.music_disc_cat", + "localizedName": "Music Disc", + "maxStackSize": 1, + "maxDamage": 0 + }, + { + "id": "minecraft:music_disc_chirp", + "unlocalizedName": "item.minecraft.music_disc_chirp", + "localizedName": "Music Disc", + "maxStackSize": 1, + "maxDamage": 0 + }, + { + "id": "minecraft:music_disc_far", + "unlocalizedName": "item.minecraft.music_disc_far", + "localizedName": "Music Disc", + "maxStackSize": 1, + "maxDamage": 0 + }, + { + "id": "minecraft:music_disc_mall", + "unlocalizedName": "item.minecraft.music_disc_mall", + "localizedName": "Music Disc", + "maxStackSize": 1, + "maxDamage": 0 + }, + { + "id": "minecraft:music_disc_mellohi", + "unlocalizedName": "item.minecraft.music_disc_mellohi", + "localizedName": "Music Disc", + "maxStackSize": 1, + "maxDamage": 0 + }, + { + "id": "minecraft:music_disc_stal", + "unlocalizedName": "item.minecraft.music_disc_stal", + "localizedName": "Music Disc", + "maxStackSize": 1, + "maxDamage": 0 + }, + { + "id": "minecraft:music_disc_strad", + "unlocalizedName": "item.minecraft.music_disc_strad", + "localizedName": "Music Disc", + "maxStackSize": 1, + "maxDamage": 0 + }, + { + "id": "minecraft:music_disc_wait", + "unlocalizedName": "item.minecraft.music_disc_wait", + "localizedName": "Music Disc", + "maxStackSize": 1, + "maxDamage": 0 + }, + { + "id": "minecraft:music_disc_ward", + "unlocalizedName": "item.minecraft.music_disc_ward", + "localizedName": "Music Disc", + "maxStackSize": 1, + "maxDamage": 0 + }, + { + "id": "minecraft:mutton", + "unlocalizedName": "item.minecraft.mutton", + "localizedName": "Raw Mutton", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:mycelium", + "unlocalizedName": "block.minecraft.mycelium", + "localizedName": "Mycelium", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:name_tag", + "unlocalizedName": "item.minecraft.name_tag", + "localizedName": "Name Tag", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:nautilus_shell", + "unlocalizedName": "item.minecraft.nautilus_shell", + "localizedName": "Nautilus Shell", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:nether_brick", + "unlocalizedName": "item.minecraft.nether_brick", + "localizedName": "Nether Brick", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:nether_brick_fence", + "unlocalizedName": "block.minecraft.nether_brick_fence", + "localizedName": "Nether Brick Fence", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:nether_brick_slab", + "unlocalizedName": "block.minecraft.nether_brick_slab", + "localizedName": "Nether Brick Slab", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:nether_brick_stairs", + "unlocalizedName": "block.minecraft.nether_brick_stairs", + "localizedName": "Nether Brick Stairs", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:nether_brick_wall", + "unlocalizedName": "block.minecraft.nether_brick_wall", + "localizedName": "Nether Brick Wall", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:nether_bricks", + "unlocalizedName": "block.minecraft.nether_bricks", + "localizedName": "Nether Bricks", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:nether_quartz_ore", + "unlocalizedName": "block.minecraft.nether_quartz_ore", + "localizedName": "Nether Quartz Ore", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:nether_star", + "unlocalizedName": "item.minecraft.nether_star", + "localizedName": "Nether Star", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:nether_wart", + "unlocalizedName": "item.minecraft.nether_wart", + "localizedName": "Nether Wart", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:nether_wart_block", + "unlocalizedName": "block.minecraft.nether_wart_block", + "localizedName": "Nether Wart Block", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:netherrack", + "unlocalizedName": "block.minecraft.netherrack", + "localizedName": "Netherrack", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:note_block", + "unlocalizedName": "block.minecraft.note_block", + "localizedName": "Note Block", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:oak_boat", + "unlocalizedName": "item.minecraft.oak_boat", + "localizedName": "Oak Boat", + "maxStackSize": 1, + "maxDamage": 0 + }, + { + "id": "minecraft:oak_button", + "unlocalizedName": "block.minecraft.oak_button", + "localizedName": "Oak Button", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:oak_door", + "unlocalizedName": "block.minecraft.oak_door", + "localizedName": "Oak Door", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:oak_fence", + "unlocalizedName": "block.minecraft.oak_fence", + "localizedName": "Oak Fence", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:oak_fence_gate", + "unlocalizedName": "block.minecraft.oak_fence_gate", + "localizedName": "Oak Fence Gate", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:oak_leaves", + "unlocalizedName": "block.minecraft.oak_leaves", + "localizedName": "Oak Leaves", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:oak_log", + "unlocalizedName": "block.minecraft.oak_log", + "localizedName": "Oak Log", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:oak_planks", + "unlocalizedName": "block.minecraft.oak_planks", + "localizedName": "Oak Planks", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:oak_pressure_plate", + "unlocalizedName": "block.minecraft.oak_pressure_plate", + "localizedName": "Oak Pressure Plate", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:oak_sapling", + "unlocalizedName": "block.minecraft.oak_sapling", + "localizedName": "Oak Sapling", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:oak_sign", + "unlocalizedName": "block.minecraft.oak_sign", + "localizedName": "Oak Sign", + "maxStackSize": 16, + "maxDamage": 0 + }, + { + "id": "minecraft:oak_slab", + "unlocalizedName": "block.minecraft.oak_slab", + "localizedName": "Oak Slab", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:oak_stairs", + "unlocalizedName": "block.minecraft.oak_stairs", + "localizedName": "Oak Stairs", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:oak_trapdoor", + "unlocalizedName": "block.minecraft.oak_trapdoor", + "localizedName": "Oak Trapdoor", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:oak_wood", + "unlocalizedName": "block.minecraft.oak_wood", + "localizedName": "Oak Wood", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:observer", + "unlocalizedName": "block.minecraft.observer", + "localizedName": "Observer", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:obsidian", + "unlocalizedName": "block.minecraft.obsidian", + "localizedName": "Obsidian", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:ocelot_spawn_egg", + "unlocalizedName": "item.minecraft.ocelot_spawn_egg", + "localizedName": "Ocelot Spawn Egg", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:orange_banner", + "unlocalizedName": "block.minecraft.orange_banner", + "localizedName": "Orange Banner", + "maxStackSize": 16, + "maxDamage": 0 + }, + { + "id": "minecraft:orange_bed", + "unlocalizedName": "block.minecraft.orange_bed", + "localizedName": "Orange Bed", + "maxStackSize": 1, + "maxDamage": 0 + }, + { + "id": "minecraft:orange_carpet", + "unlocalizedName": "block.minecraft.orange_carpet", + "localizedName": "Orange Carpet", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:orange_concrete", + "unlocalizedName": "block.minecraft.orange_concrete", + "localizedName": "Orange Concrete", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:orange_concrete_powder", + "unlocalizedName": "block.minecraft.orange_concrete_powder", + "localizedName": "Orange Concrete Powder", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:orange_dye", + "unlocalizedName": "item.minecraft.orange_dye", + "localizedName": "Orange Dye", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:orange_glazed_terracotta", + "unlocalizedName": "block.minecraft.orange_glazed_terracotta", + "localizedName": "Orange Glazed Terracotta", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:orange_shulker_box", + "unlocalizedName": "block.minecraft.orange_shulker_box", + "localizedName": "Orange Shulker Box", + "maxStackSize": 1, + "maxDamage": 0 + }, + { + "id": "minecraft:orange_stained_glass", + "unlocalizedName": "block.minecraft.orange_stained_glass", + "localizedName": "Orange Stained Glass", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:orange_stained_glass_pane", + "unlocalizedName": "block.minecraft.orange_stained_glass_pane", + "localizedName": "Orange Stained Glass Pane", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:orange_terracotta", + "unlocalizedName": "block.minecraft.orange_terracotta", + "localizedName": "Orange Terracotta", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:orange_tulip", + "unlocalizedName": "block.minecraft.orange_tulip", + "localizedName": "Orange Tulip", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:orange_wool", + "unlocalizedName": "block.minecraft.orange_wool", + "localizedName": "Orange Wool", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:oxeye_daisy", + "unlocalizedName": "block.minecraft.oxeye_daisy", + "localizedName": "Oxeye Daisy", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:packed_ice", + "unlocalizedName": "block.minecraft.packed_ice", + "localizedName": "Packed Ice", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:painting", + "unlocalizedName": "item.minecraft.painting", + "localizedName": "Painting", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:panda_spawn_egg", + "unlocalizedName": "item.minecraft.panda_spawn_egg", + "localizedName": "Panda Spawn Egg", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:paper", + "unlocalizedName": "item.minecraft.paper", + "localizedName": "Paper", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:parrot_spawn_egg", + "unlocalizedName": "item.minecraft.parrot_spawn_egg", + "localizedName": "Parrot Spawn Egg", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:peony", + "unlocalizedName": "block.minecraft.peony", + "localizedName": "Peony", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:petrified_oak_slab", + "unlocalizedName": "block.minecraft.petrified_oak_slab", + "localizedName": "Petrified Oak Slab", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:phantom_membrane", + "unlocalizedName": "item.minecraft.phantom_membrane", + "localizedName": "Phantom Membrane", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:phantom_spawn_egg", + "unlocalizedName": "item.minecraft.phantom_spawn_egg", + "localizedName": "Phantom Spawn Egg", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:pig_spawn_egg", + "unlocalizedName": "item.minecraft.pig_spawn_egg", + "localizedName": "Pig Spawn Egg", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:pillager_spawn_egg", + "unlocalizedName": "item.minecraft.pillager_spawn_egg", + "localizedName": "Pillager Spawn Egg", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:pink_banner", + "unlocalizedName": "block.minecraft.pink_banner", + "localizedName": "Pink Banner", + "maxStackSize": 16, + "maxDamage": 0 + }, + { + "id": "minecraft:pink_bed", + "unlocalizedName": "block.minecraft.pink_bed", + "localizedName": "Pink Bed", + "maxStackSize": 1, + "maxDamage": 0 + }, + { + "id": "minecraft:pink_carpet", + "unlocalizedName": "block.minecraft.pink_carpet", + "localizedName": "Pink Carpet", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:pink_concrete", + "unlocalizedName": "block.minecraft.pink_concrete", + "localizedName": "Pink Concrete", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:pink_concrete_powder", + "unlocalizedName": "block.minecraft.pink_concrete_powder", + "localizedName": "Pink Concrete Powder", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:pink_dye", + "unlocalizedName": "item.minecraft.pink_dye", + "localizedName": "Pink Dye", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:pink_glazed_terracotta", + "unlocalizedName": "block.minecraft.pink_glazed_terracotta", + "localizedName": "Pink Glazed Terracotta", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:pink_shulker_box", + "unlocalizedName": "block.minecraft.pink_shulker_box", + "localizedName": "Pink Shulker Box", + "maxStackSize": 1, + "maxDamage": 0 + }, + { + "id": "minecraft:pink_stained_glass", + "unlocalizedName": "block.minecraft.pink_stained_glass", + "localizedName": "Pink Stained Glass", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:pink_stained_glass_pane", + "unlocalizedName": "block.minecraft.pink_stained_glass_pane", + "localizedName": "Pink Stained Glass Pane", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:pink_terracotta", + "unlocalizedName": "block.minecraft.pink_terracotta", + "localizedName": "Pink Terracotta", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:pink_tulip", + "unlocalizedName": "block.minecraft.pink_tulip", + "localizedName": "Pink Tulip", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:pink_wool", + "unlocalizedName": "block.minecraft.pink_wool", + "localizedName": "Pink Wool", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:piston", + "unlocalizedName": "block.minecraft.piston", + "localizedName": "Piston", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:player_head", + "unlocalizedName": "block.minecraft.player_head", + "localizedName": "Player Head", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:podzol", + "unlocalizedName": "block.minecraft.podzol", + "localizedName": "Podzol", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:poisonous_potato", + "unlocalizedName": "item.minecraft.poisonous_potato", + "localizedName": "Poisonous Potato", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:polar_bear_spawn_egg", + "unlocalizedName": "item.minecraft.polar_bear_spawn_egg", + "localizedName": "Polar Bear Spawn Egg", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:polished_andesite", + "unlocalizedName": "block.minecraft.polished_andesite", + "localizedName": "Polished Andesite", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:polished_andesite_slab", + "unlocalizedName": "block.minecraft.polished_andesite_slab", + "localizedName": "Polished Andesite Slab", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:polished_andesite_stairs", + "unlocalizedName": "block.minecraft.polished_andesite_stairs", + "localizedName": "Polished Andesite Stairs", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:polished_diorite", + "unlocalizedName": "block.minecraft.polished_diorite", + "localizedName": "Polished Diorite", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:polished_diorite_slab", + "unlocalizedName": "block.minecraft.polished_diorite_slab", + "localizedName": "Polished Diorite Slab", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:polished_diorite_stairs", + "unlocalizedName": "block.minecraft.polished_diorite_stairs", + "localizedName": "Polished Diorite Stairs", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:polished_granite", + "unlocalizedName": "block.minecraft.polished_granite", + "localizedName": "Polished Granite", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:polished_granite_slab", + "unlocalizedName": "block.minecraft.polished_granite_slab", + "localizedName": "Polished Granite Slab", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:polished_granite_stairs", + "unlocalizedName": "block.minecraft.polished_granite_stairs", + "localizedName": "Polished Granite Stairs", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:popped_chorus_fruit", + "unlocalizedName": "item.minecraft.popped_chorus_fruit", + "localizedName": "Popped Chorus Fruit", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:poppy", + "unlocalizedName": "block.minecraft.poppy", + "localizedName": "Poppy", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:porkchop", + "unlocalizedName": "item.minecraft.porkchop", + "localizedName": "Raw Porkchop", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:potato", + "unlocalizedName": "item.minecraft.potato", + "localizedName": "Potato", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:potion", + "unlocalizedName": "item.minecraft.potion.effect.water", + "localizedName": "Water Bottle", + "maxStackSize": 1, + "maxDamage": 0 + }, + { + "id": "minecraft:powered_rail", + "unlocalizedName": "block.minecraft.powered_rail", + "localizedName": "Powered Rail", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:prismarine", + "unlocalizedName": "block.minecraft.prismarine", + "localizedName": "Prismarine", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:prismarine_brick_slab", + "unlocalizedName": "block.minecraft.prismarine_brick_slab", + "localizedName": "Prismarine Brick Slab", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:prismarine_brick_stairs", + "unlocalizedName": "block.minecraft.prismarine_brick_stairs", + "localizedName": "Prismarine Brick Stairs", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:prismarine_bricks", + "unlocalizedName": "block.minecraft.prismarine_bricks", + "localizedName": "Prismarine Bricks", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:prismarine_crystals", + "unlocalizedName": "item.minecraft.prismarine_crystals", + "localizedName": "Prismarine Crystals", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:prismarine_shard", + "unlocalizedName": "item.minecraft.prismarine_shard", + "localizedName": "Prismarine Shard", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:prismarine_slab", + "unlocalizedName": "block.minecraft.prismarine_slab", + "localizedName": "Prismarine Slab", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:prismarine_stairs", + "unlocalizedName": "block.minecraft.prismarine_stairs", + "localizedName": "Prismarine Stairs", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:prismarine_wall", + "unlocalizedName": "block.minecraft.prismarine_wall", + "localizedName": "Prismarine Wall", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:pufferfish", + "unlocalizedName": "item.minecraft.pufferfish", + "localizedName": "Pufferfish", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:pufferfish_bucket", + "unlocalizedName": "item.minecraft.pufferfish_bucket", + "localizedName": "Bucket of Pufferfish", + "maxStackSize": 1, + "maxDamage": 0 + }, + { + "id": "minecraft:pufferfish_spawn_egg", + "unlocalizedName": "item.minecraft.pufferfish_spawn_egg", + "localizedName": "Pufferfish Spawn Egg", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:pumpkin", + "unlocalizedName": "block.minecraft.pumpkin", + "localizedName": "Pumpkin", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:pumpkin_pie", + "unlocalizedName": "item.minecraft.pumpkin_pie", + "localizedName": "Pumpkin Pie", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:pumpkin_seeds", + "unlocalizedName": "item.minecraft.pumpkin_seeds", + "localizedName": "Pumpkin Seeds", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:purple_banner", + "unlocalizedName": "block.minecraft.purple_banner", + "localizedName": "Purple Banner", + "maxStackSize": 16, + "maxDamage": 0 + }, + { + "id": "minecraft:purple_bed", + "unlocalizedName": "block.minecraft.purple_bed", + "localizedName": "Purple Bed", + "maxStackSize": 1, + "maxDamage": 0 + }, + { + "id": "minecraft:purple_carpet", + "unlocalizedName": "block.minecraft.purple_carpet", + "localizedName": "Purple Carpet", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:purple_concrete", + "unlocalizedName": "block.minecraft.purple_concrete", + "localizedName": "Purple Concrete", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:purple_concrete_powder", + "unlocalizedName": "block.minecraft.purple_concrete_powder", + "localizedName": "Purple Concrete Powder", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:purple_dye", + "unlocalizedName": "item.minecraft.purple_dye", + "localizedName": "Purple Dye", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:purple_glazed_terracotta", + "unlocalizedName": "block.minecraft.purple_glazed_terracotta", + "localizedName": "Purple Glazed Terracotta", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:purple_shulker_box", + "unlocalizedName": "block.minecraft.purple_shulker_box", + "localizedName": "Purple Shulker Box", + "maxStackSize": 1, + "maxDamage": 0 + }, + { + "id": "minecraft:purple_stained_glass", + "unlocalizedName": "block.minecraft.purple_stained_glass", + "localizedName": "Purple Stained Glass", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:purple_stained_glass_pane", + "unlocalizedName": "block.minecraft.purple_stained_glass_pane", + "localizedName": "Purple Stained Glass Pane", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:purple_terracotta", + "unlocalizedName": "block.minecraft.purple_terracotta", + "localizedName": "Purple Terracotta", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:purple_wool", + "unlocalizedName": "block.minecraft.purple_wool", + "localizedName": "Purple Wool", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:purpur_block", + "unlocalizedName": "block.minecraft.purpur_block", + "localizedName": "Purpur Block", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:purpur_pillar", + "unlocalizedName": "block.minecraft.purpur_pillar", + "localizedName": "Purpur Pillar", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:purpur_slab", + "unlocalizedName": "block.minecraft.purpur_slab", + "localizedName": "Purpur Slab", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:purpur_stairs", + "unlocalizedName": "block.minecraft.purpur_stairs", + "localizedName": "Purpur Stairs", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:quartz", + "unlocalizedName": "item.minecraft.quartz", + "localizedName": "Nether Quartz", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:quartz_block", + "unlocalizedName": "block.minecraft.quartz_block", + "localizedName": "Block of Quartz", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:quartz_pillar", + "unlocalizedName": "block.minecraft.quartz_pillar", + "localizedName": "Quartz Pillar", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:quartz_slab", + "unlocalizedName": "block.minecraft.quartz_slab", + "localizedName": "Quartz Slab", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:quartz_stairs", + "unlocalizedName": "block.minecraft.quartz_stairs", + "localizedName": "Quartz Stairs", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:rabbit", + "unlocalizedName": "item.minecraft.rabbit", + "localizedName": "Raw Rabbit", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:rabbit_foot", + "unlocalizedName": "item.minecraft.rabbit_foot", + "localizedName": "Rabbit\u0027s Foot", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:rabbit_hide", + "unlocalizedName": "item.minecraft.rabbit_hide", + "localizedName": "Rabbit Hide", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:rabbit_spawn_egg", + "unlocalizedName": "item.minecraft.rabbit_spawn_egg", + "localizedName": "Rabbit Spawn Egg", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:rabbit_stew", + "unlocalizedName": "item.minecraft.rabbit_stew", + "localizedName": "Rabbit Stew", + "maxStackSize": 1, + "maxDamage": 0 + }, + { + "id": "minecraft:rail", + "unlocalizedName": "block.minecraft.rail", + "localizedName": "Rail", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:ravager_spawn_egg", + "unlocalizedName": "item.minecraft.ravager_spawn_egg", + "localizedName": "Ravager Spawn Egg", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:red_banner", + "unlocalizedName": "block.minecraft.red_banner", + "localizedName": "Red Banner", + "maxStackSize": 16, + "maxDamage": 0 + }, + { + "id": "minecraft:red_bed", + "unlocalizedName": "block.minecraft.red_bed", + "localizedName": "Red Bed", + "maxStackSize": 1, + "maxDamage": 0 + }, + { + "id": "minecraft:red_carpet", + "unlocalizedName": "block.minecraft.red_carpet", + "localizedName": "Red Carpet", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:red_concrete", + "unlocalizedName": "block.minecraft.red_concrete", + "localizedName": "Red Concrete", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:red_concrete_powder", + "unlocalizedName": "block.minecraft.red_concrete_powder", + "localizedName": "Red Concrete Powder", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:red_dye", + "unlocalizedName": "item.minecraft.red_dye", + "localizedName": "Red Dye", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:red_glazed_terracotta", + "unlocalizedName": "block.minecraft.red_glazed_terracotta", + "localizedName": "Red Glazed Terracotta", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:red_mushroom", + "unlocalizedName": "block.minecraft.red_mushroom", + "localizedName": "Red Mushroom", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:red_mushroom_block", + "unlocalizedName": "block.minecraft.red_mushroom_block", + "localizedName": "Red Mushroom Block", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:red_nether_brick_slab", + "unlocalizedName": "block.minecraft.red_nether_brick_slab", + "localizedName": "Red Nether Brick Slab", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:red_nether_brick_stairs", + "unlocalizedName": "block.minecraft.red_nether_brick_stairs", + "localizedName": "Red Nether Brick Stairs", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:red_nether_brick_wall", + "unlocalizedName": "block.minecraft.red_nether_brick_wall", + "localizedName": "Red Nether Brick Wall", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:red_nether_bricks", + "unlocalizedName": "block.minecraft.red_nether_bricks", + "localizedName": "Red Nether Bricks", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:red_sand", + "unlocalizedName": "block.minecraft.red_sand", + "localizedName": "Red Sand", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:red_sandstone", + "unlocalizedName": "block.minecraft.red_sandstone", + "localizedName": "Red Sandstone", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:red_sandstone_slab", + "unlocalizedName": "block.minecraft.red_sandstone_slab", + "localizedName": "Red Sandstone Slab", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:red_sandstone_stairs", + "unlocalizedName": "block.minecraft.red_sandstone_stairs", + "localizedName": "Red Sandstone Stairs", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:red_sandstone_wall", + "unlocalizedName": "block.minecraft.red_sandstone_wall", + "localizedName": "Red Sandstone Wall", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:red_shulker_box", + "unlocalizedName": "block.minecraft.red_shulker_box", + "localizedName": "Red Shulker Box", + "maxStackSize": 1, + "maxDamage": 0 + }, + { + "id": "minecraft:red_stained_glass", + "unlocalizedName": "block.minecraft.red_stained_glass", + "localizedName": "Red Stained Glass", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:red_stained_glass_pane", + "unlocalizedName": "block.minecraft.red_stained_glass_pane", + "localizedName": "Red Stained Glass Pane", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:red_terracotta", + "unlocalizedName": "block.minecraft.red_terracotta", + "localizedName": "Red Terracotta", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:red_tulip", + "unlocalizedName": "block.minecraft.red_tulip", + "localizedName": "Red Tulip", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:red_wool", + "unlocalizedName": "block.minecraft.red_wool", + "localizedName": "Red Wool", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:redstone", + "unlocalizedName": "item.minecraft.redstone", + "localizedName": "Redstone Dust", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:redstone_block", + "unlocalizedName": "block.minecraft.redstone_block", + "localizedName": "Block of Redstone", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:redstone_lamp", + "unlocalizedName": "block.minecraft.redstone_lamp", + "localizedName": "Redstone Lamp", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:redstone_ore", + "unlocalizedName": "block.minecraft.redstone_ore", + "localizedName": "Redstone Ore", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:redstone_torch", + "unlocalizedName": "block.minecraft.redstone_torch", + "localizedName": "Redstone Torch", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:repeater", + "unlocalizedName": "block.minecraft.repeater", + "localizedName": "Redstone Repeater", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:repeating_command_block", + "unlocalizedName": "block.minecraft.repeating_command_block", + "localizedName": "Repeating Command Block", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:rose_bush", + "unlocalizedName": "block.minecraft.rose_bush", + "localizedName": "Rose Bush", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:rotten_flesh", + "unlocalizedName": "item.minecraft.rotten_flesh", + "localizedName": "Rotten Flesh", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:saddle", + "unlocalizedName": "item.minecraft.saddle", + "localizedName": "Saddle", + "maxStackSize": 1, + "maxDamage": 0 + }, + { + "id": "minecraft:salmon", + "unlocalizedName": "item.minecraft.salmon", + "localizedName": "Raw Salmon", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:salmon_bucket", + "unlocalizedName": "item.minecraft.salmon_bucket", + "localizedName": "Bucket of Salmon", + "maxStackSize": 1, + "maxDamage": 0 + }, + { + "id": "minecraft:salmon_spawn_egg", + "unlocalizedName": "item.minecraft.salmon_spawn_egg", + "localizedName": "Salmon Spawn Egg", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:sand", + "unlocalizedName": "block.minecraft.sand", + "localizedName": "Sand", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:sandstone", + "unlocalizedName": "block.minecraft.sandstone", + "localizedName": "Sandstone", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:sandstone_slab", + "unlocalizedName": "block.minecraft.sandstone_slab", + "localizedName": "Sandstone Slab", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:sandstone_stairs", + "unlocalizedName": "block.minecraft.sandstone_stairs", + "localizedName": "Sandstone Stairs", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:sandstone_wall", + "unlocalizedName": "block.minecraft.sandstone_wall", + "localizedName": "Sandstone Wall", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:scaffolding", + "unlocalizedName": "block.minecraft.scaffolding", + "localizedName": "Scaffolding", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:scute", + "unlocalizedName": "item.minecraft.scute", + "localizedName": "Scute", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:sea_lantern", + "unlocalizedName": "block.minecraft.sea_lantern", + "localizedName": "Sea Lantern", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:sea_pickle", + "unlocalizedName": "block.minecraft.sea_pickle", + "localizedName": "Sea Pickle", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:seagrass", + "unlocalizedName": "block.minecraft.seagrass", + "localizedName": "Seagrass", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:shears", + "unlocalizedName": "item.minecraft.shears", + "localizedName": "Shears", + "maxStackSize": 1, + "maxDamage": 238 + }, + { + "id": "minecraft:sheep_spawn_egg", + "unlocalizedName": "item.minecraft.sheep_spawn_egg", + "localizedName": "Sheep Spawn Egg", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:shield", + "unlocalizedName": "item.minecraft.shield", + "localizedName": "Shield", + "maxStackSize": 1, + "maxDamage": 336 + }, + { + "id": "minecraft:shulker_box", + "unlocalizedName": "block.minecraft.shulker_box", + "localizedName": "Shulker Box", + "maxStackSize": 1, + "maxDamage": 0 + }, + { + "id": "minecraft:shulker_shell", + "unlocalizedName": "item.minecraft.shulker_shell", + "localizedName": "Shulker Shell", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:shulker_spawn_egg", + "unlocalizedName": "item.minecraft.shulker_spawn_egg", + "localizedName": "Shulker Spawn Egg", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:silverfish_spawn_egg", + "unlocalizedName": "item.minecraft.silverfish_spawn_egg", + "localizedName": "Silverfish Spawn Egg", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:skeleton_horse_spawn_egg", + "unlocalizedName": "item.minecraft.skeleton_horse_spawn_egg", + "localizedName": "Skeleton Horse Spawn Egg", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:skeleton_skull", + "unlocalizedName": "block.minecraft.skeleton_skull", + "localizedName": "Skeleton Skull", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:skeleton_spawn_egg", + "unlocalizedName": "item.minecraft.skeleton_spawn_egg", + "localizedName": "Skeleton Spawn Egg", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:skull_banner_pattern", + "unlocalizedName": "item.minecraft.skull_banner_pattern", + "localizedName": "Banner Pattern", + "maxStackSize": 1, + "maxDamage": 0 + }, + { + "id": "minecraft:slime_ball", + "unlocalizedName": "item.minecraft.slime_ball", + "localizedName": "Slimeball", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:slime_block", + "unlocalizedName": "block.minecraft.slime_block", + "localizedName": "Slime Block", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:slime_spawn_egg", + "unlocalizedName": "item.minecraft.slime_spawn_egg", + "localizedName": "Slime Spawn Egg", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:smithing_table", + "unlocalizedName": "block.minecraft.smithing_table", + "localizedName": "Smithing Table", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:smoker", + "unlocalizedName": "block.minecraft.smoker", + "localizedName": "Smoker", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:smooth_quartz", + "unlocalizedName": "block.minecraft.smooth_quartz", + "localizedName": "Smooth Quartz", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:smooth_quartz_slab", + "unlocalizedName": "block.minecraft.smooth_quartz_slab", + "localizedName": "Smooth Quartz Slab", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:smooth_quartz_stairs", + "unlocalizedName": "block.minecraft.smooth_quartz_stairs", + "localizedName": "Smooth Quartz Stairs", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:smooth_red_sandstone", + "unlocalizedName": "block.minecraft.smooth_red_sandstone", + "localizedName": "Smooth Red Sandstone", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:smooth_red_sandstone_slab", + "unlocalizedName": "block.minecraft.smooth_red_sandstone_slab", + "localizedName": "Smooth Red Sandstone Slab", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:smooth_red_sandstone_stairs", + "unlocalizedName": "block.minecraft.smooth_red_sandstone_stairs", + "localizedName": "Smooth Red Sandstone Stairs", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:smooth_sandstone", + "unlocalizedName": "block.minecraft.smooth_sandstone", + "localizedName": "Smooth Sandstone", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:smooth_sandstone_slab", + "unlocalizedName": "block.minecraft.smooth_sandstone_slab", + "localizedName": "Smooth Sandstone Slab", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:smooth_sandstone_stairs", + "unlocalizedName": "block.minecraft.smooth_sandstone_stairs", + "localizedName": "Smooth Sandstone Stairs", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:smooth_stone", + "unlocalizedName": "block.minecraft.smooth_stone", + "localizedName": "Smooth Stone", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:smooth_stone_slab", + "unlocalizedName": "block.minecraft.smooth_stone_slab", + "localizedName": "Smooth Stone Slab", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:snow", + "unlocalizedName": "block.minecraft.snow", + "localizedName": "Snow", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:snow_block", + "unlocalizedName": "block.minecraft.snow_block", + "localizedName": "Snow Block", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:snowball", + "unlocalizedName": "item.minecraft.snowball", + "localizedName": "Snowball", + "maxStackSize": 16, + "maxDamage": 0 + }, + { + "id": "minecraft:soul_sand", + "unlocalizedName": "block.minecraft.soul_sand", + "localizedName": "Soul Sand", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:spawner", + "unlocalizedName": "block.minecraft.spawner", + "localizedName": "Spawner", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:spectral_arrow", + "unlocalizedName": "item.minecraft.spectral_arrow", + "localizedName": "Spectral Arrow", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:spider_eye", + "unlocalizedName": "item.minecraft.spider_eye", + "localizedName": "Spider Eye", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:spider_spawn_egg", + "unlocalizedName": "item.minecraft.spider_spawn_egg", + "localizedName": "Spider Spawn Egg", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:splash_potion", + "unlocalizedName": "item.minecraft.splash_potion.effect.water", + "localizedName": "Splash Water Bottle", + "maxStackSize": 1, + "maxDamage": 0 + }, + { + "id": "minecraft:sponge", + "unlocalizedName": "block.minecraft.sponge", + "localizedName": "Sponge", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:spruce_boat", + "unlocalizedName": "item.minecraft.spruce_boat", + "localizedName": "Spruce Boat", + "maxStackSize": 1, + "maxDamage": 0 + }, + { + "id": "minecraft:spruce_button", + "unlocalizedName": "block.minecraft.spruce_button", + "localizedName": "Spruce Button", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:spruce_door", + "unlocalizedName": "block.minecraft.spruce_door", + "localizedName": "Spruce Door", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:spruce_fence", + "unlocalizedName": "block.minecraft.spruce_fence", + "localizedName": "Spruce Fence", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:spruce_fence_gate", + "unlocalizedName": "block.minecraft.spruce_fence_gate", + "localizedName": "Spruce Fence Gate", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:spruce_leaves", + "unlocalizedName": "block.minecraft.spruce_leaves", + "localizedName": "Spruce Leaves", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:spruce_log", + "unlocalizedName": "block.minecraft.spruce_log", + "localizedName": "Spruce Log", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:spruce_planks", + "unlocalizedName": "block.minecraft.spruce_planks", + "localizedName": "Spruce Planks", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:spruce_pressure_plate", + "unlocalizedName": "block.minecraft.spruce_pressure_plate", + "localizedName": "Spruce Pressure Plate", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:spruce_sapling", + "unlocalizedName": "block.minecraft.spruce_sapling", + "localizedName": "Spruce Sapling", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:spruce_sign", + "unlocalizedName": "block.minecraft.spruce_sign", + "localizedName": "Spruce Sign", + "maxStackSize": 16, + "maxDamage": 0 + }, + { + "id": "minecraft:spruce_slab", + "unlocalizedName": "block.minecraft.spruce_slab", + "localizedName": "Spruce Slab", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:spruce_stairs", + "unlocalizedName": "block.minecraft.spruce_stairs", + "localizedName": "Spruce Stairs", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:spruce_trapdoor", + "unlocalizedName": "block.minecraft.spruce_trapdoor", + "localizedName": "Spruce Trapdoor", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:spruce_wood", + "unlocalizedName": "block.minecraft.spruce_wood", + "localizedName": "Spruce Wood", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:squid_spawn_egg", + "unlocalizedName": "item.minecraft.squid_spawn_egg", + "localizedName": "Squid Spawn Egg", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:stick", + "unlocalizedName": "item.minecraft.stick", + "localizedName": "Stick", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:sticky_piston", + "unlocalizedName": "block.minecraft.sticky_piston", + "localizedName": "Sticky Piston", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:stone", + "unlocalizedName": "block.minecraft.stone", + "localizedName": "Stone", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:stone_axe", + "unlocalizedName": "item.minecraft.stone_axe", + "localizedName": "Stone Axe", + "maxStackSize": 1, + "maxDamage": 131 + }, + { + "id": "minecraft:stone_brick_slab", + "unlocalizedName": "block.minecraft.stone_brick_slab", + "localizedName": "Stone Brick Slab", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:stone_brick_stairs", + "unlocalizedName": "block.minecraft.stone_brick_stairs", + "localizedName": "Stone Brick Stairs", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:stone_brick_wall", + "unlocalizedName": "block.minecraft.stone_brick_wall", + "localizedName": "Stone Brick Wall", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:stone_bricks", + "unlocalizedName": "block.minecraft.stone_bricks", + "localizedName": "Stone Bricks", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:stone_button", + "unlocalizedName": "block.minecraft.stone_button", + "localizedName": "Stone Button", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:stone_hoe", + "unlocalizedName": "item.minecraft.stone_hoe", + "localizedName": "Stone Hoe", + "maxStackSize": 1, + "maxDamage": 131 + }, + { + "id": "minecraft:stone_pickaxe", + "unlocalizedName": "item.minecraft.stone_pickaxe", + "localizedName": "Stone Pickaxe", + "maxStackSize": 1, + "maxDamage": 131 + }, + { + "id": "minecraft:stone_pressure_plate", + "unlocalizedName": "block.minecraft.stone_pressure_plate", + "localizedName": "Stone Pressure Plate", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:stone_shovel", + "unlocalizedName": "item.minecraft.stone_shovel", + "localizedName": "Stone Shovel", + "maxStackSize": 1, + "maxDamage": 131 + }, + { + "id": "minecraft:stone_slab", + "unlocalizedName": "block.minecraft.stone_slab", + "localizedName": "Stone Slab", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:stone_stairs", + "unlocalizedName": "block.minecraft.stone_stairs", + "localizedName": "Stone Stairs", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:stone_sword", + "unlocalizedName": "item.minecraft.stone_sword", + "localizedName": "Stone Sword", + "maxStackSize": 1, + "maxDamage": 131 + }, + { + "id": "minecraft:stonecutter", + "unlocalizedName": "block.minecraft.stonecutter", + "localizedName": "Stonecutter", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:stray_spawn_egg", + "unlocalizedName": "item.minecraft.stray_spawn_egg", + "localizedName": "Stray Spawn Egg", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:string", + "unlocalizedName": "item.minecraft.string", + "localizedName": "String", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:stripped_acacia_log", + "unlocalizedName": "block.minecraft.stripped_acacia_log", + "localizedName": "Stripped Acacia Log", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:stripped_acacia_wood", + "unlocalizedName": "block.minecraft.stripped_acacia_wood", + "localizedName": "Stripped Acacia Wood", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:stripped_birch_log", + "unlocalizedName": "block.minecraft.stripped_birch_log", + "localizedName": "Stripped Birch Log", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:stripped_birch_wood", + "unlocalizedName": "block.minecraft.stripped_birch_wood", + "localizedName": "Stripped Birch Wood", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:stripped_dark_oak_log", + "unlocalizedName": "block.minecraft.stripped_dark_oak_log", + "localizedName": "Stripped Dark Oak Log", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:stripped_dark_oak_wood", + "unlocalizedName": "block.minecraft.stripped_dark_oak_wood", + "localizedName": "Stripped Dark Oak Wood", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:stripped_jungle_log", + "unlocalizedName": "block.minecraft.stripped_jungle_log", + "localizedName": "Stripped Jungle Log", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:stripped_jungle_wood", + "unlocalizedName": "block.minecraft.stripped_jungle_wood", + "localizedName": "Stripped Jungle Wood", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:stripped_oak_log", + "unlocalizedName": "block.minecraft.stripped_oak_log", + "localizedName": "Stripped Oak Log", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:stripped_oak_wood", + "unlocalizedName": "block.minecraft.stripped_oak_wood", + "localizedName": "Stripped Oak Wood", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:stripped_spruce_log", + "unlocalizedName": "block.minecraft.stripped_spruce_log", + "localizedName": "Stripped Spruce Log", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:stripped_spruce_wood", + "unlocalizedName": "block.minecraft.stripped_spruce_wood", + "localizedName": "Stripped Spruce Wood", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:structure_block", + "unlocalizedName": "block.minecraft.structure_block", + "localizedName": "Structure Block", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:structure_void", + "unlocalizedName": "block.minecraft.structure_void", + "localizedName": "Structure Void", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:sugar", + "unlocalizedName": "item.minecraft.sugar", + "localizedName": "Sugar", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:sugar_cane", + "unlocalizedName": "block.minecraft.sugar_cane", + "localizedName": "Sugar Cane", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:sunflower", + "unlocalizedName": "block.minecraft.sunflower", + "localizedName": "Sunflower", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:suspicious_stew", + "unlocalizedName": "item.minecraft.suspicious_stew", + "localizedName": "Suspicious Stew", + "maxStackSize": 1, + "maxDamage": 0 + }, + { + "id": "minecraft:sweet_berries", + "unlocalizedName": "item.minecraft.sweet_berries", + "localizedName": "Sweet Berries", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:tall_grass", + "unlocalizedName": "block.minecraft.tall_grass", + "localizedName": "Tall Grass", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:terracotta", + "unlocalizedName": "block.minecraft.terracotta", + "localizedName": "Terracotta", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:tipped_arrow", + "unlocalizedName": "item.minecraft.tipped_arrow.effect.poison", + "localizedName": "Arrow of Poison", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:tnt", + "unlocalizedName": "block.minecraft.tnt", + "localizedName": "TNT", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:tnt_minecart", + "unlocalizedName": "item.minecraft.tnt_minecart", + "localizedName": "Minecart with TNT", + "maxStackSize": 1, + "maxDamage": 0 + }, + { + "id": "minecraft:torch", + "unlocalizedName": "block.minecraft.torch", + "localizedName": "Torch", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:totem_of_undying", + "unlocalizedName": "item.minecraft.totem_of_undying", + "localizedName": "Totem of Undying", + "maxStackSize": 1, + "maxDamage": 0 + }, + { + "id": "minecraft:trader_llama_spawn_egg", + "unlocalizedName": "item.minecraft.trader_llama_spawn_egg", + "localizedName": "Trader Llama Spawn Egg", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:trapped_chest", + "unlocalizedName": "block.minecraft.trapped_chest", + "localizedName": "Trapped Chest", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:trident", + "unlocalizedName": "item.minecraft.trident", + "localizedName": "Trident", + "maxStackSize": 1, + "maxDamage": 250 + }, + { + "id": "minecraft:tripwire_hook", + "unlocalizedName": "block.minecraft.tripwire_hook", + "localizedName": "Tripwire Hook", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:tropical_fish", + "unlocalizedName": "item.minecraft.tropical_fish", + "localizedName": "Tropical Fish", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:tropical_fish_bucket", + "unlocalizedName": "item.minecraft.tropical_fish_bucket", + "localizedName": "Bucket of Tropical Fish", + "maxStackSize": 1, + "maxDamage": 0 + }, + { + "id": "minecraft:tropical_fish_spawn_egg", + "unlocalizedName": "item.minecraft.tropical_fish_spawn_egg", + "localizedName": "Tropical Fish Spawn Egg", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:tube_coral", + "unlocalizedName": "block.minecraft.tube_coral", + "localizedName": "Tube Coral", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:tube_coral_block", + "unlocalizedName": "block.minecraft.tube_coral_block", + "localizedName": "Tube Coral Block", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:tube_coral_fan", + "unlocalizedName": "block.minecraft.tube_coral_fan", + "localizedName": "Tube Coral Fan", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:turtle_egg", + "unlocalizedName": "block.minecraft.turtle_egg", + "localizedName": "Turtle Egg", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:turtle_helmet", + "unlocalizedName": "item.minecraft.turtle_helmet", + "localizedName": "Turtle Shell", + "maxStackSize": 1, + "maxDamage": 275 + }, + { + "id": "minecraft:turtle_spawn_egg", + "unlocalizedName": "item.minecraft.turtle_spawn_egg", + "localizedName": "Turtle Spawn Egg", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:vex_spawn_egg", + "unlocalizedName": "item.minecraft.vex_spawn_egg", + "localizedName": "Vex Spawn Egg", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:villager_spawn_egg", + "unlocalizedName": "item.minecraft.villager_spawn_egg", + "localizedName": "Villager Spawn Egg", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:vindicator_spawn_egg", + "unlocalizedName": "item.minecraft.vindicator_spawn_egg", + "localizedName": "Vindicator Spawn Egg", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:vine", + "unlocalizedName": "block.minecraft.vine", + "localizedName": "Vines", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:wandering_trader_spawn_egg", + "unlocalizedName": "item.minecraft.wandering_trader_spawn_egg", + "localizedName": "Wandering Trader Spawn Egg", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:water_bucket", + "unlocalizedName": "item.minecraft.water_bucket", + "localizedName": "Water Bucket", + "maxStackSize": 1, + "maxDamage": 0 + }, + { + "id": "minecraft:wet_sponge", + "unlocalizedName": "block.minecraft.wet_sponge", + "localizedName": "Wet Sponge", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:wheat", + "unlocalizedName": "item.minecraft.wheat", + "localizedName": "Wheat", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:wheat_seeds", + "unlocalizedName": "item.minecraft.wheat_seeds", + "localizedName": "Wheat Seeds", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:white_banner", + "unlocalizedName": "block.minecraft.white_banner", + "localizedName": "White Banner", + "maxStackSize": 16, + "maxDamage": 0 + }, + { + "id": "minecraft:white_bed", + "unlocalizedName": "block.minecraft.white_bed", + "localizedName": "White Bed", + "maxStackSize": 1, + "maxDamage": 0 + }, + { + "id": "minecraft:white_carpet", + "unlocalizedName": "block.minecraft.white_carpet", + "localizedName": "White Carpet", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:white_concrete", + "unlocalizedName": "block.minecraft.white_concrete", + "localizedName": "White Concrete", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:white_concrete_powder", + "unlocalizedName": "block.minecraft.white_concrete_powder", + "localizedName": "White Concrete Powder", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:white_dye", + "unlocalizedName": "item.minecraft.white_dye", + "localizedName": "White Dye", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:white_glazed_terracotta", + "unlocalizedName": "block.minecraft.white_glazed_terracotta", + "localizedName": "White Glazed Terracotta", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:white_shulker_box", + "unlocalizedName": "block.minecraft.white_shulker_box", + "localizedName": "White Shulker Box", + "maxStackSize": 1, + "maxDamage": 0 + }, + { + "id": "minecraft:white_stained_glass", + "unlocalizedName": "block.minecraft.white_stained_glass", + "localizedName": "White Stained Glass", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:white_stained_glass_pane", + "unlocalizedName": "block.minecraft.white_stained_glass_pane", + "localizedName": "White Stained Glass Pane", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:white_terracotta", + "unlocalizedName": "block.minecraft.white_terracotta", + "localizedName": "White Terracotta", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:white_tulip", + "unlocalizedName": "block.minecraft.white_tulip", + "localizedName": "White Tulip", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:white_wool", + "unlocalizedName": "block.minecraft.white_wool", + "localizedName": "White Wool", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:witch_spawn_egg", + "unlocalizedName": "item.minecraft.witch_spawn_egg", + "localizedName": "Witch Spawn Egg", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:wither_rose", + "unlocalizedName": "block.minecraft.wither_rose", + "localizedName": "Wither Rose", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:wither_skeleton_skull", + "unlocalizedName": "block.minecraft.wither_skeleton_skull", + "localizedName": "Wither Skeleton Skull", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:wither_skeleton_spawn_egg", + "unlocalizedName": "item.minecraft.wither_skeleton_spawn_egg", + "localizedName": "Wither Skeleton Spawn Egg", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:wolf_spawn_egg", + "unlocalizedName": "item.minecraft.wolf_spawn_egg", + "localizedName": "Wolf Spawn Egg", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:wooden_axe", + "unlocalizedName": "item.minecraft.wooden_axe", + "localizedName": "Wooden Axe", + "maxStackSize": 1, + "maxDamage": 59 + }, + { + "id": "minecraft:wooden_hoe", + "unlocalizedName": "item.minecraft.wooden_hoe", + "localizedName": "Wooden Hoe", + "maxStackSize": 1, + "maxDamage": 59 + }, + { + "id": "minecraft:wooden_pickaxe", + "unlocalizedName": "item.minecraft.wooden_pickaxe", + "localizedName": "Wooden Pickaxe", + "maxStackSize": 1, + "maxDamage": 59 + }, + { + "id": "minecraft:wooden_shovel", + "unlocalizedName": "item.minecraft.wooden_shovel", + "localizedName": "Wooden Shovel", + "maxStackSize": 1, + "maxDamage": 59 + }, + { + "id": "minecraft:wooden_sword", + "unlocalizedName": "item.minecraft.wooden_sword", + "localizedName": "Wooden Sword", + "maxStackSize": 1, + "maxDamage": 59 + }, + { + "id": "minecraft:writable_book", + "unlocalizedName": "item.minecraft.writable_book", + "localizedName": "Book and Quill", + "maxStackSize": 1, + "maxDamage": 0 + }, + { + "id": "minecraft:written_book", + "unlocalizedName": "item.minecraft.written_book", + "localizedName": "Written Book", + "maxStackSize": 16, + "maxDamage": 0 + }, + { + "id": "minecraft:yellow_banner", + "unlocalizedName": "block.minecraft.yellow_banner", + "localizedName": "Yellow Banner", + "maxStackSize": 16, + "maxDamage": 0 + }, + { + "id": "minecraft:yellow_bed", + "unlocalizedName": "block.minecraft.yellow_bed", + "localizedName": "Yellow Bed", + "maxStackSize": 1, + "maxDamage": 0 + }, + { + "id": "minecraft:yellow_carpet", + "unlocalizedName": "block.minecraft.yellow_carpet", + "localizedName": "Yellow Carpet", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:yellow_concrete", + "unlocalizedName": "block.minecraft.yellow_concrete", + "localizedName": "Yellow Concrete", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:yellow_concrete_powder", + "unlocalizedName": "block.minecraft.yellow_concrete_powder", + "localizedName": "Yellow Concrete Powder", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:yellow_dye", + "unlocalizedName": "item.minecraft.yellow_dye", + "localizedName": "Yellow Dye", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:yellow_glazed_terracotta", + "unlocalizedName": "block.minecraft.yellow_glazed_terracotta", + "localizedName": "Yellow Glazed Terracotta", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:yellow_shulker_box", + "unlocalizedName": "block.minecraft.yellow_shulker_box", + "localizedName": "Yellow Shulker Box", + "maxStackSize": 1, + "maxDamage": 0 + }, + { + "id": "minecraft:yellow_stained_glass", + "unlocalizedName": "block.minecraft.yellow_stained_glass", + "localizedName": "Yellow Stained Glass", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:yellow_stained_glass_pane", + "unlocalizedName": "block.minecraft.yellow_stained_glass_pane", + "localizedName": "Yellow Stained Glass Pane", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:yellow_terracotta", + "unlocalizedName": "block.minecraft.yellow_terracotta", + "localizedName": "Yellow Terracotta", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:yellow_wool", + "unlocalizedName": "block.minecraft.yellow_wool", + "localizedName": "Yellow Wool", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:zombie_head", + "unlocalizedName": "block.minecraft.zombie_head", + "localizedName": "Zombie Head", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:zombie_horse_spawn_egg", + "unlocalizedName": "item.minecraft.zombie_horse_spawn_egg", + "localizedName": "Zombie Horse Spawn Egg", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:zombie_pigman_spawn_egg", + "unlocalizedName": "item.minecraft.zombie_pigman_spawn_egg", + "localizedName": "Zombie Pigman Spawn Egg", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:zombie_spawn_egg", + "unlocalizedName": "item.minecraft.zombie_spawn_egg", + "localizedName": "Zombie Spawn Egg", + "maxStackSize": 64, + "maxDamage": 0 + }, + { + "id": "minecraft:zombie_villager_spawn_egg", + "unlocalizedName": "item.minecraft.zombie_villager_spawn_egg", + "localizedName": "Zombie Villager Spawn Egg", + "maxStackSize": 64, + "maxDamage": 0 + } +] \ No newline at end of file diff --git a/worldedit-core/src/main/resources/com/sk89q/worldedit/world/registry/legacy.json b/worldedit-core/src/main/resources/com/sk89q/worldedit/world/registry/legacy.json index 1996d1b2c..293193290 100644 --- a/worldedit-core/src/main/resources/com/sk89q/worldedit/world/registry/legacy.json +++ b/worldedit-core/src/main/resources/com/sk89q/worldedit/world/registry/legacy.json @@ -393,22 +393,22 @@ "62:3": "minecraft:furnace[facing=south,lit=true]", "62:4": "minecraft:furnace[facing=west,lit=true]", "62:5": "minecraft:furnace[facing=east,lit=true]", - "63:0": "minecraft:sign[rotation=0]", - "63:1": "minecraft:sign[rotation=1]", - "63:2": "minecraft:sign[rotation=2]", - "63:3": "minecraft:sign[rotation=3]", - "63:4": "minecraft:sign[rotation=4]", - "63:5": "minecraft:sign[rotation=5]", - "63:6": "minecraft:sign[rotation=6]", - "63:7": "minecraft:sign[rotation=7]", - "63:8": "minecraft:sign[rotation=8]", - "63:9": "minecraft:sign[rotation=9]", - "63:10": "minecraft:sign[rotation=10]", - "63:11": "minecraft:sign[rotation=11]", - "63:12": "minecraft:sign[rotation=12]", - "63:13": "minecraft:sign[rotation=13]", - "63:14": "minecraft:sign[rotation=14]", - "63:15": "minecraft:sign[rotation=15]", + "63:0": "minecraft:oak_sign[rotation=0]", + "63:1": "minecraft:oak_sign[rotation=1]", + "63:2": "minecraft:oak_sign[rotation=2]", + "63:3": "minecraft:oak_sign[rotation=3]", + "63:4": "minecraft:oak_sign[rotation=4]", + "63:5": "minecraft:oak_sign[rotation=5]", + "63:6": "minecraft:oak_sign[rotation=6]", + "63:7": "minecraft:oak_sign[rotation=7]", + "63:8": "minecraft:oak_sign[rotation=8]", + "63:9": "minecraft:oak_sign[rotation=9]", + "63:10": "minecraft:oak_sign[rotation=10]", + "63:11": "minecraft:oak_sign[rotation=11]", + "63:12": "minecraft:oak_sign[rotation=12]", + "63:13": "minecraft:oak_sign[rotation=13]", + "63:14": "minecraft:oak_sign[rotation=14]", + "63:15": "minecraft:oak_sign[rotation=15]", "64:0": "minecraft:oak_door[hinge=right,half=lower,powered=false,facing=east,open=false]", "64:1": "minecraft:oak_door[hinge=right,half=lower,powered=false,facing=south,open=false]", "64:2": "minecraft:oak_door[hinge=right,half=lower,powered=false,facing=west,open=false]", @@ -443,10 +443,10 @@ "67:5": "minecraft:cobblestone_stairs[half=top,shape=straight,facing=west]", "67:6": "minecraft:cobblestone_stairs[half=top,shape=straight,facing=south]", "67:7": "minecraft:cobblestone_stairs[half=top,shape=straight,facing=north]", - "68:2": "minecraft:wall_sign[facing=north]", - "68:3": "minecraft:wall_sign[facing=south]", - "68:4": "minecraft:wall_sign[facing=west]", - "68:5": "minecraft:wall_sign[facing=east]", + "68:2": "minecraft:oak_wall_sign[facing=north]", + "68:3": "minecraft:oak_wall_sign[facing=south]", + "68:4": "minecraft:oak_wall_sign[facing=west]", + "68:5": "minecraft:oak_wall_sign[facing=east]", "69:0": "minecraft:lever[powered=false,facing=north,face=ceiling]", "69:1": "minecraft:lever[powered=false,facing=east,face=wall]", "69:2": "minecraft:lever[powered=false,facing=west,face=wall]", @@ -2165,8 +2165,8 @@ "350:0": "minecraft:cooked_cod", "350:1": "minecraft:cooked_salmon", "351:0": "minecraft:ink_sac", - "351:1": "minecraft:rose_red", - "351:2": "minecraft:cactus_green", + "351:1": "minecraft:red_dye", + "351:2": "minecraft:green_dye", "351:3": "minecraft:cocoa_beans", "351:4": "minecraft:lapis_lazuli", "351:5": "minecraft:purple_dye", @@ -2175,7 +2175,7 @@ "351:8": "minecraft:gray_dye", "351:9": "minecraft:pink_dye", "351:10": "minecraft:lime_dye", - "351:11": "minecraft:dandelion_yellow", + "351:11": "minecraft:yellow_dye", "351:12": "minecraft:light_blue_dye", "351:13": "minecraft:magenta_dye", "351:14": "minecraft:orange_dye", @@ -2329,4 +2329,4 @@ "2266:0": "minecraft:music_disc_11", "2267:0": "minecraft:music_disc_wait" } -} +} \ No newline at end of file diff --git a/worldedit-libs/core/build.gradle.kts b/worldedit-libs/core/build.gradle.kts index 01f0d74e1..e788fe256 100644 --- a/worldedit-libs/core/build.gradle.kts +++ b/worldedit-libs/core/build.gradle.kts @@ -12,7 +12,7 @@ dependencies { "shade"("com.thoughtworks.paranamer:paranamer:2.6") "shade"("com.sk89q.lib:jlibnoise:1.0.0") - "shade"("FAWE-Piston:core/build/libs/core-${Versions.PISTON}:lastSuccessfulBuild@jar") + "shade"("FAWE-Piston:core/build/libs/core-${Versions.PISTON}:lastSuccessfulBuild@jar") "shade"("FAWE-Piston:core-ap/runtime/build/libs/runtime-${Versions.PISTON}:lastSuccessfulBuild@jar") "shade"("FAWE-Piston:default-impl/build/libs/default-impl-${Versions.PISTON}:lastSuccessfulBuild@jar")