diff options
| author | Pugmatt <pugmatt@gmail.com> | 2019-06-18 23:22:41 -0400 |
|---|---|---|
| committer | Pugmatt <pugmatt@gmail.com> | 2019-06-18 23:22:41 -0400 |
| commit | a98d6164e8f03c19ed568fbe05b69b2a1d4eccf2 (patch) | |
| tree | f7fb1e3057cc942e5ba78be233339e15c6dea788 | |
| parent | 9be6579e87cc4db8dab08f007482317f5bd980a3 (diff) | |
| download | BedrockConnect-a98d6164e8f03c19ed568fbe05b69b2a1d4eccf2.tar.gz BedrockConnect-a98d6164e8f03c19ed568fbe05b69b2a1d4eccf2.tar.bz2 BedrockConnect-a98d6164e8f03c19ed568fbe05b69b2a1d4eccf2.zip | |
Added serverlist bedrock server
32 files changed, 24974 insertions, 1 deletions
@@ -85,4 +85,87 @@ typings/ .fusebox/ # DynamoDB Local files -.dynamodb/
\ No newline at end of file +.dynamodb/ + +/serverlist-server/.idea + +# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and WebStorm +# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 + +# User-specific stuff +.idea/**/workspace.xml +.idea/**/tasks.xml +.idea/**/usage.statistics.xml +.idea/**/dictionaries +.idea/**/shelf + +# Generated files +.idea/**/contentModel.xml + +# Sensitive or high-churn files +.idea/**/dataSources/ +.idea/**/dataSources.ids +.idea/**/dataSources.local.xml +.idea/**/sqlDataSources.xml +.idea/**/dynamic.xml +.idea/**/uiDesigner.xml +.idea/**/dbnavigator.xml + +# Gradle +.idea/**/gradle.xml +.idea/**/libraries + +# Gradle and Maven with auto-import +# When using Gradle or Maven with auto-import, you should exclude module files, +# since they will be recreated, and may cause churn. Uncomment if using +# auto-import. +# .idea/modules.xml +# .idea/*.iml +# .idea/modules +# *.iml +# *.ipr + +# CMake +cmake-build-*/ + +# Mongo Explorer plugin +.idea/**/mongoSettings.xml + +# File-based project format +*.iws + +# IntelliJ +out/ + +# mpeltonen/sbt-idea plugin +.idea_modules/ + +# JIRA plugin +atlassian-ide-plugin.xml + +# Cursive Clojure plugin +.idea/replstate.xml + +# Crashlytics plugin (for Android Studio and IntelliJ) +com_crashlytics_export_strings.xml +crashlytics.properties +crashlytics-build.properties +fabric.properties + +# Editor-based Rest Client +.idea/httpRequests + +# Android studio 3.1+ serialized cache file +.idea/caches/build_file_checksums.ser +© 2019 GitHub, Inc. + +target/ +pom.xml.tag +pom.xml.releaseBackup +pom.xml.versionsBackup +pom.xml.next +release.properties +dependency-reduced-pom.xml +buildNumber.properties +.mvn/timing.properties +.mvn/wrapper/maven-wrapper.jar
\ No newline at end of file diff --git a/serverlist-server/BedrockConnect.iml b/serverlist-server/BedrockConnect.iml new file mode 100644 index 0000000..99df940 --- /dev/null +++ b/serverlist-server/BedrockConnect.iml @@ -0,0 +1,50 @@ +<?xml version="1.0" encoding="UTF-8"?> +<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4"> + <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8"> + <output url="file://$MODULE_DIR$/target/classes" /> + <output-test url="file://$MODULE_DIR$/target/test-classes" /> + <content url="file://$MODULE_DIR$"> + <sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" /> + <excludeFolder url="file://$MODULE_DIR$/target" /> + </content> + <orderEntry type="inheritedJdk" /> + <orderEntry type="sourceFolder" forTests="false" /> + <orderEntry type="library" name="Maven: com.github.steveice10:packetlib:1.4-SNAPSHOT" level="project" /> + <orderEntry type="library" name="Maven: io.netty:netty-all:4.1.25.Final" level="project" /> + <orderEntry type="library" name="Maven: com.nukkitx.protocol:bedrock-v354:2.0.2" level="project" /> + <orderEntry type="library" name="Maven: com.nukkitx.protocol:bedrock-common:2.0.2" level="project" /> + <orderEntry type="library" name="Maven: com.nukkitx.protocol:common:2.0.2" level="project" /> + <orderEntry type="library" name="Maven: com.nukkitx.network:common:1.5.4" level="project" /> + <orderEntry type="library" name="Maven: io.netty:netty-buffer:4.1.36.Final" level="project" /> + <orderEntry type="library" name="Maven: io.netty:netty-transport-native-epoll:linux-x86_64:4.1.36.Final" level="project" /> + <orderEntry type="library" name="Maven: io.netty:netty-transport-native-unix-common:4.1.36.Final" level="project" /> + <orderEntry type="library" name="Maven: io.netty:netty-transport-native-kqueue:osx-x86_64:4.1.36.Final" level="project" /> + <orderEntry type="library" name="Maven: cn.nukkit:nukkit-natives:1.0.1-SNAPSHOT" level="project" /> + <orderEntry type="library" name="Maven: com.nukkitx:nbt:1.2.0" level="project" /> + <orderEntry type="library" name="Maven: com.flowpowered:flow-math:1.0.3" level="project" /> + <orderEntry type="library" name="Maven: net.sf.trove4j:trove:3.1.0-SNAPSHOT" level="project" /> + <orderEntry type="library" name="Maven: net.sf.trove4j:trove-generator:3.1.0-SNAPSHOT" level="project" /> + <orderEntry type="library" name="Maven: com.nukkitx.network:raknet:1.5.4" level="project" /> + <orderEntry type="library" name="Maven: io.netty:netty-handler:4.1.36.Final" level="project" /> + <orderEntry type="library" name="Maven: io.netty:netty-common:4.1.36.Final" level="project" /> + <orderEntry type="library" name="Maven: io.netty:netty-transport:4.1.36.Final" level="project" /> + <orderEntry type="library" name="Maven: io.netty:netty-resolver:4.1.36.Final" level="project" /> + <orderEntry type="library" name="Maven: io.netty:netty-codec:4.1.36.Final" level="project" /> + <orderEntry type="library" name="Maven: com.nimbusds:nimbus-jose-jwt:4.41.2" level="project" /> + <orderEntry type="library" name="Maven: com.github.stephenc.jcip:jcip-annotations:1.0-1" level="project" /> + <orderEntry type="library" name="Maven: net.minidev:json-smart:2.3" level="project" /> + <orderEntry type="library" name="Maven: net.minidev:accessors-smart:1.2" level="project" /> + <orderEntry type="library" name="Maven: org.ow2.asm:asm:5.0.4" level="project" /> + <orderEntry type="library" scope="PROVIDED" name="Maven: com.google.code.findbugs:jsr305:1.3.9" level="project" /> + <orderEntry type="library" name="Maven: com.google.code.gson:gson:2.5" level="project" /> + <orderEntry type="library" name="Maven: org.json:json:20180813" level="project" /> + <orderEntry type="library" name="Maven: com.googlecode.json-simple:json-simple:1.1.1" level="project" /> + <orderEntry type="library" name="Maven: junit:junit:4.10" level="project" /> + <orderEntry type="library" name="Maven: org.hamcrest:hamcrest-core:1.1" level="project" /> + <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.9.8" level="project" /> + <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.9.0" level="project" /> + <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.9.8" level="project" /> + <orderEntry type="library" name="Maven: com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.9.8" level="project" /> + <orderEntry type="library" name="Maven: org.yaml:snakeyaml:1.23" level="project" /> + </component> +</module>
\ No newline at end of file diff --git a/serverlist-server/BedrockPipe.iml b/serverlist-server/BedrockPipe.iml new file mode 100644 index 0000000..99df940 --- /dev/null +++ b/serverlist-server/BedrockPipe.iml @@ -0,0 +1,50 @@ +<?xml version="1.0" encoding="UTF-8"?> +<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4"> + <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8"> + <output url="file://$MODULE_DIR$/target/classes" /> + <output-test url="file://$MODULE_DIR$/target/test-classes" /> + <content url="file://$MODULE_DIR$"> + <sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" /> + <excludeFolder url="file://$MODULE_DIR$/target" /> + </content> + <orderEntry type="inheritedJdk" /> + <orderEntry type="sourceFolder" forTests="false" /> + <orderEntry type="library" name="Maven: com.github.steveice10:packetlib:1.4-SNAPSHOT" level="project" /> + <orderEntry type="library" name="Maven: io.netty:netty-all:4.1.25.Final" level="project" /> + <orderEntry type="library" name="Maven: com.nukkitx.protocol:bedrock-v354:2.0.2" level="project" /> + <orderEntry type="library" name="Maven: com.nukkitx.protocol:bedrock-common:2.0.2" level="project" /> + <orderEntry type="library" name="Maven: com.nukkitx.protocol:common:2.0.2" level="project" /> + <orderEntry type="library" name="Maven: com.nukkitx.network:common:1.5.4" level="project" /> + <orderEntry type="library" name="Maven: io.netty:netty-buffer:4.1.36.Final" level="project" /> + <orderEntry type="library" name="Maven: io.netty:netty-transport-native-epoll:linux-x86_64:4.1.36.Final" level="project" /> + <orderEntry type="library" name="Maven: io.netty:netty-transport-native-unix-common:4.1.36.Final" level="project" /> + <orderEntry type="library" name="Maven: io.netty:netty-transport-native-kqueue:osx-x86_64:4.1.36.Final" level="project" /> + <orderEntry type="library" name="Maven: cn.nukkit:nukkit-natives:1.0.1-SNAPSHOT" level="project" /> + <orderEntry type="library" name="Maven: com.nukkitx:nbt:1.2.0" level="project" /> + <orderEntry type="library" name="Maven: com.flowpowered:flow-math:1.0.3" level="project" /> + <orderEntry type="library" name="Maven: net.sf.trove4j:trove:3.1.0-SNAPSHOT" level="project" /> + <orderEntry type="library" name="Maven: net.sf.trove4j:trove-generator:3.1.0-SNAPSHOT" level="project" /> + <orderEntry type="library" name="Maven: com.nukkitx.network:raknet:1.5.4" level="project" /> + <orderEntry type="library" name="Maven: io.netty:netty-handler:4.1.36.Final" level="project" /> + <orderEntry type="library" name="Maven: io.netty:netty-common:4.1.36.Final" level="project" /> + <orderEntry type="library" name="Maven: io.netty:netty-transport:4.1.36.Final" level="project" /> + <orderEntry type="library" name="Maven: io.netty:netty-resolver:4.1.36.Final" level="project" /> + <orderEntry type="library" name="Maven: io.netty:netty-codec:4.1.36.Final" level="project" /> + <orderEntry type="library" name="Maven: com.nimbusds:nimbus-jose-jwt:4.41.2" level="project" /> + <orderEntry type="library" name="Maven: com.github.stephenc.jcip:jcip-annotations:1.0-1" level="project" /> + <orderEntry type="library" name="Maven: net.minidev:json-smart:2.3" level="project" /> + <orderEntry type="library" name="Maven: net.minidev:accessors-smart:1.2" level="project" /> + <orderEntry type="library" name="Maven: org.ow2.asm:asm:5.0.4" level="project" /> + <orderEntry type="library" scope="PROVIDED" name="Maven: com.google.code.findbugs:jsr305:1.3.9" level="project" /> + <orderEntry type="library" name="Maven: com.google.code.gson:gson:2.5" level="project" /> + <orderEntry type="library" name="Maven: org.json:json:20180813" level="project" /> + <orderEntry type="library" name="Maven: com.googlecode.json-simple:json-simple:1.1.1" level="project" /> + <orderEntry type="library" name="Maven: junit:junit:4.10" level="project" /> + <orderEntry type="library" name="Maven: org.hamcrest:hamcrest-core:1.1" level="project" /> + <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.9.8" level="project" /> + <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.9.0" level="project" /> + <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.9.8" level="project" /> + <orderEntry type="library" name="Maven: com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.9.8" level="project" /> + <orderEntry type="library" name="Maven: org.yaml:snakeyaml:1.23" level="project" /> + </component> +</module>
\ No newline at end of file diff --git a/serverlist-server/README.md b/serverlist-server/README.md new file mode 100644 index 0000000..b8d8886 --- /dev/null +++ b/serverlist-server/README.md @@ -0,0 +1,11 @@ +# BedrockPipe + +Bukkit/Spigot plugin that creates a server connection to allow Bedrock Edition players to connect. + +This is currently a test project and under development, and is not reccomended for production use. + +### Projects used + +__[Protocol library](https://github.com/NukkitX/Protocol)__ used for Bedrock Edition server protocol + +Code used from __[ProxyPass](https://github.com/NukkitX/ProxyPass)__ diff --git a/serverlist-server/TROUBLESHOOT.txt b/serverlist-server/TROUBLESHOOT.txt new file mode 100644 index 0000000..d799da9 --- /dev/null +++ b/serverlist-server/TROUBLESHOOT.txt @@ -0,0 +1,3 @@ +If you can't connect to localhost Bedrock server, close Minecraft and run this command in administrator command prompt: + +CheckNetIsolation LoopbackExempt -a -n="Microsoft.MinecraftUWP_8wekyb3d8bbwe"
\ No newline at end of file diff --git a/serverlist-server/pom.xml b/serverlist-server/pom.xml new file mode 100644 index 0000000..240d4d8 --- /dev/null +++ b/serverlist-server/pom.xml @@ -0,0 +1,120 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + + <groupId>com.pyratron.pugmatt</groupId> + <artifactId>BedrockConnect</artifactId> + <version>1.0-SNAPSHOT</version> + + <build> + <sourceDirectory>src</sourceDirectory> + <plugins> + <plugin> + <!-- Build an executable JAR --> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-jar-plugin</artifactId> + <version>3.1.0</version> + <configuration> + <archive> + <manifest> + <addClasspath>true</addClasspath> + <classpathPrefix>lib/</classpathPrefix> + <mainClass>main.com.pyratron.pugmatt.bedrockconnect.BedrockConnect</mainClass> + </manifest> + </archive> + </configuration> + </plugin> + <plugin> + <artifactId>maven-compiler-plugin</artifactId> + <version>3.6.1</version> + <configuration> + <source>1.8</source> + <target>1.8</target> + </configuration> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-shade-plugin</artifactId> + <version>3.2.1</version> + <executions> + <execution> + <phase>package</phase> + <goals> + <goal>shade</goal> + </goals> + <configuration> + <relocations> + <relocation> + <pattern>com.nukkitx.protocol</pattern> + <shadedPattern>com.pyratron.pugmatt.protocol</shadedPattern> + </relocation> + <relocation> + <pattern>com.github.steveice10</pattern> + <shadedPattern>com.pyratron.pugmatt.javaprotocol</shadedPattern> + </relocation> + </relocations> + </configuration> + </execution> + </executions> + </plugin> + </plugins> + </build> + + <repositories> + <repository> + <id>nukkitx-repo</id> + <url>https://repo.nukkitx.com/snapshot/</url> + </repository> + </repositories> + + <dependencies> + <dependency> + <groupId>com.github.steveice10</groupId> + <artifactId>packetlib</artifactId> + <version>1.4-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>com.nukkitx.protocol</groupId> + <artifactId>bedrock-v354</artifactId> + <version>2.0.2</version> + <scope>compile</scope> + </dependency> + <dependency> + <groupId>com.google.code.findbugs</groupId> + <artifactId>jsr305</artifactId> + <version>1.3.9</version> + <scope>provided</scope> + </dependency> + <dependency> + <groupId>com.google.code.gson</groupId> + <artifactId>gson</artifactId> + <version>2.5</version> + <scope>compile</scope> + </dependency> + <dependency> + <groupId>org.json</groupId> + <artifactId>json</artifactId> + <version>20180813</version> + </dependency> + <dependency> + <groupId>com.googlecode.json-simple</groupId> + <artifactId>json-simple</artifactId> + <version>1.1.1</version> + </dependency> + <dependency> + <groupId>com.fasterxml.jackson.core</groupId> + <artifactId>jackson-databind</artifactId> + <version>2.9.8</version> + <scope>compile</scope> + </dependency> + <dependency> + <groupId>com.fasterxml.jackson.dataformat</groupId> + <artifactId>jackson-dataformat-yaml</artifactId> + <version>2.9.8</version> + <scope>compile</scope> + </dependency> + </dependencies> + +</project> diff --git a/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/AuthData.java b/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/AuthData.java new file mode 100644 index 0000000..46955e8 --- /dev/null +++ b/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/AuthData.java @@ -0,0 +1,30 @@ +package main.com.pyratron.pugmatt.bedrockconnect; + +import java.util.UUID; + +public class AuthData { + private final String displayName; + private final UUID identity; + + public String getDisplayName() { + return displayName; + } + + public UUID getIdentity() { + return identity; + } + + public String getXuid() { + return xuid; + } + + private final String xuid; + + public AuthData(String displayName, UUID identity, String xuid) { + this.displayName = displayName; + this.identity = identity; + this.xuid = xuid; + } + + +}
\ No newline at end of file diff --git a/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/BedrockConnect.java b/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/BedrockConnect.java new file mode 100644 index 0000000..bda3b38 --- /dev/null +++ b/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/BedrockConnect.java @@ -0,0 +1,16 @@ +package main.com.pyratron.pugmatt.bedrockconnect; + +import main.com.pyratron.pugmatt.bedrockconnect.utils.PaletteManager; + +public class BedrockConnect { + + + public static PaletteManager paletteManager; + + public static void main(String[] args) { + paletteManager = new PaletteManager(); + + Server server = new Server(); + } + +} diff --git a/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/Chunk.java b/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/Chunk.java new file mode 100644 index 0000000..3f9ec0f --- /dev/null +++ b/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/Chunk.java @@ -0,0 +1,107 @@ +package main.com.pyratron.pugmatt.bedrockconnect; + +// References to this: https://github.com/NukkitX/Nukkit/blob/4ce13f2afb9a1a330df63a482bee9995ce1f96d5/src/main/java/cn/nukkit/level/format/anvil/ChunkRequestTask.java +// https://github.com/Nukkit/Nukkit/blob/master/src/main/java/cn/nukkit/level/format/generic/BaseFullChunk.java +// https://github.com/Nukkit/Nukkit/blob/master/src/main/java/cn/nukkit/level/format/leveldb/Chunk.java +// https://github.com/NukkitX/Nukkit/blob/4ce13f2afb9a1a330df63a482bee9995ce1f96d5/src/main/java/cn/nukkit/level/format/mcregion/McRegion.java + +import java.nio.ByteBuffer; + +public class Chunk{ + + byte[] ids; + byte[] meta; + byte[] heightMap; + byte[] skyLight; + byte[] blockLight; + byte[] biomes; + byte[] blockEntities; + + public Chunk(int x, int z) { + ids = getBlockIdArray(); + meta = getBlockDataArray(); + heightMap = getHeightMapArray(x, z); + skyLight = getBlockSkyLightArray(); + blockLight = getBlockLightArray(); + biomes = getBiomeIdArray(); + blockEntities = getBlockEntitiesArray(); + } + + public byte[] encode() { + return ByteBuffer.allocate( + 16 * 16 * 128 + + 16 * 16 * 64 + + heightMap.length + + biomes.length + + this.blockEntities.length) + .put(ids) + .put(meta) + .put(heightMap) + .put(biomes) + .put(blockEntities) + .array(); + } + + public byte[] getBlockIdArray() { + byte[] blocks = new byte[16*128*16]; + for (int i = 0; i < 16*128*16; i++) { + int d = 1; + blocks[i] = (byte) d; + } + return blocks; + } + + public byte[] getBlockDataArray() { + byte[] blocks = new byte[16384]; + for (int i = 0; i < 16384; i++) { + int d = 0; + blocks[i] = (byte) d; + } + return blocks; + } + + public byte[] getBlockSkyLightArray() { + byte[] lights = new byte[16384]; + for (int i = 0; i < 16384; i++) { + int d = 0; + lights[i] = (byte) d; + } + return lights; + } + + public byte[] getBlockLightArray() { + byte[] lights = new byte[16384]; + for (int i = 0; i < 16384; i++) { + int d = 0; + lights[i] = (byte) d; + } + return lights; + } + + public byte[] getHeightMapArray(int x, int z) { + byte[] heights = new byte[256]; + for (int i = 0; i < 256; i++) { + int d = 1; + heights[i] = (byte) ((z << 4) | x & 0xFF); + } + return heights; + } + + public byte[] getBiomeIdArray() { + byte[] ids = new byte[1024]; + for (int i = 0; i < 1024; i++) { + int d = i; + ids[i] = (byte) (d >> 24); + } + return ids; + } + + public byte[] getBlockEntitiesArray() { + byte[] ids = new byte[32]; + for (int i = 0; i < 32; i++) { + int d = i; + ids[i] = (byte) d; + } + return ids; + } +} diff --git a/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/PipePlayer.java b/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/PipePlayer.java new file mode 100644 index 0000000..110a53d --- /dev/null +++ b/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/PipePlayer.java @@ -0,0 +1,206 @@ +package main.com.pyratron.pugmatt.bedrockconnect; + +import com.flowpowered.math.vector.Vector2f; +import com.flowpowered.math.vector.Vector3f; +import com.flowpowered.math.vector.Vector3i; +import com.nukkitx.protocol.bedrock.BedrockServerSession; +import com.nukkitx.protocol.bedrock.data.Attribute; +import com.nukkitx.protocol.bedrock.data.GamePublishSetting; +import com.nukkitx.protocol.bedrock.data.GameRule; +import com.nukkitx.protocol.bedrock.packet.*; +import main.com.pyratron.pugmatt.bedrockconnect.chunk.ChunkData; + +import java.util.ArrayList; + +public class PipePlayer { + + private BedrockServerSession session; + + public PipePlayer(AuthData data, BedrockServerSession session) { + this.session = session; + } + + public BedrockServerSession getSession() { + return session; + } + + public void joinGame() { + + /** + StartGamePacket pkStartGame = new StartGamePacket(); + pkStartGame.setUniqueEntityId(packet.getEntityId()); + pkStartGame.setRuntimeEntityId(packet.getEntityId()); + pkStartGame.setDimensionId(0); + pkStartGame.setSeed(0); + pkStartGame.setGeneratorId(1); + pkStartGame.setDifficulty(0); + pkStartGame.setDefaultSpawn(new Vector3i(0, 72, 0)); + pkStartGame.setPlayerPosition(new Vector3f(0f, 72f + 5, 0f)); + pkStartGame.setLevelId(""); + pkStartGame.setWorldName("World"); + pkStartGame.setDefaultPlayerPermission(2); + pkStartGame.setCommandsEnabled(true); + pkStartGame.setPremiumWorldTemplateId(""); **/ + + MovePlayerPacket mp = new MovePlayerPacket(); + mp.setRuntimeEntityId(-1); + mp.setOnGround(false); + mp.setMode(MovePlayerPacket.Mode.NORMAL); + mp.setRotation(new Vector3f(0,0,0)); + mp.setPosition(new Vector3f(0,0,0)); + session.sendPacketImmediately(mp); + + StartGamePacket startGamePacket = new StartGamePacket(); + startGamePacket.setUniqueEntityId(0); + startGamePacket.setRuntimeEntityId(0); + startGamePacket.setPlayerGamemode(0); + startGamePacket.setPlayerPosition(new Vector3f(-249, 67, -275)); + startGamePacket.setRotation(new Vector2f(1, 1)); + + startGamePacket.setSeed(1111); + startGamePacket.setDimensionId(0); + startGamePacket.setGeneratorId(0); + startGamePacket.setLevelGamemode(0); + startGamePacket.setDifficulty(0); + startGamePacket.setDefaultSpawn(new Vector3i(-249, 67, -275)); + startGamePacket.setAcheivementsDisabled(true); + startGamePacket.setTime(1300); + startGamePacket.setEduLevel(false); + startGamePacket.setEduFeaturesEnabled(false); + startGamePacket.setRainLevel(0); + startGamePacket.setLightningLevel(0); + startGamePacket.setPlatformLockedContentConfirmed(false); + startGamePacket.setMultiplayerGame(false); + startGamePacket.setBroadcastingToLan(false); + startGamePacket.getGamerules().add((new GameRule("showcoordinates", true))); + startGamePacket.setPlatformBroadcastMode(GamePublishSetting.PUBLIC); + startGamePacket.setXblBroadcastMode(GamePublishSetting.PUBLIC); + startGamePacket.setCommandsEnabled(true); + startGamePacket.setTexturePacksRequired(false); + startGamePacket.setBonusChestEnabled(false); + startGamePacket.setStartingWithMap(false); + startGamePacket.setTrustingPlayers(true); + startGamePacket.setDefaultPlayerPermission(1); + startGamePacket.setServerChunkTickRange(4); + startGamePacket.setBehaviorPackLocked(false); + startGamePacket.setResourcePackLocked(false); + startGamePacket.setFromLockedWorldTemplate(false); + startGamePacket.setUsingMsaGamertagsOnly(false); + startGamePacket.setFromWorldTemplate(false); + startGamePacket.setWorldTemplateOptionLocked(false); + + startGamePacket.setLevelId("oerjhii"); + startGamePacket.setWorldName("world"); + startGamePacket.setPremiumWorldTemplateId("00000000-0000-0000-0000-000000000000"); + startGamePacket.setCurrentTick(1); + startGamePacket.setEnchantmentSeed(1); + startGamePacket.setMultiplayerCorrelationId(""); + + startGamePacket.setCachedPalette(BedrockConnect.paletteManager.getCachedPalette()); + + session.sendPacketImmediately(startGamePacket); + + spawn(); + + + } + + public void sendAttributes() { + UpdateAttributesPacket pk = new UpdateAttributesPacket(); + pk.setRuntimeEntityId(0); + pk.setAttributes(new ArrayList<Attribute>() { + { + add(new Attribute("minecraft:health", 0.00f, 20.00f, 20.00f, 20.00f)); + add(new Attribute("minecraft:player.hunger", 0.00f, 20.00f, 20.00f, 20.00f)); + add(new Attribute("minecraft:movement", 0.00f, 340282346638528859811704183484516925440.00f, 0.10f, 0.10f)); + add(new Attribute("minecraft:player.level", 0.00f, 24791.00f, 0.00f, 0.00f)); + add(new Attribute("minecraft:player.experience", 0.00f, 1.00f, 0.00f, 0.00f)); + } + }); + session.sendPacketImmediately(pk); + + RespawnPacket rp = new RespawnPacket(); + rp.setPosition(new Vector3f(0, 0 ,0)); + session.sendPacketImmediately(rp); + + spawn(); + } + + public void spawn() { + + ChunkData data = new ChunkData(true); + data.encode(); + + Vector3f pos = new Vector3f(-249, 67, -275); + int chunkX = pos.getFloorX() >> 4; + int chunkZ = pos.getFloorX() >> 4; + + for (int x = -3; x < 3; x++) { + for (int z = -3; z < 3; z++) { + FullChunkDataPacket data2 = new FullChunkDataPacket(); + data2.setChunkX(chunkX + x); + data2.setChunkZ(chunkZ + z); + data2.setData(new byte[0]); + session.sendPacketImmediately(data2); + } + } + + PlayStatusPacket playStatus = new PlayStatusPacket(); + playStatus.setStatus(PlayStatusPacket.Status.PLAYER_SPAWN); + session.sendPacketImmediately(playStatus); + + /** SetSpawnPositionPacket pkSpawn = new SetSpawnPositionPacket(); + pkSpawn.setSpawnType(SetSpawnPositionPacket.Type.PLAYER_SPAWN); + pkSpawn.setSpawnForced(false); + pkSpawn.setBlockPosition(new Vector3i(-249, 67, -275)); + session.sendPacketImmediately(pkSpawn); + + MovePlayerPacket mp = new MovePlayerPacket(); + mp.setRuntimeEntityId(-1); + mp.setOnGround(false); + mp.setMode(MovePlayerPacket.Mode.NORMAL); + mp.setRotation(new Vector3f(0,0,0)); + mp.setPosition(new Vector3f(0,0,0)); + session.sendPacketImmediately(mp); + + SetTimePacket st = new SetTimePacket(); + st.setTime(0); + session.sendPacketImmediately(st); + + AdventureSettingsPacket as = new AdventureSettingsPacket(); + as.setCommandPermission(0); + as.setCustomFlags(0); + as.setPlayerFlags(0); + as.setPlayerPermission(0); + as.setUniqueEntityId(0); + as.setWorldFlags(0); + as.setWorldFlags(0); + session.sendPacketImmediately(as); + + RespawnPacket rp = new RespawnPacket(); + rp.setPosition(new Vector3f(0,0,0)); + session.sendPacketImmediately(rp); + + + /** FullChunkDataPacket fullChunk = new FullChunkDataPacket(); + fullChunk.setChunkX(0); + fullChunk.setChunkZ(0); + fullChunk.setData(data.getBuffer()); + session.sendPacketImmediately(fullChunk); + fullChunk.setChunkX(0); + fullChunk.setChunkZ(-1); + session.sendPacketImmediately(fullChunk); + fullChunk.setChunkX(-1); + fullChunk.setChunkZ(0); + session.sendPacketImmediately(fullChunk); + fullChunk.setChunkX(-1); + fullChunk.setChunkZ(-1); + session.sendPacketImmediately(fullChunk); **/ + + //SetSpawnPositionPacket ss = new SetSpawnPositionPacket(); + //ss.setSpawnType(SetSpawnPositionPacket.Type.PLAYER_SPAWN); + //session.sendPacketImmediately(ss); + + + } +} diff --git a/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/Server.java b/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/Server.java new file mode 100644 index 0000000..f2570ae --- /dev/null +++ b/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/Server.java @@ -0,0 +1,88 @@ +package main.com.pyratron.pugmatt.bedrockconnect; + +import com.fasterxml.jackson.databind.DeserializationFeature; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.dataformat.yaml.YAMLMapper; +import com.nukkitx.protocol.bedrock.*; +import com.nukkitx.protocol.bedrock.v354.Bedrock_v354; +import main.com.pyratron.pugmatt.bedrockconnect.listeners.PacketHandler; + + +import javax.annotation.Nonnull; +import java.net.InetSocketAddress; +import java.util.ArrayList; +import java.util.List; + +public class Server { + + public BedrockServer server; + public BedrockPong pong; + + private BedrockPacketCodec codec; + + public int getProtocol() { + return codec.getProtocolVersion(); + } + + public BedrockPacketCodec getCodec() { + return codec; + } + + public static final ObjectMapper JSON_MAPPER = new ObjectMapper().disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES); + public static final YAMLMapper YAML_MAPPER = (YAMLMapper) new YAMLMapper().disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES); + + private List<PipePlayer> players = new ArrayList<>(); + + public List<PipePlayer> getPlayers() { + return players; + } + + public void addPlayer(PipePlayer player) { + this.players.add(player); + } + + public PipePlayer addPlayer(AuthData data, BedrockServerSession session) { + PipePlayer player = new PipePlayer(data, session); + this.players.add(player); + return player; + } + + public void removePlayer(PipePlayer player) { + this.players.remove(player); + } + + + public Server() { + Server current = this; + InetSocketAddress bindAddress = new InetSocketAddress("localhost", 19132); + codec = Bedrock_v354.V354_CODEC; + server = new BedrockServer(bindAddress); + pong = new BedrockPong(); + pong.setEdition("MCPE"); + pong.setMotd("BedrockConnect Connection Successful"); + pong.setSubMotd("Test"); + pong.setPlayerCount(0); + pong.setMaximumPlayerCount(20); + pong.setGameType("Survival"); + pong.setProtocolVersion(Bedrock_v354.V354_CODEC.getProtocolVersion()); + server.setHandler(new BedrockServerEventHandler() { + @Override + public boolean onConnectionRequest(InetSocketAddress address) { + return true; // Connection will be accepted + } + @Nonnull + public BedrockPong onQuery(InetSocketAddress address) { + return pong; + } + @Override + public void onSessionCreation(BedrockServerSession session) { + session.setPacketHandler(new PacketHandler(session, current)); + } + }); + // Start server up + server.bind().join(); + System.out.println("Bedrock Connection Started: localhost:19132"); + + while(true) { } + } +} diff --git a/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/chunk/ChunkData.java b/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/chunk/ChunkData.java new file mode 100644 index 0000000..a7460d3 --- /dev/null +++ b/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/chunk/ChunkData.java @@ -0,0 +1,80 @@ +package main.com.pyratron.pugmatt.bedrockconnect.chunk; + +import main.com.pyratron.pugmatt.bedrockconnect.utils.BinaryStream; + +import java.util.Arrays; + +// reference: https://github.com/DragonetMC/DragonProxy/blob/master/protocol/src/main/java/org/dragonet/protocol/type/chunk/ChunkData.java +// Original Author: HoverEpic + +public class ChunkData extends BinaryStream { + + /** + * 16x16x16 section of the chunk. The array's keys also indicate the + * section's height (the 3rd element of the array will be the 3rd section + * from bottom, starting at `y=24`). The amount of sections should be in a + * range from 0 (empty chunk) to 16. + */ + public Section[] sections = new Section[0]; + public short[] heights = new short[256]; + /** + * Biomes in order `xz`. + */ + public byte[] biomes = new byte[256]; + /** + * Colums where there are world borders (in format `xz`). This feature + * hasn't been implemented in the game yet and crashes the client. + */ + public byte[] borders = new byte[0]; + public ExtraData[] extraData = new ExtraData[0]; + /** + * Additional data for the chunk's block entities (tiles), encoded in the + * same way as BlockEntityData.nbt is. The position is given by the `Int` + * tags `x`, `y`, `z` which are added to the block's compound tag together + * with the `String` tag `id` that contains the name of the tile in pascal + * case. Wrong encoding or missing tags may result in the block becoming + * invisible. + */ + public byte[] blockEntities = new byte[0]; + + public ChunkData(boolean empty) { + if(empty) { + sections = new Section[16]; + for (int cy = 0; cy < 16; cy++) { + sections[cy] = new Section(); + if (cy < 6) + Arrays.fill(sections[cy].blockIds, (byte) 1); + } + } + } + + public ChunkData(Section[] sections, short[] heights, byte[] biomes, byte[] borders, ExtraData[] extraData, + byte[] blockEntities) { + this.sections = sections; + this.heights = heights; + this.biomes = biomes; + this.borders = borders; + this.extraData = extraData; + this.blockEntities = blockEntities; + } + + public void encode() { + reset(); + putByte((byte) (sections.length & 0xff)); + for (Section s : sections) { + s.encode(this); + } + for (short h : heights) { + this.putLShort(h); + } + this.put(biomes); + this.putByte((byte) (borders.length & 0xFF)); + this.put(borders); + this.putVarInt(extraData.length); + for (ExtraData extra : extraData) { + extra.encode(this); + } + this.put(blockEntities); + } + +} diff --git a/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/chunk/ExtraData.java b/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/chunk/ExtraData.java new file mode 100644 index 0000000..351b2ad --- /dev/null +++ b/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/chunk/ExtraData.java @@ -0,0 +1,40 @@ +package main.com.pyratron.pugmatt.bedrockconnect.chunk; + +// reference: https://github.com/DragonetMC/DragonProxy/blob/master/protocol/src/main/java/org/dragonet/protocol/type/chunk/ExtraData.java +// Original Author: HoverEpic + +import main.com.pyratron.pugmatt.bedrockconnect.utils.BinaryStream; + +public class ExtraData { + + private int key; + private short value; + + public int getKey() { + return key; + } + + public short getValue() { + return value; + } + + public ExtraData() { + + } + + public ExtraData(int key, short value) { + this.key = key; + this.value = value; + } + + public void encode(BinaryStream out) { + out.putVarInt(key); + out.putLShort(value); + } + + public void decode(BinaryStream in) { + key = (int) in.getUnsignedVarInt(); + value = (short) in.getLShort(); + } + +} diff --git a/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/chunk/Section.java b/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/chunk/Section.java new file mode 100644 index 0000000..f771f06 --- /dev/null +++ b/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/chunk/Section.java @@ -0,0 +1,35 @@ +package main.com.pyratron.pugmatt.bedrockconnect.chunk; + +// reference: https://github.com/DragonetMC/DragonProxy/blob/master/protocol/src/main/java/org/dragonet/protocol/type/chunk/Section.java +// Original Author: HoverEpic + +import main.com.pyratron.pugmatt.bedrockconnect.utils.BinaryStream; + +public class Section { + + public byte storageVers = 0; + public byte[] blockIds = new byte[4096]; + public byte[] blockMetas = new byte[2048]; + + public Section(byte storageVers, byte[] blockIds, byte[] blockMetas) { + this.storageVers = storageVers; + this.blockIds = blockIds; + this.blockMetas = blockMetas; + } + + public Section() { + + } + + public void encode(BinaryStream out) { + out.putByte(storageVers); + out.put(blockIds); + out.put(blockMetas); + } + + public void decode(BinaryStream in) { + storageVers = (byte) (in.getByte() & 0xFF); + blockIds = in.get(4096); + blockMetas = in.get(2048); + } +} diff --git a/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/gui/UIComponents.java b/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/gui/UIComponents.java new file mode 100644 index 0000000..85c656b --- /dev/null +++ b/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/gui/UIComponents.java @@ -0,0 +1,83 @@ +package main.com.pyratron.pugmatt.bedrockconnect.gui; + +import com.google.gson.JsonArray; +import com.google.gson.JsonObject; +import com.nukkitx.protocol.bedrock.packet.ModalFormRequestPacket; +import org.json.simple.JSONArray; +import org.json.simple.parser.JSONParser; +import org.json.simple.parser.ParseException; + +import java.util.ArrayList; + +public class UIComponents { + + public static JsonObject createLabel(String text) { + JsonObject obj = new JsonObject(); + obj.addProperty("type", "label"); + obj.addProperty("text", text); + return obj; + } + + public static JsonObject createInput(String text, String placeholder) { + JsonObject input = new JsonObject(); + input.addProperty("type", "input"); + input.addProperty("placeholder", placeholder); + input.addProperty("text", text); + return input; + } + + public static JsonObject createButton(String text, String image, String imageType) { + JsonObject button = new JsonObject(); + button.addProperty("text", text); + if(image != null && imageType != null) { + JsonObject buttonImage = new JsonObject(); + buttonImage.addProperty("type", imageType); + buttonImage.addProperty("data", image); + button.add("image", buttonImage); + } + return button; + } + + public static JsonObject createButton(String text) { + JsonObject button = new JsonObject(); + button.addProperty("text", text); + return button; + } + + public static JsonObject createForm(String type, String title) { + JsonObject form = new JsonObject(); + form.addProperty("type", type); + form.addProperty("title", title); + return form; + } + + public static ModalFormRequestPacket createError(String error) { + ModalFormRequestPacket mf = new ModalFormRequestPacket(); + mf.setFormId(UIForms.ERROR); + JsonObject form = new JsonObject(); + form.addProperty("type", "custom_form"); + form.addProperty("title", "Error"); + JsonArray content = new JsonArray(); + content.add(createLabel(error)); + form.add("content", content); + mf.setFormData(form.toString()); + return mf; + } + + public static ArrayList<String> getFormData(String data) { + JSONParser parser = new JSONParser(); + try { + JSONArray obj = (JSONArray) parser.parse(data); + ArrayList<String> strings = new ArrayList<>(); + for(int i=0;i<obj.size();i++) { + System.out.println(obj.get(i).toString()); + strings.add(obj.get(i).toString()); + } + return strings; + } catch(ParseException e) { + System.out.println(e.toString()); + } + + return null; + } +} diff --git a/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/gui/UIForms.java b/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/gui/UIForms.java new file mode 100644 index 0000000..90d93e7 --- /dev/null +++ b/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/gui/UIForms.java @@ -0,0 +1,50 @@ +package main.com.pyratron.pugmatt.bedrockconnect.gui; + +import com.google.gson.JsonArray; +import com.google.gson.JsonObject; +import com.nukkitx.protocol.bedrock.packet.ModalFormRequestPacket; + +public class UIForms { + public static final int ERROR = 2, MAIN = 0, DIRECT_CONNECT = 1; + + public static int currentForm = 0; + + public static ModalFormRequestPacket createMain() { + currentForm = MAIN; + ModalFormRequestPacket mf = new ModalFormRequestPacket(); + mf.setFormId(UIForms.MAIN); + + JsonObject out = UIComponents.createForm("form", "ServerList"); + out.addProperty("content", ""); + + JsonArray buttons = new JsonArray(); + + buttons.add(UIComponents.createButton("Direct Connect")); + buttons.add(UIComponents.createButton("Play.SkyBlockpe.com:19132", "https://i.imgur.com/3BmFZRE.png", "url")); + buttons.add(UIComponents.createButton("Add Server")); + buttons.add(UIComponents.createButton("Remove Server")); + + out.add("buttons", buttons); + + mf.setFormData(out.toString()); + + return mf; + } + + public static ModalFormRequestPacket createDirectConnect() { + currentForm = DIRECT_CONNECT; + ModalFormRequestPacket mf = new ModalFormRequestPacket(); + mf.setFormId(UIForms.DIRECT_CONNECT); + JsonObject out = UIComponents.createForm("custom_form", "Add Server"); + + JsonArray inputs = new JsonArray(); + + inputs.add(UIComponents.createInput("Server Address", "Please enter IP or Address")); + inputs.add(UIComponents.createInput("Server Port", "Please enter Port (E.g. 19132)")); + + out.add("content", inputs); + mf.setFormData(out.toString()); + + return mf; + } +} diff --git a/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/listeners/ClientPacketHandler.java b/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/listeners/ClientPacketHandler.java new file mode 100644 index 0000000..2595a33 --- /dev/null +++ b/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/listeners/ClientPacketHandler.java @@ -0,0 +1,828 @@ +package main.com.pyratron.pugmatt.bedrockconnect.listeners; + +import com.fasterxml.jackson.databind.node.ArrayNode; +import com.nukkitx.protocol.bedrock.BedrockClientSession; +import com.nukkitx.protocol.bedrock.packet.*; + +import com.nukkitx.protocol.bedrock.handler.BedrockPacketHandler; +import com.nukkitx.protocol.bedrock.packet.LoginPacket; +import main.com.pyratron.pugmatt.bedrockconnect.AuthData; +import main.com.pyratron.pugmatt.bedrockconnect.PipePlayer; +import net.minidev.json.JSONObject; + +// Heavily referenced from https://github.com/NukkitX/ProxyPass/blob/master/src/main/java/com/nukkitx/proxypass/network/bedrock/session/UpstreamPacketHandler.java + +public class ClientPacketHandler implements BedrockPacketHandler { + + private static final int PIXEL_SIZE = 4; + + public static final int SINGLE_SKIN_SIZE = 64 * 32 * PIXEL_SIZE; + public static final int DOUBLE_SKIN_SIZE = 64 * 64 * PIXEL_SIZE; + public static final int SKIN_128_64_SIZE = 128 * 64 * PIXEL_SIZE; + public static final int SKIN_128_128_SIZE = 128 * 128 * PIXEL_SIZE; + + private BedrockClientSession session; + private PipePlayer player; + + private JSONObject skinData; + private JSONObject extraData; + private ArrayNode chainData; + private AuthData authData; + + @Override + public boolean handle(AdventureSettingsPacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(AnimatePacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(BlockEntityDataPacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(BlockPickRequestPacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(BookEditPacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(ClientToServerHandshakePacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(CommandBlockUpdatePacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(CommandRequestPacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(ContainerClosePacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(CraftingEventPacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(EntityEventPacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(EntityFallPacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(EntityPickRequestPacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(EventPacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(InteractPacket packet) { + System.out.println(packet.toString()); + session.sendPacketImmediately(packet); + return false; + } + + @Override + public boolean handle(InventoryContentPacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(InventorySlotPacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(InventoryTransactionPacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(ItemFrameDropItemPacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(LabTablePacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(LecternUpdatePacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(LevelSoundEventPacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(LevelSoundEvent3Packet packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(MapInfoRequestPacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(MobArmorEquipmentPacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(MobEquipmentPacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(ModalFormResponsePacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(MoveEntityAbsolutePacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(MovePlayerPacket packet) { + System.out.println(packet.toString()); + session.sendPacketImmediately(packet); + return false; + } + + @Override + public boolean handle(NetworkStackLatencyPacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(PhotoTransferPacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(PlayerActionPacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(PlayerHotbarPacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(PlayerInputPacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(PlayerSkinPacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(PurchaseReceiptPacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(RequestChunkRadiusPacket packet) { + System.out.println(packet.toString()); + ChunkRadiusUpdatedPacket chunk = new ChunkRadiusUpdatedPacket(); + chunk.setRadius(Math.max(3, Math.min(packet.getRadius(), 5))); + //PacketHeader ph = new PacketHeader(); + // ph.set + //chunk.setHeader(); + session.sendPacketImmediately(chunk); + + int chunkPositionX = 0; + int chunkPositionZ = 0; + int chunkRadius = 5; + for (int x = -chunkRadius; x < chunkRadius; x++) { + for (int z = -chunkRadius; z < chunkRadius; z++) { + FullChunkDataPacket fullChunk = new FullChunkDataPacket(); + fullChunk.setChunkX(chunkPositionX + x); + fullChunk.setChunkZ(chunkPositionZ + z); + fullChunk.setData(new byte[0]); + session.sendPacket(fullChunk); + } + } + + PlayStatusPacket play = new PlayStatusPacket(); + play.setStatus(PlayStatusPacket.Status.PLAYER_SPAWN); + session.sendPacketImmediately(play); + + SetTimePacket st = new SetTimePacket(); + st.setTime(0); + session.sendPacketImmediately(st); + return false; + } + + @Override + public boolean handle(RiderJumpPacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(ServerSettingsRequestPacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(SetDefaultGameTypePacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(SetLocalPlayerAsInitializedPacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(SetPlayerGameTypePacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(SubClientLoginPacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(TextPacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(AddBehaviorTreePacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(AddEntityPacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(AddHangingEntityPacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(AddItemEntityPacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(AddPaintingPacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(AddPlayerPacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(AvailableCommandsPacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(BlockEventPacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(BossEventPacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(CameraPacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(ChangeDimensionPacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(ChunkRadiusUpdatedPacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(ClientboundMapItemDataPacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(CommandOutputPacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(ContainerOpenPacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(ContainerSetDataPacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(CraftingDataPacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(ExplodePacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(FullChunkDataPacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(GameRulesChangedPacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(GuiDataPickItemPacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(HurtArmorPacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(AutomationClientConnectPacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(LevelEventPacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(MapCreateLockedCopyPacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(MobEffectPacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(ModalFormRequestPacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(MoveEntityDeltaPacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(NpcRequestPacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(OnScreenTextureAnimationPacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(PlayerListPacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(PlaySoundPacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(PlayStatusPacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(RemoveEntityPacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(RemoveObjectivePacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(ResourcePackChunkDataPacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(ResourcePackDataInfoPacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(ResourcePacksInfoPacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(ResourcePackStackPacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(RespawnPacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(ScriptCustomEventPacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(ServerSettingsResponsePacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(ServerToClientHandshakePacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(SetCommandsEnabledPacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(SetDifficultyPacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(SetDisplayObjectivePacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(SetEntityDataPacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(SetEntityLinkPacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(SetEntityMotionPacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(SetHealthPacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(SetLastHurtByPacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(SetScoreboardIdentityPacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(SetScorePacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(SetSpawnPositionPacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(SetTimePacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(SetTitlePacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(ShowCreditsPacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(ShowProfilePacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(ShowStoreOfferPacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(SimpleEventPacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(SpawnExperienceOrbPacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(StartGamePacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(StopSoundPacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(StructureBlockUpdatePacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(TakeItemEntityPacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(TransferPacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(UpdateAttributesPacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(UpdateBlockPacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(UpdateBlockSyncedPacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(UpdateEquipPacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(UpdateSoftEnumPacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(UpdateTradePacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(AvailableEntityIdentifiersPacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(BiomeDefinitionListPacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(LevelSoundEvent2Packet packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(NetworkChunkPublisherUpdatePacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(SpawnParticleEffectPacket packet) { + System.out.println(packet.toString()); + return false; + } + + @Override + public boolean handle(VideoStreamConnectPacket packet) { + System.out.println(packet.toString()); + return false; + } + + public ClientPacketHandler(BedrockClientSession session) { + this.session = session; + + session.addDisconnectHandler((Reason) -> disconnect()); + } + + public void disconnect() { + //player.getClient().getSession().disconnect("Left Game"); + //server.removePlayer(player); + } + + @Override + public boolean handle(DisconnectPacket packet) { + System.out.println(packet.toString()); + return true; + } + + @Override + public boolean handle(ResourcePackChunkRequestPacket packet) { + System.out.println(packet.toString()); + return true; + } + + @Override + public boolean handle(ResourcePackClientResponsePacket packet) { + System.out.println(packet.toString()); + return true; + } + + @Override + public boolean handle(LoginPacket packet) { + System.out.println(packet.toString()); + return true; + } + +}
\ No newline at end of file diff --git a/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/listeners/PacketHandler.java b/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/listeners/PacketHandler.java new file mode 100644 index 0000000..64b680e --- /dev/null +++ b/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/listeners/PacketHandler.java @@ -0,0 +1,1016 @@ +package main.com.pyratron.pugmatt.bedrockconnect.listeners; + +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.node.ArrayNode; +import com.fasterxml.jackson.databind.node.JsonNodeType; +import com.nukkitx.network.util.Preconditions; +import com.nukkitx.protocol.bedrock.packet.*; + +import com.nimbusds.jose.JOSEException; +import com.nimbusds.jose.JWSObject; +import com.nimbusds.jose.crypto.factories.DefaultJWSVerifierFactory; +import com.nukkitx.protocol.bedrock.BedrockServerSession; +import com.nukkitx.protocol.bedrock.handler.BedrockPacketHandler; +import com.nukkitx.protocol.bedrock.packet.LoginPacket; +import com.nukkitx.protocol.bedrock.util.EncryptionUtils; +import main.com.pyratron.pugmatt.bedrockconnect.AuthData; +import main.com.pyratron.pugmatt.bedrockconnect.PipePlayer; +import main.com.pyratron.pugmatt.bedrockconnect.Server; +import main.com.pyratron.pugmatt.bedrockconnect.gui.UIComponents; +import main.com.pyratron.pugmatt.bedrockconnect.gui.UIForms; +import net.minidev.json.JSONObject; + +import java.io.IOException; +import java.security.interfaces.ECPublicKey; +import java.util.ArrayList; +import java.util.UUID; + +// Heavily referenced from https://github.com/NukkitX/ProxyPass/blob/master/src/main/java/com/nukkitx/proxypass/network/bedrock/session/UpstreamPacketHandler.java + +public class PacketHandler implements BedrockPacketHandler { + + private static final int PIXEL_SIZE = 4; + + public static final int SINGLE_SKIN_SIZE = 64 * 32 * PIXEL_SIZE; + public static final int DOUBLE_SKIN_SIZE = 64 * 64 * PIXEL_SIZE; + public static final int SKIN_128_64_SIZE = 128 * 64 * PIXEL_SIZE; + public static final int SKIN_128_128_SIZE = 128 * 128 * PIXEL_SIZE; + + private Server server; + private BedrockServerSession session; + private PipePlayer player; + + private JSONObject skinData; + private JSONObject extraData; + private ArrayNode chainData; + private AuthData authData; + + @Override + public boolean handle(AdventureSettingsPacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(AnimatePacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(BlockEntityDataPacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(BlockPickRequestPacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(BookEditPacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(ClientToServerHandshakePacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(CommandBlockUpdatePacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(CommandRequestPacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(ContainerClosePacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(CraftingEventPacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(EntityEventPacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(EntityFallPacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(EntityPickRequestPacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(EventPacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(InteractPacket packet) { + System.out.println(packet.getClass().getName()); + session.sendPacketImmediately(packet); + return false; + } + + @Override + public boolean handle(InventoryContentPacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(InventorySlotPacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(InventoryTransactionPacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(ItemFrameDropItemPacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(LabTablePacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(LecternUpdatePacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(LevelSoundEventPacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(LevelSoundEvent3Packet packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(MapInfoRequestPacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(MobArmorEquipmentPacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(MobEquipmentPacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + + @Override + public boolean handle(ModalFormResponsePacket packet) { + System.out.println(packet.getClass().getName()); + System.out.println("\"" + packet.getFormData().replaceAll("\\s+","") + "\""); + + switch (packet.getFormId()) { + case 0: + if(UIForms.currentForm == UIForms.MAIN) { + if (packet.getFormData().replaceAll("\\s+","").contains("0")) { + session.sendPacketImmediately(UIForms.createDirectConnect()); + } else if (packet.getFormData().contains("null")) { + session.disconnect("Exiting Server List"); + } + } + break; + case 1: + try { + ArrayList<String> data = UIComponents.getFormData(packet.getFormData()); + TransferPacket tp = new TransferPacket(); + tp.setAddress(data.get(0).replace(" ", "")); + tp.setPort(Integer.parseInt(data.get(1))); + session.sendPacketImmediately(tp); + } catch(Exception e) { + session.sendPacketImmediately(UIComponents.createError("Please enter a port that contains only numbers.")); + } + break; + case 2: + session.sendPacketImmediately(UIForms.createMain()); + break; + } + return false; + } + + @Override + public boolean handle(MoveEntityAbsolutePacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(MovePlayerPacket packet) { + System.out.println(packet.getClass().getName()); + session.sendPacketImmediately(packet); + return false; + } + + @Override + public boolean handle(NetworkStackLatencyPacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(PhotoTransferPacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(PlayerActionPacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(PlayerHotbarPacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(PlayerInputPacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(PlayerSkinPacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(PurchaseReceiptPacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(RequestChunkRadiusPacket packet) { + System.out.println(packet.getClass().getName()); + /** chunk = new ChunkRadiusUpdatedPacket(); + chunk.setRadius(Math.max(3, Math.min(packet.getRadius(), 5))); + //PacketHeader ph = new PacketHeader(); + // ph.set + //chunk.setHeader(); + session.sendPacketImmediately(chunk); + + int chunkPositionX = 0; + int chunkPositionZ = 0; + int chunkRadius = 5; + for (int x = -chunkRadius; x < chunkRadius; x++) { + for (int z = -chunkRadius; z < chunkRadius; z++) { + FullChunkDataPacket fullChunk = new FullChunkDataPacket(); + fullChunk.setChunkX(chunkPositionX + x); + fullChunk.setChunkZ(chunkPositionZ + z); + fullChunk.setData(new byte[0]); + session.sendPacketImmediately(fullChunk); + } + } + + PlayStatusPacket play = new PlayStatusPacket(); + play.setStatus(PlayStatusPacket.Status.PLAYER_SPAWN); + session.sendPacketImmediately(play); + + SetTimePacket st = new SetTimePacket(); + st.setTime(0); + session.sendPacketImmediately(st); + return false; **/ + return false; + } + + @Override + public boolean handle(RiderJumpPacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(ServerSettingsRequestPacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(SetDefaultGameTypePacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(SetLocalPlayerAsInitializedPacket packet) { + System.out.println(packet.getClass().getName()); + + session.sendPacketImmediately(UIForms.createMain()); + return false; + } + + @Override + public boolean handle(SetPlayerGameTypePacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(SubClientLoginPacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(TextPacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(AddBehaviorTreePacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(AddEntityPacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(AddHangingEntityPacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(AddItemEntityPacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(AddPaintingPacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(AddPlayerPacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(AvailableCommandsPacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(BlockEventPacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(BossEventPacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(CameraPacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(ChangeDimensionPacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(ChunkRadiusUpdatedPacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(ClientboundMapItemDataPacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(CommandOutputPacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(ContainerOpenPacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(ContainerSetDataPacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(CraftingDataPacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(ExplodePacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(FullChunkDataPacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(GameRulesChangedPacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(GuiDataPickItemPacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(HurtArmorPacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(AutomationClientConnectPacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(LevelEventPacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(MapCreateLockedCopyPacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(MobEffectPacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(ModalFormRequestPacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(MoveEntityDeltaPacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(NpcRequestPacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(OnScreenTextureAnimationPacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(PlayerListPacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(PlaySoundPacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(PlayStatusPacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(RemoveEntityPacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(RemoveObjectivePacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(ResourcePackChunkDataPacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(ResourcePackDataInfoPacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(ResourcePacksInfoPacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(ResourcePackStackPacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(RespawnPacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(ScriptCustomEventPacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(ServerSettingsResponsePacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(ServerToClientHandshakePacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(SetCommandsEnabledPacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(SetDifficultyPacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(SetDisplayObjectivePacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(SetEntityDataPacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(SetEntityLinkPacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(SetEntityMotionPacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(SetHealthPacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(SetLastHurtByPacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(SetScoreboardIdentityPacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(SetScorePacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(SetSpawnPositionPacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(SetTimePacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(SetTitlePacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(ShowCreditsPacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(ShowProfilePacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(ShowStoreOfferPacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(SimpleEventPacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(SpawnExperienceOrbPacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(StartGamePacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(StopSoundPacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(StructureBlockUpdatePacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(TakeItemEntityPacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(TransferPacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(UpdateAttributesPacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(UpdateBlockPacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(UpdateBlockSyncedPacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(UpdateEquipPacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(UpdateSoftEnumPacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(UpdateTradePacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(AvailableEntityIdentifiersPacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(BiomeDefinitionListPacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(LevelSoundEvent2Packet packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(NetworkChunkPublisherUpdatePacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(SpawnParticleEffectPacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + @Override + public boolean handle(VideoStreamConnectPacket packet) { + System.out.println(packet.getClass().getName()); + return false; + } + + public PacketHandler(BedrockServerSession session, Server server) { + this.session = session; + this.server = server; + + session.addDisconnectHandler((Reason) -> disconnect()); + } + + public void disconnect() { + server.removePlayer(player); + } + + private static boolean validateChainData(JsonNode data) throws Exception { + ECPublicKey lastKey = null; + boolean validChain = false; + for (JsonNode node : data) { + JWSObject jwt = JWSObject.parse(node.asText()); + + if (!validChain) { + validChain = verifyJwt(jwt, EncryptionUtils.getMojangPublicKey()); + } + + if (lastKey != null) { + verifyJwt(jwt, lastKey); + } + + JsonNode payloadNode = Server.JSON_MAPPER.readTree(jwt.getPayload().toString()); + JsonNode ipkNode = payloadNode.get("identityPublicKey"); + Preconditions.checkState(ipkNode != null && ipkNode.getNodeType() == JsonNodeType.STRING, "identityPublicKey node is missing in chain"); + lastKey = EncryptionUtils.generateKey(ipkNode.asText()); + } + return validChain; + } + + + private static boolean verifyJwt(JWSObject jwt, ECPublicKey key) throws JOSEException { + return jwt.verify(new DefaultJWSVerifierFactory().createJWSVerifier(jwt.getHeader(), key)); + } + + @Override + public boolean handle(DisconnectPacket packet) { + return false; + } + + @Override + public boolean handle(ResourcePackChunkRequestPacket packet) { + System.out.println("Received Chunk Radius request"); + return false; + } + + @Override + public boolean handle(ResourcePackClientResponsePacket packet) { + switch (packet.getStatus()) { + case COMPLETED: + this.player = this.server.addPlayer(authData, session); + this.player.joinGame(); + break; + case HAVE_ALL_PACKS: + ResourcePackStackPacket rs = new ResourcePackStackPacket(); + rs.setExperimental(false); + rs.setForcedToAccept(false); + session.sendPacketImmediately(rs); + break; + default: + session.disconnect("disconnectionScreen.resourcePack"); + break; + } + + return true; + } + + @Override + public boolean handle(LoginPacket packet) { + int protocolVersion = packet.getProtocolVersion(); + + if (protocolVersion != server.getProtocol()) { + PlayStatusPacket status = new PlayStatusPacket(); + if (protocolVersion > server.getProtocol()) { + status.setStatus(PlayStatusPacket.Status.FAILED_SERVER); + } else { + status.setStatus(PlayStatusPacket.Status.FAILED_CLIENT); + } + session.sendPacket(status); + } + session.setPacketCodec(server.getCodec()); + + JsonNode certData; + try { + certData = Server.JSON_MAPPER.readTree(packet.getChainData().toByteArray()); + } catch (IOException e) { + throw new RuntimeException("Certificate JSON can not be read."); + } + + JsonNode certChainData = certData.get("chain"); + if (certChainData.getNodeType() != JsonNodeType.ARRAY) { + throw new RuntimeException("Certificate data is not valid"); + } + chainData = (ArrayNode) certChainData; + + boolean validChain; + try { + validChain = validateChainData(certChainData); + + JWSObject jwt = JWSObject.parse(certChainData.get(certChainData.size() - 1).asText()); + JsonNode payload = Server.JSON_MAPPER.readTree(jwt.getPayload().toBytes()); + + if (payload.get("extraData").getNodeType() != JsonNodeType.OBJECT) { + throw new RuntimeException("AuthData was not found!"); + } + + extraData = (JSONObject) jwt.getPayload().toJSONObject().get("extraData"); + + this.authData = new AuthData(extraData.getAsString("displayName"), + UUID.fromString(extraData.getAsString("identity")), extraData.getAsString("XUID")); + + if (payload.get("identityPublicKey").getNodeType() != JsonNodeType.STRING) { + throw new RuntimeException("Identity Public Key was not found!"); + } + ECPublicKey identityPublicKey = EncryptionUtils.generateKey(payload.get("identityPublicKey").textValue()); + + JWSObject clientJwt = JWSObject.parse(packet.getSkinData().toString()); + verifyJwt(clientJwt, identityPublicKey); + skinData = clientJwt.getPayload().toJSONObject(); + + System.out.println("Made it through login - " + "User: " + extraData.getAsString("displayName") + " (" + extraData.getAsString("identity") + ")"); + + PlayStatusPacket status = new PlayStatusPacket(); + status.setStatus(PlayStatusPacket.Status.LOGIN_SUCCESS); + session.sendPacketImmediately(status); + + ResourcePacksInfoPacket resourcePacksInfo = new ResourcePacksInfoPacket(); + resourcePacksInfo.setForcedToAccept(false); + session.sendPacketImmediately(resourcePacksInfo); + + //this.player = this.server.addPlayer(authData, session); + //System.out.println(this.player.getProtocol().getProfile().getId()); + + /** MovePlayerPacket mp = new MovePlayerPacket(); + mp.setRuntimeEntityId(-1); + session.sendPacket(mp); + + SetSpawnPositionPacket ss = new SetSpawnPositionPacket(); + ss.setBlockPosition(new Vector3i(0, 0 ,0)); + ss.setSpawnForced(true); + ss.setSpawnType(SetSpawnPositionPacket.Type.PLAYER_SPAWN); + session.sendPacket(ss); + + session.sendPacket(mp); + + SetTimePacket st = new SetTimePacket(); + st.setTime(0); + session.sendPacket(st); + + RespawnPacket rp = new RespawnPacket(); + rp.setPosition(new Vector3f(0, 0 ,0)); + session.sendPacket(rp); **/ + + //MinecraftServer server = ((CraftServer) Bukkit.getServer()).getServer(); + //PlayerList playerList = server.getPlayerList(); + + // GameProfile gameProfile = new GameProfile(UUID.fromString(extraData.getAsString("identity")), extraData.getAsString("displayName")); + + // PipePlayer pl = new PipePlayer(session); + // pl.addEvent(new LoginEvent(gameProfile)); + // this.server.addPlayer(pl); + + + + + //saveSkin(); + } catch (Exception e) { + session.disconnect("disconnectionScreen.internalError.cantConnect"); + throw new RuntimeException("Unable to complete login", e); + } + return true; + } + +}
\ No newline at end of file diff --git a/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/utils/Binary.java b/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/utils/Binary.java new file mode 100644 index 0000000..f27a3ff --- /dev/null +++ b/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/utils/Binary.java @@ -0,0 +1,322 @@ +package main.com.pyratron.pugmatt.bedrockconnect.utils; + +import main.com.pyratron.pugmatt.bedrockconnect.utils.math.NukkitMath; + +import java.nio.ByteBuffer; +import java.util.Arrays; +import java.util.UUID; + +/** + * author: MagicDroidX Nukkit Project + */ +public class Binary { + + public Binary() { + + } + + public static int signByte(int value) { + return value << 56 >> 56; + } + + public static int unsignByte(int value) { + return value & 0xff; + } + + public static int signShort(int value) { + return value << 48 >> 48; + } + + public int unsignShort(int value) { + return value & 0xffff; + } + + public static int signInt(int value) { + return value << 32 >> 32; + } + + public static int unsignInt(int value) { + return value; + } + + // Triad: {0x00,0x00,0x01}<=>1 + public static int readTriad(byte[] bytes) { + return readInt(new byte[]{(byte) 0x00, bytes[0], bytes[1], bytes[2]}); + } + + public static byte[] writeTriad(int value) { + return new byte[]{(byte) ((value >>> 16) & 0xFF), (byte) ((value >>> 8) & 0xFF), (byte) (value & 0xFF)}; + } + + // LTriad: {0x01,0x00,0x00}<=>1 + public static int readLTriad(byte[] bytes) { + return readLInt(new byte[]{bytes[0], bytes[1], bytes[2], (byte) 0x00}); + } + + public static byte[] writeLTriad(int value) { + return new byte[]{(byte) (value & 0xFF), (byte) ((value >>> 8) & 0xFF), (byte) ((value >>> 16) & 0xFF)}; + } + + public static UUID readUUID(byte[] bytes) { + return new UUID(readLLong(bytes), readLLong( + new byte[]{bytes[8], bytes[9], bytes[10], bytes[11], bytes[12], bytes[13], bytes[14], bytes[15]})); + } + + public static byte[] writeUUID(UUID uuid) { + return appendBytes(writeLLong(uuid.getMostSignificantBits()), writeLLong(uuid.getLeastSignificantBits())); + } + + public static boolean readBool(byte b) { + return b == 0; + } + + public static byte writeBool(boolean b) { + return (byte) (b ? 0x01 : 0x00); + } + + public static int readSignedByte(byte b) { + return b & 0xFF; + } + + public static byte writeByte(byte b) { + return b; + } + + public static int readShort(byte[] bytes) { + return ((bytes[0] & 0xFF) << 8) + (bytes[1] & 0xFF); + } + + public static short readSignedShort(byte[] bytes) { + return (short) readShort(bytes); + } + + public static byte[] writeShort(int s) { + return new byte[]{(byte) ((s >>> 8) & 0xFF), (byte) (s & 0xFF)}; + } + + public static int readLShort(byte[] bytes) { + return (bytes[1] & 0xFF << 8) + (bytes[0] & 0xFF); + } + + public static short readSignedLShort(byte[] bytes) { + return (short) readLShort(bytes); + } + + public static byte[] writeLShort(int s) { + s &= 0xffff; + return new byte[]{(byte) (s & 0xFF), (byte) ((s >>> 8) & 0xFF)}; + } + + public static int readInt(byte[] bytes) { + return ((bytes[0] & 0xff) << 24) + ((bytes[1] & 0xff) << 16) + ((bytes[2] & 0xff) << 8) + (bytes[3] & 0xff); + } + + public static byte[] writeInt(int i) { + return new byte[]{(byte) ((i >>> 24) & 0xFF), (byte) ((i >>> 16) & 0xFF), (byte) ((i >>> 8) & 0xFF), + (byte) (i & 0xFF)}; + } + + public static int readLInt(byte[] bytes) { + return ((bytes[3] & 0xff) << 24) + ((bytes[2] & 0xff) << 16) + ((bytes[1] & 0xff) << 8) + (bytes[0] & 0xff); + } + + public static byte[] writeLInt(int i) { + return new byte[]{(byte) (i & 0xFF), (byte) ((i >>> 8) & 0xFF), (byte) ((i >>> 16) & 0xFF), + (byte) ((i >>> 24) & 0xFF)}; + } + + public static float readFloat(byte[] bytes) { + return readFloat(bytes, -1); + } + + public static float readFloat(byte[] bytes, int accuracy) { + float val = Float.intBitsToFloat(readInt(bytes)); + if (accuracy > -1) { + return (float) NukkitMath.round(val, accuracy); + } else { + return val; + } + } + + public static byte[] writeFloat(float f) { + return writeInt(Float.floatToIntBits(f)); + } + + public static float readLFloat(byte[] bytes) { + return readLFloat(bytes, -1); + } + + public static float readLFloat(byte[] bytes, int accuracy) { + float val = Float.intBitsToFloat(readLInt(bytes)); + if (accuracy > -1) { + return (float) NukkitMath.round(val, accuracy); + } else { + return val; + } + } + + public static byte[] writeLFloat(float f) { + return writeLInt(Float.floatToIntBits(f)); + } + + public static double readDouble(byte[] bytes) { + return Double.longBitsToDouble(readLong(bytes)); + } + + public static byte[] writeDouble(double d) { + return writeLong(Double.doubleToLongBits(d)); + } + + public static double readLDouble(byte[] bytes) { + return Double.longBitsToDouble(readLLong(bytes)); + } + + public static byte[] writeLDouble(double d) { + return writeLLong(Double.doubleToLongBits(d)); + } + + public static long readLong(byte[] bytes) { + return (((long) bytes[0] << 56) + ((long) (bytes[1] & 0xFF) << 48) + ((long) (bytes[2] & 0xFF) << 40) + + ((long) (bytes[3] & 0xFF) << 32) + ((long) (bytes[4] & 0xFF) << 24) + ((bytes[5] & 0xFF) << 16) + + ((bytes[6] & 0xFF) << 8) + ((bytes[7] & 0xFF))); + } + + public static byte[] writeLong(long l) { + return new byte[]{(byte) (l >>> 56), (byte) (l >>> 48), (byte) (l >>> 40), (byte) (l >>> 32), + (byte) (l >>> 24), (byte) (l >>> 16), (byte) (l >>> 8), (byte) (l)}; + } + + public static long readLLong(byte[] bytes) { + return (((long) bytes[7] << 56) + ((long) (bytes[6] & 0xFF) << 48) + ((long) (bytes[5] & 0xFF) << 40) + + ((long) (bytes[4] & 0xFF) << 32) + ((long) (bytes[3] & 0xFF) << 24) + ((bytes[2] & 0xFF) << 16) + + ((bytes[1] & 0xFF) << 8) + ((bytes[0] & 0xFF))); + } + + public static byte[] writeLLong(long l) { + return new byte[]{(byte) (l), (byte) (l >>> 8), (byte) (l >>> 16), (byte) (l >>> 24), (byte) (l >>> 32), + (byte) (l >>> 40), (byte) (l >>> 48), (byte) (l >>> 56),}; + } + + public static byte[] writeVarInt(int v) { + BinaryStream stream = new BinaryStream(); + stream.putVarInt(v); + return stream.getBuffer(); + } + + public static byte[] writeUnsignedVarInt(long v) { + BinaryStream stream = new BinaryStream(); + stream.putUnsignedVarInt(v); + return stream.getBuffer(); + } + + public static byte[] reserveBytes(byte[] bytes) { + byte[] newBytes = new byte[bytes.length]; + for (int i = 0; i < bytes.length; i++) { + newBytes[bytes.length - 1 - i] = bytes[i]; + } + return newBytes; + } + + public static String bytesToHexString(byte[] src) { + return bytesToHexString(src, false); + } + + public static String bytesToHexString(byte[] src, boolean blank) { + StringBuilder stringBuilder = new StringBuilder(""); + if (src == null || src.length <= 0) { + return null; + } + + for (byte b : src) { + if (!(stringBuilder.length() == 0) && blank) { + stringBuilder.append(" "); + } + int v = b & 0xFF; + String hv = Integer.toHexString(v); + if (hv.length() < 2) { + stringBuilder.append(0); + } + stringBuilder.append(hv); + } + return stringBuilder.toString().toUpperCase(); + } + + public static byte[] hexStringToBytes(String hexString) { + if (hexString == null || hexString.equals("")) { + return null; + } + String str = "0123456789ABCDEF"; + hexString = hexString.toUpperCase().replace(" ", ""); + int length = hexString.length() / 2; + char[] hexChars = hexString.toCharArray(); + byte[] d = new byte[length]; + for (int i = 0; i < length; i++) { + int pos = i * 2; + d[i] = (byte) (((byte) str.indexOf(hexChars[pos]) << 4) | ((byte) str.indexOf(hexChars[pos + 1]))); + } + return d; + } + + public static byte[] subBytes(byte[] bytes, int start, int length) { + int len = Math.min(bytes.length, start + length); + return Arrays.copyOfRange(bytes, start, len); + } + + public static byte[] subBytes(byte[] bytes, int start) { + return subBytes(bytes, start, bytes.length - start); + } + + public static byte[][] splitBytes(byte[] bytes, int chunkSize) { + byte[][] splits = new byte[(bytes.length + chunkSize - 1) / chunkSize][chunkSize]; + int chunks = 0; + + for (int i = 0; i < bytes.length; i += chunkSize) { + if ((bytes.length - i) > chunkSize) { + splits[chunks] = Arrays.copyOfRange(bytes, i, i + chunkSize); + } else { + splits[chunks] = Arrays.copyOfRange(bytes, i, bytes.length); + } + chunks++; + } + + return splits; + } + + public static byte[] appendBytes(byte[][] bytes) { + int length = 0; + for (byte[] b : bytes) { + length += b.length; + } + ByteBuffer buffer = ByteBuffer.allocate(length); + for (byte[] b : bytes) { + buffer.put(b); + } + return buffer.array(); + } + + public static byte[] appendBytes(byte byte1, byte[]... bytes2) { + int length = 1; + for (byte[] bytes : bytes2) { + length += bytes.length; + } + ByteBuffer buffer = ByteBuffer.allocate(length); + buffer.put(byte1); + for (byte[] bytes : bytes2) { + buffer.put(bytes); + } + return buffer.array(); + } + + public static byte[] appendBytes(byte[] bytes1, byte[]... bytes2) { + int length = bytes1.length; + for (byte[] bytes : bytes2) { + length += bytes.length; + } + ByteBuffer buffer = ByteBuffer.allocate(length); + buffer.put(bytes1); + for (byte[] bytes : bytes2) { + buffer.put(bytes); + } + return buffer.array(); + } +}
\ No newline at end of file diff --git a/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/utils/BinaryStream.java b/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/utils/BinaryStream.java new file mode 100644 index 0000000..a52301e --- /dev/null +++ b/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/utils/BinaryStream.java @@ -0,0 +1,528 @@ +package main.com.pyratron.pugmatt.bedrockconnect.utils; + +import java.nio.charset.StandardCharsets; +import java.util.Arrays; + +/** + * author: MagicDroidX Nukkit Project + */ +public class BinaryStream { + + public int offset; + private byte[] buffer = new byte[32]; + private int count; + + private static final int MAX_ARRAY_SIZE = Integer.MAX_VALUE - 8; + + public BinaryStream() { + this.buffer = new byte[32]; + this.offset = 0; + this.count = 0; + } + + public BinaryStream(byte[] buffer) { + this(buffer, 0); + } + + public BinaryStream(byte[] buffer, int offset) { + this.buffer = buffer; + this.offset = offset; + this.count = buffer.length; + } + + public void reset() { + this.buffer = new byte[32]; + this.offset = 0; + this.count = 0; + } + + public byte[] getBuffer() { + return Arrays.copyOf(buffer, count); + } + + public void setBuffer(byte[] buffer) { + this.buffer = buffer; + this.count = buffer == null ? -1 : buffer.length; + } + + public void setBuffer(byte[] buffer, int offset) { + this.setBuffer(buffer); + this.setOffset(offset); + } + + public int getOffset() { + return offset; + } + + public void setOffset(int offset) { + this.offset = offset; + } + + public int getCount() { + return count; + } + + public byte[] get() { + return this.get(this.count - this.offset); + } + + public byte[] get(int len) { + if (len < 0) { + this.offset = this.count - 1; + return new byte[0]; + } + len = Math.min(len, this.getCount() - this.offset); + this.offset += len; + return Arrays.copyOfRange(this.buffer, this.offset - len, this.offset); + } + + public void put(byte[] bytes) { + if (bytes == null) { + return; + } + + this.ensureCapacity(this.count + bytes.length); + + System.arraycopy(bytes, 0, this.buffer, this.count, bytes.length); + this.count += bytes.length; + } + + public long getLong() { + return Binary.readLong(this.get(8)); + } + + public void putLong(long l) { + this.put(Binary.writeLong(l)); + } + + public int getInt() { + return Binary.readInt(this.get(4)); + } + + public void putInt(int i) { + this.put(Binary.writeInt(i)); + } + + public long getLLong() { + return Binary.readLLong(this.get(8)); + } + + public void putLLong(long l) { + this.put(Binary.writeLLong(l)); + } + + public int getLInt() { + return Binary.readLInt(this.get(4)); + } + + public void putLInt(int i) { + this.put(Binary.writeLInt(i)); + } + + public int getShort() { + return Binary.readShort(this.get(2)); + } + + public void putShort(int s) { + this.put(Binary.writeShort(s)); + } + + public int getLShort() { + return Binary.readLShort(this.get(2)); + } + + public void putLShort(int s) { + this.put(Binary.writeLShort(s)); + } + + public float getFloat() { + return getFloat(-1); + } + + public float getFloat(int accuracy) { + return Binary.readFloat(this.get(4), accuracy); + } + + public void putFloat(float v) { + this.put(Binary.writeFloat(v)); + } + + public float getLFloat() { + return getLFloat(-1); + } + + public float getLFloat(int accuracy) { + return Binary.readLFloat(this.get(4), accuracy); + } + + public void putLFloat(float v) { + this.put(Binary.writeLFloat(v)); + } + + public int getTriad() { + return Binary.readTriad(this.get(3)); + } + + public void putTriad(int triad) { + this.put(Binary.writeTriad(triad)); + } + + public int getLTriad() { + return Binary.readLTriad(this.get(3)); + } + + public void putLTriad(int triad) { + this.put(Binary.writeLTriad(triad)); + } + + public boolean getBoolean() { + return this.getByte() == 0x01; + } + + public void putBoolean(boolean bool) { + this.putByte((byte) (bool ? 1 : 0)); + } + + public int getByte() { + return this.buffer[this.offset++] & 0xff; + } + + public void putByte(byte b) { + this.put(new byte[]{b}); + } + + /** public void putEntityLink(PEEntityLink link) { + putVarLong(link.riding); + putVarLong(link.rider); + putByte(link.type); + putByte(link.unknownByte); + } + +// public PEEntityLink getEntityLink() { +// return new PEEntityLink( +// getVarLong(), +// getVarLong(), +// getByte(), +// getByte()); +// } + + public Map<String, GameRule> getGameRules() { + int count = (int) getUnsignedVarInt(); + Map<String, GameRule> rules = new HashMap<>(); + for (int i = 0; i < count; i++) { + GameRule rule = GameRule.read(this); + rules.put(rule.name, rule); + } + return rules; + } + + public void putGameRules(Map<String, GameRule> rules) { + if (rules == null) { + putUnsignedVarInt(0); + return; + } + putUnsignedVarInt(rules.size()); + for (GameRule rule : rules.values()) { + rule.write(this); + } + } + + public float getByteRotation() { + return (((float) (getByte() & 0xFF)) * (360 / 256)); + } + + public void putByteRotation(float rotation) { + putByte((byte) (((int) (rotation / (360 / 256))) & 0xFF)); + } + + /** + * Reads a list of Attributes from the stream. + * + * @return Attribute[] + */ + /** + public PEEntityAttribute[] getAttributeList() throws Exception { + List<PEEntityAttribute> list = new ArrayList<>(); + long count = this.getUnsignedVarInt(); + + for (int i = 0; i < count; ++i) { + String name = this.getString(); + PEEntityAttribute attr = PEEntityAttribute.findAttribute(name); + if (attr != null) { + attr.min = getLFloat(); + attr.currentValue = getLFloat(); + attr.max = this.getLFloat(); + list.add(attr); + } else { + throw new Exception("Unknown attribute type \"" + name + "\""); + } + } + + return list.stream().toArray(PEEntityAttribute[]::new); + } + /** + + /** + * Writes a list of Attributes to the packet buffer using the standard + * format. + */ + /** + public void putAttributeList(PEEntityAttribute[] attributes) { + this.putUnsignedVarInt(attributes.length); + for (PEEntityAttribute attribute : attributes) { + this.putString(attribute.name); + this.putLFloat(attribute.min); + this.putLFloat(attribute.currentValue); + this.putLFloat(attribute.max); + } + } + + public void putUUID(UUID uuid) { + this.put(Binary.writeUUID(uuid)); + } + + public UUID getUUID() { + return Binary.readUUID(this.get(16)); + } + + public void putSkin(Skin skin) { + this.putString(skin.getModel()); + this.putByteArray(skin.getData()); + this.putByteArray(skin.getCape().getData()); + } + + public Skin getSkin() { + String modelId = this.getString(); + byte[] skinData = this.getByteArray(); + return new Skin(skinData, modelId); + } + + public Slot getSlot() { + int id = this.getVarInt(); + + if (id <= 0) { + return Slot.AIR; + } + int auxValue = this.getVarInt(); + int data = auxValue >> 8; + if (data == Short.MAX_VALUE) { + data = -1; + } + int cnt = auxValue & 0xff; + + int nbtLen = this.getLShort(); + byte[] nbt; + CompoundTag tag = null; + if (nbtLen > 0) { + nbt = this.get(nbtLen); + try { + tag = NBTIO.read(nbt, ByteOrder.LITTLE_ENDIAN, false); + } catch (IOException e) { + e.printStackTrace(); + } + } + + // TODO + int canPlaceOn = this.getVarInt(); + if (canPlaceOn > 0) { + for (int i = 0; i < canPlaceOn; ++i) { + this.getString(); + } + } + + // TODO + int canDestroy = this.getVarInt(); + if (canDestroy > 0) { + for (int i = 0; i < canDestroy; ++i) { + this.getString(); + } + } + + return new Slot(id, data, cnt, tag); + } + + public void putSlot(Slot item) { + if (item == null || item.id == 0) { + this.putVarInt(0); + return; + } + + this.putVarInt(item.id); + int auxValue = ((item.damage & 0x7fff) << 8) | item.count; + this.putVarInt(auxValue); + byte[] nbt; + if (item.tag != null) { + try { + nbt = NBTIO.write(item.tag, ByteOrder.LITTLE_ENDIAN, false); + } catch (IOException e) { + e.printStackTrace(); + nbt = new byte[0]; + } + } else { + nbt = new byte[0]; + } + this.putLShort(nbt.length); + this.put(nbt); + this.putVarInt(0); // TODO CanPlaceOn entry count + this.putVarInt(0); // TODO CanDestroy entry count + } + + **/ + + + public byte[] getByteArray() { + return this.get((int) this.getUnsignedVarInt()); + } + + public void putByteArray(byte[] b) { + this.putUnsignedVarInt(b.length); + this.put(b); + } + + public String getString() { + return new String(this.getByteArray(), StandardCharsets.UTF_8); + } + + public void putString(String string) { + byte[] b = string.getBytes(StandardCharsets.UTF_8); + this.putByteArray(b); + } + + public long getUnsignedVarInt() { + return VarInt.readUnsignedVarInt(this); + } + + public void putUnsignedVarInt(long v) { + VarInt.writeUnsignedVarInt(this, v); + } + + public int getVarInt() { + return VarInt.readVarInt(this); + } + + public void putVarInt(int v) { + VarInt.writeVarInt(this, v); + } + + public long getVarLong() { + return VarInt.readVarLong(this); + } + + public void putVarLong(long v) { + VarInt.writeVarLong(this, v); + } + + public long getUnsignedVarLong() { + return VarInt.readUnsignedVarLong(this); + } + + public void putUnsignedVarLong(long v) { + VarInt.writeUnsignedVarLong(this, v); + } + + /** + public BlockPosition getBlockPosition() { + return new BlockPosition(this.getVarInt(), (int) this.getUnsignedVarInt(), this.getVarInt()); + } + + public BlockPosition getSignedBlockPosition() { + return new BlockPosition(getVarInt(), getVarInt(), getVarInt()); + } + + public void putSignedBlockPosition(BlockPosition v) { + putVarInt(v.x); + putVarInt(v.y); + putVarInt(v.z); + } + + public void putBlockPosition(BlockPosition v) { + this.putBlockPosition(v.x, v.y, v.z); + } + + public void putBlockPosition(int x, int y, int z) { + this.putVarInt(x); + this.putUnsignedVarInt(y); + this.putVarInt(z); + } + + public Vector3F getVector3F() { + return new Vector3F(this.getLFloat(4), this.getLFloat(4), this.getLFloat(4)); + } + + public void putVector3F(Vector3F v) { + if (v == null) { + this.putVector3F(0f, 0f, 0f); + } else { + this.putVector3F(v.x, v.y, v.z); + } + } + + public void putVector3F(float x, float y, float z) { + this.putLFloat(Math.round(x * 10000f) / 10000f); + this.putLFloat(Math.round(y * 10000f) / 10000f); + this.putLFloat(Math.round(z * 10000f) / 10000f); + } + + /** + * Reads and returns an EntityUniqueID + * + * @return int + */ + public long getEntityUniqueId() { + return this.getVarLong(); + } + + /** + * Writes an EntityUniqueID + */ + public void putEntityUniqueId(long eid) { + this.putVarLong(eid); + } + + /** + * Reads and returns an EntityRuntimeID + */ + public long getEntityRuntimeId() { + return this.getUnsignedVarLong(); + } + + /** + * Writes an EntityUniqueID + */ + public void putEntityRuntimeId(long eid) { + this.putUnsignedVarLong(eid); + } + + public boolean feof() { + return this.offset < 0 || this.offset >= this.buffer.length; + } + + private void ensureCapacity(int minCapacity) { + // overflow-conscious code + if (minCapacity - buffer.length > 0) { + grow(minCapacity); + } + } + + private void grow(int minCapacity) { + // overflow-conscious code + int oldCapacity = buffer.length; + int newCapacity = oldCapacity << 1; + + if (newCapacity - minCapacity < 0) { + newCapacity = minCapacity; + } + + if (newCapacity - MAX_ARRAY_SIZE > 0) { + newCapacity = hugeCapacity(minCapacity); + } + this.buffer = Arrays.copyOf(buffer, newCapacity); + } + + private static int hugeCapacity(int minCapacity) { + if (minCapacity < 0) { // overflow + throw new OutOfMemoryError(); + } + return (minCapacity > MAX_ARRAY_SIZE) ? Integer.MAX_VALUE : MAX_ARRAY_SIZE; + } +} diff --git a/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/utils/FixedPlayerListPacket.java b/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/utils/FixedPlayerListPacket.java new file mode 100644 index 0000000..8313681 --- /dev/null +++ b/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/utils/FixedPlayerListPacket.java @@ -0,0 +1,7 @@ +package main.com.pyratron.pugmatt.bedrockconnect.utils; + +import com.nukkitx.protocol.bedrock.packet.PlayerListPacket; + +public class FixedPlayerListPacket extends PlayerListPacket { + +} diff --git a/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/utils/PaletteManager.java b/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/utils/PaletteManager.java new file mode 100644 index 0000000..6c033fc --- /dev/null +++ b/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/utils/PaletteManager.java @@ -0,0 +1,69 @@ +package main.com.pyratron.pugmatt.bedrockconnect.utils; + +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.type.CollectionType; +import com.nukkitx.network.VarInts; +import com.nukkitx.protocol.bedrock.v354.BedrockUtils; +import io.netty.buffer.ByteBuf; +import io.netty.buffer.Unpooled; +import main.com.pyratron.pugmatt.bedrockconnect.BedrockConnect; + +import java.io.InputStream; +import java.util.ArrayList; + +// https://github.com/DragonetMC/DragonProxy/blob/rewrite/proxy/src/main/java/org/dragonet/proxy/util/PaletteManager.java +// Author: lukeeey + +public class PaletteManager { + + private ByteBuf cachedPalette; + + public ByteBuf getCachedPalette() { + return cachedPalette; + } + + public PaletteManager() { + InputStream stream = BedrockConnect.class.getClassLoader().getResourceAsStream("tables/runtimeid_table.json"); + if (stream == null) { + throw new AssertionError("Static Runtime ID table not found"); + } + + ObjectMapper mapper = new ObjectMapper(); + CollectionType type = mapper.getTypeFactory().constructCollectionType(ArrayList.class, RuntimeEntry.class); + + ArrayList<RuntimeEntry> entries = new ArrayList<>(); + try { + entries = mapper.readValue(stream, type); + } catch (Exception e) { + e.printStackTrace(); + } + + cachedPalette = Unpooled.buffer(); + + VarInts.writeInt(cachedPalette, entries.size()); + + for (RuntimeEntry entry : entries) { + BedrockUtils.writeString(cachedPalette, entry.name); + cachedPalette.writeShortLE(entry.data); + } + + } + + private static class RuntimeEntry { + @JsonProperty("name") + private String name; + @JsonProperty("id") + private int id; + @JsonProperty("data") + private int data; + + public RuntimeEntry() {} + + public RuntimeEntry(String name, int id, int data) { + this.id = id; + this.name = name; + this.data = data; + } + } +} diff --git a/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/utils/VarInt.java b/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/utils/VarInt.java new file mode 100644 index 0000000..ad5ec7e --- /dev/null +++ b/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/utils/VarInt.java @@ -0,0 +1,235 @@ +package main.com.pyratron.pugmatt.bedrockconnect.utils; + +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; + +/** + * Tool class for VarInt or VarLong operations. + * <p> + * Some code from http://wiki.vg/Protocol. + * + * @author MagicDroidX + * @author lmlstarqaq + */ +public final class VarInt { + + private VarInt() { + // no instance + } + + /** + * @param v Signed int + * @return Unsigned encoded int + */ + public static long encodeZigZag32(int v) { + // Note: the right-shift must be arithmetic + return (long) ((v << 1) ^ (v >> 31)); + } + + /** + * @param v Unsigned encoded int + * @return Signed decoded int + */ + public static int decodeZigZag32(long v) { + return (int) (v >> 1) ^ -(int) (v & 1); + } + + /** + * @param v Signed long + * @return Unsigned encoded long + */ + public static long encodeZigZag64(long v) { + return (v << 1) ^ (v >> 63); + } + + /** + * @param v Signed encoded long + * @return Unsigned decoded long + */ + public static long decodeZigZag64(long v) { + return (v >>> 1) ^ -(v & 1); + } + + /** + * @param stream BinaryStream + * @return Signed int + */ + public static int readVarInt(BinaryStream stream) { + return decodeZigZag32(readUnsignedVarInt(stream)); + } + + /** + * @param stream InputStream + * @return Signed int + */ + public static int readVarInt(InputStream stream) throws IOException { + return decodeZigZag32(readUnsignedVarInt(stream)); + } + + /** + * @param stream BinaryStream + * @return Unsigned int + */ + public static long readUnsignedVarInt(BinaryStream stream) { + return read(stream, 5); + } + + /** + * @param stream InputStream + * @return Unsigned int + */ + public static long readUnsignedVarInt(InputStream stream) throws IOException { + return read(stream, 5); + } + + /** + * @param stream BinaryStream + * @return Signed long + */ + public static long readVarLong(BinaryStream stream) { + return decodeZigZag64(readUnsignedVarLong(stream)); + } + + /** + * @param stream InputStream + * @return Signed long + */ + public static long readVarLong(InputStream stream) throws IOException { + return decodeZigZag64(readUnsignedVarLong(stream)); + } + + /** + * @param stream BinaryStream + * @return Unsigned long + */ + public static long readUnsignedVarLong(BinaryStream stream) { + return read(stream, 10); + } + + /** + * @param stream InputStream + * @return Unsigned long + */ + public static long readUnsignedVarLong(InputStream stream) throws IOException { + return read(stream, 10); + } + + /** + * @param stream BinaryStream + * @param value Signed int + */ + public static void writeVarInt(BinaryStream stream, int value) { + writeUnsignedVarInt(stream, encodeZigZag32(value)); + } + + /** + * @param stream OutputStream + * @param value Signed int + */ + public static void writeVarInt(OutputStream stream, int value) throws IOException { + writeUnsignedVarInt(stream, encodeZigZag32(value)); + } + + /** + * @param stream BinaryStream + * @param value Unsigned int + */ + public static void writeUnsignedVarInt(BinaryStream stream, long value) { + write(stream, value); + } + + /** + * @param stream OutputStream + * @param value Unsigned int + */ + public static void writeUnsignedVarInt(OutputStream stream, long value) throws IOException { + write(stream, value); + } + + /** + * @param stream BinaryStream + * @param value Signed long + */ + public static void writeVarLong(BinaryStream stream, long value) { + writeUnsignedVarLong(stream, encodeZigZag64(value)); + } + + /** + * @param stream OutputStream + * @param value Signed long + */ + public static void writeVarLong(OutputStream stream, long value) throws IOException { + writeUnsignedVarLong(stream, encodeZigZag64(value)); + } + + /** + * @param stream BinaryStream + * @param value Unsigned long + */ + public static void writeUnsignedVarLong(BinaryStream stream, long value) { + write(stream, value); + } + + /** + * @param stream OutputStream + * @param value Unsigned long + */ + public static void writeUnsignedVarLong(OutputStream stream, long value) throws IOException { + write(stream, value); + } + + private static long read(BinaryStream stream, int maxSize) { + long value = 0; + int size = 0; + int b; + while (((b = stream.getByte()) & 0x80) == 0x80) { + value |= (long) (b & 0x7F) << (size++ * 7); + if (size >= maxSize) { + throw new IllegalArgumentException("VarLong too big"); + } + } + + return value | ((long) (b & 0x7F) << (size * 7)); + } + + private static long read(InputStream stream, int maxSize) throws IOException { + long value = 0; + int size = 0; + int b; + while (((b = stream.read()) & 0x80) == 0x80) { + value |= (long) (b & 0x7F) << (size++ * 7); + if (size >= maxSize) { + throw new IllegalArgumentException("VarLong too big"); + } + } + + return value | ((long) (b & 0x7F) << (size * 7)); + } + + private static void write(BinaryStream stream, long value) { + do { + byte temp = (byte) (value & 0b01111111); + // Note: >>> means that the sign bit is shifted with the rest of the number + // rather than being left alone + value >>>= 7; + if (value != 0) { + temp |= 0b10000000; + } + stream.putByte(temp); + } while (value != 0); + } + + private static void write(OutputStream stream, long value) throws IOException { + do { + byte temp = (byte) (value & 0b01111111); + // Note: >>> means that the sign bit is shifted with the rest of the number + // rather than being left alone + value >>>= 7; + if (value != 0) { + temp |= 0b10000000; + } + stream.write(temp); + } while (value != 0); + } +}
\ No newline at end of file diff --git a/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/utils/math/NukkitMath.java b/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/utils/math/NukkitMath.java new file mode 100644 index 0000000..a7445df --- /dev/null +++ b/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/utils/math/NukkitMath.java @@ -0,0 +1,67 @@ +package main.com.pyratron.pugmatt.bedrockconnect.utils.math; + +/** + * author: MagicDroidX Nukkit Project + */ +public class NukkitMath { + + public NukkitMath() { + + } + + public static int floorDouble(double n) { + int i = (int) n; + return n >= i ? i : i - 1; + } + + public static int ceilDouble(double n) { + int i = (int) (n + 1); + return n >= i ? i : i - 1; + } + + public static int floorFloat(float n) { + int i = (int) n; + return n >= i ? i : i - 1; + } + + public static int ceilFloat(float n) { + int i = (int) (n + 1); + return n >= i ? i : i - 1; + } + + public static int randomRange(NukkitRandom random) { + return randomRange(random, 0); + } + + public static int randomRange(NukkitRandom random, int start) { + return randomRange(random, 0, 0x7fffffff); + } + + public static int randomRange(NukkitRandom random, int start, int end) { + return start + (random.nextInt() % (end + 1 - start)); + } + + public static double round(double d) { + return round(d, 0); + } + + public static double round(double d, int precision) { + return ((double) Math.round(d * Math.pow(10, precision))) / Math.pow(10, precision); + } + + public static double clamp(double check, double min, double max) { + return check > max ? max : (check < min ? min : check); + } + + public static double getDirection(double d0, double d1) { + if (d0 < 0.0D) { + d0 = -d0; + } + + if (d1 < 0.0D) { + d1 = -d1; + } + + return d0 > d1 ? d0 : d1; + } +}
\ No newline at end of file diff --git a/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/utils/math/NukkitRandom.java b/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/utils/math/NukkitRandom.java new file mode 100644 index 0000000..013eb1f --- /dev/null +++ b/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/utils/math/NukkitRandom.java @@ -0,0 +1,79 @@ +package main.com.pyratron.pugmatt.bedrockconnect.utils.math; + +import java.nio.ByteBuffer; +import java.nio.ByteOrder; +import java.util.zip.CRC32; + +/** + * author: Angelic47 Nukkit Project + */ +public class NukkitRandom { + + protected long seed; + + // constructor + public NukkitRandom() { + this(-1); + } + + public NukkitRandom(long seeds) { + if (seeds == -1) { + seeds = System.currentTimeMillis() / 1000L; + } + this.setSeed(seeds); + } + + public void setSeed(long seeds) { + CRC32 crc32 = new CRC32(); + ByteBuffer buffer = ByteBuffer.allocate(4).order(ByteOrder.BIG_ENDIAN); + buffer.putInt((int) seeds); + crc32.update(buffer.array()); + this.seed = crc32.getValue(); + } + + public int nextSignedInt() { + int t = (((int) ((this.seed * 65535) + 31337) >> 8) + 1337); + this.seed ^= t; + return t; + } + + public int nextInt() { + return this.nextSignedInt() & 0x7fffffff; + } + + public double nextDouble() { + return (double) this.nextInt() / 0x7fffffff; + } + + public float nextFloat() { + return (float) this.nextInt() / 0x7fffffff; + } + + public float nextSignedFloat() { + return (float) this.nextInt() / 0x7fffffff; + } + + public double nextSignedDouble() { + return (double) this.nextSignedInt() / 0x7fffffff; + } + + public boolean nextBoolean() { + return (this.nextSignedInt() & 0x01) == 0; + } + + public int nextRange() { + return nextRange(0, 0x7fffffff); + } + + public int nextRange(int start) { + return nextRange(start, 0x7fffffff); + } + + public int nextRange(int start, int end) { + return start + (this.nextInt() % (end + 1 - start)); + } + + public int nextBoundedInt(int bound) { + return this.nextInt() % bound; + } +}
\ No newline at end of file diff --git a/serverlist-server/src/main/resources/plugin.yml b/serverlist-server/src/main/resources/plugin.yml new file mode 100644 index 0000000..54aac41 --- /dev/null +++ b/serverlist-server/src/main/resources/plugin.yml @@ -0,0 +1,5 @@ +name: BedrockConnect +version: 0.0.5 +author: Pugmatt +main: main.com.pyratron.pugmatt.bedrockconnect.BedrockConnect +api-version: 1.13 diff --git a/serverlist-server/src/main/resources/tables/biome_definitions.dat b/serverlist-server/src/main/resources/tables/biome_definitions.dat Binary files differnew file mode 100644 index 0000000..015a265 --- /dev/null +++ b/serverlist-server/src/main/resources/tables/biome_definitions.dat diff --git a/serverlist-server/src/main/resources/tables/creative_items.json b/serverlist-server/src/main/resources/tables/creative_items.json new file mode 100644 index 0000000..6007398 --- /dev/null +++ b/serverlist-server/src/main/resources/tables/creative_items.json @@ -0,0 +1,4157 @@ +[ + { + "id" : 5 + }, + { + "id" : 5, + "damage" : 1 + }, + { + "id" : 5, + "damage" : 2 + }, + { + "id" : 5, + "damage" : 3 + }, + { + "id" : 5, + "damage" : 4 + }, + { + "id" : 5, + "damage" : 5 + }, + { + "id" : 139 + }, + { + "id" : 139, + "damage" : 1 + }, + { + "id" : 139, + "damage" : 2 + }, + { + "id" : 139, + "damage" : 3 + }, + { + "id" : 139, + "damage" : 4 + }, + { + "id" : 139, + "damage" : 5 + }, + { + "id" : 139, + "damage" : 12 + }, + { + "id" : 139, + "damage" : 7 + }, + { + "id" : 139, + "damage" : 8 + }, + { + "id" : 139, + "damage" : 6 + }, + { + "id" : 139, + "damage" : 9 + }, + { + "id" : 139, + "damage" : 13 + }, + { + "id" : 139, + "damage" : 10 + }, + { + "id" : 139, + "damage" : 11 + }, + { + "id" : 85 + }, + { + "id" : 85, + "damage" : 1 + }, + { + "id" : 85, + "damage" : 2 + }, + { + "id" : 85, + "damage" : 3 + }, + { + "id" : 85, + "damage" : 4 + }, + { + "id" : 85, + "damage" : 5 + }, + { + "id" : 113 + }, + { + "id" : 107 + }, + { + "id" : 183 + }, + { + "id" : 184 + }, + { + "id" : 185 + }, + { + "id" : 187 + }, + { + "id" : 186 + }, + { + "id" : -180 + }, + { + "id" : 67 + }, + { + "id" : -179 + }, + { + "id" : 53 + }, + { + "id" : 134 + }, + { + "id" : 135 + }, + { + "id" : 136 + }, + { + "id" : 163 + }, + { + "id" : 164 + }, + { + "id" : 109 + }, + { + "id" : -175 + }, + { + "id" : 128 + }, + { + "id" : -177 + }, + { + "id" : 180 + }, + { + "id" : -176 + }, + { + "id" : -169 + }, + { + "id" : -172 + }, + { + "id" : -170 + }, + { + "id" : -173 + }, + { + "id" : -171 + }, + { + "id" : -174 + }, + { + "id" : 108 + }, + { + "id" : 114 + }, + { + "id" : -184 + }, + { + "id" : -178 + }, + { + "id" : 156 + }, + { + "id" : -185 + }, + { + "id" : 203 + }, + { + "id" : -2 + }, + { + "id" : -3 + }, + { + "id" : -4 + }, + { + "id" : 324 + }, + { + "id" : 427 + }, + { + "id" : 428 + }, + { + "id" : 429 + }, + { + "id" : 430 + }, + { + "id" : 431 + }, + { + "id" : 330 + }, + { + "id" : 96 + }, + { + "id" : -149 + }, + { + "id" : -146 + }, + { + "id" : -148 + }, + { + "id" : -145 + }, + { + "id" : -147 + }, + { + "id" : 167 + }, + { + "id" : 101 + }, + { + "id" : 20 + }, + { + "id" : 241 + }, + { + "id" : 241, + "damage" : 8 + }, + { + "id" : 241, + "damage" : 7 + }, + { + "id" : 241, + "damage" : 15 + }, + { + "id" : 241, + "damage" : 12 + }, + { + "id" : 241, + "damage" : 14 + }, + { + "id" : 241, + "damage" : 1 + }, + { + "id" : 241, + "damage" : 4 + }, + { + "id" : 241, + "damage" : 5 + }, + { + "id" : 241, + "damage" : 13 + }, + { + "id" : 241, + "damage" : 9 + }, + { + "id" : 241, + "damage" : 3 + }, + { + "id" : 241, + "damage" : 11 + }, + { + "id" : 241, + "damage" : 10 + }, + { + "id" : 241, + "damage" : 2 + }, + { + "id" : 241, + "damage" : 6 + }, + { + "id" : 102 + }, + { + "id" : 160 + }, + { + "id" : 160, + "damage" : 8 + }, + { + "id" : 160, + "damage" : 7 + }, + { + "id" : 160, + "damage" : 15 + }, + { + "id" : 160, + "damage" : 12 + }, + { + "id" : 160, + "damage" : 14 + }, + { + "id" : 160, + "damage" : 1 + }, + { + "id" : 160, + "damage" : 4 + }, + { + "id" : 160, + "damage" : 5 + }, + { + "id" : 160, + "damage" : 13 + }, + { + "id" : 160, + "damage" : 9 + }, + { + "id" : 160, + "damage" : 3 + }, + { + "id" : 160, + "damage" : 11 + }, + { + "id" : 160, + "damage" : 10 + }, + { + "id" : 160, + "damage" : 2 + }, + { + "id" : 160, + "damage" : 6 + }, + { + "id" : 65 + }, + { + "id" : -165 + }, + { + "id" : 44 + }, + { + "id" : -166, + "damage" : 2 + }, + { + "id" : 44, + "damage" : 3 + }, + { + "id" : 182, + "damage" : 5 + }, + { + "id" : 158 + }, + { + "id" : 158, + "damage" : 1 + }, + { + "id" : 158, + "damage" : 2 + }, + { + "id" : 158, + "damage" : 3 + }, + { + "id" : 158, + "damage" : 4 + }, + { + "id" : 158, + "damage" : 5 + }, + { + "id" : 44, + "damage" : 5 + }, + { + "id" : -166 + }, + { + "id" : 44, + "damage" : 1 + }, + { + "id" : -166, + "damage" : 3 + }, + { + "id" : 182, + "damage" : 6 + }, + { + "id" : 182 + }, + { + "id" : -166, + "damage" : 4 + }, + { + "id" : -162, + "damage" : 1 + }, + { + "id" : -162, + "damage" : 6 + }, + { + "id" : -162, + "damage" : 7 + }, + { + "id" : -162, + "damage" : 4 + }, + { + "id" : -162, + "damage" : 5 + }, + { + "id" : -162, + "damage" : 3 + }, + { + "id" : -162, + "damage" : 2 + }, + { + "id" : 44, + "damage" : 4 + }, + { + "id" : 44, + "damage" : 7 + }, + { + "id" : 182, + "damage" : 7 + }, + { + "id" : -162 + }, + { + "id" : 44, + "damage" : 6 + }, + { + "id" : -166, + "damage" : 1 + }, + { + "id" : 182, + "damage" : 1 + }, + { + "id" : 182, + "damage" : 2 + }, + { + "id" : 182, + "damage" : 3 + }, + { + "id" : 182, + "damage" : 4 + }, + { + "id" : 45 + }, + { + "id" : 98 + }, + { + "id" : 98, + "damage" : 1 + }, + { + "id" : 98, + "damage" : 2 + }, + { + "id" : 98, + "damage" : 3 + }, + { + "id" : 206 + }, + { + "id" : 168, + "damage" : 2 + }, + { + "id" : 4 + }, + { + "id" : 48 + }, + { + "id" : -183 + }, + { + "id" : 24 + }, + { + "id" : 24, + "damage" : 1 + }, + { + "id" : 24, + "damage" : 2 + }, + { + "id" : 24, + "damage" : 3 + }, + { + "id" : 179 + }, + { + "id" : 179, + "damage" : 1 + }, + { + "id" : 179, + "damage" : 2 + }, + { + "id" : 179, + "damage" : 3 + }, + { + "id" : 173 + }, + { + "id" : -139 + }, + { + "id" : 41 + }, + { + "id" : 42 + }, + { + "id" : 133 + }, + { + "id" : 57 + }, + { + "id" : 22 + }, + { + "id" : 155 + }, + { + "id" : 155, + "damage" : 2 + }, + { + "id" : 155, + "damage" : 1 + }, + { + "id" : 155, + "damage" : 3 + }, + { + "id" : 168 + }, + { + "id" : 168, + "damage" : 1 + }, + { + "id" : 165 + }, + { + "id" : 170 + }, + { + "id" : 216 + }, + { + "id" : 214 + }, + { + "id" : 112 + }, + { + "id" : 215 + }, + { + "id" : 35 + }, + { + "id" : 35, + "damage" : 8 + }, + { + "id" : 35, + "damage" : 7 + }, + { + "id" : 35, + "damage" : 15 + }, + { + "id" : 35, + "damage" : 12 + }, + { + "id" : 35, + "damage" : 14 + }, + { + "id" : 35, + "damage" : 1 + }, + { + "id" : 35, + "damage" : 4 + }, + { + "id" : 35, + "damage" : 5 + }, + { + "id" : 35, + "damage" : 13 + }, + { + "id" : 35, + "damage" : 9 + }, + { + "id" : 35, + "damage" : 3 + }, + { + "id" : 35, + "damage" : 11 + }, + { + "id" : 35, + "damage" : 10 + }, + { + "id" : 35, + "damage" : 2 + }, + { + "id" : 35, + "damage" : 6 + }, + { + "id" : 171 + }, + { + "id" : 171, + "damage" : 8 + }, + { + "id" : 171, + "damage" : 7 + }, + { + "id" : 171, + "damage" : 15 + }, + { + "id" : 171, + "damage" : 12 + }, + { + "id" : 171, + "damage" : 14 + }, + { + "id" : 171, + "damage" : 1 + }, + { + "id" : 171, + "damage" : 4 + }, + { + "id" : 171, + "damage" : 5 + }, + { + "id" : 171, + "damage" : 13 + }, + { + "id" : 171, + "damage" : 9 + }, + { + "id" : 171, + "damage" : 3 + }, + { + "id" : 171, + "damage" : 11 + }, + { + "id" : 171, + "damage" : 10 + }, + { + "id" : 171, + "damage" : 2 + }, + { + "id" : 171, + "damage" : 6 + }, + { + "id" : 237 + }, + { + "id" : 237, + "damage" : 8 + }, + { + "id" : 237, + "damage" : 7 + }, + { + "id" : 237, + "damage" : 15 + }, + { + "id" : 237, + "damage" : 12 + }, + { + "id" : 237, + "damage" : 14 + }, + { + "id" : 237, + "damage" : 1 + }, + { + "id" : 237, + "damage" : 4 + }, + { + "id" : 237, + "damage" : 5 + }, + { + "id" : 237, + "damage" : 13 + }, + { + "id" : 237, + "damage" : 9 + }, + { + "id" : 237, + "damage" : 3 + }, + { + "id" : 237, + "damage" : 11 + }, + { + "id" : 237, + "damage" : 10 + }, + { + "id" : 237, + "damage" : 2 + }, + { + "id" : 237, + "damage" : 6 + }, + { + "id" : 236 + }, + { + "id" : 236, + "damage" : 8 + }, + { + "id" : 236, + "damage" : 7 + }, + { + "id" : 236, + "damage" : 15 + }, + { + "id" : 236, + "damage" : 12 + }, + { + "id" : 236, + "damage" : 14 + }, + { + "id" : 236, + "damage" : 1 + }, + { + "id" : 236, + "damage" : 4 + }, + { + "id" : 236, + "damage" : 5 + }, + { + "id" : 236, + "damage" : 13 + }, + { + "id" : 236, + "damage" : 9 + }, + { + "id" : 236, + "damage" : 3 + }, + { + "id" : 236, + "damage" : 11 + }, + { + "id" : 236, + "damage" : 10 + }, + { + "id" : 236, + "damage" : 2 + }, + { + "id" : 236, + "damage" : 6 + }, + { + "id" : 82 + }, + { + "id" : 172 + }, + { + "id" : 159 + }, + { + "id" : 159, + "damage" : 8 + }, + { + "id" : 159, + "damage" : 7 + }, + { + "id" : 159, + "damage" : 15 + }, + { + "id" : 159, + "damage" : 12 + }, + { + "id" : 159, + "damage" : 14 + }, + { + "id" : 159, + "damage" : 1 + }, + { + "id" : 159, + "damage" : 4 + }, + { + "id" : 159, + "damage" : 5 + }, + { + "id" : 159, + "damage" : 13 + }, + { + "id" : 159, + "damage" : 9 + }, + { + "id" : 159, + "damage" : 3 + }, + { + "id" : 159, + "damage" : 11 + }, + { + "id" : 159, + "damage" : 10 + }, + { + "id" : 159, + "damage" : 2 + }, + { + "id" : 159, + "damage" : 6 + }, + { + "id" : 220 + }, + { + "id" : 228 + }, + { + "id" : 227 + }, + { + "id" : 235 + }, + { + "id" : 232 + }, + { + "id" : 234 + }, + { + "id" : 221 + }, + { + "id" : 224 + }, + { + "id" : 225 + }, + { + "id" : 233 + }, + { + "id" : 229 + }, + { + "id" : 223 + }, + { + "id" : 231 + }, + { + "id" : 219 + }, + { + "id" : 222 + }, + { + "id" : 226 + }, + { + "id" : 201 + }, + { + "id" : 201, + "damage" : 2 + }, + { + "id" : 3 + }, + { + "id" : 3, + "damage" : 1 + }, + { + "id" : 2 + }, + { + "id" : 243 + }, + { + "id" : 110 + }, + { + "id" : 1 + }, + { + "id" : 15 + }, + { + "id" : 14 + }, + { + "id" : 56 + }, + { + "id" : 21 + }, + { + "id" : 73 + }, + { + "id" : 16 + }, + { + "id" : 129 + }, + { + "id" : 153 + }, + { + "id" : 13 + }, + { + "id" : 1, + "damage" : 1 + }, + { + "id" : 1, + "damage" : 3 + }, + { + "id" : 1, + "damage" : 5 + }, + { + "id" : 1, + "damage" : 2 + }, + { + "id" : 1, + "damage" : 4 + }, + { + "id" : 1, + "damage" : 6 + }, + { + "id" : 12 + }, + { + "id" : 12, + "damage" : 1 + }, + { + "id" : 81 + }, + { + "id" : 17 + }, + { + "id" : -10 + }, + { + "id" : 17, + "damage" : 1 + }, + { + "id" : -5 + }, + { + "id" : 17, + "damage" : 2 + }, + { + "id" : -6 + }, + { + "id" : 17, + "damage" : 3 + }, + { + "id" : -7 + }, + { + "id" : 162 + }, + { + "id" : -8 + }, + { + "id" : 162, + "damage" : 1 + }, + { + "id" : -9 + }, + { + "id" : -212 + }, + { + "id" : -212, + "damage" : 8 + }, + { + "id" : -212, + "damage" : 1 + }, + { + "id" : -212, + "damage" : 9 + }, + { + "id" : -212, + "damage" : 2 + }, + { + "id" : -212, + "damage" : 10 + }, + { + "id" : -212, + "damage" : 3 + }, + { + "id" : -212, + "damage" : 11 + }, + { + "id" : -212, + "damage" : 4 + }, + { + "id" : -212, + "damage" : 12 + }, + { + "id" : -212, + "damage" : 5 + }, + { + "id" : -212, + "damage" : 13 + }, + { + "id" : 18 + }, + { + "id" : 18, + "damage" : 1 + }, + { + "id" : 18, + "damage" : 2 + }, + { + "id" : 18, + "damage" : 3 + }, + { + "id" : 161 + }, + { + "id" : 161, + "damage" : 1 + }, + { + "id" : 6 + }, + { + "id" : 6, + "damage" : 1 + }, + { + "id" : 6, + "damage" : 2 + }, + { + "id" : 6, + "damage" : 3 + }, + { + "id" : 6, + "damage" : 4 + }, + { + "id" : 6, + "damage" : 5 + }, + { + "id" : 295 + }, + { + "id" : 361 + }, + { + "id" : 362 + }, + { + "id" : 458 + }, + { + "id" : 296 + }, + { + "id" : 457 + }, + { + "id" : 392 + }, + { + "id" : 394 + }, + { + "id" : 391 + }, + { + "id" : 396 + }, + { + "id" : 260 + }, + { + "id" : 322 + }, + { + "id" : 466 + }, + { + "id" : 103 + }, + { + "id" : 360 + }, + { + "id" : 382 + }, + { + "id" : 477 + }, + { + "id" : 86 + }, + { + "id" : -155 + }, + { + "id" : 91 + }, + { + "id" : 31, + "damage" : 2 + }, + { + "id" : 175, + "damage" : 3 + }, + { + "id" : 31, + "damage" : 1 + }, + { + "id" : 175, + "damage" : 2 + }, + { + "id" : -131, + "damage" : 3 + }, + { + "id" : -131, + "damage" : 1 + }, + { + "id" : -131, + "damage" : 2 + }, + { + "id" : -131 + }, + { + "id" : -131, + "damage" : 4 + }, + { + "id" : -133, + "damage" : 3 + }, + { + "id" : -133, + "damage" : 1 + }, + { + "id" : -133, + "damage" : 2 + }, + { + "id" : -133 + }, + { + "id" : -133, + "damage" : 4 + }, + { + "id" : -134, + "damage" : 3 + }, + { + "id" : -134, + "damage" : 1 + }, + { + "id" : -134, + "damage" : 2 + }, + { + "id" : -134 + }, + { + "id" : -134, + "damage" : 4 + }, + { + "id" : 335 + }, + { + "id" : -130 + }, + { + "id" : 37 + }, + { + "id" : 38 + }, + { + "id" : 38, + "damage" : 1 + }, + { + "id" : 38, + "damage" : 2 + }, + { + "id" : 38, + "damage" : 3 + }, + { + "id" : 38, + "damage" : 4 + }, + { + "id" : 38, + "damage" : 5 + }, + { + "id" : 38, + "damage" : 6 + }, + { + "id" : 38, + "damage" : 7 + }, + { + "id" : 38, + "damage" : 8 + }, + { + "id" : 38, + "damage" : 9 + }, + { + "id" : 38, + "damage" : 10 + }, + { + "id" : 175 + }, + { + "id" : 175, + "damage" : 1 + }, + { + "id" : 175, + "damage" : 4 + }, + { + "id" : 175, + "damage" : 5 + }, + { + "id" : 351, + "damage" : 19 + }, + { + "id" : 351, + "damage" : 7 + }, + { + "id" : 351, + "damage" : 8 + }, + { + "id" : 351, + "damage" : 16 + }, + { + "id" : 351, + "damage" : 17 + }, + { + "id" : 351, + "damage" : 1 + }, + { + "id" : 351, + "damage" : 14 + }, + { + "id" : 351, + "damage" : 11 + }, + { + "id" : 351, + "damage" : 10 + }, + { + "id" : 351, + "damage" : 2 + }, + { + "id" : 351, + "damage" : 6 + }, + { + "id" : 351, + "damage" : 12 + }, + { + "id" : 351, + "damage" : 18 + }, + { + "id" : 351, + "damage" : 5 + }, + { + "id" : 351, + "damage" : 13 + }, + { + "id" : 351, + "damage" : 9 + }, + { + "id" : 351 + }, + { + "id" : 351, + "damage" : 3 + }, + { + "id" : 351, + "damage" : 4 + }, + { + "id" : 351, + "damage" : 15 + }, + { + "id" : 106 + }, + { + "id" : 111 + }, + { + "id" : 32 + }, + { + "id" : -163 + }, + { + "id" : 80 + }, + { + "id" : 79 + }, + { + "id" : 174 + }, + { + "id" : -11 + }, + { + "id" : 78 + }, + { + "id" : 365 + }, + { + "id" : 319 + }, + { + "id" : 363 + }, + { + "id" : 423 + }, + { + "id" : 411 + }, + { + "id" : 349 + }, + { + "id" : 460 + }, + { + "id" : 461 + }, + { + "id" : 462 + }, + { + "id" : 39 + }, + { + "id" : 40 + }, + { + "id" : 99, + "damage" : 14 + }, + { + "id" : 100, + "damage" : 14 + }, + { + "id" : 99, + "damage" : 15 + }, + { + "id" : 99 + }, + { + "id" : 344 + }, + { + "id" : 338 + }, + { + "id" : 353 + }, + { + "id" : 367 + }, + { + "id" : 352 + }, + { + "id" : 30 + }, + { + "id" : 375 + }, + { + "id" : 52 + }, + { + "id" : 97 + }, + { + "id" : 97, + "damage" : 1 + }, + { + "id" : 97, + "damage" : 2 + }, + { + "id" : 97, + "damage" : 3 + }, + { + "id" : 97, + "damage" : 4 + }, + { + "id" : 97, + "damage" : 5 + }, + { + "id" : 122 + }, + { + "id" : -159 + }, + { + "id" : 383, + "damage" : 10 + }, + { + "id" : 383, + "damage" : 11 + }, + { + "id" : 383, + "damage" : 12 + }, + { + "id" : 383, + "damage" : 13 + }, + { + "id" : 383, + "damage" : 14 + }, + { + "id" : 383, + "damage" : 28 + }, + { + "id" : 383, + "damage" : 22 + }, + { + "id" : 383, + "damage" : 75 + }, + { + "id" : 383, + "damage" : 16 + }, + { + "id" : 383, + "damage" : 19 + }, + { + "id" : 383, + "damage" : 30 + }, + { + "id" : 383, + "damage" : 18 + }, + { + "id" : 383, + "damage" : 29 + }, + { + "id" : 383, + "damage" : 23 + }, + { + "id" : 383, + "damage" : 24 + }, + { + "id" : 383, + "damage" : 25 + }, + { + "id" : 383, + "damage" : 26 + }, + { + "id" : 383, + "damage" : 27 + }, + { + "id" : 383, + "damage" : 111 + }, + { + "id" : 383, + "damage" : 112 + }, + { + "id" : 383, + "damage" : 108 + }, + { + "id" : 383, + "damage" : 109 + }, + { + "id" : 383, + "damage" : 31 + }, + { + "id" : 383, + "damage" : 74 + }, + { + "id" : 383, + "damage" : 113 + }, + { + "id" : 383, + "damage" : 33 + }, + { + "id" : 383, + "damage" : 38 + }, + { + "id" : 383, + "damage" : 39 + }, + { + "id" : 383, + "damage" : 34 + }, + { + "id" : 383, + "damage" : 48 + }, + { + "id" : 383, + "damage" : 46 + }, + { + "id" : 383, + "damage" : 37 + }, + { + "id" : 383, + "damage" : 35 + }, + { + "id" : 383, + "damage" : 32 + }, + { + "id" : 383, + "damage" : 36 + }, + { + "id" : 383, + "damage" : 47 + }, + { + "id" : 383, + "damage" : 110 + }, + { + "id" : 383, + "damage" : 17 + }, + { + "id" : 383, + "damage" : 40 + }, + { + "id" : 383, + "damage" : 45 + }, + { + "id" : 383, + "damage" : 49 + }, + { + "id" : 383, + "damage" : 50 + }, + { + "id" : 383, + "damage" : 55 + }, + { + "id" : 383, + "damage" : 42 + }, + { + "id" : 383, + "damage" : 41 + }, + { + "id" : 383, + "damage" : 43 + }, + { + "id" : 383, + "damage" : 54 + }, + { + "id" : 383, + "damage" : 57 + }, + { + "id" : 383, + "damage" : 104 + }, + { + "id" : 383, + "damage" : 105 + }, + { + "id" : 383, + "damage" : 115 + }, + { + "id" : 383, + "damage" : 118 + }, + { + "id" : 383, + "damage" : 116 + }, + { + "id" : 383, + "damage" : 58 + }, + { + "id" : 383, + "damage" : 114 + }, + { + "id" : 383, + "damage" : 59 + }, + { + "id" : 49 + }, + { + "id" : 7 + }, + { + "id" : 88 + }, + { + "id" : 87 + }, + { + "id" : 213 + }, + { + "id" : 372 + }, + { + "id" : 121 + }, + { + "id" : 200 + }, + { + "id" : 240 + }, + { + "id" : 432 + }, + { + "id" : 433 + }, + { + "id" : 19 + }, + { + "id" : 19, + "damage" : 1 + }, + { + "id" : -132 + }, + { + "id" : -132, + "damage" : 1 + }, + { + "id" : -132, + "damage" : 2 + }, + { + "id" : -132, + "damage" : 3 + }, + { + "id" : -132, + "damage" : 4 + }, + { + "id" : -132, + "damage" : 8 + }, + { + "id" : -132, + "damage" : 9 + }, + { + "id" : -132, + "damage" : 10 + }, + { + "id" : -132, + "damage" : 11 + }, + { + "id" : -132, + "damage" : 12 + }, + { + "id" : 298 + }, + { + "id" : 302 + }, + { + "id" : 306 + }, + { + "id" : 314 + }, + { + "id" : 310 + }, + { + "id" : 299 + }, + { + "id" : 303 + }, + { + "id" : 307 + }, + { + "id" : 315 + }, + { + "id" : 311 + }, + { + "id" : 300 + }, + { + "id" : 304 + }, + { + "id" : 308 + }, + { + "id" : 316 + }, + { + "id" : 312 + }, + { + "id" : 301 + }, + { + "id" : 305 + }, + { + "id" : 309 + }, + { + "id" : 317 + }, + { + "id" : 313 + }, + { + "id" : 268 + }, + { + "id" : 272 + }, + { + "id" : 267 + }, + { + "id" : 283 + }, + { + "id" : 276 + }, + { + "id" : 271 + }, + { + "id" : 275 + }, + { + "id" : 258 + }, + { + "id" : 286 + }, + { + "id" : 279 + }, + { + "id" : 270 + }, + { + "id" : 274 + }, + { + "id" : 257 + }, + { + "id" : 285 + }, + { + "id" : 278 + }, + { + "id" : 269 + }, + { + "id" : 273 + }, + { + "id" : 256 + }, + { + "id" : 284 + }, + { + "id" : 277 + }, + { + "id" : 290 + }, + { + "id" : 291 + }, + { + "id" : 292 + }, + { + "id" : 294 + }, + { + "id" : 293 + }, + { + "id" : 261 + }, + { + "id" : 471 + }, + { + "id" : 262 + }, + { + "id" : 262, + "damage" : 6 + }, + { + "id" : 262, + "damage" : 7 + }, + { + "id" : 262, + "damage" : 8 + }, + { + "id" : 262, + "damage" : 9 + }, + { + "id" : 262, + "damage" : 10 + }, + { + "id" : 262, + "damage" : 11 + }, + { + "id" : 262, + "damage" : 12 + }, + { + "id" : 262, + "damage" : 13 + }, + { + "id" : 262, + "damage" : 14 + }, + { + "id" : 262, + "damage" : 15 + }, + { + "id" : 262, + "damage" : 16 + }, + { + "id" : 262, + "damage" : 17 + }, + { + "id" : 262, + "damage" : 18 + }, + { + "id" : 262, + "damage" : 19 + }, + { + "id" : 262, + "damage" : 20 + }, + { + "id" : 262, + "damage" : 21 + }, + { + "id" : 262, + "damage" : 22 + }, + { + "id" : 262, + "damage" : 23 + }, + { + "id" : 262, + "damage" : 24 + }, + { + "id" : 262, + "damage" : 25 + }, + { + "id" : 262, + "damage" : 26 + }, + { + "id" : 262, + "damage" : 27 + }, + { + "id" : 262, + "damage" : 28 + }, + { + "id" : 262, + "damage" : 29 + }, + { + "id" : 262, + "damage" : 30 + }, + { + "id" : 262, + "damage" : 31 + }, + { + "id" : 262, + "damage" : 32 + }, + { + "id" : 262, + "damage" : 33 + }, + { + "id" : 262, + "damage" : 34 + }, + { + "id" : 262, + "damage" : 35 + }, + { + "id" : 262, + "damage" : 36 + }, + { + "id" : 262, + "damage" : 37 + }, + { + "id" : 262, + "damage" : 38 + }, + { + "id" : 262, + "damage" : 39 + }, + { + "id" : 262, + "damage" : 40 + }, + { + "id" : 262, + "damage" : 41 + }, + { + "id" : 262, + "damage" : 42 + }, + { + "id" : 513 + }, + { + "id" : 366 + }, + { + "id" : 320 + }, + { + "id" : 364 + }, + { + "id" : 424 + }, + { + "id" : 412 + }, + { + "id" : 350 + }, + { + "id" : 463 + }, + { + "id" : 297 + }, + { + "id" : 282 + }, + { + "id" : 459 + }, + { + "id" : 413 + }, + { + "id" : 393 + }, + { + "id" : 357 + }, + { + "id" : 400 + }, + { + "id" : 354 + }, + { + "id" : 464 + }, + { + "id" : 346 + }, + { + "id" : 398 + }, + { + "id" : 332 + }, + { + "id" : 359 + }, + { + "id" : 259 + }, + { + "id" : 420 + }, + { + "id" : 347 + }, + { + "id" : 345 + }, + { + "id" : 395 + }, + { + "id" : 395, + "damage" : 2 + }, + { + "id" : 329 + }, + { + "id" : 416 + }, + { + "id" : 417 + }, + { + "id" : 418 + }, + { + "id" : 419 + }, + { + "id" : 455 + }, + { + "id" : 469 + }, + { + "id" : 444 + }, + { + "id" : 450 + }, + { + "id" : 374 + }, + { + "id" : 384 + }, + { + "id" : 373 + }, + { + "id" : 373, + "damage" : 1 + }, + { + "id" : 373, + "damage" : 2 + }, + { + "id" : 373, + "damage" : 3 + }, + { + "id" : 373, + "damage" : 4 + }, + { + "id" : 373, + "damage" : 5 + }, + { + "id" : 373, + "damage" : 6 + }, + { + "id" : 373, + "damage" : 7 + }, + { + "id" : 373, + "damage" : 8 + }, + { + "id" : 373, + "damage" : 9 + }, + { + "id" : 373, + "damage" : 10 + }, + { + "id" : 373, + "damage" : 11 + }, + { + "id" : 373, + "damage" : 12 + }, + { + "id" : 373, + "damage" : 13 + }, + { + "id" : 373, + "damage" : 14 + }, + { + "id" : 373, + "damage" : 15 + }, + { + "id" : 373, + "damage" : 16 + }, + { + "id" : 373, + "damage" : 17 + }, + { + "id" : 373, + "damage" : 18 + }, + { + "id" : 373, + "damage" : 19 + }, + { + "id" : 373, + "damage" : 20 + }, + { + "id" : 373, + "damage" : 21 + }, + { + "id" : 373, + "damage" : 22 + }, + { + "id" : 373, + "damage" : 23 + }, + { + "id" : 373, + "damage" : 24 + }, + { + "id" : 373, + "damage" : 25 + }, + { + "id" : 373, + "damage" : 26 + }, + { + "id" : 373, + "damage" : 27 + }, + { + "id" : 373, + "damage" : 28 + }, + { + "id" : 373, + "damage" : 29 + }, + { + "id" : 373, + "damage" : 30 + }, + { + "id" : 373, + "damage" : 31 + }, + { + "id" : 373, + "damage" : 32 + }, + { + "id" : 373, + "damage" : 33 + }, + { + "id" : 373, + "damage" : 34 + }, + { + "id" : 373, + "damage" : 35 + }, + { + "id" : 373, + "damage" : 36 + }, + { + "id" : 373, + "damage" : 37 + }, + { + "id" : 373, + "damage" : 38 + }, + { + "id" : 373, + "damage" : 39 + }, + { + "id" : 373, + "damage" : 40 + }, + { + "id" : 373, + "damage" : 41 + }, + { + "id" : 438 + }, + { + "id" : 438, + "damage" : 1 + }, + { + "id" : 438, + "damage" : 2 + }, + { + "id" : 438, + "damage" : 3 + }, + { + "id" : 438, + "damage" : 4 + }, + { + "id" : 438, + "damage" : 5 + }, + { + "id" : 438, + "damage" : 6 + }, + { + "id" : 438, + "damage" : 7 + }, + { + "id" : 438, + "damage" : 8 + }, + { + "id" : 438, + "damage" : 9 + }, + { + "id" : 438, + "damage" : 10 + }, + { + "id" : 438, + "damage" : 11 + }, + { + "id" : 438, + "damage" : 12 + }, + { + "id" : 438, + "damage" : 13 + }, + { + "id" : 438, + "damage" : 14 + }, + { + "id" : 438, + "damage" : 15 + }, + { + "id" : 438, + "damage" : 16 + }, + { + "id" : 438, + "damage" : 17 + }, + { + "id" : 438, + "damage" : 18 + }, + { + "id" : 438, + "damage" : 19 + }, + { + "id" : 438, + "damage" : 20 + }, + { + "id" : 438, + "damage" : 21 + }, + { + "id" : 438, + "damage" : 22 + }, + { + "id" : 438, + "damage" : 23 + }, + { + "id" : 438, + "damage" : 24 + }, + { + "id" : 438, + "damage" : 25 + }, + { + "id" : 438, + "damage" : 26 + }, + { + "id" : 438, + "damage" : 27 + }, + { + "id" : 438, + "damage" : 28 + }, + { + "id" : 438, + "damage" : 29 + }, + { + "id" : 438, + "damage" : 30 + }, + { + "id" : 438, + "damage" : 31 + }, + { + "id" : 438, + "damage" : 32 + }, + { + "id" : 438, + "damage" : 33 + }, + { + "id" : 438, + "damage" : 34 + }, + { + "id" : 438, + "damage" : 35 + }, + { + "id" : 438, + "damage" : 36 + }, + { + "id" : 438, + "damage" : 37 + }, + { + "id" : 438, + "damage" : 38 + }, + { + "id" : 438, + "damage" : 39 + }, + { + "id" : 438, + "damage" : 40 + }, + { + "id" : 438, + "damage" : 41 + }, + { + "id" : 441 + }, + { + "id" : 441, + "damage" : 1 + }, + { + "id" : 441, + "damage" : 2 + }, + { + "id" : 441, + "damage" : 3 + }, + { + "id" : 441, + "damage" : 4 + }, + { + "id" : 441, + "damage" : 5 + }, + { + "id" : 441, + "damage" : 6 + }, + { + "id" : 441, + "damage" : 7 + }, + { + "id" : 441, + "damage" : 8 + }, + { + "id" : 441, + "damage" : 9 + }, + { + "id" : 441, + "damage" : 10 + }, + { + "id" : 441, + "damage" : 11 + }, + { + "id" : 441, + "damage" : 12 + }, + { + "id" : 441, + "damage" : 13 + }, + { + "id" : 441, + "damage" : 14 + }, + { + "id" : 441, + "damage" : 15 + }, + { + "id" : 441, + "damage" : 16 + }, + { + "id" : 441, + "damage" : 17 + }, + { + "id" : 441, + "damage" : 18 + }, + { + "id" : 441, + "damage" : 19 + }, + { + "id" : 441, + "damage" : 20 + }, + { + "id" : 441, + "damage" : 21 + }, + { + "id" : 441, + "damage" : 22 + }, + { + "id" : 441, + "damage" : 23 + }, + { + "id" : 441, + "damage" : 24 + }, + { + "id" : 441, + "damage" : 25 + }, + { + "id" : 441, + "damage" : 26 + }, + { + "id" : 441, + "damage" : 27 + }, + { + "id" : 441, + "damage" : 28 + }, + { + "id" : 441, + "damage" : 29 + }, + { + "id" : 441, + "damage" : 30 + }, + { + "id" : 441, + "damage" : 31 + }, + { + "id" : 441, + "damage" : 32 + }, + { + "id" : 441, + "damage" : 33 + }, + { + "id" : 441, + "damage" : 34 + }, + { + "id" : 441, + "damage" : 35 + }, + { + "id" : 441, + "damage" : 36 + }, + { + "id" : 441, + "damage" : 37 + }, + { + "id" : 441, + "damage" : 38 + }, + { + "id" : 441, + "damage" : 39 + }, + { + "id" : 441, + "damage" : 40 + }, + { + "id" : 441, + "damage" : 41 + }, + { + "id" : 280 + }, + { + "id" : 355 + }, + { + "id" : 355, + "damage" : 8 + }, + { + "id" : 355, + "damage" : 7 + }, + { + "id" : 355, + "damage" : 15 + }, + { + "id" : 355, + "damage" : 12 + }, + { + "id" : 355, + "damage" : 14 + }, + { + "id" : 355, + "damage" : 1 + }, + { + "id" : 355, + "damage" : 4 + }, + { + "id" : 355, + "damage" : 5 + }, + { + "id" : 355, + "damage" : 13 + }, + { + "id" : 355, + "damage" : 9 + }, + { + "id" : 355, + "damage" : 3 + }, + { + "id" : 355, + "damage" : 11 + }, + { + "id" : 355, + "damage" : 10 + }, + { + "id" : 355, + "damage" : 2 + }, + { + "id" : 355, + "damage" : 6 + }, + { + "id" : 50 + }, + { + "id" : -156 + }, + { + "id" : -208 + }, + { + "id" : 58 + }, + { + "id" : -200 + }, + { + "id" : -201 + }, + { + "id" : -202 + }, + { + "id" : 720 + }, + { + "id" : 61 + }, + { + "id" : -196 + }, + { + "id" : -198 + }, + { + "id" : 379 + }, + { + "id" : 145 + }, + { + "id" : 145, + "damage" : 4 + }, + { + "id" : 145, + "damage" : 8 + }, + { + "id" : -195 + }, + { + "id" : 116 + }, + { + "id" : 47 + }, + { + "id" : -194 + }, + { + "id" : 380 + }, + { + "id" : -213 + }, + { + "id" : 54 + }, + { + "id" : -203 + }, + { + "id" : 146 + }, + { + "id" : 130 + }, + { + "id" : 205 + }, + { + "id" : 218 + }, + { + "id" : 218, + "damage" : 8 + }, + { + "id" : 218, + "damage" : 7 + }, + { + "id" : 218, + "damage" : 15 + }, + { + "id" : 218, + "damage" : 12 + }, + { + "id" : 218, + "damage" : 14 + }, + { + "id" : 218, + "damage" : 1 + }, + { + "id" : 218, + "damage" : 4 + }, + { + "id" : 218, + "damage" : 5 + }, + { + "id" : 218, + "damage" : 13 + }, + { + "id" : 218, + "damage" : 9 + }, + { + "id" : 218, + "damage" : 3 + }, + { + "id" : 218, + "damage" : 11 + }, + { + "id" : 218, + "damage" : 10 + }, + { + "id" : 218, + "damage" : 2 + }, + { + "id" : 218, + "damage" : 6 + }, + { + "id" : 425 + }, + { + "id" : 25 + }, + { + "id" : 84 + }, + { + "id" : 500 + }, + { + "id" : 501 + }, + { + "id" : 502 + }, + { + "id" : 503 + }, + { + "id" : 504 + }, + { + "id" : 505 + }, + { + "id" : 506 + }, + { + "id" : 507 + }, + { + "id" : 508 + }, + { + "id" : 509 + }, + { + "id" : 510 + }, + { + "id" : 511 + }, + { + "id" : 348 + }, + { + "id" : 89 + }, + { + "id" : 123 + }, + { + "id" : 169 + }, + { + "id" : 323 + }, + { + "id" : 472 + }, + { + "id" : 473 + }, + { + "id" : 474 + }, + { + "id" : 475 + }, + { + "id" : 476 + }, + { + "id" : 321 + }, + { + "id" : 389 + }, + { + "id" : 390 + }, + { + "id" : 281 + }, + { + "id" : 325 + }, + { + "id" : 325, + "damage" : 1 + }, + { + "id" : 325, + "damage" : 8 + }, + { + "id" : 325, + "damage" : 10 + }, + { + "id" : 325, + "damage" : 2 + }, + { + "id" : 325, + "damage" : 3 + }, + { + "id" : 325, + "damage" : 4 + }, + { + "id" : 325, + "damage" : 5 + }, + { + "id" : 397, + "damage" : 3 + }, + { + "id" : 397, + "damage" : 2 + }, + { + "id" : 397, + "damage" : 4 + }, + { + "id" : 397, + "damage" : 5 + }, + { + "id" : 397 + }, + { + "id" : 397, + "damage" : 1 + }, + { + "id" : 138 + }, + { + "id" : -206 + }, + { + "id" : -157 + }, + { + "id" : -197 + }, + { + "id" : 120 + }, + { + "id" : 263 + }, + { + "id" : 263, + "damage" : 1 + }, + { + "id" : 264 + }, + { + "id" : 452 + }, + { + "id" : 265 + }, + { + "id" : 371 + }, + { + "id" : 266 + }, + { + "id" : 388 + }, + { + "id" : 406 + }, + { + "id" : 337 + }, + { + "id" : 336 + }, + { + "id" : 405 + }, + { + "id" : 409 + }, + { + "id" : 422 + }, + { + "id" : 465 + }, + { + "id" : 467 + }, + { + "id" : 468 + }, + { + "id" : 470 + }, + { + "id" : 287 + }, + { + "id" : 288 + }, + { + "id" : 318 + }, + { + "id" : 289 + }, + { + "id" : 334 + }, + { + "id" : 415 + }, + { + "id" : 414 + }, + { + "id" : 385 + }, + { + "id" : 369 + }, + { + "id" : 377 + }, + { + "id" : 378 + }, + { + "id" : 376 + }, + { + "id" : 437 + }, + { + "id" : 445 + }, + { + "id" : 370 + }, + { + "id" : 341 + }, + { + "id" : 368 + }, + { + "id" : 381 + }, + { + "id" : 399 + }, + { + "id" : 208 + }, + { + "id" : 426 + }, + { + "id" : 339 + }, + { + "id" : 340 + }, + { + "id" : 386 + }, + { + "id" : 403, + "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAQACAgBpZAAAAAA=" + }, + { + "id" : 403, + "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAgACAgBpZAAAAAA=" + }, + { + "id" : 403, + "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAwACAgBpZAAAAAA=" + }, + { + "id" : 403, + "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsBAACAgBpZAAAAAA=" + }, + { + "id" : 403, + "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAQACAgBpZAEAAAA=" + }, + { + "id" : 403, + "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAgACAgBpZAEAAAA=" + }, + { + "id" : 403, + "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAwACAgBpZAEAAAA=" + }, + { + "id" : 403, + "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsBAACAgBpZAEAAAA=" + }, + { + "id" : 403, + "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAQACAgBpZAIAAAA=" + }, + { + "id" : 403, + "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAgACAgBpZAIAAAA=" + }, + { + "id" : 403, + "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAwACAgBpZAIAAAA=" + }, + { + "id" : 403, + "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsBAACAgBpZAIAAAA=" + }, + { + "id" : 403, + "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAQACAgBpZAMAAAA=" + }, + { + "id" : 403, + "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAgACAgBpZAMAAAA=" + }, + { + "id" : 403, + "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAwACAgBpZAMAAAA=" + }, + { + "id" : 403, + "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsBAACAgBpZAMAAAA=" + }, + { + "id" : 403, + "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAQACAgBpZAQAAAA=" + }, + { + "id" : 403, + "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAgACAgBpZAQAAAA=" + }, + { + "id" : 403, + "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAwACAgBpZAQAAAA=" + }, + { + "id" : 403, + "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsBAACAgBpZAQAAAA=" + }, + { + "id" : 403, + "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAQACAgBpZAUAAAA=" + }, + { + "id" : 403, + "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAgACAgBpZAUAAAA=" + }, + { + "id" : 403, + "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAwACAgBpZAUAAAA=" + }, + { + "id" : 403, + "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAQACAgBpZAYAAAA=" + }, + { + "id" : 403, + "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAgACAgBpZAYAAAA=" + }, + { + "id" : 403, + "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAwACAgBpZAYAAAA=" + }, + { + "id" : 403, + "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAQACAgBpZAcAAAA=" + }, + { + "id" : 403, + "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAgACAgBpZAcAAAA=" + }, + { + "id" : 403, + "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAwACAgBpZAcAAAA=" + }, + { + "id" : 403, + "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAQACAgBpZAgAAAA=" + }, + { + "id" : 403, + "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAQACAgBpZAkAAAA=" + }, + { + "id" : 403, + "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAgACAgBpZAkAAAA=" + }, + { + "id" : 403, + "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAwACAgBpZAkAAAA=" + }, + { + "id" : 403, + "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsBAACAgBpZAkAAAA=" + }, + { + "id" : 403, + "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsBQACAgBpZAkAAAA=" + }, + { + "id" : 403, + "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAQACAgBpZAoAAAA=" + }, + { + "id" : 403, + "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAgACAgBpZAoAAAA=" + }, + { + "id" : 403, + "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAwACAgBpZAoAAAA=" + }, + { + "id" : 403, + "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsBAACAgBpZAoAAAA=" + }, + { + "id" : 403, + "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsBQACAgBpZAoAAAA=" + }, + { + "id" : 403, + "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAQACAgBpZAsAAAA=" + }, + { + "id" : 403, + "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAgACAgBpZAsAAAA=" + }, + { + "id" : 403, + "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAwACAgBpZAsAAAA=" + }, + { + "id" : 403, + "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsBAACAgBpZAsAAAA=" + }, + { + "id" : 403, + "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsBQACAgBpZAsAAAA=" + }, + { + "id" : 403, + "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAQACAgBpZAwAAAA=" + }, + { + "id" : 403, + "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAgACAgBpZAwAAAA=" + }, + { + "id" : 403, + "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAQACAgBpZA0AAAA=" + }, + { + "id" : 403, + "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAgACAgBpZA0AAAA=" + }, + { + "id" : 403, + "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAQACAgBpZA4AAAA=" + }, + { + "id" : 403, + "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAgACAgBpZA4AAAA=" + }, + { + "id" : 403, + "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAwACAgBpZA4AAAA=" + }, + { + "id" : 403, + "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAQACAgBpZA8AAAA=" + }, + { + "id" : 403, + "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAgACAgBpZA8AAAA=" + }, + { + "id" : 403, + "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAwACAgBpZA8AAAA=" + }, + { + "id" : 403, + "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsBAACAgBpZA8AAAA=" + }, + { + "id" : 403, + "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsBQACAgBpZA8AAAA=" + }, + { + "id" : 403, + "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAQACAgBpZBAAAAA=" + }, + { + "id" : 403, + "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAQACAgBpZBEAAAA=" + }, + { + "id" : 403, + "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAgACAgBpZBEAAAA=" + }, + { + "id" : 403, + "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAwACAgBpZBEAAAA=" + }, + { + "id" : 403, + "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAQACAgBpZBIAAAA=" + }, + { + "id" : 403, + "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAgACAgBpZBIAAAA=" + }, + { + "id" : 403, + "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAwACAgBpZBIAAAA=" + }, + { + "id" : 403, + "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAQACAgBpZBMAAAA=" + }, + { + "id" : 403, + "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAgACAgBpZBMAAAA=" + }, + { + "id" : 403, + "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAwACAgBpZBMAAAA=" + }, + { + "id" : 403, + "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsBAACAgBpZBMAAAA=" + }, + { + "id" : 403, + "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsBQACAgBpZBMAAAA=" + }, + { + "id" : 403, + "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAQACAgBpZBQAAAA=" + }, + { + "id" : 403, + "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAgACAgBpZBQAAAA=" + }, + { + "id" : 403, + "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAQACAgBpZBUAAAA=" + }, + { + "id" : 403, + "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAQACAgBpZBYAAAA=" + }, + { + "id" : 403, + "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAQACAgBpZBcAAAA=" + }, + { + "id" : 403, + "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAgACAgBpZBcAAAA=" + }, + { + "id" : 403, + "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAwACAgBpZBcAAAA=" + }, + { + "id" : 403, + "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAQACAgBpZBgAAAA=" + }, + { + "id" : 403, + "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAgACAgBpZBgAAAA=" + }, + { + "id" : 403, + "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAwACAgBpZBgAAAA=" + }, + { + "id" : 403, + "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAQACAgBpZBkAAAA=" + }, + { + "id" : 403, + "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAgACAgBpZBkAAAA=" + }, + { + "id" : 403, + "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAQACAgBpZBoAAAA=" + }, + { + "id" : 403, + "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAQACAgBpZB0AAAA=" + }, + { + "id" : 403, + "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAgACAgBpZB0AAAA=" + }, + { + "id" : 403, + "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAwACAgBpZB0AAAA=" + }, + { + "id" : 403, + "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsBAACAgBpZB0AAAA=" + }, + { + "id" : 403, + "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsBQACAgBpZB0AAAA=" + }, + { + "id" : 403, + "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAQACAgBpZB4AAAA=" + }, + { + "id" : 403, + "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAgACAgBpZB4AAAA=" + }, + { + "id" : 403, + "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAwACAgBpZB4AAAA=" + }, + { + "id" : 403, + "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAQACAgBpZB8AAAA=" + }, + { + "id" : 403, + "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAgACAgBpZB8AAAA=" + }, + { + "id" : 403, + "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAwACAgBpZB8AAAA=" + }, + { + "id" : 403, + "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAQACAgBpZCAAAAA=" + }, + { + "id" : 403, + "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAQACAgBpZCEAAAA=" + }, + { + "id" : 403, + "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAQACAgBpZCIAAAA=" + }, + { + "id" : 403, + "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAgACAgBpZCIAAAA=" + }, + { + "id" : 403, + "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAwACAgBpZCIAAAA=" + }, + { + "id" : 403, + "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsBAACAgBpZCIAAAA=" + }, + { + "id" : 403, + "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAQACAgBpZCMAAAA=" + }, + { + "id" : 403, + "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAgACAgBpZCMAAAA=" + }, + { + "id" : 403, + "nbt_b64" : "CgAACQQAZW5jaAoBAAAAAgMAbHZsAwACAgBpZCMAAAA=" + }, + { + "id" : 333 + }, + { + "id" : 333, + "damage" : 1 + }, + { + "id" : 333, + "damage" : 2 + }, + { + "id" : 333, + "damage" : 3 + }, + { + "id" : 333, + "damage" : 4 + }, + { + "id" : 333, + "damage" : 5 + }, + { + "id" : 66 + }, + { + "id" : 27 + }, + { + "id" : 28 + }, + { + "id" : 126 + }, + { + "id" : 328 + }, + { + "id" : 342 + }, + { + "id" : 408 + }, + { + "id" : 407 + }, + { + "id" : 331 + }, + { + "id" : 152 + }, + { + "id" : 76 + }, + { + "id" : 69 + }, + { + "id" : 143, + "damage" : 5 + }, + { + "id" : -144, + "damage" : 5 + }, + { + "id" : -141, + "damage" : 5 + }, + { + "id" : -143, + "damage" : 5 + }, + { + "id" : -140, + "damage" : 5 + }, + { + "id" : -142, + "damage" : 5 + }, + { + "id" : 77, + "damage" : 5 + }, + { + "id" : 131 + }, + { + "id" : 72 + }, + { + "id" : -154 + }, + { + "id" : -151 + }, + { + "id" : -153 + }, + { + "id" : -150 + }, + { + "id" : -152 + }, + { + "id" : 70 + }, + { + "id" : 147 + }, + { + "id" : 148 + }, + { + "id" : 251 + }, + { + "id" : 151 + }, + { + "id" : 356 + }, + { + "id" : 404 + }, + { + "id" : 410 + }, + { + "id" : 125, + "damage" : 3 + }, + { + "id" : 23, + "damage" : 3 + }, + { + "id" : 33, + "damage" : 1 + }, + { + "id" : 29, + "damage" : 1 + }, + { + "id" : 46 + }, + { + "id" : 421 + }, + { + "id" : -204 + }, + { + "id" : 446 + }, + { + "id" : 446, + "damage" : 8 + }, + { + "id" : 446, + "damage" : 7 + }, + { + "id" : 446, + "damage" : 15 + }, + { + "id" : 446, + "damage" : 12 + }, + { + "id" : 446, + "damage" : 14 + }, + { + "id" : 446, + "damage" : 1 + }, + { + "id" : 446, + "damage" : 4 + }, + { + "id" : 446, + "damage" : 5 + }, + { + "id" : 446, + "damage" : 13 + }, + { + "id" : 446, + "damage" : 9 + }, + { + "id" : 446, + "damage" : 3 + }, + { + "id" : 446, + "damage" : 11 + }, + { + "id" : 446, + "damage" : 10 + }, + { + "id" : 446, + "damage" : 2 + }, + { + "id" : 446, + "damage" : 6 + }, + { + "id" : 446, + "damage" : 15, + "nbt_b64" : "CgAAAwQAVHlwZQEAAAAA" + }, + { + "id" : 434 + }, + { + "id" : 434, + "damage" : 1 + }, + { + "id" : 434, + "damage" : 2 + }, + { + "id" : 434, + "damage" : 3 + }, + { + "id" : 434, + "damage" : 4 + }, + { + "id" : 434, + "damage" : 5 + }, + { + "id" : 401, + "nbt_b64" : "CgAACgkARmlyZXdvcmtzAQYARmxpZ2h0AQkKAEV4cGxvc2lvbnMAAAAAAAAA" + }, + { + "id" : 401, + "nbt_b64" : "CgAACgkARmlyZXdvcmtzAQYARmxpZ2h0AQkKAEV4cGxvc2lvbnMKAQAAAAcNAEZpcmV3b3JrQ29sb3IBAAAAAAEMAEZpcmV3b3JrVHlwZQAHDABGaXJld29ya0ZhZGUAAAAAAQ0ARmlyZXdvcmtUcmFpbAABDwBGaXJld29ya0ZsaWNrZXIAAAAA" + }, + { + "id" : 401, + "nbt_b64" : "CgAACgkARmlyZXdvcmtzAQYARmxpZ2h0AQkKAEV4cGxvc2lvbnMKAQAAAAcNAEZpcmV3b3JrQ29sb3IBAAAACAEMAEZpcmV3b3JrVHlwZQAHDABGaXJld29ya0ZhZGUAAAAAAQ0ARmlyZXdvcmtUcmFpbAABDwBGaXJld29ya0ZsaWNrZXIAAAAA" + }, + { + "id" : 401, + "nbt_b64" : "CgAACgkARmlyZXdvcmtzAQYARmxpZ2h0AQkKAEV4cGxvc2lvbnMKAQAAAAcNAEZpcmV3b3JrQ29sb3IBAAAABwEMAEZpcmV3b3JrVHlwZQAHDABGaXJld29ya0ZhZGUAAAAAAQ0ARmlyZXdvcmtUcmFpbAABDwBGaXJld29ya0ZsaWNrZXIAAAAA" + }, + { + "id" : 401, + "nbt_b64" : "CgAACgkARmlyZXdvcmtzAQYARmxpZ2h0AQkKAEV4cGxvc2lvbnMKAQAAAAcNAEZpcmV3b3JrQ29sb3IBAAAADwEMAEZpcmV3b3JrVHlwZQAHDABGaXJld29ya0ZhZGUAAAAAAQ0ARmlyZXdvcmtUcmFpbAABDwBGaXJld29ya0ZsaWNrZXIAAAAA" + }, + { + "id" : 401, + "nbt_b64" : "CgAACgkARmlyZXdvcmtzAQYARmxpZ2h0AQkKAEV4cGxvc2lvbnMKAQAAAAcNAEZpcmV3b3JrQ29sb3IBAAAADAEMAEZpcmV3b3JrVHlwZQAHDABGaXJld29ya0ZhZGUAAAAAAQ0ARmlyZXdvcmtUcmFpbAABDwBGaXJld29ya0ZsaWNrZXIAAAAA" + }, + { + "id" : 401, + "nbt_b64" : "CgAACgkARmlyZXdvcmtzAQYARmxpZ2h0AQkKAEV4cGxvc2lvbnMKAQAAAAcNAEZpcmV3b3JrQ29sb3IBAAAADgEMAEZpcmV3b3JrVHlwZQAHDABGaXJld29ya0ZhZGUAAAAAAQ0ARmlyZXdvcmtUcmFpbAABDwBGaXJld29ya0ZsaWNrZXIAAAAA" + }, + { + "id" : 401, + "nbt_b64" : "CgAACgkARmlyZXdvcmtzAQYARmxpZ2h0AQkKAEV4cGxvc2lvbnMKAQAAAAcNAEZpcmV3b3JrQ29sb3IBAAAAAQEMAEZpcmV3b3JrVHlwZQAHDABGaXJld29ya0ZhZGUAAAAAAQ0ARmlyZXdvcmtUcmFpbAABDwBGaXJld29ya0ZsaWNrZXIAAAAA" + }, + { + "id" : 401, + "nbt_b64" : "CgAACgkARmlyZXdvcmtzAQYARmxpZ2h0AQkKAEV4cGxvc2lvbnMKAQAAAAcNAEZpcmV3b3JrQ29sb3IBAAAABAEMAEZpcmV3b3JrVHlwZQAHDABGaXJld29ya0ZhZGUAAAAAAQ0ARmlyZXdvcmtUcmFpbAABDwBGaXJld29ya0ZsaWNrZXIAAAAA" + }, + { + "id" : 401, + "nbt_b64" : "CgAACgkARmlyZXdvcmtzAQYARmxpZ2h0AQkKAEV4cGxvc2lvbnMKAQAAAAcNAEZpcmV3b3JrQ29sb3IBAAAABQEMAEZpcmV3b3JrVHlwZQAHDABGaXJld29ya0ZhZGUAAAAAAQ0ARmlyZXdvcmtUcmFpbAABDwBGaXJld29ya0ZsaWNrZXIAAAAA" + }, + { + "id" : 401, + "nbt_b64" : "CgAACgkARmlyZXdvcmtzAQYARmxpZ2h0AQkKAEV4cGxvc2lvbnMKAQAAAAcNAEZpcmV3b3JrQ29sb3IBAAAADQEMAEZpcmV3b3JrVHlwZQAHDABGaXJld29ya0ZhZGUAAAAAAQ0ARmlyZXdvcmtUcmFpbAABDwBGaXJld29ya0ZsaWNrZXIAAAAA" + }, + { + "id" : 401, + "nbt_b64" : "CgAACgkARmlyZXdvcmtzAQYARmxpZ2h0AQkKAEV4cGxvc2lvbnMKAQAAAAcNAEZpcmV3b3JrQ29sb3IBAAAACQEMAEZpcmV3b3JrVHlwZQAHDABGaXJld29ya0ZhZGUAAAAAAQ0ARmlyZXdvcmtUcmFpbAABDwBGaXJld29ya0ZsaWNrZXIAAAAA" + }, + { + "id" : 401, + "nbt_b64" : "CgAACgkARmlyZXdvcmtzAQYARmxpZ2h0AQkKAEV4cGxvc2lvbnMKAQAAAAcNAEZpcmV3b3JrQ29sb3IBAAAAAwEMAEZpcmV3b3JrVHlwZQAHDABGaXJld29ya0ZhZGUAAAAAAQ0ARmlyZXdvcmtUcmFpbAABDwBGaXJld29ya0ZsaWNrZXIAAAAA" + }, + { + "id" : 401, + "nbt_b64" : "CgAACgkARmlyZXdvcmtzAQYARmxpZ2h0AQkKAEV4cGxvc2lvbnMKAQAAAAcNAEZpcmV3b3JrQ29sb3IBAAAACwEMAEZpcmV3b3JrVHlwZQAHDABGaXJld29ya0ZhZGUAAAAAAQ0ARmlyZXdvcmtUcmFpbAABDwBGaXJld29ya0ZsaWNrZXIAAAAA" + }, + { + "id" : 401, + "nbt_b64" : "CgAACgkARmlyZXdvcmtzAQYARmxpZ2h0AQkKAEV4cGxvc2lvbnMKAQAAAAcNAEZpcmV3b3JrQ29sb3IBAAAACgEMAEZpcmV3b3JrVHlwZQAHDABGaXJld29ya0ZhZGUAAAAAAQ0ARmlyZXdvcmtUcmFpbAABDwBGaXJld29ya0ZsaWNrZXIAAAAA" + }, + { + "id" : 401, + "nbt_b64" : "CgAACgkARmlyZXdvcmtzAQYARmxpZ2h0AQkKAEV4cGxvc2lvbnMKAQAAAAcNAEZpcmV3b3JrQ29sb3IBAAAAAgEMAEZpcmV3b3JrVHlwZQAHDABGaXJld29ya0ZhZGUAAAAAAQ0ARmlyZXdvcmtUcmFpbAABDwBGaXJld29ya0ZsaWNrZXIAAAAA" + }, + { + "id" : 401, + "nbt_b64" : "CgAACgkARmlyZXdvcmtzAQYARmxpZ2h0AQkKAEV4cGxvc2lvbnMKAQAAAAcNAEZpcmV3b3JrQ29sb3IBAAAABgEMAEZpcmV3b3JrVHlwZQAHDABGaXJld29ya0ZhZGUAAAAAAQ0ARmlyZXdvcmtUcmFpbAABDwBGaXJld29ya0ZsaWNrZXIAAAAA" + }, + { + "id" : 402, + "nbt_b64" : "CgAAAwsAY3VzdG9tQ29sb3IhHR3/Cg0ARmlyZXdvcmtzSXRlbQcNAEZpcmV3b3JrQ29sb3IBAAAAAAEMAEZpcmV3b3JrVHlwZQAHDABGaXJld29ya0ZhZGUAAAAAAQ0ARmlyZXdvcmtUcmFpbAABDwBGaXJld29ya0ZsaWNrZXIAAAA=" + }, + { + "id" : 402, + "damage" : 8, + "nbt_b64" : "CgAAAwsAY3VzdG9tQ29sb3JST0f/Cg0ARmlyZXdvcmtzSXRlbQcNAEZpcmV3b3JrQ29sb3IBAAAACAEMAEZpcmV3b3JrVHlwZQAHDABGaXJld29ya0ZhZGUAAAAAAQ0ARmlyZXdvcmtUcmFpbAABDwBGaXJld29ya0ZsaWNrZXIAAAA=" + }, + { + "id" : 402, + "damage" : 7, + "nbt_b64" : "CgAAAwsAY3VzdG9tQ29sb3KXnZ3/Cg0ARmlyZXdvcmtzSXRlbQcNAEZpcmV3b3JrQ29sb3IBAAAABwEMAEZpcmV3b3JrVHlwZQAHDABGaXJld29ya0ZhZGUAAAAAAQ0ARmlyZXdvcmtUcmFpbAABDwBGaXJld29ya0ZsaWNrZXIAAAA=" + }, + { + "id" : 402, + "damage" : 15, + "nbt_b64" : "CgAAAwsAY3VzdG9tQ29sb3Lw8PD/Cg0ARmlyZXdvcmtzSXRlbQcNAEZpcmV3b3JrQ29sb3IBAAAADwEMAEZpcmV3b3JrVHlwZQAHDABGaXJld29ya0ZhZGUAAAAAAQ0ARmlyZXdvcmtUcmFpbAABDwBGaXJld29ya0ZsaWNrZXIAAAA=" + }, + { + "id" : 402, + "damage" : 12, + "nbt_b64" : "CgAAAwsAY3VzdG9tQ29sb3Laszr/Cg0ARmlyZXdvcmtzSXRlbQcNAEZpcmV3b3JrQ29sb3IBAAAADAEMAEZpcmV3b3JrVHlwZQAHDABGaXJld29ya0ZhZGUAAAAAAQ0ARmlyZXdvcmtUcmFpbAABDwBGaXJld29ya0ZsaWNrZXIAAAA=" + }, + { + "id" : 402, + "damage" : 14, + "nbt_b64" : "CgAAAwsAY3VzdG9tQ29sb3IdgPn/Cg0ARmlyZXdvcmtzSXRlbQcNAEZpcmV3b3JrQ29sb3IBAAAADgEMAEZpcmV3b3JrVHlwZQAHDABGaXJld29ya0ZhZGUAAAAAAQ0ARmlyZXdvcmtUcmFpbAABDwBGaXJld29ya0ZsaWNrZXIAAAA=" + }, + { + "id" : 402, + "damage" : 1, + "nbt_b64" : "CgAAAwsAY3VzdG9tQ29sb3ImLrD/Cg0ARmlyZXdvcmtzSXRlbQcNAEZpcmV3b3JrQ29sb3IBAAAAAQEMAEZpcmV3b3JrVHlwZQAHDABGaXJld29ya0ZhZGUAAAAAAQ0ARmlyZXdvcmtUcmFpbAABDwBGaXJld29ya0ZsaWNrZXIAAAA=" + }, + { + "id" : 402, + "damage" : 4, + "nbt_b64" : "CgAAAwsAY3VzdG9tQ29sb3KqRDz/Cg0ARmlyZXdvcmtzSXRlbQcNAEZpcmV3b3JrQ29sb3IBAAAABAEMAEZpcmV3b3JrVHlwZQAHDABGaXJld29ya0ZhZGUAAAAAAQ0ARmlyZXdvcmtUcmFpbAABDwBGaXJld29ya0ZsaWNrZXIAAAA=" + }, + { + "id" : 402, + "damage" : 5, + "nbt_b64" : "CgAAAwsAY3VzdG9tQ29sb3K4Mon/Cg0ARmlyZXdvcmtzSXRlbQcNAEZpcmV3b3JrQ29sb3IBAAAABQEMAEZpcmV3b3JrVHlwZQAHDABGaXJld29ya0ZhZGUAAAAAAQ0ARmlyZXdvcmtUcmFpbAABDwBGaXJld29ya0ZsaWNrZXIAAAA=" + }, + { + "id" : 402, + "damage" : 13, + "nbt_b64" : "CgAAAwsAY3VzdG9tQ29sb3K9Tsf/Cg0ARmlyZXdvcmtzSXRlbQcNAEZpcmV3b3JrQ29sb3IBAAAADQEMAEZpcmV3b3JrVHlwZQAHDABGaXJld29ya0ZhZGUAAAAAAQ0ARmlyZXdvcmtUcmFpbAABDwBGaXJld29ya0ZsaWNrZXIAAAA=" + }, + { + "id" : 402, + "damage" : 9, + "nbt_b64" : "CgAAAwsAY3VzdG9tQ29sb3Kqi/P/Cg0ARmlyZXdvcmtzSXRlbQcNAEZpcmV3b3JrQ29sb3IBAAAACQEMAEZpcmV3b3JrVHlwZQAHDABGaXJld29ya0ZhZGUAAAAAAQ0ARmlyZXdvcmtUcmFpbAABDwBGaXJld29ya0ZsaWNrZXIAAAA=" + }, + { + "id" : 402, + "damage" : 3, + "nbt_b64" : "CgAAAwsAY3VzdG9tQ29sb3IyVIP/Cg0ARmlyZXdvcmtzSXRlbQcNAEZpcmV3b3JrQ29sb3IBAAAAAwEMAEZpcmV3b3JrVHlwZQAHDABGaXJld29ya0ZhZGUAAAAAAQ0ARmlyZXdvcmtUcmFpbAABDwBGaXJld29ya0ZsaWNrZXIAAAA=" + }, + { + "id" : 402, + "damage" : 11, + "nbt_b64" : "CgAAAwsAY3VzdG9tQ29sb3I92P7/Cg0ARmlyZXdvcmtzSXRlbQcNAEZpcmV3b3JrQ29sb3IBAAAACwEMAEZpcmV3b3JrVHlwZQAHDABGaXJld29ya0ZhZGUAAAAAAQ0ARmlyZXdvcmtUcmFpbAABDwBGaXJld29ya0ZsaWNrZXIAAAA=" + }, + { + "id" : 402, + "damage" : 10, + "nbt_b64" : "CgAAAwsAY3VzdG9tQ29sb3Ifx4D/Cg0ARmlyZXdvcmtzSXRlbQcNAEZpcmV3b3JrQ29sb3IBAAAACgEMAEZpcmV3b3JrVHlwZQAHDABGaXJld29ya0ZhZGUAAAAAAQ0ARmlyZXdvcmtUcmFpbAABDwBGaXJld29ya0ZsaWNrZXIAAAA=" + }, + { + "id" : 402, + "damage" : 2, + "nbt_b64" : "CgAAAwsAY3VzdG9tQ29sb3IWfF7/Cg0ARmlyZXdvcmtzSXRlbQcNAEZpcmV3b3JrQ29sb3IBAAAAAgEMAEZpcmV3b3JrVHlwZQAHDABGaXJld29ya0ZhZGUAAAAAAQ0ARmlyZXdvcmtUcmFpbAABDwBGaXJld29ya0ZsaWNrZXIAAAA=" + }, + { + "id" : 402, + "damage" : 6, + "nbt_b64" : "CgAAAwsAY3VzdG9tQ29sb3KcnBb/Cg0ARmlyZXdvcmtzSXRlbQcNAEZpcmV3b3JrQ29sb3IBAAAABgEMAEZpcmV3b3JrVHlwZQAHDABGaXJld29ya0ZhZGUAAAAAAQ0ARmlyZXdvcmtUcmFpbAABDwBGaXJld29ya0ZsaWNrZXIAAAA=" + } +]
\ No newline at end of file diff --git a/serverlist-server/src/main/resources/tables/entity_identifiers.dat b/serverlist-server/src/main/resources/tables/entity_identifiers.dat Binary files differnew file mode 100644 index 0000000..c4f1524 --- /dev/null +++ b/serverlist-server/src/main/resources/tables/entity_identifiers.dat diff --git a/serverlist-server/src/main/resources/tables/legacy_block_ids.json b/serverlist-server/src/main/resources/tables/legacy_block_ids.json new file mode 100644 index 0000000..e5347d8 --- /dev/null +++ b/serverlist-server/src/main/resources/tables/legacy_block_ids.json @@ -0,0 +1,462 @@ +{ + "minecraft:air": 0, + "minecraft:stone": 1, + "minecraft:grass": 2, + "minecraft:dirt": 3, + "minecraft:cobblestone": 4, + "minecraft:planks": 5, + "minecraft:sapling": 6, + "minecraft:bedrock": 7, + "minecraft:flowing_water": 8, + "minecraft:water": 9, + "minecraft:flowing_lava": 10, + "minecraft:lava": 11, + "minecraft:sand": 12, + "minecraft:gravel": 13, + "minecraft:gold_ore": 14, + "minecraft:iron_ore": 15, + "minecraft:coal_ore": 16, + "minecraft:log": 17, + "minecraft:leaves": 18, + "minecraft:sponge": 19, + "minecraft:glass": 20, + "minecraft:lapis_ore": 21, + "minecraft:lapis_block": 22, + "minecraft:dispenser": 23, + "minecraft:sandstone": 24, + "minecraft:noteblock": 25, + "minecraft:bed": 26, + "minecraft:golden_rail": 27, + "minecraft:detector_rail": 28, + "minecraft:sticky_piston": 29, + "minecraft:web": 30, + "minecraft:tallgrass": 31, + "minecraft:deadbush": 32, + "minecraft:piston": 33, + "minecraft:pistonArmCollision": 34, + "minecraft:wool": 35, + "minecraft:element_0": 36, + "minecraft:yellow_flower": 37, + "minecraft:red_flower": 38, + "minecraft:brown_mushroom": 39, + "minecraft:red_mushroom": 40, + "minecraft:gold_block": 41, + "minecraft:iron_block": 42, + "minecraft:double_stone_slab": 43, + "minecraft:stone_slab": 44, + "minecraft:brick_block": 45, + "minecraft:tnt": 46, + "minecraft:bookshelf": 47, + "minecraft:mossy_cobblestone": 48, + "minecraft:obsidian": 49, + "minecraft:torch": 50, + "minecraft:fire": 51, + "minecraft:mob_spawner": 52, + "minecraft:oak_stairs": 53, + "minecraft:chest": 54, + "minecraft:redstone_wire": 55, + "minecraft:diamond_ore": 56, + "minecraft:diamond_block": 57, + "minecraft:crafting_table": 58, + "minecraft:wheat": 59, + "minecraft:farmland": 60, + "minecraft:furnace": 61, + "minecraft:lit_furnace": 62, + "minecraft:standing_sign": 63, + "minecraft:wooden_door": 64, + "minecraft:ladder": 65, + "minecraft:rail": 66, + "minecraft:stone_stairs": 67, + "minecraft:wall_sign": 68, + "minecraft:lever": 69, + "minecraft:stone_pressure_plate": 70, + "minecraft:iron_door": 71, + "minecraft:wooden_pressure_plate": 72, + "minecraft:redstone_ore": 73, + "minecraft:lit_redstone_ore": 74, + "minecraft:unlit_redstone_torch": 75, + "minecraft:redstone_torch": 76, + "minecraft:stone_button": 77, + "minecraft:snow_layer": 78, + "minecraft:ice": 79, + "minecraft:snow": 80, + "minecraft:cactus": 81, + "minecraft:clay": 82, + "minecraft:reeds": 83, + "minecraft:jukebox": 84, + "minecraft:fence": 85, + "minecraft:pumpkin": 86, + "minecraft:netherrack": 87, + "minecraft:soul_sand": 88, + "minecraft:glowstone": 89, + "minecraft:portal": 90, + "minecraft:lit_pumpkin": 91, + "minecraft:cake": 92, + "minecraft:unpowered_repeater": 93, + "minecraft:powered_repeater": 94, + "minecraft:invisibleBedrock": 95, + "minecraft:trapdoor": 96, + "minecraft:monster_egg": 97, + "minecraft:stonebrick": 98, + "minecraft:brown_mushroom_block": 99, + "minecraft:red_mushroom_block": 100, + "minecraft:iron_bars": 101, + "minecraft:glass_pane": 102, + "minecraft:melon_block": 103, + "minecraft:pumpkin_stem": 104, + "minecraft:melon_stem": 105, + "minecraft:vine": 106, + "minecraft:fence_gate": 107, + "minecraft:brick_stairs": 108, + "minecraft:stone_brick_stairs": 109, + "minecraft:mycelium": 110, + "minecraft:waterlily": 111, + "minecraft:nether_brick": 112, + "minecraft:nether_brick_fence": 113, + "minecraft:nether_brick_stairs": 114, + "minecraft:nether_wart": 115, + "minecraft:enchanting_table": 116, + "minecraft:brewing_stand": 117, + "minecraft:cauldron": 118, + "minecraft:end_portal": 119, + "minecraft:end_portal_frame": 120, + "minecraft:end_stone": 121, + "minecraft:dragon_egg": 122, + "minecraft:redstone_lamp": 123, + "minecraft:lit_redstone_lamp": 124, + "minecraft:dropper": 125, + "minecraft:activator_rail": 126, + "minecraft:cocoa": 127, + "minecraft:sandstone_stairs": 128, + "minecraft:emerald_ore": 129, + "minecraft:ender_chest": 130, + "minecraft:tripwire_hook": 131, + "minecraft:tripWire": 132, + "minecraft:emerald_block": 133, + "minecraft:spruce_stairs": 134, + "minecraft:birch_stairs": 135, + "minecraft:jungle_stairs": 136, + "minecraft:command_block": 137, + "minecraft:beacon": 138, + "minecraft:cobblestone_wall": 139, + "minecraft:flower_pot": 140, + "minecraft:carrots": 141, + "minecraft:potatoes": 142, + "minecraft:wooden_button": 143, + "minecraft:skull": 144, + "minecraft:anvil": 145, + "minecraft:trapped_chest": 146, + "minecraft:light_weighted_pressure_plate": 147, + "minecraft:heavy_weighted_pressure_plate": 148, + "minecraft:unpowered_comparator": 149, + "minecraft:powered_comparator": 150, + "minecraft:daylight_detector": 151, + "minecraft:redstone_block": 152, + "minecraft:quartz_ore": 153, + "minecraft:hopper": 154, + "minecraft:quartz_block": 155, + "minecraft:quartz_stairs": 156, + "minecraft:double_wooden_slab": 157, + "minecraft:wooden_slab": 158, + "minecraft:stained_hardened_clay": 159, + "minecraft:stained_glass_pane": 160, + "minecraft:leaves2": 161, + "minecraft:log2": 162, + "minecraft:acacia_stairs": 163, + "minecraft:dark_oak_stairs": 164, + "minecraft:slime": 165, + "minecraft:iron_trapdoor": 167, + "minecraft:prismarine": 168, + "minecraft:seaLantern": 169, + "minecraft:hay_block": 170, + "minecraft:carpet": 171, + "minecraft:hardened_clay": 172, + "minecraft:coal_block": 173, + "minecraft:packed_ice": 174, + "minecraft:double_plant": 175, + "minecraft:standing_banner": 176, + "minecraft:wall_banner": 177, + "minecraft:daylight_detector_inverted": 178, + "minecraft:red_sandstone": 179, + "minecraft:red_sandstone_stairs": 180, + "minecraft:double_stone_slab2": 181, + "minecraft:stone_slab2": 182, + "minecraft:spruce_fence_gate": 183, + "minecraft:birch_fence_gate": 184, + "minecraft:jungle_fence_gate": 185, + "minecraft:dark_oak_fence_gate": 186, + "minecraft:acacia_fence_gate": 187, + "minecraft:repeating_command_block": 188, + "minecraft:chain_command_block": 189, + "minecraft:hard_glass_pane": 190, + "minecraft:hard_stained_glass_pane": 191, + "minecraft:chemical_heat": 192, + "minecraft:spruce_door": 193, + "minecraft:birch_door": 194, + "minecraft:jungle_door": 195, + "minecraft:acacia_door": 196, + "minecraft:dark_oak_door": 197, + "minecraft:grass_path": 198, + "minecraft:frame": 199, + "minecraft:chorus_flower": 200, + "minecraft:purpur_block": 201, + "minecraft:colored_torch_rg": 202, + "minecraft:purpur_stairs": 203, + "minecraft:colored_torch_bp": 204, + "minecraft:undyed_shulker_box": 205, + "minecraft:end_bricks": 206, + "minecraft:frosted_ice": 207, + "minecraft:end_rod": 208, + "minecraft:end_gateway": 209, + "minecraft:magma": 213, + "minecraft:nether_wart_block": 214, + "minecraft:red_nether_brick": 215, + "minecraft:bone_block": 216, + "minecraft:shulker_box": 218, + "minecraft:purple_glazed_terracotta": 219, + "minecraft:white_glazed_terracotta": 220, + "minecraft:orange_glazed_terracotta": 221, + "minecraft:magenta_glazed_terracotta": 222, + "minecraft:light_blue_glazed_terracotta": 223, + "minecraft:yellow_glazed_terracotta": 224, + "minecraft:lime_glazed_terracotta": 225, + "minecraft:pink_glazed_terracotta": 226, + "minecraft:gray_glazed_terracotta": 227, + "minecraft:silver_glazed_terracotta": 228, + "minecraft:cyan_glazed_terracotta": 229, + "minecraft:blue_glazed_terracotta": 231, + "minecraft:brown_glazed_terracotta": 232, + "minecraft:green_glazed_terracotta": 233, + "minecraft:red_glazed_terracotta": 234, + "minecraft:black_glazed_terracotta": 235, + "minecraft:concrete": 236, + "minecraft:concretePowder": 237, + "minecraft:chemistry_table": 238, + "minecraft:underwater_torch": 239, + "minecraft:chorus_plant": 240, + "minecraft:stained_glass": 241, + "minecraft:podzol": 243, + "minecraft:beetroot": 244, + "minecraft:stonecutter": 245, + "minecraft:glowingobsidian": 246, + "minecraft:netherreactor": 247, + "minecraft:info_update": 248, + "minecraft:info_update2": 249, + "minecraft:movingBlock": 250, + "minecraft:observer": 251, + "minecraft:structure_block": 252, + "minecraft:hard_glass": 253, + "minecraft:hard_stained_glass": 254, + "minecraft:reserved6": 255, + "minecraft:prismarine_stairs": 257, + "minecraft:dark_prismarine_stairs": 258, + "minecraft:prismarine_bricks_stairs": 259, + "minecraft:stripped_spruce_log": 260, + "minecraft:stripped_birch_log": 261, + "minecraft:stripped_jungle_log": 262, + "minecraft:stripped_acacia_log": 263, + "minecraft:stripped_dark_oak_log": 264, + "minecraft:stripped_oak_log": 265, + "minecraft:blue_ice": 266, + "minecraft:element_1": 267, + "minecraft:element_2": 268, + "minecraft:element_3": 269, + "minecraft:element_4": 270, + "minecraft:element_5": 271, + "minecraft:element_6": 272, + "minecraft:element_7": 273, + "minecraft:element_8": 274, + "minecraft:element_9": 275, + "minecraft:element_10": 276, + "minecraft:element_11": 277, + "minecraft:element_12": 278, + "minecraft:element_13": 279, + "minecraft:element_14": 280, + "minecraft:element_15": 281, + "minecraft:element_16": 282, + "minecraft:element_17": 283, + "minecraft:element_18": 284, + "minecraft:element_19": 285, + "minecraft:element_20": 286, + "minecraft:element_21": 287, + "minecraft:element_22": 288, + "minecraft:element_23": 289, + "minecraft:element_24": 290, + "minecraft:element_25": 291, + "minecraft:element_26": 292, + "minecraft:element_27": 293, + "minecraft:element_28": 294, + "minecraft:element_29": 295, + "minecraft:element_30": 296, + "minecraft:element_31": 297, + "minecraft:element_32": 298, + "minecraft:element_33": 299, + "minecraft:element_34": 300, + "minecraft:element_35": 301, + "minecraft:element_36": 302, + "minecraft:element_37": 303, + "minecraft:element_38": 304, + "minecraft:element_39": 305, + "minecraft:element_40": 306, + "minecraft:element_41": 307, + "minecraft:element_42": 308, + "minecraft:element_43": 309, + "minecraft:element_44": 310, + "minecraft:element_45": 311, + "minecraft:element_46": 312, + "minecraft:element_47": 313, + "minecraft:element_48": 314, + "minecraft:element_49": 315, + "minecraft:element_50": 316, + "minecraft:element_51": 317, + "minecraft:element_52": 318, + "minecraft:element_53": 319, + "minecraft:element_54": 320, + "minecraft:element_55": 321, + "minecraft:element_56": 322, + "minecraft:element_57": 323, + "minecraft:element_58": 324, + "minecraft:element_59": 325, + "minecraft:element_60": 326, + "minecraft:element_61": 327, + "minecraft:element_62": 328, + "minecraft:element_63": 329, + "minecraft:element_64": 330, + "minecraft:element_65": 331, + "minecraft:element_66": 332, + "minecraft:element_67": 333, + "minecraft:element_68": 334, + "minecraft:element_69": 335, + "minecraft:element_70": 336, + "minecraft:element_71": 337, + "minecraft:element_72": 338, + "minecraft:element_73": 339, + "minecraft:element_74": 340, + "minecraft:element_75": 341, + "minecraft:element_76": 342, + "minecraft:element_77": 343, + "minecraft:element_78": 344, + "minecraft:element_79": 345, + "minecraft:element_80": 346, + "minecraft:element_81": 347, + "minecraft:element_82": 348, + "minecraft:element_83": 349, + "minecraft:element_84": 350, + "minecraft:element_85": 351, + "minecraft:element_86": 352, + "minecraft:element_87": 353, + "minecraft:element_88": 354, + "minecraft:element_89": 355, + "minecraft:element_90": 356, + "minecraft:element_91": 357, + "minecraft:element_92": 358, + "minecraft:element_93": 359, + "minecraft:element_94": 360, + "minecraft:element_95": 361, + "minecraft:element_96": 362, + "minecraft:element_97": 363, + "minecraft:element_98": 364, + "minecraft:element_99": 365, + "minecraft:element_100": 366, + "minecraft:element_101": 367, + "minecraft:element_102": 368, + "minecraft:element_103": 369, + "minecraft:element_104": 370, + "minecraft:element_105": 371, + "minecraft:element_106": 372, + "minecraft:element_107": 373, + "minecraft:element_108": 374, + "minecraft:element_109": 375, + "minecraft:element_110": 376, + "minecraft:element_111": 377, + "minecraft:element_112": 378, + "minecraft:element_113": 379, + "minecraft:element_114": 380, + "minecraft:element_115": 381, + "minecraft:element_116": 382, + "minecraft:element_117": 383, + "minecraft:element_118": 384, + "minecraft:seagrass": 385, + "minecraft:coral": 386, + "minecraft:coral_block": 387, + "minecraft:coral_fan": 388, + "minecraft:coral_fan_dead": 389, + "minecraft:coral_fan_hang": 390, + "minecraft:coral_fan_hang2": 391, + "minecraft:coral_fan_hang3": 392, + "minecraft:kelp": 393, + "minecraft:dried_kelp_block": 394, + "minecraft:acacia_button": 395, + "minecraft:birch_button": 396, + "minecraft:dark_oak_button": 397, + "minecraft:jungle_button": 398, + "minecraft:spruce_button": 399, + "minecraft:acacia_trapdoor": 400, + "minecraft:birch_trapdoor": 401, + "minecraft:dark_oak_trapdoor": 402, + "minecraft:jungle_trapdoor": 403, + "minecraft:spruce_trapdoor": 404, + "minecraft:acacia_pressure_plate": 405, + "minecraft:birch_pressure_plate": 406, + "minecraft:dark_oak_pressure_plate": 407, + "minecraft:jungle_pressure_plate": 408, + "minecraft:spruce_pressure_plate": 409, + "minecraft:carved_pumpkin": 410, + "minecraft:sea_pickle": 411, + "minecraft:conduit": 412, + "minecraft:turtle_egg": 414, + "minecraft:bubble_column": 415, + "minecraft:barrier": 416, + "minecraft:stone_slab3": 417, + "minecraft:bamboo": 418, + "minecraft:bamboo_sapling": 419, + "minecraft:scaffolding": 420, + "minecraft:stone_slab4": 421, + "minecraft:double_stone_slab3": 422, + "minecraft:double_stone_slab4": 423, + "minecraft:granite_stairs": 424, + "minecraft:diorite_stairs": 425, + "minecraft:andesite_stairs": 426, + "minecraft:polished_granite_stairs": 427, + "minecraft:polished_diorite_stairs": 428, + "minecraft:polished_andesite_stairs": 429, + "minecraft:mossy_stone_brick_stairs": 430, + "minecraft:smooth_red_sandstone_stairs": 431, + "minecraft:smooth_sandstone_stairs": 432, + "minecraft:end_brick_stairs": 433, + "minecraft:mossy_cobblestone_stairs": 434, + "minecraft:normal_stone_stairs": 435, + "minecraft:spruce_standing_sign": 436, + "minecraft:spruce_wall_sign": 437, + "minecraft:smooth_stone": 438, + "minecraft:red_nether_brick_stairs": 439, + "minecraft:smooth_quartz_stairs": 440, + "minecraft:birch_standing_sign": 441, + "minecraft:birch_wall_sign": 442, + "minecraft:jungle_standing_sign": 443, + "minecraft:jungle_wall_sign": 444, + "minecraft:acacia_standing_sign": 445, + "minecraft:acacia_wall_sign": 446, + "minecraft:darkoak_standing_sign": 447, + "minecraft:darkoak_wall_sign": 448, + "minecraft:lectern": 449, + "minecraft:grindstone": 450, + "minecraft:blast_furnace": 451, + "minecraft:stonecutter_block": 452, + "minecraft:smoker": 453, + "minecraft:lit_smoker": 454, + "minecraft:cartography_table": 455, + "minecraft:fletching_table": 456, + "minecraft:smithing_table": 457, + "minecraft:barrel": 458, + "minecraft:loom": 459, + "minecraft:bell": 461, + "minecraft:sweet_berry_bush": 462, + "minecraft:lantern": 463, + "minecraft:campfire": 464, + "minecraft:lava_cauldron": 465, + "minecraft:jigsaw": 466, + "minecraft:wood": 467, + "minecraft:composter": 468, + "minecraft:lit_blast_furnace": 469 +}
\ No newline at end of file diff --git a/serverlist-server/src/main/resources/tables/legacy_item_ids.json b/serverlist-server/src/main/resources/tables/legacy_item_ids.json new file mode 100644 index 0000000..2198924 --- /dev/null +++ b/serverlist-server/src/main/resources/tables/legacy_item_ids.json @@ -0,0 +1,229 @@ +{ + "minecraft:iron_shovel": 256, + "minecraft:iron_pickaxe": 257, + "minecraft:iron_axe": 258, + "minecraft:flint_and_steel": 259, + "minecraft:apple": 260, + "minecraft:bow": 261, + "minecraft:arrow": 262, + "minecraft:coal": 263, + "minecraft:diamond": 264, + "minecraft:iron_ingot": 265, + "minecraft:gold_ingot": 266, + "minecraft:iron_sword": 267, + "minecraft:wooden_sword": 268, + "minecraft:wooden_shovel": 269, + "minecraft:wooden_pickaxe": 270, + "minecraft:wooden_axe": 271, + "minecraft:stone_sword": 272, + "minecraft:stone_shovel": 273, + "minecraft:stone_pickaxe": 274, + "minecraft:stone_axe": 275, + "minecraft:diamond_sword": 276, + "minecraft:diamond_shovel": 277, + "minecraft:diamond_pickaxe": 278, + "minecraft:diamond_axe": 279, + "minecraft:stick": 280, + "minecraft:bowl": 281, + "minecraft:mushroom_stew": 282, + "minecraft:golden_sword": 283, + "minecraft:golden_shovel": 284, + "minecraft:golden_pickaxe": 285, + "minecraft:golden_axe": 286, + "minecraft:string": 287, + "minecraft:feather": 288, + "minecraft:gunpowder": 289, + "minecraft:wooden_hoe": 290, + "minecraft:stone_hoe": 291, + "minecraft:iron_hoe": 292, + "minecraft:diamond_hoe": 293, + "minecraft:golden_hoe": 294, + "minecraft:wheat_seeds": 295, + "minecraft:wheat": 296, + "minecraft:bread": 297, + "minecraft:leather_helmet": 298, + "minecraft:leather_chestplate": 299, + "minecraft:leather_leggings": 300, + "minecraft:leather_boots": 301, + "minecraft:chainmail_helmet": 302, + "minecraft:chainmail_chestplate": 303, + "minecraft:chainmail_leggings": 304, + "minecraft:chainmail_boots": 305, + "minecraft:iron_helmet": 306, + "minecraft:iron_chestplate": 307, + "minecraft:iron_leggings": 308, + "minecraft:iron_boots": 309, + "minecraft:diamond_helmet": 310, + "minecraft:diamond_chestplate": 311, + "minecraft:diamond_leggings": 312, + "minecraft:diamond_boots": 313, + "minecraft:golden_helmet": 314, + "minecraft:golden_chestplate": 315, + "minecraft:golden_leggings": 316, + "minecraft:golden_boots": 317, + "minecraft:flint": 318, + "minecraft:porkchop": 319, + "minecraft:cooked_porkchop": 320, + "minecraft:painting": 321, + "minecraft:golden_apple": 322, + "minecraft:sign": 323, + "minecraft:wooden_door": 324, + "minecraft:bucket": 325, + "minecraft:minecart": 328, + "minecraft:saddle": 329, + "minecraft:iron_door": 330, + "minecraft:redstone": 331, + "minecraft:snowball": 332, + "minecraft:boat": 333, + "minecraft:leather": 334, + "minecraft:kelp": 335, + "minecraft:brick": 336, + "minecraft:clay_ball": 337, + "minecraft:reeds": 338, + "minecraft:paper": 339, + "minecraft:book": 340, + "minecraft:slime_ball": 341, + "minecraft:chest_minecart": 342, + "minecraft:egg": 344, + "minecraft:compass": 345, + "minecraft:fishing_rod": 346, + "minecraft:clock": 347, + "minecraft:glowstone_dust": 348, + "minecraft:fish": 349, + "minecraft:cooked_fish": 350, + "minecraft:dye": 351, + "minecraft:bone": 352, + "minecraft:sugar": 353, + "minecraft:cake": 354, + "minecraft:bed": 355, + "minecraft:repeater": 356, + "minecraft:cookie": 357, + "minecraft:map": 358, + "minecraft:shears": 359, + "minecraft:melon": 360, + "minecraft:pumpkin_seeds": 361, + "minecraft:melon_seeds": 362, + "minecraft:beef": 363, + "minecraft:cooked_beef": 364, + "minecraft:chicken": 365, + "minecraft:cooked_chicken": 366, + "minecraft:rotten_flesh": 367, + "minecraft:ender_pearl": 368, + "minecraft:blaze_rod": 369, + "minecraft:ghast_tear": 370, + "minecraft:gold_nugget": 371, + "minecraft:nether_wart": 372, + "minecraft:potion": 373, + "minecraft:glass_bottle": 374, + "minecraft:spider_eye": 375, + "minecraft:fermented_spider_eye": 376, + "minecraft:blaze_powder": 377, + "minecraft:magma_cream": 378, + "minecraft:brewing_stand": 379, + "minecraft:cauldron": 380, + "minecraft:composter": 381, + "minecraft:speckled_melon": 382, + "minecraft:spawn_egg": 383, + "minecraft:experience_bottle": 384, + "minecraft:fireball": 385, + "minecraft:writable_book": 386, + "minecraft:written_book": 387, + "minecraft:emerald": 388, + "minecraft:frame": 389, + "minecraft:flower_pot": 390, + "minecraft:carrot": 391, + "minecraft:potato": 392, + "minecraft:baked_potato": 393, + "minecraft:poisonous_potato": 394, + "minecraft:emptyMap": 395, + "minecraft:golden_carrot": 396, + "minecraft:skull": 397, + "minecraft:carrotOnAStick": 398, + "minecraft:netherStar": 399, + "minecraft:pumpkin_pie": 400, + "minecraft:fireworks": 401, + "minecraft:fireworksCharge": 402, + "minecraft:enchanted_book": 403, + "minecraft:comparator": 404, + "minecraft:netherbrick": 405, + "minecraft:quartz": 406, + "minecraft:tnt_minecart": 407, + "minecraft:hopper_minecart": 408, + "minecraft:prismarine_shard": 409, + "minecraft:hopper": 410, + "minecraft:rabbit": 411, + "minecraft:cooked_rabbit": 412, + "minecraft:rabbit_stew": 413, + "minecraft:rabbit_foot": 414, + "minecraft:rabbit_hide": 415, + "minecraft:horsearmorleather": 416, + "minecraft:horsearmoriron": 417, + "minecraft:horsearmorgold": 418, + "minecraft:horsearmordiamond": 419, + "minecraft:lead": 420, + "minecraft:nametag": 422, + "minecraft:muttonRaw": 423, + "minecraft:muttonCooked": 424, + "minecraft:armor_stand": 425, + "minecraft:end_crystal": 426, + "minecraft:spruce_door": 427, + "minecraft:birch_door": 428, + "minecraft:jungle_door": 429, + "minecraft:acacia_door": 430, + "minecraft:dark_oak_door": 431, + "minecraft:chorus_fruit": 432, + "minecraft:chorus_fruit_popped": 433, + "minecraft:banner_pattern": 434, + "minecraft:dragon_breath": 437, + "minecraft:splash_potion": 438, + "minecraft:lingering_potion": 441, + "minecraft:sparkler": 442, + "minecraft:command_block_minecart": 443, + "minecraft:elytra": 444, + "minecraft:shulker_shell": 445, + "minecraft:banner": 446, + "minecraft:medicine": 447, + "minecraft:balloon": 448, + "minecraft:rapid_fertilizer": 449, + "minecraft:totem": 450, + "minecraft:bleach": 451, + "minecraft:iron_nugget": 452, + "minecraft:ice_bomb": 453, + "minecraft:trident": 455, + "minecraft:beetroot": 457, + "minecraft:beetroot_seeds": 458, + "minecraft:beetroot_soup": 459, + "minecraft:salmon": 460, + "minecraft:clownfish": 461, + "minecraft:pufferfish": 462, + "minecraft:cooked_salmon": 463, + "minecraft:dried_kelp": 464, + "minecraft:nautilus_shell": 465, + "minecraft:appleEnchanted": 466, + "minecraft:heart_of_the_sea": 467, + "minecraft:turtle_shell_piece": 468, + "minecraft:turtle_helmet": 469, + "minecraft:phantom_membrane": 470, + "minecraft:crossbow": 471, + "minecraft:spruce_sign": 472, + "minecraft:birch_sign": 473, + "minecraft:jungle_sign": 474, + "minecraft:acacia_sign": 475, + "minecraft:darkoak_sign": 476, + "minecraft:sweet_berries": 477, + "minecraft:compound": 499, + "minecraft:record_13": 500, + "minecraft:record_cat": 501, + "minecraft:record_blocks": 502, + "minecraft:record_chirp": 503, + "minecraft:record_far": 504, + "minecraft:record_mall": 505, + "minecraft:record_mellohi": 506, + "minecraft:record_stal": 507, + "minecraft:record_strad": 508, + "minecraft:record_ward": 509, + "minecraft:record_11": 510, + "minecraft:record_wait": 511, + "minecraft:shield": 513, + "minecraft:campfire": 720 +} diff --git a/serverlist-server/src/main/resources/tables/runtimeid_table.json b/serverlist-server/src/main/resources/tables/runtimeid_table.json new file mode 100644 index 0000000..22b8bad --- /dev/null +++ b/serverlist-server/src/main/resources/tables/runtimeid_table.json @@ -0,0 +1,15917 @@ +[ + { + "name" : "minecraft:air", + "id" : 0, + "data" : 0 + }, + { + "name" : "minecraft:stone", + "id" : 1, + "data" : 0 + }, + { + "name" : "minecraft:stone", + "id" : 1, + "data" : 1 + }, + { + "name" : "minecraft:stone", + "id" : 1, + "data" : 2 + }, + { + "name" : "minecraft:stone", + "id" : 1, + "data" : 3 + }, + { + "name" : "minecraft:stone", + "id" : 1, + "data" : 4 + }, + { + "name" : "minecraft:stone", + "id" : 1, + "data" : 5 + }, + { + "name" : "minecraft:stone", + "id" : 1, + "data" : 6 + }, + { + "name" : "minecraft:stone", + "id" : 1, + "data" : 7 + }, + { + "name" : "minecraft:grass", + "id" : 2, + "data" : 0 + }, + { + "name" : "minecraft:dirt", + "id" : 3, + "data" : 0 + }, + { + "name" : "minecraft:dirt", + "id" : 3, + "data" : 1 + }, + { + "name" : "minecraft:cobblestone", + "id" : 4, + "data" : 0 + }, + { + "name" : "minecraft:planks", + "id" : 5, + "data" : 0 + }, + { + "name" : "minecraft:planks", + "id" : 5, + "data" : 1 + }, + { + "name" : "minecraft:planks", + "id" : 5, + "data" : 2 + }, + { + "name" : "minecraft:planks", + "id" : 5, + "data" : 3 + }, + { + "name" : "minecraft:planks", + "id" : 5, + "data" : 4 + }, + { + "name" : "minecraft:planks", + "id" : 5, + "data" : 5 + }, + { + "name" : "minecraft:planks", + "id" : 5, + "data" : 6 + }, + { + "name" : "minecraft:planks", + "id" : 5, + "data" : 7 + }, + { + "name" : "minecraft:sapling", + "id" : 6, + "data" : 0 + }, + { + "name" : "minecraft:sapling", + "id" : 6, + "data" : 1 + }, + { + "name" : "minecraft:sapling", + "id" : 6, + "data" : 2 + }, + { + "name" : "minecraft:sapling", + "id" : 6, + "data" : 3 + }, + { + "name" : "minecraft:sapling", + "id" : 6, + "data" : 4 + }, + { + "name" : "minecraft:sapling", + "id" : 6, + "data" : 5 + }, + { + "name" : "minecraft:sapling", + "id" : 6, + "data" : 6 + }, + { + "name" : "minecraft:sapling", + "id" : 6, + "data" : 7 + }, + { + "name" : "minecraft:sapling", + "id" : 6, + "data" : 8 + }, + { + "name" : "minecraft:sapling", + "id" : 6, + "data" : 9 + }, + { + "name" : "minecraft:sapling", + "id" : 6, + "data" : 10 + }, + { + "name" : "minecraft:sapling", + "id" : 6, + "data" : 11 + }, + { + "name" : "minecraft:sapling", + "id" : 6, + "data" : 12 + }, + { + "name" : "minecraft:sapling", + "id" : 6, + "data" : 13 + }, + { + "name" : "minecraft:sapling", + "id" : 6, + "data" : 14 + }, + { + "name" : "minecraft:sapling", + "id" : 6, + "data" : 15 + }, + { + "name" : "minecraft:bedrock", + "id" : 7, + "data" : 0 + }, + { + "name" : "minecraft:bedrock", + "id" : 7, + "data" : 1 + }, + { + "name" : "minecraft:flowing_water", + "id" : 8, + "data" : 0 + }, + { + "name" : "minecraft:flowing_water", + "id" : 8, + "data" : 1 + }, + { + "name" : "minecraft:flowing_water", + "id" : 8, + "data" : 2 + }, + { + "name" : "minecraft:flowing_water", + "id" : 8, + "data" : 3 + }, + { + "name" : "minecraft:flowing_water", + "id" : 8, + "data" : 4 + }, + { + "name" : "minecraft:flowing_water", + "id" : 8, + "data" : 5 + }, + { + "name" : "minecraft:flowing_water", + "id" : 8, + "data" : 6 + }, + { + "name" : "minecraft:flowing_water", + "id" : 8, + "data" : 7 + }, + { + "name" : "minecraft:flowing_water", + "id" : 8, + "data" : 8 + }, + { + "name" : "minecraft:flowing_water", + "id" : 8, + "data" : 9 + }, + { + "name" : "minecraft:flowing_water", + "id" : 8, + "data" : 10 + }, + { + "name" : "minecraft:flowing_water", + "id" : 8, + "data" : 11 + }, + { + "name" : "minecraft:flowing_water", + "id" : 8, + "data" : 12 + }, + { + "name" : "minecraft:flowing_water", + "id" : 8, + "data" : 13 + }, + { + "name" : "minecraft:flowing_water", + "id" : 8, + "data" : 14 + }, + { + "name" : "minecraft:flowing_water", + "id" : 8, + "data" : 15 + }, + { + "name" : "minecraft:water", + "id" : 9, + "data" : 0 + }, + { + "name" : "minecraft:water", + "id" : 9, + "data" : 1 + }, + { + "name" : "minecraft:water", + "id" : 9, + "data" : 2 + }, + { + "name" : "minecraft:water", + "id" : 9, + "data" : 3 + }, + { + "name" : "minecraft:water", + "id" : 9, + "data" : 4 + }, + { + "name" : "minecraft:water", + "id" : 9, + "data" : 5 + }, + { + "name" : "minecraft:water", + "id" : 9, + "data" : 6 + }, + { + "name" : "minecraft:water", + "id" : 9, + "data" : 7 + }, + { + "name" : "minecraft:water", + "id" : 9, + "data" : 8 + }, + { + "name" : "minecraft:water", + "id" : 9, + "data" : 9 + }, + { + "name" : "minecraft:water", + "id" : 9, + "data" : 10 + }, + { + "name" : "minecraft:water", + "id" : 9, + "data" : 11 + }, + { + "name" : "minecraft:water", + "id" : 9, + "data" : 12 + }, + { + "name" : "minecraft:water", + "id" : 9, + "data" : 13 + }, + { + "name" : "minecraft:water", + "id" : 9, + "data" : 14 + }, + { + "name" : "minecraft:water", + "id" : 9, + "data" : 15 + }, + { + "name" : "minecraft:flowing_lava", + "id" : 10, + "data" : 0 + }, + { + "name" : "minecraft:flowing_lava", + "id" : 10, + "data" : 1 + }, + { + "name" : "minecraft:flowing_lava", + "id" : 10, + "data" : 2 + }, + { + "name" : "minecraft:flowing_lava", + "id" : 10, + "data" : 3 + }, + { + "name" : "minecraft:flowing_lava", + "id" : 10, + "data" : 4 + }, + { + "name" : "minecraft:flowing_lava", + "id" : 10, + "data" : 5 + }, + { + "name" : "minecraft:flowing_lava", + "id" : 10, + "data" : 6 + }, + { + "name" : "minecraft:flowing_lava", + "id" : 10, + "data" : 7 + }, + { + "name" : "minecraft:flowing_lava", + "id" : 10, + "data" : 8 + }, + { + "name" : "minecraft:flowing_lava", + "id" : 10, + "data" : 9 + }, + { + "name" : "minecraft:flowing_lava", + "id" : 10, + "data" : 10 + }, + { + "name" : "minecraft:flowing_lava", + "id" : 10, + "data" : 11 + }, + { + "name" : "minecraft:flowing_lava", + "id" : 10, + "data" : 12 + }, + { + "name" : "minecraft:flowing_lava", + "id" : 10, + "data" : 13 + }, + { + "name" : "minecraft:flowing_lava", + "id" : 10, + "data" : 14 + }, + { + "name" : "minecraft:flowing_lava", + "id" : 10, + "data" : 15 + }, + { + "name" : "minecraft:lava", + "id" : 11, + "data" : 0 + }, + { + "name" : "minecraft:lava", + "id" : 11, + "data" : 1 + }, + { + "name" : "minecraft:lava", + "id" : 11, + "data" : 2 + }, + { + "name" : "minecraft:lava", + "id" : 11, + "data" : 3 + }, + { + "name" : "minecraft:lava", + "id" : 11, + "data" : 4 + }, + { + "name" : "minecraft:lava", + "id" : 11, + "data" : 5 + }, + { + "name" : "minecraft:lava", + "id" : 11, + "data" : 6 + }, + { + "name" : "minecraft:lava", + "id" : 11, + "data" : 7 + }, + { + "name" : "minecraft:lava", + "id" : 11, + "data" : 8 + }, + { + "name" : "minecraft:lava", + "id" : 11, + "data" : 9 + }, + { + "name" : "minecraft:lava", + "id" : 11, + "data" : 10 + }, + { + "name" : "minecraft:lava", + "id" : 11, + "data" : 11 + }, + { + "name" : "minecraft:lava", + "id" : 11, + "data" : 12 + }, + { + "name" : "minecraft:lava", + "id" : 11, + "data" : 13 + }, + { + "name" : "minecraft:lava", + "id" : 11, + "data" : 14 + }, + { + "name" : "minecraft:lava", + "id" : 11, + "data" : 15 + }, + { + "name" : "minecraft:sand", + "id" : 12, + "data" : 0 + }, + { + "name" : "minecraft:sand", + "id" : 12, + "data" : 1 + }, + { + "name" : "minecraft:gravel", + "id" : 13, + "data" : 0 + }, + { + "name" : "minecraft:gold_ore", + "id" : 14, + "data" : 0 + }, + { + "name" : "minecraft:iron_ore", + "id" : 15, + "data" : 0 + }, + { + "name" : "minecraft:coal_ore", + "id" : 16, + "data" : 0 + }, + { + "name" : "minecraft:log", + "id" : 17, + "data" : 0 + }, + { + "name" : "minecraft:log", + "id" : 17, + "data" : 1 + }, + { + "name" : "minecraft:log", + "id" : 17, + "data" : 2 + }, + { + "name" : "minecraft:log", + "id" : 17, + "data" : 3 + }, + { + "name" : "minecraft:log", + "id" : 17, + "data" : 4 + }, + { + "name" : "minecraft:log", + "id" : 17, + "data" : 5 + }, + { + "name" : "minecraft:log", + "id" : 17, + "data" : 6 + }, + { + "name" : "minecraft:log", + "id" : 17, + "data" : 7 + }, + { + "name" : "minecraft:log", + "id" : 17, + "data" : 8 + }, + { + "name" : "minecraft:log", + "id" : 17, + "data" : 9 + }, + { + "name" : "minecraft:log", + "id" : 17, + "data" : 10 + }, + { + "name" : "minecraft:log", + "id" : 17, + "data" : 11 + }, + { + "name" : "minecraft:log", + "id" : 17, + "data" : 12 + }, + { + "name" : "minecraft:log", + "id" : 17, + "data" : 13 + }, + { + "name" : "minecraft:log", + "id" : 17, + "data" : 14 + }, + { + "name" : "minecraft:log", + "id" : 17, + "data" : 15 + }, + { + "name" : "minecraft:leaves", + "id" : 18, + "data" : 0 + }, + { + "name" : "minecraft:leaves", + "id" : 18, + "data" : 1 + }, + { + "name" : "minecraft:leaves", + "id" : 18, + "data" : 2 + }, + { + "name" : "minecraft:leaves", + "id" : 18, + "data" : 3 + }, + { + "name" : "minecraft:leaves", + "id" : 18, + "data" : 4 + }, + { + "name" : "minecraft:leaves", + "id" : 18, + "data" : 5 + }, + { + "name" : "minecraft:leaves", + "id" : 18, + "data" : 6 + }, + { + "name" : "minecraft:leaves", + "id" : 18, + "data" : 7 + }, + { + "name" : "minecraft:leaves", + "id" : 18, + "data" : 8 + }, + { + "name" : "minecraft:leaves", + "id" : 18, + "data" : 9 + }, + { + "name" : "minecraft:leaves", + "id" : 18, + "data" : 10 + }, + { + "name" : "minecraft:leaves", + "id" : 18, + "data" : 11 + }, + { + "name" : "minecraft:leaves", + "id" : 18, + "data" : 12 + }, + { + "name" : "minecraft:leaves", + "id" : 18, + "data" : 13 + }, + { + "name" : "minecraft:leaves", + "id" : 18, + "data" : 14 + }, + { + "name" : "minecraft:leaves", + "id" : 18, + "data" : 15 + }, + { + "name" : "minecraft:sponge", + "id" : 19, + "data" : 0 + }, + { + "name" : "minecraft:sponge", + "id" : 19, + "data" : 1 + }, + { + "name" : "minecraft:glass", + "id" : 20, + "data" : 0 + }, + { + "name" : "minecraft:lapis_ore", + "id" : 21, + "data" : 0 + }, + { + "name" : "minecraft:lapis_block", + "id" : 22, + "data" : 0 + }, + { + "name" : "minecraft:dispenser", + "id" : 23, + "data" : 0 + }, + { + "name" : "minecraft:dispenser", + "id" : 23, + "data" : 1 + }, + { + "name" : "minecraft:dispenser", + "id" : 23, + "data" : 2 + }, + { + "name" : "minecraft:dispenser", + "id" : 23, + "data" : 3 + }, + { + "name" : "minecraft:dispenser", + "id" : 23, + "data" : 4 + }, + { + "name" : "minecraft:dispenser", + "id" : 23, + "data" : 5 + }, + { + "name" : "minecraft:dispenser", + "id" : 23, + "data" : 6 + }, + { + "name" : "minecraft:dispenser", + "id" : 23, + "data" : 7 + }, + { + "name" : "minecraft:dispenser", + "id" : 23, + "data" : 8 + }, + { + "name" : "minecraft:dispenser", + "id" : 23, + "data" : 9 + }, + { + "name" : "minecraft:dispenser", + "id" : 23, + "data" : 10 + }, + { + "name" : "minecraft:dispenser", + "id" : 23, + "data" : 11 + }, + { + "name" : "minecraft:dispenser", + "id" : 23, + "data" : 12 + }, + { + "name" : "minecraft:dispenser", + "id" : 23, + "data" : 13 + }, + { + "name" : "minecraft:dispenser", + "id" : 23, + "data" : 14 + }, + { + "name" : "minecraft:dispenser", + "id" : 23, + "data" : 15 + }, + { + "name" : "minecraft:sandstone", + "id" : 24, + "data" : 0 + }, + { + "name" : "minecraft:sandstone", + "id" : 24, + "data" : 1 + }, + { + "name" : "minecraft:sandstone", + "id" : 24, + "data" : 2 + }, + { + "name" : "minecraft:sandstone", + "id" : 24, + "data" : 3 + }, + { + "name" : "minecraft:noteblock", + "id" : 25, + "data" : 0 + }, + { + "name" : "minecraft:bed", + "id" : 26, + "data" : 0 + }, + { + "name" : "minecraft:bed", + "id" : 26, + "data" : 1 + }, + { + "name" : "minecraft:bed", + "id" : 26, + "data" : 2 + }, + { + "name" : "minecraft:bed", + "id" : 26, + "data" : 3 + }, + { + "name" : "minecraft:bed", + "id" : 26, + "data" : 4 + }, + { + "name" : "minecraft:bed", + "id" : 26, + "data" : 5 + }, + { + "name" : "minecraft:bed", + "id" : 26, + "data" : 6 + }, + { + "name" : "minecraft:bed", + "id" : 26, + "data" : 7 + }, + { + "name" : "minecraft:bed", + "id" : 26, + "data" : 8 + }, + { + "name" : "minecraft:bed", + "id" : 26, + "data" : 9 + }, + { + "name" : "minecraft:bed", + "id" : 26, + "data" : 10 + }, + { + "name" : "minecraft:bed", + "id" : 26, + "data" : 11 + }, + { + "name" : "minecraft:bed", + "id" : 26, + "data" : 12 + }, + { + "name" : "minecraft:bed", + "id" : 26, + "data" : 13 + }, + { + "name" : "minecraft:bed", + "id" : 26, + "data" : 14 + }, + { + "name" : "minecraft:bed", + "id" : 26, + "data" : 15 + }, + { + "name" : "minecraft:golden_rail", + "id" : 27, + "data" : 0 + }, + { + "name" : "minecraft:golden_rail", + "id" : 27, + "data" : 1 + }, + { + "name" : "minecraft:golden_rail", + "id" : 27, + "data" : 2 + }, + { + "name" : "minecraft:golden_rail", + "id" : 27, + "data" : 3 + }, + { + "name" : "minecraft:golden_rail", + "id" : 27, + "data" : 4 + }, + { + "name" : "minecraft:golden_rail", + "id" : 27, + "data" : 5 + }, + { + "name" : "minecraft:golden_rail", + "id" : 27, + "data" : 6 + }, + { + "name" : "minecraft:golden_rail", + "id" : 27, + "data" : 7 + }, + { + "name" : "minecraft:golden_rail", + "id" : 27, + "data" : 8 + }, + { + "name" : "minecraft:golden_rail", + "id" : 27, + "data" : 9 + }, + { + "name" : "minecraft:golden_rail", + "id" : 27, + "data" : 10 + }, + { + "name" : "minecraft:golden_rail", + "id" : 27, + "data" : 11 + }, + { + "name" : "minecraft:golden_rail", + "id" : 27, + "data" : 12 + }, + { + "name" : "minecraft:golden_rail", + "id" : 27, + "data" : 13 + }, + { + "name" : "minecraft:golden_rail", + "id" : 27, + "data" : 14 + }, + { + "name" : "minecraft:golden_rail", + "id" : 27, + "data" : 15 + }, + { + "name" : "minecraft:detector_rail", + "id" : 28, + "data" : 0 + }, + { + "name" : "minecraft:detector_rail", + "id" : 28, + "data" : 1 + }, + { + "name" : "minecraft:detector_rail", + "id" : 28, + "data" : 2 + }, + { + "name" : "minecraft:detector_rail", + "id" : 28, + "data" : 3 + }, + { + "name" : "minecraft:detector_rail", + "id" : 28, + "data" : 4 + }, + { + "name" : "minecraft:detector_rail", + "id" : 28, + "data" : 5 + }, + { + "name" : "minecraft:detector_rail", + "id" : 28, + "data" : 6 + }, + { + "name" : "minecraft:detector_rail", + "id" : 28, + "data" : 7 + }, + { + "name" : "minecraft:detector_rail", + "id" : 28, + "data" : 8 + }, + { + "name" : "minecraft:detector_rail", + "id" : 28, + "data" : 9 + }, + { + "name" : "minecraft:detector_rail", + "id" : 28, + "data" : 10 + }, + { + "name" : "minecraft:detector_rail", + "id" : 28, + "data" : 11 + }, + { + "name" : "minecraft:detector_rail", + "id" : 28, + "data" : 12 + }, + { + "name" : "minecraft:detector_rail", + "id" : 28, + "data" : 13 + }, + { + "name" : "minecraft:detector_rail", + "id" : 28, + "data" : 14 + }, + { + "name" : "minecraft:detector_rail", + "id" : 28, + "data" : 15 + }, + { + "name" : "minecraft:sticky_piston", + "id" : 29, + "data" : 0 + }, + { + "name" : "minecraft:sticky_piston", + "id" : 29, + "data" : 1 + }, + { + "name" : "minecraft:sticky_piston", + "id" : 29, + "data" : 2 + }, + { + "name" : "minecraft:sticky_piston", + "id" : 29, + "data" : 3 + }, + { + "name" : "minecraft:sticky_piston", + "id" : 29, + "data" : 4 + }, + { + "name" : "minecraft:sticky_piston", + "id" : 29, + "data" : 5 + }, + { + "name" : "minecraft:sticky_piston", + "id" : 29, + "data" : 6 + }, + { + "name" : "minecraft:sticky_piston", + "id" : 29, + "data" : 7 + }, + { + "name" : "minecraft:web", + "id" : 30, + "data" : 0 + }, + { + "name" : "minecraft:tallgrass", + "id" : 31, + "data" : 0 + }, + { + "name" : "minecraft:tallgrass", + "id" : 31, + "data" : 1 + }, + { + "name" : "minecraft:tallgrass", + "id" : 31, + "data" : 2 + }, + { + "name" : "minecraft:tallgrass", + "id" : 31, + "data" : 3 + }, + { + "name" : "minecraft:deadbush", + "id" : 32, + "data" : 0 + }, + { + "name" : "minecraft:piston", + "id" : 33, + "data" : 0 + }, + { + "name" : "minecraft:piston", + "id" : 33, + "data" : 1 + }, + { + "name" : "minecraft:piston", + "id" : 33, + "data" : 2 + }, + { + "name" : "minecraft:piston", + "id" : 33, + "data" : 3 + }, + { + "name" : "minecraft:piston", + "id" : 33, + "data" : 4 + }, + { + "name" : "minecraft:piston", + "id" : 33, + "data" : 5 + }, + { + "name" : "minecraft:piston", + "id" : 33, + "data" : 6 + }, + { + "name" : "minecraft:piston", + "id" : 33, + "data" : 7 + }, + { + "name" : "minecraft:pistonArmCollision", + "id" : 34, + "data" : 0 + }, + { + "name" : "minecraft:pistonArmCollision", + "id" : 34, + "data" : 1 + }, + { + "name" : "minecraft:pistonArmCollision", + "id" : 34, + "data" : 2 + }, + { + "name" : "minecraft:pistonArmCollision", + "id" : 34, + "data" : 3 + }, + { + "name" : "minecraft:pistonArmCollision", + "id" : 34, + "data" : 4 + }, + { + "name" : "minecraft:pistonArmCollision", + "id" : 34, + "data" : 5 + }, + { + "name" : "minecraft:pistonArmCollision", + "id" : 34, + "data" : 6 + }, + { + "name" : "minecraft:pistonArmCollision", + "id" : 34, + "data" : 7 + }, + { + "name" : "minecraft:wool", + "id" : 35, + "data" : 0 + }, + { + "name" : "minecraft:wool", + "id" : 35, + "data" : 1 + }, + { + "name" : "minecraft:wool", + "id" : 35, + "data" : 2 + }, + { + "name" : "minecraft:wool", + "id" : 35, + "data" : 3 + }, + { + "name" : "minecraft:wool", + "id" : 35, + "data" : 4 + }, + { + "name" : "minecraft:wool", + "id" : 35, + "data" : 5 + }, + { + "name" : "minecraft:wool", + "id" : 35, + "data" : 6 + }, + { + "name" : "minecraft:wool", + "id" : 35, + "data" : 7 + }, + { + "name" : "minecraft:wool", + "id" : 35, + "data" : 8 + }, + { + "name" : "minecraft:wool", + "id" : 35, + "data" : 9 + }, + { + "name" : "minecraft:wool", + "id" : 35, + "data" : 10 + }, + { + "name" : "minecraft:wool", + "id" : 35, + "data" : 11 + }, + { + "name" : "minecraft:wool", + "id" : 35, + "data" : 12 + }, + { + "name" : "minecraft:wool", + "id" : 35, + "data" : 13 + }, + { + "name" : "minecraft:wool", + "id" : 35, + "data" : 14 + }, + { + "name" : "minecraft:wool", + "id" : 35, + "data" : 15 + }, + { + "name" : "minecraft:element_0", + "id" : 36, + "data" : 0 + }, + { + "name" : "minecraft:yellow_flower", + "id" : 37, + "data" : 0 + }, + { + "name" : "minecraft:red_flower", + "id" : 38, + "data" : 0 + }, + { + "name" : "minecraft:red_flower", + "id" : 38, + "data" : 1 + }, + { + "name" : "minecraft:red_flower", + "id" : 38, + "data" : 2 + }, + { + "name" : "minecraft:red_flower", + "id" : 38, + "data" : 3 + }, + { + "name" : "minecraft:red_flower", + "id" : 38, + "data" : 4 + }, + { + "name" : "minecraft:red_flower", + "id" : 38, + "data" : 5 + }, + { + "name" : "minecraft:red_flower", + "id" : 38, + "data" : 6 + }, + { + "name" : "minecraft:red_flower", + "id" : 38, + "data" : 7 + }, + { + "name" : "minecraft:red_flower", + "id" : 38, + "data" : 8 + }, + { + "name" : "minecraft:red_flower", + "id" : 38, + "data" : 9 + }, + { + "name" : "minecraft:red_flower", + "id" : 38, + "data" : 10 + }, + { + "name" : "minecraft:red_flower", + "id" : 38, + "data" : 11 + }, + { + "name" : "minecraft:red_flower", + "id" : 38, + "data" : 12 + }, + { + "name" : "minecraft:red_flower", + "id" : 38, + "data" : 13 + }, + { + "name" : "minecraft:red_flower", + "id" : 38, + "data" : 14 + }, + { + "name" : "minecraft:red_flower", + "id" : 38, + "data" : 15 + }, + { + "name" : "minecraft:brown_mushroom", + "id" : 39, + "data" : 0 + }, + { + "name" : "minecraft:red_mushroom", + "id" : 40, + "data" : 0 + }, + { + "name" : "minecraft:gold_block", + "id" : 41, + "data" : 0 + }, + { + "name" : "minecraft:iron_block", + "id" : 42, + "data" : 0 + }, + { + "name" : "minecraft:double_stone_slab", + "id" : 43, + "data" : 0 + }, + { + "name" : "minecraft:double_stone_slab", + "id" : 43, + "data" : 1 + }, + { + "name" : "minecraft:double_stone_slab", + "id" : 43, + "data" : 2 + }, + { + "name" : "minecraft:double_stone_slab", + "id" : 43, + "data" : 3 + }, + { + "name" : "minecraft:double_stone_slab", + "id" : 43, + "data" : 4 + }, + { + "name" : "minecraft:double_stone_slab", + "id" : 43, + "data" : 5 + }, + { + "name" : "minecraft:double_stone_slab", + "id" : 43, + "data" : 6 + }, + { + "name" : "minecraft:double_stone_slab", + "id" : 43, + "data" : 7 + }, + { + "name" : "minecraft:double_stone_slab", + "id" : 43, + "data" : 8 + }, + { + "name" : "minecraft:double_stone_slab", + "id" : 43, + "data" : 9 + }, + { + "name" : "minecraft:double_stone_slab", + "id" : 43, + "data" : 10 + }, + { + "name" : "minecraft:double_stone_slab", + "id" : 43, + "data" : 11 + }, + { + "name" : "minecraft:double_stone_slab", + "id" : 43, + "data" : 12 + }, + { + "name" : "minecraft:double_stone_slab", + "id" : 43, + "data" : 13 + }, + { + "name" : "minecraft:double_stone_slab", + "id" : 43, + "data" : 14 + }, + { + "name" : "minecraft:double_stone_slab", + "id" : 43, + "data" : 15 + }, + { + "name" : "minecraft:stone_slab", + "id" : 44, + "data" : 0 + }, + { + "name" : "minecraft:stone_slab", + "id" : 44, + "data" : 1 + }, + { + "name" : "minecraft:stone_slab", + "id" : 44, + "data" : 2 + }, + { + "name" : "minecraft:stone_slab", + "id" : 44, + "data" : 3 + }, + { + "name" : "minecraft:stone_slab", + "id" : 44, + "data" : 4 + }, + { + "name" : "minecraft:stone_slab", + "id" : 44, + "data" : 5 + }, + { + "name" : "minecraft:stone_slab", + "id" : 44, + "data" : 6 + }, + { + "name" : "minecraft:stone_slab", + "id" : 44, + "data" : 7 + }, + { + "name" : "minecraft:stone_slab", + "id" : 44, + "data" : 8 + }, + { + "name" : "minecraft:stone_slab", + "id" : 44, + "data" : 9 + }, + { + "name" : "minecraft:stone_slab", + "id" : 44, + "data" : 10 + }, + { + "name" : "minecraft:stone_slab", + "id" : 44, + "data" : 11 + }, + { + "name" : "minecraft:stone_slab", + "id" : 44, + "data" : 12 + }, + { + "name" : "minecraft:stone_slab", + "id" : 44, + "data" : 13 + }, + { + "name" : "minecraft:stone_slab", + "id" : 44, + "data" : 14 + }, + { + "name" : "minecraft:stone_slab", + "id" : 44, + "data" : 15 + }, + { + "name" : "minecraft:brick_block", + "id" : 45, + "data" : 0 + }, + { + "name" : "minecraft:tnt", + "id" : 46, + "data" : 0 + }, + { + "name" : "minecraft:tnt", + "id" : 46, + "data" : 1 + }, + { + "name" : "minecraft:tnt", + "id" : 46, + "data" : 2 + }, + { + "name" : "minecraft:tnt", + "id" : 46, + "data" : 3 + }, + { + "name" : "minecraft:bookshelf", + "id" : 47, + "data" : 0 + }, + { + "name" : "minecraft:mossy_cobblestone", + "id" : 48, + "data" : 0 + }, + { + "name" : "minecraft:obsidian", + "id" : 49, + "data" : 0 + }, + { + "name" : "minecraft:torch", + "id" : 50, + "data" : 0 + }, + { + "name" : "minecraft:torch", + "id" : 50, + "data" : 1 + }, + { + "name" : "minecraft:torch", + "id" : 50, + "data" : 2 + }, + { + "name" : "minecraft:torch", + "id" : 50, + "data" : 3 + }, + { + "name" : "minecraft:torch", + "id" : 50, + "data" : 4 + }, + { + "name" : "minecraft:torch", + "id" : 50, + "data" : 5 + }, + { + "name" : "minecraft:torch", + "id" : 50, + "data" : 6 + }, + { + "name" : "minecraft:torch", + "id" : 50, + "data" : 7 + }, + { + "name" : "minecraft:fire", + "id" : 51, + "data" : 0 + }, + { + "name" : "minecraft:fire", + "id" : 51, + "data" : 1 + }, + { + "name" : "minecraft:fire", + "id" : 51, + "data" : 2 + }, + { + "name" : "minecraft:fire", + "id" : 51, + "data" : 3 + }, + { + "name" : "minecraft:fire", + "id" : 51, + "data" : 4 + }, + { + "name" : "minecraft:fire", + "id" : 51, + "data" : 5 + }, + { + "name" : "minecraft:fire", + "id" : 51, + "data" : 6 + }, + { + "name" : "minecraft:fire", + "id" : 51, + "data" : 7 + }, + { + "name" : "minecraft:fire", + "id" : 51, + "data" : 8 + }, + { + "name" : "minecraft:fire", + "id" : 51, + "data" : 9 + }, + { + "name" : "minecraft:fire", + "id" : 51, + "data" : 10 + }, + { + "name" : "minecraft:fire", + "id" : 51, + "data" : 11 + }, + { + "name" : "minecraft:fire", + "id" : 51, + "data" : 12 + }, + { + "name" : "minecraft:fire", + "id" : 51, + "data" : 13 + }, + { + "name" : "minecraft:fire", + "id" : 51, + "data" : 14 + }, + { + "name" : "minecraft:fire", + "id" : 51, + "data" : 15 + }, + { + "name" : "minecraft:mob_spawner", + "id" : 52, + "data" : 0 + }, + { + "name" : "minecraft:oak_stairs", + "id" : 53, + "data" : 0 + }, + { + "name" : "minecraft:oak_stairs", + "id" : 53, + "data" : 1 + }, + { + "name" : "minecraft:oak_stairs", + "id" : 53, + "data" : 2 + }, + { + "name" : "minecraft:oak_stairs", + "id" : 53, + "data" : 3 + }, + { + "name" : "minecraft:oak_stairs", + "id" : 53, + "data" : 4 + }, + { + "name" : "minecraft:oak_stairs", + "id" : 53, + "data" : 5 + }, + { + "name" : "minecraft:oak_stairs", + "id" : 53, + "data" : 6 + }, + { + "name" : "minecraft:oak_stairs", + "id" : 53, + "data" : 7 + }, + { + "name" : "minecraft:chest", + "id" : 54, + "data" : 0 + }, + { + "name" : "minecraft:chest", + "id" : 54, + "data" : 1 + }, + { + "name" : "minecraft:chest", + "id" : 54, + "data" : 2 + }, + { + "name" : "minecraft:chest", + "id" : 54, + "data" : 3 + }, + { + "name" : "minecraft:chest", + "id" : 54, + "data" : 4 + }, + { + "name" : "minecraft:chest", + "id" : 54, + "data" : 5 + }, + { + "name" : "minecraft:chest", + "id" : 54, + "data" : 6 + }, + { + "name" : "minecraft:chest", + "id" : 54, + "data" : 7 + }, + { + "name" : "minecraft:redstone_wire", + "id" : 55, + "data" : 0 + }, + { + "name" : "minecraft:redstone_wire", + "id" : 55, + "data" : 1 + }, + { + "name" : "minecraft:redstone_wire", + "id" : 55, + "data" : 2 + }, + { + "name" : "minecraft:redstone_wire", + "id" : 55, + "data" : 3 + }, + { + "name" : "minecraft:redstone_wire", + "id" : 55, + "data" : 4 + }, + { + "name" : "minecraft:redstone_wire", + "id" : 55, + "data" : 5 + }, + { + "name" : "minecraft:redstone_wire", + "id" : 55, + "data" : 6 + }, + { + "name" : "minecraft:redstone_wire", + "id" : 55, + "data" : 7 + }, + { + "name" : "minecraft:redstone_wire", + "id" : 55, + "data" : 8 + }, + { + "name" : "minecraft:redstone_wire", + "id" : 55, + "data" : 9 + }, + { + "name" : "minecraft:redstone_wire", + "id" : 55, + "data" : 10 + }, + { + "name" : "minecraft:redstone_wire", + "id" : 55, + "data" : 11 + }, + { + "name" : "minecraft:redstone_wire", + "id" : 55, + "data" : 12 + }, + { + "name" : "minecraft:redstone_wire", + "id" : 55, + "data" : 13 + }, + { + "name" : "minecraft:redstone_wire", + "id" : 55, + "data" : 14 + }, + { + "name" : "minecraft:redstone_wire", + "id" : 55, + "data" : 15 + }, + { + "name" : "minecraft:diamond_ore", + "id" : 56, + "data" : 0 + }, + { + "name" : "minecraft:diamond_block", + "id" : 57, + "data" : 0 + }, + { + "name" : "minecraft:crafting_table", + "id" : 58, + "data" : 0 + }, + { + "name" : "minecraft:wheat", + "id" : 59, + "data" : 0 + }, + { + "name" : "minecraft:wheat", + "id" : 59, + "data" : 1 + }, + { + "name" : "minecraft:wheat", + "id" : 59, + "data" : 2 + }, + { + "name" : "minecraft:wheat", + "id" : 59, + "data" : 3 + }, + { + "name" : "minecraft:wheat", + "id" : 59, + "data" : 4 + }, + { + "name" : "minecraft:wheat", + "id" : 59, + "data" : 5 + }, + { + "name" : "minecraft:wheat", + "id" : 59, + "data" : 6 + }, + { + "name" : "minecraft:wheat", + "id" : 59, + "data" : 7 + }, + { + "name" : "minecraft:farmland", + "id" : 60, + "data" : 0 + }, + { + "name" : "minecraft:farmland", + "id" : 60, + "data" : 1 + }, + { + "name" : "minecraft:farmland", + "id" : 60, + "data" : 2 + }, + { + "name" : "minecraft:farmland", + "id" : 60, + "data" : 3 + }, + { + "name" : "minecraft:farmland", + "id" : 60, + "data" : 4 + }, + { + "name" : "minecraft:farmland", + "id" : 60, + "data" : 5 + }, + { + "name" : "minecraft:farmland", + "id" : 60, + "data" : 6 + }, + { + "name" : "minecraft:farmland", + "id" : 60, + "data" : 7 + }, + { + "name" : "minecraft:furnace", + "id" : 61, + "data" : 0 + }, + { + "name" : "minecraft:furnace", + "id" : 61, + "data" : 1 + }, + { + "name" : "minecraft:furnace", + "id" : 61, + "data" : 2 + }, + { + "name" : "minecraft:furnace", + "id" : 61, + "data" : 3 + }, + { + "name" : "minecraft:furnace", + "id" : 61, + "data" : 4 + }, + { + "name" : "minecraft:furnace", + "id" : 61, + "data" : 5 + }, + { + "name" : "minecraft:furnace", + "id" : 61, + "data" : 6 + }, + { + "name" : "minecraft:furnace", + "id" : 61, + "data" : 7 + }, + { + "name" : "minecraft:lit_furnace", + "id" : 62, + "data" : 0 + }, + { + "name" : "minecraft:lit_furnace", + "id" : 62, + "data" : 1 + }, + { + "name" : "minecraft:lit_furnace", + "id" : 62, + "data" : 2 + }, + { + "name" : "minecraft:lit_furnace", + "id" : 62, + "data" : 3 + }, + { + "name" : "minecraft:lit_furnace", + "id" : 62, + "data" : 4 + }, + { + "name" : "minecraft:lit_furnace", + "id" : 62, + "data" : 5 + }, + { + "name" : "minecraft:lit_furnace", + "id" : 62, + "data" : 6 + }, + { + "name" : "minecraft:lit_furnace", + "id" : 62, + "data" : 7 + }, + { + "name" : "minecraft:standing_sign", + "id" : 63, + "data" : 0 + }, + { + "name" : "minecraft:standing_sign", + "id" : 63, + "data" : 1 + }, + { + "name" : "minecraft:standing_sign", + "id" : 63, + "data" : 2 + }, + { + "name" : "minecraft:standing_sign", + "id" : 63, + "data" : 3 + }, + { + "name" : "minecraft:standing_sign", + "id" : 63, + "data" : 4 + }, + { + "name" : "minecraft:standing_sign", + "id" : 63, + "data" : 5 + }, + { + "name" : "minecraft:standing_sign", + "id" : 63, + "data" : 6 + }, + { + "name" : "minecraft:standing_sign", + "id" : 63, + "data" : 7 + }, + { + "name" : "minecraft:standing_sign", + "id" : 63, + "data" : 8 + }, + { + "name" : "minecraft:standing_sign", + "id" : 63, + "data" : 9 + }, + { + "name" : "minecraft:standing_sign", + "id" : 63, + "data" : 10 + }, + { + "name" : "minecraft:standing_sign", + "id" : 63, + "data" : 11 + }, + { + "name" : "minecraft:standing_sign", + "id" : 63, + "data" : 12 + }, + { + "name" : "minecraft:standing_sign", + "id" : 63, + "data" : 13 + }, + { + "name" : "minecraft:standing_sign", + "id" : 63, + "data" : 14 + }, + { + "name" : "minecraft:standing_sign", + "id" : 63, + "data" : 15 + }, + { + "name" : "minecraft:wooden_door", + "id" : 64, + "data" : 0 + }, + { + "name" : "minecraft:wooden_door", + "id" : 64, + "data" : 1 + }, + { + "name" : "minecraft:wooden_door", + "id" : 64, + "data" : 2 + }, + { + "name" : "minecraft:wooden_door", + "id" : 64, + "data" : 3 + }, + { + "name" : "minecraft:wooden_door", + "id" : 64, + "data" : 4 + }, + { + "name" : "minecraft:wooden_door", + "id" : 64, + "data" : 5 + }, + { + "name" : "minecraft:wooden_door", + "id" : 64, + "data" : 6 + }, + { + "name" : "minecraft:wooden_door", + "id" : 64, + "data" : 7 + }, + { + "name" : "minecraft:wooden_door", + "id" : 64, + "data" : 8 + }, + { + "name" : "minecraft:wooden_door", + "id" : 64, + "data" : 9 + }, + { + "name" : "minecraft:wooden_door", + "id" : 64, + "data" : 10 + }, + { + "name" : "minecraft:wooden_door", + "id" : 64, + "data" : 11 + }, + { + "name" : "minecraft:wooden_door", + "id" : 64, + "data" : 12 + }, + { + "name" : "minecraft:wooden_door", + "id" : 64, + "data" : 13 + }, + { + "name" : "minecraft:wooden_door", + "id" : 64, + "data" : 14 + }, + { + "name" : "minecraft:wooden_door", + "id" : 64, + "data" : 15 + }, + { + "name" : "minecraft:ladder", + "id" : 65, + "data" : 0 + }, + { + "name" : "minecraft:ladder", + "id" : 65, + "data" : 1 + }, + { + "name" : "minecraft:ladder", + "id" : 65, + "data" : 2 + }, + { + "name" : "minecraft:ladder", + "id" : 65, + "data" : 3 + }, + { + "name" : "minecraft:ladder", + "id" : 65, + "data" : 4 + }, + { + "name" : "minecraft:ladder", + "id" : 65, + "data" : 5 + }, + { + "name" : "minecraft:ladder", + "id" : 65, + "data" : 6 + }, + { + "name" : "minecraft:ladder", + "id" : 65, + "data" : 7 + }, + { + "name" : "minecraft:rail", + "id" : 66, + "data" : 0 + }, + { + "name" : "minecraft:rail", + "id" : 66, + "data" : 1 + }, + { + "name" : "minecraft:rail", + "id" : 66, + "data" : 2 + }, + { + "name" : "minecraft:rail", + "id" : 66, + "data" : 3 + }, + { + "name" : "minecraft:rail", + "id" : 66, + "data" : 4 + }, + { + "name" : "minecraft:rail", + "id" : 66, + "data" : 5 + }, + { + "name" : "minecraft:rail", + "id" : 66, + "data" : 6 + }, + { + "name" : "minecraft:rail", + "id" : 66, + "data" : 7 + }, + { + "name" : "minecraft:rail", + "id" : 66, + "data" : 8 + }, + { + "name" : "minecraft:rail", + "id" : 66, + "data" : 9 + }, + { + "name" : "minecraft:rail", + "id" : 66, + "data" : 10 + }, + { + "name" : "minecraft:rail", + "id" : 66, + "data" : 11 + }, + { + "name" : "minecraft:rail", + "id" : 66, + "data" : 12 + }, + { + "name" : "minecraft:rail", + "id" : 66, + "data" : 13 + }, + { + "name" : "minecraft:rail", + "id" : 66, + "data" : 14 + }, + { + "name" : "minecraft:rail", + "id" : 66, + "data" : 15 + }, + { + "name" : "minecraft:stone_stairs", + "id" : 67, + "data" : 0 + }, + { + "name" : "minecraft:stone_stairs", + "id" : 67, + "data" : 1 + }, + { + "name" : "minecraft:stone_stairs", + "id" : 67, + "data" : 2 + }, + { + "name" : "minecraft:stone_stairs", + "id" : 67, + "data" : 3 + }, + { + "name" : "minecraft:stone_stairs", + "id" : 67, + "data" : 4 + }, + { + "name" : "minecraft:stone_stairs", + "id" : 67, + "data" : 5 + }, + { + "name" : "minecraft:stone_stairs", + "id" : 67, + "data" : 6 + }, + { + "name" : "minecraft:stone_stairs", + "id" : 67, + "data" : 7 + }, + { + "name" : "minecraft:wall_sign", + "id" : 68, + "data" : 0 + }, + { + "name" : "minecraft:wall_sign", + "id" : 68, + "data" : 1 + }, + { + "name" : "minecraft:wall_sign", + "id" : 68, + "data" : 2 + }, + { + "name" : "minecraft:wall_sign", + "id" : 68, + "data" : 3 + }, + { + "name" : "minecraft:wall_sign", + "id" : 68, + "data" : 4 + }, + { + "name" : "minecraft:wall_sign", + "id" : 68, + "data" : 5 + }, + { + "name" : "minecraft:wall_sign", + "id" : 68, + "data" : 6 + }, + { + "name" : "minecraft:wall_sign", + "id" : 68, + "data" : 7 + }, + { + "name" : "minecraft:lever", + "id" : 69, + "data" : 0 + }, + { + "name" : "minecraft:lever", + "id" : 69, + "data" : 1 + }, + { + "name" : "minecraft:lever", + "id" : 69, + "data" : 2 + }, + { + "name" : "minecraft:lever", + "id" : 69, + "data" : 3 + }, + { + "name" : "minecraft:lever", + "id" : 69, + "data" : 4 + }, + { + "name" : "minecraft:lever", + "id" : 69, + "data" : 5 + }, + { + "name" : "minecraft:lever", + "id" : 69, + "data" : 6 + }, + { + "name" : "minecraft:lever", + "id" : 69, + "data" : 7 + }, + { + "name" : "minecraft:lever", + "id" : 69, + "data" : 8 + }, + { + "name" : "minecraft:lever", + "id" : 69, + "data" : 9 + }, + { + "name" : "minecraft:lever", + "id" : 69, + "data" : 10 + }, + { + "name" : "minecraft:lever", + "id" : 69, + "data" : 11 + }, + { + "name" : "minecraft:lever", + "id" : 69, + "data" : 12 + }, + { + "name" : "minecraft:lever", + "id" : 69, + "data" : 13 + }, + { + "name" : "minecraft:lever", + "id" : 69, + "data" : 14 + }, + { + "name" : "minecraft:lever", + "id" : 69, + "data" : 15 + }, + { + "name" : "minecraft:stone_pressure_plate", + "id" : 70, + "data" : 0 + }, + { + "name" : "minecraft:stone_pressure_plate", + "id" : 70, + "data" : 1 + }, + { + "name" : "minecraft:stone_pressure_plate", + "id" : 70, + "data" : 2 + }, + { + "name" : "minecraft:stone_pressure_plate", + "id" : 70, + "data" : 3 + }, + { + "name" : "minecraft:stone_pressure_plate", + "id" : 70, + "data" : 4 + }, + { + "name" : "minecraft:stone_pressure_plate", + "id" : 70, + "data" : 5 + }, + { + "name" : "minecraft:stone_pressure_plate", + "id" : 70, + "data" : 6 + }, + { + "name" : "minecraft:stone_pressure_plate", + "id" : 70, + "data" : 7 + }, + { + "name" : "minecraft:stone_pressure_plate", + "id" : 70, + "data" : 8 + }, + { + "name" : "minecraft:stone_pressure_plate", + "id" : 70, + "data" : 9 + }, + { + "name" : "minecraft:stone_pressure_plate", + "id" : 70, + "data" : 10 + }, + { + "name" : "minecraft:stone_pressure_plate", + "id" : 70, + "data" : 11 + }, + { + "name" : "minecraft:stone_pressure_plate", + "id" : 70, + "data" : 12 + }, + { + "name" : "minecraft:stone_pressure_plate", + "id" : 70, + "data" : 13 + }, + { + "name" : "minecraft:stone_pressure_plate", + "id" : 70, + "data" : 14 + }, + { + "name" : "minecraft:stone_pressure_plate", + "id" : 70, + "data" : 15 + }, + { + "name" : "minecraft:iron_door", + "id" : 71, + "data" : 0 + }, + { + "name" : "minecraft:iron_door", + "id" : 71, + "data" : 1 + }, + { + "name" : "minecraft:iron_door", + "id" : 71, + "data" : 2 + }, + { + "name" : "minecraft:iron_door", + "id" : 71, + "data" : 3 + }, + { + "name" : "minecraft:iron_door", + "id" : 71, + "data" : 4 + }, + { + "name" : "minecraft:iron_door", + "id" : 71, + "data" : 5 + }, + { + "name" : "minecraft:iron_door", + "id" : 71, + "data" : 6 + }, + { + "name" : "minecraft:iron_door", + "id" : 71, + "data" : 7 + }, + { + "name" : "minecraft:iron_door", + "id" : 71, + "data" : 8 + }, + { + "name" : "minecraft:iron_door", + "id" : 71, + "data" : 9 + }, + { + "name" : "minecraft:iron_door", + "id" : 71, + "data" : 10 + }, + { + "name" : "minecraft:iron_door", + "id" : 71, + "data" : 11 + }, + { + "name" : "minecraft:iron_door", + "id" : 71, + "data" : 12 + }, + { + "name" : "minecraft:iron_door", + "id" : 71, + "data" : 13 + }, + { + "name" : "minecraft:iron_door", + "id" : 71, + "data" : 14 + }, + { + "name" : "minecraft:iron_door", + "id" : 71, + "data" : 15 + }, + { + "name" : "minecraft:wooden_pressure_plate", + "id" : 72, + "data" : 0 + }, + { + "name" : "minecraft:wooden_pressure_plate", + "id" : 72, + "data" : 1 + }, + { + "name" : "minecraft:wooden_pressure_plate", + "id" : 72, + "data" : 2 + }, + { + "name" : "minecraft:wooden_pressure_plate", + "id" : 72, + "data" : 3 + }, + { + "name" : "minecraft:wooden_pressure_plate", + "id" : 72, + "data" : 4 + }, + { + "name" : "minecraft:wooden_pressure_plate", + "id" : 72, + "data" : 5 + }, + { + "name" : "minecraft:wooden_pressure_plate", + "id" : 72, + "data" : 6 + }, + { + "name" : "minecraft:wooden_pressure_plate", + "id" : 72, + "data" : 7 + }, + { + "name" : "minecraft:wooden_pressure_plate", + "id" : 72, + "data" : 8 + }, + { + "name" : "minecraft:wooden_pressure_plate", + "id" : 72, + "data" : 9 + }, + { + "name" : "minecraft:wooden_pressure_plate", + "id" : 72, + "data" : 10 + }, + { + "name" : "minecraft:wooden_pressure_plate", + "id" : 72, + "data" : 11 + }, + { + "name" : "minecraft:wooden_pressure_plate", + "id" : 72, + "data" : 12 + }, + { + "name" : "minecraft:wooden_pressure_plate", + "id" : 72, + "data" : 13 + }, + { + "name" : "minecraft:wooden_pressure_plate", + "id" : 72, + "data" : 14 + }, + { + "name" : "minecraft:wooden_pressure_plate", + "id" : 72, + "data" : 15 + }, + { + "name" : "minecraft:redstone_ore", + "id" : 73, + "data" : 0 + }, + { + "name" : "minecraft:lit_redstone_ore", + "id" : 74, + "data" : 0 + }, + { + "name" : "minecraft:unlit_redstone_torch", + "id" : 75, + "data" : 0 + }, + { + "name" : "minecraft:unlit_redstone_torch", + "id" : 75, + "data" : 1 + }, + { + "name" : "minecraft:unlit_redstone_torch", + "id" : 75, + "data" : 2 + }, + { + "name" : "minecraft:unlit_redstone_torch", + "id" : 75, + "data" : 3 + }, + { + "name" : "minecraft:unlit_redstone_torch", + "id" : 75, + "data" : 4 + }, + { + "name" : "minecraft:unlit_redstone_torch", + "id" : 75, + "data" : 5 + }, + { + "name" : "minecraft:unlit_redstone_torch", + "id" : 75, + "data" : 6 + }, + { + "name" : "minecraft:unlit_redstone_torch", + "id" : 75, + "data" : 7 + }, + { + "name" : "minecraft:redstone_torch", + "id" : 76, + "data" : 0 + }, + { + "name" : "minecraft:redstone_torch", + "id" : 76, + "data" : 1 + }, + { + "name" : "minecraft:redstone_torch", + "id" : 76, + "data" : 2 + }, + { + "name" : "minecraft:redstone_torch", + "id" : 76, + "data" : 3 + }, + { + "name" : "minecraft:redstone_torch", + "id" : 76, + "data" : 4 + }, + { + "name" : "minecraft:redstone_torch", + "id" : 76, + "data" : 5 + }, + { + "name" : "minecraft:redstone_torch", + "id" : 76, + "data" : 6 + }, + { + "name" : "minecraft:redstone_torch", + "id" : 76, + "data" : 7 + }, + { + "name" : "minecraft:stone_button", + "id" : 77, + "data" : 0 + }, + { + "name" : "minecraft:stone_button", + "id" : 77, + "data" : 1 + }, + { + "name" : "minecraft:stone_button", + "id" : 77, + "data" : 2 + }, + { + "name" : "minecraft:stone_button", + "id" : 77, + "data" : 3 + }, + { + "name" : "minecraft:stone_button", + "id" : 77, + "data" : 4 + }, + { + "name" : "minecraft:stone_button", + "id" : 77, + "data" : 5 + }, + { + "name" : "minecraft:stone_button", + "id" : 77, + "data" : 6 + }, + { + "name" : "minecraft:stone_button", + "id" : 77, + "data" : 7 + }, + { + "name" : "minecraft:stone_button", + "id" : 77, + "data" : 8 + }, + { + "name" : "minecraft:stone_button", + "id" : 77, + "data" : 9 + }, + { + "name" : "minecraft:stone_button", + "id" : 77, + "data" : 10 + }, + { + "name" : "minecraft:stone_button", + "id" : 77, + "data" : 11 + }, + { + "name" : "minecraft:stone_button", + "id" : 77, + "data" : 12 + }, + { + "name" : "minecraft:stone_button", + "id" : 77, + "data" : 13 + }, + { + "name" : "minecraft:stone_button", + "id" : 77, + "data" : 14 + }, + { + "name" : "minecraft:stone_button", + "id" : 77, + "data" : 15 + }, + { + "name" : "minecraft:snow_layer", + "id" : 78, + "data" : 0 + }, + { + "name" : "minecraft:snow_layer", + "id" : 78, + "data" : 1 + }, + { + "name" : "minecraft:snow_layer", + "id" : 78, + "data" : 2 + }, + { + "name" : "minecraft:snow_layer", + "id" : 78, + "data" : 3 + }, + { + "name" : "minecraft:snow_layer", + "id" : 78, + "data" : 4 + }, + { + "name" : "minecraft:snow_layer", + "id" : 78, + "data" : 5 + }, + { + "name" : "minecraft:snow_layer", + "id" : 78, + "data" : 6 + }, + { + "name" : "minecraft:snow_layer", + "id" : 78, + "data" : 7 + }, + { + "name" : "minecraft:snow_layer", + "id" : 78, + "data" : 8 + }, + { + "name" : "minecraft:snow_layer", + "id" : 78, + "data" : 9 + }, + { + "name" : "minecraft:snow_layer", + "id" : 78, + "data" : 10 + }, + { + "name" : "minecraft:snow_layer", + "id" : 78, + "data" : 11 + }, + { + "name" : "minecraft:snow_layer", + "id" : 78, + "data" : 12 + }, + { + "name" : "minecraft:snow_layer", + "id" : 78, + "data" : 13 + }, + { + "name" : "minecraft:snow_layer", + "id" : 78, + "data" : 14 + }, + { + "name" : "minecraft:snow_layer", + "id" : 78, + "data" : 15 + }, + { + "name" : "minecraft:ice", + "id" : 79, + "data" : 0 + }, + { + "name" : "minecraft:snow", + "id" : 80, + "data" : 0 + }, + { + "name" : "minecraft:cactus", + "id" : 81, + "data" : 0 + }, + { + "name" : "minecraft:cactus", + "id" : 81, + "data" : 1 + }, + { + "name" : "minecraft:cactus", + "id" : 81, + "data" : 2 + }, + { + "name" : "minecraft:cactus", + "id" : 81, + "data" : 3 + }, + { + "name" : "minecraft:cactus", + "id" : 81, + "data" : 4 + }, + { + "name" : "minecraft:cactus", + "id" : 81, + "data" : 5 + }, + { + "name" : "minecraft:cactus", + "id" : 81, + "data" : 6 + }, + { + "name" : "minecraft:cactus", + "id" : 81, + "data" : 7 + }, + { + "name" : "minecraft:cactus", + "id" : 81, + "data" : 8 + }, + { + "name" : "minecraft:cactus", + "id" : 81, + "data" : 9 + }, + { + "name" : "minecraft:cactus", + "id" : 81, + "data" : 10 + }, + { + "name" : "minecraft:cactus", + "id" : 81, + "data" : 11 + }, + { + "name" : "minecraft:cactus", + "id" : 81, + "data" : 12 + }, + { + "name" : "minecraft:cactus", + "id" : 81, + "data" : 13 + }, + { + "name" : "minecraft:cactus", + "id" : 81, + "data" : 14 + }, + { + "name" : "minecraft:cactus", + "id" : 81, + "data" : 15 + }, + { + "name" : "minecraft:clay", + "id" : 82, + "data" : 0 + }, + { + "name" : "minecraft:reeds", + "id" : 83, + "data" : 0 + }, + { + "name" : "minecraft:reeds", + "id" : 83, + "data" : 1 + }, + { + "name" : "minecraft:reeds", + "id" : 83, + "data" : 2 + }, + { + "name" : "minecraft:reeds", + "id" : 83, + "data" : 3 + }, + { + "name" : "minecraft:reeds", + "id" : 83, + "data" : 4 + }, + { + "name" : "minecraft:reeds", + "id" : 83, + "data" : 5 + }, + { + "name" : "minecraft:reeds", + "id" : 83, + "data" : 6 + }, + { + "name" : "minecraft:reeds", + "id" : 83, + "data" : 7 + }, + { + "name" : "minecraft:reeds", + "id" : 83, + "data" : 8 + }, + { + "name" : "minecraft:reeds", + "id" : 83, + "data" : 9 + }, + { + "name" : "minecraft:reeds", + "id" : 83, + "data" : 10 + }, + { + "name" : "minecraft:reeds", + "id" : 83, + "data" : 11 + }, + { + "name" : "minecraft:reeds", + "id" : 83, + "data" : 12 + }, + { + "name" : "minecraft:reeds", + "id" : 83, + "data" : 13 + }, + { + "name" : "minecraft:reeds", + "id" : 83, + "data" : 14 + }, + { + "name" : "minecraft:reeds", + "id" : 83, + "data" : 15 + }, + { + "name" : "minecraft:jukebox", + "id" : 84, + "data" : 0 + }, + { + "name" : "minecraft:fence", + "id" : 85, + "data" : 0 + }, + { + "name" : "minecraft:fence", + "id" : 85, + "data" : 1 + }, + { + "name" : "minecraft:fence", + "id" : 85, + "data" : 2 + }, + { + "name" : "minecraft:fence", + "id" : 85, + "data" : 3 + }, + { + "name" : "minecraft:fence", + "id" : 85, + "data" : 4 + }, + { + "name" : "minecraft:fence", + "id" : 85, + "data" : 5 + }, + { + "name" : "minecraft:fence", + "id" : 85, + "data" : 6 + }, + { + "name" : "minecraft:fence", + "id" : 85, + "data" : 7 + }, + { + "name" : "minecraft:pumpkin", + "id" : 86, + "data" : 0 + }, + { + "name" : "minecraft:pumpkin", + "id" : 86, + "data" : 1 + }, + { + "name" : "minecraft:pumpkin", + "id" : 86, + "data" : 2 + }, + { + "name" : "minecraft:pumpkin", + "id" : 86, + "data" : 3 + }, + { + "name" : "minecraft:netherrack", + "id" : 87, + "data" : 0 + }, + { + "name" : "minecraft:soul_sand", + "id" : 88, + "data" : 0 + }, + { + "name" : "minecraft:glowstone", + "id" : 89, + "data" : 0 + }, + { + "name" : "minecraft:portal", + "id" : 90, + "data" : 0 + }, + { + "name" : "minecraft:portal", + "id" : 90, + "data" : 1 + }, + { + "name" : "minecraft:portal", + "id" : 90, + "data" : 2 + }, + { + "name" : "minecraft:portal", + "id" : 90, + "data" : 3 + }, + { + "name" : "minecraft:lit_pumpkin", + "id" : 91, + "data" : 0 + }, + { + "name" : "minecraft:lit_pumpkin", + "id" : 91, + "data" : 1 + }, + { + "name" : "minecraft:lit_pumpkin", + "id" : 91, + "data" : 2 + }, + { + "name" : "minecraft:lit_pumpkin", + "id" : 91, + "data" : 3 + }, + { + "name" : "minecraft:cake", + "id" : 92, + "data" : 0 + }, + { + "name" : "minecraft:cake", + "id" : 92, + "data" : 1 + }, + { + "name" : "minecraft:cake", + "id" : 92, + "data" : 2 + }, + { + "name" : "minecraft:cake", + "id" : 92, + "data" : 3 + }, + { + "name" : "minecraft:cake", + "id" : 92, + "data" : 4 + }, + { + "name" : "minecraft:cake", + "id" : 92, + "data" : 5 + }, + { + "name" : "minecraft:cake", + "id" : 92, + "data" : 6 + }, + { + "name" : "minecraft:cake", + "id" : 92, + "data" : 7 + }, + { + "name" : "minecraft:unpowered_repeater", + "id" : 93, + "data" : 0 + }, + { + "name" : "minecraft:unpowered_repeater", + "id" : 93, + "data" : 1 + }, + { + "name" : "minecraft:unpowered_repeater", + "id" : 93, + "data" : 2 + }, + { + "name" : "minecraft:unpowered_repeater", + "id" : 93, + "data" : 3 + }, + { + "name" : "minecraft:unpowered_repeater", + "id" : 93, + "data" : 4 + }, + { + "name" : "minecraft:unpowered_repeater", + "id" : 93, + "data" : 5 + }, + { + "name" : "minecraft:unpowered_repeater", + "id" : 93, + "data" : 6 + }, + { + "name" : "minecraft:unpowered_repeater", + "id" : 93, + "data" : 7 + }, + { + "name" : "minecraft:unpowered_repeater", + "id" : 93, + "data" : 8 + }, + { + "name" : "minecraft:unpowered_repeater", + "id" : 93, + "data" : 9 + }, + { + "name" : "minecraft:unpowered_repeater", + "id" : 93, + "data" : 10 + }, + { + "name" : "minecraft:unpowered_repeater", + "id" : 93, + "data" : 11 + }, + { + "name" : "minecraft:unpowered_repeater", + "id" : 93, + "data" : 12 + }, + { + "name" : "minecraft:unpowered_repeater", + "id" : 93, + "data" : 13 + }, + { + "name" : "minecraft:unpowered_repeater", + "id" : 93, + "data" : 14 + }, + { + "name" : "minecraft:unpowered_repeater", + "id" : 93, + "data" : 15 + }, + { + "name" : "minecraft:powered_repeater", + "id" : 94, + "data" : 0 + }, + { + "name" : "minecraft:powered_repeater", + "id" : 94, + "data" : 1 + }, + { + "name" : "minecraft:powered_repeater", + "id" : 94, + "data" : 2 + }, + { + "name" : "minecraft:powered_repeater", + "id" : 94, + "data" : 3 + }, + { + "name" : "minecraft:powered_repeater", + "id" : 94, + "data" : 4 + }, + { + "name" : "minecraft:powered_repeater", + "id" : 94, + "data" : 5 + }, + { + "name" : "minecraft:powered_repeater", + "id" : 94, + "data" : 6 + }, + { + "name" : "minecraft:powered_repeater", + "id" : 94, + "data" : 7 + }, + { + "name" : "minecraft:powered_repeater", + "id" : 94, + "data" : 8 + }, + { + "name" : "minecraft:powered_repeater", + "id" : 94, + "data" : 9 + }, + { + "name" : "minecraft:powered_repeater", + "id" : 94, + "data" : 10 + }, + { + "name" : "minecraft:powered_repeater", + "id" : 94, + "data" : 11 + }, + { + "name" : "minecraft:powered_repeater", + "id" : 94, + "data" : 12 + }, + { + "name" : "minecraft:powered_repeater", + "id" : 94, + "data" : 13 + }, + { + "name" : "minecraft:powered_repeater", + "id" : 94, + "data" : 14 + }, + { + "name" : "minecraft:powered_repeater", + "id" : 94, + "data" : 15 + }, + { + "name" : "minecraft:invisibleBedrock", + "id" : 95, + "data" : 0 + }, + { + "name" : "minecraft:trapdoor", + "id" : 96, + "data" : 0 + }, + { + "name" : "minecraft:trapdoor", + "id" : 96, + "data" : 1 + }, + { + "name" : "minecraft:trapdoor", + "id" : 96, + "data" : 2 + }, + { + "name" : "minecraft:trapdoor", + "id" : 96, + "data" : 3 + }, + { + "name" : "minecraft:trapdoor", + "id" : 96, + "data" : 4 + }, + { + "name" : "minecraft:trapdoor", + "id" : 96, + "data" : 5 + }, + { + "name" : "minecraft:trapdoor", + "id" : 96, + "data" : 6 + }, + { + "name" : "minecraft:trapdoor", + "id" : 96, + "data" : 7 + }, + { + "name" : "minecraft:trapdoor", + "id" : 96, + "data" : 8 + }, + { + "name" : "minecraft:trapdoor", + "id" : 96, + "data" : 9 + }, + { + "name" : "minecraft:trapdoor", + "id" : 96, + "data" : 10 + }, + { + "name" : "minecraft:trapdoor", + "id" : 96, + "data" : 11 + }, + { + "name" : "minecraft:trapdoor", + "id" : 96, + "data" : 12 + }, + { + "name" : "minecraft:trapdoor", + "id" : 96, + "data" : 13 + }, + { + "name" : "minecraft:trapdoor", + "id" : 96, + "data" : 14 + }, + { + "name" : "minecraft:trapdoor", + "id" : 96, + "data" : 15 + }, + { + "name" : "minecraft:monster_egg", + "id" : 97, + "data" : 0 + }, + { + "name" : "minecraft:monster_egg", + "id" : 97, + "data" : 1 + }, + { + "name" : "minecraft:monster_egg", + "id" : 97, + "data" : 2 + }, + { + "name" : "minecraft:monster_egg", + "id" : 97, + "data" : 3 + }, + { + "name" : "minecraft:monster_egg", + "id" : 97, + "data" : 4 + }, + { + "name" : "minecraft:monster_egg", + "id" : 97, + "data" : 5 + }, + { + "name" : "minecraft:monster_egg", + "id" : 97, + "data" : 6 + }, + { + "name" : "minecraft:monster_egg", + "id" : 97, + "data" : 7 + }, + { + "name" : "minecraft:stonebrick", + "id" : 98, + "data" : 0 + }, + { + "name" : "minecraft:stonebrick", + "id" : 98, + "data" : 1 + }, + { + "name" : "minecraft:stonebrick", + "id" : 98, + "data" : 2 + }, + { + "name" : "minecraft:stonebrick", + "id" : 98, + "data" : 3 + }, + { + "name" : "minecraft:stonebrick", + "id" : 98, + "data" : 4 + }, + { + "name" : "minecraft:stonebrick", + "id" : 98, + "data" : 5 + }, + { + "name" : "minecraft:stonebrick", + "id" : 98, + "data" : 6 + }, + { + "name" : "minecraft:stonebrick", + "id" : 98, + "data" : 7 + }, + { + "name" : "minecraft:brown_mushroom_block", + "id" : 99, + "data" : 0 + }, + { + "name" : "minecraft:brown_mushroom_block", + "id" : 99, + "data" : 1 + }, + { + "name" : "minecraft:brown_mushroom_block", + "id" : 99, + "data" : 2 + }, + { + "name" : "minecraft:brown_mushroom_block", + "id" : 99, + "data" : 3 + }, + { + "name" : "minecraft:brown_mushroom_block", + "id" : 99, + "data" : 4 + }, + { + "name" : "minecraft:brown_mushroom_block", + "id" : 99, + "data" : 5 + }, + { + "name" : "minecraft:brown_mushroom_block", + "id" : 99, + "data" : 6 + }, + { + "name" : "minecraft:brown_mushroom_block", + "id" : 99, + "data" : 7 + }, + { + "name" : "minecraft:brown_mushroom_block", + "id" : 99, + "data" : 8 + }, + { + "name" : "minecraft:brown_mushroom_block", + "id" : 99, + "data" : 9 + }, + { + "name" : "minecraft:brown_mushroom_block", + "id" : 99, + "data" : 10 + }, + { + "name" : "minecraft:brown_mushroom_block", + "id" : 99, + "data" : 11 + }, + { + "name" : "minecraft:brown_mushroom_block", + "id" : 99, + "data" : 12 + }, + { + "name" : "minecraft:brown_mushroom_block", + "id" : 99, + "data" : 13 + }, + { + "name" : "minecraft:brown_mushroom_block", + "id" : 99, + "data" : 14 + }, + { + "name" : "minecraft:brown_mushroom_block", + "id" : 99, + "data" : 15 + }, + { + "name" : "minecraft:red_mushroom_block", + "id" : 100, + "data" : 0 + }, + { + "name" : "minecraft:red_mushroom_block", + "id" : 100, + "data" : 1 + }, + { + "name" : "minecraft:red_mushroom_block", + "id" : 100, + "data" : 2 + }, + { + "name" : "minecraft:red_mushroom_block", + "id" : 100, + "data" : 3 + }, + { + "name" : "minecraft:red_mushroom_block", + "id" : 100, + "data" : 4 + }, + { + "name" : "minecraft:red_mushroom_block", + "id" : 100, + "data" : 5 + }, + { + "name" : "minecraft:red_mushroom_block", + "id" : 100, + "data" : 6 + }, + { + "name" : "minecraft:red_mushroom_block", + "id" : 100, + "data" : 7 + }, + { + "name" : "minecraft:red_mushroom_block", + "id" : 100, + "data" : 8 + }, + { + "name" : "minecraft:red_mushroom_block", + "id" : 100, + "data" : 9 + }, + { + "name" : "minecraft:red_mushroom_block", + "id" : 100, + "data" : 10 + }, + { + "name" : "minecraft:red_mushroom_block", + "id" : 100, + "data" : 11 + }, + { + "name" : "minecraft:red_mushroom_block", + "id" : 100, + "data" : 12 + }, + { + "name" : "minecraft:red_mushroom_block", + "id" : 100, + "data" : 13 + }, + { + "name" : "minecraft:red_mushroom_block", + "id" : 100, + "data" : 14 + }, + { + "name" : "minecraft:red_mushroom_block", + "id" : 100, + "data" : 15 + }, + { + "name" : "minecraft:iron_bars", + "id" : 101, + "data" : 0 + }, + { + "name" : "minecraft:glass_pane", + "id" : 102, + "data" : 0 + }, + { + "name" : "minecraft:melon_block", + "id" : 103, + "data" : 0 + }, + { + "name" : "minecraft:pumpkin_stem", + "id" : 104, + "data" : 0 + }, + { + "name" : "minecraft:pumpkin_stem", + "id" : 104, + "data" : 1 + }, + { + "name" : "minecraft:pumpkin_stem", + "id" : 104, + "data" : 2 + }, + { + "name" : "minecraft:pumpkin_stem", + "id" : 104, + "data" : 3 + }, + { + "name" : "minecraft:pumpkin_stem", + "id" : 104, + "data" : 4 + }, + { + "name" : "minecraft:pumpkin_stem", + "id" : 104, + "data" : 5 + }, + { + "name" : "minecraft:pumpkin_stem", + "id" : 104, + "data" : 6 + }, + { + "name" : "minecraft:pumpkin_stem", + "id" : 104, + "data" : 7 + }, + { + "name" : "minecraft:melon_stem", + "id" : 105, + "data" : 0 + }, + { + "name" : "minecraft:melon_stem", + "id" : 105, + "data" : 1 + }, + { + "name" : "minecraft:melon_stem", + "id" : 105, + "data" : 2 + }, + { + "name" : "minecraft:melon_stem", + "id" : 105, + "data" : 3 + }, + { + "name" : "minecraft:melon_stem", + "id" : 105, + "data" : 4 + }, + { + "name" : "minecraft:melon_stem", + "id" : 105, + "data" : 5 + }, + { + "name" : "minecraft:melon_stem", + "id" : 105, + "data" : 6 + }, + { + "name" : "minecraft:melon_stem", + "id" : 105, + "data" : 7 + }, + { + "name" : "minecraft:vine", + "id" : 106, + "data" : 0 + }, + { + "name" : "minecraft:vine", + "id" : 106, + "data" : 1 + }, + { + "name" : "minecraft:vine", + "id" : 106, + "data" : 2 + }, + { + "name" : "minecraft:vine", + "id" : 106, + "data" : 3 + }, + { + "name" : "minecraft:vine", + "id" : 106, + "data" : 4 + }, + { + "name" : "minecraft:vine", + "id" : 106, + "data" : 5 + }, + { + "name" : "minecraft:vine", + "id" : 106, + "data" : 6 + }, + { + "name" : "minecraft:vine", + "id" : 106, + "data" : 7 + }, + { + "name" : "minecraft:vine", + "id" : 106, + "data" : 8 + }, + { + "name" : "minecraft:vine", + "id" : 106, + "data" : 9 + }, + { + "name" : "minecraft:vine", + "id" : 106, + "data" : 10 + }, + { + "name" : "minecraft:vine", + "id" : 106, + "data" : 11 + }, + { + "name" : "minecraft:vine", + "id" : 106, + "data" : 12 + }, + { + "name" : "minecraft:vine", + "id" : 106, + "data" : 13 + }, + { + "name" : "minecraft:vine", + "id" : 106, + "data" : 14 + }, + { + "name" : "minecraft:vine", + "id" : 106, + "data" : 15 + }, + { + "name" : "minecraft:fence_gate", + "id" : 107, + "data" : 0 + }, + { + "name" : "minecraft:fence_gate", + "id" : 107, + "data" : 1 + }, + { + "name" : "minecraft:fence_gate", + "id" : 107, + "data" : 2 + }, + { + "name" : "minecraft:fence_gate", + "id" : 107, + "data" : 3 + }, + { + "name" : "minecraft:fence_gate", + "id" : 107, + "data" : 4 + }, + { + "name" : "minecraft:fence_gate", + "id" : 107, + "data" : 5 + }, + { + "name" : "minecraft:fence_gate", + "id" : 107, + "data" : 6 + }, + { + "name" : "minecraft:fence_gate", + "id" : 107, + "data" : 7 + }, + { + "name" : "minecraft:fence_gate", + "id" : 107, + "data" : 8 + }, + { + "name" : "minecraft:fence_gate", + "id" : 107, + "data" : 9 + }, + { + "name" : "minecraft:fence_gate", + "id" : 107, + "data" : 10 + }, + { + "name" : "minecraft:fence_gate", + "id" : 107, + "data" : 11 + }, + { + "name" : "minecraft:fence_gate", + "id" : 107, + "data" : 12 + }, + { + "name" : "minecraft:fence_gate", + "id" : 107, + "data" : 13 + }, + { + "name" : "minecraft:fence_gate", + "id" : 107, + "data" : 14 + }, + { + "name" : "minecraft:fence_gate", + "id" : 107, + "data" : 15 + }, + { + "name" : "minecraft:brick_stairs", + "id" : 108, + "data" : 0 + }, + { + "name" : "minecraft:brick_stairs", + "id" : 108, + "data" : 1 + }, + { + "name" : "minecraft:brick_stairs", + "id" : 108, + "data" : 2 + }, + { + "name" : "minecraft:brick_stairs", + "id" : 108, + "data" : 3 + }, + { + "name" : "minecraft:brick_stairs", + "id" : 108, + "data" : 4 + }, + { + "name" : "minecraft:brick_stairs", + "id" : 108, + "data" : 5 + }, + { + "name" : "minecraft:brick_stairs", + "id" : 108, + "data" : 6 + }, + { + "name" : "minecraft:brick_stairs", + "id" : 108, + "data" : 7 + }, + { + "name" : "minecraft:stone_brick_stairs", + "id" : 109, + "data" : 0 + }, + { + "name" : "minecraft:stone_brick_stairs", + "id" : 109, + "data" : 1 + }, + { + "name" : "minecraft:stone_brick_stairs", + "id" : 109, + "data" : 2 + }, + { + "name" : "minecraft:stone_brick_stairs", + "id" : 109, + "data" : 3 + }, + { + "name" : "minecraft:stone_brick_stairs", + "id" : 109, + "data" : 4 + }, + { + "name" : "minecraft:stone_brick_stairs", + "id" : 109, + "data" : 5 + }, + { + "name" : "minecraft:stone_brick_stairs", + "id" : 109, + "data" : 6 + }, + { + "name" : "minecraft:stone_brick_stairs", + "id" : 109, + "data" : 7 + }, + { + "name" : "minecraft:mycelium", + "id" : 110, + "data" : 0 + }, + { + "name" : "minecraft:waterlily", + "id" : 111, + "data" : 0 + }, + { + "name" : "minecraft:nether_brick", + "id" : 112, + "data" : 0 + }, + { + "name" : "minecraft:nether_brick_fence", + "id" : 113, + "data" : 0 + }, + { + "name" : "minecraft:nether_brick_stairs", + "id" : 114, + "data" : 0 + }, + { + "name" : "minecraft:nether_brick_stairs", + "id" : 114, + "data" : 1 + }, + { + "name" : "minecraft:nether_brick_stairs", + "id" : 114, + "data" : 2 + }, + { + "name" : "minecraft:nether_brick_stairs", + "id" : 114, + "data" : 3 + }, + { + "name" : "minecraft:nether_brick_stairs", + "id" : 114, + "data" : 4 + }, + { + "name" : "minecraft:nether_brick_stairs", + "id" : 114, + "data" : 5 + }, + { + "name" : "minecraft:nether_brick_stairs", + "id" : 114, + "data" : 6 + }, + { + "name" : "minecraft:nether_brick_stairs", + "id" : 114, + "data" : 7 + }, + { + "name" : "minecraft:nether_wart", + "id" : 115, + "data" : 0 + }, + { + "name" : "minecraft:nether_wart", + "id" : 115, + "data" : 1 + }, + { + "name" : "minecraft:nether_wart", + "id" : 115, + "data" : 2 + }, + { + "name" : "minecraft:nether_wart", + "id" : 115, + "data" : 3 + }, + { + "name" : "minecraft:enchanting_table", + "id" : 116, + "data" : 0 + }, + { + "name" : "minecraft:brewing_stand", + "id" : 117, + "data" : 0 + }, + { + "name" : "minecraft:brewing_stand", + "id" : 117, + "data" : 1 + }, + { + "name" : "minecraft:brewing_stand", + "id" : 117, + "data" : 2 + }, + { + "name" : "minecraft:brewing_stand", + "id" : 117, + "data" : 3 + }, + { + "name" : "minecraft:brewing_stand", + "id" : 117, + "data" : 4 + }, + { + "name" : "minecraft:brewing_stand", + "id" : 117, + "data" : 5 + }, + { + "name" : "minecraft:brewing_stand", + "id" : 117, + "data" : 6 + }, + { + "name" : "minecraft:brewing_stand", + "id" : 117, + "data" : 7 + }, + { + "name" : "minecraft:cauldron", + "id" : 118, + "data" : 0 + }, + { + "name" : "minecraft:cauldron", + "id" : 118, + "data" : 1 + }, + { + "name" : "minecraft:cauldron", + "id" : 118, + "data" : 2 + }, + { + "name" : "minecraft:cauldron", + "id" : 118, + "data" : 3 + }, + { + "name" : "minecraft:cauldron", + "id" : 118, + "data" : 4 + }, + { + "name" : "minecraft:cauldron", + "id" : 118, + "data" : 5 + }, + { + "name" : "minecraft:cauldron", + "id" : 118, + "data" : 6 + }, + { + "name" : "minecraft:cauldron", + "id" : 118, + "data" : 7 + }, + { + "name" : "minecraft:cauldron", + "id" : 118, + "data" : 8 + }, + { + "name" : "minecraft:cauldron", + "id" : 118, + "data" : 9 + }, + { + "name" : "minecraft:cauldron", + "id" : 118, + "data" : 10 + }, + { + "name" : "minecraft:cauldron", + "id" : 118, + "data" : 11 + }, + { + "name" : "minecraft:cauldron", + "id" : 118, + "data" : 12 + }, + { + "name" : "minecraft:cauldron", + "id" : 118, + "data" : 13 + }, + { + "name" : "minecraft:cauldron", + "id" : 118, + "data" : 14 + }, + { + "name" : "minecraft:cauldron", + "id" : 118, + "data" : 15 + }, + { + "name" : "minecraft:end_portal", + "id" : 119, + "data" : 0 + }, + { + "name" : "minecraft:end_portal_frame", + "id" : 120, + "data" : 0 + }, + { + "name" : "minecraft:end_portal_frame", + "id" : 120, + "data" : 1 + }, + { + "name" : "minecraft:end_portal_frame", + "id" : 120, + "data" : 2 + }, + { + "name" : "minecraft:end_portal_frame", + "id" : 120, + "data" : 3 + }, + { + "name" : "minecraft:end_portal_frame", + "id" : 120, + "data" : 4 + }, + { + "name" : "minecraft:end_portal_frame", + "id" : 120, + "data" : 5 + }, + { + "name" : "minecraft:end_portal_frame", + "id" : 120, + "data" : 6 + }, + { + "name" : "minecraft:end_portal_frame", + "id" : 120, + "data" : 7 + }, + { + "name" : "minecraft:end_stone", + "id" : 121, + "data" : 0 + }, + { + "name" : "minecraft:dragon_egg", + "id" : 122, + "data" : 0 + }, + { + "name" : "minecraft:redstone_lamp", + "id" : 123, + "data" : 0 + }, + { + "name" : "minecraft:lit_redstone_lamp", + "id" : 124, + "data" : 0 + }, + { + "name" : "minecraft:dropper", + "id" : 125, + "data" : 0 + }, + { + "name" : "minecraft:dropper", + "id" : 125, + "data" : 1 + }, + { + "name" : "minecraft:dropper", + "id" : 125, + "data" : 2 + }, + { + "name" : "minecraft:dropper", + "id" : 125, + "data" : 3 + }, + { + "name" : "minecraft:dropper", + "id" : 125, + "data" : 4 + }, + { + "name" : "minecraft:dropper", + "id" : 125, + "data" : 5 + }, + { + "name" : "minecraft:dropper", + "id" : 125, + "data" : 6 + }, + { + "name" : "minecraft:dropper", + "id" : 125, + "data" : 7 + }, + { + "name" : "minecraft:dropper", + "id" : 125, + "data" : 8 + }, + { + "name" : "minecraft:dropper", + "id" : 125, + "data" : 9 + }, + { + "name" : "minecraft:dropper", + "id" : 125, + "data" : 10 + }, + { + "name" : "minecraft:dropper", + "id" : 125, + "data" : 11 + }, + { + "name" : "minecraft:dropper", + "id" : 125, + "data" : 12 + }, + { + "name" : "minecraft:dropper", + "id" : 125, + "data" : 13 + }, + { + "name" : "minecraft:dropper", + "id" : 125, + "data" : 14 + }, + { + "name" : "minecraft:dropper", + "id" : 125, + "data" : 15 + }, + { + "name" : "minecraft:activator_rail", + "id" : 126, + "data" : 0 + }, + { + "name" : "minecraft:activator_rail", + "id" : 126, + "data" : 1 + }, + { + "name" : "minecraft:activator_rail", + "id" : 126, + "data" : 2 + }, + { + "name" : "minecraft:activator_rail", + "id" : 126, + "data" : 3 + }, + { + "name" : "minecraft:activator_rail", + "id" : 126, + "data" : 4 + }, + { + "name" : "minecraft:activator_rail", + "id" : 126, + "data" : 5 + }, + { + "name" : "minecraft:activator_rail", + "id" : 126, + "data" : 6 + }, + { + "name" : "minecraft:activator_rail", + "id" : 126, + "data" : 7 + }, + { + "name" : "minecraft:activator_rail", + "id" : 126, + "data" : 8 + }, + { + "name" : "minecraft:activator_rail", + "id" : 126, + "data" : 9 + }, + { + "name" : "minecraft:activator_rail", + "id" : 126, + "data" : 10 + }, + { + "name" : "minecraft:activator_rail", + "id" : 126, + "data" : 11 + }, + { + "name" : "minecraft:activator_rail", + "id" : 126, + "data" : 12 + }, + { + "name" : "minecraft:activator_rail", + "id" : 126, + "data" : 13 + }, + { + "name" : "minecraft:activator_rail", + "id" : 126, + "data" : 14 + }, + { + "name" : "minecraft:activator_rail", + "id" : 126, + "data" : 15 + }, + { + "name" : "minecraft:cocoa", + "id" : 127, + "data" : 0 + }, + { + "name" : "minecraft:cocoa", + "id" : 127, + "data" : 1 + }, + { + "name" : "minecraft:cocoa", + "id" : 127, + "data" : 2 + }, + { + "name" : "minecraft:cocoa", + "id" : 127, + "data" : 3 + }, + { + "name" : "minecraft:cocoa", + "id" : 127, + "data" : 4 + }, + { + "name" : "minecraft:cocoa", + "id" : 127, + "data" : 5 + }, + { + "name" : "minecraft:cocoa", + "id" : 127, + "data" : 6 + }, + { + "name" : "minecraft:cocoa", + "id" : 127, + "data" : 7 + }, + { + "name" : "minecraft:cocoa", + "id" : 127, + "data" : 8 + }, + { + "name" : "minecraft:cocoa", + "id" : 127, + "data" : 9 + }, + { + "name" : "minecraft:cocoa", + "id" : 127, + "data" : 10 + }, + { + "name" : "minecraft:cocoa", + "id" : 127, + "data" : 11 + }, + { + "name" : "minecraft:cocoa", + "id" : 127, + "data" : 12 + }, + { + "name" : "minecraft:cocoa", + "id" : 127, + "data" : 13 + }, + { + "name" : "minecraft:cocoa", + "id" : 127, + "data" : 14 + }, + { + "name" : "minecraft:cocoa", + "id" : 127, + "data" : 15 + }, + { + "name" : "minecraft:sandstone_stairs", + "id" : 128, + "data" : 0 + }, + { + "name" : "minecraft:sandstone_stairs", + "id" : 128, + "data" : 1 + }, + { + "name" : "minecraft:sandstone_stairs", + "id" : 128, + "data" : 2 + }, + { + "name" : "minecraft:sandstone_stairs", + "id" : 128, + "data" : 3 + }, + { + "name" : "minecraft:sandstone_stairs", + "id" : 128, + "data" : 4 + }, + { + "name" : "minecraft:sandstone_stairs", + "id" : 128, + "data" : 5 + }, + { + "name" : "minecraft:sandstone_stairs", + "id" : 128, + "data" : 6 + }, + { + "name" : "minecraft:sandstone_stairs", + "id" : 128, + "data" : 7 + }, + { + "name" : "minecraft:emerald_ore", + "id" : 129, + "data" : 0 + }, + { + "name" : "minecraft:ender_chest", + "id" : 130, + "data" : 0 + }, + { + "name" : "minecraft:ender_chest", + "id" : 130, + "data" : 1 + }, + { + "name" : "minecraft:ender_chest", + "id" : 130, + "data" : 2 + }, + { + "name" : "minecraft:ender_chest", + "id" : 130, + "data" : 3 + }, + { + "name" : "minecraft:ender_chest", + "id" : 130, + "data" : 4 + }, + { + "name" : "minecraft:ender_chest", + "id" : 130, + "data" : 5 + }, + { + "name" : "minecraft:ender_chest", + "id" : 130, + "data" : 6 + }, + { + "name" : "minecraft:ender_chest", + "id" : 130, + "data" : 7 + }, + { + "name" : "minecraft:tripwire_hook", + "id" : 131, + "data" : 0 + }, + { + "name" : "minecraft:tripwire_hook", + "id" : 131, + "data" : 1 + }, + { + "name" : "minecraft:tripwire_hook", + "id" : 131, + "data" : 2 + }, + { + "name" : "minecraft:tripwire_hook", + "id" : 131, + "data" : 3 + }, + { + "name" : "minecraft:tripwire_hook", + "id" : 131, + "data" : 4 + }, + { + "name" : "minecraft:tripwire_hook", + "id" : 131, + "data" : 5 + }, + { + "name" : "minecraft:tripwire_hook", + "id" : 131, + "data" : 6 + }, + { + "name" : "minecraft:tripwire_hook", + "id" : 131, + "data" : 7 + }, + { + "name" : "minecraft:tripwire_hook", + "id" : 131, + "data" : 8 + }, + { + "name" : "minecraft:tripwire_hook", + "id" : 131, + "data" : 9 + }, + { + "name" : "minecraft:tripwire_hook", + "id" : 131, + "data" : 10 + }, + { + "name" : "minecraft:tripwire_hook", + "id" : 131, + "data" : 11 + }, + { + "name" : "minecraft:tripwire_hook", + "id" : 131, + "data" : 12 + }, + { + "name" : "minecraft:tripwire_hook", + "id" : 131, + "data" : 13 + }, + { + "name" : "minecraft:tripwire_hook", + "id" : 131, + "data" : 14 + }, + { + "name" : "minecraft:tripwire_hook", + "id" : 131, + "data" : 15 + }, + { + "name" : "minecraft:tripWire", + "id" : 132, + "data" : 0 + }, + { + "name" : "minecraft:tripWire", + "id" : 132, + "data" : 1 + }, + { + "name" : "minecraft:tripWire", + "id" : 132, + "data" : 2 + }, + { + "name" : "minecraft:tripWire", + "id" : 132, + "data" : 3 + }, + { + "name" : "minecraft:tripWire", + "id" : 132, + "data" : 4 + }, + { + "name" : "minecraft:tripWire", + "id" : 132, + "data" : 5 + }, + { + "name" : "minecraft:tripWire", + "id" : 132, + "data" : 6 + }, + { + "name" : "minecraft:tripWire", + "id" : 132, + "data" : 7 + }, + { + "name" : "minecraft:tripWire", + "id" : 132, + "data" : 8 + }, + { + "name" : "minecraft:tripWire", + "id" : 132, + "data" : 9 + }, + { + "name" : "minecraft:tripWire", + "id" : 132, + "data" : 10 + }, + { + "name" : "minecraft:tripWire", + "id" : 132, + "data" : 11 + }, + { + "name" : "minecraft:tripWire", + "id" : 132, + "data" : 12 + }, + { + "name" : "minecraft:tripWire", + "id" : 132, + "data" : 13 + }, + { + "name" : "minecraft:tripWire", + "id" : 132, + "data" : 14 + }, + { + "name" : "minecraft:tripWire", + "id" : 132, + "data" : 15 + }, + { + "name" : "minecraft:emerald_block", + "id" : 133, + "data" : 0 + }, + { + "name" : "minecraft:spruce_stairs", + "id" : 134, + "data" : 0 + }, + { + "name" : "minecraft:spruce_stairs", + "id" : 134, + "data" : 1 + }, + { + "name" : "minecraft:spruce_stairs", + "id" : 134, + "data" : 2 + }, + { + "name" : "minecraft:spruce_stairs", + "id" : 134, + "data" : 3 + }, + { + "name" : "minecraft:spruce_stairs", + "id" : 134, + "data" : 4 + }, + { + "name" : "minecraft:spruce_stairs", + "id" : 134, + "data" : 5 + }, + { + "name" : "minecraft:spruce_stairs", + "id" : 134, + "data" : 6 + }, + { + "name" : "minecraft:spruce_stairs", + "id" : 134, + "data" : 7 + }, + { + "name" : "minecraft:birch_stairs", + "id" : 135, + "data" : 0 + }, + { + "name" : "minecraft:birch_stairs", + "id" : 135, + "data" : 1 + }, + { + "name" : "minecraft:birch_stairs", + "id" : 135, + "data" : 2 + }, + { + "name" : "minecraft:birch_stairs", + "id" : 135, + "data" : 3 + }, + { + "name" : "minecraft:birch_stairs", + "id" : 135, + "data" : 4 + }, + { + "name" : "minecraft:birch_stairs", + "id" : 135, + "data" : 5 + }, + { + "name" : "minecraft:birch_stairs", + "id" : 135, + "data" : 6 + }, + { + "name" : "minecraft:birch_stairs", + "id" : 135, + "data" : 7 + }, + { + "name" : "minecraft:jungle_stairs", + "id" : 136, + "data" : 0 + }, + { + "name" : "minecraft:jungle_stairs", + "id" : 136, + "data" : 1 + }, + { + "name" : "minecraft:jungle_stairs", + "id" : 136, + "data" : 2 + }, + { + "name" : "minecraft:jungle_stairs", + "id" : 136, + "data" : 3 + }, + { + "name" : "minecraft:jungle_stairs", + "id" : 136, + "data" : 4 + }, + { + "name" : "minecraft:jungle_stairs", + "id" : 136, + "data" : 5 + }, + { + "name" : "minecraft:jungle_stairs", + "id" : 136, + "data" : 6 + }, + { + "name" : "minecraft:jungle_stairs", + "id" : 136, + "data" : 7 + }, + { + "name" : "minecraft:command_block", + "id" : 137, + "data" : 0 + }, + { + "name" : "minecraft:command_block", + "id" : 137, + "data" : 1 + }, + { + "name" : "minecraft:command_block", + "id" : 137, + "data" : 2 + }, + { + "name" : "minecraft:command_block", + "id" : 137, + "data" : 3 + }, + { + "name" : "minecraft:command_block", + "id" : 137, + "data" : 4 + }, + { + "name" : "minecraft:command_block", + "id" : 137, + "data" : 5 + }, + { + "name" : "minecraft:command_block", + "id" : 137, + "data" : 6 + }, + { + "name" : "minecraft:command_block", + "id" : 137, + "data" : 7 + }, + { + "name" : "minecraft:command_block", + "id" : 137, + "data" : 8 + }, + { + "name" : "minecraft:command_block", + "id" : 137, + "data" : 9 + }, + { + "name" : "minecraft:command_block", + "id" : 137, + "data" : 10 + }, + { + "name" : "minecraft:command_block", + "id" : 137, + "data" : 11 + }, + { + "name" : "minecraft:command_block", + "id" : 137, + "data" : 12 + }, + { + "name" : "minecraft:command_block", + "id" : 137, + "data" : 13 + }, + { + "name" : "minecraft:command_block", + "id" : 137, + "data" : 14 + }, + { + "name" : "minecraft:command_block", + "id" : 137, + "data" : 15 + }, + { + "name" : "minecraft:beacon", + "id" : 138, + "data" : 0 + }, + { + "name" : "minecraft:cobblestone_wall", + "id" : 139, + "data" : 0 + }, + { + "name" : "minecraft:cobblestone_wall", + "id" : 139, + "data" : 1 + }, + { + "name" : "minecraft:cobblestone_wall", + "id" : 139, + "data" : 2 + }, + { + "name" : "minecraft:cobblestone_wall", + "id" : 139, + "data" : 3 + }, + { + "name" : "minecraft:cobblestone_wall", + "id" : 139, + "data" : 4 + }, + { + "name" : "minecraft:cobblestone_wall", + "id" : 139, + "data" : 5 + }, + { + "name" : "minecraft:cobblestone_wall", + "id" : 139, + "data" : 6 + }, + { + "name" : "minecraft:cobblestone_wall", + "id" : 139, + "data" : 7 + }, + { + "name" : "minecraft:cobblestone_wall", + "id" : 139, + "data" : 8 + }, + { + "name" : "minecraft:cobblestone_wall", + "id" : 139, + "data" : 9 + }, + { + "name" : "minecraft:cobblestone_wall", + "id" : 139, + "data" : 10 + }, + { + "name" : "minecraft:cobblestone_wall", + "id" : 139, + "data" : 11 + }, + { + "name" : "minecraft:cobblestone_wall", + "id" : 139, + "data" : 12 + }, + { + "name" : "minecraft:cobblestone_wall", + "id" : 139, + "data" : 13 + }, + { + "name" : "minecraft:cobblestone_wall", + "id" : 139, + "data" : 14 + }, + { + "name" : "minecraft:cobblestone_wall", + "id" : 139, + "data" : 15 + }, + { + "name" : "minecraft:flower_pot", + "id" : 140, + "data" : 0 + }, + { + "name" : "minecraft:flower_pot", + "id" : 140, + "data" : 1 + }, + { + "name" : "minecraft:carrots", + "id" : 141, + "data" : 0 + }, + { + "name" : "minecraft:carrots", + "id" : 141, + "data" : 1 + }, + { + "name" : "minecraft:carrots", + "id" : 141, + "data" : 2 + }, + { + "name" : "minecraft:carrots", + "id" : 141, + "data" : 3 + }, + { + "name" : "minecraft:carrots", + "id" : 141, + "data" : 4 + }, + { + "name" : "minecraft:carrots", + "id" : 141, + "data" : 5 + }, + { + "name" : "minecraft:carrots", + "id" : 141, + "data" : 6 + }, + { + "name" : "minecraft:carrots", + "id" : 141, + "data" : 7 + }, + { + "name" : "minecraft:potatoes", + "id" : 142, + "data" : 0 + }, + { + "name" : "minecraft:potatoes", + "id" : 142, + "data" : 1 + }, + { + "name" : "minecraft:potatoes", + "id" : 142, + "data" : 2 + }, + { + "name" : "minecraft:potatoes", + "id" : 142, + "data" : 3 + }, + { + "name" : "minecraft:potatoes", + "id" : 142, + "data" : 4 + }, + { + "name" : "minecraft:potatoes", + "id" : 142, + "data" : 5 + }, + { + "name" : "minecraft:potatoes", + "id" : 142, + "data" : 6 + }, + { + "name" : "minecraft:potatoes", + "id" : 142, + "data" : 7 + }, + { + "name" : "minecraft:wooden_button", + "id" : 143, + "data" : 0 + }, + { + "name" : "minecraft:wooden_button", + "id" : 143, + "data" : 1 + }, + { + "name" : "minecraft:wooden_button", + "id" : 143, + "data" : 2 + }, + { + "name" : "minecraft:wooden_button", + "id" : 143, + "data" : 3 + }, + { + "name" : "minecraft:wooden_button", + "id" : 143, + "data" : 4 + }, + { + "name" : "minecraft:wooden_button", + "id" : 143, + "data" : 5 + }, + { + "name" : "minecraft:wooden_button", + "id" : 143, + "data" : 6 + }, + { + "name" : "minecraft:wooden_button", + "id" : 143, + "data" : 7 + }, + { + "name" : "minecraft:wooden_button", + "id" : 143, + "data" : 8 + }, + { + "name" : "minecraft:wooden_button", + "id" : 143, + "data" : 9 + }, + { + "name" : "minecraft:wooden_button", + "id" : 143, + "data" : 10 + }, + { + "name" : "minecraft:wooden_button", + "id" : 143, + "data" : 11 + }, + { + "name" : "minecraft:wooden_button", + "id" : 143, + "data" : 12 + }, + { + "name" : "minecraft:wooden_button", + "id" : 143, + "data" : 13 + }, + { + "name" : "minecraft:wooden_button", + "id" : 143, + "data" : 14 + }, + { + "name" : "minecraft:wooden_button", + "id" : 143, + "data" : 15 + }, + { + "name" : "minecraft:skull", + "id" : 144, + "data" : 0 + }, + { + "name" : "minecraft:skull", + "id" : 144, + "data" : 1 + }, + { + "name" : "minecraft:skull", + "id" : 144, + "data" : 2 + }, + { + "name" : "minecraft:skull", + "id" : 144, + "data" : 3 + }, + { + "name" : "minecraft:skull", + "id" : 144, + "data" : 4 + }, + { + "name" : "minecraft:skull", + "id" : 144, + "data" : 5 + }, + { + "name" : "minecraft:skull", + "id" : 144, + "data" : 6 + }, + { + "name" : "minecraft:skull", + "id" : 144, + "data" : 7 + }, + { + "name" : "minecraft:skull", + "id" : 144, + "data" : 8 + }, + { + "name" : "minecraft:skull", + "id" : 144, + "data" : 9 + }, + { + "name" : "minecraft:skull", + "id" : 144, + "data" : 10 + }, + { + "name" : "minecraft:skull", + "id" : 144, + "data" : 11 + }, + { + "name" : "minecraft:skull", + "id" : 144, + "data" : 12 + }, + { + "name" : "minecraft:skull", + "id" : 144, + "data" : 13 + }, + { + "name" : "minecraft:skull", + "id" : 144, + "data" : 14 + }, + { + "name" : "minecraft:skull", + "id" : 144, + "data" : 15 + }, + { + "name" : "minecraft:anvil", + "id" : 145, + "data" : 0 + }, + { + "name" : "minecraft:anvil", + "id" : 145, + "data" : 1 + }, + { + "name" : "minecraft:anvil", + "id" : 145, + "data" : 2 + }, + { + "name" : "minecraft:anvil", + "id" : 145, + "data" : 3 + }, + { + "name" : "minecraft:anvil", + "id" : 145, + "data" : 4 + }, + { + "name" : "minecraft:anvil", + "id" : 145, + "data" : 5 + }, + { + "name" : "minecraft:anvil", + "id" : 145, + "data" : 6 + }, + { + "name" : "minecraft:anvil", + "id" : 145, + "data" : 7 + }, + { + "name" : "minecraft:anvil", + "id" : 145, + "data" : 8 + }, + { + "name" : "minecraft:anvil", + "id" : 145, + "data" : 9 + }, + { + "name" : "minecraft:anvil", + "id" : 145, + "data" : 10 + }, + { + "name" : "minecraft:anvil", + "id" : 145, + "data" : 11 + }, + { + "name" : "minecraft:anvil", + "id" : 145, + "data" : 12 + }, + { + "name" : "minecraft:anvil", + "id" : 145, + "data" : 13 + }, + { + "name" : "minecraft:anvil", + "id" : 145, + "data" : 14 + }, + { + "name" : "minecraft:anvil", + "id" : 145, + "data" : 15 + }, + { + "name" : "minecraft:trapped_chest", + "id" : 146, + "data" : 0 + }, + { + "name" : "minecraft:trapped_chest", + "id" : 146, + "data" : 1 + }, + { + "name" : "minecraft:trapped_chest", + "id" : 146, + "data" : 2 + }, + { + "name" : "minecraft:trapped_chest", + "id" : 146, + "data" : 3 + }, + { + "name" : "minecraft:trapped_chest", + "id" : 146, + "data" : 4 + }, + { + "name" : "minecraft:trapped_chest", + "id" : 146, + "data" : 5 + }, + { + "name" : "minecraft:trapped_chest", + "id" : 146, + "data" : 6 + }, + { + "name" : "minecraft:trapped_chest", + "id" : 146, + "data" : 7 + }, + { + "name" : "minecraft:light_weighted_pressure_plate", + "id" : 147, + "data" : 0 + }, + { + "name" : "minecraft:light_weighted_pressure_plate", + "id" : 147, + "data" : 1 + }, + { + "name" : "minecraft:light_weighted_pressure_plate", + "id" : 147, + "data" : 2 + }, + { + "name" : "minecraft:light_weighted_pressure_plate", + "id" : 147, + "data" : 3 + }, + { + "name" : "minecraft:light_weighted_pressure_plate", + "id" : 147, + "data" : 4 + }, + { + "name" : "minecraft:light_weighted_pressure_plate", + "id" : 147, + "data" : 5 + }, + { + "name" : "minecraft:light_weighted_pressure_plate", + "id" : 147, + "data" : 6 + }, + { + "name" : "minecraft:light_weighted_pressure_plate", + "id" : 147, + "data" : 7 + }, + { + "name" : "minecraft:light_weighted_pressure_plate", + "id" : 147, + "data" : 8 + }, + { + "name" : "minecraft:light_weighted_pressure_plate", + "id" : 147, + "data" : 9 + }, + { + "name" : "minecraft:light_weighted_pressure_plate", + "id" : 147, + "data" : 10 + }, + { + "name" : "minecraft:light_weighted_pressure_plate", + "id" : 147, + "data" : 11 + }, + { + "name" : "minecraft:light_weighted_pressure_plate", + "id" : 147, + "data" : 12 + }, + { + "name" : "minecraft:light_weighted_pressure_plate", + "id" : 147, + "data" : 13 + }, + { + "name" : "minecraft:light_weighted_pressure_plate", + "id" : 147, + "data" : 14 + }, + { + "name" : "minecraft:light_weighted_pressure_plate", + "id" : 147, + "data" : 15 + }, + { + "name" : "minecraft:heavy_weighted_pressure_plate", + "id" : 148, + "data" : 0 + }, + { + "name" : "minecraft:heavy_weighted_pressure_plate", + "id" : 148, + "data" : 1 + }, + { + "name" : "minecraft:heavy_weighted_pressure_plate", + "id" : 148, + "data" : 2 + }, + { + "name" : "minecraft:heavy_weighted_pressure_plate", + "id" : 148, + "data" : 3 + }, + { + "name" : "minecraft:heavy_weighted_pressure_plate", + "id" : 148, + "data" : 4 + }, + { + "name" : "minecraft:heavy_weighted_pressure_plate", + "id" : 148, + "data" : 5 + }, + { + "name" : "minecraft:heavy_weighted_pressure_plate", + "id" : 148, + "data" : 6 + }, + { + "name" : "minecraft:heavy_weighted_pressure_plate", + "id" : 148, + "data" : 7 + }, + { + "name" : "minecraft:heavy_weighted_pressure_plate", + "id" : 148, + "data" : 8 + }, + { + "name" : "minecraft:heavy_weighted_pressure_plate", + "id" : 148, + "data" : 9 + }, + { + "name" : "minecraft:heavy_weighted_pressure_plate", + "id" : 148, + "data" : 10 + }, + { + "name" : "minecraft:heavy_weighted_pressure_plate", + "id" : 148, + "data" : 11 + }, + { + "name" : "minecraft:heavy_weighted_pressure_plate", + "id" : 148, + "data" : 12 + }, + { + "name" : "minecraft:heavy_weighted_pressure_plate", + "id" : 148, + "data" : 13 + }, + { + "name" : "minecraft:heavy_weighted_pressure_plate", + "id" : 148, + "data" : 14 + }, + { + "name" : "minecraft:heavy_weighted_pressure_plate", + "id" : 148, + "data" : 15 + }, + { + "name" : "minecraft:unpowered_comparator", + "id" : 149, + "data" : 0 + }, + { + "name" : "minecraft:unpowered_comparator", + "id" : 149, + "data" : 1 + }, + { + "name" : "minecraft:unpowered_comparator", + "id" : 149, + "data" : 2 + }, + { + "name" : "minecraft:unpowered_comparator", + "id" : 149, + "data" : 3 + }, + { + "name" : "minecraft:unpowered_comparator", + "id" : 149, + "data" : 4 + }, + { + "name" : "minecraft:unpowered_comparator", + "id" : 149, + "data" : 5 + }, + { + "name" : "minecraft:unpowered_comparator", + "id" : 149, + "data" : 6 + }, + { + "name" : "minecraft:unpowered_comparator", + "id" : 149, + "data" : 7 + }, + { + "name" : "minecraft:unpowered_comparator", + "id" : 149, + "data" : 8 + }, + { + "name" : "minecraft:unpowered_comparator", + "id" : 149, + "data" : 9 + }, + { + "name" : "minecraft:unpowered_comparator", + "id" : 149, + "data" : 10 + }, + { + "name" : "minecraft:unpowered_comparator", + "id" : 149, + "data" : 11 + }, + { + "name" : "minecraft:unpowered_comparator", + "id" : 149, + "data" : 12 + }, + { + "name" : "minecraft:unpowered_comparator", + "id" : 149, + "data" : 13 + }, + { + "name" : "minecraft:unpowered_comparator", + "id" : 149, + "data" : 14 + }, + { + "name" : "minecraft:unpowered_comparator", + "id" : 149, + "data" : 15 + }, + { + "name" : "minecraft:powered_comparator", + "id" : 150, + "data" : 0 + }, + { + "name" : "minecraft:powered_comparator", + "id" : 150, + "data" : 1 + }, + { + "name" : "minecraft:powered_comparator", + "id" : 150, + "data" : 2 + }, + { + "name" : "minecraft:powered_comparator", + "id" : 150, + "data" : 3 + }, + { + "name" : "minecraft:powered_comparator", + "id" : 150, + "data" : 4 + }, + { + "name" : "minecraft:powered_comparator", + "id" : 150, + "data" : 5 + }, + { + "name" : "minecraft:powered_comparator", + "id" : 150, + "data" : 6 + }, + { + "name" : "minecraft:powered_comparator", + "id" : 150, + "data" : 7 + }, + { + "name" : "minecraft:powered_comparator", + "id" : 150, + "data" : 8 + }, + { + "name" : "minecraft:powered_comparator", + "id" : 150, + "data" : 9 + }, + { + "name" : "minecraft:powered_comparator", + "id" : 150, + "data" : 10 + }, + { + "name" : "minecraft:powered_comparator", + "id" : 150, + "data" : 11 + }, + { + "name" : "minecraft:powered_comparator", + "id" : 150, + "data" : 12 + }, + { + "name" : "minecraft:powered_comparator", + "id" : 150, + "data" : 13 + }, + { + "name" : "minecraft:powered_comparator", + "id" : 150, + "data" : 14 + }, + { + "name" : "minecraft:powered_comparator", + "id" : 150, + "data" : 15 + }, + { + "name" : "minecraft:daylight_detector", + "id" : 151, + "data" : 0 + }, + { + "name" : "minecraft:daylight_detector", + "id" : 151, + "data" : 1 + }, + { + "name" : "minecraft:daylight_detector", + "id" : 151, + "data" : 2 + }, + { + "name" : "minecraft:daylight_detector", + "id" : 151, + "data" : 3 + }, + { + "name" : "minecraft:daylight_detector", + "id" : 151, + "data" : 4 + }, + { + "name" : "minecraft:daylight_detector", + "id" : 151, + "data" : 5 + }, + { + "name" : "minecraft:daylight_detector", + "id" : 151, + "data" : 6 + }, + { + "name" : "minecraft:daylight_detector", + "id" : 151, + "data" : 7 + }, + { + "name" : "minecraft:daylight_detector", + "id" : 151, + "data" : 8 + }, + { + "name" : "minecraft:daylight_detector", + "id" : 151, + "data" : 9 + }, + { + "name" : "minecraft:daylight_detector", + "id" : 151, + "data" : 10 + }, + { + "name" : "minecraft:daylight_detector", + "id" : 151, + "data" : 11 + }, + { + "name" : "minecraft:daylight_detector", + "id" : 151, + "data" : 12 + }, + { + "name" : "minecraft:daylight_detector", + "id" : 151, + "data" : 13 + }, + { + "name" : "minecraft:daylight_detector", + "id" : 151, + "data" : 14 + }, + { + "name" : "minecraft:daylight_detector", + "id" : 151, + "data" : 15 + }, + { + "name" : "minecraft:redstone_block", + "id" : 152, + "data" : 0 + }, + { + "name" : "minecraft:quartz_ore", + "id" : 153, + "data" : 0 + }, + { + "name" : "minecraft:hopper", + "id" : 154, + "data" : 0 + }, + { + "name" : "minecraft:hopper", + "id" : 154, + "data" : 1 + }, + { + "name" : "minecraft:hopper", + "id" : 154, + "data" : 2 + }, + { + "name" : "minecraft:hopper", + "id" : 154, + "data" : 3 + }, + { + "name" : "minecraft:hopper", + "id" : 154, + "data" : 4 + }, + { + "name" : "minecraft:hopper", + "id" : 154, + "data" : 5 + }, + { + "name" : "minecraft:hopper", + "id" : 154, + "data" : 6 + }, + { + "name" : "minecraft:hopper", + "id" : 154, + "data" : 7 + }, + { + "name" : "minecraft:hopper", + "id" : 154, + "data" : 8 + }, + { + "name" : "minecraft:hopper", + "id" : 154, + "data" : 9 + }, + { + "name" : "minecraft:hopper", + "id" : 154, + "data" : 10 + }, + { + "name" : "minecraft:hopper", + "id" : 154, + "data" : 11 + }, + { + "name" : "minecraft:hopper", + "id" : 154, + "data" : 12 + }, + { + "name" : "minecraft:hopper", + "id" : 154, + "data" : 13 + }, + { + "name" : "minecraft:hopper", + "id" : 154, + "data" : 14 + }, + { + "name" : "minecraft:hopper", + "id" : 154, + "data" : 15 + }, + { + "name" : "minecraft:quartz_block", + "id" : 155, + "data" : 0 + }, + { + "name" : "minecraft:quartz_block", + "id" : 155, + "data" : 1 + }, + { + "name" : "minecraft:quartz_block", + "id" : 155, + "data" : 2 + }, + { + "name" : "minecraft:quartz_block", + "id" : 155, + "data" : 3 + }, + { + "name" : "minecraft:quartz_block", + "id" : 155, + "data" : 4 + }, + { + "name" : "minecraft:quartz_block", + "id" : 155, + "data" : 5 + }, + { + "name" : "minecraft:quartz_block", + "id" : 155, + "data" : 6 + }, + { + "name" : "minecraft:quartz_block", + "id" : 155, + "data" : 7 + }, + { + "name" : "minecraft:quartz_block", + "id" : 155, + "data" : 8 + }, + { + "name" : "minecraft:quartz_block", + "id" : 155, + "data" : 9 + }, + { + "name" : "minecraft:quartz_block", + "id" : 155, + "data" : 10 + }, + { + "name" : "minecraft:quartz_block", + "id" : 155, + "data" : 11 + }, + { + "name" : "minecraft:quartz_block", + "id" : 155, + "data" : 12 + }, + { + "name" : "minecraft:quartz_block", + "id" : 155, + "data" : 13 + }, + { + "name" : "minecraft:quartz_block", + "id" : 155, + "data" : 14 + }, + { + "name" : "minecraft:quartz_block", + "id" : 155, + "data" : 15 + }, + { + "name" : "minecraft:quartz_stairs", + "id" : 156, + "data" : 0 + }, + { + "name" : "minecraft:quartz_stairs", + "id" : 156, + "data" : 1 + }, + { + "name" : "minecraft:quartz_stairs", + "id" : 156, + "data" : 2 + }, + { + "name" : "minecraft:quartz_stairs", + "id" : 156, + "data" : 3 + }, + { + "name" : "minecraft:quartz_stairs", + "id" : 156, + "data" : 4 + }, + { + "name" : "minecraft:quartz_stairs", + "id" : 156, + "data" : 5 + }, + { + "name" : "minecraft:quartz_stairs", + "id" : 156, + "data" : 6 + }, + { + "name" : "minecraft:quartz_stairs", + "id" : 156, + "data" : 7 + }, + { + "name" : "minecraft:double_wooden_slab", + "id" : 157, + "data" : 0 + }, + { + "name" : "minecraft:double_wooden_slab", + "id" : 157, + "data" : 1 + }, + { + "name" : "minecraft:double_wooden_slab", + "id" : 157, + "data" : 2 + }, + { + "name" : "minecraft:double_wooden_slab", + "id" : 157, + "data" : 3 + }, + { + "name" : "minecraft:double_wooden_slab", + "id" : 157, + "data" : 4 + }, + { + "name" : "minecraft:double_wooden_slab", + "id" : 157, + "data" : 5 + }, + { + "name" : "minecraft:double_wooden_slab", + "id" : 157, + "data" : 6 + }, + { + "name" : "minecraft:double_wooden_slab", + "id" : 157, + "data" : 7 + }, + { + "name" : "minecraft:double_wooden_slab", + "id" : 157, + "data" : 8 + }, + { + "name" : "minecraft:double_wooden_slab", + "id" : 157, + "data" : 9 + }, + { + "name" : "minecraft:double_wooden_slab", + "id" : 157, + "data" : 10 + }, + { + "name" : "minecraft:double_wooden_slab", + "id" : 157, + "data" : 11 + }, + { + "name" : "minecraft:double_wooden_slab", + "id" : 157, + "data" : 12 + }, + { + "name" : "minecraft:double_wooden_slab", + "id" : 157, + "data" : 13 + }, + { + "name" : "minecraft:double_wooden_slab", + "id" : 157, + "data" : 14 + }, + { + "name" : "minecraft:double_wooden_slab", + "id" : 157, + "data" : 15 + }, + { + "name" : "minecraft:wooden_slab", + "id" : 158, + "data" : 0 + }, + { + "name" : "minecraft:wooden_slab", + "id" : 158, + "data" : 1 + }, + { + "name" : "minecraft:wooden_slab", + "id" : 158, + "data" : 2 + }, + { + "name" : "minecraft:wooden_slab", + "id" : 158, + "data" : 3 + }, + { + "name" : "minecraft:wooden_slab", + "id" : 158, + "data" : 4 + }, + { + "name" : "minecraft:wooden_slab", + "id" : 158, + "data" : 5 + }, + { + "name" : "minecraft:wooden_slab", + "id" : 158, + "data" : 6 + }, + { + "name" : "minecraft:wooden_slab", + "id" : 158, + "data" : 7 + }, + { + "name" : "minecraft:wooden_slab", + "id" : 158, + "data" : 8 + }, + { + "name" : "minecraft:wooden_slab", + "id" : 158, + "data" : 9 + }, + { + "name" : "minecraft:wooden_slab", + "id" : 158, + "data" : 10 + }, + { + "name" : "minecraft:wooden_slab", + "id" : 158, + "data" : 11 + }, + { + "name" : "minecraft:wooden_slab", + "id" : 158, + "data" : 12 + }, + { + "name" : "minecraft:wooden_slab", + "id" : 158, + "data" : 13 + }, + { + "name" : "minecraft:wooden_slab", + "id" : 158, + "data" : 14 + }, + { + "name" : "minecraft:wooden_slab", + "id" : 158, + "data" : 15 + }, + { + "name" : "minecraft:stained_hardened_clay", + "id" : 159, + "data" : 0 + }, + { + "name" : "minecraft:stained_hardened_clay", + "id" : 159, + "data" : 1 + }, + { + "name" : "minecraft:stained_hardened_clay", + "id" : 159, + "data" : 2 + }, + { + "name" : "minecraft:stained_hardened_clay", + "id" : 159, + "data" : 3 + }, + { + "name" : "minecraft:stained_hardened_clay", + "id" : 159, + "data" : 4 + }, + { + "name" : "minecraft:stained_hardened_clay", + "id" : 159, + "data" : 5 + }, + { + "name" : "minecraft:stained_hardened_clay", + "id" : 159, + "data" : 6 + }, + { + "name" : "minecraft:stained_hardened_clay", + "id" : 159, + "data" : 7 + }, + { + "name" : "minecraft:stained_hardened_clay", + "id" : 159, + "data" : 8 + }, + { + "name" : "minecraft:stained_hardened_clay", + "id" : 159, + "data" : 9 + }, + { + "name" : "minecraft:stained_hardened_clay", + "id" : 159, + "data" : 10 + }, + { + "name" : "minecraft:stained_hardened_clay", + "id" : 159, + "data" : 11 + }, + { + "name" : "minecraft:stained_hardened_clay", + "id" : 159, + "data" : 12 + }, + { + "name" : "minecraft:stained_hardened_clay", + "id" : 159, + "data" : 13 + }, + { + "name" : "minecraft:stained_hardened_clay", + "id" : 159, + "data" : 14 + }, + { + "name" : "minecraft:stained_hardened_clay", + "id" : 159, + "data" : 15 + }, + { + "name" : "minecraft:stained_glass_pane", + "id" : 160, + "data" : 0 + }, + { + "name" : "minecraft:stained_glass_pane", + "id" : 160, + "data" : 1 + }, + { + "name" : "minecraft:stained_glass_pane", + "id" : 160, + "data" : 2 + }, + { + "name" : "minecraft:stained_glass_pane", + "id" : 160, + "data" : 3 + }, + { + "name" : "minecraft:stained_glass_pane", + "id" : 160, + "data" : 4 + }, + { + "name" : "minecraft:stained_glass_pane", + "id" : 160, + "data" : 5 + }, + { + "name" : "minecraft:stained_glass_pane", + "id" : 160, + "data" : 6 + }, + { + "name" : "minecraft:stained_glass_pane", + "id" : 160, + "data" : 7 + }, + { + "name" : "minecraft:stained_glass_pane", + "id" : 160, + "data" : 8 + }, + { + "name" : "minecraft:stained_glass_pane", + "id" : 160, + "data" : 9 + }, + { + "name" : "minecraft:stained_glass_pane", + "id" : 160, + "data" : 10 + }, + { + "name" : "minecraft:stained_glass_pane", + "id" : 160, + "data" : 11 + }, + { + "name" : "minecraft:stained_glass_pane", + "id" : 160, + "data" : 12 + }, + { + "name" : "minecraft:stained_glass_pane", + "id" : 160, + "data" : 13 + }, + { + "name" : "minecraft:stained_glass_pane", + "id" : 160, + "data" : 14 + }, + { + "name" : "minecraft:stained_glass_pane", + "id" : 160, + "data" : 15 + }, + { + "name" : "minecraft:leaves2", + "id" : 161, + "data" : 0 + }, + { + "name" : "minecraft:leaves2", + "id" : 161, + "data" : 1 + }, + { + "name" : "minecraft:leaves2", + "id" : 161, + "data" : 2 + }, + { + "name" : "minecraft:leaves2", + "id" : 161, + "data" : 3 + }, + { + "name" : "minecraft:leaves2", + "id" : 161, + "data" : 4 + }, + { + "name" : "minecraft:leaves2", + "id" : 161, + "data" : 5 + }, + { + "name" : "minecraft:leaves2", + "id" : 161, + "data" : 6 + }, + { + "name" : "minecraft:leaves2", + "id" : 161, + "data" : 7 + }, + { + "name" : "minecraft:leaves2", + "id" : 161, + "data" : 8 + }, + { + "name" : "minecraft:leaves2", + "id" : 161, + "data" : 9 + }, + { + "name" : "minecraft:leaves2", + "id" : 161, + "data" : 10 + }, + { + "name" : "minecraft:leaves2", + "id" : 161, + "data" : 11 + }, + { + "name" : "minecraft:leaves2", + "id" : 161, + "data" : 12 + }, + { + "name" : "minecraft:leaves2", + "id" : 161, + "data" : 13 + }, + { + "name" : "minecraft:leaves2", + "id" : 161, + "data" : 14 + }, + { + "name" : "minecraft:leaves2", + "id" : 161, + "data" : 15 + }, + { + "name" : "minecraft:log2", + "id" : 162, + "data" : 0 + }, + { + "name" : "minecraft:log2", + "id" : 162, + "data" : 1 + }, + { + "name" : "minecraft:log2", + "id" : 162, + "data" : 2 + }, + { + "name" : "minecraft:log2", + "id" : 162, + "data" : 3 + }, + { + "name" : "minecraft:log2", + "id" : 162, + "data" : 4 + }, + { + "name" : "minecraft:log2", + "id" : 162, + "data" : 5 + }, + { + "name" : "minecraft:log2", + "id" : 162, + "data" : 6 + }, + { + "name" : "minecraft:log2", + "id" : 162, + "data" : 7 + }, + { + "name" : "minecraft:log2", + "id" : 162, + "data" : 8 + }, + { + "name" : "minecraft:log2", + "id" : 162, + "data" : 9 + }, + { + "name" : "minecraft:log2", + "id" : 162, + "data" : 10 + }, + { + "name" : "minecraft:log2", + "id" : 162, + "data" : 11 + }, + { + "name" : "minecraft:log2", + "id" : 162, + "data" : 12 + }, + { + "name" : "minecraft:log2", + "id" : 162, + "data" : 13 + }, + { + "name" : "minecraft:log2", + "id" : 162, + "data" : 14 + }, + { + "name" : "minecraft:log2", + "id" : 162, + "data" : 15 + }, + { + "name" : "minecraft:acacia_stairs", + "id" : 163, + "data" : 0 + }, + { + "name" : "minecraft:acacia_stairs", + "id" : 163, + "data" : 1 + }, + { + "name" : "minecraft:acacia_stairs", + "id" : 163, + "data" : 2 + }, + { + "name" : "minecraft:acacia_stairs", + "id" : 163, + "data" : 3 + }, + { + "name" : "minecraft:acacia_stairs", + "id" : 163, + "data" : 4 + }, + { + "name" : "minecraft:acacia_stairs", + "id" : 163, + "data" : 5 + }, + { + "name" : "minecraft:acacia_stairs", + "id" : 163, + "data" : 6 + }, + { + "name" : "minecraft:acacia_stairs", + "id" : 163, + "data" : 7 + }, + { + "name" : "minecraft:dark_oak_stairs", + "id" : 164, + "data" : 0 + }, + { + "name" : "minecraft:dark_oak_stairs", + "id" : 164, + "data" : 1 + }, + { + "name" : "minecraft:dark_oak_stairs", + "id" : 164, + "data" : 2 + }, + { + "name" : "minecraft:dark_oak_stairs", + "id" : 164, + "data" : 3 + }, + { + "name" : "minecraft:dark_oak_stairs", + "id" : 164, + "data" : 4 + }, + { + "name" : "minecraft:dark_oak_stairs", + "id" : 164, + "data" : 5 + }, + { + "name" : "minecraft:dark_oak_stairs", + "id" : 164, + "data" : 6 + }, + { + "name" : "minecraft:dark_oak_stairs", + "id" : 164, + "data" : 7 + }, + { + "name" : "minecraft:slime", + "id" : 165, + "data" : 0 + }, + { + "name" : "minecraft:iron_trapdoor", + "id" : 167, + "data" : 0 + }, + { + "name" : "minecraft:iron_trapdoor", + "id" : 167, + "data" : 1 + }, + { + "name" : "minecraft:iron_trapdoor", + "id" : 167, + "data" : 2 + }, + { + "name" : "minecraft:iron_trapdoor", + "id" : 167, + "data" : 3 + }, + { + "name" : "minecraft:iron_trapdoor", + "id" : 167, + "data" : 4 + }, + { + "name" : "minecraft:iron_trapdoor", + "id" : 167, + "data" : 5 + }, + { + "name" : "minecraft:iron_trapdoor", + "id" : 167, + "data" : 6 + }, + { + "name" : "minecraft:iron_trapdoor", + "id" : 167, + "data" : 7 + }, + { + "name" : "minecraft:iron_trapdoor", + "id" : 167, + "data" : 8 + }, + { + "name" : "minecraft:iron_trapdoor", + "id" : 167, + "data" : 9 + }, + { + "name" : "minecraft:iron_trapdoor", + "id" : 167, + "data" : 10 + }, + { + "name" : "minecraft:iron_trapdoor", + "id" : 167, + "data" : 11 + }, + { + "name" : "minecraft:iron_trapdoor", + "id" : 167, + "data" : 12 + }, + { + "name" : "minecraft:iron_trapdoor", + "id" : 167, + "data" : 13 + }, + { + "name" : "minecraft:iron_trapdoor", + "id" : 167, + "data" : 14 + }, + { + "name" : "minecraft:iron_trapdoor", + "id" : 167, + "data" : 15 + }, + { + "name" : "minecraft:prismarine", + "id" : 168, + "data" : 0 + }, + { + "name" : "minecraft:prismarine", + "id" : 168, + "data" : 1 + }, + { + "name" : "minecraft:prismarine", + "id" : 168, + "data" : 2 + }, + { + "name" : "minecraft:prismarine", + "id" : 168, + "data" : 3 + }, + { + "name" : "minecraft:seaLantern", + "id" : 169, + "data" : 0 + }, + { + "name" : "minecraft:hay_block", + "id" : 170, + "data" : 0 + }, + { + "name" : "minecraft:hay_block", + "id" : 170, + "data" : 1 + }, + { + "name" : "minecraft:hay_block", + "id" : 170, + "data" : 2 + }, + { + "name" : "minecraft:hay_block", + "id" : 170, + "data" : 3 + }, + { + "name" : "minecraft:hay_block", + "id" : 170, + "data" : 4 + }, + { + "name" : "minecraft:hay_block", + "id" : 170, + "data" : 5 + }, + { + "name" : "minecraft:hay_block", + "id" : 170, + "data" : 6 + }, + { + "name" : "minecraft:hay_block", + "id" : 170, + "data" : 7 + }, + { + "name" : "minecraft:hay_block", + "id" : 170, + "data" : 8 + }, + { + "name" : "minecraft:hay_block", + "id" : 170, + "data" : 9 + }, + { + "name" : "minecraft:hay_block", + "id" : 170, + "data" : 10 + }, + { + "name" : "minecraft:hay_block", + "id" : 170, + "data" : 11 + }, + { + "name" : "minecraft:hay_block", + "id" : 170, + "data" : 12 + }, + { + "name" : "minecraft:hay_block", + "id" : 170, + "data" : 13 + }, + { + "name" : "minecraft:hay_block", + "id" : 170, + "data" : 14 + }, + { + "name" : "minecraft:hay_block", + "id" : 170, + "data" : 15 + }, + { + "name" : "minecraft:carpet", + "id" : 171, + "data" : 0 + }, + { + "name" : "minecraft:carpet", + "id" : 171, + "data" : 1 + }, + { + "name" : "minecraft:carpet", + "id" : 171, + "data" : 2 + }, + { + "name" : "minecraft:carpet", + "id" : 171, + "data" : 3 + }, + { + "name" : "minecraft:carpet", + "id" : 171, + "data" : 4 + }, + { + "name" : "minecraft:carpet", + "id" : 171, + "data" : 5 + }, + { + "name" : "minecraft:carpet", + "id" : 171, + "data" : 6 + }, + { + "name" : "minecraft:carpet", + "id" : 171, + "data" : 7 + }, + { + "name" : "minecraft:carpet", + "id" : 171, + "data" : 8 + }, + { + "name" : "minecraft:carpet", + "id" : 171, + "data" : 9 + }, + { + "name" : "minecraft:carpet", + "id" : 171, + "data" : 10 + }, + { + "name" : "minecraft:carpet", + "id" : 171, + "data" : 11 + }, + { + "name" : "minecraft:carpet", + "id" : 171, + "data" : 12 + }, + { + "name" : "minecraft:carpet", + "id" : 171, + "data" : 13 + }, + { + "name" : "minecraft:carpet", + "id" : 171, + "data" : 14 + }, + { + "name" : "minecraft:carpet", + "id" : 171, + "data" : 15 + }, + { + "name" : "minecraft:hardened_clay", + "id" : 172, + "data" : 0 + }, + { + "name" : "minecraft:coal_block", + "id" : 173, + "data" : 0 + }, + { + "name" : "minecraft:packed_ice", + "id" : 174, + "data" : 0 + }, + { + "name" : "minecraft:double_plant", + "id" : 175, + "data" : 0 + }, + { + "name" : "minecraft:double_plant", + "id" : 175, + "data" : 1 + }, + { + "name" : "minecraft:double_plant", + "id" : 175, + "data" : 2 + }, + { + "name" : "minecraft:double_plant", + "id" : 175, + "data" : 3 + }, + { + "name" : "minecraft:double_plant", + "id" : 175, + "data" : 4 + }, + { + "name" : "minecraft:double_plant", + "id" : 175, + "data" : 5 + }, + { + "name" : "minecraft:double_plant", + "id" : 175, + "data" : 6 + }, + { + "name" : "minecraft:double_plant", + "id" : 175, + "data" : 7 + }, + { + "name" : "minecraft:double_plant", + "id" : 175, + "data" : 8 + }, + { + "name" : "minecraft:double_plant", + "id" : 175, + "data" : 9 + }, + { + "name" : "minecraft:double_plant", + "id" : 175, + "data" : 10 + }, + { + "name" : "minecraft:double_plant", + "id" : 175, + "data" : 11 + }, + { + "name" : "minecraft:double_plant", + "id" : 175, + "data" : 12 + }, + { + "name" : "minecraft:double_plant", + "id" : 175, + "data" : 13 + }, + { + "name" : "minecraft:double_plant", + "id" : 175, + "data" : 14 + }, + { + "name" : "minecraft:double_plant", + "id" : 175, + "data" : 15 + }, + { + "name" : "minecraft:standing_banner", + "id" : 176, + "data" : 0 + }, + { + "name" : "minecraft:standing_banner", + "id" : 176, + "data" : 1 + }, + { + "name" : "minecraft:standing_banner", + "id" : 176, + "data" : 2 + }, + { + "name" : "minecraft:standing_banner", + "id" : 176, + "data" : 3 + }, + { + "name" : "minecraft:standing_banner", + "id" : 176, + "data" : 4 + }, + { + "name" : "minecraft:standing_banner", + "id" : 176, + "data" : 5 + }, + { + "name" : "minecraft:standing_banner", + "id" : 176, + "data" : 6 + }, + { + "name" : "minecraft:standing_banner", + "id" : 176, + "data" : 7 + }, + { + "name" : "minecraft:standing_banner", + "id" : 176, + "data" : 8 + }, + { + "name" : "minecraft:standing_banner", + "id" : 176, + "data" : 9 + }, + { + "name" : "minecraft:standing_banner", + "id" : 176, + "data" : 10 + }, + { + "name" : "minecraft:standing_banner", + "id" : 176, + "data" : 11 + }, + { + "name" : "minecraft:standing_banner", + "id" : 176, + "data" : 12 + }, + { + "name" : "minecraft:standing_banner", + "id" : 176, + "data" : 13 + }, + { + "name" : "minecraft:standing_banner", + "id" : 176, + "data" : 14 + }, + { + "name" : "minecraft:standing_banner", + "id" : 176, + "data" : 15 + }, + { + "name" : "minecraft:wall_banner", + "id" : 177, + "data" : 0 + }, + { + "name" : "minecraft:wall_banner", + "id" : 177, + "data" : 1 + }, + { + "name" : "minecraft:wall_banner", + "id" : 177, + "data" : 2 + }, + { + "name" : "minecraft:wall_banner", + "id" : 177, + "data" : 3 + }, + { + "name" : "minecraft:wall_banner", + "id" : 177, + "data" : 4 + }, + { + "name" : "minecraft:wall_banner", + "id" : 177, + "data" : 5 + }, + { + "name" : "minecraft:wall_banner", + "id" : 177, + "data" : 6 + }, + { + "name" : "minecraft:wall_banner", + "id" : 177, + "data" : 7 + }, + { + "name" : "minecraft:daylight_detector_inverted", + "id" : 178, + "data" : 0 + }, + { + "name" : "minecraft:daylight_detector_inverted", + "id" : 178, + "data" : 1 + }, + { + "name" : "minecraft:daylight_detector_inverted", + "id" : 178, + "data" : 2 + }, + { + "name" : "minecraft:daylight_detector_inverted", + "id" : 178, + "data" : 3 + }, + { + "name" : "minecraft:daylight_detector_inverted", + "id" : 178, + "data" : 4 + }, + { + "name" : "minecraft:daylight_detector_inverted", + "id" : 178, + "data" : 5 + }, + { + "name" : "minecraft:daylight_detector_inverted", + "id" : 178, + "data" : 6 + }, + { + "name" : "minecraft:daylight_detector_inverted", + "id" : 178, + "data" : 7 + }, + { + "name" : "minecraft:daylight_detector_inverted", + "id" : 178, + "data" : 8 + }, + { + "name" : "minecraft:daylight_detector_inverted", + "id" : 178, + "data" : 9 + }, + { + "name" : "minecraft:daylight_detector_inverted", + "id" : 178, + "data" : 10 + }, + { + "name" : "minecraft:daylight_detector_inverted", + "id" : 178, + "data" : 11 + }, + { + "name" : "minecraft:daylight_detector_inverted", + "id" : 178, + "data" : 12 + }, + { + "name" : "minecraft:daylight_detector_inverted", + "id" : 178, + "data" : 13 + }, + { + "name" : "minecraft:daylight_detector_inverted", + "id" : 178, + "data" : 14 + }, + { + "name" : "minecraft:daylight_detector_inverted", + "id" : 178, + "data" : 15 + }, + { + "name" : "minecraft:red_sandstone", + "id" : 179, + "data" : 0 + }, + { + "name" : "minecraft:red_sandstone", + "id" : 179, + "data" : 1 + }, + { + "name" : "minecraft:red_sandstone", + "id" : 179, + "data" : 2 + }, + { + "name" : "minecraft:red_sandstone", + "id" : 179, + "data" : 3 + }, + { + "name" : "minecraft:red_sandstone_stairs", + "id" : 180, + "data" : 0 + }, + { + "name" : "minecraft:red_sandstone_stairs", + "id" : 180, + "data" : 1 + }, + { + "name" : "minecraft:red_sandstone_stairs", + "id" : 180, + "data" : 2 + }, + { + "name" : "minecraft:red_sandstone_stairs", + "id" : 180, + "data" : 3 + }, + { + "name" : "minecraft:red_sandstone_stairs", + "id" : 180, + "data" : 4 + }, + { + "name" : "minecraft:red_sandstone_stairs", + "id" : 180, + "data" : 5 + }, + { + "name" : "minecraft:red_sandstone_stairs", + "id" : 180, + "data" : 6 + }, + { + "name" : "minecraft:red_sandstone_stairs", + "id" : 180, + "data" : 7 + }, + { + "name" : "minecraft:double_stone_slab2", + "id" : 181, + "data" : 0 + }, + { + "name" : "minecraft:double_stone_slab2", + "id" : 181, + "data" : 1 + }, + { + "name" : "minecraft:double_stone_slab2", + "id" : 181, + "data" : 2 + }, + { + "name" : "minecraft:double_stone_slab2", + "id" : 181, + "data" : 3 + }, + { + "name" : "minecraft:double_stone_slab2", + "id" : 181, + "data" : 4 + }, + { + "name" : "minecraft:double_stone_slab2", + "id" : 181, + "data" : 5 + }, + { + "name" : "minecraft:double_stone_slab2", + "id" : 181, + "data" : 6 + }, + { + "name" : "minecraft:double_stone_slab2", + "id" : 181, + "data" : 7 + }, + { + "name" : "minecraft:double_stone_slab2", + "id" : 181, + "data" : 8 + }, + { + "name" : "minecraft:double_stone_slab2", + "id" : 181, + "data" : 9 + }, + { + "name" : "minecraft:double_stone_slab2", + "id" : 181, + "data" : 10 + }, + { + "name" : "minecraft:double_stone_slab2", + "id" : 181, + "data" : 11 + }, + { + "name" : "minecraft:double_stone_slab2", + "id" : 181, + "data" : 12 + }, + { + "name" : "minecraft:double_stone_slab2", + "id" : 181, + "data" : 13 + }, + { + "name" : "minecraft:double_stone_slab2", + "id" : 181, + "data" : 14 + }, + { + "name" : "minecraft:double_stone_slab2", + "id" : 181, + "data" : 15 + }, + { + "name" : "minecraft:stone_slab2", + "id" : 182, + "data" : 0 + }, + { + "name" : "minecraft:stone_slab2", + "id" : 182, + "data" : 1 + }, + { + "name" : "minecraft:stone_slab2", + "id" : 182, + "data" : 2 + }, + { + "name" : "minecraft:stone_slab2", + "id" : 182, + "data" : 3 + }, + { + "name" : "minecraft:stone_slab2", + "id" : 182, + "data" : 4 + }, + { + "name" : "minecraft:stone_slab2", + "id" : 182, + "data" : 5 + }, + { + "name" : "minecraft:stone_slab2", + "id" : 182, + "data" : 6 + }, + { + "name" : "minecraft:stone_slab2", + "id" : 182, + "data" : 7 + }, + { + "name" : "minecraft:stone_slab2", + "id" : 182, + "data" : 8 + }, + { + "name" : "minecraft:stone_slab2", + "id" : 182, + "data" : 9 + }, + { + "name" : "minecraft:stone_slab2", + "id" : 182, + "data" : 10 + }, + { + "name" : "minecraft:stone_slab2", + "id" : 182, + "data" : 11 + }, + { + "name" : "minecraft:stone_slab2", + "id" : 182, + "data" : 12 + }, + { + "name" : "minecraft:stone_slab2", + "id" : 182, + "data" : 13 + }, + { + "name" : "minecraft:stone_slab2", + "id" : 182, + "data" : 14 + }, + { + "name" : "minecraft:stone_slab2", + "id" : 182, + "data" : 15 + }, + { + "name" : "minecraft:spruce_fence_gate", + "id" : 183, + "data" : 0 + }, + { + "name" : "minecraft:spruce_fence_gate", + "id" : 183, + "data" : 1 + }, + { + "name" : "minecraft:spruce_fence_gate", + "id" : 183, + "data" : 2 + }, + { + "name" : "minecraft:spruce_fence_gate", + "id" : 183, + "data" : 3 + }, + { + "name" : "minecraft:spruce_fence_gate", + "id" : 183, + "data" : 4 + }, + { + "name" : "minecraft:spruce_fence_gate", + "id" : 183, + "data" : 5 + }, + { + "name" : "minecraft:spruce_fence_gate", + "id" : 183, + "data" : 6 + }, + { + "name" : "minecraft:spruce_fence_gate", + "id" : 183, + "data" : 7 + }, + { + "name" : "minecraft:spruce_fence_gate", + "id" : 183, + "data" : 8 + }, + { + "name" : "minecraft:spruce_fence_gate", + "id" : 183, + "data" : 9 + }, + { + "name" : "minecraft:spruce_fence_gate", + "id" : 183, + "data" : 10 + }, + { + "name" : "minecraft:spruce_fence_gate", + "id" : 183, + "data" : 11 + }, + { + "name" : "minecraft:spruce_fence_gate", + "id" : 183, + "data" : 12 + }, + { + "name" : "minecraft:spruce_fence_gate", + "id" : 183, + "data" : 13 + }, + { + "name" : "minecraft:spruce_fence_gate", + "id" : 183, + "data" : 14 + }, + { + "name" : "minecraft:spruce_fence_gate", + "id" : 183, + "data" : 15 + }, + { + "name" : "minecraft:birch_fence_gate", + "id" : 184, + "data" : 0 + }, + { + "name" : "minecraft:birch_fence_gate", + "id" : 184, + "data" : 1 + }, + { + "name" : "minecraft:birch_fence_gate", + "id" : 184, + "data" : 2 + }, + { + "name" : "minecraft:birch_fence_gate", + "id" : 184, + "data" : 3 + }, + { + "name" : "minecraft:birch_fence_gate", + "id" : 184, + "data" : 4 + }, + { + "name" : "minecraft:birch_fence_gate", + "id" : 184, + "data" : 5 + }, + { + "name" : "minecraft:birch_fence_gate", + "id" : 184, + "data" : 6 + }, + { + "name" : "minecraft:birch_fence_gate", + "id" : 184, + "data" : 7 + }, + { + "name" : "minecraft:birch_fence_gate", + "id" : 184, + "data" : 8 + }, + { + "name" : "minecraft:birch_fence_gate", + "id" : 184, + "data" : 9 + }, + { + "name" : "minecraft:birch_fence_gate", + "id" : 184, + "data" : 10 + }, + { + "name" : "minecraft:birch_fence_gate", + "id" : 184, + "data" : 11 + }, + { + "name" : "minecraft:birch_fence_gate", + "id" : 184, + "data" : 12 + }, + { + "name" : "minecraft:birch_fence_gate", + "id" : 184, + "data" : 13 + }, + { + "name" : "minecraft:birch_fence_gate", + "id" : 184, + "data" : 14 + }, + { + "name" : "minecraft:birch_fence_gate", + "id" : 184, + "data" : 15 + }, + { + "name" : "minecraft:jungle_fence_gate", + "id" : 185, + "data" : 0 + }, + { + "name" : "minecraft:jungle_fence_gate", + "id" : 185, + "data" : 1 + }, + { + "name" : "minecraft:jungle_fence_gate", + "id" : 185, + "data" : 2 + }, + { + "name" : "minecraft:jungle_fence_gate", + "id" : 185, + "data" : 3 + }, + { + "name" : "minecraft:jungle_fence_gate", + "id" : 185, + "data" : 4 + }, + { + "name" : "minecraft:jungle_fence_gate", + "id" : 185, + "data" : 5 + }, + { + "name" : "minecraft:jungle_fence_gate", + "id" : 185, + "data" : 6 + }, + { + "name" : "minecraft:jungle_fence_gate", + "id" : 185, + "data" : 7 + }, + { + "name" : "minecraft:jungle_fence_gate", + "id" : 185, + "data" : 8 + }, + { + "name" : "minecraft:jungle_fence_gate", + "id" : 185, + "data" : 9 + }, + { + "name" : "minecraft:jungle_fence_gate", + "id" : 185, + "data" : 10 + }, + { + "name" : "minecraft:jungle_fence_gate", + "id" : 185, + "data" : 11 + }, + { + "name" : "minecraft:jungle_fence_gate", + "id" : 185, + "data" : 12 + }, + { + "name" : "minecraft:jungle_fence_gate", + "id" : 185, + "data" : 13 + }, + { + "name" : "minecraft:jungle_fence_gate", + "id" : 185, + "data" : 14 + }, + { + "name" : "minecraft:jungle_fence_gate", + "id" : 185, + "data" : 15 + }, + { + "name" : "minecraft:dark_oak_fence_gate", + "id" : 186, + "data" : 0 + }, + { + "name" : "minecraft:dark_oak_fence_gate", + "id" : 186, + "data" : 1 + }, + { + "name" : "minecraft:dark_oak_fence_gate", + "id" : 186, + "data" : 2 + }, + { + "name" : "minecraft:dark_oak_fence_gate", + "id" : 186, + "data" : 3 + }, + { + "name" : "minecraft:dark_oak_fence_gate", + "id" : 186, + "data" : 4 + }, + { + "name" : "minecraft:dark_oak_fence_gate", + "id" : 186, + "data" : 5 + }, + { + "name" : "minecraft:dark_oak_fence_gate", + "id" : 186, + "data" : 6 + }, + { + "name" : "minecraft:dark_oak_fence_gate", + "id" : 186, + "data" : 7 + }, + { + "name" : "minecraft:dark_oak_fence_gate", + "id" : 186, + "data" : 8 + }, + { + "name" : "minecraft:dark_oak_fence_gate", + "id" : 186, + "data" : 9 + }, + { + "name" : "minecraft:dark_oak_fence_gate", + "id" : 186, + "data" : 10 + }, + { + "name" : "minecraft:dark_oak_fence_gate", + "id" : 186, + "data" : 11 + }, + { + "name" : "minecraft:dark_oak_fence_gate", + "id" : 186, + "data" : 12 + }, + { + "name" : "minecraft:dark_oak_fence_gate", + "id" : 186, + "data" : 13 + }, + { + "name" : "minecraft:dark_oak_fence_gate", + "id" : 186, + "data" : 14 + }, + { + "name" : "minecraft:dark_oak_fence_gate", + "id" : 186, + "data" : 15 + }, + { + "name" : "minecraft:acacia_fence_gate", + "id" : 187, + "data" : 0 + }, + { + "name" : "minecraft:acacia_fence_gate", + "id" : 187, + "data" : 1 + }, + { + "name" : "minecraft:acacia_fence_gate", + "id" : 187, + "data" : 2 + }, + { + "name" : "minecraft:acacia_fence_gate", + "id" : 187, + "data" : 3 + }, + { + "name" : "minecraft:acacia_fence_gate", + "id" : 187, + "data" : 4 + }, + { + "name" : "minecraft:acacia_fence_gate", + "id" : 187, + "data" : 5 + }, + { + "name" : "minecraft:acacia_fence_gate", + "id" : 187, + "data" : 6 + }, + { + "name" : "minecraft:acacia_fence_gate", + "id" : 187, + "data" : 7 + }, + { + "name" : "minecraft:acacia_fence_gate", + "id" : 187, + "data" : 8 + }, + { + "name" : "minecraft:acacia_fence_gate", + "id" : 187, + "data" : 9 + }, + { + "name" : "minecraft:acacia_fence_gate", + "id" : 187, + "data" : 10 + }, + { + "name" : "minecraft:acacia_fence_gate", + "id" : 187, + "data" : 11 + }, + { + "name" : "minecraft:acacia_fence_gate", + "id" : 187, + "data" : 12 + }, + { + "name" : "minecraft:acacia_fence_gate", + "id" : 187, + "data" : 13 + }, + { + "name" : "minecraft:acacia_fence_gate", + "id" : 187, + "data" : 14 + }, + { + "name" : "minecraft:acacia_fence_gate", + "id" : 187, + "data" : 15 + }, + { + "name" : "minecraft:repeating_command_block", + "id" : 188, + "data" : 0 + }, + { + "name" : "minecraft:repeating_command_block", + "id" : 188, + "data" : 1 + }, + { + "name" : "minecraft:repeating_command_block", + "id" : 188, + "data" : 2 + }, + { + "name" : "minecraft:repeating_command_block", + "id" : 188, + "data" : 3 + }, + { + "name" : "minecraft:repeating_command_block", + "id" : 188, + "data" : 4 + }, + { + "name" : "minecraft:repeating_command_block", + "id" : 188, + "data" : 5 + }, + { + "name" : "minecraft:repeating_command_block", + "id" : 188, + "data" : 6 + }, + { + "name" : "minecraft:repeating_command_block", + "id" : 188, + "data" : 7 + }, + { + "name" : "minecraft:repeating_command_block", + "id" : 188, + "data" : 8 + }, + { + "name" : "minecraft:repeating_command_block", + "id" : 188, + "data" : 9 + }, + { + "name" : "minecraft:repeating_command_block", + "id" : 188, + "data" : 10 + }, + { + "name" : "minecraft:repeating_command_block", + "id" : 188, + "data" : 11 + }, + { + "name" : "minecraft:repeating_command_block", + "id" : 188, + "data" : 12 + }, + { + "name" : "minecraft:repeating_command_block", + "id" : 188, + "data" : 13 + }, + { + "name" : "minecraft:repeating_command_block", + "id" : 188, + "data" : 14 + }, + { + "name" : "minecraft:repeating_command_block", + "id" : 188, + "data" : 15 + }, + { + "name" : "minecraft:chain_command_block", + "id" : 189, + "data" : 0 + }, + { + "name" : "minecraft:chain_command_block", + "id" : 189, + "data" : 1 + }, + { + "name" : "minecraft:chain_command_block", + "id" : 189, + "data" : 2 + }, + { + "name" : "minecraft:chain_command_block", + "id" : 189, + "data" : 3 + }, + { + "name" : "minecraft:chain_command_block", + "id" : 189, + "data" : 4 + }, + { + "name" : "minecraft:chain_command_block", + "id" : 189, + "data" : 5 + }, + { + "name" : "minecraft:chain_command_block", + "id" : 189, + "data" : 6 + }, + { + "name" : "minecraft:chain_command_block", + "id" : 189, + "data" : 7 + }, + { + "name" : "minecraft:chain_command_block", + "id" : 189, + "data" : 8 + }, + { + "name" : "minecraft:chain_command_block", + "id" : 189, + "data" : 9 + }, + { + "name" : "minecraft:chain_command_block", + "id" : 189, + "data" : 10 + }, + { + "name" : "minecraft:chain_command_block", + "id" : 189, + "data" : 11 + }, + { + "name" : "minecraft:chain_command_block", + "id" : 189, + "data" : 12 + }, + { + "name" : "minecraft:chain_command_block", + "id" : 189, + "data" : 13 + }, + { + "name" : "minecraft:chain_command_block", + "id" : 189, + "data" : 14 + }, + { + "name" : "minecraft:chain_command_block", + "id" : 189, + "data" : 15 + }, + { + "name" : "minecraft:hard_glass_pane", + "id" : 190, + "data" : 0 + }, + { + "name" : "minecraft:hard_stained_glass_pane", + "id" : 191, + "data" : 0 + }, + { + "name" : "minecraft:hard_stained_glass_pane", + "id" : 191, + "data" : 1 + }, + { + "name" : "minecraft:hard_stained_glass_pane", + "id" : 191, + "data" : 2 + }, + { + "name" : "minecraft:hard_stained_glass_pane", + "id" : 191, + "data" : 3 + }, + { + "name" : "minecraft:hard_stained_glass_pane", + "id" : 191, + "data" : 4 + }, + { + "name" : "minecraft:hard_stained_glass_pane", + "id" : 191, + "data" : 5 + }, + { + "name" : "minecraft:hard_stained_glass_pane", + "id" : 191, + "data" : 6 + }, + { + "name" : "minecraft:hard_stained_glass_pane", + "id" : 191, + "data" : 7 + }, + { + "name" : "minecraft:hard_stained_glass_pane", + "id" : 191, + "data" : 8 + }, + { + "name" : "minecraft:hard_stained_glass_pane", + "id" : 191, + "data" : 9 + }, + { + "name" : "minecraft:hard_stained_glass_pane", + "id" : 191, + "data" : 10 + }, + { + "name" : "minecraft:hard_stained_glass_pane", + "id" : 191, + "data" : 11 + }, + { + "name" : "minecraft:hard_stained_glass_pane", + "id" : 191, + "data" : 12 + }, + { + "name" : "minecraft:hard_stained_glass_pane", + "id" : 191, + "data" : 13 + }, + { + "name" : "minecraft:hard_stained_glass_pane", + "id" : 191, + "data" : 14 + }, + { + "name" : "minecraft:hard_stained_glass_pane", + "id" : 191, + "data" : 15 + }, + { + "name" : "minecraft:chemical_heat", + "id" : 192, + "data" : 0 + }, + { + "name" : "minecraft:spruce_door", + "id" : 193, + "data" : 0 + }, + { + "name" : "minecraft:spruce_door", + "id" : 193, + "data" : 1 + }, + { + "name" : "minecraft:spruce_door", + "id" : 193, + "data" : 2 + }, + { + "name" : "minecraft:spruce_door", + "id" : 193, + "data" : 3 + }, + { + "name" : "minecraft:spruce_door", + "id" : 193, + "data" : 4 + }, + { + "name" : "minecraft:spruce_door", + "id" : 193, + "data" : 5 + }, + { + "name" : "minecraft:spruce_door", + "id" : 193, + "data" : 6 + }, + { + "name" : "minecraft:spruce_door", + "id" : 193, + "data" : 7 + }, + { + "name" : "minecraft:spruce_door", + "id" : 193, + "data" : 8 + }, + { + "name" : "minecraft:spruce_door", + "id" : 193, + "data" : 9 + }, + { + "name" : "minecraft:spruce_door", + "id" : 193, + "data" : 10 + }, + { + "name" : "minecraft:spruce_door", + "id" : 193, + "data" : 11 + }, + { + "name" : "minecraft:spruce_door", + "id" : 193, + "data" : 12 + }, + { + "name" : "minecraft:spruce_door", + "id" : 193, + "data" : 13 + }, + { + "name" : "minecraft:spruce_door", + "id" : 193, + "data" : 14 + }, + { + "name" : "minecraft:spruce_door", + "id" : 193, + "data" : 15 + }, + { + "name" : "minecraft:birch_door", + "id" : 194, + "data" : 0 + }, + { + "name" : "minecraft:birch_door", + "id" : 194, + "data" : 1 + }, + { + "name" : "minecraft:birch_door", + "id" : 194, + "data" : 2 + }, + { + "name" : "minecraft:birch_door", + "id" : 194, + "data" : 3 + }, + { + "name" : "minecraft:birch_door", + "id" : 194, + "data" : 4 + }, + { + "name" : "minecraft:birch_door", + "id" : 194, + "data" : 5 + }, + { + "name" : "minecraft:birch_door", + "id" : 194, + "data" : 6 + }, + { + "name" : "minecraft:birch_door", + "id" : 194, + "data" : 7 + }, + { + "name" : "minecraft:birch_door", + "id" : 194, + "data" : 8 + }, + { + "name" : "minecraft:birch_door", + "id" : 194, + "data" : 9 + }, + { + "name" : "minecraft:birch_door", + "id" : 194, + "data" : 10 + }, + { + "name" : "minecraft:birch_door", + "id" : 194, + "data" : 11 + }, + { + "name" : "minecraft:birch_door", + "id" : 194, + "data" : 12 + }, + { + "name" : "minecraft:birch_door", + "id" : 194, + "data" : 13 + }, + { + "name" : "minecraft:birch_door", + "id" : 194, + "data" : 14 + }, + { + "name" : "minecraft:birch_door", + "id" : 194, + "data" : 15 + }, + { + "name" : "minecraft:jungle_door", + "id" : 195, + "data" : 0 + }, + { + "name" : "minecraft:jungle_door", + "id" : 195, + "data" : 1 + }, + { + "name" : "minecraft:jungle_door", + "id" : 195, + "data" : 2 + }, + { + "name" : "minecraft:jungle_door", + "id" : 195, + "data" : 3 + }, + { + "name" : "minecraft:jungle_door", + "id" : 195, + "data" : 4 + }, + { + "name" : "minecraft:jungle_door", + "id" : 195, + "data" : 5 + }, + { + "name" : "minecraft:jungle_door", + "id" : 195, + "data" : 6 + }, + { + "name" : "minecraft:jungle_door", + "id" : 195, + "data" : 7 + }, + { + "name" : "minecraft:jungle_door", + "id" : 195, + "data" : 8 + }, + { + "name" : "minecraft:jungle_door", + "id" : 195, + "data" : 9 + }, + { + "name" : "minecraft:jungle_door", + "id" : 195, + "data" : 10 + }, + { + "name" : "minecraft:jungle_door", + "id" : 195, + "data" : 11 + }, + { + "name" : "minecraft:jungle_door", + "id" : 195, + "data" : 12 + }, + { + "name" : "minecraft:jungle_door", + "id" : 195, + "data" : 13 + }, + { + "name" : "minecraft:jungle_door", + "id" : 195, + "data" : 14 + }, + { + "name" : "minecraft:jungle_door", + "id" : 195, + "data" : 15 + }, + { + "name" : "minecraft:acacia_door", + "id" : 196, + "data" : 0 + }, + { + "name" : "minecraft:acacia_door", + "id" : 196, + "data" : 1 + }, + { + "name" : "minecraft:acacia_door", + "id" : 196, + "data" : 2 + }, + { + "name" : "minecraft:acacia_door", + "id" : 196, + "data" : 3 + }, + { + "name" : "minecraft:acacia_door", + "id" : 196, + "data" : 4 + }, + { + "name" : "minecraft:acacia_door", + "id" : 196, + "data" : 5 + }, + { + "name" : "minecraft:acacia_door", + "id" : 196, + "data" : 6 + }, + { + "name" : "minecraft:acacia_door", + "id" : 196, + "data" : 7 + }, + { + "name" : "minecraft:acacia_door", + "id" : 196, + "data" : 8 + }, + { + "name" : "minecraft:acacia_door", + "id" : 196, + "data" : 9 + }, + { + "name" : "minecraft:acacia_door", + "id" : 196, + "data" : 10 + }, + { + "name" : "minecraft:acacia_door", + "id" : 196, + "data" : 11 + }, + { + "name" : "minecraft:acacia_door", + "id" : 196, + "data" : 12 + }, + { + "name" : "minecraft:acacia_door", + "id" : 196, + "data" : 13 + }, + { + "name" : "minecraft:acacia_door", + "id" : 196, + "data" : 14 + }, + { + "name" : "minecraft:acacia_door", + "id" : 196, + "data" : 15 + }, + { + "name" : "minecraft:dark_oak_door", + "id" : 197, + "data" : 0 + }, + { + "name" : "minecraft:dark_oak_door", + "id" : 197, + "data" : 1 + }, + { + "name" : "minecraft:dark_oak_door", + "id" : 197, + "data" : 2 + }, + { + "name" : "minecraft:dark_oak_door", + "id" : 197, + "data" : 3 + }, + { + "name" : "minecraft:dark_oak_door", + "id" : 197, + "data" : 4 + }, + { + "name" : "minecraft:dark_oak_door", + "id" : 197, + "data" : 5 + }, + { + "name" : "minecraft:dark_oak_door", + "id" : 197, + "data" : 6 + }, + { + "name" : "minecraft:dark_oak_door", + "id" : 197, + "data" : 7 + }, + { + "name" : "minecraft:dark_oak_door", + "id" : 197, + "data" : 8 + }, + { + "name" : "minecraft:dark_oak_door", + "id" : 197, + "data" : 9 + }, + { + "name" : "minecraft:dark_oak_door", + "id" : 197, + "data" : 10 + }, + { + "name" : "minecraft:dark_oak_door", + "id" : 197, + "data" : 11 + }, + { + "name" : "minecraft:dark_oak_door", + "id" : 197, + "data" : 12 + }, + { + "name" : "minecraft:dark_oak_door", + "id" : 197, + "data" : 13 + }, + { + "name" : "minecraft:dark_oak_door", + "id" : 197, + "data" : 14 + }, + { + "name" : "minecraft:dark_oak_door", + "id" : 197, + "data" : 15 + }, + { + "name" : "minecraft:grass_path", + "id" : 198, + "data" : 0 + }, + { + "name" : "minecraft:frame", + "id" : 199, + "data" : 0 + }, + { + "name" : "minecraft:frame", + "id" : 199, + "data" : 1 + }, + { + "name" : "minecraft:frame", + "id" : 199, + "data" : 2 + }, + { + "name" : "minecraft:frame", + "id" : 199, + "data" : 3 + }, + { + "name" : "minecraft:frame", + "id" : 199, + "data" : 4 + }, + { + "name" : "minecraft:frame", + "id" : 199, + "data" : 5 + }, + { + "name" : "minecraft:frame", + "id" : 199, + "data" : 6 + }, + { + "name" : "minecraft:frame", + "id" : 199, + "data" : 7 + }, + { + "name" : "minecraft:chorus_flower", + "id" : 200, + "data" : 0 + }, + { + "name" : "minecraft:chorus_flower", + "id" : 200, + "data" : 1 + }, + { + "name" : "minecraft:chorus_flower", + "id" : 200, + "data" : 2 + }, + { + "name" : "minecraft:chorus_flower", + "id" : 200, + "data" : 3 + }, + { + "name" : "minecraft:chorus_flower", + "id" : 200, + "data" : 4 + }, + { + "name" : "minecraft:chorus_flower", + "id" : 200, + "data" : 5 + }, + { + "name" : "minecraft:chorus_flower", + "id" : 200, + "data" : 6 + }, + { + "name" : "minecraft:chorus_flower", + "id" : 200, + "data" : 7 + }, + { + "name" : "minecraft:purpur_block", + "id" : 201, + "data" : 0 + }, + { + "name" : "minecraft:purpur_block", + "id" : 201, + "data" : 1 + }, + { + "name" : "minecraft:purpur_block", + "id" : 201, + "data" : 2 + }, + { + "name" : "minecraft:purpur_block", + "id" : 201, + "data" : 3 + }, + { + "name" : "minecraft:purpur_block", + "id" : 201, + "data" : 4 + }, + { + "name" : "minecraft:purpur_block", + "id" : 201, + "data" : 5 + }, + { + "name" : "minecraft:purpur_block", + "id" : 201, + "data" : 6 + }, + { + "name" : "minecraft:purpur_block", + "id" : 201, + "data" : 7 + }, + { + "name" : "minecraft:purpur_block", + "id" : 201, + "data" : 8 + }, + { + "name" : "minecraft:purpur_block", + "id" : 201, + "data" : 9 + }, + { + "name" : "minecraft:purpur_block", + "id" : 201, + "data" : 10 + }, + { + "name" : "minecraft:purpur_block", + "id" : 201, + "data" : 11 + }, + { + "name" : "minecraft:purpur_block", + "id" : 201, + "data" : 12 + }, + { + "name" : "minecraft:purpur_block", + "id" : 201, + "data" : 13 + }, + { + "name" : "minecraft:purpur_block", + "id" : 201, + "data" : 14 + }, + { + "name" : "minecraft:purpur_block", + "id" : 201, + "data" : 15 + }, + { + "name" : "minecraft:colored_torch_rg", + "id" : 202, + "data" : 0 + }, + { + "name" : "minecraft:colored_torch_rg", + "id" : 202, + "data" : 1 + }, + { + "name" : "minecraft:colored_torch_rg", + "id" : 202, + "data" : 2 + }, + { + "name" : "minecraft:colored_torch_rg", + "id" : 202, + "data" : 3 + }, + { + "name" : "minecraft:colored_torch_rg", + "id" : 202, + "data" : 4 + }, + { + "name" : "minecraft:colored_torch_rg", + "id" : 202, + "data" : 5 + }, + { + "name" : "minecraft:colored_torch_rg", + "id" : 202, + "data" : 6 + }, + { + "name" : "minecraft:colored_torch_rg", + "id" : 202, + "data" : 7 + }, + { + "name" : "minecraft:colored_torch_rg", + "id" : 202, + "data" : 8 + }, + { + "name" : "minecraft:colored_torch_rg", + "id" : 202, + "data" : 9 + }, + { + "name" : "minecraft:colored_torch_rg", + "id" : 202, + "data" : 10 + }, + { + "name" : "minecraft:colored_torch_rg", + "id" : 202, + "data" : 11 + }, + { + "name" : "minecraft:colored_torch_rg", + "id" : 202, + "data" : 12 + }, + { + "name" : "minecraft:colored_torch_rg", + "id" : 202, + "data" : 13 + }, + { + "name" : "minecraft:colored_torch_rg", + "id" : 202, + "data" : 14 + }, + { + "name" : "minecraft:colored_torch_rg", + "id" : 202, + "data" : 15 + }, + { + "name" : "minecraft:purpur_stairs", + "id" : 203, + "data" : 0 + }, + { + "name" : "minecraft:purpur_stairs", + "id" : 203, + "data" : 1 + }, + { + "name" : "minecraft:purpur_stairs", + "id" : 203, + "data" : 2 + }, + { + "name" : "minecraft:purpur_stairs", + "id" : 203, + "data" : 3 + }, + { + "name" : "minecraft:purpur_stairs", + "id" : 203, + "data" : 4 + }, + { + "name" : "minecraft:purpur_stairs", + "id" : 203, + "data" : 5 + }, + { + "name" : "minecraft:purpur_stairs", + "id" : 203, + "data" : 6 + }, + { + "name" : "minecraft:purpur_stairs", + "id" : 203, + "data" : 7 + }, + { + "name" : "minecraft:colored_torch_bp", + "id" : 204, + "data" : 0 + }, + { + "name" : "minecraft:colored_torch_bp", + "id" : 204, + "data" : 1 + }, + { + "name" : "minecraft:colored_torch_bp", + "id" : 204, + "data" : 2 + }, + { + "name" : "minecraft:colored_torch_bp", + "id" : 204, + "data" : 3 + }, + { + "name" : "minecraft:colored_torch_bp", + "id" : 204, + "data" : 4 + }, + { + "name" : "minecraft:colored_torch_bp", + "id" : 204, + "data" : 5 + }, + { + "name" : "minecraft:colored_torch_bp", + "id" : 204, + "data" : 6 + }, + { + "name" : "minecraft:colored_torch_bp", + "id" : 204, + "data" : 7 + }, + { + "name" : "minecraft:colored_torch_bp", + "id" : 204, + "data" : 8 + }, + { + "name" : "minecraft:colored_torch_bp", + "id" : 204, + "data" : 9 + }, + { + "name" : "minecraft:colored_torch_bp", + "id" : 204, + "data" : 10 + }, + { + "name" : "minecraft:colored_torch_bp", + "id" : 204, + "data" : 11 + }, + { + "name" : "minecraft:colored_torch_bp", + "id" : 204, + "data" : 12 + }, + { + "name" : "minecraft:colored_torch_bp", + "id" : 204, + "data" : 13 + }, + { + "name" : "minecraft:colored_torch_bp", + "id" : 204, + "data" : 14 + }, + { + "name" : "minecraft:colored_torch_bp", + "id" : 204, + "data" : 15 + }, + { + "name" : "minecraft:undyed_shulker_box", + "id" : 205, + "data" : 0 + }, + { + "name" : "minecraft:end_bricks", + "id" : 206, + "data" : 0 + }, + { + "name" : "minecraft:frosted_ice", + "id" : 207, + "data" : 0 + }, + { + "name" : "minecraft:frosted_ice", + "id" : 207, + "data" : 1 + }, + { + "name" : "minecraft:frosted_ice", + "id" : 207, + "data" : 2 + }, + { + "name" : "minecraft:frosted_ice", + "id" : 207, + "data" : 3 + }, + { + "name" : "minecraft:end_rod", + "id" : 208, + "data" : 0 + }, + { + "name" : "minecraft:end_rod", + "id" : 208, + "data" : 1 + }, + { + "name" : "minecraft:end_rod", + "id" : 208, + "data" : 2 + }, + { + "name" : "minecraft:end_rod", + "id" : 208, + "data" : 3 + }, + { + "name" : "minecraft:end_rod", + "id" : 208, + "data" : 4 + }, + { + "name" : "minecraft:end_rod", + "id" : 208, + "data" : 5 + }, + { + "name" : "minecraft:end_rod", + "id" : 208, + "data" : 6 + }, + { + "name" : "minecraft:end_rod", + "id" : 208, + "data" : 7 + }, + { + "name" : "minecraft:end_gateway", + "id" : 209, + "data" : 0 + }, + { + "name" : "minecraft:magma", + "id" : 213, + "data" : 0 + }, + { + "name" : "minecraft:nether_wart_block", + "id" : 214, + "data" : 0 + }, + { + "name" : "minecraft:red_nether_brick", + "id" : 215, + "data" : 0 + }, + { + "name" : "minecraft:bone_block", + "id" : 216, + "data" : 0 + }, + { + "name" : "minecraft:bone_block", + "id" : 216, + "data" : 1 + }, + { + "name" : "minecraft:bone_block", + "id" : 216, + "data" : 2 + }, + { + "name" : "minecraft:bone_block", + "id" : 216, + "data" : 3 + }, + { + "name" : "minecraft:bone_block", + "id" : 216, + "data" : 4 + }, + { + "name" : "minecraft:bone_block", + "id" : 216, + "data" : 5 + }, + { + "name" : "minecraft:bone_block", + "id" : 216, + "data" : 6 + }, + { + "name" : "minecraft:bone_block", + "id" : 216, + "data" : 7 + }, + { + "name" : "minecraft:bone_block", + "id" : 216, + "data" : 8 + }, + { + "name" : "minecraft:bone_block", + "id" : 216, + "data" : 9 + }, + { + "name" : "minecraft:bone_block", + "id" : 216, + "data" : 10 + }, + { + "name" : "minecraft:bone_block", + "id" : 216, + "data" : 11 + }, + { + "name" : "minecraft:bone_block", + "id" : 216, + "data" : 12 + }, + { + "name" : "minecraft:bone_block", + "id" : 216, + "data" : 13 + }, + { + "name" : "minecraft:bone_block", + "id" : 216, + "data" : 14 + }, + { + "name" : "minecraft:bone_block", + "id" : 216, + "data" : 15 + }, + { + "name" : "minecraft:shulker_box", + "id" : 218, + "data" : 0 + }, + { + "name" : "minecraft:shulker_box", + "id" : 218, + "data" : 1 + }, + { + "name" : "minecraft:shulker_box", + "id" : 218, + "data" : 2 + }, + { + "name" : "minecraft:shulker_box", + "id" : 218, + "data" : 3 + }, + { + "name" : "minecraft:shulker_box", + "id" : 218, + "data" : 4 + }, + { + "name" : "minecraft:shulker_box", + "id" : 218, + "data" : 5 + }, + { + "name" : "minecraft:shulker_box", + "id" : 218, + "data" : 6 + }, + { + "name" : "minecraft:shulker_box", + "id" : 218, + "data" : 7 + }, + { + "name" : "minecraft:shulker_box", + "id" : 218, + "data" : 8 + }, + { + "name" : "minecraft:shulker_box", + "id" : 218, + "data" : 9 + }, + { + "name" : "minecraft:shulker_box", + "id" : 218, + "data" : 10 + }, + { + "name" : "minecraft:shulker_box", + "id" : 218, + "data" : 11 + }, + { + "name" : "minecraft:shulker_box", + "id" : 218, + "data" : 12 + }, + { + "name" : "minecraft:shulker_box", + "id" : 218, + "data" : 13 + }, + { + "name" : "minecraft:shulker_box", + "id" : 218, + "data" : 14 + }, + { + "name" : "minecraft:shulker_box", + "id" : 218, + "data" : 15 + }, + { + "name" : "minecraft:purple_glazed_terracotta", + "id" : 219, + "data" : 0 + }, + { + "name" : "minecraft:purple_glazed_terracotta", + "id" : 219, + "data" : 1 + }, + { + "name" : "minecraft:purple_glazed_terracotta", + "id" : 219, + "data" : 2 + }, + { + "name" : "minecraft:purple_glazed_terracotta", + "id" : 219, + "data" : 3 + }, + { + "name" : "minecraft:purple_glazed_terracotta", + "id" : 219, + "data" : 4 + }, + { + "name" : "minecraft:purple_glazed_terracotta", + "id" : 219, + "data" : 5 + }, + { + "name" : "minecraft:purple_glazed_terracotta", + "id" : 219, + "data" : 6 + }, + { + "name" : "minecraft:purple_glazed_terracotta", + "id" : 219, + "data" : 7 + }, + { + "name" : "minecraft:white_glazed_terracotta", + "id" : 220, + "data" : 0 + }, + { + "name" : "minecraft:white_glazed_terracotta", + "id" : 220, + "data" : 1 + }, + { + "name" : "minecraft:white_glazed_terracotta", + "id" : 220, + "data" : 2 + }, + { + "name" : "minecraft:white_glazed_terracotta", + "id" : 220, + "data" : 3 + }, + { + "name" : "minecraft:white_glazed_terracotta", + "id" : 220, + "data" : 4 + }, + { + "name" : "minecraft:white_glazed_terracotta", + "id" : 220, + "data" : 5 + }, + { + "name" : "minecraft:white_glazed_terracotta", + "id" : 220, + "data" : 6 + }, + { + "name" : "minecraft:white_glazed_terracotta", + "id" : 220, + "data" : 7 + }, + { + "name" : "minecraft:orange_glazed_terracotta", + "id" : 221, + "data" : 0 + }, + { + "name" : "minecraft:orange_glazed_terracotta", + "id" : 221, + "data" : 1 + }, + { + "name" : "minecraft:orange_glazed_terracotta", + "id" : 221, + "data" : 2 + }, + { + "name" : "minecraft:orange_glazed_terracotta", + "id" : 221, + "data" : 3 + }, + { + "name" : "minecraft:orange_glazed_terracotta", + "id" : 221, + "data" : 4 + }, + { + "name" : "minecraft:orange_glazed_terracotta", + "id" : 221, + "data" : 5 + }, + { + "name" : "minecraft:orange_glazed_terracotta", + "id" : 221, + "data" : 6 + }, + { + "name" : "minecraft:orange_glazed_terracotta", + "id" : 221, + "data" : 7 + }, + { + "name" : "minecraft:magenta_glazed_terracotta", + "id" : 222, + "data" : 0 + }, + { + "name" : "minecraft:magenta_glazed_terracotta", + "id" : 222, + "data" : 1 + }, + { + "name" : "minecraft:magenta_glazed_terracotta", + "id" : 222, + "data" : 2 + }, + { + "name" : "minecraft:magenta_glazed_terracotta", + "id" : 222, + "data" : 3 + }, + { + "name" : "minecraft:magenta_glazed_terracotta", + "id" : 222, + "data" : 4 + }, + { + "name" : "minecraft:magenta_glazed_terracotta", + "id" : 222, + "data" : 5 + }, + { + "name" : "minecraft:magenta_glazed_terracotta", + "id" : 222, + "data" : 6 + }, + { + "name" : "minecraft:magenta_glazed_terracotta", + "id" : 222, + "data" : 7 + }, + { + "name" : "minecraft:light_blue_glazed_terracotta", + "id" : 223, + "data" : 0 + }, + { + "name" : "minecraft:light_blue_glazed_terracotta", + "id" : 223, + "data" : 1 + }, + { + "name" : "minecraft:light_blue_glazed_terracotta", + "id" : 223, + "data" : 2 + }, + { + "name" : "minecraft:light_blue_glazed_terracotta", + "id" : 223, + "data" : 3 + }, + { + "name" : "minecraft:light_blue_glazed_terracotta", + "id" : 223, + "data" : 4 + }, + { + "name" : "minecraft:light_blue_glazed_terracotta", + "id" : 223, + "data" : 5 + }, + { + "name" : "minecraft:light_blue_glazed_terracotta", + "id" : 223, + "data" : 6 + }, + { + "name" : "minecraft:light_blue_glazed_terracotta", + "id" : 223, + "data" : 7 + }, + { + "name" : "minecraft:yellow_glazed_terracotta", + "id" : 224, + "data" : 0 + }, + { + "name" : "minecraft:yellow_glazed_terracotta", + "id" : 224, + "data" : 1 + }, + { + "name" : "minecraft:yellow_glazed_terracotta", + "id" : 224, + "data" : 2 + }, + { + "name" : "minecraft:yellow_glazed_terracotta", + "id" : 224, + "data" : 3 + }, + { + "name" : "minecraft:yellow_glazed_terracotta", + "id" : 224, + "data" : 4 + }, + { + "name" : "minecraft:yellow_glazed_terracotta", + "id" : 224, + "data" : 5 + }, + { + "name" : "minecraft:yellow_glazed_terracotta", + "id" : 224, + "data" : 6 + }, + { + "name" : "minecraft:yellow_glazed_terracotta", + "id" : 224, + "data" : 7 + }, + { + "name" : "minecraft:lime_glazed_terracotta", + "id" : 225, + "data" : 0 + }, + { + "name" : "minecraft:lime_glazed_terracotta", + "id" : 225, + "data" : 1 + }, + { + "name" : "minecraft:lime_glazed_terracotta", + "id" : 225, + "data" : 2 + }, + { + "name" : "minecraft:lime_glazed_terracotta", + "id" : 225, + "data" : 3 + }, + { + "name" : "minecraft:lime_glazed_terracotta", + "id" : 225, + "data" : 4 + }, + { + "name" : "minecraft:lime_glazed_terracotta", + "id" : 225, + "data" : 5 + }, + { + "name" : "minecraft:lime_glazed_terracotta", + "id" : 225, + "data" : 6 + }, + { + "name" : "minecraft:lime_glazed_terracotta", + "id" : 225, + "data" : 7 + }, + { + "name" : "minecraft:pink_glazed_terracotta", + "id" : 226, + "data" : 0 + }, + { + "name" : "minecraft:pink_glazed_terracotta", + "id" : 226, + "data" : 1 + }, + { + "name" : "minecraft:pink_glazed_terracotta", + "id" : 226, + "data" : 2 + }, + { + "name" : "minecraft:pink_glazed_terracotta", + "id" : 226, + "data" : 3 + }, + { + "name" : "minecraft:pink_glazed_terracotta", + "id" : 226, + "data" : 4 + }, + { + "name" : "minecraft:pink_glazed_terracotta", + "id" : 226, + "data" : 5 + }, + { + "name" : "minecraft:pink_glazed_terracotta", + "id" : 226, + "data" : 6 + }, + { + "name" : "minecraft:pink_glazed_terracotta", + "id" : 226, + "data" : 7 + }, + { + "name" : "minecraft:gray_glazed_terracotta", + "id" : 227, + "data" : 0 + }, + { + "name" : "minecraft:gray_glazed_terracotta", + "id" : 227, + "data" : 1 + }, + { + "name" : "minecraft:gray_glazed_terracotta", + "id" : 227, + "data" : 2 + }, + { + "name" : "minecraft:gray_glazed_terracotta", + "id" : 227, + "data" : 3 + }, + { + "name" : "minecraft:gray_glazed_terracotta", + "id" : 227, + "data" : 4 + }, + { + "name" : "minecraft:gray_glazed_terracotta", + "id" : 227, + "data" : 5 + }, + { + "name" : "minecraft:gray_glazed_terracotta", + "id" : 227, + "data" : 6 + }, + { + "name" : "minecraft:gray_glazed_terracotta", + "id" : 227, + "data" : 7 + }, + { + "name" : "minecraft:silver_glazed_terracotta", + "id" : 228, + "data" : 0 + }, + { + "name" : "minecraft:silver_glazed_terracotta", + "id" : 228, + "data" : 1 + }, + { + "name" : "minecraft:silver_glazed_terracotta", + "id" : 228, + "data" : 2 + }, + { + "name" : "minecraft:silver_glazed_terracotta", + "id" : 228, + "data" : 3 + }, + { + "name" : "minecraft:silver_glazed_terracotta", + "id" : 228, + "data" : 4 + }, + { + "name" : "minecraft:silver_glazed_terracotta", + "id" : 228, + "data" : 5 + }, + { + "name" : "minecraft:silver_glazed_terracotta", + "id" : 228, + "data" : 6 + }, + { + "name" : "minecraft:silver_glazed_terracotta", + "id" : 228, + "data" : 7 + }, + { + "name" : "minecraft:cyan_glazed_terracotta", + "id" : 229, + "data" : 0 + }, + { + "name" : "minecraft:cyan_glazed_terracotta", + "id" : 229, + "data" : 1 + }, + { + "name" : "minecraft:cyan_glazed_terracotta", + "id" : 229, + "data" : 2 + }, + { + "name" : "minecraft:cyan_glazed_terracotta", + "id" : 229, + "data" : 3 + }, + { + "name" : "minecraft:cyan_glazed_terracotta", + "id" : 229, + "data" : 4 + }, + { + "name" : "minecraft:cyan_glazed_terracotta", + "id" : 229, + "data" : 5 + }, + { + "name" : "minecraft:cyan_glazed_terracotta", + "id" : 229, + "data" : 6 + }, + { + "name" : "minecraft:cyan_glazed_terracotta", + "id" : 229, + "data" : 7 + }, + { + "name" : "minecraft:blue_glazed_terracotta", + "id" : 231, + "data" : 0 + }, + { + "name" : "minecraft:blue_glazed_terracotta", + "id" : 231, + "data" : 1 + }, + { + "name" : "minecraft:blue_glazed_terracotta", + "id" : 231, + "data" : 2 + }, + { + "name" : "minecraft:blue_glazed_terracotta", + "id" : 231, + "data" : 3 + }, + { + "name" : "minecraft:blue_glazed_terracotta", + "id" : 231, + "data" : 4 + }, + { + "name" : "minecraft:blue_glazed_terracotta", + "id" : 231, + "data" : 5 + }, + { + "name" : "minecraft:blue_glazed_terracotta", + "id" : 231, + "data" : 6 + }, + { + "name" : "minecraft:blue_glazed_terracotta", + "id" : 231, + "data" : 7 + }, + { + "name" : "minecraft:brown_glazed_terracotta", + "id" : 232, + "data" : 0 + }, + { + "name" : "minecraft:brown_glazed_terracotta", + "id" : 232, + "data" : 1 + }, + { + "name" : "minecraft:brown_glazed_terracotta", + "id" : 232, + "data" : 2 + }, + { + "name" : "minecraft:brown_glazed_terracotta", + "id" : 232, + "data" : 3 + }, + { + "name" : "minecraft:brown_glazed_terracotta", + "id" : 232, + "data" : 4 + }, + { + "name" : "minecraft:brown_glazed_terracotta", + "id" : 232, + "data" : 5 + }, + { + "name" : "minecraft:brown_glazed_terracotta", + "id" : 232, + "data" : 6 + }, + { + "name" : "minecraft:brown_glazed_terracotta", + "id" : 232, + "data" : 7 + }, + { + "name" : "minecraft:green_glazed_terracotta", + "id" : 233, + "data" : 0 + }, + { + "name" : "minecraft:green_glazed_terracotta", + "id" : 233, + "data" : 1 + }, + { + "name" : "minecraft:green_glazed_terracotta", + "id" : 233, + "data" : 2 + }, + { + "name" : "minecraft:green_glazed_terracotta", + "id" : 233, + "data" : 3 + }, + { + "name" : "minecraft:green_glazed_terracotta", + "id" : 233, + "data" : 4 + }, + { + "name" : "minecraft:green_glazed_terracotta", + "id" : 233, + "data" : 5 + }, + { + "name" : "minecraft:green_glazed_terracotta", + "id" : 233, + "data" : 6 + }, + { + "name" : "minecraft:green_glazed_terracotta", + "id" : 233, + "data" : 7 + }, + { + "name" : "minecraft:red_glazed_terracotta", + "id" : 234, + "data" : 0 + }, + { + "name" : "minecraft:red_glazed_terracotta", + "id" : 234, + "data" : 1 + }, + { + "name" : "minecraft:red_glazed_terracotta", + "id" : 234, + "data" : 2 + }, + { + "name" : "minecraft:red_glazed_terracotta", + "id" : 234, + "data" : 3 + }, + { + "name" : "minecraft:red_glazed_terracotta", + "id" : 234, + "data" : 4 + }, + { + "name" : "minecraft:red_glazed_terracotta", + "id" : 234, + "data" : 5 + }, + { + "name" : "minecraft:red_glazed_terracotta", + "id" : 234, + "data" : 6 + }, + { + "name" : "minecraft:red_glazed_terracotta", + "id" : 234, + "data" : 7 + }, + { + "name" : "minecraft:black_glazed_terracotta", + "id" : 235, + "data" : 0 + }, + { + "name" : "minecraft:black_glazed_terracotta", + "id" : 235, + "data" : 1 + }, + { + "name" : "minecraft:black_glazed_terracotta", + "id" : 235, + "data" : 2 + }, + { + "name" : "minecraft:black_glazed_terracotta", + "id" : 235, + "data" : 3 + }, + { + "name" : "minecraft:black_glazed_terracotta", + "id" : 235, + "data" : 4 + }, + { + "name" : "minecraft:black_glazed_terracotta", + "id" : 235, + "data" : 5 + }, + { + "name" : "minecraft:black_glazed_terracotta", + "id" : 235, + "data" : 6 + }, + { + "name" : "minecraft:black_glazed_terracotta", + "id" : 235, + "data" : 7 + }, + { + "name" : "minecraft:concrete", + "id" : 236, + "data" : 0 + }, + { + "name" : "minecraft:concrete", + "id" : 236, + "data" : 1 + }, + { + "name" : "minecraft:concrete", + "id" : 236, + "data" : 2 + }, + { + "name" : "minecraft:concrete", + "id" : 236, + "data" : 3 + }, + { + "name" : "minecraft:concrete", + "id" : 236, + "data" : 4 + }, + { + "name" : "minecraft:concrete", + "id" : 236, + "data" : 5 + }, + { + "name" : "minecraft:concrete", + "id" : 236, + "data" : 6 + }, + { + "name" : "minecraft:concrete", + "id" : 236, + "data" : 7 + }, + { + "name" : "minecraft:concrete", + "id" : 236, + "data" : 8 + }, + { + "name" : "minecraft:concrete", + "id" : 236, + "data" : 9 + }, + { + "name" : "minecraft:concrete", + "id" : 236, + "data" : 10 + }, + { + "name" : "minecraft:concrete", + "id" : 236, + "data" : 11 + }, + { + "name" : "minecraft:concrete", + "id" : 236, + "data" : 12 + }, + { + "name" : "minecraft:concrete", + "id" : 236, + "data" : 13 + }, + { + "name" : "minecraft:concrete", + "id" : 236, + "data" : 14 + }, + { + "name" : "minecraft:concrete", + "id" : 236, + "data" : 15 + }, + { + "name" : "minecraft:concretePowder", + "id" : 237, + "data" : 0 + }, + { + "name" : "minecraft:concretePowder", + "id" : 237, + "data" : 1 + }, + { + "name" : "minecraft:concretePowder", + "id" : 237, + "data" : 2 + }, + { + "name" : "minecraft:concretePowder", + "id" : 237, + "data" : 3 + }, + { + "name" : "minecraft:concretePowder", + "id" : 237, + "data" : 4 + }, + { + "name" : "minecraft:concretePowder", + "id" : 237, + "data" : 5 + }, + { + "name" : "minecraft:concretePowder", + "id" : 237, + "data" : 6 + }, + { + "name" : "minecraft:concretePowder", + "id" : 237, + "data" : 7 + }, + { + "name" : "minecraft:concretePowder", + "id" : 237, + "data" : 8 + }, + { + "name" : "minecraft:concretePowder", + "id" : 237, + "data" : 9 + }, + { + "name" : "minecraft:concretePowder", + "id" : 237, + "data" : 10 + }, + { + "name" : "minecraft:concretePowder", + "id" : 237, + "data" : 11 + }, + { + "name" : "minecraft:concretePowder", + "id" : 237, + "data" : 12 + }, + { + "name" : "minecraft:concretePowder", + "id" : 237, + "data" : 13 + }, + { + "name" : "minecraft:concretePowder", + "id" : 237, + "data" : 14 + }, + { + "name" : "minecraft:concretePowder", + "id" : 237, + "data" : 15 + }, + { + "name" : "minecraft:chemistry_table", + "id" : 238, + "data" : 0 + }, + { + "name" : "minecraft:chemistry_table", + "id" : 238, + "data" : 1 + }, + { + "name" : "minecraft:chemistry_table", + "id" : 238, + "data" : 2 + }, + { + "name" : "minecraft:chemistry_table", + "id" : 238, + "data" : 3 + }, + { + "name" : "minecraft:chemistry_table", + "id" : 238, + "data" : 4 + }, + { + "name" : "minecraft:chemistry_table", + "id" : 238, + "data" : 5 + }, + { + "name" : "minecraft:chemistry_table", + "id" : 238, + "data" : 6 + }, + { + "name" : "minecraft:chemistry_table", + "id" : 238, + "data" : 7 + }, + { + "name" : "minecraft:chemistry_table", + "id" : 238, + "data" : 8 + }, + { + "name" : "minecraft:chemistry_table", + "id" : 238, + "data" : 9 + }, + { + "name" : "minecraft:chemistry_table", + "id" : 238, + "data" : 10 + }, + { + "name" : "minecraft:chemistry_table", + "id" : 238, + "data" : 11 + }, + { + "name" : "minecraft:chemistry_table", + "id" : 238, + "data" : 12 + }, + { + "name" : "minecraft:chemistry_table", + "id" : 238, + "data" : 13 + }, + { + "name" : "minecraft:chemistry_table", + "id" : 238, + "data" : 14 + }, + { + "name" : "minecraft:chemistry_table", + "id" : 238, + "data" : 15 + }, + { + "name" : "minecraft:underwater_torch", + "id" : 239, + "data" : 0 + }, + { + "name" : "minecraft:underwater_torch", + "id" : 239, + "data" : 1 + }, + { + "name" : "minecraft:underwater_torch", + "id" : 239, + "data" : 2 + }, + { + "name" : "minecraft:underwater_torch", + "id" : 239, + "data" : 3 + }, + { + "name" : "minecraft:underwater_torch", + "id" : 239, + "data" : 4 + }, + { + "name" : "minecraft:underwater_torch", + "id" : 239, + "data" : 5 + }, + { + "name" : "minecraft:underwater_torch", + "id" : 239, + "data" : 6 + }, + { + "name" : "minecraft:underwater_torch", + "id" : 239, + "data" : 7 + }, + { + "name" : "minecraft:chorus_plant", + "id" : 240, + "data" : 0 + }, + { + "name" : "minecraft:stained_glass", + "id" : 241, + "data" : 0 + }, + { + "name" : "minecraft:stained_glass", + "id" : 241, + "data" : 1 + }, + { + "name" : "minecraft:stained_glass", + "id" : 241, + "data" : 2 + }, + { + "name" : "minecraft:stained_glass", + "id" : 241, + "data" : 3 + }, + { + "name" : "minecraft:stained_glass", + "id" : 241, + "data" : 4 + }, + { + "name" : "minecraft:stained_glass", + "id" : 241, + "data" : 5 + }, + { + "name" : "minecraft:stained_glass", + "id" : 241, + "data" : 6 + }, + { + "name" : "minecraft:stained_glass", + "id" : 241, + "data" : 7 + }, + { + "name" : "minecraft:stained_glass", + "id" : 241, + "data" : 8 + }, + { + "name" : "minecraft:stained_glass", + "id" : 241, + "data" : 9 + }, + { + "name" : "minecraft:stained_glass", + "id" : 241, + "data" : 10 + }, + { + "name" : "minecraft:stained_glass", + "id" : 241, + "data" : 11 + }, + { + "name" : "minecraft:stained_glass", + "id" : 241, + "data" : 12 + }, + { + "name" : "minecraft:stained_glass", + "id" : 241, + "data" : 13 + }, + { + "name" : "minecraft:stained_glass", + "id" : 241, + "data" : 14 + }, + { + "name" : "minecraft:stained_glass", + "id" : 241, + "data" : 15 + }, + { + "name" : "minecraft:podzol", + "id" : 243, + "data" : 0 + }, + { + "name" : "minecraft:beetroot", + "id" : 244, + "data" : 0 + }, + { + "name" : "minecraft:beetroot", + "id" : 244, + "data" : 1 + }, + { + "name" : "minecraft:beetroot", + "id" : 244, + "data" : 2 + }, + { + "name" : "minecraft:beetroot", + "id" : 244, + "data" : 3 + }, + { + "name" : "minecraft:beetroot", + "id" : 244, + "data" : 4 + }, + { + "name" : "minecraft:beetroot", + "id" : 244, + "data" : 5 + }, + { + "name" : "minecraft:beetroot", + "id" : 244, + "data" : 6 + }, + { + "name" : "minecraft:beetroot", + "id" : 244, + "data" : 7 + }, + { + "name" : "minecraft:stonecutter", + "id" : 245, + "data" : 0 + }, + { + "name" : "minecraft:glowingobsidian", + "id" : 246, + "data" : 0 + }, + { + "name" : "minecraft:netherreactor", + "id" : 247, + "data" : 0 + }, + { + "name" : "minecraft:info_update", + "id" : 248, + "data" : 0 + }, + { + "name" : "minecraft:info_update2", + "id" : 249, + "data" : 0 + }, + { + "name" : "minecraft:movingBlock", + "id" : 250, + "data" : 0 + }, + { + "name" : "minecraft:observer", + "id" : 251, + "data" : 0 + }, + { + "name" : "minecraft:observer", + "id" : 251, + "data" : 1 + }, + { + "name" : "minecraft:observer", + "id" : 251, + "data" : 2 + }, + { + "name" : "minecraft:observer", + "id" : 251, + "data" : 3 + }, + { + "name" : "minecraft:observer", + "id" : 251, + "data" : 4 + }, + { + "name" : "minecraft:observer", + "id" : 251, + "data" : 5 + }, + { + "name" : "minecraft:observer", + "id" : 251, + "data" : 6 + }, + { + "name" : "minecraft:observer", + "id" : 251, + "data" : 7 + }, + { + "name" : "minecraft:observer", + "id" : 251, + "data" : 8 + }, + { + "name" : "minecraft:observer", + "id" : 251, + "data" : 9 + }, + { + "name" : "minecraft:observer", + "id" : 251, + "data" : 10 + }, + { + "name" : "minecraft:observer", + "id" : 251, + "data" : 11 + }, + { + "name" : "minecraft:observer", + "id" : 251, + "data" : 12 + }, + { + "name" : "minecraft:observer", + "id" : 251, + "data" : 13 + }, + { + "name" : "minecraft:observer", + "id" : 251, + "data" : 14 + }, + { + "name" : "minecraft:observer", + "id" : 251, + "data" : 15 + }, + { + "name" : "minecraft:structure_block", + "id" : 252, + "data" : 0 + }, + { + "name" : "minecraft:structure_block", + "id" : 252, + "data" : 1 + }, + { + "name" : "minecraft:structure_block", + "id" : 252, + "data" : 2 + }, + { + "name" : "minecraft:structure_block", + "id" : 252, + "data" : 3 + }, + { + "name" : "minecraft:structure_block", + "id" : 252, + "data" : 4 + }, + { + "name" : "minecraft:structure_block", + "id" : 252, + "data" : 5 + }, + { + "name" : "minecraft:structure_block", + "id" : 252, + "data" : 6 + }, + { + "name" : "minecraft:structure_block", + "id" : 252, + "data" : 7 + }, + { + "name" : "minecraft:hard_glass", + "id" : 253, + "data" : 0 + }, + { + "name" : "minecraft:hard_stained_glass", + "id" : 254, + "data" : 0 + }, + { + "name" : "minecraft:hard_stained_glass", + "id" : 254, + "data" : 1 + }, + { + "name" : "minecraft:hard_stained_glass", + "id" : 254, + "data" : 2 + }, + { + "name" : "minecraft:hard_stained_glass", + "id" : 254, + "data" : 3 + }, + { + "name" : "minecraft:hard_stained_glass", + "id" : 254, + "data" : 4 + }, + { + "name" : "minecraft:hard_stained_glass", + "id" : 254, + "data" : 5 + }, + { + "name" : "minecraft:hard_stained_glass", + "id" : 254, + "data" : 6 + }, + { + "name" : "minecraft:hard_stained_glass", + "id" : 254, + "data" : 7 + }, + { + "name" : "minecraft:hard_stained_glass", + "id" : 254, + "data" : 8 + }, + { + "name" : "minecraft:hard_stained_glass", + "id" : 254, + "data" : 9 + }, + { + "name" : "minecraft:hard_stained_glass", + "id" : 254, + "data" : 10 + }, + { + "name" : "minecraft:hard_stained_glass", + "id" : 254, + "data" : 11 + }, + { + "name" : "minecraft:hard_stained_glass", + "id" : 254, + "data" : 12 + }, + { + "name" : "minecraft:hard_stained_glass", + "id" : 254, + "data" : 13 + }, + { + "name" : "minecraft:hard_stained_glass", + "id" : 254, + "data" : 14 + }, + { + "name" : "minecraft:hard_stained_glass", + "id" : 254, + "data" : 15 + }, + { + "name" : "minecraft:reserved6", + "id" : 255, + "data" : 0 + }, + { + "name" : "minecraft:prismarine_stairs", + "id" : 257, + "data" : 0 + }, + { + "name" : "minecraft:prismarine_stairs", + "id" : 257, + "data" : 1 + }, + { + "name" : "minecraft:prismarine_stairs", + "id" : 257, + "data" : 2 + }, + { + "name" : "minecraft:prismarine_stairs", + "id" : 257, + "data" : 3 + }, + { + "name" : "minecraft:prismarine_stairs", + "id" : 257, + "data" : 4 + }, + { + "name" : "minecraft:prismarine_stairs", + "id" : 257, + "data" : 5 + }, + { + "name" : "minecraft:prismarine_stairs", + "id" : 257, + "data" : 6 + }, + { + "name" : "minecraft:prismarine_stairs", + "id" : 257, + "data" : 7 + }, + { + "name" : "minecraft:dark_prismarine_stairs", + "id" : 258, + "data" : 0 + }, + { + "name" : "minecraft:dark_prismarine_stairs", + "id" : 258, + "data" : 1 + }, + { + "name" : "minecraft:dark_prismarine_stairs", + "id" : 258, + "data" : 2 + }, + { + "name" : "minecraft:dark_prismarine_stairs", + "id" : 258, + "data" : 3 + }, + { + "name" : "minecraft:dark_prismarine_stairs", + "id" : 258, + "data" : 4 + }, + { + "name" : "minecraft:dark_prismarine_stairs", + "id" : 258, + "data" : 5 + }, + { + "name" : "minecraft:dark_prismarine_stairs", + "id" : 258, + "data" : 6 + }, + { + "name" : "minecraft:dark_prismarine_stairs", + "id" : 258, + "data" : 7 + }, + { + "name" : "minecraft:prismarine_bricks_stairs", + "id" : 259, + "data" : 0 + }, + { + "name" : "minecraft:prismarine_bricks_stairs", + "id" : 259, + "data" : 1 + }, + { + "name" : "minecraft:prismarine_bricks_stairs", + "id" : 259, + "data" : 2 + }, + { + "name" : "minecraft:prismarine_bricks_stairs", + "id" : 259, + "data" : 3 + }, + { + "name" : "minecraft:prismarine_bricks_stairs", + "id" : 259, + "data" : 4 + }, + { + "name" : "minecraft:prismarine_bricks_stairs", + "id" : 259, + "data" : 5 + }, + { + "name" : "minecraft:prismarine_bricks_stairs", + "id" : 259, + "data" : 6 + }, + { + "name" : "minecraft:prismarine_bricks_stairs", + "id" : 259, + "data" : 7 + }, + { + "name" : "minecraft:stripped_spruce_log", + "id" : 260, + "data" : 0 + }, + { + "name" : "minecraft:stripped_spruce_log", + "id" : 260, + "data" : 1 + }, + { + "name" : "minecraft:stripped_spruce_log", + "id" : 260, + "data" : 2 + }, + { + "name" : "minecraft:stripped_spruce_log", + "id" : 260, + "data" : 3 + }, + { + "name" : "minecraft:stripped_birch_log", + "id" : 261, + "data" : 0 + }, + { + "name" : "minecraft:stripped_birch_log", + "id" : 261, + "data" : 1 + }, + { + "name" : "minecraft:stripped_birch_log", + "id" : 261, + "data" : 2 + }, + { + "name" : "minecraft:stripped_birch_log", + "id" : 261, + "data" : 3 + }, + { + "name" : "minecraft:stripped_jungle_log", + "id" : 262, + "data" : 0 + }, + { + "name" : "minecraft:stripped_jungle_log", + "id" : 262, + "data" : 1 + }, + { + "name" : "minecraft:stripped_jungle_log", + "id" : 262, + "data" : 2 + }, + { + "name" : "minecraft:stripped_jungle_log", + "id" : 262, + "data" : 3 + }, + { + "name" : "minecraft:stripped_acacia_log", + "id" : 263, + "data" : 0 + }, + { + "name" : "minecraft:stripped_acacia_log", + "id" : 263, + "data" : 1 + }, + { + "name" : "minecraft:stripped_acacia_log", + "id" : 263, + "data" : 2 + }, + { + "name" : "minecraft:stripped_acacia_log", + "id" : 263, + "data" : 3 + }, + { + "name" : "minecraft:stripped_dark_oak_log", + "id" : 264, + "data" : 0 + }, + { + "name" : "minecraft:stripped_dark_oak_log", + "id" : 264, + "data" : 1 + }, + { + "name" : "minecraft:stripped_dark_oak_log", + "id" : 264, + "data" : 2 + }, + { + "name" : "minecraft:stripped_dark_oak_log", + "id" : 264, + "data" : 3 + }, + { + "name" : "minecraft:stripped_oak_log", + "id" : 265, + "data" : 0 + }, + { + "name" : "minecraft:stripped_oak_log", + "id" : 265, + "data" : 1 + }, + { + "name" : "minecraft:stripped_oak_log", + "id" : 265, + "data" : 2 + }, + { + "name" : "minecraft:stripped_oak_log", + "id" : 265, + "data" : 3 + }, + { + "name" : "minecraft:blue_ice", + "id" : 266, + "data" : 0 + }, + { + "name" : "minecraft:element_1", + "id" : 267, + "data" : 0 + }, + { + "name" : "minecraft:element_2", + "id" : 268, + "data" : 0 + }, + { + "name" : "minecraft:element_3", + "id" : 269, + "data" : 0 + }, + { + "name" : "minecraft:element_4", + "id" : 270, + "data" : 0 + }, + { + "name" : "minecraft:element_5", + "id" : 271, + "data" : 0 + }, + { + "name" : "minecraft:element_6", + "id" : 272, + "data" : 0 + }, + { + "name" : "minecraft:element_7", + "id" : 273, + "data" : 0 + }, + { + "name" : "minecraft:element_8", + "id" : 274, + "data" : 0 + }, + { + "name" : "minecraft:element_9", + "id" : 275, + "data" : 0 + }, + { + "name" : "minecraft:element_10", + "id" : 276, + "data" : 0 + }, + { + "name" : "minecraft:element_11", + "id" : 277, + "data" : 0 + }, + { + "name" : "minecraft:element_12", + "id" : 278, + "data" : 0 + }, + { + "name" : "minecraft:element_13", + "id" : 279, + "data" : 0 + }, + { + "name" : "minecraft:element_14", + "id" : 280, + "data" : 0 + }, + { + "name" : "minecraft:element_15", + "id" : 281, + "data" : 0 + }, + { + "name" : "minecraft:element_16", + "id" : 282, + "data" : 0 + }, + { + "name" : "minecraft:element_17", + "id" : 283, + "data" : 0 + }, + { + "name" : "minecraft:element_18", + "id" : 284, + "data" : 0 + }, + { + "name" : "minecraft:element_19", + "id" : 285, + "data" : 0 + }, + { + "name" : "minecraft:element_20", + "id" : 286, + "data" : 0 + }, + { + "name" : "minecraft:element_21", + "id" : 287, + "data" : 0 + }, + { + "name" : "minecraft:element_22", + "id" : 288, + "data" : 0 + }, + { + "name" : "minecraft:element_23", + "id" : 289, + "data" : 0 + }, + { + "name" : "minecraft:element_24", + "id" : 290, + "data" : 0 + }, + { + "name" : "minecraft:element_25", + "id" : 291, + "data" : 0 + }, + { + "name" : "minecraft:element_26", + "id" : 292, + "data" : 0 + }, + { + "name" : "minecraft:element_27", + "id" : 293, + "data" : 0 + }, + { + "name" : "minecraft:element_28", + "id" : 294, + "data" : 0 + }, + { + "name" : "minecraft:element_29", + "id" : 295, + "data" : 0 + }, + { + "name" : "minecraft:element_30", + "id" : 296, + "data" : 0 + }, + { + "name" : "minecraft:element_31", + "id" : 297, + "data" : 0 + }, + { + "name" : "minecraft:element_32", + "id" : 298, + "data" : 0 + }, + { + "name" : "minecraft:element_33", + "id" : 299, + "data" : 0 + }, + { + "name" : "minecraft:element_34", + "id" : 300, + "data" : 0 + }, + { + "name" : "minecraft:element_35", + "id" : 301, + "data" : 0 + }, + { + "name" : "minecraft:element_36", + "id" : 302, + "data" : 0 + }, + { + "name" : "minecraft:element_37", + "id" : 303, + "data" : 0 + }, + { + "name" : "minecraft:element_38", + "id" : 304, + "data" : 0 + }, + { + "name" : "minecraft:element_39", + "id" : 305, + "data" : 0 + }, + { + "name" : "minecraft:element_40", + "id" : 306, + "data" : 0 + }, + { + "name" : "minecraft:element_41", + "id" : 307, + "data" : 0 + }, + { + "name" : "minecraft:element_42", + "id" : 308, + "data" : 0 + }, + { + "name" : "minecraft:element_43", + "id" : 309, + "data" : 0 + }, + { + "name" : "minecraft:element_44", + "id" : 310, + "data" : 0 + }, + { + "name" : "minecraft:element_45", + "id" : 311, + "data" : 0 + }, + { + "name" : "minecraft:element_46", + "id" : 312, + "data" : 0 + }, + { + "name" : "minecraft:element_47", + "id" : 313, + "data" : 0 + }, + { + "name" : "minecraft:element_48", + "id" : 314, + "data" : 0 + }, + { + "name" : "minecraft:element_49", + "id" : 315, + "data" : 0 + }, + { + "name" : "minecraft:element_50", + "id" : 316, + "data" : 0 + }, + { + "name" : "minecraft:element_51", + "id" : 317, + "data" : 0 + }, + { + "name" : "minecraft:element_52", + "id" : 318, + "data" : 0 + }, + { + "name" : "minecraft:element_53", + "id" : 319, + "data" : 0 + }, + { + "name" : "minecraft:element_54", + "id" : 320, + "data" : 0 + }, + { + "name" : "minecraft:element_55", + "id" : 321, + "data" : 0 + }, + { + "name" : "minecraft:element_56", + "id" : 322, + "data" : 0 + }, + { + "name" : "minecraft:element_57", + "id" : 323, + "data" : 0 + }, + { + "name" : "minecraft:element_58", + "id" : 324, + "data" : 0 + }, + { + "name" : "minecraft:element_59", + "id" : 325, + "data" : 0 + }, + { + "name" : "minecraft:element_60", + "id" : 326, + "data" : 0 + }, + { + "name" : "minecraft:element_61", + "id" : 327, + "data" : 0 + }, + { + "name" : "minecraft:element_62", + "id" : 328, + "data" : 0 + }, + { + "name" : "minecraft:element_63", + "id" : 329, + "data" : 0 + }, + { + "name" : "minecraft:element_64", + "id" : 330, + "data" : 0 + }, + { + "name" : "minecraft:element_65", + "id" : 331, + "data" : 0 + }, + { + "name" : "minecraft:element_66", + "id" : 332, + "data" : 0 + }, + { + "name" : "minecraft:element_67", + "id" : 333, + "data" : 0 + }, + { + "name" : "minecraft:element_68", + "id" : 334, + "data" : 0 + }, + { + "name" : "minecraft:element_69", + "id" : 335, + "data" : 0 + }, + { + "name" : "minecraft:element_70", + "id" : 336, + "data" : 0 + }, + { + "name" : "minecraft:element_71", + "id" : 337, + "data" : 0 + }, + { + "name" : "minecraft:element_72", + "id" : 338, + "data" : 0 + }, + { + "name" : "minecraft:element_73", + "id" : 339, + "data" : 0 + }, + { + "name" : "minecraft:element_74", + "id" : 340, + "data" : 0 + }, + { + "name" : "minecraft:element_75", + "id" : 341, + "data" : 0 + }, + { + "name" : "minecraft:element_76", + "id" : 342, + "data" : 0 + }, + { + "name" : "minecraft:element_77", + "id" : 343, + "data" : 0 + }, + { + "name" : "minecraft:element_78", + "id" : 344, + "data" : 0 + }, + { + "name" : "minecraft:element_79", + "id" : 345, + "data" : 0 + }, + { + "name" : "minecraft:element_80", + "id" : 346, + "data" : 0 + }, + { + "name" : "minecraft:element_81", + "id" : 347, + "data" : 0 + }, + { + "name" : "minecraft:element_82", + "id" : 348, + "data" : 0 + }, + { + "name" : "minecraft:element_83", + "id" : 349, + "data" : 0 + }, + { + "name" : "minecraft:element_84", + "id" : 350, + "data" : 0 + }, + { + "name" : "minecraft:element_85", + "id" : 351, + "data" : 0 + }, + { + "name" : "minecraft:element_86", + "id" : 352, + "data" : 0 + }, + { + "name" : "minecraft:element_87", + "id" : 353, + "data" : 0 + }, + { + "name" : "minecraft:element_88", + "id" : 354, + "data" : 0 + }, + { + "name" : "minecraft:element_89", + "id" : 355, + "data" : 0 + }, + { + "name" : "minecraft:element_90", + "id" : 356, + "data" : 0 + }, + { + "name" : "minecraft:element_91", + "id" : 357, + "data" : 0 + }, + { + "name" : "minecraft:element_92", + "id" : 358, + "data" : 0 + }, + { + "name" : "minecraft:element_93", + "id" : 359, + "data" : 0 + }, + { + "name" : "minecraft:element_94", + "id" : 360, + "data" : 0 + }, + { + "name" : "minecraft:element_95", + "id" : 361, + "data" : 0 + }, + { + "name" : "minecraft:element_96", + "id" : 362, + "data" : 0 + }, + { + "name" : "minecraft:element_97", + "id" : 363, + "data" : 0 + }, + { + "name" : "minecraft:element_98", + "id" : 364, + "data" : 0 + }, + { + "name" : "minecraft:element_99", + "id" : 365, + "data" : 0 + }, + { + "name" : "minecraft:element_100", + "id" : 366, + "data" : 0 + }, + { + "name" : "minecraft:element_101", + "id" : 367, + "data" : 0 + }, + { + "name" : "minecraft:element_102", + "id" : 368, + "data" : 0 + }, + { + "name" : "minecraft:element_103", + "id" : 369, + "data" : 0 + }, + { + "name" : "minecraft:element_104", + "id" : 370, + "data" : 0 + }, + { + "name" : "minecraft:element_105", + "id" : 371, + "data" : 0 + }, + { + "name" : "minecraft:element_106", + "id" : 372, + "data" : 0 + }, + { + "name" : "minecraft:element_107", + "id" : 373, + "data" : 0 + }, + { + "name" : "minecraft:element_108", + "id" : 374, + "data" : 0 + }, + { + "name" : "minecraft:element_109", + "id" : 375, + "data" : 0 + }, + { + "name" : "minecraft:element_110", + "id" : 376, + "data" : 0 + }, + { + "name" : "minecraft:element_111", + "id" : 377, + "data" : 0 + }, + { + "name" : "minecraft:element_112", + "id" : 378, + "data" : 0 + }, + { + "name" : "minecraft:element_113", + "id" : 379, + "data" : 0 + }, + { + "name" : "minecraft:element_114", + "id" : 380, + "data" : 0 + }, + { + "name" : "minecraft:element_115", + "id" : 381, + "data" : 0 + }, + { + "name" : "minecraft:element_116", + "id" : 382, + "data" : 0 + }, + { + "name" : "minecraft:element_117", + "id" : 383, + "data" : 0 + }, + { + "name" : "minecraft:element_118", + "id" : 384, + "data" : 0 + }, + { + "name" : "minecraft:seagrass", + "id" : 385, + "data" : 0 + }, + { + "name" : "minecraft:seagrass", + "id" : 385, + "data" : 1 + }, + { + "name" : "minecraft:seagrass", + "id" : 385, + "data" : 2 + }, + { + "name" : "minecraft:seagrass", + "id" : 385, + "data" : 3 + }, + { + "name" : "minecraft:coral", + "id" : 386, + "data" : 0 + }, + { + "name" : "minecraft:coral", + "id" : 386, + "data" : 1 + }, + { + "name" : "minecraft:coral", + "id" : 386, + "data" : 2 + }, + { + "name" : "minecraft:coral", + "id" : 386, + "data" : 3 + }, + { + "name" : "minecraft:coral", + "id" : 386, + "data" : 4 + }, + { + "name" : "minecraft:coral", + "id" : 386, + "data" : 5 + }, + { + "name" : "minecraft:coral", + "id" : 386, + "data" : 6 + }, + { + "name" : "minecraft:coral", + "id" : 386, + "data" : 7 + }, + { + "name" : "minecraft:coral_block", + "id" : 387, + "data" : 0 + }, + { + "name" : "minecraft:coral_block", + "id" : 387, + "data" : 1 + }, + { + "name" : "minecraft:coral_block", + "id" : 387, + "data" : 2 + }, + { + "name" : "minecraft:coral_block", + "id" : 387, + "data" : 3 + }, + { + "name" : "minecraft:coral_block", + "id" : 387, + "data" : 4 + }, + { + "name" : "minecraft:coral_block", + "id" : 387, + "data" : 5 + }, + { + "name" : "minecraft:coral_block", + "id" : 387, + "data" : 6 + }, + { + "name" : "minecraft:coral_block", + "id" : 387, + "data" : 7 + }, + { + "name" : "minecraft:coral_block", + "id" : 387, + "data" : 8 + }, + { + "name" : "minecraft:coral_block", + "id" : 387, + "data" : 9 + }, + { + "name" : "minecraft:coral_block", + "id" : 387, + "data" : 10 + }, + { + "name" : "minecraft:coral_block", + "id" : 387, + "data" : 11 + }, + { + "name" : "minecraft:coral_block", + "id" : 387, + "data" : 12 + }, + { + "name" : "minecraft:coral_block", + "id" : 387, + "data" : 13 + }, + { + "name" : "minecraft:coral_block", + "id" : 387, + "data" : 14 + }, + { + "name" : "minecraft:coral_block", + "id" : 387, + "data" : 15 + }, + { + "name" : "minecraft:coral_fan", + "id" : 388, + "data" : 0 + }, + { + "name" : "minecraft:coral_fan", + "id" : 388, + "data" : 1 + }, + { + "name" : "minecraft:coral_fan", + "id" : 388, + "data" : 2 + }, + { + "name" : "minecraft:coral_fan", + "id" : 388, + "data" : 3 + }, + { + "name" : "minecraft:coral_fan", + "id" : 388, + "data" : 4 + }, + { + "name" : "minecraft:coral_fan", + "id" : 388, + "data" : 5 + }, + { + "name" : "minecraft:coral_fan", + "id" : 388, + "data" : 6 + }, + { + "name" : "minecraft:coral_fan", + "id" : 388, + "data" : 7 + }, + { + "name" : "minecraft:coral_fan", + "id" : 388, + "data" : 8 + }, + { + "name" : "minecraft:coral_fan", + "id" : 388, + "data" : 9 + }, + { + "name" : "minecraft:coral_fan", + "id" : 388, + "data" : 10 + }, + { + "name" : "minecraft:coral_fan", + "id" : 388, + "data" : 11 + }, + { + "name" : "minecraft:coral_fan", + "id" : 388, + "data" : 12 + }, + { + "name" : "minecraft:coral_fan", + "id" : 388, + "data" : 13 + }, + { + "name" : "minecraft:coral_fan", + "id" : 388, + "data" : 14 + }, + { + "name" : "minecraft:coral_fan", + "id" : 388, + "data" : 15 + }, + { + "name" : "minecraft:coral_fan_dead", + "id" : 389, + "data" : 0 + }, + { + "name" : "minecraft:coral_fan_dead", + "id" : 389, + "data" : 1 + }, + { + "name" : "minecraft:coral_fan_dead", + "id" : 389, + "data" : 2 + }, + { + "name" : "minecraft:coral_fan_dead", + "id" : 389, + "data" : 3 + }, + { + "name" : "minecraft:coral_fan_dead", + "id" : 389, + "data" : 4 + }, + { + "name" : "minecraft:coral_fan_dead", + "id" : 389, + "data" : 5 + }, + { + "name" : "minecraft:coral_fan_dead", + "id" : 389, + "data" : 6 + }, + { + "name" : "minecraft:coral_fan_dead", + "id" : 389, + "data" : 7 + }, + { + "name" : "minecraft:coral_fan_dead", + "id" : 389, + "data" : 8 + }, + { + "name" : "minecraft:coral_fan_dead", + "id" : 389, + "data" : 9 + }, + { + "name" : "minecraft:coral_fan_dead", + "id" : 389, + "data" : 10 + }, + { + "name" : "minecraft:coral_fan_dead", + "id" : 389, + "data" : 11 + }, + { + "name" : "minecraft:coral_fan_dead", + "id" : 389, + "data" : 12 + }, + { + "name" : "minecraft:coral_fan_dead", + "id" : 389, + "data" : 13 + }, + { + "name" : "minecraft:coral_fan_dead", + "id" : 389, + "data" : 14 + }, + { + "name" : "minecraft:coral_fan_dead", + "id" : 389, + "data" : 15 + }, + { + "name" : "minecraft:coral_fan_hang", + "id" : 390, + "data" : 0 + }, + { + "name" : "minecraft:coral_fan_hang", + "id" : 390, + "data" : 1 + }, + { + "name" : "minecraft:coral_fan_hang", + "id" : 390, + "data" : 2 + }, + { + "name" : "minecraft:coral_fan_hang", + "id" : 390, + "data" : 3 + }, + { + "name" : "minecraft:coral_fan_hang", + "id" : 390, + "data" : 4 + }, + { + "name" : "minecraft:coral_fan_hang", + "id" : 390, + "data" : 5 + }, + { + "name" : "minecraft:coral_fan_hang", + "id" : 390, + "data" : 6 + }, + { + "name" : "minecraft:coral_fan_hang", + "id" : 390, + "data" : 7 + }, + { + "name" : "minecraft:coral_fan_hang", + "id" : 390, + "data" : 8 + }, + { + "name" : "minecraft:coral_fan_hang", + "id" : 390, + "data" : 9 + }, + { + "name" : "minecraft:coral_fan_hang", + "id" : 390, + "data" : 10 + }, + { + "name" : "minecraft:coral_fan_hang", + "id" : 390, + "data" : 11 + }, + { + "name" : "minecraft:coral_fan_hang", + "id" : 390, + "data" : 12 + }, + { + "name" : "minecraft:coral_fan_hang", + "id" : 390, + "data" : 13 + }, + { + "name" : "minecraft:coral_fan_hang", + "id" : 390, + "data" : 14 + }, + { + "name" : "minecraft:coral_fan_hang", + "id" : 390, + "data" : 15 + }, + { + "name" : "minecraft:coral_fan_hang2", + "id" : 391, + "data" : 0 + }, + { + "name" : "minecraft:coral_fan_hang2", + "id" : 391, + "data" : 1 + }, + { + "name" : "minecraft:coral_fan_hang2", + "id" : 391, + "data" : 2 + }, + { + "name" : "minecraft:coral_fan_hang2", + "id" : 391, + "data" : 3 + }, + { + "name" : "minecraft:coral_fan_hang2", + "id" : 391, + "data" : 4 + }, + { + "name" : "minecraft:coral_fan_hang2", + "id" : 391, + "data" : 5 + }, + { + "name" : "minecraft:coral_fan_hang2", + "id" : 391, + "data" : 6 + }, + { + "name" : "minecraft:coral_fan_hang2", + "id" : 391, + "data" : 7 + }, + { + "name" : "minecraft:coral_fan_hang2", + "id" : 391, + "data" : 8 + }, + { + "name" : "minecraft:coral_fan_hang2", + "id" : 391, + "data" : 9 + }, + { + "name" : "minecraft:coral_fan_hang2", + "id" : 391, + "data" : 10 + }, + { + "name" : "minecraft:coral_fan_hang2", + "id" : 391, + "data" : 11 + }, + { + "name" : "minecraft:coral_fan_hang2", + "id" : 391, + "data" : 12 + }, + { + "name" : "minecraft:coral_fan_hang2", + "id" : 391, + "data" : 13 + }, + { + "name" : "minecraft:coral_fan_hang2", + "id" : 391, + "data" : 14 + }, + { + "name" : "minecraft:coral_fan_hang2", + "id" : 391, + "data" : 15 + }, + { + "name" : "minecraft:coral_fan_hang3", + "id" : 392, + "data" : 0 + }, + { + "name" : "minecraft:coral_fan_hang3", + "id" : 392, + "data" : 1 + }, + { + "name" : "minecraft:coral_fan_hang3", + "id" : 392, + "data" : 2 + }, + { + "name" : "minecraft:coral_fan_hang3", + "id" : 392, + "data" : 3 + }, + { + "name" : "minecraft:coral_fan_hang3", + "id" : 392, + "data" : 4 + }, + { + "name" : "minecraft:coral_fan_hang3", + "id" : 392, + "data" : 5 + }, + { + "name" : "minecraft:coral_fan_hang3", + "id" : 392, + "data" : 6 + }, + { + "name" : "minecraft:coral_fan_hang3", + "id" : 392, + "data" : 7 + }, + { + "name" : "minecraft:coral_fan_hang3", + "id" : 392, + "data" : 8 + }, + { + "name" : "minecraft:coral_fan_hang3", + "id" : 392, + "data" : 9 + }, + { + "name" : "minecraft:coral_fan_hang3", + "id" : 392, + "data" : 10 + }, + { + "name" : "minecraft:coral_fan_hang3", + "id" : 392, + "data" : 11 + }, + { + "name" : "minecraft:coral_fan_hang3", + "id" : 392, + "data" : 12 + }, + { + "name" : "minecraft:coral_fan_hang3", + "id" : 392, + "data" : 13 + }, + { + "name" : "minecraft:coral_fan_hang3", + "id" : 392, + "data" : 14 + }, + { + "name" : "minecraft:coral_fan_hang3", + "id" : 392, + "data" : 15 + }, + { + "name" : "minecraft:kelp", + "id" : 393, + "data" : 0 + }, + { + "name" : "minecraft:kelp", + "id" : 393, + "data" : 1 + }, + { + "name" : "minecraft:kelp", + "id" : 393, + "data" : 2 + }, + { + "name" : "minecraft:kelp", + "id" : 393, + "data" : 3 + }, + { + "name" : "minecraft:kelp", + "id" : 393, + "data" : 4 + }, + { + "name" : "minecraft:kelp", + "id" : 393, + "data" : 5 + }, + { + "name" : "minecraft:kelp", + "id" : 393, + "data" : 6 + }, + { + "name" : "minecraft:kelp", + "id" : 393, + "data" : 7 + }, + { + "name" : "minecraft:kelp", + "id" : 393, + "data" : 8 + }, + { + "name" : "minecraft:kelp", + "id" : 393, + "data" : 9 + }, + { + "name" : "minecraft:kelp", + "id" : 393, + "data" : 10 + }, + { + "name" : "minecraft:kelp", + "id" : 393, + "data" : 11 + }, + { + "name" : "minecraft:kelp", + "id" : 393, + "data" : 12 + }, + { + "name" : "minecraft:kelp", + "id" : 393, + "data" : 13 + }, + { + "name" : "minecraft:kelp", + "id" : 393, + "data" : 14 + }, + { + "name" : "minecraft:kelp", + "id" : 393, + "data" : 15 + }, + { + "name" : "minecraft:dried_kelp_block", + "id" : 394, + "data" : 0 + }, + { + "name" : "minecraft:acacia_button", + "id" : 395, + "data" : 0 + }, + { + "name" : "minecraft:acacia_button", + "id" : 395, + "data" : 1 + }, + { + "name" : "minecraft:acacia_button", + "id" : 395, + "data" : 2 + }, + { + "name" : "minecraft:acacia_button", + "id" : 395, + "data" : 3 + }, + { + "name" : "minecraft:acacia_button", + "id" : 395, + "data" : 4 + }, + { + "name" : "minecraft:acacia_button", + "id" : 395, + "data" : 5 + }, + { + "name" : "minecraft:acacia_button", + "id" : 395, + "data" : 6 + }, + { + "name" : "minecraft:acacia_button", + "id" : 395, + "data" : 7 + }, + { + "name" : "minecraft:acacia_button", + "id" : 395, + "data" : 8 + }, + { + "name" : "minecraft:acacia_button", + "id" : 395, + "data" : 9 + }, + { + "name" : "minecraft:acacia_button", + "id" : 395, + "data" : 10 + }, + { + "name" : "minecraft:acacia_button", + "id" : 395, + "data" : 11 + }, + { + "name" : "minecraft:acacia_button", + "id" : 395, + "data" : 12 + }, + { + "name" : "minecraft:acacia_button", + "id" : 395, + "data" : 13 + }, + { + "name" : "minecraft:acacia_button", + "id" : 395, + "data" : 14 + }, + { + "name" : "minecraft:acacia_button", + "id" : 395, + "data" : 15 + }, + { + "name" : "minecraft:birch_button", + "id" : 396, + "data" : 0 + }, + { + "name" : "minecraft:birch_button", + "id" : 396, + "data" : 1 + }, + { + "name" : "minecraft:birch_button", + "id" : 396, + "data" : 2 + }, + { + "name" : "minecraft:birch_button", + "id" : 396, + "data" : 3 + }, + { + "name" : "minecraft:birch_button", + "id" : 396, + "data" : 4 + }, + { + "name" : "minecraft:birch_button", + "id" : 396, + "data" : 5 + }, + { + "name" : "minecraft:birch_button", + "id" : 396, + "data" : 6 + }, + { + "name" : "minecraft:birch_button", + "id" : 396, + "data" : 7 + }, + { + "name" : "minecraft:birch_button", + "id" : 396, + "data" : 8 + }, + { + "name" : "minecraft:birch_button", + "id" : 396, + "data" : 9 + }, + { + "name" : "minecraft:birch_button", + "id" : 396, + "data" : 10 + }, + { + "name" : "minecraft:birch_button", + "id" : 396, + "data" : 11 + }, + { + "name" : "minecraft:birch_button", + "id" : 396, + "data" : 12 + }, + { + "name" : "minecraft:birch_button", + "id" : 396, + "data" : 13 + }, + { + "name" : "minecraft:birch_button", + "id" : 396, + "data" : 14 + }, + { + "name" : "minecraft:birch_button", + "id" : 396, + "data" : 15 + }, + { + "name" : "minecraft:dark_oak_button", + "id" : 397, + "data" : 0 + }, + { + "name" : "minecraft:dark_oak_button", + "id" : 397, + "data" : 1 + }, + { + "name" : "minecraft:dark_oak_button", + "id" : 397, + "data" : 2 + }, + { + "name" : "minecraft:dark_oak_button", + "id" : 397, + "data" : 3 + }, + { + "name" : "minecraft:dark_oak_button", + "id" : 397, + "data" : 4 + }, + { + "name" : "minecraft:dark_oak_button", + "id" : 397, + "data" : 5 + }, + { + "name" : "minecraft:dark_oak_button", + "id" : 397, + "data" : 6 + }, + { + "name" : "minecraft:dark_oak_button", + "id" : 397, + "data" : 7 + }, + { + "name" : "minecraft:dark_oak_button", + "id" : 397, + "data" : 8 + }, + { + "name" : "minecraft:dark_oak_button", + "id" : 397, + "data" : 9 + }, + { + "name" : "minecraft:dark_oak_button", + "id" : 397, + "data" : 10 + }, + { + "name" : "minecraft:dark_oak_button", + "id" : 397, + "data" : 11 + }, + { + "name" : "minecraft:dark_oak_button", + "id" : 397, + "data" : 12 + }, + { + "name" : "minecraft:dark_oak_button", + "id" : 397, + "data" : 13 + }, + { + "name" : "minecraft:dark_oak_button", + "id" : 397, + "data" : 14 + }, + { + "name" : "minecraft:dark_oak_button", + "id" : 397, + "data" : 15 + }, + { + "name" : "minecraft:jungle_button", + "id" : 398, + "data" : 0 + }, + { + "name" : "minecraft:jungle_button", + "id" : 398, + "data" : 1 + }, + { + "name" : "minecraft:jungle_button", + "id" : 398, + "data" : 2 + }, + { + "name" : "minecraft:jungle_button", + "id" : 398, + "data" : 3 + }, + { + "name" : "minecraft:jungle_button", + "id" : 398, + "data" : 4 + }, + { + "name" : "minecraft:jungle_button", + "id" : 398, + "data" : 5 + }, + { + "name" : "minecraft:jungle_button", + "id" : 398, + "data" : 6 + }, + { + "name" : "minecraft:jungle_button", + "id" : 398, + "data" : 7 + }, + { + "name" : "minecraft:jungle_button", + "id" : 398, + "data" : 8 + }, + { + "name" : "minecraft:jungle_button", + "id" : 398, + "data" : 9 + }, + { + "name" : "minecraft:jungle_button", + "id" : 398, + "data" : 10 + }, + { + "name" : "minecraft:jungle_button", + "id" : 398, + "data" : 11 + }, + { + "name" : "minecraft:jungle_button", + "id" : 398, + "data" : 12 + }, + { + "name" : "minecraft:jungle_button", + "id" : 398, + "data" : 13 + }, + { + "name" : "minecraft:jungle_button", + "id" : 398, + "data" : 14 + }, + { + "name" : "minecraft:jungle_button", + "id" : 398, + "data" : 15 + }, + { + "name" : "minecraft:spruce_button", + "id" : 399, + "data" : 0 + }, + { + "name" : "minecraft:spruce_button", + "id" : 399, + "data" : 1 + }, + { + "name" : "minecraft:spruce_button", + "id" : 399, + "data" : 2 + }, + { + "name" : "minecraft:spruce_button", + "id" : 399, + "data" : 3 + }, + { + "name" : "minecraft:spruce_button", + "id" : 399, + "data" : 4 + }, + { + "name" : "minecraft:spruce_button", + "id" : 399, + "data" : 5 + }, + { + "name" : "minecraft:spruce_button", + "id" : 399, + "data" : 6 + }, + { + "name" : "minecraft:spruce_button", + "id" : 399, + "data" : 7 + }, + { + "name" : "minecraft:spruce_button", + "id" : 399, + "data" : 8 + }, + { + "name" : "minecraft:spruce_button", + "id" : 399, + "data" : 9 + }, + { + "name" : "minecraft:spruce_button", + "id" : 399, + "data" : 10 + }, + { + "name" : "minecraft:spruce_button", + "id" : 399, + "data" : 11 + }, + { + "name" : "minecraft:spruce_button", + "id" : 399, + "data" : 12 + }, + { + "name" : "minecraft:spruce_button", + "id" : 399, + "data" : 13 + }, + { + "name" : "minecraft:spruce_button", + "id" : 399, + "data" : 14 + }, + { + "name" : "minecraft:spruce_button", + "id" : 399, + "data" : 15 + }, + { + "name" : "minecraft:acacia_trapdoor", + "id" : 400, + "data" : 0 + }, + { + "name" : "minecraft:acacia_trapdoor", + "id" : 400, + "data" : 1 + }, + { + "name" : "minecraft:acacia_trapdoor", + "id" : 400, + "data" : 2 + }, + { + "name" : "minecraft:acacia_trapdoor", + "id" : 400, + "data" : 3 + }, + { + "name" : "minecraft:acacia_trapdoor", + "id" : 400, + "data" : 4 + }, + { + "name" : "minecraft:acacia_trapdoor", + "id" : 400, + "data" : 5 + }, + { + "name" : "minecraft:acacia_trapdoor", + "id" : 400, + "data" : 6 + }, + { + "name" : "minecraft:acacia_trapdoor", + "id" : 400, + "data" : 7 + }, + { + "name" : "minecraft:acacia_trapdoor", + "id" : 400, + "data" : 8 + }, + { + "name" : "minecraft:acacia_trapdoor", + "id" : 400, + "data" : 9 + }, + { + "name" : "minecraft:acacia_trapdoor", + "id" : 400, + "data" : 10 + }, + { + "name" : "minecraft:acacia_trapdoor", + "id" : 400, + "data" : 11 + }, + { + "name" : "minecraft:acacia_trapdoor", + "id" : 400, + "data" : 12 + }, + { + "name" : "minecraft:acacia_trapdoor", + "id" : 400, + "data" : 13 + }, + { + "name" : "minecraft:acacia_trapdoor", + "id" : 400, + "data" : 14 + }, + { + "name" : "minecraft:acacia_trapdoor", + "id" : 400, + "data" : 15 + }, + { + "name" : "minecraft:birch_trapdoor", + "id" : 401, + "data" : 0 + }, + { + "name" : "minecraft:birch_trapdoor", + "id" : 401, + "data" : 1 + }, + { + "name" : "minecraft:birch_trapdoor", + "id" : 401, + "data" : 2 + }, + { + "name" : "minecraft:birch_trapdoor", + "id" : 401, + "data" : 3 + }, + { + "name" : "minecraft:birch_trapdoor", + "id" : 401, + "data" : 4 + }, + { + "name" : "minecraft:birch_trapdoor", + "id" : 401, + "data" : 5 + }, + { + "name" : "minecraft:birch_trapdoor", + "id" : 401, + "data" : 6 + }, + { + "name" : "minecraft:birch_trapdoor", + "id" : 401, + "data" : 7 + }, + { + "name" : "minecraft:birch_trapdoor", + "id" : 401, + "data" : 8 + }, + { + "name" : "minecraft:birch_trapdoor", + "id" : 401, + "data" : 9 + }, + { + "name" : "minecraft:birch_trapdoor", + "id" : 401, + "data" : 10 + }, + { + "name" : "minecraft:birch_trapdoor", + "id" : 401, + "data" : 11 + }, + { + "name" : "minecraft:birch_trapdoor", + "id" : 401, + "data" : 12 + }, + { + "name" : "minecraft:birch_trapdoor", + "id" : 401, + "data" : 13 + }, + { + "name" : "minecraft:birch_trapdoor", + "id" : 401, + "data" : 14 + }, + { + "name" : "minecraft:birch_trapdoor", + "id" : 401, + "data" : 15 + }, + { + "name" : "minecraft:dark_oak_trapdoor", + "id" : 402, + "data" : 0 + }, + { + "name" : "minecraft:dark_oak_trapdoor", + "id" : 402, + "data" : 1 + }, + { + "name" : "minecraft:dark_oak_trapdoor", + "id" : 402, + "data" : 2 + }, + { + "name" : "minecraft:dark_oak_trapdoor", + "id" : 402, + "data" : 3 + }, + { + "name" : "minecraft:dark_oak_trapdoor", + "id" : 402, + "data" : 4 + }, + { + "name" : "minecraft:dark_oak_trapdoor", + "id" : 402, + "data" : 5 + }, + { + "name" : "minecraft:dark_oak_trapdoor", + "id" : 402, + "data" : 6 + }, + { + "name" : "minecraft:dark_oak_trapdoor", + "id" : 402, + "data" : 7 + }, + { + "name" : "minecraft:dark_oak_trapdoor", + "id" : 402, + "data" : 8 + }, + { + "name" : "minecraft:dark_oak_trapdoor", + "id" : 402, + "data" : 9 + }, + { + "name" : "minecraft:dark_oak_trapdoor", + "id" : 402, + "data" : 10 + }, + { + "name" : "minecraft:dark_oak_trapdoor", + "id" : 402, + "data" : 11 + }, + { + "name" : "minecraft:dark_oak_trapdoor", + "id" : 402, + "data" : 12 + }, + { + "name" : "minecraft:dark_oak_trapdoor", + "id" : 402, + "data" : 13 + }, + { + "name" : "minecraft:dark_oak_trapdoor", + "id" : 402, + "data" : 14 + }, + { + "name" : "minecraft:dark_oak_trapdoor", + "id" : 402, + "data" : 15 + }, + { + "name" : "minecraft:jungle_trapdoor", + "id" : 403, + "data" : 0 + }, + { + "name" : "minecraft:jungle_trapdoor", + "id" : 403, + "data" : 1 + }, + { + "name" : "minecraft:jungle_trapdoor", + "id" : 403, + "data" : 2 + }, + { + "name" : "minecraft:jungle_trapdoor", + "id" : 403, + "data" : 3 + }, + { + "name" : "minecraft:jungle_trapdoor", + "id" : 403, + "data" : 4 + }, + { + "name" : "minecraft:jungle_trapdoor", + "id" : 403, + "data" : 5 + }, + { + "name" : "minecraft:jungle_trapdoor", + "id" : 403, + "data" : 6 + }, + { + "name" : "minecraft:jungle_trapdoor", + "id" : 403, + "data" : 7 + }, + { + "name" : "minecraft:jungle_trapdoor", + "id" : 403, + "data" : 8 + }, + { + "name" : "minecraft:jungle_trapdoor", + "id" : 403, + "data" : 9 + }, + { + "name" : "minecraft:jungle_trapdoor", + "id" : 403, + "data" : 10 + }, + { + "name" : "minecraft:jungle_trapdoor", + "id" : 403, + "data" : 11 + }, + { + "name" : "minecraft:jungle_trapdoor", + "id" : 403, + "data" : 12 + }, + { + "name" : "minecraft:jungle_trapdoor", + "id" : 403, + "data" : 13 + }, + { + "name" : "minecraft:jungle_trapdoor", + "id" : 403, + "data" : 14 + }, + { + "name" : "minecraft:jungle_trapdoor", + "id" : 403, + "data" : 15 + }, + { + "name" : "minecraft:spruce_trapdoor", + "id" : 404, + "data" : 0 + }, + { + "name" : "minecraft:spruce_trapdoor", + "id" : 404, + "data" : 1 + }, + { + "name" : "minecraft:spruce_trapdoor", + "id" : 404, + "data" : 2 + }, + { + "name" : "minecraft:spruce_trapdoor", + "id" : 404, + "data" : 3 + }, + { + "name" : "minecraft:spruce_trapdoor", + "id" : 404, + "data" : 4 + }, + { + "name" : "minecraft:spruce_trapdoor", + "id" : 404, + "data" : 5 + }, + { + "name" : "minecraft:spruce_trapdoor", + "id" : 404, + "data" : 6 + }, + { + "name" : "minecraft:spruce_trapdoor", + "id" : 404, + "data" : 7 + }, + { + "name" : "minecraft:spruce_trapdoor", + "id" : 404, + "data" : 8 + }, + { + "name" : "minecraft:spruce_trapdoor", + "id" : 404, + "data" : 9 + }, + { + "name" : "minecraft:spruce_trapdoor", + "id" : 404, + "data" : 10 + }, + { + "name" : "minecraft:spruce_trapdoor", + "id" : 404, + "data" : 11 + }, + { + "name" : "minecraft:spruce_trapdoor", + "id" : 404, + "data" : 12 + }, + { + "name" : "minecraft:spruce_trapdoor", + "id" : 404, + "data" : 13 + }, + { + "name" : "minecraft:spruce_trapdoor", + "id" : 404, + "data" : 14 + }, + { + "name" : "minecraft:spruce_trapdoor", + "id" : 404, + "data" : 15 + }, + { + "name" : "minecraft:acacia_pressure_plate", + "id" : 405, + "data" : 0 + }, + { + "name" : "minecraft:acacia_pressure_plate", + "id" : 405, + "data" : 1 + }, + { + "name" : "minecraft:acacia_pressure_plate", + "id" : 405, + "data" : 2 + }, + { + "name" : "minecraft:acacia_pressure_plate", + "id" : 405, + "data" : 3 + }, + { + "name" : "minecraft:acacia_pressure_plate", + "id" : 405, + "data" : 4 + }, + { + "name" : "minecraft:acacia_pressure_plate", + "id" : 405, + "data" : 5 + }, + { + "name" : "minecraft:acacia_pressure_plate", + "id" : 405, + "data" : 6 + }, + { + "name" : "minecraft:acacia_pressure_plate", + "id" : 405, + "data" : 7 + }, + { + "name" : "minecraft:acacia_pressure_plate", + "id" : 405, + "data" : 8 + }, + { + "name" : "minecraft:acacia_pressure_plate", + "id" : 405, + "data" : 9 + }, + { + "name" : "minecraft:acacia_pressure_plate", + "id" : 405, + "data" : 10 + }, + { + "name" : "minecraft:acacia_pressure_plate", + "id" : 405, + "data" : 11 + }, + { + "name" : "minecraft:acacia_pressure_plate", + "id" : 405, + "data" : 12 + }, + { + "name" : "minecraft:acacia_pressure_plate", + "id" : 405, + "data" : 13 + }, + { + "name" : "minecraft:acacia_pressure_plate", + "id" : 405, + "data" : 14 + }, + { + "name" : "minecraft:acacia_pressure_plate", + "id" : 405, + "data" : 15 + }, + { + "name" : "minecraft:birch_pressure_plate", + "id" : 406, + "data" : 0 + }, + { + "name" : "minecraft:birch_pressure_plate", + "id" : 406, + "data" : 1 + }, + { + "name" : "minecraft:birch_pressure_plate", + "id" : 406, + "data" : 2 + }, + { + "name" : "minecraft:birch_pressure_plate", + "id" : 406, + "data" : 3 + }, + { + "name" : "minecraft:birch_pressure_plate", + "id" : 406, + "data" : 4 + }, + { + "name" : "minecraft:birch_pressure_plate", + "id" : 406, + "data" : 5 + }, + { + "name" : "minecraft:birch_pressure_plate", + "id" : 406, + "data" : 6 + }, + { + "name" : "minecraft:birch_pressure_plate", + "id" : 406, + "data" : 7 + }, + { + "name" : "minecraft:birch_pressure_plate", + "id" : 406, + "data" : 8 + }, + { + "name" : "minecraft:birch_pressure_plate", + "id" : 406, + "data" : 9 + }, + { + "name" : "minecraft:birch_pressure_plate", + "id" : 406, + "data" : 10 + }, + { + "name" : "minecraft:birch_pressure_plate", + "id" : 406, + "data" : 11 + }, + { + "name" : "minecraft:birch_pressure_plate", + "id" : 406, + "data" : 12 + }, + { + "name" : "minecraft:birch_pressure_plate", + "id" : 406, + "data" : 13 + }, + { + "name" : "minecraft:birch_pressure_plate", + "id" : 406, + "data" : 14 + }, + { + "name" : "minecraft:birch_pressure_plate", + "id" : 406, + "data" : 15 + }, + { + "name" : "minecraft:dark_oak_pressure_plate", + "id" : 407, + "data" : 0 + }, + { + "name" : "minecraft:dark_oak_pressure_plate", + "id" : 407, + "data" : 1 + }, + { + "name" : "minecraft:dark_oak_pressure_plate", + "id" : 407, + "data" : 2 + }, + { + "name" : "minecraft:dark_oak_pressure_plate", + "id" : 407, + "data" : 3 + }, + { + "name" : "minecraft:dark_oak_pressure_plate", + "id" : 407, + "data" : 4 + }, + { + "name" : "minecraft:dark_oak_pressure_plate", + "id" : 407, + "data" : 5 + }, + { + "name" : "minecraft:dark_oak_pressure_plate", + "id" : 407, + "data" : 6 + }, + { + "name" : "minecraft:dark_oak_pressure_plate", + "id" : 407, + "data" : 7 + }, + { + "name" : "minecraft:dark_oak_pressure_plate", + "id" : 407, + "data" : 8 + }, + { + "name" : "minecraft:dark_oak_pressure_plate", + "id" : 407, + "data" : 9 + }, + { + "name" : "minecraft:dark_oak_pressure_plate", + "id" : 407, + "data" : 10 + }, + { + "name" : "minecraft:dark_oak_pressure_plate", + "id" : 407, + "data" : 11 + }, + { + "name" : "minecraft:dark_oak_pressure_plate", + "id" : 407, + "data" : 12 + }, + { + "name" : "minecraft:dark_oak_pressure_plate", + "id" : 407, + "data" : 13 + }, + { + "name" : "minecraft:dark_oak_pressure_plate", + "id" : 407, + "data" : 14 + }, + { + "name" : "minecraft:dark_oak_pressure_plate", + "id" : 407, + "data" : 15 + }, + { + "name" : "minecraft:jungle_pressure_plate", + "id" : 408, + "data" : 0 + }, + { + "name" : "minecraft:jungle_pressure_plate", + "id" : 408, + "data" : 1 + }, + { + "name" : "minecraft:jungle_pressure_plate", + "id" : 408, + "data" : 2 + }, + { + "name" : "minecraft:jungle_pressure_plate", + "id" : 408, + "data" : 3 + }, + { + "name" : "minecraft:jungle_pressure_plate", + "id" : 408, + "data" : 4 + }, + { + "name" : "minecraft:jungle_pressure_plate", + "id" : 408, + "data" : 5 + }, + { + "name" : "minecraft:jungle_pressure_plate", + "id" : 408, + "data" : 6 + }, + { + "name" : "minecraft:jungle_pressure_plate", + "id" : 408, + "data" : 7 + }, + { + "name" : "minecraft:jungle_pressure_plate", + "id" : 408, + "data" : 8 + }, + { + "name" : "minecraft:jungle_pressure_plate", + "id" : 408, + "data" : 9 + }, + { + "name" : "minecraft:jungle_pressure_plate", + "id" : 408, + "data" : 10 + }, + { + "name" : "minecraft:jungle_pressure_plate", + "id" : 408, + "data" : 11 + }, + { + "name" : "minecraft:jungle_pressure_plate", + "id" : 408, + "data" : 12 + }, + { + "name" : "minecraft:jungle_pressure_plate", + "id" : 408, + "data" : 13 + }, + { + "name" : "minecraft:jungle_pressure_plate", + "id" : 408, + "data" : 14 + }, + { + "name" : "minecraft:jungle_pressure_plate", + "id" : 408, + "data" : 15 + }, + { + "name" : "minecraft:spruce_pressure_plate", + "id" : 409, + "data" : 0 + }, + { + "name" : "minecraft:spruce_pressure_plate", + "id" : 409, + "data" : 1 + }, + { + "name" : "minecraft:spruce_pressure_plate", + "id" : 409, + "data" : 2 + }, + { + "name" : "minecraft:spruce_pressure_plate", + "id" : 409, + "data" : 3 + }, + { + "name" : "minecraft:spruce_pressure_plate", + "id" : 409, + "data" : 4 + }, + { + "name" : "minecraft:spruce_pressure_plate", + "id" : 409, + "data" : 5 + }, + { + "name" : "minecraft:spruce_pressure_plate", + "id" : 409, + "data" : 6 + }, + { + "name" : "minecraft:spruce_pressure_plate", + "id" : 409, + "data" : 7 + }, + { + "name" : "minecraft:spruce_pressure_plate", + "id" : 409, + "data" : 8 + }, + { + "name" : "minecraft:spruce_pressure_plate", + "id" : 409, + "data" : 9 + }, + { + "name" : "minecraft:spruce_pressure_plate", + "id" : 409, + "data" : 10 + }, + { + "name" : "minecraft:spruce_pressure_plate", + "id" : 409, + "data" : 11 + }, + { + "name" : "minecraft:spruce_pressure_plate", + "id" : 409, + "data" : 12 + }, + { + "name" : "minecraft:spruce_pressure_plate", + "id" : 409, + "data" : 13 + }, + { + "name" : "minecraft:spruce_pressure_plate", + "id" : 409, + "data" : 14 + }, + { + "name" : "minecraft:spruce_pressure_plate", + "id" : 409, + "data" : 15 + }, + { + "name" : "minecraft:carved_pumpkin", + "id" : 410, + "data" : 0 + }, + { + "name" : "minecraft:carved_pumpkin", + "id" : 410, + "data" : 1 + }, + { + "name" : "minecraft:carved_pumpkin", + "id" : 410, + "data" : 2 + }, + { + "name" : "minecraft:carved_pumpkin", + "id" : 410, + "data" : 3 + }, + { + "name" : "minecraft:sea_pickle", + "id" : 411, + "data" : 0 + }, + { + "name" : "minecraft:sea_pickle", + "id" : 411, + "data" : 1 + }, + { + "name" : "minecraft:sea_pickle", + "id" : 411, + "data" : 2 + }, + { + "name" : "minecraft:sea_pickle", + "id" : 411, + "data" : 3 + }, + { + "name" : "minecraft:sea_pickle", + "id" : 411, + "data" : 4 + }, + { + "name" : "minecraft:sea_pickle", + "id" : 411, + "data" : 5 + }, + { + "name" : "minecraft:sea_pickle", + "id" : 411, + "data" : 6 + }, + { + "name" : "minecraft:sea_pickle", + "id" : 411, + "data" : 7 + }, + { + "name" : "minecraft:conduit", + "id" : 412, + "data" : 0 + }, + { + "name" : "minecraft:turtle_egg", + "id" : 414, + "data" : 0 + }, + { + "name" : "minecraft:turtle_egg", + "id" : 414, + "data" : 1 + }, + { + "name" : "minecraft:turtle_egg", + "id" : 414, + "data" : 2 + }, + { + "name" : "minecraft:turtle_egg", + "id" : 414, + "data" : 3 + }, + { + "name" : "minecraft:turtle_egg", + "id" : 414, + "data" : 4 + }, + { + "name" : "minecraft:turtle_egg", + "id" : 414, + "data" : 5 + }, + { + "name" : "minecraft:turtle_egg", + "id" : 414, + "data" : 6 + }, + { + "name" : "minecraft:turtle_egg", + "id" : 414, + "data" : 7 + }, + { + "name" : "minecraft:turtle_egg", + "id" : 414, + "data" : 8 + }, + { + "name" : "minecraft:turtle_egg", + "id" : 414, + "data" : 9 + }, + { + "name" : "minecraft:turtle_egg", + "id" : 414, + "data" : 10 + }, + { + "name" : "minecraft:turtle_egg", + "id" : 414, + "data" : 11 + }, + { + "name" : "minecraft:turtle_egg", + "id" : 414, + "data" : 12 + }, + { + "name" : "minecraft:turtle_egg", + "id" : 414, + "data" : 13 + }, + { + "name" : "minecraft:turtle_egg", + "id" : 414, + "data" : 14 + }, + { + "name" : "minecraft:turtle_egg", + "id" : 414, + "data" : 15 + }, + { + "name" : "minecraft:bubble_column", + "id" : 415, + "data" : 0 + }, + { + "name" : "minecraft:bubble_column", + "id" : 415, + "data" : 1 + }, + { + "name" : "minecraft:barrier", + "id" : 416, + "data" : 0 + }, + { + "name" : "minecraft:stone_slab3", + "id" : 417, + "data" : 0 + }, + { + "name" : "minecraft:stone_slab3", + "id" : 417, + "data" : 1 + }, + { + "name" : "minecraft:stone_slab3", + "id" : 417, + "data" : 2 + }, + { + "name" : "minecraft:stone_slab3", + "id" : 417, + "data" : 3 + }, + { + "name" : "minecraft:stone_slab3", + "id" : 417, + "data" : 4 + }, + { + "name" : "minecraft:stone_slab3", + "id" : 417, + "data" : 5 + }, + { + "name" : "minecraft:stone_slab3", + "id" : 417, + "data" : 6 + }, + { + "name" : "minecraft:stone_slab3", + "id" : 417, + "data" : 7 + }, + { + "name" : "minecraft:stone_slab3", + "id" : 417, + "data" : 8 + }, + { + "name" : "minecraft:stone_slab3", + "id" : 417, + "data" : 9 + }, + { + "name" : "minecraft:stone_slab3", + "id" : 417, + "data" : 10 + }, + { + "name" : "minecraft:stone_slab3", + "id" : 417, + "data" : 11 + }, + { + "name" : "minecraft:stone_slab3", + "id" : 417, + "data" : 12 + }, + { + "name" : "minecraft:stone_slab3", + "id" : 417, + "data" : 13 + }, + { + "name" : "minecraft:stone_slab3", + "id" : 417, + "data" : 14 + }, + { + "name" : "minecraft:stone_slab3", + "id" : 417, + "data" : 15 + }, + { + "name" : "minecraft:bamboo", + "id" : 418, + "data" : 0 + }, + { + "name" : "minecraft:bamboo", + "id" : 418, + "data" : 1 + }, + { + "name" : "minecraft:bamboo", + "id" : 418, + "data" : 2 + }, + { + "name" : "minecraft:bamboo", + "id" : 418, + "data" : 3 + }, + { + "name" : "minecraft:bamboo", + "id" : 418, + "data" : 4 + }, + { + "name" : "minecraft:bamboo", + "id" : 418, + "data" : 5 + }, + { + "name" : "minecraft:bamboo", + "id" : 418, + "data" : 6 + }, + { + "name" : "minecraft:bamboo", + "id" : 418, + "data" : 7 + }, + { + "name" : "minecraft:bamboo", + "id" : 418, + "data" : 8 + }, + { + "name" : "minecraft:bamboo", + "id" : 418, + "data" : 9 + }, + { + "name" : "minecraft:bamboo", + "id" : 418, + "data" : 10 + }, + { + "name" : "minecraft:bamboo", + "id" : 418, + "data" : 11 + }, + { + "name" : "minecraft:bamboo", + "id" : 418, + "data" : 12 + }, + { + "name" : "minecraft:bamboo", + "id" : 418, + "data" : 13 + }, + { + "name" : "minecraft:bamboo", + "id" : 418, + "data" : 14 + }, + { + "name" : "minecraft:bamboo", + "id" : 418, + "data" : 15 + }, + { + "name" : "minecraft:bamboo_sapling", + "id" : 419, + "data" : 0 + }, + { + "name" : "minecraft:bamboo_sapling", + "id" : 419, + "data" : 1 + }, + { + "name" : "minecraft:bamboo_sapling", + "id" : 419, + "data" : 2 + }, + { + "name" : "minecraft:bamboo_sapling", + "id" : 419, + "data" : 3 + }, + { + "name" : "minecraft:bamboo_sapling", + "id" : 419, + "data" : 4 + }, + { + "name" : "minecraft:bamboo_sapling", + "id" : 419, + "data" : 5 + }, + { + "name" : "minecraft:bamboo_sapling", + "id" : 419, + "data" : 6 + }, + { + "name" : "minecraft:bamboo_sapling", + "id" : 419, + "data" : 7 + }, + { + "name" : "minecraft:bamboo_sapling", + "id" : 419, + "data" : 8 + }, + { + "name" : "minecraft:bamboo_sapling", + "id" : 419, + "data" : 9 + }, + { + "name" : "minecraft:bamboo_sapling", + "id" : 419, + "data" : 10 + }, + { + "name" : "minecraft:bamboo_sapling", + "id" : 419, + "data" : 11 + }, + { + "name" : "minecraft:bamboo_sapling", + "id" : 419, + "data" : 12 + }, + { + "name" : "minecraft:bamboo_sapling", + "id" : 419, + "data" : 13 + }, + { + "name" : "minecraft:bamboo_sapling", + "id" : 419, + "data" : 14 + }, + { + "name" : "minecraft:bamboo_sapling", + "id" : 419, + "data" : 15 + }, + { + "name" : "minecraft:scaffolding", + "id" : 420, + "data" : 0 + }, + { + "name" : "minecraft:scaffolding", + "id" : 420, + "data" : 1 + }, + { + "name" : "minecraft:scaffolding", + "id" : 420, + "data" : 2 + }, + { + "name" : "minecraft:scaffolding", + "id" : 420, + "data" : 3 + }, + { + "name" : "minecraft:scaffolding", + "id" : 420, + "data" : 4 + }, + { + "name" : "minecraft:scaffolding", + "id" : 420, + "data" : 5 + }, + { + "name" : "minecraft:scaffolding", + "id" : 420, + "data" : 6 + }, + { + "name" : "minecraft:scaffolding", + "id" : 420, + "data" : 7 + }, + { + "name" : "minecraft:scaffolding", + "id" : 420, + "data" : 8 + }, + { + "name" : "minecraft:scaffolding", + "id" : 420, + "data" : 9 + }, + { + "name" : "minecraft:scaffolding", + "id" : 420, + "data" : 10 + }, + { + "name" : "minecraft:scaffolding", + "id" : 420, + "data" : 11 + }, + { + "name" : "minecraft:scaffolding", + "id" : 420, + "data" : 12 + }, + { + "name" : "minecraft:scaffolding", + "id" : 420, + "data" : 13 + }, + { + "name" : "minecraft:scaffolding", + "id" : 420, + "data" : 14 + }, + { + "name" : "minecraft:scaffolding", + "id" : 420, + "data" : 15 + }, + { + "name" : "minecraft:stone_slab4", + "id" : 421, + "data" : 0 + }, + { + "name" : "minecraft:stone_slab4", + "id" : 421, + "data" : 1 + }, + { + "name" : "minecraft:stone_slab4", + "id" : 421, + "data" : 2 + }, + { + "name" : "minecraft:stone_slab4", + "id" : 421, + "data" : 3 + }, + { + "name" : "minecraft:stone_slab4", + "id" : 421, + "data" : 4 + }, + { + "name" : "minecraft:stone_slab4", + "id" : 421, + "data" : 5 + }, + { + "name" : "minecraft:stone_slab4", + "id" : 421, + "data" : 6 + }, + { + "name" : "minecraft:stone_slab4", + "id" : 421, + "data" : 7 + }, + { + "name" : "minecraft:stone_slab4", + "id" : 421, + "data" : 8 + }, + { + "name" : "minecraft:stone_slab4", + "id" : 421, + "data" : 9 + }, + { + "name" : "minecraft:stone_slab4", + "id" : 421, + "data" : 10 + }, + { + "name" : "minecraft:stone_slab4", + "id" : 421, + "data" : 11 + }, + { + "name" : "minecraft:stone_slab4", + "id" : 421, + "data" : 12 + }, + { + "name" : "minecraft:stone_slab4", + "id" : 421, + "data" : 13 + }, + { + "name" : "minecraft:stone_slab4", + "id" : 421, + "data" : 14 + }, + { + "name" : "minecraft:stone_slab4", + "id" : 421, + "data" : 15 + }, + { + "name" : "minecraft:double_stone_slab3", + "id" : 422, + "data" : 0 + }, + { + "name" : "minecraft:double_stone_slab3", + "id" : 422, + "data" : 1 + }, + { + "name" : "minecraft:double_stone_slab3", + "id" : 422, + "data" : 2 + }, + { + "name" : "minecraft:double_stone_slab3", + "id" : 422, + "data" : 3 + }, + { + "name" : "minecraft:double_stone_slab3", + "id" : 422, + "data" : 4 + }, + { + "name" : "minecraft:double_stone_slab3", + "id" : 422, + "data" : 5 + }, + { + "name" : "minecraft:double_stone_slab3", + "id" : 422, + "data" : 6 + }, + { + "name" : "minecraft:double_stone_slab3", + "id" : 422, + "data" : 7 + }, + { + "name" : "minecraft:double_stone_slab3", + "id" : 422, + "data" : 8 + }, + { + "name" : "minecraft:double_stone_slab3", + "id" : 422, + "data" : 9 + }, + { + "name" : "minecraft:double_stone_slab3", + "id" : 422, + "data" : 10 + }, + { + "name" : "minecraft:double_stone_slab3", + "id" : 422, + "data" : 11 + }, + { + "name" : "minecraft:double_stone_slab3", + "id" : 422, + "data" : 12 + }, + { + "name" : "minecraft:double_stone_slab3", + "id" : 422, + "data" : 13 + }, + { + "name" : "minecraft:double_stone_slab3", + "id" : 422, + "data" : 14 + }, + { + "name" : "minecraft:double_stone_slab3", + "id" : 422, + "data" : 15 + }, + { + "name" : "minecraft:double_stone_slab4", + "id" : 423, + "data" : 0 + }, + { + "name" : "minecraft:double_stone_slab4", + "id" : 423, + "data" : 1 + }, + { + "name" : "minecraft:double_stone_slab4", + "id" : 423, + "data" : 2 + }, + { + "name" : "minecraft:double_stone_slab4", + "id" : 423, + "data" : 3 + }, + { + "name" : "minecraft:double_stone_slab4", + "id" : 423, + "data" : 4 + }, + { + "name" : "minecraft:double_stone_slab4", + "id" : 423, + "data" : 5 + }, + { + "name" : "minecraft:double_stone_slab4", + "id" : 423, + "data" : 6 + }, + { + "name" : "minecraft:double_stone_slab4", + "id" : 423, + "data" : 7 + }, + { + "name" : "minecraft:double_stone_slab4", + "id" : 423, + "data" : 8 + }, + { + "name" : "minecraft:double_stone_slab4", + "id" : 423, + "data" : 9 + }, + { + "name" : "minecraft:double_stone_slab4", + "id" : 423, + "data" : 10 + }, + { + "name" : "minecraft:double_stone_slab4", + "id" : 423, + "data" : 11 + }, + { + "name" : "minecraft:double_stone_slab4", + "id" : 423, + "data" : 12 + }, + { + "name" : "minecraft:double_stone_slab4", + "id" : 423, + "data" : 13 + }, + { + "name" : "minecraft:double_stone_slab4", + "id" : 423, + "data" : 14 + }, + { + "name" : "minecraft:double_stone_slab4", + "id" : 423, + "data" : 15 + }, + { + "name" : "minecraft:granite_stairs", + "id" : 424, + "data" : 0 + }, + { + "name" : "minecraft:granite_stairs", + "id" : 424, + "data" : 1 + }, + { + "name" : "minecraft:granite_stairs", + "id" : 424, + "data" : 2 + }, + { + "name" : "minecraft:granite_stairs", + "id" : 424, + "data" : 3 + }, + { + "name" : "minecraft:granite_stairs", + "id" : 424, + "data" : 4 + }, + { + "name" : "minecraft:granite_stairs", + "id" : 424, + "data" : 5 + }, + { + "name" : "minecraft:granite_stairs", + "id" : 424, + "data" : 6 + }, + { + "name" : "minecraft:granite_stairs", + "id" : 424, + "data" : 7 + }, + { + "name" : "minecraft:diorite_stairs", + "id" : 425, + "data" : 0 + }, + { + "name" : "minecraft:diorite_stairs", + "id" : 425, + "data" : 1 + }, + { + "name" : "minecraft:diorite_stairs", + "id" : 425, + "data" : 2 + }, + { + "name" : "minecraft:diorite_stairs", + "id" : 425, + "data" : 3 + }, + { + "name" : "minecraft:diorite_stairs", + "id" : 425, + "data" : 4 + }, + { + "name" : "minecraft:diorite_stairs", + "id" : 425, + "data" : 5 + }, + { + "name" : "minecraft:diorite_stairs", + "id" : 425, + "data" : 6 + }, + { + "name" : "minecraft:diorite_stairs", + "id" : 425, + "data" : 7 + }, + { + "name" : "minecraft:andesite_stairs", + "id" : 426, + "data" : 0 + }, + { + "name" : "minecraft:andesite_stairs", + "id" : 426, + "data" : 1 + }, + { + "name" : "minecraft:andesite_stairs", + "id" : 426, + "data" : 2 + }, + { + "name" : "minecraft:andesite_stairs", + "id" : 426, + "data" : 3 + }, + { + "name" : "minecraft:andesite_stairs", + "id" : 426, + "data" : 4 + }, + { + "name" : "minecraft:andesite_stairs", + "id" : 426, + "data" : 5 + }, + { + "name" : "minecraft:andesite_stairs", + "id" : 426, + "data" : 6 + }, + { + "name" : "minecraft:andesite_stairs", + "id" : 426, + "data" : 7 + }, + { + "name" : "minecraft:polished_granite_stairs", + "id" : 427, + "data" : 0 + }, + { + "name" : "minecraft:polished_granite_stairs", + "id" : 427, + "data" : 1 + }, + { + "name" : "minecraft:polished_granite_stairs", + "id" : 427, + "data" : 2 + }, + { + "name" : "minecraft:polished_granite_stairs", + "id" : 427, + "data" : 3 + }, + { + "name" : "minecraft:polished_granite_stairs", + "id" : 427, + "data" : 4 + }, + { + "name" : "minecraft:polished_granite_stairs", + "id" : 427, + "data" : 5 + }, + { + "name" : "minecraft:polished_granite_stairs", + "id" : 427, + "data" : 6 + }, + { + "name" : "minecraft:polished_granite_stairs", + "id" : 427, + "data" : 7 + }, + { + "name" : "minecraft:polished_diorite_stairs", + "id" : 428, + "data" : 0 + }, + { + "name" : "minecraft:polished_diorite_stairs", + "id" : 428, + "data" : 1 + }, + { + "name" : "minecraft:polished_diorite_stairs", + "id" : 428, + "data" : 2 + }, + { + "name" : "minecraft:polished_diorite_stairs", + "id" : 428, + "data" : 3 + }, + { + "name" : "minecraft:polished_diorite_stairs", + "id" : 428, + "data" : 4 + }, + { + "name" : "minecraft:polished_diorite_stairs", + "id" : 428, + "data" : 5 + }, + { + "name" : "minecraft:polished_diorite_stairs", + "id" : 428, + "data" : 6 + }, + { + "name" : "minecraft:polished_diorite_stairs", + "id" : 428, + "data" : 7 + }, + { + "name" : "minecraft:polished_andesite_stairs", + "id" : 429, + "data" : 0 + }, + { + "name" : "minecraft:polished_andesite_stairs", + "id" : 429, + "data" : 1 + }, + { + "name" : "minecraft:polished_andesite_stairs", + "id" : 429, + "data" : 2 + }, + { + "name" : "minecraft:polished_andesite_stairs", + "id" : 429, + "data" : 3 + }, + { + "name" : "minecraft:polished_andesite_stairs", + "id" : 429, + "data" : 4 + }, + { + "name" : "minecraft:polished_andesite_stairs", + "id" : 429, + "data" : 5 + }, + { + "name" : "minecraft:polished_andesite_stairs", + "id" : 429, + "data" : 6 + }, + { + "name" : "minecraft:polished_andesite_stairs", + "id" : 429, + "data" : 7 + }, + { + "name" : "minecraft:mossy_stone_brick_stairs", + "id" : 430, + "data" : 0 + }, + { + "name" : "minecraft:mossy_stone_brick_stairs", + "id" : 430, + "data" : 1 + }, + { + "name" : "minecraft:mossy_stone_brick_stairs", + "id" : 430, + "data" : 2 + }, + { + "name" : "minecraft:mossy_stone_brick_stairs", + "id" : 430, + "data" : 3 + }, + { + "name" : "minecraft:mossy_stone_brick_stairs", + "id" : 430, + "data" : 4 + }, + { + "name" : "minecraft:mossy_stone_brick_stairs", + "id" : 430, + "data" : 5 + }, + { + "name" : "minecraft:mossy_stone_brick_stairs", + "id" : 430, + "data" : 6 + }, + { + "name" : "minecraft:mossy_stone_brick_stairs", + "id" : 430, + "data" : 7 + }, + { + "name" : "minecraft:smooth_red_sandstone_stairs", + "id" : 431, + "data" : 0 + }, + { + "name" : "minecraft:smooth_red_sandstone_stairs", + "id" : 431, + "data" : 1 + }, + { + "name" : "minecraft:smooth_red_sandstone_stairs", + "id" : 431, + "data" : 2 + }, + { + "name" : "minecraft:smooth_red_sandstone_stairs", + "id" : 431, + "data" : 3 + }, + { + "name" : "minecraft:smooth_red_sandstone_stairs", + "id" : 431, + "data" : 4 + }, + { + "name" : "minecraft:smooth_red_sandstone_stairs", + "id" : 431, + "data" : 5 + }, + { + "name" : "minecraft:smooth_red_sandstone_stairs", + "id" : 431, + "data" : 6 + }, + { + "name" : "minecraft:smooth_red_sandstone_stairs", + "id" : 431, + "data" : 7 + }, + { + "name" : "minecraft:smooth_sandstone_stairs", + "id" : 432, + "data" : 0 + }, + { + "name" : "minecraft:smooth_sandstone_stairs", + "id" : 432, + "data" : 1 + }, + { + "name" : "minecraft:smooth_sandstone_stairs", + "id" : 432, + "data" : 2 + }, + { + "name" : "minecraft:smooth_sandstone_stairs", + "id" : 432, + "data" : 3 + }, + { + "name" : "minecraft:smooth_sandstone_stairs", + "id" : 432, + "data" : 4 + }, + { + "name" : "minecraft:smooth_sandstone_stairs", + "id" : 432, + "data" : 5 + }, + { + "name" : "minecraft:smooth_sandstone_stairs", + "id" : 432, + "data" : 6 + }, + { + "name" : "minecraft:smooth_sandstone_stairs", + "id" : 432, + "data" : 7 + }, + { + "name" : "minecraft:end_brick_stairs", + "id" : 433, + "data" : 0 + }, + { + "name" : "minecraft:end_brick_stairs", + "id" : 433, + "data" : 1 + }, + { + "name" : "minecraft:end_brick_stairs", + "id" : 433, + "data" : 2 + }, + { + "name" : "minecraft:end_brick_stairs", + "id" : 433, + "data" : 3 + }, + { + "name" : "minecraft:end_brick_stairs", + "id" : 433, + "data" : 4 + }, + { + "name" : "minecraft:end_brick_stairs", + "id" : 433, + "data" : 5 + }, + { + "name" : "minecraft:end_brick_stairs", + "id" : 433, + "data" : 6 + }, + { + "name" : "minecraft:end_brick_stairs", + "id" : 433, + "data" : 7 + }, + { + "name" : "minecraft:mossy_cobblestone_stairs", + "id" : 434, + "data" : 0 + }, + { + "name" : "minecraft:mossy_cobblestone_stairs", + "id" : 434, + "data" : 1 + }, + { + "name" : "minecraft:mossy_cobblestone_stairs", + "id" : 434, + "data" : 2 + }, + { + "name" : "minecraft:mossy_cobblestone_stairs", + "id" : 434, + "data" : 3 + }, + { + "name" : "minecraft:mossy_cobblestone_stairs", + "id" : 434, + "data" : 4 + }, + { + "name" : "minecraft:mossy_cobblestone_stairs", + "id" : 434, + "data" : 5 + }, + { + "name" : "minecraft:mossy_cobblestone_stairs", + "id" : 434, + "data" : 6 + }, + { + "name" : "minecraft:mossy_cobblestone_stairs", + "id" : 434, + "data" : 7 + }, + { + "name" : "minecraft:normal_stone_stairs", + "id" : 435, + "data" : 0 + }, + { + "name" : "minecraft:normal_stone_stairs", + "id" : 435, + "data" : 1 + }, + { + "name" : "minecraft:normal_stone_stairs", + "id" : 435, + "data" : 2 + }, + { + "name" : "minecraft:normal_stone_stairs", + "id" : 435, + "data" : 3 + }, + { + "name" : "minecraft:normal_stone_stairs", + "id" : 435, + "data" : 4 + }, + { + "name" : "minecraft:normal_stone_stairs", + "id" : 435, + "data" : 5 + }, + { + "name" : "minecraft:normal_stone_stairs", + "id" : 435, + "data" : 6 + }, + { + "name" : "minecraft:normal_stone_stairs", + "id" : 435, + "data" : 7 + }, + { + "name" : "minecraft:spruce_standing_sign", + "id" : 436, + "data" : 0 + }, + { + "name" : "minecraft:spruce_standing_sign", + "id" : 436, + "data" : 1 + }, + { + "name" : "minecraft:spruce_standing_sign", + "id" : 436, + "data" : 2 + }, + { + "name" : "minecraft:spruce_standing_sign", + "id" : 436, + "data" : 3 + }, + { + "name" : "minecraft:spruce_standing_sign", + "id" : 436, + "data" : 4 + }, + { + "name" : "minecraft:spruce_standing_sign", + "id" : 436, + "data" : 5 + }, + { + "name" : "minecraft:spruce_standing_sign", + "id" : 436, + "data" : 6 + }, + { + "name" : "minecraft:spruce_standing_sign", + "id" : 436, + "data" : 7 + }, + { + "name" : "minecraft:spruce_standing_sign", + "id" : 436, + "data" : 8 + }, + { + "name" : "minecraft:spruce_standing_sign", + "id" : 436, + "data" : 9 + }, + { + "name" : "minecraft:spruce_standing_sign", + "id" : 436, + "data" : 10 + }, + { + "name" : "minecraft:spruce_standing_sign", + "id" : 436, + "data" : 11 + }, + { + "name" : "minecraft:spruce_standing_sign", + "id" : 436, + "data" : 12 + }, + { + "name" : "minecraft:spruce_standing_sign", + "id" : 436, + "data" : 13 + }, + { + "name" : "minecraft:spruce_standing_sign", + "id" : 436, + "data" : 14 + }, + { + "name" : "minecraft:spruce_standing_sign", + "id" : 436, + "data" : 15 + }, + { + "name" : "minecraft:spruce_wall_sign", + "id" : 437, + "data" : 0 + }, + { + "name" : "minecraft:spruce_wall_sign", + "id" : 437, + "data" : 1 + }, + { + "name" : "minecraft:spruce_wall_sign", + "id" : 437, + "data" : 2 + }, + { + "name" : "minecraft:spruce_wall_sign", + "id" : 437, + "data" : 3 + }, + { + "name" : "minecraft:spruce_wall_sign", + "id" : 437, + "data" : 4 + }, + { + "name" : "minecraft:spruce_wall_sign", + "id" : 437, + "data" : 5 + }, + { + "name" : "minecraft:spruce_wall_sign", + "id" : 437, + "data" : 6 + }, + { + "name" : "minecraft:spruce_wall_sign", + "id" : 437, + "data" : 7 + }, + { + "name" : "minecraft:smooth_stone", + "id" : 438, + "data" : 0 + }, + { + "name" : "minecraft:red_nether_brick_stairs", + "id" : 439, + "data" : 0 + }, + { + "name" : "minecraft:red_nether_brick_stairs", + "id" : 439, + "data" : 1 + }, + { + "name" : "minecraft:red_nether_brick_stairs", + "id" : 439, + "data" : 2 + }, + { + "name" : "minecraft:red_nether_brick_stairs", + "id" : 439, + "data" : 3 + }, + { + "name" : "minecraft:red_nether_brick_stairs", + "id" : 439, + "data" : 4 + }, + { + "name" : "minecraft:red_nether_brick_stairs", + "id" : 439, + "data" : 5 + }, + { + "name" : "minecraft:red_nether_brick_stairs", + "id" : 439, + "data" : 6 + }, + { + "name" : "minecraft:red_nether_brick_stairs", + "id" : 439, + "data" : 7 + }, + { + "name" : "minecraft:smooth_quartz_stairs", + "id" : 440, + "data" : 0 + }, + { + "name" : "minecraft:smooth_quartz_stairs", + "id" : 440, + "data" : 1 + }, + { + "name" : "minecraft:smooth_quartz_stairs", + "id" : 440, + "data" : 2 + }, + { + "name" : "minecraft:smooth_quartz_stairs", + "id" : 440, + "data" : 3 + }, + { + "name" : "minecraft:smooth_quartz_stairs", + "id" : 440, + "data" : 4 + }, + { + "name" : "minecraft:smooth_quartz_stairs", + "id" : 440, + "data" : 5 + }, + { + "name" : "minecraft:smooth_quartz_stairs", + "id" : 440, + "data" : 6 + }, + { + "name" : "minecraft:smooth_quartz_stairs", + "id" : 440, + "data" : 7 + }, + { + "name" : "minecraft:birch_standing_sign", + "id" : 441, + "data" : 0 + }, + { + "name" : "minecraft:birch_standing_sign", + "id" : 441, + "data" : 1 + }, + { + "name" : "minecraft:birch_standing_sign", + "id" : 441, + "data" : 2 + }, + { + "name" : "minecraft:birch_standing_sign", + "id" : 441, + "data" : 3 + }, + { + "name" : "minecraft:birch_standing_sign", + "id" : 441, + "data" : 4 + }, + { + "name" : "minecraft:birch_standing_sign", + "id" : 441, + "data" : 5 + }, + { + "name" : "minecraft:birch_standing_sign", + "id" : 441, + "data" : 6 + }, + { + "name" : "minecraft:birch_standing_sign", + "id" : 441, + "data" : 7 + }, + { + "name" : "minecraft:birch_standing_sign", + "id" : 441, + "data" : 8 + }, + { + "name" : "minecraft:birch_standing_sign", + "id" : 441, + "data" : 9 + }, + { + "name" : "minecraft:birch_standing_sign", + "id" : 441, + "data" : 10 + }, + { + "name" : "minecraft:birch_standing_sign", + "id" : 441, + "data" : 11 + }, + { + "name" : "minecraft:birch_standing_sign", + "id" : 441, + "data" : 12 + }, + { + "name" : "minecraft:birch_standing_sign", + "id" : 441, + "data" : 13 + }, + { + "name" : "minecraft:birch_standing_sign", + "id" : 441, + "data" : 14 + }, + { + "name" : "minecraft:birch_standing_sign", + "id" : 441, + "data" : 15 + }, + { + "name" : "minecraft:birch_wall_sign", + "id" : 442, + "data" : 0 + }, + { + "name" : "minecraft:birch_wall_sign", + "id" : 442, + "data" : 1 + }, + { + "name" : "minecraft:birch_wall_sign", + "id" : 442, + "data" : 2 + }, + { + "name" : "minecraft:birch_wall_sign", + "id" : 442, + "data" : 3 + }, + { + "name" : "minecraft:birch_wall_sign", + "id" : 442, + "data" : 4 + }, + { + "name" : "minecraft:birch_wall_sign", + "id" : 442, + "data" : 5 + }, + { + "name" : "minecraft:birch_wall_sign", + "id" : 442, + "data" : 6 + }, + { + "name" : "minecraft:birch_wall_sign", + "id" : 442, + "data" : 7 + }, + { + "name" : "minecraft:jungle_standing_sign", + "id" : 443, + "data" : 0 + }, + { + "name" : "minecraft:jungle_standing_sign", + "id" : 443, + "data" : 1 + }, + { + "name" : "minecraft:jungle_standing_sign", + "id" : 443, + "data" : 2 + }, + { + "name" : "minecraft:jungle_standing_sign", + "id" : 443, + "data" : 3 + }, + { + "name" : "minecraft:jungle_standing_sign", + "id" : 443, + "data" : 4 + }, + { + "name" : "minecraft:jungle_standing_sign", + "id" : 443, + "data" : 5 + }, + { + "name" : "minecraft:jungle_standing_sign", + "id" : 443, + "data" : 6 + }, + { + "name" : "minecraft:jungle_standing_sign", + "id" : 443, + "data" : 7 + }, + { + "name" : "minecraft:jungle_standing_sign", + "id" : 443, + "data" : 8 + }, + { + "name" : "minecraft:jungle_standing_sign", + "id" : 443, + "data" : 9 + }, + { + "name" : "minecraft:jungle_standing_sign", + "id" : 443, + "data" : 10 + }, + { + "name" : "minecraft:jungle_standing_sign", + "id" : 443, + "data" : 11 + }, + { + "name" : "minecraft:jungle_standing_sign", + "id" : 443, + "data" : 12 + }, + { + "name" : "minecraft:jungle_standing_sign", + "id" : 443, + "data" : 13 + }, + { + "name" : "minecraft:jungle_standing_sign", + "id" : 443, + "data" : 14 + }, + { + "name" : "minecraft:jungle_standing_sign", + "id" : 443, + "data" : 15 + }, + { + "name" : "minecraft:jungle_wall_sign", + "id" : 444, + "data" : 0 + }, + { + "name" : "minecraft:jungle_wall_sign", + "id" : 444, + "data" : 1 + }, + { + "name" : "minecraft:jungle_wall_sign", + "id" : 444, + "data" : 2 + }, + { + "name" : "minecraft:jungle_wall_sign", + "id" : 444, + "data" : 3 + }, + { + "name" : "minecraft:jungle_wall_sign", + "id" : 444, + "data" : 4 + }, + { + "name" : "minecraft:jungle_wall_sign", + "id" : 444, + "data" : 5 + }, + { + "name" : "minecraft:jungle_wall_sign", + "id" : 444, + "data" : 6 + }, + { + "name" : "minecraft:jungle_wall_sign", + "id" : 444, + "data" : 7 + }, + { + "name" : "minecraft:acacia_standing_sign", + "id" : 445, + "data" : 0 + }, + { + "name" : "minecraft:acacia_standing_sign", + "id" : 445, + "data" : 1 + }, + { + "name" : "minecraft:acacia_standing_sign", + "id" : 445, + "data" : 2 + }, + { + "name" : "minecraft:acacia_standing_sign", + "id" : 445, + "data" : 3 + }, + { + "name" : "minecraft:acacia_standing_sign", + "id" : 445, + "data" : 4 + }, + { + "name" : "minecraft:acacia_standing_sign", + "id" : 445, + "data" : 5 + }, + { + "name" : "minecraft:acacia_standing_sign", + "id" : 445, + "data" : 6 + }, + { + "name" : "minecraft:acacia_standing_sign", + "id" : 445, + "data" : 7 + }, + { + "name" : "minecraft:acacia_standing_sign", + "id" : 445, + "data" : 8 + }, + { + "name" : "minecraft:acacia_standing_sign", + "id" : 445, + "data" : 9 + }, + { + "name" : "minecraft:acacia_standing_sign", + "id" : 445, + "data" : 10 + }, + { + "name" : "minecraft:acacia_standing_sign", + "id" : 445, + "data" : 11 + }, + { + "name" : "minecraft:acacia_standing_sign", + "id" : 445, + "data" : 12 + }, + { + "name" : "minecraft:acacia_standing_sign", + "id" : 445, + "data" : 13 + }, + { + "name" : "minecraft:acacia_standing_sign", + "id" : 445, + "data" : 14 + }, + { + "name" : "minecraft:acacia_standing_sign", + "id" : 445, + "data" : 15 + }, + { + "name" : "minecraft:acacia_wall_sign", + "id" : 446, + "data" : 0 + }, + { + "name" : "minecraft:acacia_wall_sign", + "id" : 446, + "data" : 1 + }, + { + "name" : "minecraft:acacia_wall_sign", + "id" : 446, + "data" : 2 + }, + { + "name" : "minecraft:acacia_wall_sign", + "id" : 446, + "data" : 3 + }, + { + "name" : "minecraft:acacia_wall_sign", + "id" : 446, + "data" : 4 + }, + { + "name" : "minecraft:acacia_wall_sign", + "id" : 446, + "data" : 5 + }, + { + "name" : "minecraft:acacia_wall_sign", + "id" : 446, + "data" : 6 + }, + { + "name" : "minecraft:acacia_wall_sign", + "id" : 446, + "data" : 7 + }, + { + "name" : "minecraft:darkoak_standing_sign", + "id" : 447, + "data" : 0 + }, + { + "name" : "minecraft:darkoak_standing_sign", + "id" : 447, + "data" : 1 + }, + { + "name" : "minecraft:darkoak_standing_sign", + "id" : 447, + "data" : 2 + }, + { + "name" : "minecraft:darkoak_standing_sign", + "id" : 447, + "data" : 3 + }, + { + "name" : "minecraft:darkoak_standing_sign", + "id" : 447, + "data" : 4 + }, + { + "name" : "minecraft:darkoak_standing_sign", + "id" : 447, + "data" : 5 + }, + { + "name" : "minecraft:darkoak_standing_sign", + "id" : 447, + "data" : 6 + }, + { + "name" : "minecraft:darkoak_standing_sign", + "id" : 447, + "data" : 7 + }, + { + "name" : "minecraft:darkoak_standing_sign", + "id" : 447, + "data" : 8 + }, + { + "name" : "minecraft:darkoak_standing_sign", + "id" : 447, + "data" : 9 + }, + { + "name" : "minecraft:darkoak_standing_sign", + "id" : 447, + "data" : 10 + }, + { + "name" : "minecraft:darkoak_standing_sign", + "id" : 447, + "data" : 11 + }, + { + "name" : "minecraft:darkoak_standing_sign", + "id" : 447, + "data" : 12 + }, + { + "name" : "minecraft:darkoak_standing_sign", + "id" : 447, + "data" : 13 + }, + { + "name" : "minecraft:darkoak_standing_sign", + "id" : 447, + "data" : 14 + }, + { + "name" : "minecraft:darkoak_standing_sign", + "id" : 447, + "data" : 15 + }, + { + "name" : "minecraft:darkoak_wall_sign", + "id" : 448, + "data" : 0 + }, + { + "name" : "minecraft:darkoak_wall_sign", + "id" : 448, + "data" : 1 + }, + { + "name" : "minecraft:darkoak_wall_sign", + "id" : 448, + "data" : 2 + }, + { + "name" : "minecraft:darkoak_wall_sign", + "id" : 448, + "data" : 3 + }, + { + "name" : "minecraft:darkoak_wall_sign", + "id" : 448, + "data" : 4 + }, + { + "name" : "minecraft:darkoak_wall_sign", + "id" : 448, + "data" : 5 + }, + { + "name" : "minecraft:darkoak_wall_sign", + "id" : 448, + "data" : 6 + }, + { + "name" : "minecraft:darkoak_wall_sign", + "id" : 448, + "data" : 7 + }, + { + "name" : "minecraft:lectern", + "id" : 449, + "data" : 0 + }, + { + "name" : "minecraft:lectern", + "id" : 449, + "data" : 1 + }, + { + "name" : "minecraft:lectern", + "id" : 449, + "data" : 2 + }, + { + "name" : "minecraft:lectern", + "id" : 449, + "data" : 3 + }, + { + "name" : "minecraft:lectern", + "id" : 449, + "data" : 4 + }, + { + "name" : "minecraft:lectern", + "id" : 449, + "data" : 5 + }, + { + "name" : "minecraft:lectern", + "id" : 449, + "data" : 6 + }, + { + "name" : "minecraft:lectern", + "id" : 449, + "data" : 7 + }, + { + "name" : "minecraft:grindstone", + "id" : 450, + "data" : 0 + }, + { + "name" : "minecraft:grindstone", + "id" : 450, + "data" : 1 + }, + { + "name" : "minecraft:grindstone", + "id" : 450, + "data" : 2 + }, + { + "name" : "minecraft:grindstone", + "id" : 450, + "data" : 3 + }, + { + "name" : "minecraft:grindstone", + "id" : 450, + "data" : 4 + }, + { + "name" : "minecraft:grindstone", + "id" : 450, + "data" : 5 + }, + { + "name" : "minecraft:grindstone", + "id" : 450, + "data" : 6 + }, + { + "name" : "minecraft:grindstone", + "id" : 450, + "data" : 7 + }, + { + "name" : "minecraft:grindstone", + "id" : 450, + "data" : 8 + }, + { + "name" : "minecraft:grindstone", + "id" : 450, + "data" : 9 + }, + { + "name" : "minecraft:grindstone", + "id" : 450, + "data" : 10 + }, + { + "name" : "minecraft:grindstone", + "id" : 450, + "data" : 11 + }, + { + "name" : "minecraft:grindstone", + "id" : 450, + "data" : 12 + }, + { + "name" : "minecraft:grindstone", + "id" : 450, + "data" : 13 + }, + { + "name" : "minecraft:grindstone", + "id" : 450, + "data" : 14 + }, + { + "name" : "minecraft:grindstone", + "id" : 450, + "data" : 15 + }, + { + "name" : "minecraft:blast_furnace", + "id" : 451, + "data" : 0 + }, + { + "name" : "minecraft:blast_furnace", + "id" : 451, + "data" : 1 + }, + { + "name" : "minecraft:blast_furnace", + "id" : 451, + "data" : 2 + }, + { + "name" : "minecraft:blast_furnace", + "id" : 451, + "data" : 3 + }, + { + "name" : "minecraft:blast_furnace", + "id" : 451, + "data" : 4 + }, + { + "name" : "minecraft:blast_furnace", + "id" : 451, + "data" : 5 + }, + { + "name" : "minecraft:blast_furnace", + "id" : 451, + "data" : 6 + }, + { + "name" : "minecraft:blast_furnace", + "id" : 451, + "data" : 7 + }, + { + "name" : "minecraft:stonecutter_block", + "id" : 452, + "data" : 0 + }, + { + "name" : "minecraft:stonecutter_block", + "id" : 452, + "data" : 1 + }, + { + "name" : "minecraft:stonecutter_block", + "id" : 452, + "data" : 2 + }, + { + "name" : "minecraft:stonecutter_block", + "id" : 452, + "data" : 3 + }, + { + "name" : "minecraft:stonecutter_block", + "id" : 452, + "data" : 4 + }, + { + "name" : "minecraft:stonecutter_block", + "id" : 452, + "data" : 5 + }, + { + "name" : "minecraft:stonecutter_block", + "id" : 452, + "data" : 6 + }, + { + "name" : "minecraft:stonecutter_block", + "id" : 452, + "data" : 7 + }, + { + "name" : "minecraft:smoker", + "id" : 453, + "data" : 0 + }, + { + "name" : "minecraft:smoker", + "id" : 453, + "data" : 1 + }, + { + "name" : "minecraft:smoker", + "id" : 453, + "data" : 2 + }, + { + "name" : "minecraft:smoker", + "id" : 453, + "data" : 3 + }, + { + "name" : "minecraft:smoker", + "id" : 453, + "data" : 4 + }, + { + "name" : "minecraft:smoker", + "id" : 453, + "data" : 5 + }, + { + "name" : "minecraft:smoker", + "id" : 453, + "data" : 6 + }, + { + "name" : "minecraft:smoker", + "id" : 453, + "data" : 7 + }, + { + "name" : "minecraft:lit_smoker", + "id" : 454, + "data" : 0 + }, + { + "name" : "minecraft:lit_smoker", + "id" : 454, + "data" : 1 + }, + { + "name" : "minecraft:lit_smoker", + "id" : 454, + "data" : 2 + }, + { + "name" : "minecraft:lit_smoker", + "id" : 454, + "data" : 3 + }, + { + "name" : "minecraft:lit_smoker", + "id" : 454, + "data" : 4 + }, + { + "name" : "minecraft:lit_smoker", + "id" : 454, + "data" : 5 + }, + { + "name" : "minecraft:lit_smoker", + "id" : 454, + "data" : 6 + }, + { + "name" : "minecraft:lit_smoker", + "id" : 454, + "data" : 7 + }, + { + "name" : "minecraft:cartography_table", + "id" : 455, + "data" : 0 + }, + { + "name" : "minecraft:fletching_table", + "id" : 456, + "data" : 0 + }, + { + "name" : "minecraft:smithing_table", + "id" : 457, + "data" : 0 + }, + { + "name" : "minecraft:barrel", + "id" : 458, + "data" : 0 + }, + { + "name" : "minecraft:barrel", + "id" : 458, + "data" : 1 + }, + { + "name" : "minecraft:barrel", + "id" : 458, + "data" : 2 + }, + { + "name" : "minecraft:barrel", + "id" : 458, + "data" : 3 + }, + { + "name" : "minecraft:barrel", + "id" : 458, + "data" : 4 + }, + { + "name" : "minecraft:barrel", + "id" : 458, + "data" : 5 + }, + { + "name" : "minecraft:barrel", + "id" : 458, + "data" : 6 + }, + { + "name" : "minecraft:barrel", + "id" : 458, + "data" : 7 + }, + { + "name" : "minecraft:barrel", + "id" : 458, + "data" : 8 + }, + { + "name" : "minecraft:barrel", + "id" : 458, + "data" : 9 + }, + { + "name" : "minecraft:barrel", + "id" : 458, + "data" : 10 + }, + { + "name" : "minecraft:barrel", + "id" : 458, + "data" : 11 + }, + { + "name" : "minecraft:barrel", + "id" : 458, + "data" : 12 + }, + { + "name" : "minecraft:barrel", + "id" : 458, + "data" : 13 + }, + { + "name" : "minecraft:barrel", + "id" : 458, + "data" : 14 + }, + { + "name" : "minecraft:barrel", + "id" : 458, + "data" : 15 + }, + { + "name" : "minecraft:loom", + "id" : 459, + "data" : 0 + }, + { + "name" : "minecraft:loom", + "id" : 459, + "data" : 1 + }, + { + "name" : "minecraft:loom", + "id" : 459, + "data" : 2 + }, + { + "name" : "minecraft:loom", + "id" : 459, + "data" : 3 + }, + { + "name" : "minecraft:bell", + "id" : 461, + "data" : 0 + }, + { + "name" : "minecraft:bell", + "id" : 461, + "data" : 1 + }, + { + "name" : "minecraft:bell", + "id" : 461, + "data" : 2 + }, + { + "name" : "minecraft:bell", + "id" : 461, + "data" : 3 + }, + { + "name" : "minecraft:bell", + "id" : 461, + "data" : 4 + }, + { + "name" : "minecraft:bell", + "id" : 461, + "data" : 5 + }, + { + "name" : "minecraft:bell", + "id" : 461, + "data" : 6 + }, + { + "name" : "minecraft:bell", + "id" : 461, + "data" : 7 + }, + { + "name" : "minecraft:bell", + "id" : 461, + "data" : 8 + }, + { + "name" : "minecraft:bell", + "id" : 461, + "data" : 9 + }, + { + "name" : "minecraft:bell", + "id" : 461, + "data" : 10 + }, + { + "name" : "minecraft:bell", + "id" : 461, + "data" : 11 + }, + { + "name" : "minecraft:bell", + "id" : 461, + "data" : 12 + }, + { + "name" : "minecraft:bell", + "id" : 461, + "data" : 13 + }, + { + "name" : "minecraft:bell", + "id" : 461, + "data" : 14 + }, + { + "name" : "minecraft:bell", + "id" : 461, + "data" : 15 + }, + { + "name" : "minecraft:sweet_berry_bush", + "id" : 462, + "data" : 0 + }, + { + "name" : "minecraft:sweet_berry_bush", + "id" : 462, + "data" : 1 + }, + { + "name" : "minecraft:sweet_berry_bush", + "id" : 462, + "data" : 2 + }, + { + "name" : "minecraft:sweet_berry_bush", + "id" : 462, + "data" : 3 + }, + { + "name" : "minecraft:sweet_berry_bush", + "id" : 462, + "data" : 4 + }, + { + "name" : "minecraft:sweet_berry_bush", + "id" : 462, + "data" : 5 + }, + { + "name" : "minecraft:sweet_berry_bush", + "id" : 462, + "data" : 6 + }, + { + "name" : "minecraft:sweet_berry_bush", + "id" : 462, + "data" : 7 + }, + { + "name" : "minecraft:lantern", + "id" : 463, + "data" : 0 + }, + { + "name" : "minecraft:lantern", + "id" : 463, + "data" : 1 + }, + { + "name" : "minecraft:campfire", + "id" : 464, + "data" : 0 + }, + { + "name" : "minecraft:campfire", + "id" : 464, + "data" : 1 + }, + { + "name" : "minecraft:campfire", + "id" : 464, + "data" : 2 + }, + { + "name" : "minecraft:campfire", + "id" : 464, + "data" : 3 + }, + { + "name" : "minecraft:campfire", + "id" : 464, + "data" : 4 + }, + { + "name" : "minecraft:campfire", + "id" : 464, + "data" : 5 + }, + { + "name" : "minecraft:campfire", + "id" : 464, + "data" : 6 + }, + { + "name" : "minecraft:campfire", + "id" : 464, + "data" : 7 + }, + { + "name" : "minecraft:lava_cauldron", + "id" : 465, + "data" : 0 + }, + { + "name" : "minecraft:lava_cauldron", + "id" : 465, + "data" : 1 + }, + { + "name" : "minecraft:lava_cauldron", + "id" : 465, + "data" : 2 + }, + { + "name" : "minecraft:lava_cauldron", + "id" : 465, + "data" : 3 + }, + { + "name" : "minecraft:lava_cauldron", + "id" : 465, + "data" : 4 + }, + { + "name" : "minecraft:lava_cauldron", + "id" : 465, + "data" : 5 + }, + { + "name" : "minecraft:lava_cauldron", + "id" : 465, + "data" : 6 + }, + { + "name" : "minecraft:lava_cauldron", + "id" : 465, + "data" : 7 + }, + { + "name" : "minecraft:lava_cauldron", + "id" : 465, + "data" : 8 + }, + { + "name" : "minecraft:lava_cauldron", + "id" : 465, + "data" : 9 + }, + { + "name" : "minecraft:lava_cauldron", + "id" : 465, + "data" : 10 + }, + { + "name" : "minecraft:lava_cauldron", + "id" : 465, + "data" : 11 + }, + { + "name" : "minecraft:lava_cauldron", + "id" : 465, + "data" : 12 + }, + { + "name" : "minecraft:lava_cauldron", + "id" : 465, + "data" : 13 + }, + { + "name" : "minecraft:lava_cauldron", + "id" : 465, + "data" : 14 + }, + { + "name" : "minecraft:lava_cauldron", + "id" : 465, + "data" : 15 + }, + { + "name" : "minecraft:jigsaw", + "id" : 466, + "data" : 0 + }, + { + "name" : "minecraft:jigsaw", + "id" : 466, + "data" : 1 + }, + { + "name" : "minecraft:jigsaw", + "id" : 466, + "data" : 2 + }, + { + "name" : "minecraft:jigsaw", + "id" : 466, + "data" : 3 + }, + { + "name" : "minecraft:jigsaw", + "id" : 466, + "data" : 4 + }, + { + "name" : "minecraft:jigsaw", + "id" : 466, + "data" : 5 + }, + { + "name" : "minecraft:jigsaw", + "id" : 466, + "data" : 6 + }, + { + "name" : "minecraft:jigsaw", + "id" : 466, + "data" : 7 + }, + { + "name" : "minecraft:wood", + "id" : 467, + "data" : 0 + }, + { + "name" : "minecraft:wood", + "id" : 467, + "data" : 1 + }, + { + "name" : "minecraft:wood", + "id" : 467, + "data" : 2 + }, + { + "name" : "minecraft:wood", + "id" : 467, + "data" : 3 + }, + { + "name" : "minecraft:wood", + "id" : 467, + "data" : 4 + }, + { + "name" : "minecraft:wood", + "id" : 467, + "data" : 5 + }, + { + "name" : "minecraft:wood", + "id" : 467, + "data" : 6 + }, + { + "name" : "minecraft:wood", + "id" : 467, + "data" : 7 + }, + { + "name" : "minecraft:wood", + "id" : 467, + "data" : 8 + }, + { + "name" : "minecraft:wood", + "id" : 467, + "data" : 9 + }, + { + "name" : "minecraft:wood", + "id" : 467, + "data" : 10 + }, + { + "name" : "minecraft:wood", + "id" : 467, + "data" : 11 + }, + { + "name" : "minecraft:wood", + "id" : 467, + "data" : 12 + }, + { + "name" : "minecraft:wood", + "id" : 467, + "data" : 13 + }, + { + "name" : "minecraft:wood", + "id" : 467, + "data" : 14 + }, + { + "name" : "minecraft:wood", + "id" : 467, + "data" : 15 + }, + { + "name" : "minecraft:composter", + "id" : 468, + "data" : 0 + }, + { + "name" : "minecraft:composter", + "id" : 468, + "data" : 1 + }, + { + "name" : "minecraft:composter", + "id" : 468, + "data" : 2 + }, + { + "name" : "minecraft:composter", + "id" : 468, + "data" : 3 + }, + { + "name" : "minecraft:composter", + "id" : 468, + "data" : 4 + }, + { + "name" : "minecraft:composter", + "id" : 468, + "data" : 5 + }, + { + "name" : "minecraft:composter", + "id" : 468, + "data" : 6 + }, + { + "name" : "minecraft:composter", + "id" : 468, + "data" : 7 + }, + { + "name" : "minecraft:composter", + "id" : 468, + "data" : 8 + }, + { + "name" : "minecraft:composter", + "id" : 468, + "data" : 9 + }, + { + "name" : "minecraft:composter", + "id" : 468, + "data" : 10 + }, + { + "name" : "minecraft:composter", + "id" : 468, + "data" : 11 + }, + { + "name" : "minecraft:composter", + "id" : 468, + "data" : 12 + }, + { + "name" : "minecraft:composter", + "id" : 468, + "data" : 13 + }, + { + "name" : "minecraft:composter", + "id" : 468, + "data" : 14 + }, + { + "name" : "minecraft:composter", + "id" : 468, + "data" : 15 + }, + { + "name" : "minecraft:lit_blast_furnace", + "id" : 469, + "data" : 0 + }, + { + "name" : "minecraft:lit_blast_furnace", + "id" : 469, + "data" : 1 + }, + { + "name" : "minecraft:lit_blast_furnace", + "id" : 469, + "data" : 2 + }, + { + "name" : "minecraft:lit_blast_furnace", + "id" : 469, + "data" : 3 + }, + { + "name" : "minecraft:lit_blast_furnace", + "id" : 469, + "data" : 4 + }, + { + "name" : "minecraft:lit_blast_furnace", + "id" : 469, + "data" : 5 + }, + { + "name" : "minecraft:lit_blast_furnace", + "id" : 469, + "data" : 6 + }, + { + "name" : "minecraft:lit_blast_furnace", + "id" : 469, + "data" : 7 + } +]
\ No newline at end of file |
