From 44f8f5e66d536980ba84153830de034ea3fd7a7d Mon Sep 17 00:00:00 2001 From: creeper123123321 Date: Wed, 24 Apr 2019 18:37:29 -0300 Subject: [PATCH 01/26] Fix husks --- .../protocol1_14to1_13_2/data/EntityTypeRewriter.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_14to1_13_2/data/EntityTypeRewriter.java b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_14to1_13_2/data/EntityTypeRewriter.java index 67ac390dd..b9f381164 100644 --- a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_14to1_13_2/data/EntityTypeRewriter.java +++ b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_14to1_13_2/data/EntityTypeRewriter.java @@ -7,7 +7,6 @@ import java.util.Map; public class EntityTypeRewriter { private static Map entityTypes = new HashMap<>(); - private static Map objectTypes = new HashMap<>(); static { regEnt(6, 7); // cave_spider @@ -33,7 +32,8 @@ public class EntityTypeRewriter { regEnt(26, 28); // ghast regEnt(27, 29); // giant regEnt(28, 30); // guardian - regEnt(29, 31); // husk + regEnt(29, 31); // horse + regEnt(30, 32); // husk regEnt(31, 33); // illusioner regEnt(32, 34); // item regEnt(33, 35); // item_frame From 1f86c6ab21cf88c6336b406c11ae32b64890d315 Mon Sep 17 00:00:00 2001 From: KennyTV <28825609+KennyTV@users.noreply.github.com> Date: Thu, 25 Apr 2019 11:50:55 +0200 Subject: [PATCH 02/26] Slightly reduce map lookups --- .../blockconnections/ConnectionData.java | 32 +++++++++++-------- .../packets/WorldPackets.java | 11 +++---- .../packets/InventoryPackets.java | 20 +++++++----- 3 files changed, 35 insertions(+), 28 deletions(-) diff --git a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13to1_12_2/blockconnections/ConnectionData.java b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13to1_12_2/blockconnections/ConnectionData.java index 62308142e..48b8627c7 100644 --- a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13to1_12_2/blockconnections/ConnectionData.java +++ b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13to1_12_2/blockconnections/ConnectionData.java @@ -28,16 +28,18 @@ public class ConnectionData { static Set occludingStates = new HashSet<>(); public static void update(UserConnection user, Position position) { + BlockConnectionProvider connectionProvider = Via.getManager().getProviders().get(BlockConnectionProvider.class); for (BlockFace face : BlockFace.values()) { Position pos = new Position( position.getX() + face.getModX(), position.getY() + face.getModY(), position.getZ() + face.getModZ() ); - int blockState = Via.getManager().getProviders().get(BlockConnectionProvider.class).getBlockdata(user, pos); - if (!connects(blockState)) continue; - int newBlockState = connect(user, pos, blockState); + int blockState = connectionProvider.getBlockdata(user, pos); + ConnectionHandler handler = connectionHandlerMap.get(blockState); + if (handler == null) continue; + int newBlockState = handler.connect(user, position, blockState); PacketWrapper blockUpdatePacket = new PacketWrapper(0x0B, null, user); blockUpdatePacket.write(Type.POSITION, pos); blockUpdatePacket.write(Type.VAR_INT, newBlockState); @@ -54,7 +56,7 @@ public class ConnectionData { for (int chunkDeltaZ = -1; chunkDeltaZ <= 1; chunkDeltaZ++) { if (Math.abs(chunkDeltaX) + Math.abs(chunkDeltaZ) == 0) continue; - ArrayList updates = new ArrayList<>(); + List updates = new ArrayList<>(); if (Math.abs(chunkDeltaX) + Math.abs(chunkDeltaZ) == 2) { // Corner for (int blockY = chunkSectionY * 16; blockY < chunkSectionY * 16 + 16; blockY++) { @@ -127,9 +129,10 @@ public class ConnectionData { public static void updateBlock(UserConnection user, Position pos, List records) { int blockState = Via.getManager().getProviders().get(BlockConnectionProvider.class).getBlockdata(user, pos); - if (!connects(blockState)) return; - int newBlockState = connect(user, pos, blockState); + ConnectionHandler handler = getConnectionHandler(blockState); + if (handler == null) return; + int newBlockState = handler.connect(user, pos, blockState); records.add(new BlockChangeRecord((short) (((pos.getX() & 0xF) << 4) | (pos.getZ() & 0xF)), pos.getY().shortValue(), newBlockState)); } @@ -181,8 +184,9 @@ public class ConnectionData { for (int x = 0; x < 16; x++) { int block = section.getFlatBlock(x, y, z); - if (ConnectionData.connects(block)) { - block = ConnectionData.connect(user, new Position(xOff + x, yOff + y, zOff + z), block); + ConnectionHandler handler = ConnectionData.getConnectionHandler(block); + if (handler != null) { + block = handler.connect(user, new Position(xOff + x, yOff + y, zOff + z), block); section.setFlatBlock(x, y, z, block); } } @@ -270,12 +274,12 @@ public class ConnectionData { } public static int connect(UserConnection user, Position position, int blockState) { - if (connectionHandlerMap.containsKey(blockState)) { - ConnectionHandler handler = connectionHandlerMap.get(blockState); - return handler.connect(user, position, blockState); - } else { - return blockState; - } + ConnectionHandler handler = connectionHandlerMap.get(blockState); + return handler != null ? handler.connect(user, position, blockState) : blockState; + } + + public static ConnectionHandler getConnectionHandler(int blockstate) { + return connectionHandlerMap.get(blockstate); } public static int getId(String key) { diff --git a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13to1_12_2/packets/WorldPackets.java b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13to1_12_2/packets/WorldPackets.java index fdd0089fb..e5bf57e49 100644 --- a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13to1_12_2/packets/WorldPackets.java +++ b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13to1_12_2/packets/WorldPackets.java @@ -16,6 +16,7 @@ import us.myles.ViaVersion.api.type.Type; import us.myles.ViaVersion.packets.State; import us.myles.ViaVersion.protocols.protocol1_13to1_12_2.Protocol1_13To1_12_2; import us.myles.ViaVersion.protocols.protocol1_13to1_12_2.blockconnections.ConnectionData; +import us.myles.ViaVersion.protocols.protocol1_13to1_12_2.blockconnections.ConnectionHandler; import us.myles.ViaVersion.protocols.protocol1_13to1_12_2.data.MappingData; import us.myles.ViaVersion.protocols.protocol1_13to1_12_2.data.NamedSoundRewriter; import us.myles.ViaVersion.protocols.protocol1_13to1_12_2.data.Particle; @@ -177,10 +178,7 @@ public class WorldPackets { if (Via.getConfig().isServersideBlockConnections()) { ConnectionData.updateBlockStorage(userConnection, position, newId); - - if (ConnectionData.connects(newId)) { - newId = ConnectionData.connect(userConnection, position, newId); - } + newId = ConnectionData.connect(userConnection, position, newId); } wrapper.set(Type.VAR_INT, 0, checkStorage(wrapper.user(), position, newId)); if (Via.getConfig().isServersideBlockConnections()) { @@ -232,8 +230,9 @@ public class WorldPackets { (long) record.getY(), (long) (record.getHorizontal() & 15) + (chunkZ * 16)); - if (ConnectionData.connects(blockState)) { - blockState = ConnectionData.connect(userConnection, position, blockState); + ConnectionHandler handler = ConnectionData.getConnectionHandler(blockState); + if (handler != null) { + blockState = handler.connect(userConnection, position, blockState); record.setBlockId(blockState); } } diff --git a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_14to1_13_2/packets/InventoryPackets.java b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_14to1_13_2/packets/InventoryPackets.java index b98bf4662..e200c8e6f 100644 --- a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_14to1_13_2/packets/InventoryPackets.java +++ b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_14to1_13_2/packets/InventoryPackets.java @@ -331,10 +331,12 @@ public class InventoryPackets { CompoundTag tag; if ((tag = item.getTag()) != null) { // Display Lore now uses JSON - if (tag.get("display") instanceof CompoundTag) { - CompoundTag display = tag.get("display"); - if (display.get("Lore") instanceof ListTag) { - ListTag lore = display.get("Lore"); + Tag displayTag = tag.get("display"); + if (displayTag instanceof CompoundTag) { + CompoundTag display = (CompoundTag) displayTag; + Tag loreTag = display.get("Lore"); + if (loreTag instanceof ListTag) { + ListTag lore = (ListTag) loreTag; display.put(ConverterRegistry.convertToTag(NBT_TAG_NAME + "|Lore", ConverterRegistry.convertToValue(lore))); for (Tag loreEntry : lore) { if (loreEntry instanceof StringTag) { @@ -366,10 +368,12 @@ public class InventoryPackets { CompoundTag tag; if ((tag = item.getTag()) != null) { // Display Name now uses JSON - if (tag.get("display") instanceof CompoundTag) { - CompoundTag display = tag.get("display"); - if (((CompoundTag) tag.get("display")).get("Lore") instanceof ListTag) { - ListTag lore = display.get("Lore"); + Tag displayTag = tag.get("display"); + if (displayTag instanceof CompoundTag) { + CompoundTag display = (CompoundTag) displayTag; + Tag loreTag = display.get("Lore"); + if (loreTag instanceof ListTag) { + ListTag lore = (ListTag) loreTag; ListTag via = display.get(NBT_TAG_NAME + "|Lore"); if (via != null) { display.put(ConverterRegistry.convertToTag("Lore", ConverterRegistry.convertToValue(via))); From ac1943758d91eca2203fe093f17532f9a1cdd4c8 Mon Sep 17 00:00:00 2001 From: KennyTV <28825609+KennyTV@users.noreply.github.com> Date: Thu, 25 Apr 2019 12:11:14 +0200 Subject: [PATCH 03/26] Remove unnecessary heightmap entries --- .../viaversion/data/heightMapData-1.14.json | 2646 +---------------- 1 file changed, 1 insertion(+), 2645 deletions(-) diff --git a/common/src/main/resources/assets/viaversion/data/heightMapData-1.14.json b/common/src/main/resources/assets/viaversion/data/heightMapData-1.14.json index e908b69e6..ba39643e9 100644 --- a/common/src/main/resources/assets/viaversion/data/heightMapData-1.14.json +++ b/common/src/main/resources/assets/viaversion/data/heightMapData-1.14.json @@ -735,306 +735,6 @@ "minecraft:note_block[instrument=xylophone,note=23,powered=false]", "minecraft:note_block[instrument=xylophone,note=24,powered=true]", "minecraft:note_block[instrument=xylophone,note=24,powered=false]", - "minecraft:note_block[instrument=iron_xylophone,note=0,powered=true]", - "minecraft:note_block[instrument=iron_xylophone,note=0,powered=false]", - "minecraft:note_block[instrument=iron_xylophone,note=1,powered=true]", - "minecraft:note_block[instrument=iron_xylophone,note=1,powered=false]", - "minecraft:note_block[instrument=iron_xylophone,note=2,powered=true]", - "minecraft:note_block[instrument=iron_xylophone,note=2,powered=false]", - "minecraft:note_block[instrument=iron_xylophone,note=3,powered=true]", - "minecraft:note_block[instrument=iron_xylophone,note=3,powered=false]", - "minecraft:note_block[instrument=iron_xylophone,note=4,powered=true]", - "minecraft:note_block[instrument=iron_xylophone,note=4,powered=false]", - "minecraft:note_block[instrument=iron_xylophone,note=5,powered=true]", - "minecraft:note_block[instrument=iron_xylophone,note=5,powered=false]", - "minecraft:note_block[instrument=iron_xylophone,note=6,powered=true]", - "minecraft:note_block[instrument=iron_xylophone,note=6,powered=false]", - "minecraft:note_block[instrument=iron_xylophone,note=7,powered=true]", - "minecraft:note_block[instrument=iron_xylophone,note=7,powered=false]", - "minecraft:note_block[instrument=iron_xylophone,note=8,powered=true]", - "minecraft:note_block[instrument=iron_xylophone,note=8,powered=false]", - "minecraft:note_block[instrument=iron_xylophone,note=9,powered=true]", - "minecraft:note_block[instrument=iron_xylophone,note=9,powered=false]", - "minecraft:note_block[instrument=iron_xylophone,note=10,powered=true]", - "minecraft:note_block[instrument=iron_xylophone,note=10,powered=false]", - "minecraft:note_block[instrument=iron_xylophone,note=11,powered=true]", - "minecraft:note_block[instrument=iron_xylophone,note=11,powered=false]", - "minecraft:note_block[instrument=iron_xylophone,note=12,powered=true]", - "minecraft:note_block[instrument=iron_xylophone,note=12,powered=false]", - "minecraft:note_block[instrument=iron_xylophone,note=13,powered=true]", - "minecraft:note_block[instrument=iron_xylophone,note=13,powered=false]", - "minecraft:note_block[instrument=iron_xylophone,note=14,powered=true]", - "minecraft:note_block[instrument=iron_xylophone,note=14,powered=false]", - "minecraft:note_block[instrument=iron_xylophone,note=15,powered=true]", - "minecraft:note_block[instrument=iron_xylophone,note=15,powered=false]", - "minecraft:note_block[instrument=iron_xylophone,note=16,powered=true]", - "minecraft:note_block[instrument=iron_xylophone,note=16,powered=false]", - "minecraft:note_block[instrument=iron_xylophone,note=17,powered=true]", - "minecraft:note_block[instrument=iron_xylophone,note=17,powered=false]", - "minecraft:note_block[instrument=iron_xylophone,note=18,powered=true]", - "minecraft:note_block[instrument=iron_xylophone,note=18,powered=false]", - "minecraft:note_block[instrument=iron_xylophone,note=19,powered=true]", - "minecraft:note_block[instrument=iron_xylophone,note=19,powered=false]", - "minecraft:note_block[instrument=iron_xylophone,note=20,powered=true]", - "minecraft:note_block[instrument=iron_xylophone,note=20,powered=false]", - "minecraft:note_block[instrument=iron_xylophone,note=21,powered=true]", - "minecraft:note_block[instrument=iron_xylophone,note=21,powered=false]", - "minecraft:note_block[instrument=iron_xylophone,note=22,powered=true]", - "minecraft:note_block[instrument=iron_xylophone,note=22,powered=false]", - "minecraft:note_block[instrument=iron_xylophone,note=23,powered=true]", - "minecraft:note_block[instrument=iron_xylophone,note=23,powered=false]", - "minecraft:note_block[instrument=iron_xylophone,note=24,powered=true]", - "minecraft:note_block[instrument=iron_xylophone,note=24,powered=false]", - "minecraft:note_block[instrument=cow_bell,note=0,powered=true]", - "minecraft:note_block[instrument=cow_bell,note=0,powered=false]", - "minecraft:note_block[instrument=cow_bell,note=1,powered=true]", - "minecraft:note_block[instrument=cow_bell,note=1,powered=false]", - "minecraft:note_block[instrument=cow_bell,note=2,powered=true]", - "minecraft:note_block[instrument=cow_bell,note=2,powered=false]", - "minecraft:note_block[instrument=cow_bell,note=3,powered=true]", - "minecraft:note_block[instrument=cow_bell,note=3,powered=false]", - "minecraft:note_block[instrument=cow_bell,note=4,powered=true]", - "minecraft:note_block[instrument=cow_bell,note=4,powered=false]", - "minecraft:note_block[instrument=cow_bell,note=5,powered=true]", - "minecraft:note_block[instrument=cow_bell,note=5,powered=false]", - "minecraft:note_block[instrument=cow_bell,note=6,powered=true]", - "minecraft:note_block[instrument=cow_bell,note=6,powered=false]", - "minecraft:note_block[instrument=cow_bell,note=7,powered=true]", - "minecraft:note_block[instrument=cow_bell,note=7,powered=false]", - "minecraft:note_block[instrument=cow_bell,note=8,powered=true]", - "minecraft:note_block[instrument=cow_bell,note=8,powered=false]", - "minecraft:note_block[instrument=cow_bell,note=9,powered=true]", - "minecraft:note_block[instrument=cow_bell,note=9,powered=false]", - "minecraft:note_block[instrument=cow_bell,note=10,powered=true]", - "minecraft:note_block[instrument=cow_bell,note=10,powered=false]", - "minecraft:note_block[instrument=cow_bell,note=11,powered=true]", - "minecraft:note_block[instrument=cow_bell,note=11,powered=false]", - "minecraft:note_block[instrument=cow_bell,note=12,powered=true]", - "minecraft:note_block[instrument=cow_bell,note=12,powered=false]", - "minecraft:note_block[instrument=cow_bell,note=13,powered=true]", - "minecraft:note_block[instrument=cow_bell,note=13,powered=false]", - "minecraft:note_block[instrument=cow_bell,note=14,powered=true]", - "minecraft:note_block[instrument=cow_bell,note=14,powered=false]", - "minecraft:note_block[instrument=cow_bell,note=15,powered=true]", - "minecraft:note_block[instrument=cow_bell,note=15,powered=false]", - "minecraft:note_block[instrument=cow_bell,note=16,powered=true]", - "minecraft:note_block[instrument=cow_bell,note=16,powered=false]", - "minecraft:note_block[instrument=cow_bell,note=17,powered=true]", - "minecraft:note_block[instrument=cow_bell,note=17,powered=false]", - "minecraft:note_block[instrument=cow_bell,note=18,powered=true]", - "minecraft:note_block[instrument=cow_bell,note=18,powered=false]", - "minecraft:note_block[instrument=cow_bell,note=19,powered=true]", - "minecraft:note_block[instrument=cow_bell,note=19,powered=false]", - "minecraft:note_block[instrument=cow_bell,note=20,powered=true]", - "minecraft:note_block[instrument=cow_bell,note=20,powered=false]", - "minecraft:note_block[instrument=cow_bell,note=21,powered=true]", - "minecraft:note_block[instrument=cow_bell,note=21,powered=false]", - "minecraft:note_block[instrument=cow_bell,note=22,powered=true]", - "minecraft:note_block[instrument=cow_bell,note=22,powered=false]", - "minecraft:note_block[instrument=cow_bell,note=23,powered=true]", - "minecraft:note_block[instrument=cow_bell,note=23,powered=false]", - "minecraft:note_block[instrument=cow_bell,note=24,powered=true]", - "minecraft:note_block[instrument=cow_bell,note=24,powered=false]", - "minecraft:note_block[instrument=didgeridoo,note=0,powered=true]", - "minecraft:note_block[instrument=didgeridoo,note=0,powered=false]", - "minecraft:note_block[instrument=didgeridoo,note=1,powered=true]", - "minecraft:note_block[instrument=didgeridoo,note=1,powered=false]", - "minecraft:note_block[instrument=didgeridoo,note=2,powered=true]", - "minecraft:note_block[instrument=didgeridoo,note=2,powered=false]", - "minecraft:note_block[instrument=didgeridoo,note=3,powered=true]", - "minecraft:note_block[instrument=didgeridoo,note=3,powered=false]", - "minecraft:note_block[instrument=didgeridoo,note=4,powered=true]", - "minecraft:note_block[instrument=didgeridoo,note=4,powered=false]", - "minecraft:note_block[instrument=didgeridoo,note=5,powered=true]", - "minecraft:note_block[instrument=didgeridoo,note=5,powered=false]", - "minecraft:note_block[instrument=didgeridoo,note=6,powered=true]", - "minecraft:note_block[instrument=didgeridoo,note=6,powered=false]", - "minecraft:note_block[instrument=didgeridoo,note=7,powered=true]", - "minecraft:note_block[instrument=didgeridoo,note=7,powered=false]", - "minecraft:note_block[instrument=didgeridoo,note=8,powered=true]", - "minecraft:note_block[instrument=didgeridoo,note=8,powered=false]", - "minecraft:note_block[instrument=didgeridoo,note=9,powered=true]", - "minecraft:note_block[instrument=didgeridoo,note=9,powered=false]", - "minecraft:note_block[instrument=didgeridoo,note=10,powered=true]", - "minecraft:note_block[instrument=didgeridoo,note=10,powered=false]", - "minecraft:note_block[instrument=didgeridoo,note=11,powered=true]", - "minecraft:note_block[instrument=didgeridoo,note=11,powered=false]", - "minecraft:note_block[instrument=didgeridoo,note=12,powered=true]", - "minecraft:note_block[instrument=didgeridoo,note=12,powered=false]", - "minecraft:note_block[instrument=didgeridoo,note=13,powered=true]", - "minecraft:note_block[instrument=didgeridoo,note=13,powered=false]", - "minecraft:note_block[instrument=didgeridoo,note=14,powered=true]", - "minecraft:note_block[instrument=didgeridoo,note=14,powered=false]", - "minecraft:note_block[instrument=didgeridoo,note=15,powered=true]", - "minecraft:note_block[instrument=didgeridoo,note=15,powered=false]", - "minecraft:note_block[instrument=didgeridoo,note=16,powered=true]", - "minecraft:note_block[instrument=didgeridoo,note=16,powered=false]", - "minecraft:note_block[instrument=didgeridoo,note=17,powered=true]", - "minecraft:note_block[instrument=didgeridoo,note=17,powered=false]", - "minecraft:note_block[instrument=didgeridoo,note=18,powered=true]", - "minecraft:note_block[instrument=didgeridoo,note=18,powered=false]", - "minecraft:note_block[instrument=didgeridoo,note=19,powered=true]", - "minecraft:note_block[instrument=didgeridoo,note=19,powered=false]", - "minecraft:note_block[instrument=didgeridoo,note=20,powered=true]", - "minecraft:note_block[instrument=didgeridoo,note=20,powered=false]", - "minecraft:note_block[instrument=didgeridoo,note=21,powered=true]", - "minecraft:note_block[instrument=didgeridoo,note=21,powered=false]", - "minecraft:note_block[instrument=didgeridoo,note=22,powered=true]", - "minecraft:note_block[instrument=didgeridoo,note=22,powered=false]", - "minecraft:note_block[instrument=didgeridoo,note=23,powered=true]", - "minecraft:note_block[instrument=didgeridoo,note=23,powered=false]", - "minecraft:note_block[instrument=didgeridoo,note=24,powered=true]", - "minecraft:note_block[instrument=didgeridoo,note=24,powered=false]", - "minecraft:note_block[instrument=bit,note=0,powered=true]", - "minecraft:note_block[instrument=bit,note=0,powered=false]", - "minecraft:note_block[instrument=bit,note=1,powered=true]", - "minecraft:note_block[instrument=bit,note=1,powered=false]", - "minecraft:note_block[instrument=bit,note=2,powered=true]", - "minecraft:note_block[instrument=bit,note=2,powered=false]", - "minecraft:note_block[instrument=bit,note=3,powered=true]", - "minecraft:note_block[instrument=bit,note=3,powered=false]", - "minecraft:note_block[instrument=bit,note=4,powered=true]", - "minecraft:note_block[instrument=bit,note=4,powered=false]", - "minecraft:note_block[instrument=bit,note=5,powered=true]", - "minecraft:note_block[instrument=bit,note=5,powered=false]", - "minecraft:note_block[instrument=bit,note=6,powered=true]", - "minecraft:note_block[instrument=bit,note=6,powered=false]", - "minecraft:note_block[instrument=bit,note=7,powered=true]", - "minecraft:note_block[instrument=bit,note=7,powered=false]", - "minecraft:note_block[instrument=bit,note=8,powered=true]", - "minecraft:note_block[instrument=bit,note=8,powered=false]", - "minecraft:note_block[instrument=bit,note=9,powered=true]", - "minecraft:note_block[instrument=bit,note=9,powered=false]", - "minecraft:note_block[instrument=bit,note=10,powered=true]", - "minecraft:note_block[instrument=bit,note=10,powered=false]", - "minecraft:note_block[instrument=bit,note=11,powered=true]", - "minecraft:note_block[instrument=bit,note=11,powered=false]", - "minecraft:note_block[instrument=bit,note=12,powered=true]", - "minecraft:note_block[instrument=bit,note=12,powered=false]", - "minecraft:note_block[instrument=bit,note=13,powered=true]", - "minecraft:note_block[instrument=bit,note=13,powered=false]", - "minecraft:note_block[instrument=bit,note=14,powered=true]", - "minecraft:note_block[instrument=bit,note=14,powered=false]", - "minecraft:note_block[instrument=bit,note=15,powered=true]", - "minecraft:note_block[instrument=bit,note=15,powered=false]", - "minecraft:note_block[instrument=bit,note=16,powered=true]", - "minecraft:note_block[instrument=bit,note=16,powered=false]", - "minecraft:note_block[instrument=bit,note=17,powered=true]", - "minecraft:note_block[instrument=bit,note=17,powered=false]", - "minecraft:note_block[instrument=bit,note=18,powered=true]", - "minecraft:note_block[instrument=bit,note=18,powered=false]", - "minecraft:note_block[instrument=bit,note=19,powered=true]", - "minecraft:note_block[instrument=bit,note=19,powered=false]", - "minecraft:note_block[instrument=bit,note=20,powered=true]", - "minecraft:note_block[instrument=bit,note=20,powered=false]", - "minecraft:note_block[instrument=bit,note=21,powered=true]", - "minecraft:note_block[instrument=bit,note=21,powered=false]", - "minecraft:note_block[instrument=bit,note=22,powered=true]", - "minecraft:note_block[instrument=bit,note=22,powered=false]", - "minecraft:note_block[instrument=bit,note=23,powered=true]", - "minecraft:note_block[instrument=bit,note=23,powered=false]", - "minecraft:note_block[instrument=bit,note=24,powered=true]", - "minecraft:note_block[instrument=bit,note=24,powered=false]", - "minecraft:note_block[instrument=banjo,note=0,powered=true]", - "minecraft:note_block[instrument=banjo,note=0,powered=false]", - "minecraft:note_block[instrument=banjo,note=1,powered=true]", - "minecraft:note_block[instrument=banjo,note=1,powered=false]", - "minecraft:note_block[instrument=banjo,note=2,powered=true]", - "minecraft:note_block[instrument=banjo,note=2,powered=false]", - "minecraft:note_block[instrument=banjo,note=3,powered=true]", - "minecraft:note_block[instrument=banjo,note=3,powered=false]", - "minecraft:note_block[instrument=banjo,note=4,powered=true]", - "minecraft:note_block[instrument=banjo,note=4,powered=false]", - "minecraft:note_block[instrument=banjo,note=5,powered=true]", - "minecraft:note_block[instrument=banjo,note=5,powered=false]", - "minecraft:note_block[instrument=banjo,note=6,powered=true]", - "minecraft:note_block[instrument=banjo,note=6,powered=false]", - "minecraft:note_block[instrument=banjo,note=7,powered=true]", - "minecraft:note_block[instrument=banjo,note=7,powered=false]", - "minecraft:note_block[instrument=banjo,note=8,powered=true]", - "minecraft:note_block[instrument=banjo,note=8,powered=false]", - "minecraft:note_block[instrument=banjo,note=9,powered=true]", - "minecraft:note_block[instrument=banjo,note=9,powered=false]", - "minecraft:note_block[instrument=banjo,note=10,powered=true]", - "minecraft:note_block[instrument=banjo,note=10,powered=false]", - "minecraft:note_block[instrument=banjo,note=11,powered=true]", - "minecraft:note_block[instrument=banjo,note=11,powered=false]", - "minecraft:note_block[instrument=banjo,note=12,powered=true]", - "minecraft:note_block[instrument=banjo,note=12,powered=false]", - "minecraft:note_block[instrument=banjo,note=13,powered=true]", - "minecraft:note_block[instrument=banjo,note=13,powered=false]", - "minecraft:note_block[instrument=banjo,note=14,powered=true]", - "minecraft:note_block[instrument=banjo,note=14,powered=false]", - "minecraft:note_block[instrument=banjo,note=15,powered=true]", - "minecraft:note_block[instrument=banjo,note=15,powered=false]", - "minecraft:note_block[instrument=banjo,note=16,powered=true]", - "minecraft:note_block[instrument=banjo,note=16,powered=false]", - "minecraft:note_block[instrument=banjo,note=17,powered=true]", - "minecraft:note_block[instrument=banjo,note=17,powered=false]", - "minecraft:note_block[instrument=banjo,note=18,powered=true]", - "minecraft:note_block[instrument=banjo,note=18,powered=false]", - "minecraft:note_block[instrument=banjo,note=19,powered=true]", - "minecraft:note_block[instrument=banjo,note=19,powered=false]", - "minecraft:note_block[instrument=banjo,note=20,powered=true]", - "minecraft:note_block[instrument=banjo,note=20,powered=false]", - "minecraft:note_block[instrument=banjo,note=21,powered=true]", - "minecraft:note_block[instrument=banjo,note=21,powered=false]", - "minecraft:note_block[instrument=banjo,note=22,powered=true]", - "minecraft:note_block[instrument=banjo,note=22,powered=false]", - "minecraft:note_block[instrument=banjo,note=23,powered=true]", - "minecraft:note_block[instrument=banjo,note=23,powered=false]", - "minecraft:note_block[instrument=banjo,note=24,powered=true]", - "minecraft:note_block[instrument=banjo,note=24,powered=false]", - "minecraft:note_block[instrument=pling,note=0,powered=true]", - "minecraft:note_block[instrument=pling,note=0,powered=false]", - "minecraft:note_block[instrument=pling,note=1,powered=true]", - "minecraft:note_block[instrument=pling,note=1,powered=false]", - "minecraft:note_block[instrument=pling,note=2,powered=true]", - "minecraft:note_block[instrument=pling,note=2,powered=false]", - "minecraft:note_block[instrument=pling,note=3,powered=true]", - "minecraft:note_block[instrument=pling,note=3,powered=false]", - "minecraft:note_block[instrument=pling,note=4,powered=true]", - "minecraft:note_block[instrument=pling,note=4,powered=false]", - "minecraft:note_block[instrument=pling,note=5,powered=true]", - "minecraft:note_block[instrument=pling,note=5,powered=false]", - "minecraft:note_block[instrument=pling,note=6,powered=true]", - "minecraft:note_block[instrument=pling,note=6,powered=false]", - "minecraft:note_block[instrument=pling,note=7,powered=true]", - "minecraft:note_block[instrument=pling,note=7,powered=false]", - "minecraft:note_block[instrument=pling,note=8,powered=true]", - "minecraft:note_block[instrument=pling,note=8,powered=false]", - "minecraft:note_block[instrument=pling,note=9,powered=true]", - "minecraft:note_block[instrument=pling,note=9,powered=false]", - "minecraft:note_block[instrument=pling,note=10,powered=true]", - "minecraft:note_block[instrument=pling,note=10,powered=false]", - "minecraft:note_block[instrument=pling,note=11,powered=true]", - "minecraft:note_block[instrument=pling,note=11,powered=false]", - "minecraft:note_block[instrument=pling,note=12,powered=true]", - "minecraft:note_block[instrument=pling,note=12,powered=false]", - "minecraft:note_block[instrument=pling,note=13,powered=true]", - "minecraft:note_block[instrument=pling,note=13,powered=false]", - "minecraft:note_block[instrument=pling,note=14,powered=true]", - "minecraft:note_block[instrument=pling,note=14,powered=false]", - "minecraft:note_block[instrument=pling,note=15,powered=true]", - "minecraft:note_block[instrument=pling,note=15,powered=false]", - "minecraft:note_block[instrument=pling,note=16,powered=true]", - "minecraft:note_block[instrument=pling,note=16,powered=false]", - "minecraft:note_block[instrument=pling,note=17,powered=true]", - "minecraft:note_block[instrument=pling,note=17,powered=false]", - "minecraft:note_block[instrument=pling,note=18,powered=true]", - "minecraft:note_block[instrument=pling,note=18,powered=false]", - "minecraft:note_block[instrument=pling,note=19,powered=true]", - "minecraft:note_block[instrument=pling,note=19,powered=false]", - "minecraft:note_block[instrument=pling,note=20,powered=true]", - "minecraft:note_block[instrument=pling,note=20,powered=false]", - "minecraft:note_block[instrument=pling,note=21,powered=true]", - "minecraft:note_block[instrument=pling,note=21,powered=false]", - "minecraft:note_block[instrument=pling,note=22,powered=true]", - "minecraft:note_block[instrument=pling,note=22,powered=false]", - "minecraft:note_block[instrument=pling,note=23,powered=true]", - "minecraft:note_block[instrument=pling,note=23,powered=false]", - "minecraft:note_block[instrument=pling,note=24,powered=true]", - "minecraft:note_block[instrument=pling,note=24,powered=false]", "minecraft:white_bed[facing=north,occupied=true,part=head]", "minecraft:white_bed[facing=north,occupied=true,part=foot]", "minecraft:white_bed[facing=north,occupied=false,part=head]", @@ -1534,166 +1234,6 @@ "minecraft:oak_sign[rotation=14,waterlogged=false]", "minecraft:oak_sign[rotation=15,waterlogged=true]", "minecraft:oak_sign[rotation=15,waterlogged=false]", - "minecraft:spruce_sign[rotation=0,waterlogged=true]", - "minecraft:spruce_sign[rotation=0,waterlogged=false]", - "minecraft:spruce_sign[rotation=1,waterlogged=true]", - "minecraft:spruce_sign[rotation=1,waterlogged=false]", - "minecraft:spruce_sign[rotation=2,waterlogged=true]", - "minecraft:spruce_sign[rotation=2,waterlogged=false]", - "minecraft:spruce_sign[rotation=3,waterlogged=true]", - "minecraft:spruce_sign[rotation=3,waterlogged=false]", - "minecraft:spruce_sign[rotation=4,waterlogged=true]", - "minecraft:spruce_sign[rotation=4,waterlogged=false]", - "minecraft:spruce_sign[rotation=5,waterlogged=true]", - "minecraft:spruce_sign[rotation=5,waterlogged=false]", - "minecraft:spruce_sign[rotation=6,waterlogged=true]", - "minecraft:spruce_sign[rotation=6,waterlogged=false]", - "minecraft:spruce_sign[rotation=7,waterlogged=true]", - "minecraft:spruce_sign[rotation=7,waterlogged=false]", - "minecraft:spruce_sign[rotation=8,waterlogged=true]", - "minecraft:spruce_sign[rotation=8,waterlogged=false]", - "minecraft:spruce_sign[rotation=9,waterlogged=true]", - "minecraft:spruce_sign[rotation=9,waterlogged=false]", - "minecraft:spruce_sign[rotation=10,waterlogged=true]", - "minecraft:spruce_sign[rotation=10,waterlogged=false]", - "minecraft:spruce_sign[rotation=11,waterlogged=true]", - "minecraft:spruce_sign[rotation=11,waterlogged=false]", - "minecraft:spruce_sign[rotation=12,waterlogged=true]", - "minecraft:spruce_sign[rotation=12,waterlogged=false]", - "minecraft:spruce_sign[rotation=13,waterlogged=true]", - "minecraft:spruce_sign[rotation=13,waterlogged=false]", - "minecraft:spruce_sign[rotation=14,waterlogged=true]", - "minecraft:spruce_sign[rotation=14,waterlogged=false]", - "minecraft:spruce_sign[rotation=15,waterlogged=true]", - "minecraft:spruce_sign[rotation=15,waterlogged=false]", - "minecraft:birch_sign[rotation=0,waterlogged=true]", - "minecraft:birch_sign[rotation=0,waterlogged=false]", - "minecraft:birch_sign[rotation=1,waterlogged=true]", - "minecraft:birch_sign[rotation=1,waterlogged=false]", - "minecraft:birch_sign[rotation=2,waterlogged=true]", - "minecraft:birch_sign[rotation=2,waterlogged=false]", - "minecraft:birch_sign[rotation=3,waterlogged=true]", - "minecraft:birch_sign[rotation=3,waterlogged=false]", - "minecraft:birch_sign[rotation=4,waterlogged=true]", - "minecraft:birch_sign[rotation=4,waterlogged=false]", - "minecraft:birch_sign[rotation=5,waterlogged=true]", - "minecraft:birch_sign[rotation=5,waterlogged=false]", - "minecraft:birch_sign[rotation=6,waterlogged=true]", - "minecraft:birch_sign[rotation=6,waterlogged=false]", - "minecraft:birch_sign[rotation=7,waterlogged=true]", - "minecraft:birch_sign[rotation=7,waterlogged=false]", - "minecraft:birch_sign[rotation=8,waterlogged=true]", - "minecraft:birch_sign[rotation=8,waterlogged=false]", - "minecraft:birch_sign[rotation=9,waterlogged=true]", - "minecraft:birch_sign[rotation=9,waterlogged=false]", - "minecraft:birch_sign[rotation=10,waterlogged=true]", - "minecraft:birch_sign[rotation=10,waterlogged=false]", - "minecraft:birch_sign[rotation=11,waterlogged=true]", - "minecraft:birch_sign[rotation=11,waterlogged=false]", - "minecraft:birch_sign[rotation=12,waterlogged=true]", - "minecraft:birch_sign[rotation=12,waterlogged=false]", - "minecraft:birch_sign[rotation=13,waterlogged=true]", - "minecraft:birch_sign[rotation=13,waterlogged=false]", - "minecraft:birch_sign[rotation=14,waterlogged=true]", - "minecraft:birch_sign[rotation=14,waterlogged=false]", - "minecraft:birch_sign[rotation=15,waterlogged=true]", - "minecraft:birch_sign[rotation=15,waterlogged=false]", - "minecraft:acacia_sign[rotation=0,waterlogged=true]", - "minecraft:acacia_sign[rotation=0,waterlogged=false]", - "minecraft:acacia_sign[rotation=1,waterlogged=true]", - "minecraft:acacia_sign[rotation=1,waterlogged=false]", - "minecraft:acacia_sign[rotation=2,waterlogged=true]", - "minecraft:acacia_sign[rotation=2,waterlogged=false]", - "minecraft:acacia_sign[rotation=3,waterlogged=true]", - "minecraft:acacia_sign[rotation=3,waterlogged=false]", - "minecraft:acacia_sign[rotation=4,waterlogged=true]", - "minecraft:acacia_sign[rotation=4,waterlogged=false]", - "minecraft:acacia_sign[rotation=5,waterlogged=true]", - "minecraft:acacia_sign[rotation=5,waterlogged=false]", - "minecraft:acacia_sign[rotation=6,waterlogged=true]", - "minecraft:acacia_sign[rotation=6,waterlogged=false]", - "minecraft:acacia_sign[rotation=7,waterlogged=true]", - "minecraft:acacia_sign[rotation=7,waterlogged=false]", - "minecraft:acacia_sign[rotation=8,waterlogged=true]", - "minecraft:acacia_sign[rotation=8,waterlogged=false]", - "minecraft:acacia_sign[rotation=9,waterlogged=true]", - "minecraft:acacia_sign[rotation=9,waterlogged=false]", - "minecraft:acacia_sign[rotation=10,waterlogged=true]", - "minecraft:acacia_sign[rotation=10,waterlogged=false]", - "minecraft:acacia_sign[rotation=11,waterlogged=true]", - "minecraft:acacia_sign[rotation=11,waterlogged=false]", - "minecraft:acacia_sign[rotation=12,waterlogged=true]", - "minecraft:acacia_sign[rotation=12,waterlogged=false]", - "minecraft:acacia_sign[rotation=13,waterlogged=true]", - "minecraft:acacia_sign[rotation=13,waterlogged=false]", - "minecraft:acacia_sign[rotation=14,waterlogged=true]", - "minecraft:acacia_sign[rotation=14,waterlogged=false]", - "minecraft:acacia_sign[rotation=15,waterlogged=true]", - "minecraft:acacia_sign[rotation=15,waterlogged=false]", - "minecraft:jungle_sign[rotation=0,waterlogged=true]", - "minecraft:jungle_sign[rotation=0,waterlogged=false]", - "minecraft:jungle_sign[rotation=1,waterlogged=true]", - "minecraft:jungle_sign[rotation=1,waterlogged=false]", - "minecraft:jungle_sign[rotation=2,waterlogged=true]", - "minecraft:jungle_sign[rotation=2,waterlogged=false]", - "minecraft:jungle_sign[rotation=3,waterlogged=true]", - "minecraft:jungle_sign[rotation=3,waterlogged=false]", - "minecraft:jungle_sign[rotation=4,waterlogged=true]", - "minecraft:jungle_sign[rotation=4,waterlogged=false]", - "minecraft:jungle_sign[rotation=5,waterlogged=true]", - "minecraft:jungle_sign[rotation=5,waterlogged=false]", - "minecraft:jungle_sign[rotation=6,waterlogged=true]", - "minecraft:jungle_sign[rotation=6,waterlogged=false]", - "minecraft:jungle_sign[rotation=7,waterlogged=true]", - "minecraft:jungle_sign[rotation=7,waterlogged=false]", - "minecraft:jungle_sign[rotation=8,waterlogged=true]", - "minecraft:jungle_sign[rotation=8,waterlogged=false]", - "minecraft:jungle_sign[rotation=9,waterlogged=true]", - "minecraft:jungle_sign[rotation=9,waterlogged=false]", - "minecraft:jungle_sign[rotation=10,waterlogged=true]", - "minecraft:jungle_sign[rotation=10,waterlogged=false]", - "minecraft:jungle_sign[rotation=11,waterlogged=true]", - "minecraft:jungle_sign[rotation=11,waterlogged=false]", - "minecraft:jungle_sign[rotation=12,waterlogged=true]", - "minecraft:jungle_sign[rotation=12,waterlogged=false]", - "minecraft:jungle_sign[rotation=13,waterlogged=true]", - "minecraft:jungle_sign[rotation=13,waterlogged=false]", - "minecraft:jungle_sign[rotation=14,waterlogged=true]", - "minecraft:jungle_sign[rotation=14,waterlogged=false]", - "minecraft:jungle_sign[rotation=15,waterlogged=true]", - "minecraft:jungle_sign[rotation=15,waterlogged=false]", - "minecraft:dark_oak_sign[rotation=0,waterlogged=true]", - "minecraft:dark_oak_sign[rotation=0,waterlogged=false]", - "minecraft:dark_oak_sign[rotation=1,waterlogged=true]", - "minecraft:dark_oak_sign[rotation=1,waterlogged=false]", - "minecraft:dark_oak_sign[rotation=2,waterlogged=true]", - "minecraft:dark_oak_sign[rotation=2,waterlogged=false]", - "minecraft:dark_oak_sign[rotation=3,waterlogged=true]", - "minecraft:dark_oak_sign[rotation=3,waterlogged=false]", - "minecraft:dark_oak_sign[rotation=4,waterlogged=true]", - "minecraft:dark_oak_sign[rotation=4,waterlogged=false]", - "minecraft:dark_oak_sign[rotation=5,waterlogged=true]", - "minecraft:dark_oak_sign[rotation=5,waterlogged=false]", - "minecraft:dark_oak_sign[rotation=6,waterlogged=true]", - "minecraft:dark_oak_sign[rotation=6,waterlogged=false]", - "minecraft:dark_oak_sign[rotation=7,waterlogged=true]", - "minecraft:dark_oak_sign[rotation=7,waterlogged=false]", - "minecraft:dark_oak_sign[rotation=8,waterlogged=true]", - "minecraft:dark_oak_sign[rotation=8,waterlogged=false]", - "minecraft:dark_oak_sign[rotation=9,waterlogged=true]", - "minecraft:dark_oak_sign[rotation=9,waterlogged=false]", - "minecraft:dark_oak_sign[rotation=10,waterlogged=true]", - "minecraft:dark_oak_sign[rotation=10,waterlogged=false]", - "minecraft:dark_oak_sign[rotation=11,waterlogged=true]", - "minecraft:dark_oak_sign[rotation=11,waterlogged=false]", - "minecraft:dark_oak_sign[rotation=12,waterlogged=true]", - "minecraft:dark_oak_sign[rotation=12,waterlogged=false]", - "minecraft:dark_oak_sign[rotation=13,waterlogged=true]", - "minecraft:dark_oak_sign[rotation=13,waterlogged=false]", - "minecraft:dark_oak_sign[rotation=14,waterlogged=true]", - "minecraft:dark_oak_sign[rotation=14,waterlogged=false]", - "minecraft:dark_oak_sign[rotation=15,waterlogged=true]", - "minecraft:dark_oak_sign[rotation=15,waterlogged=false]", "minecraft:oak_door[facing=north,half=upper,hinge=left,open=true,powered=true]", "minecraft:oak_door[facing=north,half=upper,hinge=left,open=true,powered=false]", "minecraft:oak_door[facing=north,half=upper,hinge=left,open=false,powered=true]", @@ -1850,46 +1390,6 @@ "minecraft:oak_wall_sign[facing=west,waterlogged=false]", "minecraft:oak_wall_sign[facing=east,waterlogged=true]", "minecraft:oak_wall_sign[facing=east,waterlogged=false]", - "minecraft:spruce_wall_sign[facing=north,waterlogged=true]", - "minecraft:spruce_wall_sign[facing=north,waterlogged=false]", - "minecraft:spruce_wall_sign[facing=south,waterlogged=true]", - "minecraft:spruce_wall_sign[facing=south,waterlogged=false]", - "minecraft:spruce_wall_sign[facing=west,waterlogged=true]", - "minecraft:spruce_wall_sign[facing=west,waterlogged=false]", - "minecraft:spruce_wall_sign[facing=east,waterlogged=true]", - "minecraft:spruce_wall_sign[facing=east,waterlogged=false]", - "minecraft:birch_wall_sign[facing=north,waterlogged=true]", - "minecraft:birch_wall_sign[facing=north,waterlogged=false]", - "minecraft:birch_wall_sign[facing=south,waterlogged=true]", - "minecraft:birch_wall_sign[facing=south,waterlogged=false]", - "minecraft:birch_wall_sign[facing=west,waterlogged=true]", - "minecraft:birch_wall_sign[facing=west,waterlogged=false]", - "minecraft:birch_wall_sign[facing=east,waterlogged=true]", - "minecraft:birch_wall_sign[facing=east,waterlogged=false]", - "minecraft:acacia_wall_sign[facing=north,waterlogged=true]", - "minecraft:acacia_wall_sign[facing=north,waterlogged=false]", - "minecraft:acacia_wall_sign[facing=south,waterlogged=true]", - "minecraft:acacia_wall_sign[facing=south,waterlogged=false]", - "minecraft:acacia_wall_sign[facing=west,waterlogged=true]", - "minecraft:acacia_wall_sign[facing=west,waterlogged=false]", - "minecraft:acacia_wall_sign[facing=east,waterlogged=true]", - "minecraft:acacia_wall_sign[facing=east,waterlogged=false]", - "minecraft:jungle_wall_sign[facing=north,waterlogged=true]", - "minecraft:jungle_wall_sign[facing=north,waterlogged=false]", - "minecraft:jungle_wall_sign[facing=south,waterlogged=true]", - "minecraft:jungle_wall_sign[facing=south,waterlogged=false]", - "minecraft:jungle_wall_sign[facing=west,waterlogged=true]", - "minecraft:jungle_wall_sign[facing=west,waterlogged=false]", - "minecraft:jungle_wall_sign[facing=east,waterlogged=true]", - "minecraft:jungle_wall_sign[facing=east,waterlogged=false]", - "minecraft:dark_oak_wall_sign[facing=north,waterlogged=true]", - "minecraft:dark_oak_wall_sign[facing=north,waterlogged=false]", - "minecraft:dark_oak_wall_sign[facing=south,waterlogged=true]", - "minecraft:dark_oak_wall_sign[facing=south,waterlogged=false]", - "minecraft:dark_oak_wall_sign[facing=west,waterlogged=true]", - "minecraft:dark_oak_wall_sign[facing=west,waterlogged=false]", - "minecraft:dark_oak_wall_sign[facing=east,waterlogged=true]", - "minecraft:dark_oak_wall_sign[facing=east,waterlogged=false]", "minecraft:stone_pressure_plate[powered=true]", "minecraft:stone_pressure_plate[powered=false]", "minecraft:iron_door[facing=north,half=upper,hinge=left,open=true,powered=true]", @@ -5182,12 +4682,6 @@ "minecraft:dark_oak_slab[type=bottom,waterlogged=false]", "minecraft:dark_oak_slab[type=double,waterlogged=true]", "minecraft:dark_oak_slab[type=double,waterlogged=false]", - "minecraft:stone_slab[type=top,waterlogged=true]", - "minecraft:stone_slab[type=top,waterlogged=false]", - "minecraft:stone_slab[type=bottom,waterlogged=true]", - "minecraft:stone_slab[type=bottom,waterlogged=false]", - "minecraft:stone_slab[type=double,waterlogged=true]", - "minecraft:stone_slab[type=double,waterlogged=false]", "minecraft:smooth_stone_slab[type=top,waterlogged=true]", "minecraft:smooth_stone_slab[type=top,waterlogged=false]", "minecraft:smooth_stone_slab[type=bottom,waterlogged=true]", @@ -5200,12 +4694,6 @@ "minecraft:sandstone_slab[type=bottom,waterlogged=false]", "minecraft:sandstone_slab[type=double,waterlogged=true]", "minecraft:sandstone_slab[type=double,waterlogged=false]", - "minecraft:cut_sandstone_slab[type=top,waterlogged=true]", - "minecraft:cut_sandstone_slab[type=top,waterlogged=false]", - "minecraft:cut_sandstone_slab[type=bottom,waterlogged=true]", - "minecraft:cut_sandstone_slab[type=bottom,waterlogged=false]", - "minecraft:cut_sandstone_slab[type=double,waterlogged=true]", - "minecraft:cut_sandstone_slab[type=double,waterlogged=false]", "minecraft:petrified_oak_slab[type=top,waterlogged=true]", "minecraft:petrified_oak_slab[type=top,waterlogged=false]", "minecraft:petrified_oak_slab[type=bottom,waterlogged=true]", @@ -5248,12 +4736,6 @@ "minecraft:red_sandstone_slab[type=bottom,waterlogged=false]", "minecraft:red_sandstone_slab[type=double,waterlogged=true]", "minecraft:red_sandstone_slab[type=double,waterlogged=false]", - "minecraft:cut_red_sandstone_slab[type=top,waterlogged=true]", - "minecraft:cut_red_sandstone_slab[type=top,waterlogged=false]", - "minecraft:cut_red_sandstone_slab[type=bottom,waterlogged=true]", - "minecraft:cut_red_sandstone_slab[type=bottom,waterlogged=false]", - "minecraft:cut_red_sandstone_slab[type=double,waterlogged=true]", - "minecraft:cut_red_sandstone_slab[type=double,waterlogged=false]", "minecraft:purpur_slab[type=top,waterlogged=true]", "minecraft:purpur_slab[type=top,waterlogged=false]", "minecraft:purpur_slab[type=bottom,waterlogged=true]", @@ -6381,2137 +5863,11 @@ "minecraft:blue_ice", "minecraft:conduit[waterlogged=true]", "minecraft:conduit[waterlogged=false]", - "minecraft:bamboo[age=0,leaves=none,stage=0]", - "minecraft:bamboo[age=0,leaves=none,stage=1]", - "minecraft:bamboo[age=0,leaves=small,stage=0]", - "minecraft:bamboo[age=0,leaves=small,stage=1]", - "minecraft:bamboo[age=0,leaves=large,stage=0]", - "minecraft:bamboo[age=0,leaves=large,stage=1]", - "minecraft:bamboo[age=1,leaves=none,stage=0]", - "minecraft:bamboo[age=1,leaves=none,stage=1]", - "minecraft:bamboo[age=1,leaves=small,stage=0]", - "minecraft:bamboo[age=1,leaves=small,stage=1]", - "minecraft:bamboo[age=1,leaves=large,stage=0]", - "minecraft:bamboo[age=1,leaves=large,stage=1]", "minecraft:bubble_column[drag=true]", "minecraft:bubble_column[drag=false]", - "minecraft:polished_granite_stairs[facing=north,half=top,shape=straight,waterlogged=true]", - "minecraft:polished_granite_stairs[facing=north,half=top,shape=straight,waterlogged=false]", - "minecraft:polished_granite_stairs[facing=north,half=top,shape=inner_left,waterlogged=true]", - "minecraft:polished_granite_stairs[facing=north,half=top,shape=inner_left,waterlogged=false]", - "minecraft:polished_granite_stairs[facing=north,half=top,shape=inner_right,waterlogged=true]", - "minecraft:polished_granite_stairs[facing=north,half=top,shape=inner_right,waterlogged=false]", - "minecraft:polished_granite_stairs[facing=north,half=top,shape=outer_left,waterlogged=true]", - "minecraft:polished_granite_stairs[facing=north,half=top,shape=outer_left,waterlogged=false]", - "minecraft:polished_granite_stairs[facing=north,half=top,shape=outer_right,waterlogged=true]", - "minecraft:polished_granite_stairs[facing=north,half=top,shape=outer_right,waterlogged=false]", - "minecraft:polished_granite_stairs[facing=north,half=bottom,shape=straight,waterlogged=true]", - "minecraft:polished_granite_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]", - "minecraft:polished_granite_stairs[facing=north,half=bottom,shape=inner_left,waterlogged=true]", - "minecraft:polished_granite_stairs[facing=north,half=bottom,shape=inner_left,waterlogged=false]", - "minecraft:polished_granite_stairs[facing=north,half=bottom,shape=inner_right,waterlogged=true]", - "minecraft:polished_granite_stairs[facing=north,half=bottom,shape=inner_right,waterlogged=false]", - "minecraft:polished_granite_stairs[facing=north,half=bottom,shape=outer_left,waterlogged=true]", - "minecraft:polished_granite_stairs[facing=north,half=bottom,shape=outer_left,waterlogged=false]", - "minecraft:polished_granite_stairs[facing=north,half=bottom,shape=outer_right,waterlogged=true]", - "minecraft:polished_granite_stairs[facing=north,half=bottom,shape=outer_right,waterlogged=false]", - "minecraft:polished_granite_stairs[facing=south,half=top,shape=straight,waterlogged=true]", - "minecraft:polished_granite_stairs[facing=south,half=top,shape=straight,waterlogged=false]", - "minecraft:polished_granite_stairs[facing=south,half=top,shape=inner_left,waterlogged=true]", - "minecraft:polished_granite_stairs[facing=south,half=top,shape=inner_left,waterlogged=false]", - "minecraft:polished_granite_stairs[facing=south,half=top,shape=inner_right,waterlogged=true]", - "minecraft:polished_granite_stairs[facing=south,half=top,shape=inner_right,waterlogged=false]", - "minecraft:polished_granite_stairs[facing=south,half=top,shape=outer_left,waterlogged=true]", - "minecraft:polished_granite_stairs[facing=south,half=top,shape=outer_left,waterlogged=false]", - "minecraft:polished_granite_stairs[facing=south,half=top,shape=outer_right,waterlogged=true]", - "minecraft:polished_granite_stairs[facing=south,half=top,shape=outer_right,waterlogged=false]", - "minecraft:polished_granite_stairs[facing=south,half=bottom,shape=straight,waterlogged=true]", - "minecraft:polished_granite_stairs[facing=south,half=bottom,shape=straight,waterlogged=false]", - "minecraft:polished_granite_stairs[facing=south,half=bottom,shape=inner_left,waterlogged=true]", - "minecraft:polished_granite_stairs[facing=south,half=bottom,shape=inner_left,waterlogged=false]", - "minecraft:polished_granite_stairs[facing=south,half=bottom,shape=inner_right,waterlogged=true]", - "minecraft:polished_granite_stairs[facing=south,half=bottom,shape=inner_right,waterlogged=false]", - "minecraft:polished_granite_stairs[facing=south,half=bottom,shape=outer_left,waterlogged=true]", - "minecraft:polished_granite_stairs[facing=south,half=bottom,shape=outer_left,waterlogged=false]", - "minecraft:polished_granite_stairs[facing=south,half=bottom,shape=outer_right,waterlogged=true]", - "minecraft:polished_granite_stairs[facing=south,half=bottom,shape=outer_right,waterlogged=false]", - "minecraft:polished_granite_stairs[facing=west,half=top,shape=straight,waterlogged=true]", - "minecraft:polished_granite_stairs[facing=west,half=top,shape=straight,waterlogged=false]", - "minecraft:polished_granite_stairs[facing=west,half=top,shape=inner_left,waterlogged=true]", - "minecraft:polished_granite_stairs[facing=west,half=top,shape=inner_left,waterlogged=false]", - "minecraft:polished_granite_stairs[facing=west,half=top,shape=inner_right,waterlogged=true]", - "minecraft:polished_granite_stairs[facing=west,half=top,shape=inner_right,waterlogged=false]", - "minecraft:polished_granite_stairs[facing=west,half=top,shape=outer_left,waterlogged=true]", - "minecraft:polished_granite_stairs[facing=west,half=top,shape=outer_left,waterlogged=false]", - "minecraft:polished_granite_stairs[facing=west,half=top,shape=outer_right,waterlogged=true]", - "minecraft:polished_granite_stairs[facing=west,half=top,shape=outer_right,waterlogged=false]", - "minecraft:polished_granite_stairs[facing=west,half=bottom,shape=straight,waterlogged=true]", - "minecraft:polished_granite_stairs[facing=west,half=bottom,shape=straight,waterlogged=false]", - "minecraft:polished_granite_stairs[facing=west,half=bottom,shape=inner_left,waterlogged=true]", - "minecraft:polished_granite_stairs[facing=west,half=bottom,shape=inner_left,waterlogged=false]", - "minecraft:polished_granite_stairs[facing=west,half=bottom,shape=inner_right,waterlogged=true]", - "minecraft:polished_granite_stairs[facing=west,half=bottom,shape=inner_right,waterlogged=false]", - "minecraft:polished_granite_stairs[facing=west,half=bottom,shape=outer_left,waterlogged=true]", - "minecraft:polished_granite_stairs[facing=west,half=bottom,shape=outer_left,waterlogged=false]", - "minecraft:polished_granite_stairs[facing=west,half=bottom,shape=outer_right,waterlogged=true]", - "minecraft:polished_granite_stairs[facing=west,half=bottom,shape=outer_right,waterlogged=false]", - "minecraft:polished_granite_stairs[facing=east,half=top,shape=straight,waterlogged=true]", - "minecraft:polished_granite_stairs[facing=east,half=top,shape=straight,waterlogged=false]", - "minecraft:polished_granite_stairs[facing=east,half=top,shape=inner_left,waterlogged=true]", - "minecraft:polished_granite_stairs[facing=east,half=top,shape=inner_left,waterlogged=false]", - "minecraft:polished_granite_stairs[facing=east,half=top,shape=inner_right,waterlogged=true]", - "minecraft:polished_granite_stairs[facing=east,half=top,shape=inner_right,waterlogged=false]", - "minecraft:polished_granite_stairs[facing=east,half=top,shape=outer_left,waterlogged=true]", - "minecraft:polished_granite_stairs[facing=east,half=top,shape=outer_left,waterlogged=false]", - "minecraft:polished_granite_stairs[facing=east,half=top,shape=outer_right,waterlogged=true]", - "minecraft:polished_granite_stairs[facing=east,half=top,shape=outer_right,waterlogged=false]", - "minecraft:polished_granite_stairs[facing=east,half=bottom,shape=straight,waterlogged=true]", - "minecraft:polished_granite_stairs[facing=east,half=bottom,shape=straight,waterlogged=false]", - "minecraft:polished_granite_stairs[facing=east,half=bottom,shape=inner_left,waterlogged=true]", - "minecraft:polished_granite_stairs[facing=east,half=bottom,shape=inner_left,waterlogged=false]", - "minecraft:polished_granite_stairs[facing=east,half=bottom,shape=inner_right,waterlogged=true]", - "minecraft:polished_granite_stairs[facing=east,half=bottom,shape=inner_right,waterlogged=false]", - "minecraft:polished_granite_stairs[facing=east,half=bottom,shape=outer_left,waterlogged=true]", - "minecraft:polished_granite_stairs[facing=east,half=bottom,shape=outer_left,waterlogged=false]", - "minecraft:polished_granite_stairs[facing=east,half=bottom,shape=outer_right,waterlogged=true]", - "minecraft:polished_granite_stairs[facing=east,half=bottom,shape=outer_right,waterlogged=false]", - "minecraft:smooth_red_sandstone_stairs[facing=north,half=top,shape=straight,waterlogged=true]", - "minecraft:smooth_red_sandstone_stairs[facing=north,half=top,shape=straight,waterlogged=false]", - "minecraft:smooth_red_sandstone_stairs[facing=north,half=top,shape=inner_left,waterlogged=true]", - "minecraft:smooth_red_sandstone_stairs[facing=north,half=top,shape=inner_left,waterlogged=false]", - "minecraft:smooth_red_sandstone_stairs[facing=north,half=top,shape=inner_right,waterlogged=true]", - "minecraft:smooth_red_sandstone_stairs[facing=north,half=top,shape=inner_right,waterlogged=false]", - "minecraft:smooth_red_sandstone_stairs[facing=north,half=top,shape=outer_left,waterlogged=true]", - "minecraft:smooth_red_sandstone_stairs[facing=north,half=top,shape=outer_left,waterlogged=false]", - "minecraft:smooth_red_sandstone_stairs[facing=north,half=top,shape=outer_right,waterlogged=true]", - "minecraft:smooth_red_sandstone_stairs[facing=north,half=top,shape=outer_right,waterlogged=false]", - "minecraft:smooth_red_sandstone_stairs[facing=north,half=bottom,shape=straight,waterlogged=true]", - "minecraft:smooth_red_sandstone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]", - "minecraft:smooth_red_sandstone_stairs[facing=north,half=bottom,shape=inner_left,waterlogged=true]", - "minecraft:smooth_red_sandstone_stairs[facing=north,half=bottom,shape=inner_left,waterlogged=false]", - "minecraft:smooth_red_sandstone_stairs[facing=north,half=bottom,shape=inner_right,waterlogged=true]", - "minecraft:smooth_red_sandstone_stairs[facing=north,half=bottom,shape=inner_right,waterlogged=false]", - "minecraft:smooth_red_sandstone_stairs[facing=north,half=bottom,shape=outer_left,waterlogged=true]", - "minecraft:smooth_red_sandstone_stairs[facing=north,half=bottom,shape=outer_left,waterlogged=false]", - "minecraft:smooth_red_sandstone_stairs[facing=north,half=bottom,shape=outer_right,waterlogged=true]", - "minecraft:smooth_red_sandstone_stairs[facing=north,half=bottom,shape=outer_right,waterlogged=false]", - "minecraft:smooth_red_sandstone_stairs[facing=south,half=top,shape=straight,waterlogged=true]", - "minecraft:smooth_red_sandstone_stairs[facing=south,half=top,shape=straight,waterlogged=false]", - "minecraft:smooth_red_sandstone_stairs[facing=south,half=top,shape=inner_left,waterlogged=true]", - "minecraft:smooth_red_sandstone_stairs[facing=south,half=top,shape=inner_left,waterlogged=false]", - "minecraft:smooth_red_sandstone_stairs[facing=south,half=top,shape=inner_right,waterlogged=true]", - "minecraft:smooth_red_sandstone_stairs[facing=south,half=top,shape=inner_right,waterlogged=false]", - "minecraft:smooth_red_sandstone_stairs[facing=south,half=top,shape=outer_left,waterlogged=true]", - "minecraft:smooth_red_sandstone_stairs[facing=south,half=top,shape=outer_left,waterlogged=false]", - "minecraft:smooth_red_sandstone_stairs[facing=south,half=top,shape=outer_right,waterlogged=true]", - "minecraft:smooth_red_sandstone_stairs[facing=south,half=top,shape=outer_right,waterlogged=false]", - "minecraft:smooth_red_sandstone_stairs[facing=south,half=bottom,shape=straight,waterlogged=true]", - "minecraft:smooth_red_sandstone_stairs[facing=south,half=bottom,shape=straight,waterlogged=false]", - "minecraft:smooth_red_sandstone_stairs[facing=south,half=bottom,shape=inner_left,waterlogged=true]", - "minecraft:smooth_red_sandstone_stairs[facing=south,half=bottom,shape=inner_left,waterlogged=false]", - "minecraft:smooth_red_sandstone_stairs[facing=south,half=bottom,shape=inner_right,waterlogged=true]", - "minecraft:smooth_red_sandstone_stairs[facing=south,half=bottom,shape=inner_right,waterlogged=false]", - "minecraft:smooth_red_sandstone_stairs[facing=south,half=bottom,shape=outer_left,waterlogged=true]", - "minecraft:smooth_red_sandstone_stairs[facing=south,half=bottom,shape=outer_left,waterlogged=false]", - "minecraft:smooth_red_sandstone_stairs[facing=south,half=bottom,shape=outer_right,waterlogged=true]", - "minecraft:smooth_red_sandstone_stairs[facing=south,half=bottom,shape=outer_right,waterlogged=false]", - "minecraft:smooth_red_sandstone_stairs[facing=west,half=top,shape=straight,waterlogged=true]", - "minecraft:smooth_red_sandstone_stairs[facing=west,half=top,shape=straight,waterlogged=false]", - "minecraft:smooth_red_sandstone_stairs[facing=west,half=top,shape=inner_left,waterlogged=true]", - "minecraft:smooth_red_sandstone_stairs[facing=west,half=top,shape=inner_left,waterlogged=false]", - "minecraft:smooth_red_sandstone_stairs[facing=west,half=top,shape=inner_right,waterlogged=true]", - "minecraft:smooth_red_sandstone_stairs[facing=west,half=top,shape=inner_right,waterlogged=false]", - "minecraft:smooth_red_sandstone_stairs[facing=west,half=top,shape=outer_left,waterlogged=true]", - "minecraft:smooth_red_sandstone_stairs[facing=west,half=top,shape=outer_left,waterlogged=false]", - "minecraft:smooth_red_sandstone_stairs[facing=west,half=top,shape=outer_right,waterlogged=true]", - "minecraft:smooth_red_sandstone_stairs[facing=west,half=top,shape=outer_right,waterlogged=false]", - "minecraft:smooth_red_sandstone_stairs[facing=west,half=bottom,shape=straight,waterlogged=true]", - "minecraft:smooth_red_sandstone_stairs[facing=west,half=bottom,shape=straight,waterlogged=false]", - "minecraft:smooth_red_sandstone_stairs[facing=west,half=bottom,shape=inner_left,waterlogged=true]", - "minecraft:smooth_red_sandstone_stairs[facing=west,half=bottom,shape=inner_left,waterlogged=false]", - "minecraft:smooth_red_sandstone_stairs[facing=west,half=bottom,shape=inner_right,waterlogged=true]", - "minecraft:smooth_red_sandstone_stairs[facing=west,half=bottom,shape=inner_right,waterlogged=false]", - "minecraft:smooth_red_sandstone_stairs[facing=west,half=bottom,shape=outer_left,waterlogged=true]", - "minecraft:smooth_red_sandstone_stairs[facing=west,half=bottom,shape=outer_left,waterlogged=false]", - "minecraft:smooth_red_sandstone_stairs[facing=west,half=bottom,shape=outer_right,waterlogged=true]", - "minecraft:smooth_red_sandstone_stairs[facing=west,half=bottom,shape=outer_right,waterlogged=false]", - "minecraft:smooth_red_sandstone_stairs[facing=east,half=top,shape=straight,waterlogged=true]", - "minecraft:smooth_red_sandstone_stairs[facing=east,half=top,shape=straight,waterlogged=false]", - "minecraft:smooth_red_sandstone_stairs[facing=east,half=top,shape=inner_left,waterlogged=true]", - "minecraft:smooth_red_sandstone_stairs[facing=east,half=top,shape=inner_left,waterlogged=false]", - "minecraft:smooth_red_sandstone_stairs[facing=east,half=top,shape=inner_right,waterlogged=true]", - "minecraft:smooth_red_sandstone_stairs[facing=east,half=top,shape=inner_right,waterlogged=false]", - "minecraft:smooth_red_sandstone_stairs[facing=east,half=top,shape=outer_left,waterlogged=true]", - "minecraft:smooth_red_sandstone_stairs[facing=east,half=top,shape=outer_left,waterlogged=false]", - "minecraft:smooth_red_sandstone_stairs[facing=east,half=top,shape=outer_right,waterlogged=true]", - "minecraft:smooth_red_sandstone_stairs[facing=east,half=top,shape=outer_right,waterlogged=false]", - "minecraft:smooth_red_sandstone_stairs[facing=east,half=bottom,shape=straight,waterlogged=true]", - "minecraft:smooth_red_sandstone_stairs[facing=east,half=bottom,shape=straight,waterlogged=false]", - "minecraft:smooth_red_sandstone_stairs[facing=east,half=bottom,shape=inner_left,waterlogged=true]", - "minecraft:smooth_red_sandstone_stairs[facing=east,half=bottom,shape=inner_left,waterlogged=false]", - "minecraft:smooth_red_sandstone_stairs[facing=east,half=bottom,shape=inner_right,waterlogged=true]", - "minecraft:smooth_red_sandstone_stairs[facing=east,half=bottom,shape=inner_right,waterlogged=false]", - "minecraft:smooth_red_sandstone_stairs[facing=east,half=bottom,shape=outer_left,waterlogged=true]", - "minecraft:smooth_red_sandstone_stairs[facing=east,half=bottom,shape=outer_left,waterlogged=false]", - "minecraft:smooth_red_sandstone_stairs[facing=east,half=bottom,shape=outer_right,waterlogged=true]", - "minecraft:smooth_red_sandstone_stairs[facing=east,half=bottom,shape=outer_right,waterlogged=false]", - "minecraft:mossy_stone_brick_stairs[facing=north,half=top,shape=straight,waterlogged=true]", - "minecraft:mossy_stone_brick_stairs[facing=north,half=top,shape=straight,waterlogged=false]", - "minecraft:mossy_stone_brick_stairs[facing=north,half=top,shape=inner_left,waterlogged=true]", - "minecraft:mossy_stone_brick_stairs[facing=north,half=top,shape=inner_left,waterlogged=false]", - "minecraft:mossy_stone_brick_stairs[facing=north,half=top,shape=inner_right,waterlogged=true]", - "minecraft:mossy_stone_brick_stairs[facing=north,half=top,shape=inner_right,waterlogged=false]", - "minecraft:mossy_stone_brick_stairs[facing=north,half=top,shape=outer_left,waterlogged=true]", - "minecraft:mossy_stone_brick_stairs[facing=north,half=top,shape=outer_left,waterlogged=false]", - "minecraft:mossy_stone_brick_stairs[facing=north,half=top,shape=outer_right,waterlogged=true]", - "minecraft:mossy_stone_brick_stairs[facing=north,half=top,shape=outer_right,waterlogged=false]", - "minecraft:mossy_stone_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=true]", - "minecraft:mossy_stone_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]", - "minecraft:mossy_stone_brick_stairs[facing=north,half=bottom,shape=inner_left,waterlogged=true]", - "minecraft:mossy_stone_brick_stairs[facing=north,half=bottom,shape=inner_left,waterlogged=false]", - "minecraft:mossy_stone_brick_stairs[facing=north,half=bottom,shape=inner_right,waterlogged=true]", - "minecraft:mossy_stone_brick_stairs[facing=north,half=bottom,shape=inner_right,waterlogged=false]", - "minecraft:mossy_stone_brick_stairs[facing=north,half=bottom,shape=outer_left,waterlogged=true]", - "minecraft:mossy_stone_brick_stairs[facing=north,half=bottom,shape=outer_left,waterlogged=false]", - "minecraft:mossy_stone_brick_stairs[facing=north,half=bottom,shape=outer_right,waterlogged=true]", - "minecraft:mossy_stone_brick_stairs[facing=north,half=bottom,shape=outer_right,waterlogged=false]", - "minecraft:mossy_stone_brick_stairs[facing=south,half=top,shape=straight,waterlogged=true]", - "minecraft:mossy_stone_brick_stairs[facing=south,half=top,shape=straight,waterlogged=false]", - "minecraft:mossy_stone_brick_stairs[facing=south,half=top,shape=inner_left,waterlogged=true]", - "minecraft:mossy_stone_brick_stairs[facing=south,half=top,shape=inner_left,waterlogged=false]", - "minecraft:mossy_stone_brick_stairs[facing=south,half=top,shape=inner_right,waterlogged=true]", - "minecraft:mossy_stone_brick_stairs[facing=south,half=top,shape=inner_right,waterlogged=false]", - "minecraft:mossy_stone_brick_stairs[facing=south,half=top,shape=outer_left,waterlogged=true]", - "minecraft:mossy_stone_brick_stairs[facing=south,half=top,shape=outer_left,waterlogged=false]", - "minecraft:mossy_stone_brick_stairs[facing=south,half=top,shape=outer_right,waterlogged=true]", - "minecraft:mossy_stone_brick_stairs[facing=south,half=top,shape=outer_right,waterlogged=false]", - "minecraft:mossy_stone_brick_stairs[facing=south,half=bottom,shape=straight,waterlogged=true]", - "minecraft:mossy_stone_brick_stairs[facing=south,half=bottom,shape=straight,waterlogged=false]", - "minecraft:mossy_stone_brick_stairs[facing=south,half=bottom,shape=inner_left,waterlogged=true]", - "minecraft:mossy_stone_brick_stairs[facing=south,half=bottom,shape=inner_left,waterlogged=false]", - "minecraft:mossy_stone_brick_stairs[facing=south,half=bottom,shape=inner_right,waterlogged=true]", - "minecraft:mossy_stone_brick_stairs[facing=south,half=bottom,shape=inner_right,waterlogged=false]", - "minecraft:mossy_stone_brick_stairs[facing=south,half=bottom,shape=outer_left,waterlogged=true]", - "minecraft:mossy_stone_brick_stairs[facing=south,half=bottom,shape=outer_left,waterlogged=false]", - "minecraft:mossy_stone_brick_stairs[facing=south,half=bottom,shape=outer_right,waterlogged=true]", - "minecraft:mossy_stone_brick_stairs[facing=south,half=bottom,shape=outer_right,waterlogged=false]", - "minecraft:mossy_stone_brick_stairs[facing=west,half=top,shape=straight,waterlogged=true]", - "minecraft:mossy_stone_brick_stairs[facing=west,half=top,shape=straight,waterlogged=false]", - "minecraft:mossy_stone_brick_stairs[facing=west,half=top,shape=inner_left,waterlogged=true]", - "minecraft:mossy_stone_brick_stairs[facing=west,half=top,shape=inner_left,waterlogged=false]", - "minecraft:mossy_stone_brick_stairs[facing=west,half=top,shape=inner_right,waterlogged=true]", - "minecraft:mossy_stone_brick_stairs[facing=west,half=top,shape=inner_right,waterlogged=false]", - "minecraft:mossy_stone_brick_stairs[facing=west,half=top,shape=outer_left,waterlogged=true]", - "minecraft:mossy_stone_brick_stairs[facing=west,half=top,shape=outer_left,waterlogged=false]", - "minecraft:mossy_stone_brick_stairs[facing=west,half=top,shape=outer_right,waterlogged=true]", - "minecraft:mossy_stone_brick_stairs[facing=west,half=top,shape=outer_right,waterlogged=false]", - "minecraft:mossy_stone_brick_stairs[facing=west,half=bottom,shape=straight,waterlogged=true]", - "minecraft:mossy_stone_brick_stairs[facing=west,half=bottom,shape=straight,waterlogged=false]", - "minecraft:mossy_stone_brick_stairs[facing=west,half=bottom,shape=inner_left,waterlogged=true]", - "minecraft:mossy_stone_brick_stairs[facing=west,half=bottom,shape=inner_left,waterlogged=false]", - "minecraft:mossy_stone_brick_stairs[facing=west,half=bottom,shape=inner_right,waterlogged=true]", - "minecraft:mossy_stone_brick_stairs[facing=west,half=bottom,shape=inner_right,waterlogged=false]", - "minecraft:mossy_stone_brick_stairs[facing=west,half=bottom,shape=outer_left,waterlogged=true]", - "minecraft:mossy_stone_brick_stairs[facing=west,half=bottom,shape=outer_left,waterlogged=false]", - "minecraft:mossy_stone_brick_stairs[facing=west,half=bottom,shape=outer_right,waterlogged=true]", - "minecraft:mossy_stone_brick_stairs[facing=west,half=bottom,shape=outer_right,waterlogged=false]", - "minecraft:mossy_stone_brick_stairs[facing=east,half=top,shape=straight,waterlogged=true]", - "minecraft:mossy_stone_brick_stairs[facing=east,half=top,shape=straight,waterlogged=false]", - "minecraft:mossy_stone_brick_stairs[facing=east,half=top,shape=inner_left,waterlogged=true]", - "minecraft:mossy_stone_brick_stairs[facing=east,half=top,shape=inner_left,waterlogged=false]", - "minecraft:mossy_stone_brick_stairs[facing=east,half=top,shape=inner_right,waterlogged=true]", - "minecraft:mossy_stone_brick_stairs[facing=east,half=top,shape=inner_right,waterlogged=false]", - "minecraft:mossy_stone_brick_stairs[facing=east,half=top,shape=outer_left,waterlogged=true]", - "minecraft:mossy_stone_brick_stairs[facing=east,half=top,shape=outer_left,waterlogged=false]", - "minecraft:mossy_stone_brick_stairs[facing=east,half=top,shape=outer_right,waterlogged=true]", - "minecraft:mossy_stone_brick_stairs[facing=east,half=top,shape=outer_right,waterlogged=false]", - "minecraft:mossy_stone_brick_stairs[facing=east,half=bottom,shape=straight,waterlogged=true]", - "minecraft:mossy_stone_brick_stairs[facing=east,half=bottom,shape=straight,waterlogged=false]", - "minecraft:mossy_stone_brick_stairs[facing=east,half=bottom,shape=inner_left,waterlogged=true]", - "minecraft:mossy_stone_brick_stairs[facing=east,half=bottom,shape=inner_left,waterlogged=false]", - "minecraft:mossy_stone_brick_stairs[facing=east,half=bottom,shape=inner_right,waterlogged=true]", - "minecraft:mossy_stone_brick_stairs[facing=east,half=bottom,shape=inner_right,waterlogged=false]", - "minecraft:mossy_stone_brick_stairs[facing=east,half=bottom,shape=outer_left,waterlogged=true]", - "minecraft:mossy_stone_brick_stairs[facing=east,half=bottom,shape=outer_left,waterlogged=false]", - "minecraft:mossy_stone_brick_stairs[facing=east,half=bottom,shape=outer_right,waterlogged=true]", - "minecraft:mossy_stone_brick_stairs[facing=east,half=bottom,shape=outer_right,waterlogged=false]", - "minecraft:polished_diorite_stairs[facing=north,half=top,shape=straight,waterlogged=true]", - "minecraft:polished_diorite_stairs[facing=north,half=top,shape=straight,waterlogged=false]", - "minecraft:polished_diorite_stairs[facing=north,half=top,shape=inner_left,waterlogged=true]", - "minecraft:polished_diorite_stairs[facing=north,half=top,shape=inner_left,waterlogged=false]", - "minecraft:polished_diorite_stairs[facing=north,half=top,shape=inner_right,waterlogged=true]", - "minecraft:polished_diorite_stairs[facing=north,half=top,shape=inner_right,waterlogged=false]", - "minecraft:polished_diorite_stairs[facing=north,half=top,shape=outer_left,waterlogged=true]", - "minecraft:polished_diorite_stairs[facing=north,half=top,shape=outer_left,waterlogged=false]", - "minecraft:polished_diorite_stairs[facing=north,half=top,shape=outer_right,waterlogged=true]", - "minecraft:polished_diorite_stairs[facing=north,half=top,shape=outer_right,waterlogged=false]", - "minecraft:polished_diorite_stairs[facing=north,half=bottom,shape=straight,waterlogged=true]", - "minecraft:polished_diorite_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]", - "minecraft:polished_diorite_stairs[facing=north,half=bottom,shape=inner_left,waterlogged=true]", - "minecraft:polished_diorite_stairs[facing=north,half=bottom,shape=inner_left,waterlogged=false]", - "minecraft:polished_diorite_stairs[facing=north,half=bottom,shape=inner_right,waterlogged=true]", - "minecraft:polished_diorite_stairs[facing=north,half=bottom,shape=inner_right,waterlogged=false]", - "minecraft:polished_diorite_stairs[facing=north,half=bottom,shape=outer_left,waterlogged=true]", - "minecraft:polished_diorite_stairs[facing=north,half=bottom,shape=outer_left,waterlogged=false]", - "minecraft:polished_diorite_stairs[facing=north,half=bottom,shape=outer_right,waterlogged=true]", - "minecraft:polished_diorite_stairs[facing=north,half=bottom,shape=outer_right,waterlogged=false]", - "minecraft:polished_diorite_stairs[facing=south,half=top,shape=straight,waterlogged=true]", - "minecraft:polished_diorite_stairs[facing=south,half=top,shape=straight,waterlogged=false]", - "minecraft:polished_diorite_stairs[facing=south,half=top,shape=inner_left,waterlogged=true]", - "minecraft:polished_diorite_stairs[facing=south,half=top,shape=inner_left,waterlogged=false]", - "minecraft:polished_diorite_stairs[facing=south,half=top,shape=inner_right,waterlogged=true]", - "minecraft:polished_diorite_stairs[facing=south,half=top,shape=inner_right,waterlogged=false]", - "minecraft:polished_diorite_stairs[facing=south,half=top,shape=outer_left,waterlogged=true]", - "minecraft:polished_diorite_stairs[facing=south,half=top,shape=outer_left,waterlogged=false]", - "minecraft:polished_diorite_stairs[facing=south,half=top,shape=outer_right,waterlogged=true]", - "minecraft:polished_diorite_stairs[facing=south,half=top,shape=outer_right,waterlogged=false]", - "minecraft:polished_diorite_stairs[facing=south,half=bottom,shape=straight,waterlogged=true]", - "minecraft:polished_diorite_stairs[facing=south,half=bottom,shape=straight,waterlogged=false]", - "minecraft:polished_diorite_stairs[facing=south,half=bottom,shape=inner_left,waterlogged=true]", - "minecraft:polished_diorite_stairs[facing=south,half=bottom,shape=inner_left,waterlogged=false]", - "minecraft:polished_diorite_stairs[facing=south,half=bottom,shape=inner_right,waterlogged=true]", - "minecraft:polished_diorite_stairs[facing=south,half=bottom,shape=inner_right,waterlogged=false]", - "minecraft:polished_diorite_stairs[facing=south,half=bottom,shape=outer_left,waterlogged=true]", - "minecraft:polished_diorite_stairs[facing=south,half=bottom,shape=outer_left,waterlogged=false]", - "minecraft:polished_diorite_stairs[facing=south,half=bottom,shape=outer_right,waterlogged=true]", - "minecraft:polished_diorite_stairs[facing=south,half=bottom,shape=outer_right,waterlogged=false]", - "minecraft:polished_diorite_stairs[facing=west,half=top,shape=straight,waterlogged=true]", - "minecraft:polished_diorite_stairs[facing=west,half=top,shape=straight,waterlogged=false]", - "minecraft:polished_diorite_stairs[facing=west,half=top,shape=inner_left,waterlogged=true]", - "minecraft:polished_diorite_stairs[facing=west,half=top,shape=inner_left,waterlogged=false]", - "minecraft:polished_diorite_stairs[facing=west,half=top,shape=inner_right,waterlogged=true]", - "minecraft:polished_diorite_stairs[facing=west,half=top,shape=inner_right,waterlogged=false]", - "minecraft:polished_diorite_stairs[facing=west,half=top,shape=outer_left,waterlogged=true]", - "minecraft:polished_diorite_stairs[facing=west,half=top,shape=outer_left,waterlogged=false]", - "minecraft:polished_diorite_stairs[facing=west,half=top,shape=outer_right,waterlogged=true]", - "minecraft:polished_diorite_stairs[facing=west,half=top,shape=outer_right,waterlogged=false]", - "minecraft:polished_diorite_stairs[facing=west,half=bottom,shape=straight,waterlogged=true]", - "minecraft:polished_diorite_stairs[facing=west,half=bottom,shape=straight,waterlogged=false]", - "minecraft:polished_diorite_stairs[facing=west,half=bottom,shape=inner_left,waterlogged=true]", - "minecraft:polished_diorite_stairs[facing=west,half=bottom,shape=inner_left,waterlogged=false]", - "minecraft:polished_diorite_stairs[facing=west,half=bottom,shape=inner_right,waterlogged=true]", - "minecraft:polished_diorite_stairs[facing=west,half=bottom,shape=inner_right,waterlogged=false]", - "minecraft:polished_diorite_stairs[facing=west,half=bottom,shape=outer_left,waterlogged=true]", - "minecraft:polished_diorite_stairs[facing=west,half=bottom,shape=outer_left,waterlogged=false]", - "minecraft:polished_diorite_stairs[facing=west,half=bottom,shape=outer_right,waterlogged=true]", - "minecraft:polished_diorite_stairs[facing=west,half=bottom,shape=outer_right,waterlogged=false]", - "minecraft:polished_diorite_stairs[facing=east,half=top,shape=straight,waterlogged=true]", - "minecraft:polished_diorite_stairs[facing=east,half=top,shape=straight,waterlogged=false]", - "minecraft:polished_diorite_stairs[facing=east,half=top,shape=inner_left,waterlogged=true]", - "minecraft:polished_diorite_stairs[facing=east,half=top,shape=inner_left,waterlogged=false]", - "minecraft:polished_diorite_stairs[facing=east,half=top,shape=inner_right,waterlogged=true]", - "minecraft:polished_diorite_stairs[facing=east,half=top,shape=inner_right,waterlogged=false]", - "minecraft:polished_diorite_stairs[facing=east,half=top,shape=outer_left,waterlogged=true]", - "minecraft:polished_diorite_stairs[facing=east,half=top,shape=outer_left,waterlogged=false]", - "minecraft:polished_diorite_stairs[facing=east,half=top,shape=outer_right,waterlogged=true]", - "minecraft:polished_diorite_stairs[facing=east,half=top,shape=outer_right,waterlogged=false]", - "minecraft:polished_diorite_stairs[facing=east,half=bottom,shape=straight,waterlogged=true]", - "minecraft:polished_diorite_stairs[facing=east,half=bottom,shape=straight,waterlogged=false]", - "minecraft:polished_diorite_stairs[facing=east,half=bottom,shape=inner_left,waterlogged=true]", - "minecraft:polished_diorite_stairs[facing=east,half=bottom,shape=inner_left,waterlogged=false]", - "minecraft:polished_diorite_stairs[facing=east,half=bottom,shape=inner_right,waterlogged=true]", - "minecraft:polished_diorite_stairs[facing=east,half=bottom,shape=inner_right,waterlogged=false]", - "minecraft:polished_diorite_stairs[facing=east,half=bottom,shape=outer_left,waterlogged=true]", - "minecraft:polished_diorite_stairs[facing=east,half=bottom,shape=outer_left,waterlogged=false]", - "minecraft:polished_diorite_stairs[facing=east,half=bottom,shape=outer_right,waterlogged=true]", - "minecraft:polished_diorite_stairs[facing=east,half=bottom,shape=outer_right,waterlogged=false]", - "minecraft:mossy_cobblestone_stairs[facing=north,half=top,shape=straight,waterlogged=true]", - "minecraft:mossy_cobblestone_stairs[facing=north,half=top,shape=straight,waterlogged=false]", - "minecraft:mossy_cobblestone_stairs[facing=north,half=top,shape=inner_left,waterlogged=true]", - "minecraft:mossy_cobblestone_stairs[facing=north,half=top,shape=inner_left,waterlogged=false]", - "minecraft:mossy_cobblestone_stairs[facing=north,half=top,shape=inner_right,waterlogged=true]", - "minecraft:mossy_cobblestone_stairs[facing=north,half=top,shape=inner_right,waterlogged=false]", - "minecraft:mossy_cobblestone_stairs[facing=north,half=top,shape=outer_left,waterlogged=true]", - "minecraft:mossy_cobblestone_stairs[facing=north,half=top,shape=outer_left,waterlogged=false]", - "minecraft:mossy_cobblestone_stairs[facing=north,half=top,shape=outer_right,waterlogged=true]", - "minecraft:mossy_cobblestone_stairs[facing=north,half=top,shape=outer_right,waterlogged=false]", - "minecraft:mossy_cobblestone_stairs[facing=north,half=bottom,shape=straight,waterlogged=true]", - "minecraft:mossy_cobblestone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]", - "minecraft:mossy_cobblestone_stairs[facing=north,half=bottom,shape=inner_left,waterlogged=true]", - "minecraft:mossy_cobblestone_stairs[facing=north,half=bottom,shape=inner_left,waterlogged=false]", - "minecraft:mossy_cobblestone_stairs[facing=north,half=bottom,shape=inner_right,waterlogged=true]", - "minecraft:mossy_cobblestone_stairs[facing=north,half=bottom,shape=inner_right,waterlogged=false]", - "minecraft:mossy_cobblestone_stairs[facing=north,half=bottom,shape=outer_left,waterlogged=true]", - "minecraft:mossy_cobblestone_stairs[facing=north,half=bottom,shape=outer_left,waterlogged=false]", - "minecraft:mossy_cobblestone_stairs[facing=north,half=bottom,shape=outer_right,waterlogged=true]", - "minecraft:mossy_cobblestone_stairs[facing=north,half=bottom,shape=outer_right,waterlogged=false]", - "minecraft:mossy_cobblestone_stairs[facing=south,half=top,shape=straight,waterlogged=true]", - "minecraft:mossy_cobblestone_stairs[facing=south,half=top,shape=straight,waterlogged=false]", - "minecraft:mossy_cobblestone_stairs[facing=south,half=top,shape=inner_left,waterlogged=true]", - "minecraft:mossy_cobblestone_stairs[facing=south,half=top,shape=inner_left,waterlogged=false]", - "minecraft:mossy_cobblestone_stairs[facing=south,half=top,shape=inner_right,waterlogged=true]", - "minecraft:mossy_cobblestone_stairs[facing=south,half=top,shape=inner_right,waterlogged=false]", - "minecraft:mossy_cobblestone_stairs[facing=south,half=top,shape=outer_left,waterlogged=true]", - "minecraft:mossy_cobblestone_stairs[facing=south,half=top,shape=outer_left,waterlogged=false]", - "minecraft:mossy_cobblestone_stairs[facing=south,half=top,shape=outer_right,waterlogged=true]", - "minecraft:mossy_cobblestone_stairs[facing=south,half=top,shape=outer_right,waterlogged=false]", - "minecraft:mossy_cobblestone_stairs[facing=south,half=bottom,shape=straight,waterlogged=true]", - "minecraft:mossy_cobblestone_stairs[facing=south,half=bottom,shape=straight,waterlogged=false]", - "minecraft:mossy_cobblestone_stairs[facing=south,half=bottom,shape=inner_left,waterlogged=true]", - "minecraft:mossy_cobblestone_stairs[facing=south,half=bottom,shape=inner_left,waterlogged=false]", - "minecraft:mossy_cobblestone_stairs[facing=south,half=bottom,shape=inner_right,waterlogged=true]", - "minecraft:mossy_cobblestone_stairs[facing=south,half=bottom,shape=inner_right,waterlogged=false]", - "minecraft:mossy_cobblestone_stairs[facing=south,half=bottom,shape=outer_left,waterlogged=true]", - "minecraft:mossy_cobblestone_stairs[facing=south,half=bottom,shape=outer_left,waterlogged=false]", - "minecraft:mossy_cobblestone_stairs[facing=south,half=bottom,shape=outer_right,waterlogged=true]", - "minecraft:mossy_cobblestone_stairs[facing=south,half=bottom,shape=outer_right,waterlogged=false]", - "minecraft:mossy_cobblestone_stairs[facing=west,half=top,shape=straight,waterlogged=true]", - "minecraft:mossy_cobblestone_stairs[facing=west,half=top,shape=straight,waterlogged=false]", - "minecraft:mossy_cobblestone_stairs[facing=west,half=top,shape=inner_left,waterlogged=true]", - "minecraft:mossy_cobblestone_stairs[facing=west,half=top,shape=inner_left,waterlogged=false]", - "minecraft:mossy_cobblestone_stairs[facing=west,half=top,shape=inner_right,waterlogged=true]", - "minecraft:mossy_cobblestone_stairs[facing=west,half=top,shape=inner_right,waterlogged=false]", - "minecraft:mossy_cobblestone_stairs[facing=west,half=top,shape=outer_left,waterlogged=true]", - "minecraft:mossy_cobblestone_stairs[facing=west,half=top,shape=outer_left,waterlogged=false]", - "minecraft:mossy_cobblestone_stairs[facing=west,half=top,shape=outer_right,waterlogged=true]", - "minecraft:mossy_cobblestone_stairs[facing=west,half=top,shape=outer_right,waterlogged=false]", - "minecraft:mossy_cobblestone_stairs[facing=west,half=bottom,shape=straight,waterlogged=true]", - "minecraft:mossy_cobblestone_stairs[facing=west,half=bottom,shape=straight,waterlogged=false]", - "minecraft:mossy_cobblestone_stairs[facing=west,half=bottom,shape=inner_left,waterlogged=true]", - "minecraft:mossy_cobblestone_stairs[facing=west,half=bottom,shape=inner_left,waterlogged=false]", - "minecraft:mossy_cobblestone_stairs[facing=west,half=bottom,shape=inner_right,waterlogged=true]", - "minecraft:mossy_cobblestone_stairs[facing=west,half=bottom,shape=inner_right,waterlogged=false]", - "minecraft:mossy_cobblestone_stairs[facing=west,half=bottom,shape=outer_left,waterlogged=true]", - "minecraft:mossy_cobblestone_stairs[facing=west,half=bottom,shape=outer_left,waterlogged=false]", - "minecraft:mossy_cobblestone_stairs[facing=west,half=bottom,shape=outer_right,waterlogged=true]", - "minecraft:mossy_cobblestone_stairs[facing=west,half=bottom,shape=outer_right,waterlogged=false]", - "minecraft:mossy_cobblestone_stairs[facing=east,half=top,shape=straight,waterlogged=true]", - "minecraft:mossy_cobblestone_stairs[facing=east,half=top,shape=straight,waterlogged=false]", - "minecraft:mossy_cobblestone_stairs[facing=east,half=top,shape=inner_left,waterlogged=true]", - "minecraft:mossy_cobblestone_stairs[facing=east,half=top,shape=inner_left,waterlogged=false]", - "minecraft:mossy_cobblestone_stairs[facing=east,half=top,shape=inner_right,waterlogged=true]", - "minecraft:mossy_cobblestone_stairs[facing=east,half=top,shape=inner_right,waterlogged=false]", - "minecraft:mossy_cobblestone_stairs[facing=east,half=top,shape=outer_left,waterlogged=true]", - "minecraft:mossy_cobblestone_stairs[facing=east,half=top,shape=outer_left,waterlogged=false]", - "minecraft:mossy_cobblestone_stairs[facing=east,half=top,shape=outer_right,waterlogged=true]", - "minecraft:mossy_cobblestone_stairs[facing=east,half=top,shape=outer_right,waterlogged=false]", - "minecraft:mossy_cobblestone_stairs[facing=east,half=bottom,shape=straight,waterlogged=true]", - "minecraft:mossy_cobblestone_stairs[facing=east,half=bottom,shape=straight,waterlogged=false]", - "minecraft:mossy_cobblestone_stairs[facing=east,half=bottom,shape=inner_left,waterlogged=true]", - "minecraft:mossy_cobblestone_stairs[facing=east,half=bottom,shape=inner_left,waterlogged=false]", - "minecraft:mossy_cobblestone_stairs[facing=east,half=bottom,shape=inner_right,waterlogged=true]", - "minecraft:mossy_cobblestone_stairs[facing=east,half=bottom,shape=inner_right,waterlogged=false]", - "minecraft:mossy_cobblestone_stairs[facing=east,half=bottom,shape=outer_left,waterlogged=true]", - "minecraft:mossy_cobblestone_stairs[facing=east,half=bottom,shape=outer_left,waterlogged=false]", - "minecraft:mossy_cobblestone_stairs[facing=east,half=bottom,shape=outer_right,waterlogged=true]", - "minecraft:mossy_cobblestone_stairs[facing=east,half=bottom,shape=outer_right,waterlogged=false]", - "minecraft:end_stone_brick_stairs[facing=north,half=top,shape=straight,waterlogged=true]", - "minecraft:end_stone_brick_stairs[facing=north,half=top,shape=straight,waterlogged=false]", - "minecraft:end_stone_brick_stairs[facing=north,half=top,shape=inner_left,waterlogged=true]", - "minecraft:end_stone_brick_stairs[facing=north,half=top,shape=inner_left,waterlogged=false]", - "minecraft:end_stone_brick_stairs[facing=north,half=top,shape=inner_right,waterlogged=true]", - "minecraft:end_stone_brick_stairs[facing=north,half=top,shape=inner_right,waterlogged=false]", - "minecraft:end_stone_brick_stairs[facing=north,half=top,shape=outer_left,waterlogged=true]", - "minecraft:end_stone_brick_stairs[facing=north,half=top,shape=outer_left,waterlogged=false]", - "minecraft:end_stone_brick_stairs[facing=north,half=top,shape=outer_right,waterlogged=true]", - "minecraft:end_stone_brick_stairs[facing=north,half=top,shape=outer_right,waterlogged=false]", - "minecraft:end_stone_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=true]", - "minecraft:end_stone_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]", - "minecraft:end_stone_brick_stairs[facing=north,half=bottom,shape=inner_left,waterlogged=true]", - "minecraft:end_stone_brick_stairs[facing=north,half=bottom,shape=inner_left,waterlogged=false]", - "minecraft:end_stone_brick_stairs[facing=north,half=bottom,shape=inner_right,waterlogged=true]", - "minecraft:end_stone_brick_stairs[facing=north,half=bottom,shape=inner_right,waterlogged=false]", - "minecraft:end_stone_brick_stairs[facing=north,half=bottom,shape=outer_left,waterlogged=true]", - "minecraft:end_stone_brick_stairs[facing=north,half=bottom,shape=outer_left,waterlogged=false]", - "minecraft:end_stone_brick_stairs[facing=north,half=bottom,shape=outer_right,waterlogged=true]", - "minecraft:end_stone_brick_stairs[facing=north,half=bottom,shape=outer_right,waterlogged=false]", - "minecraft:end_stone_brick_stairs[facing=south,half=top,shape=straight,waterlogged=true]", - "minecraft:end_stone_brick_stairs[facing=south,half=top,shape=straight,waterlogged=false]", - "minecraft:end_stone_brick_stairs[facing=south,half=top,shape=inner_left,waterlogged=true]", - "minecraft:end_stone_brick_stairs[facing=south,half=top,shape=inner_left,waterlogged=false]", - "minecraft:end_stone_brick_stairs[facing=south,half=top,shape=inner_right,waterlogged=true]", - "minecraft:end_stone_brick_stairs[facing=south,half=top,shape=inner_right,waterlogged=false]", - "minecraft:end_stone_brick_stairs[facing=south,half=top,shape=outer_left,waterlogged=true]", - "minecraft:end_stone_brick_stairs[facing=south,half=top,shape=outer_left,waterlogged=false]", - "minecraft:end_stone_brick_stairs[facing=south,half=top,shape=outer_right,waterlogged=true]", - "minecraft:end_stone_brick_stairs[facing=south,half=top,shape=outer_right,waterlogged=false]", - "minecraft:end_stone_brick_stairs[facing=south,half=bottom,shape=straight,waterlogged=true]", - "minecraft:end_stone_brick_stairs[facing=south,half=bottom,shape=straight,waterlogged=false]", - "minecraft:end_stone_brick_stairs[facing=south,half=bottom,shape=inner_left,waterlogged=true]", - "minecraft:end_stone_brick_stairs[facing=south,half=bottom,shape=inner_left,waterlogged=false]", - "minecraft:end_stone_brick_stairs[facing=south,half=bottom,shape=inner_right,waterlogged=true]", - "minecraft:end_stone_brick_stairs[facing=south,half=bottom,shape=inner_right,waterlogged=false]", - "minecraft:end_stone_brick_stairs[facing=south,half=bottom,shape=outer_left,waterlogged=true]", - "minecraft:end_stone_brick_stairs[facing=south,half=bottom,shape=outer_left,waterlogged=false]", - "minecraft:end_stone_brick_stairs[facing=south,half=bottom,shape=outer_right,waterlogged=true]", - "minecraft:end_stone_brick_stairs[facing=south,half=bottom,shape=outer_right,waterlogged=false]", - "minecraft:end_stone_brick_stairs[facing=west,half=top,shape=straight,waterlogged=true]", - "minecraft:end_stone_brick_stairs[facing=west,half=top,shape=straight,waterlogged=false]", - "minecraft:end_stone_brick_stairs[facing=west,half=top,shape=inner_left,waterlogged=true]", - "minecraft:end_stone_brick_stairs[facing=west,half=top,shape=inner_left,waterlogged=false]", - "minecraft:end_stone_brick_stairs[facing=west,half=top,shape=inner_right,waterlogged=true]", - "minecraft:end_stone_brick_stairs[facing=west,half=top,shape=inner_right,waterlogged=false]", - "minecraft:end_stone_brick_stairs[facing=west,half=top,shape=outer_left,waterlogged=true]", - "minecraft:end_stone_brick_stairs[facing=west,half=top,shape=outer_left,waterlogged=false]", - "minecraft:end_stone_brick_stairs[facing=west,half=top,shape=outer_right,waterlogged=true]", - "minecraft:end_stone_brick_stairs[facing=west,half=top,shape=outer_right,waterlogged=false]", - "minecraft:end_stone_brick_stairs[facing=west,half=bottom,shape=straight,waterlogged=true]", - "minecraft:end_stone_brick_stairs[facing=west,half=bottom,shape=straight,waterlogged=false]", - "minecraft:end_stone_brick_stairs[facing=west,half=bottom,shape=inner_left,waterlogged=true]", - "minecraft:end_stone_brick_stairs[facing=west,half=bottom,shape=inner_left,waterlogged=false]", - "minecraft:end_stone_brick_stairs[facing=west,half=bottom,shape=inner_right,waterlogged=true]", - "minecraft:end_stone_brick_stairs[facing=west,half=bottom,shape=inner_right,waterlogged=false]", - "minecraft:end_stone_brick_stairs[facing=west,half=bottom,shape=outer_left,waterlogged=true]", - "minecraft:end_stone_brick_stairs[facing=west,half=bottom,shape=outer_left,waterlogged=false]", - "minecraft:end_stone_brick_stairs[facing=west,half=bottom,shape=outer_right,waterlogged=true]", - "minecraft:end_stone_brick_stairs[facing=west,half=bottom,shape=outer_right,waterlogged=false]", - "minecraft:end_stone_brick_stairs[facing=east,half=top,shape=straight,waterlogged=true]", - "minecraft:end_stone_brick_stairs[facing=east,half=top,shape=straight,waterlogged=false]", - "minecraft:end_stone_brick_stairs[facing=east,half=top,shape=inner_left,waterlogged=true]", - "minecraft:end_stone_brick_stairs[facing=east,half=top,shape=inner_left,waterlogged=false]", - "minecraft:end_stone_brick_stairs[facing=east,half=top,shape=inner_right,waterlogged=true]", - "minecraft:end_stone_brick_stairs[facing=east,half=top,shape=inner_right,waterlogged=false]", - "minecraft:end_stone_brick_stairs[facing=east,half=top,shape=outer_left,waterlogged=true]", - "minecraft:end_stone_brick_stairs[facing=east,half=top,shape=outer_left,waterlogged=false]", - "minecraft:end_stone_brick_stairs[facing=east,half=top,shape=outer_right,waterlogged=true]", - "minecraft:end_stone_brick_stairs[facing=east,half=top,shape=outer_right,waterlogged=false]", - "minecraft:end_stone_brick_stairs[facing=east,half=bottom,shape=straight,waterlogged=true]", - "minecraft:end_stone_brick_stairs[facing=east,half=bottom,shape=straight,waterlogged=false]", - "minecraft:end_stone_brick_stairs[facing=east,half=bottom,shape=inner_left,waterlogged=true]", - "minecraft:end_stone_brick_stairs[facing=east,half=bottom,shape=inner_left,waterlogged=false]", - "minecraft:end_stone_brick_stairs[facing=east,half=bottom,shape=inner_right,waterlogged=true]", - "minecraft:end_stone_brick_stairs[facing=east,half=bottom,shape=inner_right,waterlogged=false]", - "minecraft:end_stone_brick_stairs[facing=east,half=bottom,shape=outer_left,waterlogged=true]", - "minecraft:end_stone_brick_stairs[facing=east,half=bottom,shape=outer_left,waterlogged=false]", - "minecraft:end_stone_brick_stairs[facing=east,half=bottom,shape=outer_right,waterlogged=true]", - "minecraft:end_stone_brick_stairs[facing=east,half=bottom,shape=outer_right,waterlogged=false]", - "minecraft:stone_stairs[facing=north,half=top,shape=straight,waterlogged=true]", - "minecraft:stone_stairs[facing=north,half=top,shape=straight,waterlogged=false]", - "minecraft:stone_stairs[facing=north,half=top,shape=inner_left,waterlogged=true]", - "minecraft:stone_stairs[facing=north,half=top,shape=inner_left,waterlogged=false]", - "minecraft:stone_stairs[facing=north,half=top,shape=inner_right,waterlogged=true]", - "minecraft:stone_stairs[facing=north,half=top,shape=inner_right,waterlogged=false]", - "minecraft:stone_stairs[facing=north,half=top,shape=outer_left,waterlogged=true]", - "minecraft:stone_stairs[facing=north,half=top,shape=outer_left,waterlogged=false]", - "minecraft:stone_stairs[facing=north,half=top,shape=outer_right,waterlogged=true]", - "minecraft:stone_stairs[facing=north,half=top,shape=outer_right,waterlogged=false]", - "minecraft:stone_stairs[facing=north,half=bottom,shape=straight,waterlogged=true]", - "minecraft:stone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]", - "minecraft:stone_stairs[facing=north,half=bottom,shape=inner_left,waterlogged=true]", - "minecraft:stone_stairs[facing=north,half=bottom,shape=inner_left,waterlogged=false]", - "minecraft:stone_stairs[facing=north,half=bottom,shape=inner_right,waterlogged=true]", - "minecraft:stone_stairs[facing=north,half=bottom,shape=inner_right,waterlogged=false]", - "minecraft:stone_stairs[facing=north,half=bottom,shape=outer_left,waterlogged=true]", - "minecraft:stone_stairs[facing=north,half=bottom,shape=outer_left,waterlogged=false]", - "minecraft:stone_stairs[facing=north,half=bottom,shape=outer_right,waterlogged=true]", - "minecraft:stone_stairs[facing=north,half=bottom,shape=outer_right,waterlogged=false]", - "minecraft:stone_stairs[facing=south,half=top,shape=straight,waterlogged=true]", - "minecraft:stone_stairs[facing=south,half=top,shape=straight,waterlogged=false]", - "minecraft:stone_stairs[facing=south,half=top,shape=inner_left,waterlogged=true]", - "minecraft:stone_stairs[facing=south,half=top,shape=inner_left,waterlogged=false]", - "minecraft:stone_stairs[facing=south,half=top,shape=inner_right,waterlogged=true]", - "minecraft:stone_stairs[facing=south,half=top,shape=inner_right,waterlogged=false]", - "minecraft:stone_stairs[facing=south,half=top,shape=outer_left,waterlogged=true]", - "minecraft:stone_stairs[facing=south,half=top,shape=outer_left,waterlogged=false]", - "minecraft:stone_stairs[facing=south,half=top,shape=outer_right,waterlogged=true]", - "minecraft:stone_stairs[facing=south,half=top,shape=outer_right,waterlogged=false]", - "minecraft:stone_stairs[facing=south,half=bottom,shape=straight,waterlogged=true]", - "minecraft:stone_stairs[facing=south,half=bottom,shape=straight,waterlogged=false]", - "minecraft:stone_stairs[facing=south,half=bottom,shape=inner_left,waterlogged=true]", - "minecraft:stone_stairs[facing=south,half=bottom,shape=inner_left,waterlogged=false]", - "minecraft:stone_stairs[facing=south,half=bottom,shape=inner_right,waterlogged=true]", - "minecraft:stone_stairs[facing=south,half=bottom,shape=inner_right,waterlogged=false]", - "minecraft:stone_stairs[facing=south,half=bottom,shape=outer_left,waterlogged=true]", - "minecraft:stone_stairs[facing=south,half=bottom,shape=outer_left,waterlogged=false]", - "minecraft:stone_stairs[facing=south,half=bottom,shape=outer_right,waterlogged=true]", - "minecraft:stone_stairs[facing=south,half=bottom,shape=outer_right,waterlogged=false]", - "minecraft:stone_stairs[facing=west,half=top,shape=straight,waterlogged=true]", - "minecraft:stone_stairs[facing=west,half=top,shape=straight,waterlogged=false]", - "minecraft:stone_stairs[facing=west,half=top,shape=inner_left,waterlogged=true]", - "minecraft:stone_stairs[facing=west,half=top,shape=inner_left,waterlogged=false]", - "minecraft:stone_stairs[facing=west,half=top,shape=inner_right,waterlogged=true]", - "minecraft:stone_stairs[facing=west,half=top,shape=inner_right,waterlogged=false]", - "minecraft:stone_stairs[facing=west,half=top,shape=outer_left,waterlogged=true]", - "minecraft:stone_stairs[facing=west,half=top,shape=outer_left,waterlogged=false]", - "minecraft:stone_stairs[facing=west,half=top,shape=outer_right,waterlogged=true]", - "minecraft:stone_stairs[facing=west,half=top,shape=outer_right,waterlogged=false]", - "minecraft:stone_stairs[facing=west,half=bottom,shape=straight,waterlogged=true]", - "minecraft:stone_stairs[facing=west,half=bottom,shape=straight,waterlogged=false]", - "minecraft:stone_stairs[facing=west,half=bottom,shape=inner_left,waterlogged=true]", - "minecraft:stone_stairs[facing=west,half=bottom,shape=inner_left,waterlogged=false]", - "minecraft:stone_stairs[facing=west,half=bottom,shape=inner_right,waterlogged=true]", - "minecraft:stone_stairs[facing=west,half=bottom,shape=inner_right,waterlogged=false]", - "minecraft:stone_stairs[facing=west,half=bottom,shape=outer_left,waterlogged=true]", - "minecraft:stone_stairs[facing=west,half=bottom,shape=outer_left,waterlogged=false]", - "minecraft:stone_stairs[facing=west,half=bottom,shape=outer_right,waterlogged=true]", - "minecraft:stone_stairs[facing=west,half=bottom,shape=outer_right,waterlogged=false]", - "minecraft:stone_stairs[facing=east,half=top,shape=straight,waterlogged=true]", - "minecraft:stone_stairs[facing=east,half=top,shape=straight,waterlogged=false]", - "minecraft:stone_stairs[facing=east,half=top,shape=inner_left,waterlogged=true]", - "minecraft:stone_stairs[facing=east,half=top,shape=inner_left,waterlogged=false]", - "minecraft:stone_stairs[facing=east,half=top,shape=inner_right,waterlogged=true]", - "minecraft:stone_stairs[facing=east,half=top,shape=inner_right,waterlogged=false]", - "minecraft:stone_stairs[facing=east,half=top,shape=outer_left,waterlogged=true]", - "minecraft:stone_stairs[facing=east,half=top,shape=outer_left,waterlogged=false]", - "minecraft:stone_stairs[facing=east,half=top,shape=outer_right,waterlogged=true]", - "minecraft:stone_stairs[facing=east,half=top,shape=outer_right,waterlogged=false]", - "minecraft:stone_stairs[facing=east,half=bottom,shape=straight,waterlogged=true]", - "minecraft:stone_stairs[facing=east,half=bottom,shape=straight,waterlogged=false]", - "minecraft:stone_stairs[facing=east,half=bottom,shape=inner_left,waterlogged=true]", - "minecraft:stone_stairs[facing=east,half=bottom,shape=inner_left,waterlogged=false]", - "minecraft:stone_stairs[facing=east,half=bottom,shape=inner_right,waterlogged=true]", - "minecraft:stone_stairs[facing=east,half=bottom,shape=inner_right,waterlogged=false]", - "minecraft:stone_stairs[facing=east,half=bottom,shape=outer_left,waterlogged=true]", - "minecraft:stone_stairs[facing=east,half=bottom,shape=outer_left,waterlogged=false]", - "minecraft:stone_stairs[facing=east,half=bottom,shape=outer_right,waterlogged=true]", - "minecraft:stone_stairs[facing=east,half=bottom,shape=outer_right,waterlogged=false]", - "minecraft:smooth_sandstone_stairs[facing=north,half=top,shape=straight,waterlogged=true]", - "minecraft:smooth_sandstone_stairs[facing=north,half=top,shape=straight,waterlogged=false]", - "minecraft:smooth_sandstone_stairs[facing=north,half=top,shape=inner_left,waterlogged=true]", - "minecraft:smooth_sandstone_stairs[facing=north,half=top,shape=inner_left,waterlogged=false]", - "minecraft:smooth_sandstone_stairs[facing=north,half=top,shape=inner_right,waterlogged=true]", - "minecraft:smooth_sandstone_stairs[facing=north,half=top,shape=inner_right,waterlogged=false]", - "minecraft:smooth_sandstone_stairs[facing=north,half=top,shape=outer_left,waterlogged=true]", - "minecraft:smooth_sandstone_stairs[facing=north,half=top,shape=outer_left,waterlogged=false]", - "minecraft:smooth_sandstone_stairs[facing=north,half=top,shape=outer_right,waterlogged=true]", - "minecraft:smooth_sandstone_stairs[facing=north,half=top,shape=outer_right,waterlogged=false]", - "minecraft:smooth_sandstone_stairs[facing=north,half=bottom,shape=straight,waterlogged=true]", - "minecraft:smooth_sandstone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]", - "minecraft:smooth_sandstone_stairs[facing=north,half=bottom,shape=inner_left,waterlogged=true]", - "minecraft:smooth_sandstone_stairs[facing=north,half=bottom,shape=inner_left,waterlogged=false]", - "minecraft:smooth_sandstone_stairs[facing=north,half=bottom,shape=inner_right,waterlogged=true]", - "minecraft:smooth_sandstone_stairs[facing=north,half=bottom,shape=inner_right,waterlogged=false]", - "minecraft:smooth_sandstone_stairs[facing=north,half=bottom,shape=outer_left,waterlogged=true]", - "minecraft:smooth_sandstone_stairs[facing=north,half=bottom,shape=outer_left,waterlogged=false]", - "minecraft:smooth_sandstone_stairs[facing=north,half=bottom,shape=outer_right,waterlogged=true]", - "minecraft:smooth_sandstone_stairs[facing=north,half=bottom,shape=outer_right,waterlogged=false]", - "minecraft:smooth_sandstone_stairs[facing=south,half=top,shape=straight,waterlogged=true]", - "minecraft:smooth_sandstone_stairs[facing=south,half=top,shape=straight,waterlogged=false]", - "minecraft:smooth_sandstone_stairs[facing=south,half=top,shape=inner_left,waterlogged=true]", - "minecraft:smooth_sandstone_stairs[facing=south,half=top,shape=inner_left,waterlogged=false]", - "minecraft:smooth_sandstone_stairs[facing=south,half=top,shape=inner_right,waterlogged=true]", - "minecraft:smooth_sandstone_stairs[facing=south,half=top,shape=inner_right,waterlogged=false]", - "minecraft:smooth_sandstone_stairs[facing=south,half=top,shape=outer_left,waterlogged=true]", - "minecraft:smooth_sandstone_stairs[facing=south,half=top,shape=outer_left,waterlogged=false]", - "minecraft:smooth_sandstone_stairs[facing=south,half=top,shape=outer_right,waterlogged=true]", - "minecraft:smooth_sandstone_stairs[facing=south,half=top,shape=outer_right,waterlogged=false]", - "minecraft:smooth_sandstone_stairs[facing=south,half=bottom,shape=straight,waterlogged=true]", - "minecraft:smooth_sandstone_stairs[facing=south,half=bottom,shape=straight,waterlogged=false]", - "minecraft:smooth_sandstone_stairs[facing=south,half=bottom,shape=inner_left,waterlogged=true]", - "minecraft:smooth_sandstone_stairs[facing=south,half=bottom,shape=inner_left,waterlogged=false]", - "minecraft:smooth_sandstone_stairs[facing=south,half=bottom,shape=inner_right,waterlogged=true]", - "minecraft:smooth_sandstone_stairs[facing=south,half=bottom,shape=inner_right,waterlogged=false]", - "minecraft:smooth_sandstone_stairs[facing=south,half=bottom,shape=outer_left,waterlogged=true]", - "minecraft:smooth_sandstone_stairs[facing=south,half=bottom,shape=outer_left,waterlogged=false]", - "minecraft:smooth_sandstone_stairs[facing=south,half=bottom,shape=outer_right,waterlogged=true]", - "minecraft:smooth_sandstone_stairs[facing=south,half=bottom,shape=outer_right,waterlogged=false]", - "minecraft:smooth_sandstone_stairs[facing=west,half=top,shape=straight,waterlogged=true]", - "minecraft:smooth_sandstone_stairs[facing=west,half=top,shape=straight,waterlogged=false]", - "minecraft:smooth_sandstone_stairs[facing=west,half=top,shape=inner_left,waterlogged=true]", - "minecraft:smooth_sandstone_stairs[facing=west,half=top,shape=inner_left,waterlogged=false]", - "minecraft:smooth_sandstone_stairs[facing=west,half=top,shape=inner_right,waterlogged=true]", - "minecraft:smooth_sandstone_stairs[facing=west,half=top,shape=inner_right,waterlogged=false]", - "minecraft:smooth_sandstone_stairs[facing=west,half=top,shape=outer_left,waterlogged=true]", - "minecraft:smooth_sandstone_stairs[facing=west,half=top,shape=outer_left,waterlogged=false]", - "minecraft:smooth_sandstone_stairs[facing=west,half=top,shape=outer_right,waterlogged=true]", - "minecraft:smooth_sandstone_stairs[facing=west,half=top,shape=outer_right,waterlogged=false]", - "minecraft:smooth_sandstone_stairs[facing=west,half=bottom,shape=straight,waterlogged=true]", - "minecraft:smooth_sandstone_stairs[facing=west,half=bottom,shape=straight,waterlogged=false]", - "minecraft:smooth_sandstone_stairs[facing=west,half=bottom,shape=inner_left,waterlogged=true]", - "minecraft:smooth_sandstone_stairs[facing=west,half=bottom,shape=inner_left,waterlogged=false]", - "minecraft:smooth_sandstone_stairs[facing=west,half=bottom,shape=inner_right,waterlogged=true]", - "minecraft:smooth_sandstone_stairs[facing=west,half=bottom,shape=inner_right,waterlogged=false]", - "minecraft:smooth_sandstone_stairs[facing=west,half=bottom,shape=outer_left,waterlogged=true]", - "minecraft:smooth_sandstone_stairs[facing=west,half=bottom,shape=outer_left,waterlogged=false]", - "minecraft:smooth_sandstone_stairs[facing=west,half=bottom,shape=outer_right,waterlogged=true]", - "minecraft:smooth_sandstone_stairs[facing=west,half=bottom,shape=outer_right,waterlogged=false]", - "minecraft:smooth_sandstone_stairs[facing=east,half=top,shape=straight,waterlogged=true]", - "minecraft:smooth_sandstone_stairs[facing=east,half=top,shape=straight,waterlogged=false]", - "minecraft:smooth_sandstone_stairs[facing=east,half=top,shape=inner_left,waterlogged=true]", - "minecraft:smooth_sandstone_stairs[facing=east,half=top,shape=inner_left,waterlogged=false]", - "minecraft:smooth_sandstone_stairs[facing=east,half=top,shape=inner_right,waterlogged=true]", - "minecraft:smooth_sandstone_stairs[facing=east,half=top,shape=inner_right,waterlogged=false]", - "minecraft:smooth_sandstone_stairs[facing=east,half=top,shape=outer_left,waterlogged=true]", - "minecraft:smooth_sandstone_stairs[facing=east,half=top,shape=outer_left,waterlogged=false]", - "minecraft:smooth_sandstone_stairs[facing=east,half=top,shape=outer_right,waterlogged=true]", - "minecraft:smooth_sandstone_stairs[facing=east,half=top,shape=outer_right,waterlogged=false]", - "minecraft:smooth_sandstone_stairs[facing=east,half=bottom,shape=straight,waterlogged=true]", - "minecraft:smooth_sandstone_stairs[facing=east,half=bottom,shape=straight,waterlogged=false]", - "minecraft:smooth_sandstone_stairs[facing=east,half=bottom,shape=inner_left,waterlogged=true]", - "minecraft:smooth_sandstone_stairs[facing=east,half=bottom,shape=inner_left,waterlogged=false]", - "minecraft:smooth_sandstone_stairs[facing=east,half=bottom,shape=inner_right,waterlogged=true]", - "minecraft:smooth_sandstone_stairs[facing=east,half=bottom,shape=inner_right,waterlogged=false]", - "minecraft:smooth_sandstone_stairs[facing=east,half=bottom,shape=outer_left,waterlogged=true]", - "minecraft:smooth_sandstone_stairs[facing=east,half=bottom,shape=outer_left,waterlogged=false]", - "minecraft:smooth_sandstone_stairs[facing=east,half=bottom,shape=outer_right,waterlogged=true]", - "minecraft:smooth_sandstone_stairs[facing=east,half=bottom,shape=outer_right,waterlogged=false]", - "minecraft:smooth_quartz_stairs[facing=north,half=top,shape=straight,waterlogged=true]", - "minecraft:smooth_quartz_stairs[facing=north,half=top,shape=straight,waterlogged=false]", - "minecraft:smooth_quartz_stairs[facing=north,half=top,shape=inner_left,waterlogged=true]", - "minecraft:smooth_quartz_stairs[facing=north,half=top,shape=inner_left,waterlogged=false]", - "minecraft:smooth_quartz_stairs[facing=north,half=top,shape=inner_right,waterlogged=true]", - "minecraft:smooth_quartz_stairs[facing=north,half=top,shape=inner_right,waterlogged=false]", - "minecraft:smooth_quartz_stairs[facing=north,half=top,shape=outer_left,waterlogged=true]", - "minecraft:smooth_quartz_stairs[facing=north,half=top,shape=outer_left,waterlogged=false]", - "minecraft:smooth_quartz_stairs[facing=north,half=top,shape=outer_right,waterlogged=true]", - "minecraft:smooth_quartz_stairs[facing=north,half=top,shape=outer_right,waterlogged=false]", - "minecraft:smooth_quartz_stairs[facing=north,half=bottom,shape=straight,waterlogged=true]", - "minecraft:smooth_quartz_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]", - "minecraft:smooth_quartz_stairs[facing=north,half=bottom,shape=inner_left,waterlogged=true]", - "minecraft:smooth_quartz_stairs[facing=north,half=bottom,shape=inner_left,waterlogged=false]", - "minecraft:smooth_quartz_stairs[facing=north,half=bottom,shape=inner_right,waterlogged=true]", - "minecraft:smooth_quartz_stairs[facing=north,half=bottom,shape=inner_right,waterlogged=false]", - "minecraft:smooth_quartz_stairs[facing=north,half=bottom,shape=outer_left,waterlogged=true]", - "minecraft:smooth_quartz_stairs[facing=north,half=bottom,shape=outer_left,waterlogged=false]", - "minecraft:smooth_quartz_stairs[facing=north,half=bottom,shape=outer_right,waterlogged=true]", - "minecraft:smooth_quartz_stairs[facing=north,half=bottom,shape=outer_right,waterlogged=false]", - "minecraft:smooth_quartz_stairs[facing=south,half=top,shape=straight,waterlogged=true]", - "minecraft:smooth_quartz_stairs[facing=south,half=top,shape=straight,waterlogged=false]", - "minecraft:smooth_quartz_stairs[facing=south,half=top,shape=inner_left,waterlogged=true]", - "minecraft:smooth_quartz_stairs[facing=south,half=top,shape=inner_left,waterlogged=false]", - "minecraft:smooth_quartz_stairs[facing=south,half=top,shape=inner_right,waterlogged=true]", - "minecraft:smooth_quartz_stairs[facing=south,half=top,shape=inner_right,waterlogged=false]", - "minecraft:smooth_quartz_stairs[facing=south,half=top,shape=outer_left,waterlogged=true]", - "minecraft:smooth_quartz_stairs[facing=south,half=top,shape=outer_left,waterlogged=false]", - "minecraft:smooth_quartz_stairs[facing=south,half=top,shape=outer_right,waterlogged=true]", - "minecraft:smooth_quartz_stairs[facing=south,half=top,shape=outer_right,waterlogged=false]", - "minecraft:smooth_quartz_stairs[facing=south,half=bottom,shape=straight,waterlogged=true]", - "minecraft:smooth_quartz_stairs[facing=south,half=bottom,shape=straight,waterlogged=false]", - "minecraft:smooth_quartz_stairs[facing=south,half=bottom,shape=inner_left,waterlogged=true]", - "minecraft:smooth_quartz_stairs[facing=south,half=bottom,shape=inner_left,waterlogged=false]", - "minecraft:smooth_quartz_stairs[facing=south,half=bottom,shape=inner_right,waterlogged=true]", - "minecraft:smooth_quartz_stairs[facing=south,half=bottom,shape=inner_right,waterlogged=false]", - "minecraft:smooth_quartz_stairs[facing=south,half=bottom,shape=outer_left,waterlogged=true]", - "minecraft:smooth_quartz_stairs[facing=south,half=bottom,shape=outer_left,waterlogged=false]", - "minecraft:smooth_quartz_stairs[facing=south,half=bottom,shape=outer_right,waterlogged=true]", - "minecraft:smooth_quartz_stairs[facing=south,half=bottom,shape=outer_right,waterlogged=false]", - "minecraft:smooth_quartz_stairs[facing=west,half=top,shape=straight,waterlogged=true]", - "minecraft:smooth_quartz_stairs[facing=west,half=top,shape=straight,waterlogged=false]", - "minecraft:smooth_quartz_stairs[facing=west,half=top,shape=inner_left,waterlogged=true]", - "minecraft:smooth_quartz_stairs[facing=west,half=top,shape=inner_left,waterlogged=false]", - "minecraft:smooth_quartz_stairs[facing=west,half=top,shape=inner_right,waterlogged=true]", - "minecraft:smooth_quartz_stairs[facing=west,half=top,shape=inner_right,waterlogged=false]", - "minecraft:smooth_quartz_stairs[facing=west,half=top,shape=outer_left,waterlogged=true]", - "minecraft:smooth_quartz_stairs[facing=west,half=top,shape=outer_left,waterlogged=false]", - "minecraft:smooth_quartz_stairs[facing=west,half=top,shape=outer_right,waterlogged=true]", - "minecraft:smooth_quartz_stairs[facing=west,half=top,shape=outer_right,waterlogged=false]", - "minecraft:smooth_quartz_stairs[facing=west,half=bottom,shape=straight,waterlogged=true]", - "minecraft:smooth_quartz_stairs[facing=west,half=bottom,shape=straight,waterlogged=false]", - "minecraft:smooth_quartz_stairs[facing=west,half=bottom,shape=inner_left,waterlogged=true]", - "minecraft:smooth_quartz_stairs[facing=west,half=bottom,shape=inner_left,waterlogged=false]", - "minecraft:smooth_quartz_stairs[facing=west,half=bottom,shape=inner_right,waterlogged=true]", - "minecraft:smooth_quartz_stairs[facing=west,half=bottom,shape=inner_right,waterlogged=false]", - "minecraft:smooth_quartz_stairs[facing=west,half=bottom,shape=outer_left,waterlogged=true]", - "minecraft:smooth_quartz_stairs[facing=west,half=bottom,shape=outer_left,waterlogged=false]", - "minecraft:smooth_quartz_stairs[facing=west,half=bottom,shape=outer_right,waterlogged=true]", - "minecraft:smooth_quartz_stairs[facing=west,half=bottom,shape=outer_right,waterlogged=false]", - "minecraft:smooth_quartz_stairs[facing=east,half=top,shape=straight,waterlogged=true]", - "minecraft:smooth_quartz_stairs[facing=east,half=top,shape=straight,waterlogged=false]", - "minecraft:smooth_quartz_stairs[facing=east,half=top,shape=inner_left,waterlogged=true]", - "minecraft:smooth_quartz_stairs[facing=east,half=top,shape=inner_left,waterlogged=false]", - "minecraft:smooth_quartz_stairs[facing=east,half=top,shape=inner_right,waterlogged=true]", - "minecraft:smooth_quartz_stairs[facing=east,half=top,shape=inner_right,waterlogged=false]", - "minecraft:smooth_quartz_stairs[facing=east,half=top,shape=outer_left,waterlogged=true]", - "minecraft:smooth_quartz_stairs[facing=east,half=top,shape=outer_left,waterlogged=false]", - "minecraft:smooth_quartz_stairs[facing=east,half=top,shape=outer_right,waterlogged=true]", - "minecraft:smooth_quartz_stairs[facing=east,half=top,shape=outer_right,waterlogged=false]", - "minecraft:smooth_quartz_stairs[facing=east,half=bottom,shape=straight,waterlogged=true]", - "minecraft:smooth_quartz_stairs[facing=east,half=bottom,shape=straight,waterlogged=false]", - "minecraft:smooth_quartz_stairs[facing=east,half=bottom,shape=inner_left,waterlogged=true]", - "minecraft:smooth_quartz_stairs[facing=east,half=bottom,shape=inner_left,waterlogged=false]", - "minecraft:smooth_quartz_stairs[facing=east,half=bottom,shape=inner_right,waterlogged=true]", - "minecraft:smooth_quartz_stairs[facing=east,half=bottom,shape=inner_right,waterlogged=false]", - "minecraft:smooth_quartz_stairs[facing=east,half=bottom,shape=outer_left,waterlogged=true]", - "minecraft:smooth_quartz_stairs[facing=east,half=bottom,shape=outer_left,waterlogged=false]", - "minecraft:smooth_quartz_stairs[facing=east,half=bottom,shape=outer_right,waterlogged=true]", - "minecraft:smooth_quartz_stairs[facing=east,half=bottom,shape=outer_right,waterlogged=false]", - "minecraft:granite_stairs[facing=north,half=top,shape=straight,waterlogged=true]", - "minecraft:granite_stairs[facing=north,half=top,shape=straight,waterlogged=false]", - "minecraft:granite_stairs[facing=north,half=top,shape=inner_left,waterlogged=true]", - "minecraft:granite_stairs[facing=north,half=top,shape=inner_left,waterlogged=false]", - "minecraft:granite_stairs[facing=north,half=top,shape=inner_right,waterlogged=true]", - "minecraft:granite_stairs[facing=north,half=top,shape=inner_right,waterlogged=false]", - "minecraft:granite_stairs[facing=north,half=top,shape=outer_left,waterlogged=true]", - "minecraft:granite_stairs[facing=north,half=top,shape=outer_left,waterlogged=false]", - "minecraft:granite_stairs[facing=north,half=top,shape=outer_right,waterlogged=true]", - "minecraft:granite_stairs[facing=north,half=top,shape=outer_right,waterlogged=false]", - "minecraft:granite_stairs[facing=north,half=bottom,shape=straight,waterlogged=true]", - "minecraft:granite_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]", - "minecraft:granite_stairs[facing=north,half=bottom,shape=inner_left,waterlogged=true]", - "minecraft:granite_stairs[facing=north,half=bottom,shape=inner_left,waterlogged=false]", - "minecraft:granite_stairs[facing=north,half=bottom,shape=inner_right,waterlogged=true]", - "minecraft:granite_stairs[facing=north,half=bottom,shape=inner_right,waterlogged=false]", - "minecraft:granite_stairs[facing=north,half=bottom,shape=outer_left,waterlogged=true]", - "minecraft:granite_stairs[facing=north,half=bottom,shape=outer_left,waterlogged=false]", - "minecraft:granite_stairs[facing=north,half=bottom,shape=outer_right,waterlogged=true]", - "minecraft:granite_stairs[facing=north,half=bottom,shape=outer_right,waterlogged=false]", - "minecraft:granite_stairs[facing=south,half=top,shape=straight,waterlogged=true]", - "minecraft:granite_stairs[facing=south,half=top,shape=straight,waterlogged=false]", - "minecraft:granite_stairs[facing=south,half=top,shape=inner_left,waterlogged=true]", - "minecraft:granite_stairs[facing=south,half=top,shape=inner_left,waterlogged=false]", - "minecraft:granite_stairs[facing=south,half=top,shape=inner_right,waterlogged=true]", - "minecraft:granite_stairs[facing=south,half=top,shape=inner_right,waterlogged=false]", - "minecraft:granite_stairs[facing=south,half=top,shape=outer_left,waterlogged=true]", - "minecraft:granite_stairs[facing=south,half=top,shape=outer_left,waterlogged=false]", - "minecraft:granite_stairs[facing=south,half=top,shape=outer_right,waterlogged=true]", - "minecraft:granite_stairs[facing=south,half=top,shape=outer_right,waterlogged=false]", - "minecraft:granite_stairs[facing=south,half=bottom,shape=straight,waterlogged=true]", - "minecraft:granite_stairs[facing=south,half=bottom,shape=straight,waterlogged=false]", - "minecraft:granite_stairs[facing=south,half=bottom,shape=inner_left,waterlogged=true]", - "minecraft:granite_stairs[facing=south,half=bottom,shape=inner_left,waterlogged=false]", - "minecraft:granite_stairs[facing=south,half=bottom,shape=inner_right,waterlogged=true]", - "minecraft:granite_stairs[facing=south,half=bottom,shape=inner_right,waterlogged=false]", - "minecraft:granite_stairs[facing=south,half=bottom,shape=outer_left,waterlogged=true]", - "minecraft:granite_stairs[facing=south,half=bottom,shape=outer_left,waterlogged=false]", - "minecraft:granite_stairs[facing=south,half=bottom,shape=outer_right,waterlogged=true]", - "minecraft:granite_stairs[facing=south,half=bottom,shape=outer_right,waterlogged=false]", - "minecraft:granite_stairs[facing=west,half=top,shape=straight,waterlogged=true]", - "minecraft:granite_stairs[facing=west,half=top,shape=straight,waterlogged=false]", - "minecraft:granite_stairs[facing=west,half=top,shape=inner_left,waterlogged=true]", - "minecraft:granite_stairs[facing=west,half=top,shape=inner_left,waterlogged=false]", - "minecraft:granite_stairs[facing=west,half=top,shape=inner_right,waterlogged=true]", - "minecraft:granite_stairs[facing=west,half=top,shape=inner_right,waterlogged=false]", - "minecraft:granite_stairs[facing=west,half=top,shape=outer_left,waterlogged=true]", - "minecraft:granite_stairs[facing=west,half=top,shape=outer_left,waterlogged=false]", - "minecraft:granite_stairs[facing=west,half=top,shape=outer_right,waterlogged=true]", - "minecraft:granite_stairs[facing=west,half=top,shape=outer_right,waterlogged=false]", - "minecraft:granite_stairs[facing=west,half=bottom,shape=straight,waterlogged=true]", - "minecraft:granite_stairs[facing=west,half=bottom,shape=straight,waterlogged=false]", - "minecraft:granite_stairs[facing=west,half=bottom,shape=inner_left,waterlogged=true]", - "minecraft:granite_stairs[facing=west,half=bottom,shape=inner_left,waterlogged=false]", - "minecraft:granite_stairs[facing=west,half=bottom,shape=inner_right,waterlogged=true]", - "minecraft:granite_stairs[facing=west,half=bottom,shape=inner_right,waterlogged=false]", - "minecraft:granite_stairs[facing=west,half=bottom,shape=outer_left,waterlogged=true]", - "minecraft:granite_stairs[facing=west,half=bottom,shape=outer_left,waterlogged=false]", - "minecraft:granite_stairs[facing=west,half=bottom,shape=outer_right,waterlogged=true]", - "minecraft:granite_stairs[facing=west,half=bottom,shape=outer_right,waterlogged=false]", - "minecraft:granite_stairs[facing=east,half=top,shape=straight,waterlogged=true]", - "minecraft:granite_stairs[facing=east,half=top,shape=straight,waterlogged=false]", - "minecraft:granite_stairs[facing=east,half=top,shape=inner_left,waterlogged=true]", - "minecraft:granite_stairs[facing=east,half=top,shape=inner_left,waterlogged=false]", - "minecraft:granite_stairs[facing=east,half=top,shape=inner_right,waterlogged=true]", - "minecraft:granite_stairs[facing=east,half=top,shape=inner_right,waterlogged=false]", - "minecraft:granite_stairs[facing=east,half=top,shape=outer_left,waterlogged=true]", - "minecraft:granite_stairs[facing=east,half=top,shape=outer_left,waterlogged=false]", - "minecraft:granite_stairs[facing=east,half=top,shape=outer_right,waterlogged=true]", - "minecraft:granite_stairs[facing=east,half=top,shape=outer_right,waterlogged=false]", - "minecraft:granite_stairs[facing=east,half=bottom,shape=straight,waterlogged=true]", - "minecraft:granite_stairs[facing=east,half=bottom,shape=straight,waterlogged=false]", - "minecraft:granite_stairs[facing=east,half=bottom,shape=inner_left,waterlogged=true]", - "minecraft:granite_stairs[facing=east,half=bottom,shape=inner_left,waterlogged=false]", - "minecraft:granite_stairs[facing=east,half=bottom,shape=inner_right,waterlogged=true]", - "minecraft:granite_stairs[facing=east,half=bottom,shape=inner_right,waterlogged=false]", - "minecraft:granite_stairs[facing=east,half=bottom,shape=outer_left,waterlogged=true]", - "minecraft:granite_stairs[facing=east,half=bottom,shape=outer_left,waterlogged=false]", - "minecraft:granite_stairs[facing=east,half=bottom,shape=outer_right,waterlogged=true]", - "minecraft:granite_stairs[facing=east,half=bottom,shape=outer_right,waterlogged=false]", - "minecraft:andesite_stairs[facing=north,half=top,shape=straight,waterlogged=true]", - "minecraft:andesite_stairs[facing=north,half=top,shape=straight,waterlogged=false]", - "minecraft:andesite_stairs[facing=north,half=top,shape=inner_left,waterlogged=true]", - "minecraft:andesite_stairs[facing=north,half=top,shape=inner_left,waterlogged=false]", - "minecraft:andesite_stairs[facing=north,half=top,shape=inner_right,waterlogged=true]", - "minecraft:andesite_stairs[facing=north,half=top,shape=inner_right,waterlogged=false]", - "minecraft:andesite_stairs[facing=north,half=top,shape=outer_left,waterlogged=true]", - "minecraft:andesite_stairs[facing=north,half=top,shape=outer_left,waterlogged=false]", - "minecraft:andesite_stairs[facing=north,half=top,shape=outer_right,waterlogged=true]", - "minecraft:andesite_stairs[facing=north,half=top,shape=outer_right,waterlogged=false]", - "minecraft:andesite_stairs[facing=north,half=bottom,shape=straight,waterlogged=true]", - "minecraft:andesite_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]", - "minecraft:andesite_stairs[facing=north,half=bottom,shape=inner_left,waterlogged=true]", - "minecraft:andesite_stairs[facing=north,half=bottom,shape=inner_left,waterlogged=false]", - "minecraft:andesite_stairs[facing=north,half=bottom,shape=inner_right,waterlogged=true]", - "minecraft:andesite_stairs[facing=north,half=bottom,shape=inner_right,waterlogged=false]", - "minecraft:andesite_stairs[facing=north,half=bottom,shape=outer_left,waterlogged=true]", - "minecraft:andesite_stairs[facing=north,half=bottom,shape=outer_left,waterlogged=false]", - "minecraft:andesite_stairs[facing=north,half=bottom,shape=outer_right,waterlogged=true]", - "minecraft:andesite_stairs[facing=north,half=bottom,shape=outer_right,waterlogged=false]", - "minecraft:andesite_stairs[facing=south,half=top,shape=straight,waterlogged=true]", - "minecraft:andesite_stairs[facing=south,half=top,shape=straight,waterlogged=false]", - "minecraft:andesite_stairs[facing=south,half=top,shape=inner_left,waterlogged=true]", - "minecraft:andesite_stairs[facing=south,half=top,shape=inner_left,waterlogged=false]", - "minecraft:andesite_stairs[facing=south,half=top,shape=inner_right,waterlogged=true]", - "minecraft:andesite_stairs[facing=south,half=top,shape=inner_right,waterlogged=false]", - "minecraft:andesite_stairs[facing=south,half=top,shape=outer_left,waterlogged=true]", - "minecraft:andesite_stairs[facing=south,half=top,shape=outer_left,waterlogged=false]", - "minecraft:andesite_stairs[facing=south,half=top,shape=outer_right,waterlogged=true]", - "minecraft:andesite_stairs[facing=south,half=top,shape=outer_right,waterlogged=false]", - "minecraft:andesite_stairs[facing=south,half=bottom,shape=straight,waterlogged=true]", - "minecraft:andesite_stairs[facing=south,half=bottom,shape=straight,waterlogged=false]", - "minecraft:andesite_stairs[facing=south,half=bottom,shape=inner_left,waterlogged=true]", - "minecraft:andesite_stairs[facing=south,half=bottom,shape=inner_left,waterlogged=false]", - "minecraft:andesite_stairs[facing=south,half=bottom,shape=inner_right,waterlogged=true]", - "minecraft:andesite_stairs[facing=south,half=bottom,shape=inner_right,waterlogged=false]", - "minecraft:andesite_stairs[facing=south,half=bottom,shape=outer_left,waterlogged=true]", - "minecraft:andesite_stairs[facing=south,half=bottom,shape=outer_left,waterlogged=false]", - "minecraft:andesite_stairs[facing=south,half=bottom,shape=outer_right,waterlogged=true]", - "minecraft:andesite_stairs[facing=south,half=bottom,shape=outer_right,waterlogged=false]", - "minecraft:andesite_stairs[facing=west,half=top,shape=straight,waterlogged=true]", - "minecraft:andesite_stairs[facing=west,half=top,shape=straight,waterlogged=false]", - "minecraft:andesite_stairs[facing=west,half=top,shape=inner_left,waterlogged=true]", - "minecraft:andesite_stairs[facing=west,half=top,shape=inner_left,waterlogged=false]", - "minecraft:andesite_stairs[facing=west,half=top,shape=inner_right,waterlogged=true]", - "minecraft:andesite_stairs[facing=west,half=top,shape=inner_right,waterlogged=false]", - "minecraft:andesite_stairs[facing=west,half=top,shape=outer_left,waterlogged=true]", - "minecraft:andesite_stairs[facing=west,half=top,shape=outer_left,waterlogged=false]", - "minecraft:andesite_stairs[facing=west,half=top,shape=outer_right,waterlogged=true]", - "minecraft:andesite_stairs[facing=west,half=top,shape=outer_right,waterlogged=false]", - "minecraft:andesite_stairs[facing=west,half=bottom,shape=straight,waterlogged=true]", - "minecraft:andesite_stairs[facing=west,half=bottom,shape=straight,waterlogged=false]", - "minecraft:andesite_stairs[facing=west,half=bottom,shape=inner_left,waterlogged=true]", - "minecraft:andesite_stairs[facing=west,half=bottom,shape=inner_left,waterlogged=false]", - "minecraft:andesite_stairs[facing=west,half=bottom,shape=inner_right,waterlogged=true]", - "minecraft:andesite_stairs[facing=west,half=bottom,shape=inner_right,waterlogged=false]", - "minecraft:andesite_stairs[facing=west,half=bottom,shape=outer_left,waterlogged=true]", - "minecraft:andesite_stairs[facing=west,half=bottom,shape=outer_left,waterlogged=false]", - "minecraft:andesite_stairs[facing=west,half=bottom,shape=outer_right,waterlogged=true]", - "minecraft:andesite_stairs[facing=west,half=bottom,shape=outer_right,waterlogged=false]", - "minecraft:andesite_stairs[facing=east,half=top,shape=straight,waterlogged=true]", - "minecraft:andesite_stairs[facing=east,half=top,shape=straight,waterlogged=false]", - "minecraft:andesite_stairs[facing=east,half=top,shape=inner_left,waterlogged=true]", - "minecraft:andesite_stairs[facing=east,half=top,shape=inner_left,waterlogged=false]", - "minecraft:andesite_stairs[facing=east,half=top,shape=inner_right,waterlogged=true]", - "minecraft:andesite_stairs[facing=east,half=top,shape=inner_right,waterlogged=false]", - "minecraft:andesite_stairs[facing=east,half=top,shape=outer_left,waterlogged=true]", - "minecraft:andesite_stairs[facing=east,half=top,shape=outer_left,waterlogged=false]", - "minecraft:andesite_stairs[facing=east,half=top,shape=outer_right,waterlogged=true]", - "minecraft:andesite_stairs[facing=east,half=top,shape=outer_right,waterlogged=false]", - "minecraft:andesite_stairs[facing=east,half=bottom,shape=straight,waterlogged=true]", - "minecraft:andesite_stairs[facing=east,half=bottom,shape=straight,waterlogged=false]", - "minecraft:andesite_stairs[facing=east,half=bottom,shape=inner_left,waterlogged=true]", - "minecraft:andesite_stairs[facing=east,half=bottom,shape=inner_left,waterlogged=false]", - "minecraft:andesite_stairs[facing=east,half=bottom,shape=inner_right,waterlogged=true]", - "minecraft:andesite_stairs[facing=east,half=bottom,shape=inner_right,waterlogged=false]", - "minecraft:andesite_stairs[facing=east,half=bottom,shape=outer_left,waterlogged=true]", - "minecraft:andesite_stairs[facing=east,half=bottom,shape=outer_left,waterlogged=false]", - "minecraft:andesite_stairs[facing=east,half=bottom,shape=outer_right,waterlogged=true]", - "minecraft:andesite_stairs[facing=east,half=bottom,shape=outer_right,waterlogged=false]", - "minecraft:red_nether_brick_stairs[facing=north,half=top,shape=straight,waterlogged=true]", - "minecraft:red_nether_brick_stairs[facing=north,half=top,shape=straight,waterlogged=false]", - "minecraft:red_nether_brick_stairs[facing=north,half=top,shape=inner_left,waterlogged=true]", - "minecraft:red_nether_brick_stairs[facing=north,half=top,shape=inner_left,waterlogged=false]", - "minecraft:red_nether_brick_stairs[facing=north,half=top,shape=inner_right,waterlogged=true]", - "minecraft:red_nether_brick_stairs[facing=north,half=top,shape=inner_right,waterlogged=false]", - "minecraft:red_nether_brick_stairs[facing=north,half=top,shape=outer_left,waterlogged=true]", - "minecraft:red_nether_brick_stairs[facing=north,half=top,shape=outer_left,waterlogged=false]", - "minecraft:red_nether_brick_stairs[facing=north,half=top,shape=outer_right,waterlogged=true]", - "minecraft:red_nether_brick_stairs[facing=north,half=top,shape=outer_right,waterlogged=false]", - "minecraft:red_nether_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=true]", - "minecraft:red_nether_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]", - "minecraft:red_nether_brick_stairs[facing=north,half=bottom,shape=inner_left,waterlogged=true]", - "minecraft:red_nether_brick_stairs[facing=north,half=bottom,shape=inner_left,waterlogged=false]", - "minecraft:red_nether_brick_stairs[facing=north,half=bottom,shape=inner_right,waterlogged=true]", - "minecraft:red_nether_brick_stairs[facing=north,half=bottom,shape=inner_right,waterlogged=false]", - "minecraft:red_nether_brick_stairs[facing=north,half=bottom,shape=outer_left,waterlogged=true]", - "minecraft:red_nether_brick_stairs[facing=north,half=bottom,shape=outer_left,waterlogged=false]", - "minecraft:red_nether_brick_stairs[facing=north,half=bottom,shape=outer_right,waterlogged=true]", - "minecraft:red_nether_brick_stairs[facing=north,half=bottom,shape=outer_right,waterlogged=false]", - "minecraft:red_nether_brick_stairs[facing=south,half=top,shape=straight,waterlogged=true]", - "minecraft:red_nether_brick_stairs[facing=south,half=top,shape=straight,waterlogged=false]", - "minecraft:red_nether_brick_stairs[facing=south,half=top,shape=inner_left,waterlogged=true]", - "minecraft:red_nether_brick_stairs[facing=south,half=top,shape=inner_left,waterlogged=false]", - "minecraft:red_nether_brick_stairs[facing=south,half=top,shape=inner_right,waterlogged=true]", - "minecraft:red_nether_brick_stairs[facing=south,half=top,shape=inner_right,waterlogged=false]", - "minecraft:red_nether_brick_stairs[facing=south,half=top,shape=outer_left,waterlogged=true]", - "minecraft:red_nether_brick_stairs[facing=south,half=top,shape=outer_left,waterlogged=false]", - "minecraft:red_nether_brick_stairs[facing=south,half=top,shape=outer_right,waterlogged=true]", - "minecraft:red_nether_brick_stairs[facing=south,half=top,shape=outer_right,waterlogged=false]", - "minecraft:red_nether_brick_stairs[facing=south,half=bottom,shape=straight,waterlogged=true]", - "minecraft:red_nether_brick_stairs[facing=south,half=bottom,shape=straight,waterlogged=false]", - "minecraft:red_nether_brick_stairs[facing=south,half=bottom,shape=inner_left,waterlogged=true]", - "minecraft:red_nether_brick_stairs[facing=south,half=bottom,shape=inner_left,waterlogged=false]", - "minecraft:red_nether_brick_stairs[facing=south,half=bottom,shape=inner_right,waterlogged=true]", - "minecraft:red_nether_brick_stairs[facing=south,half=bottom,shape=inner_right,waterlogged=false]", - "minecraft:red_nether_brick_stairs[facing=south,half=bottom,shape=outer_left,waterlogged=true]", - "minecraft:red_nether_brick_stairs[facing=south,half=bottom,shape=outer_left,waterlogged=false]", - "minecraft:red_nether_brick_stairs[facing=south,half=bottom,shape=outer_right,waterlogged=true]", - "minecraft:red_nether_brick_stairs[facing=south,half=bottom,shape=outer_right,waterlogged=false]", - "minecraft:red_nether_brick_stairs[facing=west,half=top,shape=straight,waterlogged=true]", - "minecraft:red_nether_brick_stairs[facing=west,half=top,shape=straight,waterlogged=false]", - "minecraft:red_nether_brick_stairs[facing=west,half=top,shape=inner_left,waterlogged=true]", - "minecraft:red_nether_brick_stairs[facing=west,half=top,shape=inner_left,waterlogged=false]", - "minecraft:red_nether_brick_stairs[facing=west,half=top,shape=inner_right,waterlogged=true]", - "minecraft:red_nether_brick_stairs[facing=west,half=top,shape=inner_right,waterlogged=false]", - "minecraft:red_nether_brick_stairs[facing=west,half=top,shape=outer_left,waterlogged=true]", - "minecraft:red_nether_brick_stairs[facing=west,half=top,shape=outer_left,waterlogged=false]", - "minecraft:red_nether_brick_stairs[facing=west,half=top,shape=outer_right,waterlogged=true]", - "minecraft:red_nether_brick_stairs[facing=west,half=top,shape=outer_right,waterlogged=false]", - "minecraft:red_nether_brick_stairs[facing=west,half=bottom,shape=straight,waterlogged=true]", - "minecraft:red_nether_brick_stairs[facing=west,half=bottom,shape=straight,waterlogged=false]", - "minecraft:red_nether_brick_stairs[facing=west,half=bottom,shape=inner_left,waterlogged=true]", - "minecraft:red_nether_brick_stairs[facing=west,half=bottom,shape=inner_left,waterlogged=false]", - "minecraft:red_nether_brick_stairs[facing=west,half=bottom,shape=inner_right,waterlogged=true]", - "minecraft:red_nether_brick_stairs[facing=west,half=bottom,shape=inner_right,waterlogged=false]", - "minecraft:red_nether_brick_stairs[facing=west,half=bottom,shape=outer_left,waterlogged=true]", - "minecraft:red_nether_brick_stairs[facing=west,half=bottom,shape=outer_left,waterlogged=false]", - "minecraft:red_nether_brick_stairs[facing=west,half=bottom,shape=outer_right,waterlogged=true]", - "minecraft:red_nether_brick_stairs[facing=west,half=bottom,shape=outer_right,waterlogged=false]", - "minecraft:red_nether_brick_stairs[facing=east,half=top,shape=straight,waterlogged=true]", - "minecraft:red_nether_brick_stairs[facing=east,half=top,shape=straight,waterlogged=false]", - "minecraft:red_nether_brick_stairs[facing=east,half=top,shape=inner_left,waterlogged=true]", - "minecraft:red_nether_brick_stairs[facing=east,half=top,shape=inner_left,waterlogged=false]", - "minecraft:red_nether_brick_stairs[facing=east,half=top,shape=inner_right,waterlogged=true]", - "minecraft:red_nether_brick_stairs[facing=east,half=top,shape=inner_right,waterlogged=false]", - "minecraft:red_nether_brick_stairs[facing=east,half=top,shape=outer_left,waterlogged=true]", - "minecraft:red_nether_brick_stairs[facing=east,half=top,shape=outer_left,waterlogged=false]", - "minecraft:red_nether_brick_stairs[facing=east,half=top,shape=outer_right,waterlogged=true]", - "minecraft:red_nether_brick_stairs[facing=east,half=top,shape=outer_right,waterlogged=false]", - "minecraft:red_nether_brick_stairs[facing=east,half=bottom,shape=straight,waterlogged=true]", - "minecraft:red_nether_brick_stairs[facing=east,half=bottom,shape=straight,waterlogged=false]", - "minecraft:red_nether_brick_stairs[facing=east,half=bottom,shape=inner_left,waterlogged=true]", - "minecraft:red_nether_brick_stairs[facing=east,half=bottom,shape=inner_left,waterlogged=false]", - "minecraft:red_nether_brick_stairs[facing=east,half=bottom,shape=inner_right,waterlogged=true]", - "minecraft:red_nether_brick_stairs[facing=east,half=bottom,shape=inner_right,waterlogged=false]", - "minecraft:red_nether_brick_stairs[facing=east,half=bottom,shape=outer_left,waterlogged=true]", - "minecraft:red_nether_brick_stairs[facing=east,half=bottom,shape=outer_left,waterlogged=false]", - "minecraft:red_nether_brick_stairs[facing=east,half=bottom,shape=outer_right,waterlogged=true]", - "minecraft:red_nether_brick_stairs[facing=east,half=bottom,shape=outer_right,waterlogged=false]", - "minecraft:polished_andesite_stairs[facing=north,half=top,shape=straight,waterlogged=true]", - "minecraft:polished_andesite_stairs[facing=north,half=top,shape=straight,waterlogged=false]", - "minecraft:polished_andesite_stairs[facing=north,half=top,shape=inner_left,waterlogged=true]", - "minecraft:polished_andesite_stairs[facing=north,half=top,shape=inner_left,waterlogged=false]", - "minecraft:polished_andesite_stairs[facing=north,half=top,shape=inner_right,waterlogged=true]", - "minecraft:polished_andesite_stairs[facing=north,half=top,shape=inner_right,waterlogged=false]", - "minecraft:polished_andesite_stairs[facing=north,half=top,shape=outer_left,waterlogged=true]", - "minecraft:polished_andesite_stairs[facing=north,half=top,shape=outer_left,waterlogged=false]", - "minecraft:polished_andesite_stairs[facing=north,half=top,shape=outer_right,waterlogged=true]", - "minecraft:polished_andesite_stairs[facing=north,half=top,shape=outer_right,waterlogged=false]", - "minecraft:polished_andesite_stairs[facing=north,half=bottom,shape=straight,waterlogged=true]", - "minecraft:polished_andesite_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]", - "minecraft:polished_andesite_stairs[facing=north,half=bottom,shape=inner_left,waterlogged=true]", - "minecraft:polished_andesite_stairs[facing=north,half=bottom,shape=inner_left,waterlogged=false]", - "minecraft:polished_andesite_stairs[facing=north,half=bottom,shape=inner_right,waterlogged=true]", - "minecraft:polished_andesite_stairs[facing=north,half=bottom,shape=inner_right,waterlogged=false]", - "minecraft:polished_andesite_stairs[facing=north,half=bottom,shape=outer_left,waterlogged=true]", - "minecraft:polished_andesite_stairs[facing=north,half=bottom,shape=outer_left,waterlogged=false]", - "minecraft:polished_andesite_stairs[facing=north,half=bottom,shape=outer_right,waterlogged=true]", - "minecraft:polished_andesite_stairs[facing=north,half=bottom,shape=outer_right,waterlogged=false]", - "minecraft:polished_andesite_stairs[facing=south,half=top,shape=straight,waterlogged=true]", - "minecraft:polished_andesite_stairs[facing=south,half=top,shape=straight,waterlogged=false]", - "minecraft:polished_andesite_stairs[facing=south,half=top,shape=inner_left,waterlogged=true]", - "minecraft:polished_andesite_stairs[facing=south,half=top,shape=inner_left,waterlogged=false]", - "minecraft:polished_andesite_stairs[facing=south,half=top,shape=inner_right,waterlogged=true]", - "minecraft:polished_andesite_stairs[facing=south,half=top,shape=inner_right,waterlogged=false]", - "minecraft:polished_andesite_stairs[facing=south,half=top,shape=outer_left,waterlogged=true]", - "minecraft:polished_andesite_stairs[facing=south,half=top,shape=outer_left,waterlogged=false]", - "minecraft:polished_andesite_stairs[facing=south,half=top,shape=outer_right,waterlogged=true]", - "minecraft:polished_andesite_stairs[facing=south,half=top,shape=outer_right,waterlogged=false]", - "minecraft:polished_andesite_stairs[facing=south,half=bottom,shape=straight,waterlogged=true]", - "minecraft:polished_andesite_stairs[facing=south,half=bottom,shape=straight,waterlogged=false]", - "minecraft:polished_andesite_stairs[facing=south,half=bottom,shape=inner_left,waterlogged=true]", - "minecraft:polished_andesite_stairs[facing=south,half=bottom,shape=inner_left,waterlogged=false]", - "minecraft:polished_andesite_stairs[facing=south,half=bottom,shape=inner_right,waterlogged=true]", - "minecraft:polished_andesite_stairs[facing=south,half=bottom,shape=inner_right,waterlogged=false]", - "minecraft:polished_andesite_stairs[facing=south,half=bottom,shape=outer_left,waterlogged=true]", - "minecraft:polished_andesite_stairs[facing=south,half=bottom,shape=outer_left,waterlogged=false]", - "minecraft:polished_andesite_stairs[facing=south,half=bottom,shape=outer_right,waterlogged=true]", - "minecraft:polished_andesite_stairs[facing=south,half=bottom,shape=outer_right,waterlogged=false]", - "minecraft:polished_andesite_stairs[facing=west,half=top,shape=straight,waterlogged=true]", - "minecraft:polished_andesite_stairs[facing=west,half=top,shape=straight,waterlogged=false]", - "minecraft:polished_andesite_stairs[facing=west,half=top,shape=inner_left,waterlogged=true]", - "minecraft:polished_andesite_stairs[facing=west,half=top,shape=inner_left,waterlogged=false]", - "minecraft:polished_andesite_stairs[facing=west,half=top,shape=inner_right,waterlogged=true]", - "minecraft:polished_andesite_stairs[facing=west,half=top,shape=inner_right,waterlogged=false]", - "minecraft:polished_andesite_stairs[facing=west,half=top,shape=outer_left,waterlogged=true]", - "minecraft:polished_andesite_stairs[facing=west,half=top,shape=outer_left,waterlogged=false]", - "minecraft:polished_andesite_stairs[facing=west,half=top,shape=outer_right,waterlogged=true]", - "minecraft:polished_andesite_stairs[facing=west,half=top,shape=outer_right,waterlogged=false]", - "minecraft:polished_andesite_stairs[facing=west,half=bottom,shape=straight,waterlogged=true]", - "minecraft:polished_andesite_stairs[facing=west,half=bottom,shape=straight,waterlogged=false]", - "minecraft:polished_andesite_stairs[facing=west,half=bottom,shape=inner_left,waterlogged=true]", - "minecraft:polished_andesite_stairs[facing=west,half=bottom,shape=inner_left,waterlogged=false]", - "minecraft:polished_andesite_stairs[facing=west,half=bottom,shape=inner_right,waterlogged=true]", - "minecraft:polished_andesite_stairs[facing=west,half=bottom,shape=inner_right,waterlogged=false]", - "minecraft:polished_andesite_stairs[facing=west,half=bottom,shape=outer_left,waterlogged=true]", - "minecraft:polished_andesite_stairs[facing=west,half=bottom,shape=outer_left,waterlogged=false]", - "minecraft:polished_andesite_stairs[facing=west,half=bottom,shape=outer_right,waterlogged=true]", - "minecraft:polished_andesite_stairs[facing=west,half=bottom,shape=outer_right,waterlogged=false]", - "minecraft:polished_andesite_stairs[facing=east,half=top,shape=straight,waterlogged=true]", - "minecraft:polished_andesite_stairs[facing=east,half=top,shape=straight,waterlogged=false]", - "minecraft:polished_andesite_stairs[facing=east,half=top,shape=inner_left,waterlogged=true]", - "minecraft:polished_andesite_stairs[facing=east,half=top,shape=inner_left,waterlogged=false]", - "minecraft:polished_andesite_stairs[facing=east,half=top,shape=inner_right,waterlogged=true]", - "minecraft:polished_andesite_stairs[facing=east,half=top,shape=inner_right,waterlogged=false]", - "minecraft:polished_andesite_stairs[facing=east,half=top,shape=outer_left,waterlogged=true]", - "minecraft:polished_andesite_stairs[facing=east,half=top,shape=outer_left,waterlogged=false]", - "minecraft:polished_andesite_stairs[facing=east,half=top,shape=outer_right,waterlogged=true]", - "minecraft:polished_andesite_stairs[facing=east,half=top,shape=outer_right,waterlogged=false]", - "minecraft:polished_andesite_stairs[facing=east,half=bottom,shape=straight,waterlogged=true]", - "minecraft:polished_andesite_stairs[facing=east,half=bottom,shape=straight,waterlogged=false]", - "minecraft:polished_andesite_stairs[facing=east,half=bottom,shape=inner_left,waterlogged=true]", - "minecraft:polished_andesite_stairs[facing=east,half=bottom,shape=inner_left,waterlogged=false]", - "minecraft:polished_andesite_stairs[facing=east,half=bottom,shape=inner_right,waterlogged=true]", - "minecraft:polished_andesite_stairs[facing=east,half=bottom,shape=inner_right,waterlogged=false]", - "minecraft:polished_andesite_stairs[facing=east,half=bottom,shape=outer_left,waterlogged=true]", - "minecraft:polished_andesite_stairs[facing=east,half=bottom,shape=outer_left,waterlogged=false]", - "minecraft:polished_andesite_stairs[facing=east,half=bottom,shape=outer_right,waterlogged=true]", - "minecraft:polished_andesite_stairs[facing=east,half=bottom,shape=outer_right,waterlogged=false]", - "minecraft:diorite_stairs[facing=north,half=top,shape=straight,waterlogged=true]", - "minecraft:diorite_stairs[facing=north,half=top,shape=straight,waterlogged=false]", - "minecraft:diorite_stairs[facing=north,half=top,shape=inner_left,waterlogged=true]", - "minecraft:diorite_stairs[facing=north,half=top,shape=inner_left,waterlogged=false]", - "minecraft:diorite_stairs[facing=north,half=top,shape=inner_right,waterlogged=true]", - "minecraft:diorite_stairs[facing=north,half=top,shape=inner_right,waterlogged=false]", - "minecraft:diorite_stairs[facing=north,half=top,shape=outer_left,waterlogged=true]", - "minecraft:diorite_stairs[facing=north,half=top,shape=outer_left,waterlogged=false]", - "minecraft:diorite_stairs[facing=north,half=top,shape=outer_right,waterlogged=true]", - "minecraft:diorite_stairs[facing=north,half=top,shape=outer_right,waterlogged=false]", - "minecraft:diorite_stairs[facing=north,half=bottom,shape=straight,waterlogged=true]", - "minecraft:diorite_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]", - "minecraft:diorite_stairs[facing=north,half=bottom,shape=inner_left,waterlogged=true]", - "minecraft:diorite_stairs[facing=north,half=bottom,shape=inner_left,waterlogged=false]", - "minecraft:diorite_stairs[facing=north,half=bottom,shape=inner_right,waterlogged=true]", - "minecraft:diorite_stairs[facing=north,half=bottom,shape=inner_right,waterlogged=false]", - "minecraft:diorite_stairs[facing=north,half=bottom,shape=outer_left,waterlogged=true]", - "minecraft:diorite_stairs[facing=north,half=bottom,shape=outer_left,waterlogged=false]", - "minecraft:diorite_stairs[facing=north,half=bottom,shape=outer_right,waterlogged=true]", - "minecraft:diorite_stairs[facing=north,half=bottom,shape=outer_right,waterlogged=false]", - "minecraft:diorite_stairs[facing=south,half=top,shape=straight,waterlogged=true]", - "minecraft:diorite_stairs[facing=south,half=top,shape=straight,waterlogged=false]", - "minecraft:diorite_stairs[facing=south,half=top,shape=inner_left,waterlogged=true]", - "minecraft:diorite_stairs[facing=south,half=top,shape=inner_left,waterlogged=false]", - "minecraft:diorite_stairs[facing=south,half=top,shape=inner_right,waterlogged=true]", - "minecraft:diorite_stairs[facing=south,half=top,shape=inner_right,waterlogged=false]", - "minecraft:diorite_stairs[facing=south,half=top,shape=outer_left,waterlogged=true]", - "minecraft:diorite_stairs[facing=south,half=top,shape=outer_left,waterlogged=false]", - "minecraft:diorite_stairs[facing=south,half=top,shape=outer_right,waterlogged=true]", - "minecraft:diorite_stairs[facing=south,half=top,shape=outer_right,waterlogged=false]", - "minecraft:diorite_stairs[facing=south,half=bottom,shape=straight,waterlogged=true]", - "minecraft:diorite_stairs[facing=south,half=bottom,shape=straight,waterlogged=false]", - "minecraft:diorite_stairs[facing=south,half=bottom,shape=inner_left,waterlogged=true]", - "minecraft:diorite_stairs[facing=south,half=bottom,shape=inner_left,waterlogged=false]", - "minecraft:diorite_stairs[facing=south,half=bottom,shape=inner_right,waterlogged=true]", - "minecraft:diorite_stairs[facing=south,half=bottom,shape=inner_right,waterlogged=false]", - "minecraft:diorite_stairs[facing=south,half=bottom,shape=outer_left,waterlogged=true]", - "minecraft:diorite_stairs[facing=south,half=bottom,shape=outer_left,waterlogged=false]", - "minecraft:diorite_stairs[facing=south,half=bottom,shape=outer_right,waterlogged=true]", - "minecraft:diorite_stairs[facing=south,half=bottom,shape=outer_right,waterlogged=false]", - "minecraft:diorite_stairs[facing=west,half=top,shape=straight,waterlogged=true]", - "minecraft:diorite_stairs[facing=west,half=top,shape=straight,waterlogged=false]", - "minecraft:diorite_stairs[facing=west,half=top,shape=inner_left,waterlogged=true]", - "minecraft:diorite_stairs[facing=west,half=top,shape=inner_left,waterlogged=false]", - "minecraft:diorite_stairs[facing=west,half=top,shape=inner_right,waterlogged=true]", - "minecraft:diorite_stairs[facing=west,half=top,shape=inner_right,waterlogged=false]", - "minecraft:diorite_stairs[facing=west,half=top,shape=outer_left,waterlogged=true]", - "minecraft:diorite_stairs[facing=west,half=top,shape=outer_left,waterlogged=false]", - "minecraft:diorite_stairs[facing=west,half=top,shape=outer_right,waterlogged=true]", - "minecraft:diorite_stairs[facing=west,half=top,shape=outer_right,waterlogged=false]", - "minecraft:diorite_stairs[facing=west,half=bottom,shape=straight,waterlogged=true]", - "minecraft:diorite_stairs[facing=west,half=bottom,shape=straight,waterlogged=false]", - "minecraft:diorite_stairs[facing=west,half=bottom,shape=inner_left,waterlogged=true]", - "minecraft:diorite_stairs[facing=west,half=bottom,shape=inner_left,waterlogged=false]", - "minecraft:diorite_stairs[facing=west,half=bottom,shape=inner_right,waterlogged=true]", - "minecraft:diorite_stairs[facing=west,half=bottom,shape=inner_right,waterlogged=false]", - "minecraft:diorite_stairs[facing=west,half=bottom,shape=outer_left,waterlogged=true]", - "minecraft:diorite_stairs[facing=west,half=bottom,shape=outer_left,waterlogged=false]", - "minecraft:diorite_stairs[facing=west,half=bottom,shape=outer_right,waterlogged=true]", - "minecraft:diorite_stairs[facing=west,half=bottom,shape=outer_right,waterlogged=false]", - "minecraft:diorite_stairs[facing=east,half=top,shape=straight,waterlogged=true]", - "minecraft:diorite_stairs[facing=east,half=top,shape=straight,waterlogged=false]", - "minecraft:diorite_stairs[facing=east,half=top,shape=inner_left,waterlogged=true]", - "minecraft:diorite_stairs[facing=east,half=top,shape=inner_left,waterlogged=false]", - "minecraft:diorite_stairs[facing=east,half=top,shape=inner_right,waterlogged=true]", - "minecraft:diorite_stairs[facing=east,half=top,shape=inner_right,waterlogged=false]", - "minecraft:diorite_stairs[facing=east,half=top,shape=outer_left,waterlogged=true]", - "minecraft:diorite_stairs[facing=east,half=top,shape=outer_left,waterlogged=false]", - "minecraft:diorite_stairs[facing=east,half=top,shape=outer_right,waterlogged=true]", - "minecraft:diorite_stairs[facing=east,half=top,shape=outer_right,waterlogged=false]", - "minecraft:diorite_stairs[facing=east,half=bottom,shape=straight,waterlogged=true]", - "minecraft:diorite_stairs[facing=east,half=bottom,shape=straight,waterlogged=false]", - "minecraft:diorite_stairs[facing=east,half=bottom,shape=inner_left,waterlogged=true]", - "minecraft:diorite_stairs[facing=east,half=bottom,shape=inner_left,waterlogged=false]", - "minecraft:diorite_stairs[facing=east,half=bottom,shape=inner_right,waterlogged=true]", - "minecraft:diorite_stairs[facing=east,half=bottom,shape=inner_right,waterlogged=false]", - "minecraft:diorite_stairs[facing=east,half=bottom,shape=outer_left,waterlogged=true]", - "minecraft:diorite_stairs[facing=east,half=bottom,shape=outer_left,waterlogged=false]", - "minecraft:diorite_stairs[facing=east,half=bottom,shape=outer_right,waterlogged=true]", - "minecraft:diorite_stairs[facing=east,half=bottom,shape=outer_right,waterlogged=false]", - "minecraft:polished_granite_slab[type=top,waterlogged=true]", - "minecraft:polished_granite_slab[type=top,waterlogged=false]", - "minecraft:polished_granite_slab[type=bottom,waterlogged=true]", - "minecraft:polished_granite_slab[type=bottom,waterlogged=false]", - "minecraft:polished_granite_slab[type=double,waterlogged=true]", - "minecraft:polished_granite_slab[type=double,waterlogged=false]", - "minecraft:smooth_red_sandstone_slab[type=top,waterlogged=true]", - "minecraft:smooth_red_sandstone_slab[type=top,waterlogged=false]", - "minecraft:smooth_red_sandstone_slab[type=bottom,waterlogged=true]", - "minecraft:smooth_red_sandstone_slab[type=bottom,waterlogged=false]", - "minecraft:smooth_red_sandstone_slab[type=double,waterlogged=true]", - "minecraft:smooth_red_sandstone_slab[type=double,waterlogged=false]", - "minecraft:mossy_stone_brick_slab[type=top,waterlogged=true]", - "minecraft:mossy_stone_brick_slab[type=top,waterlogged=false]", - "minecraft:mossy_stone_brick_slab[type=bottom,waterlogged=true]", - "minecraft:mossy_stone_brick_slab[type=bottom,waterlogged=false]", - "minecraft:mossy_stone_brick_slab[type=double,waterlogged=true]", - "minecraft:mossy_stone_brick_slab[type=double,waterlogged=false]", - "minecraft:polished_diorite_slab[type=top,waterlogged=true]", - "minecraft:polished_diorite_slab[type=top,waterlogged=false]", - "minecraft:polished_diorite_slab[type=bottom,waterlogged=true]", - "minecraft:polished_diorite_slab[type=bottom,waterlogged=false]", - "minecraft:polished_diorite_slab[type=double,waterlogged=true]", - "minecraft:polished_diorite_slab[type=double,waterlogged=false]", - "minecraft:mossy_cobblestone_slab[type=top,waterlogged=true]", - "minecraft:mossy_cobblestone_slab[type=top,waterlogged=false]", - "minecraft:mossy_cobblestone_slab[type=bottom,waterlogged=true]", - "minecraft:mossy_cobblestone_slab[type=bottom,waterlogged=false]", - "minecraft:mossy_cobblestone_slab[type=double,waterlogged=true]", - "minecraft:mossy_cobblestone_slab[type=double,waterlogged=false]", - "minecraft:end_stone_brick_slab[type=top,waterlogged=true]", - "minecraft:end_stone_brick_slab[type=top,waterlogged=false]", - "minecraft:end_stone_brick_slab[type=bottom,waterlogged=true]", - "minecraft:end_stone_brick_slab[type=bottom,waterlogged=false]", - "minecraft:end_stone_brick_slab[type=double,waterlogged=true]", - "minecraft:end_stone_brick_slab[type=double,waterlogged=false]", - "minecraft:smooth_sandstone_slab[type=top,waterlogged=true]", - "minecraft:smooth_sandstone_slab[type=top,waterlogged=false]", - "minecraft:smooth_sandstone_slab[type=bottom,waterlogged=true]", - "minecraft:smooth_sandstone_slab[type=bottom,waterlogged=false]", - "minecraft:smooth_sandstone_slab[type=double,waterlogged=true]", - "minecraft:smooth_sandstone_slab[type=double,waterlogged=false]", - "minecraft:smooth_quartz_slab[type=top,waterlogged=true]", - "minecraft:smooth_quartz_slab[type=top,waterlogged=false]", - "minecraft:smooth_quartz_slab[type=bottom,waterlogged=true]", - "minecraft:smooth_quartz_slab[type=bottom,waterlogged=false]", - "minecraft:smooth_quartz_slab[type=double,waterlogged=true]", - "minecraft:smooth_quartz_slab[type=double,waterlogged=false]", - "minecraft:granite_slab[type=top,waterlogged=true]", - "minecraft:granite_slab[type=top,waterlogged=false]", - "minecraft:granite_slab[type=bottom,waterlogged=true]", - "minecraft:granite_slab[type=bottom,waterlogged=false]", - "minecraft:granite_slab[type=double,waterlogged=true]", - "minecraft:granite_slab[type=double,waterlogged=false]", - "minecraft:andesite_slab[type=top,waterlogged=true]", - "minecraft:andesite_slab[type=top,waterlogged=false]", - "minecraft:andesite_slab[type=bottom,waterlogged=true]", - "minecraft:andesite_slab[type=bottom,waterlogged=false]", - "minecraft:andesite_slab[type=double,waterlogged=true]", - "minecraft:andesite_slab[type=double,waterlogged=false]", - "minecraft:red_nether_brick_slab[type=top,waterlogged=true]", - "minecraft:red_nether_brick_slab[type=top,waterlogged=false]", - "minecraft:red_nether_brick_slab[type=bottom,waterlogged=true]", - "minecraft:red_nether_brick_slab[type=bottom,waterlogged=false]", - "minecraft:red_nether_brick_slab[type=double,waterlogged=true]", - "minecraft:red_nether_brick_slab[type=double,waterlogged=false]", - "minecraft:polished_andesite_slab[type=top,waterlogged=true]", - "minecraft:polished_andesite_slab[type=top,waterlogged=false]", - "minecraft:polished_andesite_slab[type=bottom,waterlogged=true]", - "minecraft:polished_andesite_slab[type=bottom,waterlogged=false]", - "minecraft:polished_andesite_slab[type=double,waterlogged=true]", - "minecraft:polished_andesite_slab[type=double,waterlogged=false]", - "minecraft:diorite_slab[type=top,waterlogged=true]", - "minecraft:diorite_slab[type=top,waterlogged=false]", - "minecraft:diorite_slab[type=bottom,waterlogged=true]", - "minecraft:diorite_slab[type=bottom,waterlogged=false]", - "minecraft:diorite_slab[type=double,waterlogged=true]", - "minecraft:diorite_slab[type=double,waterlogged=false]", - "minecraft:brick_wall[east=true,north=true,south=true,up=true,waterlogged=true,west=true]", - "minecraft:brick_wall[east=true,north=true,south=true,up=true,waterlogged=true,west=false]", - "minecraft:brick_wall[east=true,north=true,south=true,up=true,waterlogged=false,west=true]", - "minecraft:brick_wall[east=true,north=true,south=true,up=true,waterlogged=false,west=false]", - "minecraft:brick_wall[east=true,north=true,south=true,up=false,waterlogged=true,west=true]", - "minecraft:brick_wall[east=true,north=true,south=true,up=false,waterlogged=true,west=false]", - "minecraft:brick_wall[east=true,north=true,south=true,up=false,waterlogged=false,west=true]", - "minecraft:brick_wall[east=true,north=true,south=true,up=false,waterlogged=false,west=false]", - "minecraft:brick_wall[east=true,north=true,south=false,up=true,waterlogged=true,west=true]", - "minecraft:brick_wall[east=true,north=true,south=false,up=true,waterlogged=true,west=false]", - "minecraft:brick_wall[east=true,north=true,south=false,up=true,waterlogged=false,west=true]", - "minecraft:brick_wall[east=true,north=true,south=false,up=true,waterlogged=false,west=false]", - "minecraft:brick_wall[east=true,north=true,south=false,up=false,waterlogged=true,west=true]", - "minecraft:brick_wall[east=true,north=true,south=false,up=false,waterlogged=true,west=false]", - "minecraft:brick_wall[east=true,north=true,south=false,up=false,waterlogged=false,west=true]", - "minecraft:brick_wall[east=true,north=true,south=false,up=false,waterlogged=false,west=false]", - "minecraft:brick_wall[east=true,north=false,south=true,up=true,waterlogged=true,west=true]", - "minecraft:brick_wall[east=true,north=false,south=true,up=true,waterlogged=true,west=false]", - "minecraft:brick_wall[east=true,north=false,south=true,up=true,waterlogged=false,west=true]", - "minecraft:brick_wall[east=true,north=false,south=true,up=true,waterlogged=false,west=false]", - "minecraft:brick_wall[east=true,north=false,south=true,up=false,waterlogged=true,west=true]", - "minecraft:brick_wall[east=true,north=false,south=true,up=false,waterlogged=true,west=false]", - "minecraft:brick_wall[east=true,north=false,south=true,up=false,waterlogged=false,west=true]", - "minecraft:brick_wall[east=true,north=false,south=true,up=false,waterlogged=false,west=false]", - "minecraft:brick_wall[east=true,north=false,south=false,up=true,waterlogged=true,west=true]", - "minecraft:brick_wall[east=true,north=false,south=false,up=true,waterlogged=true,west=false]", - "minecraft:brick_wall[east=true,north=false,south=false,up=true,waterlogged=false,west=true]", - "minecraft:brick_wall[east=true,north=false,south=false,up=true,waterlogged=false,west=false]", - "minecraft:brick_wall[east=true,north=false,south=false,up=false,waterlogged=true,west=true]", - "minecraft:brick_wall[east=true,north=false,south=false,up=false,waterlogged=true,west=false]", - "minecraft:brick_wall[east=true,north=false,south=false,up=false,waterlogged=false,west=true]", - "minecraft:brick_wall[east=true,north=false,south=false,up=false,waterlogged=false,west=false]", - "minecraft:brick_wall[east=false,north=true,south=true,up=true,waterlogged=true,west=true]", - "minecraft:brick_wall[east=false,north=true,south=true,up=true,waterlogged=true,west=false]", - "minecraft:brick_wall[east=false,north=true,south=true,up=true,waterlogged=false,west=true]", - "minecraft:brick_wall[east=false,north=true,south=true,up=true,waterlogged=false,west=false]", - "minecraft:brick_wall[east=false,north=true,south=true,up=false,waterlogged=true,west=true]", - "minecraft:brick_wall[east=false,north=true,south=true,up=false,waterlogged=true,west=false]", - "minecraft:brick_wall[east=false,north=true,south=true,up=false,waterlogged=false,west=true]", - "minecraft:brick_wall[east=false,north=true,south=true,up=false,waterlogged=false,west=false]", - "minecraft:brick_wall[east=false,north=true,south=false,up=true,waterlogged=true,west=true]", - "minecraft:brick_wall[east=false,north=true,south=false,up=true,waterlogged=true,west=false]", - "minecraft:brick_wall[east=false,north=true,south=false,up=true,waterlogged=false,west=true]", - "minecraft:brick_wall[east=false,north=true,south=false,up=true,waterlogged=false,west=false]", - "minecraft:brick_wall[east=false,north=true,south=false,up=false,waterlogged=true,west=true]", - "minecraft:brick_wall[east=false,north=true,south=false,up=false,waterlogged=true,west=false]", - "minecraft:brick_wall[east=false,north=true,south=false,up=false,waterlogged=false,west=true]", - "minecraft:brick_wall[east=false,north=true,south=false,up=false,waterlogged=false,west=false]", - "minecraft:brick_wall[east=false,north=false,south=true,up=true,waterlogged=true,west=true]", - "minecraft:brick_wall[east=false,north=false,south=true,up=true,waterlogged=true,west=false]", - "minecraft:brick_wall[east=false,north=false,south=true,up=true,waterlogged=false,west=true]", - "minecraft:brick_wall[east=false,north=false,south=true,up=true,waterlogged=false,west=false]", - "minecraft:brick_wall[east=false,north=false,south=true,up=false,waterlogged=true,west=true]", - "minecraft:brick_wall[east=false,north=false,south=true,up=false,waterlogged=true,west=false]", - "minecraft:brick_wall[east=false,north=false,south=true,up=false,waterlogged=false,west=true]", - "minecraft:brick_wall[east=false,north=false,south=true,up=false,waterlogged=false,west=false]", - "minecraft:brick_wall[east=false,north=false,south=false,up=true,waterlogged=true,west=true]", - "minecraft:brick_wall[east=false,north=false,south=false,up=true,waterlogged=true,west=false]", - "minecraft:brick_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=true]", - "minecraft:brick_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]", - "minecraft:brick_wall[east=false,north=false,south=false,up=false,waterlogged=true,west=true]", - "minecraft:brick_wall[east=false,north=false,south=false,up=false,waterlogged=true,west=false]", - "minecraft:brick_wall[east=false,north=false,south=false,up=false,waterlogged=false,west=true]", - "minecraft:brick_wall[east=false,north=false,south=false,up=false,waterlogged=false,west=false]", - "minecraft:prismarine_wall[east=true,north=true,south=true,up=true,waterlogged=true,west=true]", - "minecraft:prismarine_wall[east=true,north=true,south=true,up=true,waterlogged=true,west=false]", - "minecraft:prismarine_wall[east=true,north=true,south=true,up=true,waterlogged=false,west=true]", - "minecraft:prismarine_wall[east=true,north=true,south=true,up=true,waterlogged=false,west=false]", - "minecraft:prismarine_wall[east=true,north=true,south=true,up=false,waterlogged=true,west=true]", - "minecraft:prismarine_wall[east=true,north=true,south=true,up=false,waterlogged=true,west=false]", - "minecraft:prismarine_wall[east=true,north=true,south=true,up=false,waterlogged=false,west=true]", - "minecraft:prismarine_wall[east=true,north=true,south=true,up=false,waterlogged=false,west=false]", - "minecraft:prismarine_wall[east=true,north=true,south=false,up=true,waterlogged=true,west=true]", - "minecraft:prismarine_wall[east=true,north=true,south=false,up=true,waterlogged=true,west=false]", - "minecraft:prismarine_wall[east=true,north=true,south=false,up=true,waterlogged=false,west=true]", - "minecraft:prismarine_wall[east=true,north=true,south=false,up=true,waterlogged=false,west=false]", - "minecraft:prismarine_wall[east=true,north=true,south=false,up=false,waterlogged=true,west=true]", - "minecraft:prismarine_wall[east=true,north=true,south=false,up=false,waterlogged=true,west=false]", - "minecraft:prismarine_wall[east=true,north=true,south=false,up=false,waterlogged=false,west=true]", - "minecraft:prismarine_wall[east=true,north=true,south=false,up=false,waterlogged=false,west=false]", - "minecraft:prismarine_wall[east=true,north=false,south=true,up=true,waterlogged=true,west=true]", - "minecraft:prismarine_wall[east=true,north=false,south=true,up=true,waterlogged=true,west=false]", - "minecraft:prismarine_wall[east=true,north=false,south=true,up=true,waterlogged=false,west=true]", - "minecraft:prismarine_wall[east=true,north=false,south=true,up=true,waterlogged=false,west=false]", - "minecraft:prismarine_wall[east=true,north=false,south=true,up=false,waterlogged=true,west=true]", - "minecraft:prismarine_wall[east=true,north=false,south=true,up=false,waterlogged=true,west=false]", - "minecraft:prismarine_wall[east=true,north=false,south=true,up=false,waterlogged=false,west=true]", - "minecraft:prismarine_wall[east=true,north=false,south=true,up=false,waterlogged=false,west=false]", - "minecraft:prismarine_wall[east=true,north=false,south=false,up=true,waterlogged=true,west=true]", - "minecraft:prismarine_wall[east=true,north=false,south=false,up=true,waterlogged=true,west=false]", - "minecraft:prismarine_wall[east=true,north=false,south=false,up=true,waterlogged=false,west=true]", - "minecraft:prismarine_wall[east=true,north=false,south=false,up=true,waterlogged=false,west=false]", - "minecraft:prismarine_wall[east=true,north=false,south=false,up=false,waterlogged=true,west=true]", - "minecraft:prismarine_wall[east=true,north=false,south=false,up=false,waterlogged=true,west=false]", - "minecraft:prismarine_wall[east=true,north=false,south=false,up=false,waterlogged=false,west=true]", - "minecraft:prismarine_wall[east=true,north=false,south=false,up=false,waterlogged=false,west=false]", - "minecraft:prismarine_wall[east=false,north=true,south=true,up=true,waterlogged=true,west=true]", - "minecraft:prismarine_wall[east=false,north=true,south=true,up=true,waterlogged=true,west=false]", - "minecraft:prismarine_wall[east=false,north=true,south=true,up=true,waterlogged=false,west=true]", - "minecraft:prismarine_wall[east=false,north=true,south=true,up=true,waterlogged=false,west=false]", - "minecraft:prismarine_wall[east=false,north=true,south=true,up=false,waterlogged=true,west=true]", - "minecraft:prismarine_wall[east=false,north=true,south=true,up=false,waterlogged=true,west=false]", - "minecraft:prismarine_wall[east=false,north=true,south=true,up=false,waterlogged=false,west=true]", - "minecraft:prismarine_wall[east=false,north=true,south=true,up=false,waterlogged=false,west=false]", - "minecraft:prismarine_wall[east=false,north=true,south=false,up=true,waterlogged=true,west=true]", - "minecraft:prismarine_wall[east=false,north=true,south=false,up=true,waterlogged=true,west=false]", - "minecraft:prismarine_wall[east=false,north=true,south=false,up=true,waterlogged=false,west=true]", - "minecraft:prismarine_wall[east=false,north=true,south=false,up=true,waterlogged=false,west=false]", - "minecraft:prismarine_wall[east=false,north=true,south=false,up=false,waterlogged=true,west=true]", - "minecraft:prismarine_wall[east=false,north=true,south=false,up=false,waterlogged=true,west=false]", - "minecraft:prismarine_wall[east=false,north=true,south=false,up=false,waterlogged=false,west=true]", - "minecraft:prismarine_wall[east=false,north=true,south=false,up=false,waterlogged=false,west=false]", - "minecraft:prismarine_wall[east=false,north=false,south=true,up=true,waterlogged=true,west=true]", - "minecraft:prismarine_wall[east=false,north=false,south=true,up=true,waterlogged=true,west=false]", - "minecraft:prismarine_wall[east=false,north=false,south=true,up=true,waterlogged=false,west=true]", - "minecraft:prismarine_wall[east=false,north=false,south=true,up=true,waterlogged=false,west=false]", - "minecraft:prismarine_wall[east=false,north=false,south=true,up=false,waterlogged=true,west=true]", - "minecraft:prismarine_wall[east=false,north=false,south=true,up=false,waterlogged=true,west=false]", - "minecraft:prismarine_wall[east=false,north=false,south=true,up=false,waterlogged=false,west=true]", - "minecraft:prismarine_wall[east=false,north=false,south=true,up=false,waterlogged=false,west=false]", - "minecraft:prismarine_wall[east=false,north=false,south=false,up=true,waterlogged=true,west=true]", - "minecraft:prismarine_wall[east=false,north=false,south=false,up=true,waterlogged=true,west=false]", - "minecraft:prismarine_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=true]", - "minecraft:prismarine_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]", - "minecraft:prismarine_wall[east=false,north=false,south=false,up=false,waterlogged=true,west=true]", - "minecraft:prismarine_wall[east=false,north=false,south=false,up=false,waterlogged=true,west=false]", - "minecraft:prismarine_wall[east=false,north=false,south=false,up=false,waterlogged=false,west=true]", - "minecraft:prismarine_wall[east=false,north=false,south=false,up=false,waterlogged=false,west=false]", - "minecraft:red_sandstone_wall[east=true,north=true,south=true,up=true,waterlogged=true,west=true]", - "minecraft:red_sandstone_wall[east=true,north=true,south=true,up=true,waterlogged=true,west=false]", - "minecraft:red_sandstone_wall[east=true,north=true,south=true,up=true,waterlogged=false,west=true]", - "minecraft:red_sandstone_wall[east=true,north=true,south=true,up=true,waterlogged=false,west=false]", - "minecraft:red_sandstone_wall[east=true,north=true,south=true,up=false,waterlogged=true,west=true]", - "minecraft:red_sandstone_wall[east=true,north=true,south=true,up=false,waterlogged=true,west=false]", - "minecraft:red_sandstone_wall[east=true,north=true,south=true,up=false,waterlogged=false,west=true]", - "minecraft:red_sandstone_wall[east=true,north=true,south=true,up=false,waterlogged=false,west=false]", - "minecraft:red_sandstone_wall[east=true,north=true,south=false,up=true,waterlogged=true,west=true]", - "minecraft:red_sandstone_wall[east=true,north=true,south=false,up=true,waterlogged=true,west=false]", - "minecraft:red_sandstone_wall[east=true,north=true,south=false,up=true,waterlogged=false,west=true]", - "minecraft:red_sandstone_wall[east=true,north=true,south=false,up=true,waterlogged=false,west=false]", - "minecraft:red_sandstone_wall[east=true,north=true,south=false,up=false,waterlogged=true,west=true]", - "minecraft:red_sandstone_wall[east=true,north=true,south=false,up=false,waterlogged=true,west=false]", - "minecraft:red_sandstone_wall[east=true,north=true,south=false,up=false,waterlogged=false,west=true]", - "minecraft:red_sandstone_wall[east=true,north=true,south=false,up=false,waterlogged=false,west=false]", - "minecraft:red_sandstone_wall[east=true,north=false,south=true,up=true,waterlogged=true,west=true]", - "minecraft:red_sandstone_wall[east=true,north=false,south=true,up=true,waterlogged=true,west=false]", - "minecraft:red_sandstone_wall[east=true,north=false,south=true,up=true,waterlogged=false,west=true]", - "minecraft:red_sandstone_wall[east=true,north=false,south=true,up=true,waterlogged=false,west=false]", - "minecraft:red_sandstone_wall[east=true,north=false,south=true,up=false,waterlogged=true,west=true]", - "minecraft:red_sandstone_wall[east=true,north=false,south=true,up=false,waterlogged=true,west=false]", - "minecraft:red_sandstone_wall[east=true,north=false,south=true,up=false,waterlogged=false,west=true]", - "minecraft:red_sandstone_wall[east=true,north=false,south=true,up=false,waterlogged=false,west=false]", - "minecraft:red_sandstone_wall[east=true,north=false,south=false,up=true,waterlogged=true,west=true]", - "minecraft:red_sandstone_wall[east=true,north=false,south=false,up=true,waterlogged=true,west=false]", - "minecraft:red_sandstone_wall[east=true,north=false,south=false,up=true,waterlogged=false,west=true]", - "minecraft:red_sandstone_wall[east=true,north=false,south=false,up=true,waterlogged=false,west=false]", - "minecraft:red_sandstone_wall[east=true,north=false,south=false,up=false,waterlogged=true,west=true]", - "minecraft:red_sandstone_wall[east=true,north=false,south=false,up=false,waterlogged=true,west=false]", - "minecraft:red_sandstone_wall[east=true,north=false,south=false,up=false,waterlogged=false,west=true]", - "minecraft:red_sandstone_wall[east=true,north=false,south=false,up=false,waterlogged=false,west=false]", - "minecraft:red_sandstone_wall[east=false,north=true,south=true,up=true,waterlogged=true,west=true]", - "minecraft:red_sandstone_wall[east=false,north=true,south=true,up=true,waterlogged=true,west=false]", - "minecraft:red_sandstone_wall[east=false,north=true,south=true,up=true,waterlogged=false,west=true]", - "minecraft:red_sandstone_wall[east=false,north=true,south=true,up=true,waterlogged=false,west=false]", - "minecraft:red_sandstone_wall[east=false,north=true,south=true,up=false,waterlogged=true,west=true]", - "minecraft:red_sandstone_wall[east=false,north=true,south=true,up=false,waterlogged=true,west=false]", - "minecraft:red_sandstone_wall[east=false,north=true,south=true,up=false,waterlogged=false,west=true]", - "minecraft:red_sandstone_wall[east=false,north=true,south=true,up=false,waterlogged=false,west=false]", - "minecraft:red_sandstone_wall[east=false,north=true,south=false,up=true,waterlogged=true,west=true]", - "minecraft:red_sandstone_wall[east=false,north=true,south=false,up=true,waterlogged=true,west=false]", - "minecraft:red_sandstone_wall[east=false,north=true,south=false,up=true,waterlogged=false,west=true]", - "minecraft:red_sandstone_wall[east=false,north=true,south=false,up=true,waterlogged=false,west=false]", - "minecraft:red_sandstone_wall[east=false,north=true,south=false,up=false,waterlogged=true,west=true]", - "minecraft:red_sandstone_wall[east=false,north=true,south=false,up=false,waterlogged=true,west=false]", - "minecraft:red_sandstone_wall[east=false,north=true,south=false,up=false,waterlogged=false,west=true]", - "minecraft:red_sandstone_wall[east=false,north=true,south=false,up=false,waterlogged=false,west=false]", - "minecraft:red_sandstone_wall[east=false,north=false,south=true,up=true,waterlogged=true,west=true]", - "minecraft:red_sandstone_wall[east=false,north=false,south=true,up=true,waterlogged=true,west=false]", - "minecraft:red_sandstone_wall[east=false,north=false,south=true,up=true,waterlogged=false,west=true]", - "minecraft:red_sandstone_wall[east=false,north=false,south=true,up=true,waterlogged=false,west=false]", - "minecraft:red_sandstone_wall[east=false,north=false,south=true,up=false,waterlogged=true,west=true]", - "minecraft:red_sandstone_wall[east=false,north=false,south=true,up=false,waterlogged=true,west=false]", - "minecraft:red_sandstone_wall[east=false,north=false,south=true,up=false,waterlogged=false,west=true]", - "minecraft:red_sandstone_wall[east=false,north=false,south=true,up=false,waterlogged=false,west=false]", - "minecraft:red_sandstone_wall[east=false,north=false,south=false,up=true,waterlogged=true,west=true]", - "minecraft:red_sandstone_wall[east=false,north=false,south=false,up=true,waterlogged=true,west=false]", - "minecraft:red_sandstone_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=true]", - "minecraft:red_sandstone_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]", - "minecraft:red_sandstone_wall[east=false,north=false,south=false,up=false,waterlogged=true,west=true]", - "minecraft:red_sandstone_wall[east=false,north=false,south=false,up=false,waterlogged=true,west=false]", - "minecraft:red_sandstone_wall[east=false,north=false,south=false,up=false,waterlogged=false,west=true]", - "minecraft:red_sandstone_wall[east=false,north=false,south=false,up=false,waterlogged=false,west=false]", - "minecraft:mossy_stone_brick_wall[east=true,north=true,south=true,up=true,waterlogged=true,west=true]", - "minecraft:mossy_stone_brick_wall[east=true,north=true,south=true,up=true,waterlogged=true,west=false]", - "minecraft:mossy_stone_brick_wall[east=true,north=true,south=true,up=true,waterlogged=false,west=true]", - "minecraft:mossy_stone_brick_wall[east=true,north=true,south=true,up=true,waterlogged=false,west=false]", - "minecraft:mossy_stone_brick_wall[east=true,north=true,south=true,up=false,waterlogged=true,west=true]", - "minecraft:mossy_stone_brick_wall[east=true,north=true,south=true,up=false,waterlogged=true,west=false]", - "minecraft:mossy_stone_brick_wall[east=true,north=true,south=true,up=false,waterlogged=false,west=true]", - "minecraft:mossy_stone_brick_wall[east=true,north=true,south=true,up=false,waterlogged=false,west=false]", - "minecraft:mossy_stone_brick_wall[east=true,north=true,south=false,up=true,waterlogged=true,west=true]", - "minecraft:mossy_stone_brick_wall[east=true,north=true,south=false,up=true,waterlogged=true,west=false]", - "minecraft:mossy_stone_brick_wall[east=true,north=true,south=false,up=true,waterlogged=false,west=true]", - "minecraft:mossy_stone_brick_wall[east=true,north=true,south=false,up=true,waterlogged=false,west=false]", - "minecraft:mossy_stone_brick_wall[east=true,north=true,south=false,up=false,waterlogged=true,west=true]", - "minecraft:mossy_stone_brick_wall[east=true,north=true,south=false,up=false,waterlogged=true,west=false]", - "minecraft:mossy_stone_brick_wall[east=true,north=true,south=false,up=false,waterlogged=false,west=true]", - "minecraft:mossy_stone_brick_wall[east=true,north=true,south=false,up=false,waterlogged=false,west=false]", - "minecraft:mossy_stone_brick_wall[east=true,north=false,south=true,up=true,waterlogged=true,west=true]", - "minecraft:mossy_stone_brick_wall[east=true,north=false,south=true,up=true,waterlogged=true,west=false]", - "minecraft:mossy_stone_brick_wall[east=true,north=false,south=true,up=true,waterlogged=false,west=true]", - "minecraft:mossy_stone_brick_wall[east=true,north=false,south=true,up=true,waterlogged=false,west=false]", - "minecraft:mossy_stone_brick_wall[east=true,north=false,south=true,up=false,waterlogged=true,west=true]", - "minecraft:mossy_stone_brick_wall[east=true,north=false,south=true,up=false,waterlogged=true,west=false]", - "minecraft:mossy_stone_brick_wall[east=true,north=false,south=true,up=false,waterlogged=false,west=true]", - "minecraft:mossy_stone_brick_wall[east=true,north=false,south=true,up=false,waterlogged=false,west=false]", - "minecraft:mossy_stone_brick_wall[east=true,north=false,south=false,up=true,waterlogged=true,west=true]", - "minecraft:mossy_stone_brick_wall[east=true,north=false,south=false,up=true,waterlogged=true,west=false]", - "minecraft:mossy_stone_brick_wall[east=true,north=false,south=false,up=true,waterlogged=false,west=true]", - "minecraft:mossy_stone_brick_wall[east=true,north=false,south=false,up=true,waterlogged=false,west=false]", - "minecraft:mossy_stone_brick_wall[east=true,north=false,south=false,up=false,waterlogged=true,west=true]", - "minecraft:mossy_stone_brick_wall[east=true,north=false,south=false,up=false,waterlogged=true,west=false]", - "minecraft:mossy_stone_brick_wall[east=true,north=false,south=false,up=false,waterlogged=false,west=true]", - "minecraft:mossy_stone_brick_wall[east=true,north=false,south=false,up=false,waterlogged=false,west=false]", - "minecraft:mossy_stone_brick_wall[east=false,north=true,south=true,up=true,waterlogged=true,west=true]", - "minecraft:mossy_stone_brick_wall[east=false,north=true,south=true,up=true,waterlogged=true,west=false]", - "minecraft:mossy_stone_brick_wall[east=false,north=true,south=true,up=true,waterlogged=false,west=true]", - "minecraft:mossy_stone_brick_wall[east=false,north=true,south=true,up=true,waterlogged=false,west=false]", - "minecraft:mossy_stone_brick_wall[east=false,north=true,south=true,up=false,waterlogged=true,west=true]", - "minecraft:mossy_stone_brick_wall[east=false,north=true,south=true,up=false,waterlogged=true,west=false]", - "minecraft:mossy_stone_brick_wall[east=false,north=true,south=true,up=false,waterlogged=false,west=true]", - "minecraft:mossy_stone_brick_wall[east=false,north=true,south=true,up=false,waterlogged=false,west=false]", - "minecraft:mossy_stone_brick_wall[east=false,north=true,south=false,up=true,waterlogged=true,west=true]", - "minecraft:mossy_stone_brick_wall[east=false,north=true,south=false,up=true,waterlogged=true,west=false]", - "minecraft:mossy_stone_brick_wall[east=false,north=true,south=false,up=true,waterlogged=false,west=true]", - "minecraft:mossy_stone_brick_wall[east=false,north=true,south=false,up=true,waterlogged=false,west=false]", - "minecraft:mossy_stone_brick_wall[east=false,north=true,south=false,up=false,waterlogged=true,west=true]", - "minecraft:mossy_stone_brick_wall[east=false,north=true,south=false,up=false,waterlogged=true,west=false]", - "minecraft:mossy_stone_brick_wall[east=false,north=true,south=false,up=false,waterlogged=false,west=true]", - "minecraft:mossy_stone_brick_wall[east=false,north=true,south=false,up=false,waterlogged=false,west=false]", - "minecraft:mossy_stone_brick_wall[east=false,north=false,south=true,up=true,waterlogged=true,west=true]", - "minecraft:mossy_stone_brick_wall[east=false,north=false,south=true,up=true,waterlogged=true,west=false]", - "minecraft:mossy_stone_brick_wall[east=false,north=false,south=true,up=true,waterlogged=false,west=true]", - "minecraft:mossy_stone_brick_wall[east=false,north=false,south=true,up=true,waterlogged=false,west=false]", - "minecraft:mossy_stone_brick_wall[east=false,north=false,south=true,up=false,waterlogged=true,west=true]", - "minecraft:mossy_stone_brick_wall[east=false,north=false,south=true,up=false,waterlogged=true,west=false]", - "minecraft:mossy_stone_brick_wall[east=false,north=false,south=true,up=false,waterlogged=false,west=true]", - "minecraft:mossy_stone_brick_wall[east=false,north=false,south=true,up=false,waterlogged=false,west=false]", - "minecraft:mossy_stone_brick_wall[east=false,north=false,south=false,up=true,waterlogged=true,west=true]", - "minecraft:mossy_stone_brick_wall[east=false,north=false,south=false,up=true,waterlogged=true,west=false]", - "minecraft:mossy_stone_brick_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=true]", - "minecraft:mossy_stone_brick_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]", - "minecraft:mossy_stone_brick_wall[east=false,north=false,south=false,up=false,waterlogged=true,west=true]", - "minecraft:mossy_stone_brick_wall[east=false,north=false,south=false,up=false,waterlogged=true,west=false]", - "minecraft:mossy_stone_brick_wall[east=false,north=false,south=false,up=false,waterlogged=false,west=true]", - "minecraft:mossy_stone_brick_wall[east=false,north=false,south=false,up=false,waterlogged=false,west=false]", - "minecraft:granite_wall[east=true,north=true,south=true,up=true,waterlogged=true,west=true]", - "minecraft:granite_wall[east=true,north=true,south=true,up=true,waterlogged=true,west=false]", - "minecraft:granite_wall[east=true,north=true,south=true,up=true,waterlogged=false,west=true]", - "minecraft:granite_wall[east=true,north=true,south=true,up=true,waterlogged=false,west=false]", - "minecraft:granite_wall[east=true,north=true,south=true,up=false,waterlogged=true,west=true]", - "minecraft:granite_wall[east=true,north=true,south=true,up=false,waterlogged=true,west=false]", - "minecraft:granite_wall[east=true,north=true,south=true,up=false,waterlogged=false,west=true]", - "minecraft:granite_wall[east=true,north=true,south=true,up=false,waterlogged=false,west=false]", - "minecraft:granite_wall[east=true,north=true,south=false,up=true,waterlogged=true,west=true]", - "minecraft:granite_wall[east=true,north=true,south=false,up=true,waterlogged=true,west=false]", - "minecraft:granite_wall[east=true,north=true,south=false,up=true,waterlogged=false,west=true]", - "minecraft:granite_wall[east=true,north=true,south=false,up=true,waterlogged=false,west=false]", - "minecraft:granite_wall[east=true,north=true,south=false,up=false,waterlogged=true,west=true]", - "minecraft:granite_wall[east=true,north=true,south=false,up=false,waterlogged=true,west=false]", - "minecraft:granite_wall[east=true,north=true,south=false,up=false,waterlogged=false,west=true]", - "minecraft:granite_wall[east=true,north=true,south=false,up=false,waterlogged=false,west=false]", - "minecraft:granite_wall[east=true,north=false,south=true,up=true,waterlogged=true,west=true]", - "minecraft:granite_wall[east=true,north=false,south=true,up=true,waterlogged=true,west=false]", - "minecraft:granite_wall[east=true,north=false,south=true,up=true,waterlogged=false,west=true]", - "minecraft:granite_wall[east=true,north=false,south=true,up=true,waterlogged=false,west=false]", - "minecraft:granite_wall[east=true,north=false,south=true,up=false,waterlogged=true,west=true]", - "minecraft:granite_wall[east=true,north=false,south=true,up=false,waterlogged=true,west=false]", - "minecraft:granite_wall[east=true,north=false,south=true,up=false,waterlogged=false,west=true]", - "minecraft:granite_wall[east=true,north=false,south=true,up=false,waterlogged=false,west=false]", - "minecraft:granite_wall[east=true,north=false,south=false,up=true,waterlogged=true,west=true]", - "minecraft:granite_wall[east=true,north=false,south=false,up=true,waterlogged=true,west=false]", - "minecraft:granite_wall[east=true,north=false,south=false,up=true,waterlogged=false,west=true]", - "minecraft:granite_wall[east=true,north=false,south=false,up=true,waterlogged=false,west=false]", - "minecraft:granite_wall[east=true,north=false,south=false,up=false,waterlogged=true,west=true]", - "minecraft:granite_wall[east=true,north=false,south=false,up=false,waterlogged=true,west=false]", - "minecraft:granite_wall[east=true,north=false,south=false,up=false,waterlogged=false,west=true]", - "minecraft:granite_wall[east=true,north=false,south=false,up=false,waterlogged=false,west=false]", - "minecraft:granite_wall[east=false,north=true,south=true,up=true,waterlogged=true,west=true]", - "minecraft:granite_wall[east=false,north=true,south=true,up=true,waterlogged=true,west=false]", - "minecraft:granite_wall[east=false,north=true,south=true,up=true,waterlogged=false,west=true]", - "minecraft:granite_wall[east=false,north=true,south=true,up=true,waterlogged=false,west=false]", - "minecraft:granite_wall[east=false,north=true,south=true,up=false,waterlogged=true,west=true]", - "minecraft:granite_wall[east=false,north=true,south=true,up=false,waterlogged=true,west=false]", - "minecraft:granite_wall[east=false,north=true,south=true,up=false,waterlogged=false,west=true]", - "minecraft:granite_wall[east=false,north=true,south=true,up=false,waterlogged=false,west=false]", - "minecraft:granite_wall[east=false,north=true,south=false,up=true,waterlogged=true,west=true]", - "minecraft:granite_wall[east=false,north=true,south=false,up=true,waterlogged=true,west=false]", - "minecraft:granite_wall[east=false,north=true,south=false,up=true,waterlogged=false,west=true]", - "minecraft:granite_wall[east=false,north=true,south=false,up=true,waterlogged=false,west=false]", - "minecraft:granite_wall[east=false,north=true,south=false,up=false,waterlogged=true,west=true]", - "minecraft:granite_wall[east=false,north=true,south=false,up=false,waterlogged=true,west=false]", - "minecraft:granite_wall[east=false,north=true,south=false,up=false,waterlogged=false,west=true]", - "minecraft:granite_wall[east=false,north=true,south=false,up=false,waterlogged=false,west=false]", - "minecraft:granite_wall[east=false,north=false,south=true,up=true,waterlogged=true,west=true]", - "minecraft:granite_wall[east=false,north=false,south=true,up=true,waterlogged=true,west=false]", - "minecraft:granite_wall[east=false,north=false,south=true,up=true,waterlogged=false,west=true]", - "minecraft:granite_wall[east=false,north=false,south=true,up=true,waterlogged=false,west=false]", - "minecraft:granite_wall[east=false,north=false,south=true,up=false,waterlogged=true,west=true]", - "minecraft:granite_wall[east=false,north=false,south=true,up=false,waterlogged=true,west=false]", - "minecraft:granite_wall[east=false,north=false,south=true,up=false,waterlogged=false,west=true]", - "minecraft:granite_wall[east=false,north=false,south=true,up=false,waterlogged=false,west=false]", - "minecraft:granite_wall[east=false,north=false,south=false,up=true,waterlogged=true,west=true]", - "minecraft:granite_wall[east=false,north=false,south=false,up=true,waterlogged=true,west=false]", - "minecraft:granite_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=true]", - "minecraft:granite_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]", - "minecraft:granite_wall[east=false,north=false,south=false,up=false,waterlogged=true,west=true]", - "minecraft:granite_wall[east=false,north=false,south=false,up=false,waterlogged=true,west=false]", - "minecraft:granite_wall[east=false,north=false,south=false,up=false,waterlogged=false,west=true]", - "minecraft:granite_wall[east=false,north=false,south=false,up=false,waterlogged=false,west=false]", - "minecraft:stone_brick_wall[east=true,north=true,south=true,up=true,waterlogged=true,west=true]", - "minecraft:stone_brick_wall[east=true,north=true,south=true,up=true,waterlogged=true,west=false]", - "minecraft:stone_brick_wall[east=true,north=true,south=true,up=true,waterlogged=false,west=true]", - "minecraft:stone_brick_wall[east=true,north=true,south=true,up=true,waterlogged=false,west=false]", - "minecraft:stone_brick_wall[east=true,north=true,south=true,up=false,waterlogged=true,west=true]", - "minecraft:stone_brick_wall[east=true,north=true,south=true,up=false,waterlogged=true,west=false]", - "minecraft:stone_brick_wall[east=true,north=true,south=true,up=false,waterlogged=false,west=true]", - "minecraft:stone_brick_wall[east=true,north=true,south=true,up=false,waterlogged=false,west=false]", - "minecraft:stone_brick_wall[east=true,north=true,south=false,up=true,waterlogged=true,west=true]", - "minecraft:stone_brick_wall[east=true,north=true,south=false,up=true,waterlogged=true,west=false]", - "minecraft:stone_brick_wall[east=true,north=true,south=false,up=true,waterlogged=false,west=true]", - "minecraft:stone_brick_wall[east=true,north=true,south=false,up=true,waterlogged=false,west=false]", - "minecraft:stone_brick_wall[east=true,north=true,south=false,up=false,waterlogged=true,west=true]", - "minecraft:stone_brick_wall[east=true,north=true,south=false,up=false,waterlogged=true,west=false]", - "minecraft:stone_brick_wall[east=true,north=true,south=false,up=false,waterlogged=false,west=true]", - "minecraft:stone_brick_wall[east=true,north=true,south=false,up=false,waterlogged=false,west=false]", - "minecraft:stone_brick_wall[east=true,north=false,south=true,up=true,waterlogged=true,west=true]", - "minecraft:stone_brick_wall[east=true,north=false,south=true,up=true,waterlogged=true,west=false]", - "minecraft:stone_brick_wall[east=true,north=false,south=true,up=true,waterlogged=false,west=true]", - "minecraft:stone_brick_wall[east=true,north=false,south=true,up=true,waterlogged=false,west=false]", - "minecraft:stone_brick_wall[east=true,north=false,south=true,up=false,waterlogged=true,west=true]", - "minecraft:stone_brick_wall[east=true,north=false,south=true,up=false,waterlogged=true,west=false]", - "minecraft:stone_brick_wall[east=true,north=false,south=true,up=false,waterlogged=false,west=true]", - "minecraft:stone_brick_wall[east=true,north=false,south=true,up=false,waterlogged=false,west=false]", - "minecraft:stone_brick_wall[east=true,north=false,south=false,up=true,waterlogged=true,west=true]", - "minecraft:stone_brick_wall[east=true,north=false,south=false,up=true,waterlogged=true,west=false]", - "minecraft:stone_brick_wall[east=true,north=false,south=false,up=true,waterlogged=false,west=true]", - "minecraft:stone_brick_wall[east=true,north=false,south=false,up=true,waterlogged=false,west=false]", - "minecraft:stone_brick_wall[east=true,north=false,south=false,up=false,waterlogged=true,west=true]", - "minecraft:stone_brick_wall[east=true,north=false,south=false,up=false,waterlogged=true,west=false]", - "minecraft:stone_brick_wall[east=true,north=false,south=false,up=false,waterlogged=false,west=true]", - "minecraft:stone_brick_wall[east=true,north=false,south=false,up=false,waterlogged=false,west=false]", - "minecraft:stone_brick_wall[east=false,north=true,south=true,up=true,waterlogged=true,west=true]", - "minecraft:stone_brick_wall[east=false,north=true,south=true,up=true,waterlogged=true,west=false]", - "minecraft:stone_brick_wall[east=false,north=true,south=true,up=true,waterlogged=false,west=true]", - "minecraft:stone_brick_wall[east=false,north=true,south=true,up=true,waterlogged=false,west=false]", - "minecraft:stone_brick_wall[east=false,north=true,south=true,up=false,waterlogged=true,west=true]", - "minecraft:stone_brick_wall[east=false,north=true,south=true,up=false,waterlogged=true,west=false]", - "minecraft:stone_brick_wall[east=false,north=true,south=true,up=false,waterlogged=false,west=true]", - "minecraft:stone_brick_wall[east=false,north=true,south=true,up=false,waterlogged=false,west=false]", - "minecraft:stone_brick_wall[east=false,north=true,south=false,up=true,waterlogged=true,west=true]", - "minecraft:stone_brick_wall[east=false,north=true,south=false,up=true,waterlogged=true,west=false]", - "minecraft:stone_brick_wall[east=false,north=true,south=false,up=true,waterlogged=false,west=true]", - "minecraft:stone_brick_wall[east=false,north=true,south=false,up=true,waterlogged=false,west=false]", - "minecraft:stone_brick_wall[east=false,north=true,south=false,up=false,waterlogged=true,west=true]", - "minecraft:stone_brick_wall[east=false,north=true,south=false,up=false,waterlogged=true,west=false]", - "minecraft:stone_brick_wall[east=false,north=true,south=false,up=false,waterlogged=false,west=true]", - "minecraft:stone_brick_wall[east=false,north=true,south=false,up=false,waterlogged=false,west=false]", - "minecraft:stone_brick_wall[east=false,north=false,south=true,up=true,waterlogged=true,west=true]", - "minecraft:stone_brick_wall[east=false,north=false,south=true,up=true,waterlogged=true,west=false]", - "minecraft:stone_brick_wall[east=false,north=false,south=true,up=true,waterlogged=false,west=true]", - "minecraft:stone_brick_wall[east=false,north=false,south=true,up=true,waterlogged=false,west=false]", - "minecraft:stone_brick_wall[east=false,north=false,south=true,up=false,waterlogged=true,west=true]", - "minecraft:stone_brick_wall[east=false,north=false,south=true,up=false,waterlogged=true,west=false]", - "minecraft:stone_brick_wall[east=false,north=false,south=true,up=false,waterlogged=false,west=true]", - "minecraft:stone_brick_wall[east=false,north=false,south=true,up=false,waterlogged=false,west=false]", - "minecraft:stone_brick_wall[east=false,north=false,south=false,up=true,waterlogged=true,west=true]", - "minecraft:stone_brick_wall[east=false,north=false,south=false,up=true,waterlogged=true,west=false]", - "minecraft:stone_brick_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=true]", - "minecraft:stone_brick_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]", - "minecraft:stone_brick_wall[east=false,north=false,south=false,up=false,waterlogged=true,west=true]", - "minecraft:stone_brick_wall[east=false,north=false,south=false,up=false,waterlogged=true,west=false]", - "minecraft:stone_brick_wall[east=false,north=false,south=false,up=false,waterlogged=false,west=true]", - "minecraft:stone_brick_wall[east=false,north=false,south=false,up=false,waterlogged=false,west=false]", - "minecraft:nether_brick_wall[east=true,north=true,south=true,up=true,waterlogged=true,west=true]", - "minecraft:nether_brick_wall[east=true,north=true,south=true,up=true,waterlogged=true,west=false]", - "minecraft:nether_brick_wall[east=true,north=true,south=true,up=true,waterlogged=false,west=true]", - "minecraft:nether_brick_wall[east=true,north=true,south=true,up=true,waterlogged=false,west=false]", - "minecraft:nether_brick_wall[east=true,north=true,south=true,up=false,waterlogged=true,west=true]", - "minecraft:nether_brick_wall[east=true,north=true,south=true,up=false,waterlogged=true,west=false]", - "minecraft:nether_brick_wall[east=true,north=true,south=true,up=false,waterlogged=false,west=true]", - "minecraft:nether_brick_wall[east=true,north=true,south=true,up=false,waterlogged=false,west=false]", - "minecraft:nether_brick_wall[east=true,north=true,south=false,up=true,waterlogged=true,west=true]", - "minecraft:nether_brick_wall[east=true,north=true,south=false,up=true,waterlogged=true,west=false]", - "minecraft:nether_brick_wall[east=true,north=true,south=false,up=true,waterlogged=false,west=true]", - "minecraft:nether_brick_wall[east=true,north=true,south=false,up=true,waterlogged=false,west=false]", - "minecraft:nether_brick_wall[east=true,north=true,south=false,up=false,waterlogged=true,west=true]", - "minecraft:nether_brick_wall[east=true,north=true,south=false,up=false,waterlogged=true,west=false]", - "minecraft:nether_brick_wall[east=true,north=true,south=false,up=false,waterlogged=false,west=true]", - "minecraft:nether_brick_wall[east=true,north=true,south=false,up=false,waterlogged=false,west=false]", - "minecraft:nether_brick_wall[east=true,north=false,south=true,up=true,waterlogged=true,west=true]", - "minecraft:nether_brick_wall[east=true,north=false,south=true,up=true,waterlogged=true,west=false]", - "minecraft:nether_brick_wall[east=true,north=false,south=true,up=true,waterlogged=false,west=true]", - "minecraft:nether_brick_wall[east=true,north=false,south=true,up=true,waterlogged=false,west=false]", - "minecraft:nether_brick_wall[east=true,north=false,south=true,up=false,waterlogged=true,west=true]", - "minecraft:nether_brick_wall[east=true,north=false,south=true,up=false,waterlogged=true,west=false]", - "minecraft:nether_brick_wall[east=true,north=false,south=true,up=false,waterlogged=false,west=true]", - "minecraft:nether_brick_wall[east=true,north=false,south=true,up=false,waterlogged=false,west=false]", - "minecraft:nether_brick_wall[east=true,north=false,south=false,up=true,waterlogged=true,west=true]", - "minecraft:nether_brick_wall[east=true,north=false,south=false,up=true,waterlogged=true,west=false]", - "minecraft:nether_brick_wall[east=true,north=false,south=false,up=true,waterlogged=false,west=true]", - "minecraft:nether_brick_wall[east=true,north=false,south=false,up=true,waterlogged=false,west=false]", - "minecraft:nether_brick_wall[east=true,north=false,south=false,up=false,waterlogged=true,west=true]", - "minecraft:nether_brick_wall[east=true,north=false,south=false,up=false,waterlogged=true,west=false]", - "minecraft:nether_brick_wall[east=true,north=false,south=false,up=false,waterlogged=false,west=true]", - "minecraft:nether_brick_wall[east=true,north=false,south=false,up=false,waterlogged=false,west=false]", - "minecraft:nether_brick_wall[east=false,north=true,south=true,up=true,waterlogged=true,west=true]", - "minecraft:nether_brick_wall[east=false,north=true,south=true,up=true,waterlogged=true,west=false]", - "minecraft:nether_brick_wall[east=false,north=true,south=true,up=true,waterlogged=false,west=true]", - "minecraft:nether_brick_wall[east=false,north=true,south=true,up=true,waterlogged=false,west=false]", - "minecraft:nether_brick_wall[east=false,north=true,south=true,up=false,waterlogged=true,west=true]", - "minecraft:nether_brick_wall[east=false,north=true,south=true,up=false,waterlogged=true,west=false]", - "minecraft:nether_brick_wall[east=false,north=true,south=true,up=false,waterlogged=false,west=true]", - "minecraft:nether_brick_wall[east=false,north=true,south=true,up=false,waterlogged=false,west=false]", - "minecraft:nether_brick_wall[east=false,north=true,south=false,up=true,waterlogged=true,west=true]", - "minecraft:nether_brick_wall[east=false,north=true,south=false,up=true,waterlogged=true,west=false]", - "minecraft:nether_brick_wall[east=false,north=true,south=false,up=true,waterlogged=false,west=true]", - "minecraft:nether_brick_wall[east=false,north=true,south=false,up=true,waterlogged=false,west=false]", - "minecraft:nether_brick_wall[east=false,north=true,south=false,up=false,waterlogged=true,west=true]", - "minecraft:nether_brick_wall[east=false,north=true,south=false,up=false,waterlogged=true,west=false]", - "minecraft:nether_brick_wall[east=false,north=true,south=false,up=false,waterlogged=false,west=true]", - "minecraft:nether_brick_wall[east=false,north=true,south=false,up=false,waterlogged=false,west=false]", - "minecraft:nether_brick_wall[east=false,north=false,south=true,up=true,waterlogged=true,west=true]", - "minecraft:nether_brick_wall[east=false,north=false,south=true,up=true,waterlogged=true,west=false]", - "minecraft:nether_brick_wall[east=false,north=false,south=true,up=true,waterlogged=false,west=true]", - "minecraft:nether_brick_wall[east=false,north=false,south=true,up=true,waterlogged=false,west=false]", - "minecraft:nether_brick_wall[east=false,north=false,south=true,up=false,waterlogged=true,west=true]", - "minecraft:nether_brick_wall[east=false,north=false,south=true,up=false,waterlogged=true,west=false]", - "minecraft:nether_brick_wall[east=false,north=false,south=true,up=false,waterlogged=false,west=true]", - "minecraft:nether_brick_wall[east=false,north=false,south=true,up=false,waterlogged=false,west=false]", - "minecraft:nether_brick_wall[east=false,north=false,south=false,up=true,waterlogged=true,west=true]", - "minecraft:nether_brick_wall[east=false,north=false,south=false,up=true,waterlogged=true,west=false]", - "minecraft:nether_brick_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=true]", - "minecraft:nether_brick_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]", - "minecraft:nether_brick_wall[east=false,north=false,south=false,up=false,waterlogged=true,west=true]", - "minecraft:nether_brick_wall[east=false,north=false,south=false,up=false,waterlogged=true,west=false]", - "minecraft:nether_brick_wall[east=false,north=false,south=false,up=false,waterlogged=false,west=true]", - "minecraft:nether_brick_wall[east=false,north=false,south=false,up=false,waterlogged=false,west=false]", - "minecraft:andesite_wall[east=true,north=true,south=true,up=true,waterlogged=true,west=true]", - "minecraft:andesite_wall[east=true,north=true,south=true,up=true,waterlogged=true,west=false]", - "minecraft:andesite_wall[east=true,north=true,south=true,up=true,waterlogged=false,west=true]", - "minecraft:andesite_wall[east=true,north=true,south=true,up=true,waterlogged=false,west=false]", - "minecraft:andesite_wall[east=true,north=true,south=true,up=false,waterlogged=true,west=true]", - "minecraft:andesite_wall[east=true,north=true,south=true,up=false,waterlogged=true,west=false]", - "minecraft:andesite_wall[east=true,north=true,south=true,up=false,waterlogged=false,west=true]", - "minecraft:andesite_wall[east=true,north=true,south=true,up=false,waterlogged=false,west=false]", - "minecraft:andesite_wall[east=true,north=true,south=false,up=true,waterlogged=true,west=true]", - "minecraft:andesite_wall[east=true,north=true,south=false,up=true,waterlogged=true,west=false]", - "minecraft:andesite_wall[east=true,north=true,south=false,up=true,waterlogged=false,west=true]", - "minecraft:andesite_wall[east=true,north=true,south=false,up=true,waterlogged=false,west=false]", - "minecraft:andesite_wall[east=true,north=true,south=false,up=false,waterlogged=true,west=true]", - "minecraft:andesite_wall[east=true,north=true,south=false,up=false,waterlogged=true,west=false]", - "minecraft:andesite_wall[east=true,north=true,south=false,up=false,waterlogged=false,west=true]", - "minecraft:andesite_wall[east=true,north=true,south=false,up=false,waterlogged=false,west=false]", - "minecraft:andesite_wall[east=true,north=false,south=true,up=true,waterlogged=true,west=true]", - "minecraft:andesite_wall[east=true,north=false,south=true,up=true,waterlogged=true,west=false]", - "minecraft:andesite_wall[east=true,north=false,south=true,up=true,waterlogged=false,west=true]", - "minecraft:andesite_wall[east=true,north=false,south=true,up=true,waterlogged=false,west=false]", - "minecraft:andesite_wall[east=true,north=false,south=true,up=false,waterlogged=true,west=true]", - "minecraft:andesite_wall[east=true,north=false,south=true,up=false,waterlogged=true,west=false]", - "minecraft:andesite_wall[east=true,north=false,south=true,up=false,waterlogged=false,west=true]", - "minecraft:andesite_wall[east=true,north=false,south=true,up=false,waterlogged=false,west=false]", - "minecraft:andesite_wall[east=true,north=false,south=false,up=true,waterlogged=true,west=true]", - "minecraft:andesite_wall[east=true,north=false,south=false,up=true,waterlogged=true,west=false]", - "minecraft:andesite_wall[east=true,north=false,south=false,up=true,waterlogged=false,west=true]", - "minecraft:andesite_wall[east=true,north=false,south=false,up=true,waterlogged=false,west=false]", - "minecraft:andesite_wall[east=true,north=false,south=false,up=false,waterlogged=true,west=true]", - "minecraft:andesite_wall[east=true,north=false,south=false,up=false,waterlogged=true,west=false]", - "minecraft:andesite_wall[east=true,north=false,south=false,up=false,waterlogged=false,west=true]", - "minecraft:andesite_wall[east=true,north=false,south=false,up=false,waterlogged=false,west=false]", - "minecraft:andesite_wall[east=false,north=true,south=true,up=true,waterlogged=true,west=true]", - "minecraft:andesite_wall[east=false,north=true,south=true,up=true,waterlogged=true,west=false]", - "minecraft:andesite_wall[east=false,north=true,south=true,up=true,waterlogged=false,west=true]", - "minecraft:andesite_wall[east=false,north=true,south=true,up=true,waterlogged=false,west=false]", - "minecraft:andesite_wall[east=false,north=true,south=true,up=false,waterlogged=true,west=true]", - "minecraft:andesite_wall[east=false,north=true,south=true,up=false,waterlogged=true,west=false]", - "minecraft:andesite_wall[east=false,north=true,south=true,up=false,waterlogged=false,west=true]", - "minecraft:andesite_wall[east=false,north=true,south=true,up=false,waterlogged=false,west=false]", - "minecraft:andesite_wall[east=false,north=true,south=false,up=true,waterlogged=true,west=true]", - "minecraft:andesite_wall[east=false,north=true,south=false,up=true,waterlogged=true,west=false]", - "minecraft:andesite_wall[east=false,north=true,south=false,up=true,waterlogged=false,west=true]", - "minecraft:andesite_wall[east=false,north=true,south=false,up=true,waterlogged=false,west=false]", - "minecraft:andesite_wall[east=false,north=true,south=false,up=false,waterlogged=true,west=true]", - "minecraft:andesite_wall[east=false,north=true,south=false,up=false,waterlogged=true,west=false]", - "minecraft:andesite_wall[east=false,north=true,south=false,up=false,waterlogged=false,west=true]", - "minecraft:andesite_wall[east=false,north=true,south=false,up=false,waterlogged=false,west=false]", - "minecraft:andesite_wall[east=false,north=false,south=true,up=true,waterlogged=true,west=true]", - "minecraft:andesite_wall[east=false,north=false,south=true,up=true,waterlogged=true,west=false]", - "minecraft:andesite_wall[east=false,north=false,south=true,up=true,waterlogged=false,west=true]", - "minecraft:andesite_wall[east=false,north=false,south=true,up=true,waterlogged=false,west=false]", - "minecraft:andesite_wall[east=false,north=false,south=true,up=false,waterlogged=true,west=true]", - "minecraft:andesite_wall[east=false,north=false,south=true,up=false,waterlogged=true,west=false]", - "minecraft:andesite_wall[east=false,north=false,south=true,up=false,waterlogged=false,west=true]", - "minecraft:andesite_wall[east=false,north=false,south=true,up=false,waterlogged=false,west=false]", - "minecraft:andesite_wall[east=false,north=false,south=false,up=true,waterlogged=true,west=true]", - "minecraft:andesite_wall[east=false,north=false,south=false,up=true,waterlogged=true,west=false]", - "minecraft:andesite_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=true]", - "minecraft:andesite_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]", - "minecraft:andesite_wall[east=false,north=false,south=false,up=false,waterlogged=true,west=true]", - "minecraft:andesite_wall[east=false,north=false,south=false,up=false,waterlogged=true,west=false]", - "minecraft:andesite_wall[east=false,north=false,south=false,up=false,waterlogged=false,west=true]", - "minecraft:andesite_wall[east=false,north=false,south=false,up=false,waterlogged=false,west=false]", - "minecraft:red_nether_brick_wall[east=true,north=true,south=true,up=true,waterlogged=true,west=true]", - "minecraft:red_nether_brick_wall[east=true,north=true,south=true,up=true,waterlogged=true,west=false]", - "minecraft:red_nether_brick_wall[east=true,north=true,south=true,up=true,waterlogged=false,west=true]", - "minecraft:red_nether_brick_wall[east=true,north=true,south=true,up=true,waterlogged=false,west=false]", - "minecraft:red_nether_brick_wall[east=true,north=true,south=true,up=false,waterlogged=true,west=true]", - "minecraft:red_nether_brick_wall[east=true,north=true,south=true,up=false,waterlogged=true,west=false]", - "minecraft:red_nether_brick_wall[east=true,north=true,south=true,up=false,waterlogged=false,west=true]", - "minecraft:red_nether_brick_wall[east=true,north=true,south=true,up=false,waterlogged=false,west=false]", - "minecraft:red_nether_brick_wall[east=true,north=true,south=false,up=true,waterlogged=true,west=true]", - "minecraft:red_nether_brick_wall[east=true,north=true,south=false,up=true,waterlogged=true,west=false]", - "minecraft:red_nether_brick_wall[east=true,north=true,south=false,up=true,waterlogged=false,west=true]", - "minecraft:red_nether_brick_wall[east=true,north=true,south=false,up=true,waterlogged=false,west=false]", - "minecraft:red_nether_brick_wall[east=true,north=true,south=false,up=false,waterlogged=true,west=true]", - "minecraft:red_nether_brick_wall[east=true,north=true,south=false,up=false,waterlogged=true,west=false]", - "minecraft:red_nether_brick_wall[east=true,north=true,south=false,up=false,waterlogged=false,west=true]", - "minecraft:red_nether_brick_wall[east=true,north=true,south=false,up=false,waterlogged=false,west=false]", - "minecraft:red_nether_brick_wall[east=true,north=false,south=true,up=true,waterlogged=true,west=true]", - "minecraft:red_nether_brick_wall[east=true,north=false,south=true,up=true,waterlogged=true,west=false]", - "minecraft:red_nether_brick_wall[east=true,north=false,south=true,up=true,waterlogged=false,west=true]", - "minecraft:red_nether_brick_wall[east=true,north=false,south=true,up=true,waterlogged=false,west=false]", - "minecraft:red_nether_brick_wall[east=true,north=false,south=true,up=false,waterlogged=true,west=true]", - "minecraft:red_nether_brick_wall[east=true,north=false,south=true,up=false,waterlogged=true,west=false]", - "minecraft:red_nether_brick_wall[east=true,north=false,south=true,up=false,waterlogged=false,west=true]", - "minecraft:red_nether_brick_wall[east=true,north=false,south=true,up=false,waterlogged=false,west=false]", - "minecraft:red_nether_brick_wall[east=true,north=false,south=false,up=true,waterlogged=true,west=true]", - "minecraft:red_nether_brick_wall[east=true,north=false,south=false,up=true,waterlogged=true,west=false]", - "minecraft:red_nether_brick_wall[east=true,north=false,south=false,up=true,waterlogged=false,west=true]", - "minecraft:red_nether_brick_wall[east=true,north=false,south=false,up=true,waterlogged=false,west=false]", - "minecraft:red_nether_brick_wall[east=true,north=false,south=false,up=false,waterlogged=true,west=true]", - "minecraft:red_nether_brick_wall[east=true,north=false,south=false,up=false,waterlogged=true,west=false]", - "minecraft:red_nether_brick_wall[east=true,north=false,south=false,up=false,waterlogged=false,west=true]", - "minecraft:red_nether_brick_wall[east=true,north=false,south=false,up=false,waterlogged=false,west=false]", - "minecraft:red_nether_brick_wall[east=false,north=true,south=true,up=true,waterlogged=true,west=true]", - "minecraft:red_nether_brick_wall[east=false,north=true,south=true,up=true,waterlogged=true,west=false]", - "minecraft:red_nether_brick_wall[east=false,north=true,south=true,up=true,waterlogged=false,west=true]", - "minecraft:red_nether_brick_wall[east=false,north=true,south=true,up=true,waterlogged=false,west=false]", - "minecraft:red_nether_brick_wall[east=false,north=true,south=true,up=false,waterlogged=true,west=true]", - "minecraft:red_nether_brick_wall[east=false,north=true,south=true,up=false,waterlogged=true,west=false]", - "minecraft:red_nether_brick_wall[east=false,north=true,south=true,up=false,waterlogged=false,west=true]", - "minecraft:red_nether_brick_wall[east=false,north=true,south=true,up=false,waterlogged=false,west=false]", - "minecraft:red_nether_brick_wall[east=false,north=true,south=false,up=true,waterlogged=true,west=true]", - "minecraft:red_nether_brick_wall[east=false,north=true,south=false,up=true,waterlogged=true,west=false]", - "minecraft:red_nether_brick_wall[east=false,north=true,south=false,up=true,waterlogged=false,west=true]", - "minecraft:red_nether_brick_wall[east=false,north=true,south=false,up=true,waterlogged=false,west=false]", - "minecraft:red_nether_brick_wall[east=false,north=true,south=false,up=false,waterlogged=true,west=true]", - "minecraft:red_nether_brick_wall[east=false,north=true,south=false,up=false,waterlogged=true,west=false]", - "minecraft:red_nether_brick_wall[east=false,north=true,south=false,up=false,waterlogged=false,west=true]", - "minecraft:red_nether_brick_wall[east=false,north=true,south=false,up=false,waterlogged=false,west=false]", - "minecraft:red_nether_brick_wall[east=false,north=false,south=true,up=true,waterlogged=true,west=true]", - "minecraft:red_nether_brick_wall[east=false,north=false,south=true,up=true,waterlogged=true,west=false]", - "minecraft:red_nether_brick_wall[east=false,north=false,south=true,up=true,waterlogged=false,west=true]", - "minecraft:red_nether_brick_wall[east=false,north=false,south=true,up=true,waterlogged=false,west=false]", - "minecraft:red_nether_brick_wall[east=false,north=false,south=true,up=false,waterlogged=true,west=true]", - "minecraft:red_nether_brick_wall[east=false,north=false,south=true,up=false,waterlogged=true,west=false]", - "minecraft:red_nether_brick_wall[east=false,north=false,south=true,up=false,waterlogged=false,west=true]", - "minecraft:red_nether_brick_wall[east=false,north=false,south=true,up=false,waterlogged=false,west=false]", - "minecraft:red_nether_brick_wall[east=false,north=false,south=false,up=true,waterlogged=true,west=true]", - "minecraft:red_nether_brick_wall[east=false,north=false,south=false,up=true,waterlogged=true,west=false]", - "minecraft:red_nether_brick_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=true]", - "minecraft:red_nether_brick_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]", - "minecraft:red_nether_brick_wall[east=false,north=false,south=false,up=false,waterlogged=true,west=true]", - "minecraft:red_nether_brick_wall[east=false,north=false,south=false,up=false,waterlogged=true,west=false]", - "minecraft:red_nether_brick_wall[east=false,north=false,south=false,up=false,waterlogged=false,west=true]", - "minecraft:red_nether_brick_wall[east=false,north=false,south=false,up=false,waterlogged=false,west=false]", - "minecraft:sandstone_wall[east=true,north=true,south=true,up=true,waterlogged=true,west=true]", - "minecraft:sandstone_wall[east=true,north=true,south=true,up=true,waterlogged=true,west=false]", - "minecraft:sandstone_wall[east=true,north=true,south=true,up=true,waterlogged=false,west=true]", - "minecraft:sandstone_wall[east=true,north=true,south=true,up=true,waterlogged=false,west=false]", - "minecraft:sandstone_wall[east=true,north=true,south=true,up=false,waterlogged=true,west=true]", - "minecraft:sandstone_wall[east=true,north=true,south=true,up=false,waterlogged=true,west=false]", - "minecraft:sandstone_wall[east=true,north=true,south=true,up=false,waterlogged=false,west=true]", - "minecraft:sandstone_wall[east=true,north=true,south=true,up=false,waterlogged=false,west=false]", - "minecraft:sandstone_wall[east=true,north=true,south=false,up=true,waterlogged=true,west=true]", - "minecraft:sandstone_wall[east=true,north=true,south=false,up=true,waterlogged=true,west=false]", - "minecraft:sandstone_wall[east=true,north=true,south=false,up=true,waterlogged=false,west=true]", - "minecraft:sandstone_wall[east=true,north=true,south=false,up=true,waterlogged=false,west=false]", - "minecraft:sandstone_wall[east=true,north=true,south=false,up=false,waterlogged=true,west=true]", - "minecraft:sandstone_wall[east=true,north=true,south=false,up=false,waterlogged=true,west=false]", - "minecraft:sandstone_wall[east=true,north=true,south=false,up=false,waterlogged=false,west=true]", - "minecraft:sandstone_wall[east=true,north=true,south=false,up=false,waterlogged=false,west=false]", - "minecraft:sandstone_wall[east=true,north=false,south=true,up=true,waterlogged=true,west=true]", - "minecraft:sandstone_wall[east=true,north=false,south=true,up=true,waterlogged=true,west=false]", - "minecraft:sandstone_wall[east=true,north=false,south=true,up=true,waterlogged=false,west=true]", - "minecraft:sandstone_wall[east=true,north=false,south=true,up=true,waterlogged=false,west=false]", - "minecraft:sandstone_wall[east=true,north=false,south=true,up=false,waterlogged=true,west=true]", - "minecraft:sandstone_wall[east=true,north=false,south=true,up=false,waterlogged=true,west=false]", - "minecraft:sandstone_wall[east=true,north=false,south=true,up=false,waterlogged=false,west=true]", - "minecraft:sandstone_wall[east=true,north=false,south=true,up=false,waterlogged=false,west=false]", - "minecraft:sandstone_wall[east=true,north=false,south=false,up=true,waterlogged=true,west=true]", - "minecraft:sandstone_wall[east=true,north=false,south=false,up=true,waterlogged=true,west=false]", - "minecraft:sandstone_wall[east=true,north=false,south=false,up=true,waterlogged=false,west=true]", - "minecraft:sandstone_wall[east=true,north=false,south=false,up=true,waterlogged=false,west=false]", - "minecraft:sandstone_wall[east=true,north=false,south=false,up=false,waterlogged=true,west=true]", - "minecraft:sandstone_wall[east=true,north=false,south=false,up=false,waterlogged=true,west=false]", - "minecraft:sandstone_wall[east=true,north=false,south=false,up=false,waterlogged=false,west=true]", - "minecraft:sandstone_wall[east=true,north=false,south=false,up=false,waterlogged=false,west=false]", - "minecraft:sandstone_wall[east=false,north=true,south=true,up=true,waterlogged=true,west=true]", - "minecraft:sandstone_wall[east=false,north=true,south=true,up=true,waterlogged=true,west=false]", - "minecraft:sandstone_wall[east=false,north=true,south=true,up=true,waterlogged=false,west=true]", - "minecraft:sandstone_wall[east=false,north=true,south=true,up=true,waterlogged=false,west=false]", - "minecraft:sandstone_wall[east=false,north=true,south=true,up=false,waterlogged=true,west=true]", - "minecraft:sandstone_wall[east=false,north=true,south=true,up=false,waterlogged=true,west=false]", - "minecraft:sandstone_wall[east=false,north=true,south=true,up=false,waterlogged=false,west=true]", - "minecraft:sandstone_wall[east=false,north=true,south=true,up=false,waterlogged=false,west=false]", - "minecraft:sandstone_wall[east=false,north=true,south=false,up=true,waterlogged=true,west=true]", - "minecraft:sandstone_wall[east=false,north=true,south=false,up=true,waterlogged=true,west=false]", - "minecraft:sandstone_wall[east=false,north=true,south=false,up=true,waterlogged=false,west=true]", - "minecraft:sandstone_wall[east=false,north=true,south=false,up=true,waterlogged=false,west=false]", - "minecraft:sandstone_wall[east=false,north=true,south=false,up=false,waterlogged=true,west=true]", - "minecraft:sandstone_wall[east=false,north=true,south=false,up=false,waterlogged=true,west=false]", - "minecraft:sandstone_wall[east=false,north=true,south=false,up=false,waterlogged=false,west=true]", - "minecraft:sandstone_wall[east=false,north=true,south=false,up=false,waterlogged=false,west=false]", - "minecraft:sandstone_wall[east=false,north=false,south=true,up=true,waterlogged=true,west=true]", - "minecraft:sandstone_wall[east=false,north=false,south=true,up=true,waterlogged=true,west=false]", - "minecraft:sandstone_wall[east=false,north=false,south=true,up=true,waterlogged=false,west=true]", - "minecraft:sandstone_wall[east=false,north=false,south=true,up=true,waterlogged=false,west=false]", - "minecraft:sandstone_wall[east=false,north=false,south=true,up=false,waterlogged=true,west=true]", - "minecraft:sandstone_wall[east=false,north=false,south=true,up=false,waterlogged=true,west=false]", - "minecraft:sandstone_wall[east=false,north=false,south=true,up=false,waterlogged=false,west=true]", - "minecraft:sandstone_wall[east=false,north=false,south=true,up=false,waterlogged=false,west=false]", - "minecraft:sandstone_wall[east=false,north=false,south=false,up=true,waterlogged=true,west=true]", - "minecraft:sandstone_wall[east=false,north=false,south=false,up=true,waterlogged=true,west=false]", - "minecraft:sandstone_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=true]", - "minecraft:sandstone_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]", - "minecraft:sandstone_wall[east=false,north=false,south=false,up=false,waterlogged=true,west=true]", - "minecraft:sandstone_wall[east=false,north=false,south=false,up=false,waterlogged=true,west=false]", - "minecraft:sandstone_wall[east=false,north=false,south=false,up=false,waterlogged=false,west=true]", - "minecraft:sandstone_wall[east=false,north=false,south=false,up=false,waterlogged=false,west=false]", - "minecraft:end_stone_brick_wall[east=true,north=true,south=true,up=true,waterlogged=true,west=true]", - "minecraft:end_stone_brick_wall[east=true,north=true,south=true,up=true,waterlogged=true,west=false]", - "minecraft:end_stone_brick_wall[east=true,north=true,south=true,up=true,waterlogged=false,west=true]", - "minecraft:end_stone_brick_wall[east=true,north=true,south=true,up=true,waterlogged=false,west=false]", - "minecraft:end_stone_brick_wall[east=true,north=true,south=true,up=false,waterlogged=true,west=true]", - "minecraft:end_stone_brick_wall[east=true,north=true,south=true,up=false,waterlogged=true,west=false]", - "minecraft:end_stone_brick_wall[east=true,north=true,south=true,up=false,waterlogged=false,west=true]", - "minecraft:end_stone_brick_wall[east=true,north=true,south=true,up=false,waterlogged=false,west=false]", - "minecraft:end_stone_brick_wall[east=true,north=true,south=false,up=true,waterlogged=true,west=true]", - "minecraft:end_stone_brick_wall[east=true,north=true,south=false,up=true,waterlogged=true,west=false]", - "minecraft:end_stone_brick_wall[east=true,north=true,south=false,up=true,waterlogged=false,west=true]", - "minecraft:end_stone_brick_wall[east=true,north=true,south=false,up=true,waterlogged=false,west=false]", - "minecraft:end_stone_brick_wall[east=true,north=true,south=false,up=false,waterlogged=true,west=true]", - "minecraft:end_stone_brick_wall[east=true,north=true,south=false,up=false,waterlogged=true,west=false]", - "minecraft:end_stone_brick_wall[east=true,north=true,south=false,up=false,waterlogged=false,west=true]", - "minecraft:end_stone_brick_wall[east=true,north=true,south=false,up=false,waterlogged=false,west=false]", - "minecraft:end_stone_brick_wall[east=true,north=false,south=true,up=true,waterlogged=true,west=true]", - "minecraft:end_stone_brick_wall[east=true,north=false,south=true,up=true,waterlogged=true,west=false]", - "minecraft:end_stone_brick_wall[east=true,north=false,south=true,up=true,waterlogged=false,west=true]", - "minecraft:end_stone_brick_wall[east=true,north=false,south=true,up=true,waterlogged=false,west=false]", - "minecraft:end_stone_brick_wall[east=true,north=false,south=true,up=false,waterlogged=true,west=true]", - "minecraft:end_stone_brick_wall[east=true,north=false,south=true,up=false,waterlogged=true,west=false]", - "minecraft:end_stone_brick_wall[east=true,north=false,south=true,up=false,waterlogged=false,west=true]", - "minecraft:end_stone_brick_wall[east=true,north=false,south=true,up=false,waterlogged=false,west=false]", - "minecraft:end_stone_brick_wall[east=true,north=false,south=false,up=true,waterlogged=true,west=true]", - "minecraft:end_stone_brick_wall[east=true,north=false,south=false,up=true,waterlogged=true,west=false]", - "minecraft:end_stone_brick_wall[east=true,north=false,south=false,up=true,waterlogged=false,west=true]", - "minecraft:end_stone_brick_wall[east=true,north=false,south=false,up=true,waterlogged=false,west=false]", - "minecraft:end_stone_brick_wall[east=true,north=false,south=false,up=false,waterlogged=true,west=true]", - "minecraft:end_stone_brick_wall[east=true,north=false,south=false,up=false,waterlogged=true,west=false]", - "minecraft:end_stone_brick_wall[east=true,north=false,south=false,up=false,waterlogged=false,west=true]", - "minecraft:end_stone_brick_wall[east=true,north=false,south=false,up=false,waterlogged=false,west=false]", - "minecraft:end_stone_brick_wall[east=false,north=true,south=true,up=true,waterlogged=true,west=true]", - "minecraft:end_stone_brick_wall[east=false,north=true,south=true,up=true,waterlogged=true,west=false]", - "minecraft:end_stone_brick_wall[east=false,north=true,south=true,up=true,waterlogged=false,west=true]", - "minecraft:end_stone_brick_wall[east=false,north=true,south=true,up=true,waterlogged=false,west=false]", - "minecraft:end_stone_brick_wall[east=false,north=true,south=true,up=false,waterlogged=true,west=true]", - "minecraft:end_stone_brick_wall[east=false,north=true,south=true,up=false,waterlogged=true,west=false]", - "minecraft:end_stone_brick_wall[east=false,north=true,south=true,up=false,waterlogged=false,west=true]", - "minecraft:end_stone_brick_wall[east=false,north=true,south=true,up=false,waterlogged=false,west=false]", - "minecraft:end_stone_brick_wall[east=false,north=true,south=false,up=true,waterlogged=true,west=true]", - "minecraft:end_stone_brick_wall[east=false,north=true,south=false,up=true,waterlogged=true,west=false]", - "minecraft:end_stone_brick_wall[east=false,north=true,south=false,up=true,waterlogged=false,west=true]", - "minecraft:end_stone_brick_wall[east=false,north=true,south=false,up=true,waterlogged=false,west=false]", - "minecraft:end_stone_brick_wall[east=false,north=true,south=false,up=false,waterlogged=true,west=true]", - "minecraft:end_stone_brick_wall[east=false,north=true,south=false,up=false,waterlogged=true,west=false]", - "minecraft:end_stone_brick_wall[east=false,north=true,south=false,up=false,waterlogged=false,west=true]", - "minecraft:end_stone_brick_wall[east=false,north=true,south=false,up=false,waterlogged=false,west=false]", - "minecraft:end_stone_brick_wall[east=false,north=false,south=true,up=true,waterlogged=true,west=true]", - "minecraft:end_stone_brick_wall[east=false,north=false,south=true,up=true,waterlogged=true,west=false]", - "minecraft:end_stone_brick_wall[east=false,north=false,south=true,up=true,waterlogged=false,west=true]", - "minecraft:end_stone_brick_wall[east=false,north=false,south=true,up=true,waterlogged=false,west=false]", - "minecraft:end_stone_brick_wall[east=false,north=false,south=true,up=false,waterlogged=true,west=true]", - "minecraft:end_stone_brick_wall[east=false,north=false,south=true,up=false,waterlogged=true,west=false]", - "minecraft:end_stone_brick_wall[east=false,north=false,south=true,up=false,waterlogged=false,west=true]", - "minecraft:end_stone_brick_wall[east=false,north=false,south=true,up=false,waterlogged=false,west=false]", - "minecraft:end_stone_brick_wall[east=false,north=false,south=false,up=true,waterlogged=true,west=true]", - "minecraft:end_stone_brick_wall[east=false,north=false,south=false,up=true,waterlogged=true,west=false]", - "minecraft:end_stone_brick_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=true]", - "minecraft:end_stone_brick_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]", - "minecraft:end_stone_brick_wall[east=false,north=false,south=false,up=false,waterlogged=true,west=true]", - "minecraft:end_stone_brick_wall[east=false,north=false,south=false,up=false,waterlogged=true,west=false]", - "minecraft:end_stone_brick_wall[east=false,north=false,south=false,up=false,waterlogged=false,west=true]", - "minecraft:end_stone_brick_wall[east=false,north=false,south=false,up=false,waterlogged=false,west=false]", - "minecraft:diorite_wall[east=true,north=true,south=true,up=true,waterlogged=true,west=true]", - "minecraft:diorite_wall[east=true,north=true,south=true,up=true,waterlogged=true,west=false]", - "minecraft:diorite_wall[east=true,north=true,south=true,up=true,waterlogged=false,west=true]", - "minecraft:diorite_wall[east=true,north=true,south=true,up=true,waterlogged=false,west=false]", - "minecraft:diorite_wall[east=true,north=true,south=true,up=false,waterlogged=true,west=true]", - "minecraft:diorite_wall[east=true,north=true,south=true,up=false,waterlogged=true,west=false]", - "minecraft:diorite_wall[east=true,north=true,south=true,up=false,waterlogged=false,west=true]", - "minecraft:diorite_wall[east=true,north=true,south=true,up=false,waterlogged=false,west=false]", - "minecraft:diorite_wall[east=true,north=true,south=false,up=true,waterlogged=true,west=true]", - "minecraft:diorite_wall[east=true,north=true,south=false,up=true,waterlogged=true,west=false]", - "minecraft:diorite_wall[east=true,north=true,south=false,up=true,waterlogged=false,west=true]", - "minecraft:diorite_wall[east=true,north=true,south=false,up=true,waterlogged=false,west=false]", - "minecraft:diorite_wall[east=true,north=true,south=false,up=false,waterlogged=true,west=true]", - "minecraft:diorite_wall[east=true,north=true,south=false,up=false,waterlogged=true,west=false]", - "minecraft:diorite_wall[east=true,north=true,south=false,up=false,waterlogged=false,west=true]", - "minecraft:diorite_wall[east=true,north=true,south=false,up=false,waterlogged=false,west=false]", - "minecraft:diorite_wall[east=true,north=false,south=true,up=true,waterlogged=true,west=true]", - "minecraft:diorite_wall[east=true,north=false,south=true,up=true,waterlogged=true,west=false]", - "minecraft:diorite_wall[east=true,north=false,south=true,up=true,waterlogged=false,west=true]", - "minecraft:diorite_wall[east=true,north=false,south=true,up=true,waterlogged=false,west=false]", - "minecraft:diorite_wall[east=true,north=false,south=true,up=false,waterlogged=true,west=true]", - "minecraft:diorite_wall[east=true,north=false,south=true,up=false,waterlogged=true,west=false]", - "minecraft:diorite_wall[east=true,north=false,south=true,up=false,waterlogged=false,west=true]", - "minecraft:diorite_wall[east=true,north=false,south=true,up=false,waterlogged=false,west=false]", - "minecraft:diorite_wall[east=true,north=false,south=false,up=true,waterlogged=true,west=true]", - "minecraft:diorite_wall[east=true,north=false,south=false,up=true,waterlogged=true,west=false]", - "minecraft:diorite_wall[east=true,north=false,south=false,up=true,waterlogged=false,west=true]", - "minecraft:diorite_wall[east=true,north=false,south=false,up=true,waterlogged=false,west=false]", - "minecraft:diorite_wall[east=true,north=false,south=false,up=false,waterlogged=true,west=true]", - "minecraft:diorite_wall[east=true,north=false,south=false,up=false,waterlogged=true,west=false]", - "minecraft:diorite_wall[east=true,north=false,south=false,up=false,waterlogged=false,west=true]", - "minecraft:diorite_wall[east=true,north=false,south=false,up=false,waterlogged=false,west=false]", - "minecraft:diorite_wall[east=false,north=true,south=true,up=true,waterlogged=true,west=true]", - "minecraft:diorite_wall[east=false,north=true,south=true,up=true,waterlogged=true,west=false]", - "minecraft:diorite_wall[east=false,north=true,south=true,up=true,waterlogged=false,west=true]", - "minecraft:diorite_wall[east=false,north=true,south=true,up=true,waterlogged=false,west=false]", - "minecraft:diorite_wall[east=false,north=true,south=true,up=false,waterlogged=true,west=true]", - "minecraft:diorite_wall[east=false,north=true,south=true,up=false,waterlogged=true,west=false]", - "minecraft:diorite_wall[east=false,north=true,south=true,up=false,waterlogged=false,west=true]", - "minecraft:diorite_wall[east=false,north=true,south=true,up=false,waterlogged=false,west=false]", - "minecraft:diorite_wall[east=false,north=true,south=false,up=true,waterlogged=true,west=true]", - "minecraft:diorite_wall[east=false,north=true,south=false,up=true,waterlogged=true,west=false]", - "minecraft:diorite_wall[east=false,north=true,south=false,up=true,waterlogged=false,west=true]", - "minecraft:diorite_wall[east=false,north=true,south=false,up=true,waterlogged=false,west=false]", - "minecraft:diorite_wall[east=false,north=true,south=false,up=false,waterlogged=true,west=true]", - "minecraft:diorite_wall[east=false,north=true,south=false,up=false,waterlogged=true,west=false]", - "minecraft:diorite_wall[east=false,north=true,south=false,up=false,waterlogged=false,west=true]", - "minecraft:diorite_wall[east=false,north=true,south=false,up=false,waterlogged=false,west=false]", - "minecraft:diorite_wall[east=false,north=false,south=true,up=true,waterlogged=true,west=true]", - "minecraft:diorite_wall[east=false,north=false,south=true,up=true,waterlogged=true,west=false]", - "minecraft:diorite_wall[east=false,north=false,south=true,up=true,waterlogged=false,west=true]", - "minecraft:diorite_wall[east=false,north=false,south=true,up=true,waterlogged=false,west=false]", - "minecraft:diorite_wall[east=false,north=false,south=true,up=false,waterlogged=true,west=true]", - "minecraft:diorite_wall[east=false,north=false,south=true,up=false,waterlogged=true,west=false]", - "minecraft:diorite_wall[east=false,north=false,south=true,up=false,waterlogged=false,west=true]", - "minecraft:diorite_wall[east=false,north=false,south=true,up=false,waterlogged=false,west=false]", - "minecraft:diorite_wall[east=false,north=false,south=false,up=true,waterlogged=true,west=true]", - "minecraft:diorite_wall[east=false,north=false,south=false,up=true,waterlogged=true,west=false]", - "minecraft:diorite_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=true]", - "minecraft:diorite_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]", - "minecraft:diorite_wall[east=false,north=false,south=false,up=false,waterlogged=true,west=true]", - "minecraft:diorite_wall[east=false,north=false,south=false,up=false,waterlogged=true,west=false]", - "minecraft:diorite_wall[east=false,north=false,south=false,up=false,waterlogged=false,west=true]", - "minecraft:diorite_wall[east=false,north=false,south=false,up=false,waterlogged=false,west=false]", - "minecraft:scaffolding[bottom=true,distance=0,waterlogged=true]", - "minecraft:scaffolding[bottom=true,distance=1,waterlogged=true]", - "minecraft:scaffolding[bottom=true,distance=2,waterlogged=true]", - "minecraft:scaffolding[bottom=true,distance=3,waterlogged=true]", - "minecraft:scaffolding[bottom=true,distance=4,waterlogged=true]", - "minecraft:scaffolding[bottom=true,distance=5,waterlogged=true]", - "minecraft:scaffolding[bottom=true,distance=6,waterlogged=true]", - "minecraft:scaffolding[bottom=true,distance=7,waterlogged=true]", - "minecraft:scaffolding[bottom=false,distance=0,waterlogged=true]", - "minecraft:scaffolding[bottom=false,distance=1,waterlogged=true]", - "minecraft:scaffolding[bottom=false,distance=2,waterlogged=true]", - "minecraft:scaffolding[bottom=false,distance=3,waterlogged=true]", - "minecraft:scaffolding[bottom=false,distance=4,waterlogged=true]", - "minecraft:scaffolding[bottom=false,distance=5,waterlogged=true]", - "minecraft:scaffolding[bottom=false,distance=6,waterlogged=true]", - "minecraft:scaffolding[bottom=false,distance=7,waterlogged=true]", - "minecraft:loom[facing=north]", - "minecraft:loom[facing=south]", - "minecraft:loom[facing=west]", - "minecraft:loom[facing=east]", - "minecraft:barrel[facing=north,open=true]", - "minecraft:barrel[facing=north,open=false]", - "minecraft:barrel[facing=east,open=true]", - "minecraft:barrel[facing=east,open=false]", - "minecraft:barrel[facing=south,open=true]", - "minecraft:barrel[facing=south,open=false]", - "minecraft:barrel[facing=west,open=true]", - "minecraft:barrel[facing=west,open=false]", - "minecraft:barrel[facing=up,open=true]", - "minecraft:barrel[facing=up,open=false]", - "minecraft:barrel[facing=down,open=true]", - "minecraft:barrel[facing=down,open=false]", - "minecraft:smoker[facing=north,lit=true]", - "minecraft:smoker[facing=north,lit=false]", - "minecraft:smoker[facing=south,lit=true]", - "minecraft:smoker[facing=south,lit=false]", - "minecraft:smoker[facing=west,lit=true]", - "minecraft:smoker[facing=west,lit=false]", - "minecraft:smoker[facing=east,lit=true]", - "minecraft:smoker[facing=east,lit=false]", - "minecraft:blast_furnace[facing=north,lit=true]", - "minecraft:blast_furnace[facing=north,lit=false]", - "minecraft:blast_furnace[facing=south,lit=true]", - "minecraft:blast_furnace[facing=south,lit=false]", - "minecraft:blast_furnace[facing=west,lit=true]", - "minecraft:blast_furnace[facing=west,lit=false]", - "minecraft:blast_furnace[facing=east,lit=true]", - "minecraft:blast_furnace[facing=east,lit=false]", - "minecraft:cartography_table", - "minecraft:fletching_table", - "minecraft:grindstone[face=floor,facing=north]", - "minecraft:grindstone[face=floor,facing=south]", - "minecraft:grindstone[face=floor,facing=west]", - "minecraft:grindstone[face=floor,facing=east]", - "minecraft:grindstone[face=wall,facing=north]", - "minecraft:grindstone[face=wall,facing=south]", - "minecraft:grindstone[face=wall,facing=west]", - "minecraft:grindstone[face=wall,facing=east]", - "minecraft:grindstone[face=ceiling,facing=north]", - "minecraft:grindstone[face=ceiling,facing=south]", - "minecraft:grindstone[face=ceiling,facing=west]", - "minecraft:grindstone[face=ceiling,facing=east]", - "minecraft:lectern[facing=north,has_book=true,powered=true]", - "minecraft:lectern[facing=north,has_book=true,powered=false]", - "minecraft:lectern[facing=north,has_book=false,powered=true]", - "minecraft:lectern[facing=north,has_book=false,powered=false]", - "minecraft:lectern[facing=south,has_book=true,powered=true]", - "minecraft:lectern[facing=south,has_book=true,powered=false]", - "minecraft:lectern[facing=south,has_book=false,powered=true]", - "minecraft:lectern[facing=south,has_book=false,powered=false]", - "minecraft:lectern[facing=west,has_book=true,powered=true]", - "minecraft:lectern[facing=west,has_book=true,powered=false]", - "minecraft:lectern[facing=west,has_book=false,powered=true]", - "minecraft:lectern[facing=west,has_book=false,powered=false]", - "minecraft:lectern[facing=east,has_book=true,powered=true]", - "minecraft:lectern[facing=east,has_book=true,powered=false]", - "minecraft:lectern[facing=east,has_book=false,powered=true]", - "minecraft:lectern[facing=east,has_book=false,powered=false]", - "minecraft:smithing_table", - "minecraft:stonecutter[facing=north]", - "minecraft:stonecutter[facing=south]", - "minecraft:stonecutter[facing=west]", - "minecraft:stonecutter[facing=east]", - "minecraft:bell[attachment=floor,facing=north]", - "minecraft:bell[attachment=floor,facing=south]", - "minecraft:bell[attachment=floor,facing=west]", - "minecraft:bell[attachment=floor,facing=east]", - "minecraft:bell[attachment=ceiling,facing=north]", - "minecraft:bell[attachment=ceiling,facing=south]", - "minecraft:bell[attachment=ceiling,facing=west]", - "minecraft:bell[attachment=ceiling,facing=east]", - "minecraft:bell[attachment=single_wall,facing=north]", - "minecraft:bell[attachment=single_wall,facing=south]", - "minecraft:bell[attachment=single_wall,facing=west]", - "minecraft:bell[attachment=single_wall,facing=east]", - "minecraft:bell[attachment=double_wall,facing=north]", - "minecraft:bell[attachment=double_wall,facing=south]", - "minecraft:bell[attachment=double_wall,facing=west]", - "minecraft:bell[attachment=double_wall,facing=east]", - "minecraft:lantern[hanging=true]", - "minecraft:lantern[hanging=false]", - "minecraft:campfire[facing=north,lit=true,signal_fire=true,waterlogged=true]", - "minecraft:campfire[facing=north,lit=true,signal_fire=true,waterlogged=false]", - "minecraft:campfire[facing=north,lit=true,signal_fire=false,waterlogged=true]", - "minecraft:campfire[facing=north,lit=true,signal_fire=false,waterlogged=false]", - "minecraft:campfire[facing=north,lit=false,signal_fire=true,waterlogged=true]", - "minecraft:campfire[facing=north,lit=false,signal_fire=true,waterlogged=false]", - "minecraft:campfire[facing=north,lit=false,signal_fire=false,waterlogged=true]", - "minecraft:campfire[facing=north,lit=false,signal_fire=false,waterlogged=false]", - "minecraft:campfire[facing=south,lit=true,signal_fire=true,waterlogged=true]", - "minecraft:campfire[facing=south,lit=true,signal_fire=true,waterlogged=false]", - "minecraft:campfire[facing=south,lit=true,signal_fire=false,waterlogged=true]", - "minecraft:campfire[facing=south,lit=true,signal_fire=false,waterlogged=false]", - "minecraft:campfire[facing=south,lit=false,signal_fire=true,waterlogged=true]", - "minecraft:campfire[facing=south,lit=false,signal_fire=true,waterlogged=false]", - "minecraft:campfire[facing=south,lit=false,signal_fire=false,waterlogged=true]", - "minecraft:campfire[facing=south,lit=false,signal_fire=false,waterlogged=false]", - "minecraft:campfire[facing=west,lit=true,signal_fire=true,waterlogged=true]", - "minecraft:campfire[facing=west,lit=true,signal_fire=true,waterlogged=false]", - "minecraft:campfire[facing=west,lit=true,signal_fire=false,waterlogged=true]", - "minecraft:campfire[facing=west,lit=true,signal_fire=false,waterlogged=false]", - "minecraft:campfire[facing=west,lit=false,signal_fire=true,waterlogged=true]", - "minecraft:campfire[facing=west,lit=false,signal_fire=true,waterlogged=false]", - "minecraft:campfire[facing=west,lit=false,signal_fire=false,waterlogged=true]", - "minecraft:campfire[facing=west,lit=false,signal_fire=false,waterlogged=false]", - "minecraft:campfire[facing=east,lit=true,signal_fire=true,waterlogged=true]", - "minecraft:campfire[facing=east,lit=true,signal_fire=true,waterlogged=false]", - "minecraft:campfire[facing=east,lit=true,signal_fire=false,waterlogged=true]", - "minecraft:campfire[facing=east,lit=true,signal_fire=false,waterlogged=false]", - "minecraft:campfire[facing=east,lit=false,signal_fire=true,waterlogged=true]", - "minecraft:campfire[facing=east,lit=false,signal_fire=true,waterlogged=false]", - "minecraft:campfire[facing=east,lit=false,signal_fire=false,waterlogged=true]", - "minecraft:campfire[facing=east,lit=false,signal_fire=false,waterlogged=false]", "minecraft:structure_block[mode=save]", "minecraft:structure_block[mode=load]", "minecraft:structure_block[mode=corner]", - "minecraft:structure_block[mode=data]", - "minecraft:jigsaw[facing=north]", - "minecraft:jigsaw[facing=east]", - "minecraft:jigsaw[facing=south]", - "minecraft:jigsaw[facing=west]", - "minecraft:jigsaw[facing=up]", - "minecraft:jigsaw[facing=down]", - "minecraft:composter[level=0]", - "minecraft:composter[level=1]", - "minecraft:composter[level=2]", - "minecraft:composter[level=3]", - "minecraft:composter[level=4]", - "minecraft:composter[level=5]", - "minecraft:composter[level=6]", - "minecraft:composter[level=7]", - "minecraft:composter[level=8]" + "minecraft:structure_block[mode=data]" ] } \ No newline at end of file From 6ab525be7b271ad68d8638d230ac3b4262d9c487 Mon Sep 17 00:00:00 2001 From: KennyTV <28825609+KennyTV@users.noreply.github.com> Date: Thu, 25 Apr 2019 22:05:32 +0200 Subject: [PATCH 04/26] Fix blockconnection --- .../protocol1_13to1_12_2/blockconnections/ConnectionData.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13to1_12_2/blockconnections/ConnectionData.java b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13to1_12_2/blockconnections/ConnectionData.java index 48b8627c7..9d80b64e6 100644 --- a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13to1_12_2/blockconnections/ConnectionData.java +++ b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13to1_12_2/blockconnections/ConnectionData.java @@ -39,7 +39,7 @@ public class ConnectionData { ConnectionHandler handler = connectionHandlerMap.get(blockState); if (handler == null) continue; - int newBlockState = handler.connect(user, position, blockState); + int newBlockState = handler.connect(user, pos, blockState); PacketWrapper blockUpdatePacket = new PacketWrapper(0x0B, null, user); blockUpdatePacket.write(Type.POSITION, pos); blockUpdatePacket.write(Type.VAR_INT, newBlockState); From c8a19a1d8311bcfbcb2922a5d0ae21f3028548cb Mon Sep 17 00:00:00 2001 From: Gerrygames Date: Thu, 25 Apr 2019 22:16:19 +0200 Subject: [PATCH 05/26] fix setPaletteEntry --- .../api/minecraft/chunks/ChunkSection.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/common/src/main/java/us/myles/ViaVersion/api/minecraft/chunks/ChunkSection.java b/common/src/main/java/us/myles/ViaVersion/api/minecraft/chunks/ChunkSection.java index 4f5feb7a8..f0e585a77 100644 --- a/common/src/main/java/us/myles/ViaVersion/api/minecraft/chunks/ChunkSection.java +++ b/common/src/main/java/us/myles/ViaVersion/api/minecraft/chunks/ChunkSection.java @@ -92,8 +92,18 @@ public class ChunkSection { public void setPaletteEntry(int index, int id) { if (index < 0 || index >= palette.size()) throw new IndexOutOfBoundsException(); - palette.set(index, id); + int oldId = palette.set(index, id); + if (oldId == id) return; inversePalette.put(id, index); + if (inversePalette.get(oldId) == index) { + inversePalette.remove(oldId); + for (int i = 0; i < palette.size(); i++) { + if (palette.get(i) == oldId) { + inversePalette.put(oldId, i); + break; + } + } + } } public void replacePaletteEntry(int oldId, int newId) { From a5f5472853acc6a1e6353a1d9415c9c8467c0f73 Mon Sep 17 00:00:00 2001 From: KennyTV <28825609+KennyTV@users.noreply.github.com> Date: Fri, 26 Apr 2019 11:16:53 +0200 Subject: [PATCH 06/26] Fix sign and banner placement in paperpatch --- .../protocol1_9to1_8/PaperPatch.java | 23 +++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/bukkit/src/main/java/us/myles/ViaVersion/bukkit/listeners/protocol1_9to1_8/PaperPatch.java b/bukkit/src/main/java/us/myles/ViaVersion/bukkit/listeners/protocol1_9to1_8/PaperPatch.java index 9330e822d..e05c24e8d 100644 --- a/bukkit/src/main/java/us/myles/ViaVersion/bukkit/listeners/protocol1_9to1_8/PaperPatch.java +++ b/bukkit/src/main/java/us/myles/ViaVersion/bukkit/listeners/protocol1_9to1_8/PaperPatch.java @@ -25,15 +25,16 @@ public class PaperPatch extends ViaBukkitListener { @EventHandler(ignoreCancelled = true) public void onPlace(BlockPlaceEvent e) { if (isOnPipe(e.getPlayer())) { - Location diff = e.getPlayer().getLocation().subtract(e.getBlock().getLocation().add(0.5D, 0, 0.5D)); + Location location = e.getPlayer().getLocation(); + Location diff = location.subtract(e.getBlock().getLocation().add(0.5D, 0, 0.5D)); Material block = e.getBlockPlaced().getType(); - if (!block.isSolid()) { + if (isPlacable(block)) { return; } - if (e.getPlayer().getLocation().getBlock().equals(e.getBlock())) { + if (location.getBlock().equals(e.getBlock())) { e.setCancelled(true); } else { - if (e.getPlayer().getLocation().getBlock().getRelative(BlockFace.UP).equals(e.getBlock())) { + if (location.getBlock().getRelative(BlockFace.UP).equals(e.getBlock())) { e.setCancelled(true); } else { // Within radius of block @@ -55,4 +56,18 @@ public class PaperPatch extends ViaBukkitListener { } } } + + private boolean isPlacable(Material material) { + if (!material.isSolid()) return true; + // signs and banners + switch (material.getId()) { + case 63: + case 68: + case 176: + case 177: + return true; + default: + return false; + } + } } From 4258f52f86604d2a86be8f6ff5f91954055897ce Mon Sep 17 00:00:00 2001 From: creeper123123321 Date: Sat, 27 Apr 2019 13:03:53 -0300 Subject: [PATCH 07/26] Workaround for packet order issue in neighbour chunk updates --- .../blockconnections/ConnectionData.java | 2 +- .../protocol1_13to1_12_2/packets/WorldPackets.java | 12 ++++++++---- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13to1_12_2/blockconnections/ConnectionData.java b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13to1_12_2/blockconnections/ConnectionData.java index 9d80b64e6..287ed9105 100644 --- a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13to1_12_2/blockconnections/ConnectionData.java +++ b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13to1_12_2/blockconnections/ConnectionData.java @@ -118,7 +118,7 @@ public class ConnectionData { wrapper.write(Type.INT, chunkZ + chunkDeltaZ); wrapper.write(Type.BLOCK_CHANGE_RECORD_ARRAY, updates.toArray(new BlockChangeRecord[0])); try { - wrapper.send(Protocol1_13To1_12_2.class); + wrapper.send(Protocol1_13To1_12_2.class, true, true); } catch (Exception e) { e.printStackTrace(); } diff --git a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13to1_12_2/packets/WorldPackets.java b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13to1_12_2/packets/WorldPackets.java index e5bf57e49..e47e58382 100644 --- a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13to1_12_2/packets/WorldPackets.java +++ b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13to1_12_2/packets/WorldPackets.java @@ -25,6 +25,7 @@ import us.myles.ViaVersion.protocols.protocol1_13to1_12_2.providers.BlockEntityP import us.myles.ViaVersion.protocols.protocol1_13to1_12_2.providers.PaintingProvider; import us.myles.ViaVersion.protocols.protocol1_13to1_12_2.storage.BlockStorage; import us.myles.ViaVersion.protocols.protocol1_13to1_12_2.types.Chunk1_13Type; +import us.myles.ViaVersion.protocols.protocol1_14to1_13_2.Protocol1_14To1_13_2; import us.myles.ViaVersion.protocols.protocol1_9_1_2to1_9_3_4.types.Chunk1_9_3_4Type; import us.myles.ViaVersion.protocols.protocol1_9_3to1_9_1_2.storage.ClientWorld; @@ -366,10 +367,6 @@ public class WorldPackets { } } - if (Via.getConfig().isServersideBlockConnections()) { - ConnectionData.connectBlocks(wrapper.user(), chunk); - } - // Rewrite biome id 255 to plains if (chunk.isBiomeData()) { int latestBiomeWarn = Integer.MIN_VALUE; @@ -405,6 +402,13 @@ public class WorldPackets { chunk.getSections()[y >> 4].setFlatBlock(x & 0xF, y & 0xF, z & 0xF, newId); } } + + if (Via.getConfig().isServersideBlockConnections()) { + // Workaround for packet order issue + wrapper.send(Protocol1_14To1_13_2.class, true, true); + wrapper.cancel(); + ConnectionData.connectBlocks(wrapper.user(), chunk); + } } }); } From 7b29972af020d46afb4364d7a1bfc8f322ddbe70 Mon Sep 17 00:00:00 2001 From: creeper123123321 Date: Sat, 27 Apr 2019 13:12:19 -0300 Subject: [PATCH 08/26] Fix wrong protocol class --- .../protocols/protocol1_13to1_12_2/packets/WorldPackets.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13to1_12_2/packets/WorldPackets.java b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13to1_12_2/packets/WorldPackets.java index e47e58382..fd20e9a31 100644 --- a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13to1_12_2/packets/WorldPackets.java +++ b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13to1_12_2/packets/WorldPackets.java @@ -25,7 +25,6 @@ import us.myles.ViaVersion.protocols.protocol1_13to1_12_2.providers.BlockEntityP import us.myles.ViaVersion.protocols.protocol1_13to1_12_2.providers.PaintingProvider; import us.myles.ViaVersion.protocols.protocol1_13to1_12_2.storage.BlockStorage; import us.myles.ViaVersion.protocols.protocol1_13to1_12_2.types.Chunk1_13Type; -import us.myles.ViaVersion.protocols.protocol1_14to1_13_2.Protocol1_14To1_13_2; import us.myles.ViaVersion.protocols.protocol1_9_1_2to1_9_3_4.types.Chunk1_9_3_4Type; import us.myles.ViaVersion.protocols.protocol1_9_3to1_9_1_2.storage.ClientWorld; @@ -405,7 +404,7 @@ public class WorldPackets { if (Via.getConfig().isServersideBlockConnections()) { // Workaround for packet order issue - wrapper.send(Protocol1_14To1_13_2.class, true, true); + wrapper.send(Protocol1_13To1_12_2.class, true, true); wrapper.cancel(); ConnectionData.connectBlocks(wrapper.user(), chunk); } From 87eceb5264172c3fcf2247012464cfff1205fd48 Mon Sep 17 00:00:00 2001 From: creeper123123321 Date: Sat, 27 Apr 2019 13:34:35 -0300 Subject: [PATCH 09/26] Use cached cancel exception when not in debug mode --- .../bungee/handlers/BungeeEncodeHandler.java | 3 ++- .../ViaVersion/api/protocol/Protocol.java | 5 ++-- .../ViaVersion/exception/CancelException.java | 25 +++++++++++++++++++ .../sponge/handlers/SpongeEncodeHandler.java | 3 ++- .../handlers/VelocityEncodeHandler.java | 3 ++- 5 files changed, 34 insertions(+), 5 deletions(-) diff --git a/bungee/src/main/java/us/myles/ViaVersion/bungee/handlers/BungeeEncodeHandler.java b/bungee/src/main/java/us/myles/ViaVersion/bungee/handlers/BungeeEncodeHandler.java index 34ffb2667..e8106a9f1 100644 --- a/bungee/src/main/java/us/myles/ViaVersion/bungee/handlers/BungeeEncodeHandler.java +++ b/bungee/src/main/java/us/myles/ViaVersion/bungee/handlers/BungeeEncodeHandler.java @@ -5,6 +5,7 @@ import io.netty.channel.ChannelHandler; import io.netty.channel.ChannelHandlerContext; import io.netty.handler.codec.MessageToMessageEncoder; import us.myles.ViaVersion.api.PacketWrapper; +import us.myles.ViaVersion.api.Via; import us.myles.ViaVersion.api.data.UserConnection; import us.myles.ViaVersion.api.type.Type; import us.myles.ViaVersion.bungee.util.BungeePipelineUtil; @@ -28,7 +29,7 @@ public class BungeeEncodeHandler extends MessageToMessageEncoder { @Override protected void encode(final ChannelHandlerContext ctx, ByteBuf bytebuf, List out) throws Exception { if (bytebuf.readableBytes() == 0) { - throw new CancelException(); + throw Via.getManager().isDebug() ? new CancelException() : CancelException.CACHED; } boolean needsCompress = false; if (!handledCompression) { diff --git a/common/src/main/java/us/myles/ViaVersion/api/protocol/Protocol.java b/common/src/main/java/us/myles/ViaVersion/api/protocol/Protocol.java index f66c43693..ad248bf26 100644 --- a/common/src/main/java/us/myles/ViaVersion/api/protocol/Protocol.java +++ b/common/src/main/java/us/myles/ViaVersion/api/protocol/Protocol.java @@ -167,8 +167,9 @@ public abstract class Protocol { // remap if (protocolPacket.getRemapper() != null) { protocolPacket.getRemapper().remap(packetWrapper); - if (packetWrapper.isCancelled()) - throw new CancelException(); + if (packetWrapper.isCancelled()) { + throw Via.getManager().isDebug() ? new CancelException() : CancelException.CACHED; + } } } diff --git a/common/src/main/java/us/myles/ViaVersion/exception/CancelException.java b/common/src/main/java/us/myles/ViaVersion/exception/CancelException.java index b71016854..93b5a7349 100644 --- a/common/src/main/java/us/myles/ViaVersion/exception/CancelException.java +++ b/common/src/main/java/us/myles/ViaVersion/exception/CancelException.java @@ -1,4 +1,29 @@ package us.myles.ViaVersion.exception; public class CancelException extends Exception { + public static final CancelException CACHED = new CancelException("Cached - Enable /viaver debug to not use cached exception") { + @Override + public synchronized Throwable fillInStackTrace() { + return this; + } + }; + + public CancelException() { + } + + public CancelException(String message) { + super(message); + } + + public CancelException(String message, Throwable cause) { + super(message, cause); + } + + public CancelException(Throwable cause) { + super(cause); + } + + public CancelException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) { + super(message, cause, enableSuppression, writableStackTrace); + } } diff --git a/sponge/src/main/java/us/myles/ViaVersion/sponge/handlers/SpongeEncodeHandler.java b/sponge/src/main/java/us/myles/ViaVersion/sponge/handlers/SpongeEncodeHandler.java index 5db88d64a..41beb84e9 100644 --- a/sponge/src/main/java/us/myles/ViaVersion/sponge/handlers/SpongeEncodeHandler.java +++ b/sponge/src/main/java/us/myles/ViaVersion/sponge/handlers/SpongeEncodeHandler.java @@ -4,6 +4,7 @@ import io.netty.buffer.ByteBuf; import io.netty.channel.ChannelHandlerContext; import io.netty.handler.codec.MessageToByteEncoder; import us.myles.ViaVersion.api.PacketWrapper; +import us.myles.ViaVersion.api.Via; import us.myles.ViaVersion.api.data.UserConnection; import us.myles.ViaVersion.api.type.Type; import us.myles.ViaVersion.exception.CancelException; @@ -37,7 +38,7 @@ public class SpongeEncodeHandler extends MessageToByteEncoder { } } if (bytebuf.readableBytes() == 0) { - throw new CancelException(); + throw Via.getManager().isDebug() ? new CancelException() : CancelException.CACHED; } // Increment sent info.incrementSent(); diff --git a/velocity/src/main/java/us/myles/ViaVersion/velocity/handlers/VelocityEncodeHandler.java b/velocity/src/main/java/us/myles/ViaVersion/velocity/handlers/VelocityEncodeHandler.java index b671159c5..2ec4e2525 100644 --- a/velocity/src/main/java/us/myles/ViaVersion/velocity/handlers/VelocityEncodeHandler.java +++ b/velocity/src/main/java/us/myles/ViaVersion/velocity/handlers/VelocityEncodeHandler.java @@ -9,6 +9,7 @@ import io.netty.handler.codec.MessageToMessageEncoder; import lombok.NonNull; import lombok.RequiredArgsConstructor; import us.myles.ViaVersion.api.PacketWrapper; +import us.myles.ViaVersion.api.Via; import us.myles.ViaVersion.api.data.UserConnection; import us.myles.ViaVersion.api.type.Type; import us.myles.ViaVersion.exception.CancelException; @@ -28,7 +29,7 @@ public class VelocityEncodeHandler extends MessageToMessageEncoder { @Override protected void encode(final ChannelHandlerContext ctx, ByteBuf bytebuf, List out) throws Exception { if (bytebuf.readableBytes() == 0) { - throw new CancelException(); + throw Via.getManager().isDebug() ? new CancelException() : CancelException.CACHED; } boolean needsCompress = false; if (!handledCompression From c7c5c793651c300fe8b78ee9a431d55f3302022e Mon Sep 17 00:00:00 2001 From: KennyTV <28825609+KennyTV@users.noreply.github.com> Date: Sat, 27 Apr 2019 18:36:01 +0200 Subject: [PATCH 10/26] Some minor optimization --- .../multiversion/PlayerSneakListener.java | 5 +-- .../protocol1_9to1_8/DeathListener.java | 6 ++-- .../protocol1_9to1_8/HandItemCache.java | 2 +- .../bukkit/platform/BukkitViaLoader.java | 6 ++-- .../api/entities/Entity1_10Types.java | 33 ++++++++++++------- .../api/entities/Entity1_11Types.java | 33 ++++++++++++------- .../api/entities/Entity1_12Types.java | 33 ++++++++++++------- .../api/entities/Entity1_13Types.java | 32 +++++++++++------- .../api/entities/Entity1_14Types.java | 20 +++++++---- .../ViaVersion/api/minecraft/item/Item.java | 1 + .../protocols/protocol1_9to1_8/ArmorType.java | 14 +++----- .../protocol1_9to1_8/ViaIdleThread.java | 3 +- .../protocol1_9to1_8/sounds/Effect.java | 8 ++--- .../protocol1_9to1_8/sounds/SoundEffect.java | 3 +- .../protocol1_9to1_8/HandItemCache.java | 2 +- 15 files changed, 123 insertions(+), 78 deletions(-) diff --git a/bukkit/src/main/java/us/myles/ViaVersion/bukkit/listeners/multiversion/PlayerSneakListener.java b/bukkit/src/main/java/us/myles/ViaVersion/bukkit/listeners/multiversion/PlayerSneakListener.java index f7e5a1018..993cd8f14 100644 --- a/bukkit/src/main/java/us/myles/ViaVersion/bukkit/listeners/multiversion/PlayerSneakListener.java +++ b/bukkit/src/main/java/us/myles/ViaVersion/bukkit/listeners/multiversion/PlayerSneakListener.java @@ -67,9 +67,10 @@ public class PlayerSneakListener extends ViaBukkitListener { Player player = event.getPlayer(); UserConnection userConnection = getUserConnection(player); if (userConnection == null) return; - if (!userConnection.has(ProtocolInfo.class)) return; + ProtocolInfo info = userConnection.get(ProtocolInfo.class); + if (info == null) return; - int protocolVersion = userConnection.get(ProtocolInfo.class).getProtocolVersion(); + int protocolVersion = info.getProtocolVersion(); if (is1_14Fix && protocolVersion >= ProtocolVersion.v1_14.getId()) { setHeight(player, event.isSneaking() ? HEIGHT_1_14 : STANDING_HEIGHT); if (!useCache) return; diff --git a/bukkit/src/main/java/us/myles/ViaVersion/bukkit/listeners/protocol1_9to1_8/DeathListener.java b/bukkit/src/main/java/us/myles/ViaVersion/bukkit/listeners/protocol1_9to1_8/DeathListener.java index 49d641d47..076fed5df 100644 --- a/bukkit/src/main/java/us/myles/ViaVersion/bukkit/listeners/protocol1_9to1_8/DeathListener.java +++ b/bukkit/src/main/java/us/myles/ViaVersion/bukkit/listeners/protocol1_9to1_8/DeathListener.java @@ -9,6 +9,7 @@ import us.myles.ViaVersion.ViaVersionPlugin; import us.myles.ViaVersion.api.PacketWrapper; import us.myles.ViaVersion.api.Via; import us.myles.ViaVersion.api.ViaVersion; +import us.myles.ViaVersion.api.data.UserConnection; import us.myles.ViaVersion.api.type.Type; import us.myles.ViaVersion.bukkit.listeners.ViaBukkitListener; import us.myles.ViaVersion.protocols.protocol1_9to1_8.Protocol1_9To1_8; @@ -38,8 +39,9 @@ public class DeathListener extends ViaBukkitListener { @Override public void run() { // If online - if (getUserConnection(p) != null) { - PacketWrapper wrapper = new PacketWrapper(0x2C, null, getUserConnection(p)); + UserConnection userConnection = getUserConnection(p); + if (userConnection != null) { + PacketWrapper wrapper = new PacketWrapper(0x2C, null, userConnection); try { wrapper.write(Type.VAR_INT, 2); // Event - Entity dead wrapper.write(Type.VAR_INT, p.getEntityId()); // Player ID diff --git a/bukkit/src/main/java/us/myles/ViaVersion/bukkit/listeners/protocol1_9to1_8/HandItemCache.java b/bukkit/src/main/java/us/myles/ViaVersion/bukkit/listeners/protocol1_9to1_8/HandItemCache.java index 4cf432898..a59a5e34e 100644 --- a/bukkit/src/main/java/us/myles/ViaVersion/bukkit/listeners/protocol1_9to1_8/HandItemCache.java +++ b/bukkit/src/main/java/us/myles/ViaVersion/bukkit/listeners/protocol1_9to1_8/HandItemCache.java @@ -35,7 +35,7 @@ public class HandItemCache extends BukkitRunnable { } public static Item convert(ItemStack itemInHand) { - if (itemInHand == null) return new Item((short) 0, (byte) 0, (short) 0, null); + if (itemInHand == null) return Item.EMPTY; return new Item((short) itemInHand.getTypeId(), (byte) itemInHand.getAmount(), itemInHand.getDurability(), null); } } diff --git a/bukkit/src/main/java/us/myles/ViaVersion/bukkit/platform/BukkitViaLoader.java b/bukkit/src/main/java/us/myles/ViaVersion/bukkit/platform/BukkitViaLoader.java index 197b2be80..14324fd02 100644 --- a/bukkit/src/main/java/us/myles/ViaVersion/bukkit/platform/BukkitViaLoader.java +++ b/bukkit/src/main/java/us/myles/ViaVersion/bukkit/platform/BukkitViaLoader.java @@ -1,6 +1,7 @@ package us.myles.ViaVersion.bukkit.platform; import org.bukkit.Bukkit; +import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.HandlerList; import org.bukkit.event.Listener; @@ -116,8 +117,9 @@ public class BukkitViaLoader implements ViaPlatformLoader { @Override public Item call() throws Exception { UUID playerUUID = info.get(ProtocolInfo.class).getUuid(); - if (Bukkit.getPlayer(playerUUID) != null) { - return HandItemCache.convert(Bukkit.getPlayer(playerUUID).getItemInHand()); + Player player = Bukkit.getPlayer(playerUUID); + if (player != null) { + return HandItemCache.convert(player.getItemInHand()); } return null; } diff --git a/common/src/main/java/us/myles/ViaVersion/api/entities/Entity1_10Types.java b/common/src/main/java/us/myles/ViaVersion/api/entities/Entity1_10Types.java index 322024119..4010cc358 100644 --- a/common/src/main/java/us/myles/ViaVersion/api/entities/Entity1_10Types.java +++ b/common/src/main/java/us/myles/ViaVersion/api/entities/Entity1_10Types.java @@ -5,6 +5,9 @@ import lombok.AllArgsConstructor; import lombok.Getter; import us.myles.ViaVersion.api.Via; +import java.util.HashMap; +import java.util.Map; + // 1.10 Entity / Object ids public class Entity1_10Types { @@ -113,6 +116,8 @@ public class Entity1_10Types { PLAYER(-1, ENTITY_HUMAN), COMPLEX_PART(-1, ENTITY); + private static final Map TYPES = new HashMap<>(); + private final int id; private final EntityType parent; @@ -121,15 +126,16 @@ public class Entity1_10Types { this.parent = null; } + static { + for (EntityType type : EntityType.values()) { + TYPES.put(type.id, type); + } + } + public static Optional findById(int id) { if (id == -1) // Check if this is called return Optional.absent(); - - for (EntityType ent : EntityType.values()) - if (ent.getId() == id) - return Optional.of(ent); - - return Optional.absent(); + return Optional.fromNullable(TYPES.get(id)); } } @@ -162,18 +168,21 @@ public class Entity1_10Types { SPECTRAL_ARROW(91, EntityType.SPECTRAL_ARROW), DRAGON_FIREBALL(93, EntityType.DRAGON_FIREBALL); + private static final Map TYPES = new HashMap<>(); + private final int id; private final EntityType type; + static { + for (ObjectTypes type : ObjectTypes.values()) { + TYPES.put(type.id, type); + } + } + public static Optional findById(int id) { if (id == -1) return Optional.absent(); - - for (ObjectTypes ent : ObjectTypes.values()) - if (ent.getId() == id) - return Optional.of(ent); - - return Optional.absent(); + return Optional.fromNullable(TYPES.get(id)); } public static Optional getPCEntity(int id) { diff --git a/common/src/main/java/us/myles/ViaVersion/api/entities/Entity1_11Types.java b/common/src/main/java/us/myles/ViaVersion/api/entities/Entity1_11Types.java index 1e5cb937c..ca8d91b22 100644 --- a/common/src/main/java/us/myles/ViaVersion/api/entities/Entity1_11Types.java +++ b/common/src/main/java/us/myles/ViaVersion/api/entities/Entity1_11Types.java @@ -5,6 +5,9 @@ import lombok.AllArgsConstructor; import lombok.Getter; import us.myles.ViaVersion.api.Via; +import java.util.HashMap; +import java.util.Map; + // 1.11 Entity / Object ids TODO maybe in the future instead of copying it, some api. public class Entity1_11Types { public static EntityType getTypeFromId(int typeID, boolean isObject) { @@ -140,6 +143,8 @@ public class Entity1_11Types { COMPLEX_PART(-1, ENTITY), LIAMA_SPIT(-1, ENTITY); + private static final Map TYPES = new HashMap<>(); + private final int id; private final EntityType parent; @@ -148,15 +153,16 @@ public class Entity1_11Types { this.parent = null; } + static { + for (EntityType type : EntityType.values()) { + TYPES.put(type.id, type); + } + } + public static Optional findById(int id) { if (id == -1) // Check if this is called return Optional.absent(); - - for (EntityType ent : EntityType.values()) - if (ent.getId() == id) - return Optional.of(ent); - - return Optional.absent(); + return Optional.fromNullable(TYPES.get(id)); } public boolean is(EntityType... types) { @@ -215,18 +221,21 @@ public class Entity1_11Types { SPECTRAL_ARROW(91, EntityType.SPECTRAL_ARROW), DRAGON_FIREBALL(93, EntityType.DRAGON_FIREBALL); + private static final Map TYPES = new HashMap<>(); + private final int id; private final EntityType type; + static { + for (ObjectTypes type : ObjectTypes.values()) { + TYPES.put(type.id, type); + } + } + public static Optional findById(int id) { if (id == -1) return Optional.absent(); - - for (ObjectTypes ent : ObjectTypes.values()) - if (ent.getId() == id) - return Optional.of(ent); - - return Optional.absent(); + return Optional.fromNullable(TYPES.get(id)); } public static Optional getPCEntity(int id) { diff --git a/common/src/main/java/us/myles/ViaVersion/api/entities/Entity1_12Types.java b/common/src/main/java/us/myles/ViaVersion/api/entities/Entity1_12Types.java index 8c6f73070..4b7cffb18 100644 --- a/common/src/main/java/us/myles/ViaVersion/api/entities/Entity1_12Types.java +++ b/common/src/main/java/us/myles/ViaVersion/api/entities/Entity1_12Types.java @@ -15,6 +15,9 @@ import lombok.AllArgsConstructor; import lombok.Getter; import us.myles.ViaVersion.api.Via; +import java.util.HashMap; +import java.util.Map; + // 1.12 Entity / Object taken from https://github.com/Matsv/ViaBackwards/blob/master/core/src/main/java/nl/matsv/viabackwards/api/entities/types/EntityType1_12.java public class Entity1_12Types { public static EntityType getTypeFromId(int typeID, boolean isObject) { @@ -153,6 +156,8 @@ public class Entity1_12Types { COMPLEX_PART(-1, ENTITY), LIAMA_SPIT(-1, ENTITY); + private static final Map TYPES = new HashMap<>(); + private final int id; private final EntityType parent; @@ -161,15 +166,16 @@ public class Entity1_12Types { this.parent = null; } + static { + for (EntityType type : EntityType.values()) { + TYPES.put(type.id, type); + } + } + public static Optional findById(int id) { if (id == -1) // Check if this is called return Optional.absent(); - - for (EntityType ent : EntityType.values()) - if (ent.getId() == id) - return Optional.of(ent); - - return Optional.absent(); + return Optional.fromNullable(TYPES.get(id)); } public boolean is(EntityType... types) { @@ -228,18 +234,21 @@ public class Entity1_12Types { SPECTRAL_ARROW(91, EntityType.SPECTRAL_ARROW), DRAGON_FIREBALL(93, EntityType.DRAGON_FIREBALL); + private static final Map TYPES = new HashMap<>(); + private final int id; private final EntityType type; + static { + for (ObjectTypes type : ObjectTypes.values()) { + TYPES.put(type.id, type); + } + } + public static Optional findById(int id) { if (id == -1) return Optional.absent(); - - for (ObjectTypes ent : ObjectTypes.values()) - if (ent.getId() == id) - return Optional.of(ent); - - return Optional.absent(); + return Optional.fromNullable(TYPES.get(id)); } public static Optional getPCEntity(int id) { diff --git a/common/src/main/java/us/myles/ViaVersion/api/entities/Entity1_13Types.java b/common/src/main/java/us/myles/ViaVersion/api/entities/Entity1_13Types.java index 1dbcb34f9..6389f0f09 100644 --- a/common/src/main/java/us/myles/ViaVersion/api/entities/Entity1_13Types.java +++ b/common/src/main/java/us/myles/ViaVersion/api/entities/Entity1_13Types.java @@ -5,6 +5,9 @@ import lombok.AllArgsConstructor; import lombok.Getter; import us.myles.ViaVersion.api.Via; +import java.util.HashMap; +import java.util.Map; + // TODO auto generate 18w11a with PAaaS public class Entity1_13Types { @@ -196,6 +199,7 @@ public class Entity1_13Types { SPAWNER_MINECART(44, MINECART_ABSTRACT), // amb BOAT(5, ENTITY); // alv + private static final Map TYPES = new HashMap<>(); private final int id; private final EntityType parent; @@ -205,15 +209,16 @@ public class Entity1_13Types { this.parent = null; } + static { + for (EntityType type : EntityType.values()) { + TYPES.put(type.id, type); + } + } + public static Optional findById(int id) { if (id == -1) // Check if this is called return Optional.absent(); - - for (EntityType ent : EntityType.values()) - if (ent.getId() == id) - return Optional.of(ent); - - return Optional.absent(); + return Optional.fromNullable(TYPES.get(id)); } public boolean is(EntityType... types) { @@ -273,18 +278,21 @@ public class Entity1_13Types { DRAGON_FIREBALL(93, EntityType.DRAGON_FIREBALL), TRIDENT(94, EntityType.TRIDENT); + private static final Map TYPES = new HashMap<>(); + private final int id; private final EntityType type; + static { + for (ObjectTypes type : ObjectTypes.values()) { + TYPES.put(type.id, type); + } + } + public static Optional findById(int id) { if (id == -1) return Optional.absent(); - - for (ObjectTypes ent : ObjectTypes.values()) - if (ent.getId() == id) - return Optional.of(ent); - - return Optional.absent(); + return Optional.fromNullable(TYPES.get(id)); } public static Optional getPCEntity(int id) { diff --git a/common/src/main/java/us/myles/ViaVersion/api/entities/Entity1_14Types.java b/common/src/main/java/us/myles/ViaVersion/api/entities/Entity1_14Types.java index bc6518864..6a77337a1 100644 --- a/common/src/main/java/us/myles/ViaVersion/api/entities/Entity1_14Types.java +++ b/common/src/main/java/us/myles/ViaVersion/api/entities/Entity1_14Types.java @@ -5,6 +5,9 @@ import lombok.AllArgsConstructor; import lombok.Getter; import us.myles.ViaVersion.api.Via; +import java.util.HashMap; +import java.util.Map; + public class Entity1_14Types { public static EntityType getTypeFromId(int typeID) { @@ -196,6 +199,8 @@ public class Entity1_14Types { BOAT(5, ENTITY), ; + private static final Map TYPES = new HashMap<>(); + private final int id; private final EntityType parent; @@ -204,15 +209,16 @@ public class Entity1_14Types { this.parent = null; } + static { + for (EntityType type : EntityType.values()) { + TYPES.put(type.id, type); + } + } + public static Optional findById(int id) { - if (id == -1) // Check if this is called + if (id == -1) return Optional.absent(); - - for (EntityType ent : EntityType.values()) - if (ent.getId() == id) - return Optional.of(ent); - - return Optional.absent(); + return Optional.fromNullable(TYPES.get(id)); } public boolean is(EntityType... types) { diff --git a/common/src/main/java/us/myles/ViaVersion/api/minecraft/item/Item.java b/common/src/main/java/us/myles/ViaVersion/api/minecraft/item/Item.java index 8a47bcaa5..c99a663ac 100644 --- a/common/src/main/java/us/myles/ViaVersion/api/minecraft/item/Item.java +++ b/common/src/main/java/us/myles/ViaVersion/api/minecraft/item/Item.java @@ -11,6 +11,7 @@ import lombok.*; @ToString @EqualsAndHashCode public class Item { + public static final Item EMPTY = new Item((short) 0, (byte) 0, (short) 0, null); @SerializedName(value = "identifier", alternate = "id") private int identifier; private byte amount; diff --git a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_9to1_8/ArmorType.java b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_9to1_8/ArmorType.java index b4f830521..1dd083af0 100644 --- a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_9to1_8/ArmorType.java +++ b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_9to1_8/ArmorType.java @@ -4,6 +4,7 @@ import lombok.Getter; import lombok.RequiredArgsConstructor; import java.util.HashMap; +import java.util.Map; @RequiredArgsConstructor @Getter @@ -31,7 +32,7 @@ public enum ArmorType { GOLD_BOOTS(1, 317, "minecraft:gold_boots"), NONE(0, 0, "none"); - private static HashMap armor; + private static Map armor; static { armor = new HashMap<>(); @@ -51,10 +52,8 @@ public enum ArmorType { * @return Return the ArmourType, ArmourType.NONE if not found */ public static ArmorType findById(int id) { - for (ArmorType a : ArmorType.values()) - if (a.getId() == id) - return a; - return ArmorType.NONE; + ArmorType type = armor.get(id); + return type == null ? ArmorType.NONE : type; } /** @@ -77,10 +76,7 @@ public enum ArmorType { * @return True if the item is a piece of armour */ public static boolean isArmor(int id) { - for (ArmorType a : ArmorType.values()) - if (a.getId() == id) - return true; - return false; + return armor.containsKey(id); } /** diff --git a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_9to1_8/ViaIdleThread.java b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_9to1_8/ViaIdleThread.java index a0b25474c..6dc8edf14 100644 --- a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_9to1_8/ViaIdleThread.java +++ b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_9to1_8/ViaIdleThread.java @@ -10,7 +10,8 @@ public class ViaIdleThread implements Runnable { @Override public void run() { for (UserConnection info : Via.getManager().getPortedPlayers().values()) { - if (info.has(ProtocolInfo.class) && info.get(ProtocolInfo.class).getPipeline().contains(Protocol1_9To1_8.class)) { + ProtocolInfo protocolInfo = info.get(ProtocolInfo.class); + if (protocolInfo != null && protocolInfo.getPipeline().contains(Protocol1_9To1_8.class)) { long nextIdleUpdate = info.get(MovementTracker.class).getNextIdlePacket(); if (nextIdleUpdate <= System.currentTimeMillis()) { if (info.getChannel().isOpen()) { diff --git a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_9to1_8/sounds/Effect.java b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_9to1_8/sounds/Effect.java index 964ef9611..632e7e298 100644 --- a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_9to1_8/sounds/Effect.java +++ b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_9to1_8/sounds/Effect.java @@ -1,10 +1,11 @@ package us.myles.ViaVersion.protocols.protocol1_9to1_8.sounds; import java.util.HashMap; +import java.util.Map; public class Effect { - private final static HashMap effects; + private static final Map effects; static { effects = new HashMap<>(); @@ -29,9 +30,8 @@ public class Effect { } public static int getNewId(int id) { - if (!contains(id)) - return id; - return effects.get(id); + Integer newId = effects.get(id); + return newId != null ? newId : id; } public static boolean contains(int oldId) { diff --git a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_9to1_8/sounds/SoundEffect.java b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_9to1_8/sounds/SoundEffect.java index 985d83386..e5688fcde 100644 --- a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_9to1_8/sounds/SoundEffect.java +++ b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_9to1_8/sounds/SoundEffect.java @@ -3,6 +3,7 @@ package us.myles.ViaVersion.protocols.protocol1_9to1_8.sounds; import lombok.Getter; import java.util.HashMap; +import java.util.Map; @Getter public enum SoundEffect { @@ -259,7 +260,7 @@ public enum SoundEffect { private final SoundCategory category; private final boolean breaksound; - private static HashMap effects; + private static Map effects; static { effects = new HashMap<>(); diff --git a/sponge/src/main/java/us/myles/ViaVersion/sponge/listeners/protocol1_9to1_8/HandItemCache.java b/sponge/src/main/java/us/myles/ViaVersion/sponge/listeners/protocol1_9to1_8/HandItemCache.java index fa9833ed7..0df3ae4ce 100644 --- a/sponge/src/main/java/us/myles/ViaVersion/sponge/listeners/protocol1_9to1_8/HandItemCache.java +++ b/sponge/src/main/java/us/myles/ViaVersion/sponge/listeners/protocol1_9to1_8/HandItemCache.java @@ -51,7 +51,7 @@ public class HandItemCache implements Runnable { } public static Item convert(ItemStack itemInHand) { - if (itemInHand == null) return new Item((short) 0, (byte) 0, (short) 0, null); + if (itemInHand == null) return Item.EMPTY; if (GET_DAMAGE == null) { try { GET_DAMAGE = itemInHand.getClass().getDeclaredField("field_77991_e"); From d76e70b1f73231701be4e9d6dadfa2abf84d5326 Mon Sep 17 00:00:00 2001 From: KennyTV <28825609+KennyTV@users.noreply.github.com> Date: Sat, 27 Apr 2019 18:59:18 +0200 Subject: [PATCH 11/26] Don't cache Item --- .../bukkit/listeners/protocol1_9to1_8/HandItemCache.java | 2 +- .../main/java/us/myles/ViaVersion/api/minecraft/item/Item.java | 1 - .../sponge/listeners/protocol1_9to1_8/HandItemCache.java | 2 +- 3 files changed, 2 insertions(+), 3 deletions(-) diff --git a/bukkit/src/main/java/us/myles/ViaVersion/bukkit/listeners/protocol1_9to1_8/HandItemCache.java b/bukkit/src/main/java/us/myles/ViaVersion/bukkit/listeners/protocol1_9to1_8/HandItemCache.java index a59a5e34e..0cc55c169 100644 --- a/bukkit/src/main/java/us/myles/ViaVersion/bukkit/listeners/protocol1_9to1_8/HandItemCache.java +++ b/bukkit/src/main/java/us/myles/ViaVersion/bukkit/listeners/protocol1_9to1_8/HandItemCache.java @@ -35,7 +35,7 @@ public class HandItemCache extends BukkitRunnable { } public static Item convert(ItemStack itemInHand) { - if (itemInHand == null) return Item.EMPTY; + if (itemInHand == null) new Item((short) 0, (byte) 0, (short) 0, null); return new Item((short) itemInHand.getTypeId(), (byte) itemInHand.getAmount(), itemInHand.getDurability(), null); } } diff --git a/common/src/main/java/us/myles/ViaVersion/api/minecraft/item/Item.java b/common/src/main/java/us/myles/ViaVersion/api/minecraft/item/Item.java index c99a663ac..8a47bcaa5 100644 --- a/common/src/main/java/us/myles/ViaVersion/api/minecraft/item/Item.java +++ b/common/src/main/java/us/myles/ViaVersion/api/minecraft/item/Item.java @@ -11,7 +11,6 @@ import lombok.*; @ToString @EqualsAndHashCode public class Item { - public static final Item EMPTY = new Item((short) 0, (byte) 0, (short) 0, null); @SerializedName(value = "identifier", alternate = "id") private int identifier; private byte amount; diff --git a/sponge/src/main/java/us/myles/ViaVersion/sponge/listeners/protocol1_9to1_8/HandItemCache.java b/sponge/src/main/java/us/myles/ViaVersion/sponge/listeners/protocol1_9to1_8/HandItemCache.java index 0df3ae4ce..fa9833ed7 100644 --- a/sponge/src/main/java/us/myles/ViaVersion/sponge/listeners/protocol1_9to1_8/HandItemCache.java +++ b/sponge/src/main/java/us/myles/ViaVersion/sponge/listeners/protocol1_9to1_8/HandItemCache.java @@ -51,7 +51,7 @@ public class HandItemCache implements Runnable { } public static Item convert(ItemStack itemInHand) { - if (itemInHand == null) return Item.EMPTY; + if (itemInHand == null) return new Item((short) 0, (byte) 0, (short) 0, null); if (GET_DAMAGE == null) { try { GET_DAMAGE = itemInHand.getClass().getDeclaredField("field_77991_e"); From 41b22e89512f06aced0fa1f68103711802032ecd Mon Sep 17 00:00:00 2001 From: KennyTV <28825609+KennyTV@users.noreply.github.com> Date: Sat, 27 Apr 2019 19:01:45 +0200 Subject: [PATCH 12/26] Forgot return --- .../bukkit/listeners/protocol1_9to1_8/HandItemCache.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bukkit/src/main/java/us/myles/ViaVersion/bukkit/listeners/protocol1_9to1_8/HandItemCache.java b/bukkit/src/main/java/us/myles/ViaVersion/bukkit/listeners/protocol1_9to1_8/HandItemCache.java index 0cc55c169..4cf432898 100644 --- a/bukkit/src/main/java/us/myles/ViaVersion/bukkit/listeners/protocol1_9to1_8/HandItemCache.java +++ b/bukkit/src/main/java/us/myles/ViaVersion/bukkit/listeners/protocol1_9to1_8/HandItemCache.java @@ -35,7 +35,7 @@ public class HandItemCache extends BukkitRunnable { } public static Item convert(ItemStack itemInHand) { - if (itemInHand == null) new Item((short) 0, (byte) 0, (short) 0, null); + if (itemInHand == null) return new Item((short) 0, (byte) 0, (short) 0, null); return new Item((short) itemInHand.getTypeId(), (byte) itemInHand.getAmount(), itemInHand.getDurability(), null); } } From 13086c7cac2d8e67bfcefea59085fdee3e5d6b50 Mon Sep 17 00:00:00 2001 From: creeper123123321 Date: Sat, 27 Apr 2019 14:03:48 -0300 Subject: [PATCH 13/26] Fixed connecting after sending the packet --- .../protocol1_13to1_12_2/packets/WorldPackets.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13to1_12_2/packets/WorldPackets.java b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13to1_12_2/packets/WorldPackets.java index fd20e9a31..a5b82467d 100644 --- a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13to1_12_2/packets/WorldPackets.java +++ b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13to1_12_2/packets/WorldPackets.java @@ -403,10 +403,15 @@ public class WorldPackets { } if (Via.getConfig().isServersideBlockConnections()) { + ConnectionData.connectBlocks(wrapper.user(), chunk); // Workaround for packet order issue wrapper.send(Protocol1_13To1_12_2.class, true, true); wrapper.cancel(); - ConnectionData.connectBlocks(wrapper.user(), chunk); + for (int i = 0; i < chunk.getSections().length; i++) { + ChunkSection section = chunk.getSections()[i]; + if (section == null) continue; + ConnectionData.updateChunkSectionNeighbours(wrapper.user(), chunk.getX(), chunk.getZ(), i); + } } } }); From d7eff518058c6f0697d3d79ada8ba3de52d24091 Mon Sep 17 00:00:00 2001 From: creeper123123321 Date: Sat, 27 Apr 2019 16:23:24 -0300 Subject: [PATCH 14/26] Not tested pose handling --- .../blockconnections/ConnectionData.java | 1 - .../MetadataRewriter.java | 48 +++++++++++++++++-- .../packets/EntityPackets.java | 6 +++ .../storage/EntityTracker.java | 44 +++++++++++++++++ 4 files changed, 95 insertions(+), 4 deletions(-) diff --git a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13to1_12_2/blockconnections/ConnectionData.java b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13to1_12_2/blockconnections/ConnectionData.java index 287ed9105..574b071b6 100644 --- a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13to1_12_2/blockconnections/ConnectionData.java +++ b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13to1_12_2/blockconnections/ConnectionData.java @@ -192,7 +192,6 @@ public class ConnectionData { } } } - updateChunkSectionNeighbours(user, chunk.getX(), chunk.getZ(), i); } } diff --git a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_14to1_13_2/MetadataRewriter.java b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_14to1_13_2/MetadataRewriter.java index c136c02f6..a2d37e355 100644 --- a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_14to1_13_2/MetadataRewriter.java +++ b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_14to1_13_2/MetadataRewriter.java @@ -47,13 +47,24 @@ public class MetadataRewriter { if (type.isOrHasParent(Entity1_14Types.EntityType.ABSTRACT_INSENTIENT)) { if (metadata.getId() == 13) { - tracker.setInsentientData(entityId, (byte) ((((Number)metadata.getValue()).byteValue() & ~0x4) + tracker.setInsentientData(entityId, (byte) ((((Number) metadata.getValue()).byteValue() & ~0x4) | (tracker.getInsentientData(entityId) & 0x4))); // New attacking metadata metadata.setValue(tracker.getInsentientData(entityId)); } } - if (type.isOrHasParent(Entity1_14Types.EntityType.ZOMBIE)) { + if (type.isOrHasParent(Entity1_14Types.EntityType.PLAYER)) { + if (metadata.getId() == 0) { + byte flags = ((Number) metadata.getValue()).byteValue(); + // Mojang overrides the client-side pose updater, see OtherPlayerEntity#updateSize + tracker.setEntityFlags(entityId, flags); + } else if (metadata.getId() == 7) { + tracker.setRiptide(entityId, (((Number) metadata.getValue()).byteValue() & 0x4) != 0); + } + if (metadata.getId() == 0 || metadata.getId() == 7) { + metadatas.add(new Metadata(6, MetaType1_14.Pose, recalculatePlayerPose(entityId, tracker))); + } + } else if (type.isOrHasParent(Entity1_14Types.EntityType.ZOMBIE)) { if (metadata.getId() == 16) { tracker.setInsentientData(entityId, (byte) ((tracker.getInsentientData(entityId) & ~0x4) | ((boolean) metadata.getValue() ? 0x4 : 0))); // New attacking @@ -107,7 +118,8 @@ public class MetadataRewriter { } } else if (type.is(Entity1_14Types.EntityType.FIREWORKS_ROCKET)) { if (metadata.getId() == 8) { - if (metadata.getValue().equals(0)) metadata.setValue(null); // https://bugs.mojang.com/browse/MC-111480 + if (metadata.getValue().equals(0)) + metadata.setValue(null); // https://bugs.mojang.com/browse/MC-111480 metadata.setMetaType(MetaType1_14.OptVarInt); } } else if (type.isOrHasParent(Entity1_14Types.EntityType.ABSTRACT_SKELETON)) { @@ -150,6 +162,14 @@ public class MetadataRewriter { } } + private static boolean isSneaking(byte flags) { + return (flags & 0x2) != 0; + } + + private static boolean isSwimming(byte flags) { + return (flags & 0x10) != 0; + } + private static int getNewProfessionId(int old) { // profession -> career switch (old) { @@ -170,6 +190,28 @@ public class MetadataRewriter { } } + private static boolean isFallFlying(int entityFlags) { + return (entityFlags & 0x80) != 0; + } + + private static int recalculatePlayerPose(int entityId, EntityTracker tracker) { + byte flags = tracker.getEntityFlags(entityId); + // Mojang overrides the client-side pose updater, see OtherPlayerEntity#updateSize + int pose = 0; // standing + if (isFallFlying(flags)) { + pose = 1; + } else if (tracker.isSleeping(entityId)) { + pose = 2; + } else if (isSwimming(flags)) { + pose = 3; + } else if (tracker.isRiptide(entityId)) { + pose = 4; + } else if (isSneaking(flags)) { + pose = 5; + } + return pose; + } + public static int getNewParticleId(int id) { if (id >= 10) { id += 2; // new lava drips 10, 11 diff --git a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_14to1_13_2/packets/EntityPackets.java b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_14to1_13_2/packets/EntityPackets.java index 72a1a959a..a63eb8b21 100644 --- a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_14to1_13_2/packets/EntityPackets.java +++ b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_14to1_13_2/packets/EntityPackets.java @@ -195,6 +195,9 @@ public class EntityPackets { public void handle(PacketWrapper wrapper) throws Exception { short animation = wrapper.passthrough(Type.UNSIGNED_BYTE); if (animation == 2) { //Leave bed + EntityTracker tracker = wrapper.user().get(EntityTracker.class); + tracker.setSleeping(wrapper.get(Type.VAR_INT, 0), false); + PacketWrapper metadataPacket = wrapper.create(0x43); metadataPacket.write(Type.VAR_INT, wrapper.get(Type.VAR_INT, 0)); List metadataList = new LinkedList<>(); @@ -215,6 +218,9 @@ public class EntityPackets { handler(new PacketHandler() { @Override public void handle(PacketWrapper wrapper) throws Exception { + EntityTracker tracker = wrapper.user().get(EntityTracker.class); + tracker.setSleeping(wrapper.get(Type.VAR_INT, 0), true); + Position position = wrapper.read(Type.POSITION); List metadataList = new LinkedList<>(); metadataList.add(new Metadata(12, MetaType1_14.OptPosition, position)); diff --git a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_14to1_13_2/storage/EntityTracker.java b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_14to1_13_2/storage/EntityTracker.java index d6ae09aa6..ace6ba6e7 100644 --- a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_14to1_13_2/storage/EntityTracker.java +++ b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_14to1_13_2/storage/EntityTracker.java @@ -14,6 +14,9 @@ import java.util.concurrent.ConcurrentHashMap; public class EntityTracker extends StoredObject implements ExternalJoinGameListener { private final Map clientEntityTypes = new ConcurrentHashMap<>(); private final Map insentientData = new ConcurrentHashMap<>(); + // 0x1 = sleeping, 0x2 = riptide + private final Map sleepingAndRiptideData = new ConcurrentHashMap<>(); + private final Map playerEntityFlags = new ConcurrentHashMap<>(); @Getter @Setter private int latestTradeWindowId; @@ -31,6 +34,8 @@ public class EntityTracker extends StoredObject implements ExternalJoinGameListe public void removeEntity(int entityId) { clientEntityTypes.remove(entityId); insentientData.remove(entityId); + sleepingAndRiptideData.remove(entityId); + playerEntityFlags.remove(entityId); } public void addEntity(int entityId, Entity1_14Types.EntityType type) { @@ -46,6 +51,37 @@ public class EntityTracker extends StoredObject implements ExternalJoinGameListe insentientData.put(entity, value); } + private static byte zeroIfNull(Byte val) { + if (val == null) return 0; + return val; + } + + public boolean isSleeping(int player) { + return (zeroIfNull(sleepingAndRiptideData.get(player)) & 1) != 0; + } + + public void setSleeping(int player, boolean value) { + byte newValue = (byte) ((zeroIfNull(sleepingAndRiptideData.get(player)) & ~1) | (value ? 1 : 0)); + if (newValue == 0) { + sleepingAndRiptideData.remove(player); + } else { + sleepingAndRiptideData.put(player, newValue); + } + } + + public boolean isRiptide(int player) { + return (zeroIfNull(sleepingAndRiptideData.get(player)) & 2) != 0; + } + + public void setRiptide(int player, boolean value) { + byte newValue = (byte) ((zeroIfNull(sleepingAndRiptideData.get(player)) & ~2) | (value ? 2 : 0)); + if (newValue == 0) { + sleepingAndRiptideData.remove(player); + } else { + sleepingAndRiptideData.put(player, newValue); + } + } + public boolean has(int entityId) { return clientEntityTypes.containsKey(entityId); } @@ -58,4 +94,12 @@ public class EntityTracker extends StoredObject implements ExternalJoinGameListe public void onExternalJoinGame(int playerEntityId) { clientEntityTypes.put(playerEntityId, Entity1_14Types.EntityType.PLAYER); } + + public byte getEntityFlags(int player) { + return zeroIfNull(playerEntityFlags.get(player)); + } + + public void setEntityFlags(int player, byte data) { + playerEntityFlags.put(player, data); + } } From 61b5c90aa7ef8acc88dec4b467eb535cee48c943 Mon Sep 17 00:00:00 2001 From: creeper123123321 Date: Sat, 27 Apr 2019 17:21:01 -0300 Subject: [PATCH 15/26] Recalculate pose when using or leaving bed --- .../protocol1_14to1_13_2/MetadataRewriter.java | 2 +- .../protocol1_14to1_13_2/packets/EntityPackets.java | 10 +++++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_14to1_13_2/MetadataRewriter.java b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_14to1_13_2/MetadataRewriter.java index a2d37e355..a66cc1ab4 100644 --- a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_14to1_13_2/MetadataRewriter.java +++ b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_14to1_13_2/MetadataRewriter.java @@ -194,7 +194,7 @@ public class MetadataRewriter { return (entityFlags & 0x80) != 0; } - private static int recalculatePlayerPose(int entityId, EntityTracker tracker) { + public static int recalculatePlayerPose(int entityId, EntityTracker tracker) { byte flags = tracker.getEntityFlags(entityId); // Mojang overrides the client-side pose updater, see OtherPlayerEntity#updateSize int pose = 0; // standing diff --git a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_14to1_13_2/packets/EntityPackets.java b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_14to1_13_2/packets/EntityPackets.java index a63eb8b21..b47710a93 100644 --- a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_14to1_13_2/packets/EntityPackets.java +++ b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_14to1_13_2/packets/EntityPackets.java @@ -196,11 +196,13 @@ public class EntityPackets { short animation = wrapper.passthrough(Type.UNSIGNED_BYTE); if (animation == 2) { //Leave bed EntityTracker tracker = wrapper.user().get(EntityTracker.class); - tracker.setSleeping(wrapper.get(Type.VAR_INT, 0), false); + int entityId = wrapper.get(Type.VAR_INT, 0); + tracker.setSleeping(entityId, false); PacketWrapper metadataPacket = wrapper.create(0x43); - metadataPacket.write(Type.VAR_INT, wrapper.get(Type.VAR_INT, 0)); + metadataPacket.write(Type.VAR_INT, entityId); List metadataList = new LinkedList<>(); + metadataList.add(new Metadata(6, MetaType1_14.Pose, MetadataRewriter.recalculatePlayerPose(entityId, tracker))); metadataList.add(new Metadata(12, MetaType1_14.OptPosition, null)); metadataPacket.write(Types1_14.METADATA_LIST, metadataList); metadataPacket.send(Protocol1_14To1_13_2.class); @@ -219,11 +221,13 @@ public class EntityPackets { @Override public void handle(PacketWrapper wrapper) throws Exception { EntityTracker tracker = wrapper.user().get(EntityTracker.class); - tracker.setSleeping(wrapper.get(Type.VAR_INT, 0), true); + int entityId = wrapper.get(Type.VAR_INT, 0); + tracker.setSleeping(entityId, true); Position position = wrapper.read(Type.POSITION); List metadataList = new LinkedList<>(); metadataList.add(new Metadata(12, MetaType1_14.OptPosition, position)); + metadataList.add(new Metadata(6, MetaType1_14.Pose, MetadataRewriter.recalculatePlayerPose(entityId, tracker))); wrapper.write(Types1_14.METADATA_LIST, metadataList); } }); From 6d8a763f4c3205e415e7f854ac610e89668e9c8c Mon Sep 17 00:00:00 2001 From: creeper123123321 Date: Sat, 27 Apr 2019 17:39:45 -0300 Subject: [PATCH 16/26] Don't send pose to the client entity --- .../MetadataRewriter.java | 20 ++++++++++--------- .../packets/EntityPackets.java | 8 ++++++-- .../packets/WorldPackets.java | 4 +++- .../storage/EntityTracker.java | 4 ++++ 4 files changed, 24 insertions(+), 12 deletions(-) diff --git a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_14to1_13_2/MetadataRewriter.java b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_14to1_13_2/MetadataRewriter.java index a66cc1ab4..52899f59b 100644 --- a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_14to1_13_2/MetadataRewriter.java +++ b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_14to1_13_2/MetadataRewriter.java @@ -54,15 +54,17 @@ public class MetadataRewriter { } if (type.isOrHasParent(Entity1_14Types.EntityType.PLAYER)) { - if (metadata.getId() == 0) { - byte flags = ((Number) metadata.getValue()).byteValue(); - // Mojang overrides the client-side pose updater, see OtherPlayerEntity#updateSize - tracker.setEntityFlags(entityId, flags); - } else if (metadata.getId() == 7) { - tracker.setRiptide(entityId, (((Number) metadata.getValue()).byteValue() & 0x4) != 0); - } - if (metadata.getId() == 0 || metadata.getId() == 7) { - metadatas.add(new Metadata(6, MetaType1_14.Pose, recalculatePlayerPose(entityId, tracker))); + if (entityId != tracker.getClientEntityId()) { + if (metadata.getId() == 0) { + byte flags = ((Number) metadata.getValue()).byteValue(); + // Mojang overrides the client-side pose updater, see OtherPlayerEntity#updateSize + tracker.setEntityFlags(entityId, flags); + } else if (metadata.getId() == 7) { + tracker.setRiptide(entityId, (((Number) metadata.getValue()).byteValue() & 0x4) != 0); + } + if (metadata.getId() == 0 || metadata.getId() == 7) { + metadatas.add(new Metadata(6, MetaType1_14.Pose, recalculatePlayerPose(entityId, tracker))); + } } } else if (type.isOrHasParent(Entity1_14Types.EntityType.ZOMBIE)) { if (metadata.getId() == 16) { diff --git a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_14to1_13_2/packets/EntityPackets.java b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_14to1_13_2/packets/EntityPackets.java index b47710a93..537455bdb 100644 --- a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_14to1_13_2/packets/EntityPackets.java +++ b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_14to1_13_2/packets/EntityPackets.java @@ -202,7 +202,9 @@ public class EntityPackets { PacketWrapper metadataPacket = wrapper.create(0x43); metadataPacket.write(Type.VAR_INT, entityId); List metadataList = new LinkedList<>(); - metadataList.add(new Metadata(6, MetaType1_14.Pose, MetadataRewriter.recalculatePlayerPose(entityId, tracker))); + if (tracker.getClientEntityId() != entityId) { + metadataList.add(new Metadata(6, MetaType1_14.Pose, MetadataRewriter.recalculatePlayerPose(entityId, tracker))); + } metadataList.add(new Metadata(12, MetaType1_14.OptPosition, null)); metadataPacket.write(Types1_14.METADATA_LIST, metadataList); metadataPacket.send(Protocol1_14To1_13_2.class); @@ -227,7 +229,9 @@ public class EntityPackets { Position position = wrapper.read(Type.POSITION); List metadataList = new LinkedList<>(); metadataList.add(new Metadata(12, MetaType1_14.OptPosition, position)); - metadataList.add(new Metadata(6, MetaType1_14.Pose, MetadataRewriter.recalculatePlayerPose(entityId, tracker))); + if (tracker.getClientEntityId() != entityId) { + metadataList.add(new Metadata(6, MetaType1_14.Pose, MetadataRewriter.recalculatePlayerPose(entityId, tracker))); + } wrapper.write(Types1_14.METADATA_LIST, metadataList); } }); diff --git a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_14to1_13_2/packets/WorldPackets.java b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_14to1_13_2/packets/WorldPackets.java index 731d171b6..9095651bf 100644 --- a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_14to1_13_2/packets/WorldPackets.java +++ b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_14to1_13_2/packets/WorldPackets.java @@ -302,7 +302,9 @@ public class WorldPackets { Entity1_14Types.EntityType entType = Entity1_14Types.EntityType.PLAYER; // Register Type ID - wrapper.user().get(EntityTracker.class).addEntity(entityId, entType); + EntityTracker tracker = wrapper.user().get(EntityTracker.class); + tracker.addEntity(entityId, entType); + tracker.setClientEntityId(entityId); } }); diff --git a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_14to1_13_2/storage/EntityTracker.java b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_14to1_13_2/storage/EntityTracker.java index ace6ba6e7..0c8768098 100644 --- a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_14to1_13_2/storage/EntityTracker.java +++ b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_14to1_13_2/storage/EntityTracker.java @@ -22,6 +22,9 @@ public class EntityTracker extends StoredObject implements ExternalJoinGameListe private int latestTradeWindowId; @Getter @Setter + private int clientEntityId; + @Getter + @Setter private boolean forceSendCenterChunk = true; @Getter @Setter @@ -92,6 +95,7 @@ public class EntityTracker extends StoredObject implements ExternalJoinGameListe @Override public void onExternalJoinGame(int playerEntityId) { + clientEntityId = playerEntityId; clientEntityTypes.put(playerEntityId, Entity1_14Types.EntityType.PLAYER); } From 73a62b81237aa42b1de60e52022cdc2de34ad294 Mon Sep 17 00:00:00 2001 From: KennyTV <28825609+KennyTV@users.noreply.github.com> Date: Mon, 29 Apr 2019 11:03:54 +0200 Subject: [PATCH 17/26] Fix paperpatch --- .../bukkit/listeners/protocol1_9to1_8/PaperPatch.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bukkit/src/main/java/us/myles/ViaVersion/bukkit/listeners/protocol1_9to1_8/PaperPatch.java b/bukkit/src/main/java/us/myles/ViaVersion/bukkit/listeners/protocol1_9to1_8/PaperPatch.java index e05c24e8d..51a1f9c22 100644 --- a/bukkit/src/main/java/us/myles/ViaVersion/bukkit/listeners/protocol1_9to1_8/PaperPatch.java +++ b/bukkit/src/main/java/us/myles/ViaVersion/bukkit/listeners/protocol1_9to1_8/PaperPatch.java @@ -26,7 +26,7 @@ public class PaperPatch extends ViaBukkitListener { public void onPlace(BlockPlaceEvent e) { if (isOnPipe(e.getPlayer())) { Location location = e.getPlayer().getLocation(); - Location diff = location.subtract(e.getBlock().getLocation().add(0.5D, 0, 0.5D)); + Location diff = location.clone().subtract(e.getBlock().getLocation().add(0.5D, 0, 0.5D)); Material block = e.getBlockPlaced().getType(); if (isPlacable(block)) { return; From 06340e593d4abf52749a466787a7252bb8c5243e Mon Sep 17 00:00:00 2001 From: Gerrygames Date: Mon, 29 Apr 2019 19:02:14 +0200 Subject: [PATCH 18/26] faster light writing --- .../packets/WorldPackets.java | 15 ++------------- 1 file changed, 2 insertions(+), 13 deletions(-) diff --git a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_14to1_13_2/packets/WorldPackets.java b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_14to1_13_2/packets/WorldPackets.java index 731d171b6..64a23abfb 100644 --- a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_14to1_13_2/packets/WorldPackets.java +++ b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_14to1_13_2/packets/WorldPackets.java @@ -3,7 +3,6 @@ package us.myles.ViaVersion.protocols.protocol1_14to1_13_2.packets; import com.github.steveice10.opennbt.tag.builtin.CompoundTag; import com.github.steveice10.opennbt.tag.builtin.LongArrayTag; import com.google.common.primitives.Bytes; -import io.netty.buffer.ByteBuf; import us.myles.ViaVersion.api.PacketWrapper; import us.myles.ViaVersion.api.entities.Entity1_14Types; import us.myles.ViaVersion.api.minecraft.BlockChangeRecord; @@ -189,21 +188,11 @@ public class WorldPackets { lightPacket.write(Type.VAR_INT, 0); //TODO for (ChunkSection section : chunk.getSections()) { if (section == null || !section.hasSkyLight()) continue; - ByteBuf buf = wrapper.user().getChannel().alloc().buffer(); - section.writeSkyLight(buf); - byte[] data = new byte[buf.readableBytes()]; - buf.readBytes(data); - buf.release(); - lightPacket.write(Type.BYTE_ARRAY, Bytes.asList(data).toArray(new Byte[0])); + lightPacket.write(Type.BYTE_ARRAY, Bytes.asList(section.getSkyLight()).toArray(new Byte[0])); } for (ChunkSection section : chunk.getSections()) { if (section == null) continue; - ByteBuf buf = wrapper.user().getChannel().alloc().buffer(); - section.writeBlockLight(buf); - byte[] data = new byte[buf.readableBytes()]; - buf.readBytes(data); - buf.release(); - lightPacket.write(Type.BYTE_ARRAY, Bytes.asList(data).toArray(new Byte[0])); + lightPacket.write(Type.BYTE_ARRAY, Bytes.asList(section.getBlockLight()).toArray(new Byte[0])); } EntityTracker entityTracker = wrapper.user().get(EntityTracker.class); From 7f6069e76bea2a6779d11f4dbea091f10845cfa1 Mon Sep 17 00:00:00 2001 From: creeper123123321 Date: Wed, 1 May 2019 11:15:48 -0300 Subject: [PATCH 19/26] Send light update before chunk packet, maybe better ByteBuf releasing, ignore cancel exception on UserConnection#send --- .../myles/ViaVersion/api/PacketWrapper.java | 22 ++- .../ViaVersion/api/data/UserConnection.java | 57 +++--- .../types/Chunk1_13Type.java | 25 +-- .../packets/WorldPackets.java | 6 +- .../types/Chunk1_14Type.java | 21 ++- .../types/Chunk1_9_3_4Type.java | 25 +-- .../types/Chunk1_9_1_2Type.java | 25 +-- .../packets/WorldPackets.java | 14 +- .../types/Chunk1_9to1_8Type.java | 25 +-- .../handlers/VelocityEncodeHandler.java | 7 +- .../handlers/VelocityServerHandler.java | 169 +++++++++--------- 11 files changed, 221 insertions(+), 175 deletions(-) diff --git a/common/src/main/java/us/myles/ViaVersion/api/PacketWrapper.java b/common/src/main/java/us/myles/ViaVersion/api/PacketWrapper.java index 7dfba2c7b..29f583064 100644 --- a/common/src/main/java/us/myles/ViaVersion/api/PacketWrapper.java +++ b/common/src/main/java/us/myles/ViaVersion/api/PacketWrapper.java @@ -10,10 +10,12 @@ import us.myles.ViaVersion.api.protocol.Protocol; import us.myles.ViaVersion.api.remapper.ValueCreator; import us.myles.ViaVersion.api.type.Type; import us.myles.ViaVersion.api.type.TypeConverter; +import us.myles.ViaVersion.exception.CancelException; import us.myles.ViaVersion.exception.InformativeException; import us.myles.ViaVersion.packets.Direction; import us.myles.ViaVersion.packets.State; import us.myles.ViaVersion.protocols.base.ProtocolInfo; +import us.myles.ViaVersion.util.PipelineUtil; import java.io.IOException; import java.util.ArrayList; @@ -298,8 +300,14 @@ public class PacketWrapper { */ public void send(Class packetProtocol, boolean skipCurrentPipeline, boolean currentThread) throws Exception { if (!isCancelled()) { - ByteBuf output = constructPacket(packetProtocol, skipCurrentPipeline, Direction.OUTGOING); - user().sendRawPacket(output, currentThread); + try { + ByteBuf output = constructPacket(packetProtocol, skipCurrentPipeline, Direction.OUTGOING); + user().sendRawPacket(output, currentThread); + } catch (Exception e) { + if (!PipelineUtil.containsCause(e, CancelException.class)) { + throw e; + } + } } } @@ -493,8 +501,14 @@ public class PacketWrapper { */ public void sendToServer(Class packetProtocol, boolean skipCurrentPipeline, boolean currentThread) throws Exception { if (!isCancelled()) { - ByteBuf output = constructPacket(packetProtocol, skipCurrentPipeline, Direction.INCOMING); - user().sendRawPacketToServer(output, currentThread); + try { + ByteBuf output = constructPacket(packetProtocol, skipCurrentPipeline, Direction.INCOMING); + user().sendRawPacketToServer(output, currentThread); + } catch (Exception e) { + if (!PipelineUtil.containsCause(e, CancelException.class)) { + throw e; + } + } } } diff --git a/common/src/main/java/us/myles/ViaVersion/api/data/UserConnection.java b/common/src/main/java/us/myles/ViaVersion/api/data/UserConnection.java index 566240937..1f5e85ee9 100644 --- a/common/src/main/java/us/myles/ViaVersion/api/data/UserConnection.java +++ b/common/src/main/java/us/myles/ViaVersion/api/data/UserConnection.java @@ -214,32 +214,41 @@ public class UserConnection { public void sendRawPacketToServer(final ByteBuf packet, boolean currentThread) { final ByteBuf buf = packet.alloc().buffer(); try { - Type.VAR_INT.write(buf, PacketWrapper.PASSTHROUGH_ID); - } catch (Exception e) { - // Should not happen - Via.getPlatform().getLogger().warning("Type.VAR_INT.write thrown an exception: " + e); - } - buf.writeBytes(packet); - packet.release(); - final ChannelHandlerContext context = PipelineUtil - .getPreviousContext(Via.getManager().getInjector().getDecoderName(), getChannel().pipeline()); - if (currentThread) { - if (context != null) { - context.fireChannelRead(buf); - } else { - getChannel().pipeline().fireChannelRead(buf); + try { + Type.VAR_INT.write(buf, PacketWrapper.PASSTHROUGH_ID); + } catch (Exception e) { + // Should not happen + Via.getPlatform().getLogger().warning("Type.VAR_INT.write thrown an exception: " + e); } - } else { - channel.eventLoop().submit(new Runnable() { - @Override - public void run() { - if (context != null) { - context.fireChannelRead(buf); - } else { - getChannel().pipeline().fireChannelRead(buf); - } + buf.writeBytes(packet); + final ChannelHandlerContext context = PipelineUtil + .getPreviousContext(Via.getManager().getInjector().getDecoderName(), getChannel().pipeline()); + if (currentThread) { + if (context != null) { + context.fireChannelRead(buf); + } else { + getChannel().pipeline().fireChannelRead(buf); } - }); + } else { + try { + channel.eventLoop().submit(new Runnable() { + @Override + public void run() { + if (context != null) { + context.fireChannelRead(buf); + } else { + getChannel().pipeline().fireChannelRead(buf); + } + } + }); + } catch (Throwable t) { + // Couldn't schedule + buf.release(); + throw t; + } + } + } finally { + packet.release(); } } diff --git a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13to1_12_2/types/Chunk1_13Type.java b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13to1_12_2/types/Chunk1_13Type.java index ac030d099..804d69531 100644 --- a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13to1_12_2/types/Chunk1_13Type.java +++ b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13to1_12_2/types/Chunk1_13Type.java @@ -81,20 +81,23 @@ public class Chunk1_13Type extends PartialType { Type.VAR_INT.write(output, chunk.getBitmask()); ByteBuf buf = output.alloc().buffer(); - for (int i = 0; i < 16; i++) { - ChunkSection section = chunk.getSections()[i]; - if (section == null) continue; // Section not set - Types1_13.CHUNK_SECTION.write(buf, section); - section.writeBlockLight(buf); + try { + for (int i = 0; i < 16; i++) { + ChunkSection section = chunk.getSections()[i]; + if (section == null) continue; // Section not set + Types1_13.CHUNK_SECTION.write(buf, section); + section.writeBlockLight(buf); - if (!section.hasSkyLight()) continue; // No sky light, we're done here. - section.writeSkyLight(buf); + if (!section.hasSkyLight()) continue; // No sky light, we're done here. + section.writeSkyLight(buf); + } + buf.readerIndex(0); + Type.VAR_INT.write(output, buf.readableBytes() + (chunk.isBiomeData() ? 256 * 4 : 0)); + output.writeBytes(buf); + } finally { + buf.release(); // release buffer } - buf.readerIndex(0); - Type.VAR_INT.write(output, buf.readableBytes() + (chunk.isBiomeData() ? 256 * 4 : 0)); - output.writeBytes(buf); - buf.release(); // release buffer // Write biome data if (chunk.isBiomeData()) { diff --git a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_14to1_13_2/packets/WorldPackets.java b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_14to1_13_2/packets/WorldPackets.java index ee73fabd5..43b1e9156 100644 --- a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_14to1_13_2/packets/WorldPackets.java +++ b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_14to1_13_2/packets/WorldPackets.java @@ -184,8 +184,8 @@ public class WorldPackets { } lightPacket.write(Type.VAR_INT, skyLightMask); lightPacket.write(Type.VAR_INT, blockLightMask); - lightPacket.write(Type.VAR_INT, 0); //TODO find out what these two bitmasks mean - lightPacket.write(Type.VAR_INT, 0); //TODO + lightPacket.write(Type.VAR_INT, 0); // empty sky light mask + lightPacket.write(Type.VAR_INT, 0); // empty block light mask for (ChunkSection section : chunk.getSections()) { if (section == null || !section.hasSkyLight()) continue; lightPacket.write(Type.BYTE_ARRAY, Bytes.asList(section.getSkyLight()).toArray(new Byte[0])); @@ -209,7 +209,7 @@ public class WorldPackets { entityTracker.setChunkCenterZ(chunk.getZ()); } - lightPacket.send(Protocol1_14To1_13_2.class, true, false); + lightPacket.send(Protocol1_14To1_13_2.class, true, true); } }); } diff --git a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_14to1_13_2/types/Chunk1_14Type.java b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_14to1_13_2/types/Chunk1_14Type.java index 6c50ee7f9..b9e4e4f2e 100644 --- a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_14to1_13_2/types/Chunk1_14Type.java +++ b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_14to1_13_2/types/Chunk1_14Type.java @@ -81,16 +81,19 @@ public class Chunk1_14Type extends PartialType { Type.NBT.write(output, chunk.getHeightMap()); ByteBuf buf = output.alloc().buffer(); - for (int i = 0; i < 16; i++) { - ChunkSection section = chunk.getSections()[i]; - if (section == null) continue; // Section not set - buf.writeShort(section.getNonAirBlocksCount()); - Types1_13.CHUNK_SECTION.write(buf, section); + try { + for (int i = 0; i < 16; i++) { + ChunkSection section = chunk.getSections()[i]; + if (section == null) continue; // Section not set + buf.writeShort(section.getNonAirBlocksCount()); + Types1_13.CHUNK_SECTION.write(buf, section); + } + buf.readerIndex(0); + Type.VAR_INT.write(output, buf.readableBytes() + (chunk.isBiomeData() ? 256 * 4 : 0)); + output.writeBytes(buf); + } finally { + buf.release(); // release buffer } - buf.readerIndex(0); - Type.VAR_INT.write(output, buf.readableBytes() + (chunk.isBiomeData() ? 256 * 4 : 0)); - output.writeBytes(buf); - buf.release(); // release buffer // Write biome data if (chunk.isBiomeData()) { diff --git a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_9_1_2to1_9_3_4/types/Chunk1_9_3_4Type.java b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_9_1_2to1_9_3_4/types/Chunk1_9_3_4Type.java index f0ea88144..2284b92ae 100644 --- a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_9_1_2to1_9_3_4/types/Chunk1_9_3_4Type.java +++ b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_9_1_2to1_9_3_4/types/Chunk1_9_3_4Type.java @@ -82,20 +82,23 @@ public class Chunk1_9_3_4Type extends PartialType { Type.VAR_INT.write(output, chunk.getBitmask()); ByteBuf buf = output.alloc().buffer(); - for (int i = 0; i < 16; i++) { - ChunkSection section = chunk.getSections()[i]; - if (section == null) continue; // Section not set - Types1_9.CHUNK_SECTION.write(buf, section); - section.writeBlockLight(buf); + try { + for (int i = 0; i < 16; i++) { + ChunkSection section = chunk.getSections()[i]; + if (section == null) continue; // Section not set + Types1_9.CHUNK_SECTION.write(buf, section); + section.writeBlockLight(buf); - if (!section.hasSkyLight()) continue; // No sky light, we're done here. - section.writeSkyLight(buf); + if (!section.hasSkyLight()) continue; // No sky light, we're done here. + section.writeSkyLight(buf); + } + buf.readerIndex(0); + Type.VAR_INT.write(output, buf.readableBytes() + (chunk.isBiomeData() ? 256 : 0)); + output.writeBytes(buf); + } finally { + buf.release(); // release buffer } - buf.readerIndex(0); - Type.VAR_INT.write(output, buf.readableBytes() + (chunk.isBiomeData() ? 256 : 0)); - output.writeBytes(buf); - buf.release(); // release buffer // Write biome data if (chunk.isBiomeData()) { diff --git a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_9_3to1_9_1_2/types/Chunk1_9_1_2Type.java b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_9_3to1_9_1_2/types/Chunk1_9_1_2Type.java index 9dcc6e5e6..1a0e05951 100644 --- a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_9_3to1_9_1_2/types/Chunk1_9_1_2Type.java +++ b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_9_3to1_9_1_2/types/Chunk1_9_1_2Type.java @@ -78,20 +78,23 @@ public class Chunk1_9_1_2Type extends PartialType { Type.VAR_INT.write(output, chunk.getBitmask()); ByteBuf buf = output.alloc().buffer(); - for (int i = 0; i < 16; i++) { - ChunkSection section = chunk.getSections()[i]; - if (section == null) continue; // Section not set - Types1_9.CHUNK_SECTION.write(buf, section); - section.writeBlockLight(buf); + try { + for (int i = 0; i < 16; i++) { + ChunkSection section = chunk.getSections()[i]; + if (section == null) continue; // Section not set + Types1_9.CHUNK_SECTION.write(buf, section); + section.writeBlockLight(buf); - if (!section.hasSkyLight()) continue; // No sky light, we're done here. - section.writeSkyLight(buf); + if (!section.hasSkyLight()) continue; // No sky light, we're done here. + section.writeSkyLight(buf); + } + buf.readerIndex(0); + Type.VAR_INT.write(output, buf.readableBytes() + (chunk.isBiomeData() ? 256 : 0)); + output.writeBytes(buf); + } finally { + buf.release(); // release buffer } - buf.readerIndex(0); - Type.VAR_INT.write(output, buf.readableBytes() + (chunk.isBiomeData() ? 256 : 0)); - output.writeBytes(buf); - buf.release(); // release buffer // Write biome data if (chunk.isBiomeData()) { diff --git a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_9to1_8/packets/WorldPackets.java b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_9to1_8/packets/WorldPackets.java index 2ced7a240..9fcc90631 100644 --- a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_9to1_8/packets/WorldPackets.java +++ b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_9to1_8/packets/WorldPackets.java @@ -17,7 +17,6 @@ import us.myles.ViaVersion.api.type.Type; import us.myles.ViaVersion.packets.State; import us.myles.ViaVersion.protocols.protocol1_9to1_8.ItemRewriter; import us.myles.ViaVersion.protocols.protocol1_9to1_8.Protocol1_9To1_8; -import us.myles.ViaVersion.api.minecraft.chunks.Chunk1_8; import us.myles.ViaVersion.protocols.protocol1_9to1_8.providers.BulkChunkTranslatorProvider; import us.myles.ViaVersion.protocols.protocol1_9to1_8.providers.CommandBlockProvider; import us.myles.ViaVersion.protocols.protocol1_9to1_8.sounds.Effect; @@ -163,11 +162,14 @@ public class WorldPackets { PacketWrapper output = (PacketWrapper) obj; ByteBuf buffer = wrapper.user().getChannel().alloc().buffer(); - output.setId(-1); // -1 for no writing of id - output.writeToBuffer(buffer); - PacketWrapper chunkPacket = new PacketWrapper(0x21, buffer, wrapper.user()); - chunkPacket.send(Protocol1_9To1_8.class, false, true); - buffer.release(); + try { + output.setId(-1); // -1 for no writing of id + output.writeToBuffer(buffer); + PacketWrapper chunkPacket = new PacketWrapper(0x21, buffer, wrapper.user()); + chunkPacket.send(Protocol1_9To1_8.class, false, true); + } finally { + buffer.release(); + } } } }); diff --git a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_9to1_8/types/Chunk1_9to1_8Type.java b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_9to1_8/types/Chunk1_9to1_8Type.java index 86f8ef97f..d76541bb7 100644 --- a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_9to1_8/types/Chunk1_9to1_8Type.java +++ b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_9to1_8/types/Chunk1_9to1_8Type.java @@ -141,20 +141,23 @@ public class Chunk1_9to1_8Type extends PartialType { Type.VAR_INT.write(output, chunk.getBitmask()); ByteBuf buf = output.alloc().buffer(); - for (int i = 0; i < SECTION_COUNT; i++) { - ChunkSection section = chunk.getSections()[i]; - if (section == null) continue; // Section not set - Types1_9.CHUNK_SECTION.write(buf, section); - section.writeBlockLight(buf); + try { + for (int i = 0; i < SECTION_COUNT; i++) { + ChunkSection section = chunk.getSections()[i]; + if (section == null) continue; // Section not set + Types1_9.CHUNK_SECTION.write(buf, section); + section.writeBlockLight(buf); - if (!section.hasSkyLight()) continue; // No sky light, we're done here. - section.writeSkyLight(buf); + if (!section.hasSkyLight()) continue; // No sky light, we're done here. + section.writeSkyLight(buf); + } + buf.readerIndex(0); + Type.VAR_INT.write(output, buf.readableBytes() + (chunk.hasBiomeData() ? 256 : 0)); + output.writeBytes(buf); + } finally { + buf.release(); // release buffer } - buf.readerIndex(0); - Type.VAR_INT.write(output, buf.readableBytes() + (chunk.hasBiomeData() ? 256 : 0)); - output.writeBytes(buf); - buf.release(); // release buffer // Write biome data if (chunk.hasBiomeData()) { diff --git a/velocity/src/main/java/us/myles/ViaVersion/velocity/handlers/VelocityEncodeHandler.java b/velocity/src/main/java/us/myles/ViaVersion/velocity/handlers/VelocityEncodeHandler.java index 2ec4e2525..eed1d02f3 100644 --- a/velocity/src/main/java/us/myles/ViaVersion/velocity/handlers/VelocityEncodeHandler.java +++ b/velocity/src/main/java/us/myles/ViaVersion/velocity/handlers/VelocityEncodeHandler.java @@ -77,8 +77,11 @@ public class VelocityEncodeHandler extends MessageToMessageEncoder { if (needsCompress) { ByteBuf old = bytebuf; bytebuf = ctx.alloc().buffer(); - PipelineUtil.callEncode((MessageToByteEncoder) ctx.pipeline().get("compression-encoder"), ctx, old, bytebuf); - old.release(); + try { + PipelineUtil.callEncode((MessageToByteEncoder) ctx.pipeline().get("compression-encoder"), ctx, old, bytebuf); + } finally { + old.release(); + } } out.add(bytebuf); } diff --git a/velocity/src/main/java/us/myles/ViaVersion/velocity/handlers/VelocityServerHandler.java b/velocity/src/main/java/us/myles/ViaVersion/velocity/handlers/VelocityServerHandler.java index 35f85d042..39fbc44da 100644 --- a/velocity/src/main/java/us/myles/ViaVersion/velocity/handlers/VelocityServerHandler.java +++ b/velocity/src/main/java/us/myles/ViaVersion/velocity/handlers/VelocityServerHandler.java @@ -100,99 +100,102 @@ public class VelocityServerHandler { user.getVelocityLock().writeLock().lock(); - VelocityStorage storage = user.get(VelocityStorage.class); + try { + VelocityStorage storage = user.get(VelocityStorage.class); - if (e.getServer() != null) { - if (!e.getServer().getServerInfo().getName().equals(storage.getCurrentServer())) { - String serverName = e.getServer().getServerInfo().getName(); + if (e.getServer() != null) { + if (!e.getServer().getServerInfo().getName().equals(storage.getCurrentServer())) { + String serverName = e.getServer().getServerInfo().getName(); - storage.setCurrentServer(serverName); + storage.setCurrentServer(serverName); - int protocolId = ProtocolDetectorService.getProtocolId(serverName); + int protocolId = ProtocolDetectorService.getProtocolId(serverName); - if (protocolId <= ProtocolVersion.MINECRAFT_1_8.getProtocol()) { // 1.8 doesn't have BossBar packet - if (storage.getBossbar() != null) { - for (UUID uuid : storage.getBossbar()) { - PacketWrapper wrapper = new PacketWrapper(0x0C, null, user); - wrapper.write(Type.UUID, uuid); - wrapper.write(Type.VAR_INT, 1); // remove - wrapper.send(Protocol1_9To1_8.class, true, true); - } - storage.getBossbar().clear(); - } - } - - ProtocolInfo info = user.get(ProtocolInfo.class); - int previousServerProtocol = info.getServerProtocolVersion(); - - // Refresh the pipes - List> protocols = ProtocolRegistry.getProtocolPath(info.getProtocolVersion(), protocolId); - ProtocolPipeline pipeline = user.get(ProtocolInfo.class).getPipeline(); - user.clearStoredObjects(); - pipeline.cleanPipes(); - if (protocols == null) { - // TODO Check Bungee Supported Protocols? *shrugs* - protocolId = info.getProtocolVersion(); - } else { - for (Pair prot : protocols) { - pipeline.add(prot.getValue()); - } - } - - info.setServerProtocolVersion(protocolId); - // Add version-specific base Protocol - pipeline.add(ProtocolRegistry.getBaseProtocol(protocolId)); - - // Workaround 1.13 server change - Object sessionHandler = ReflectionUtil.invoke( - getMinecraftConnection.invoke(e.getPlayer()), - "getSessionHandler" - ); - - if (clientPlaySessionHandler.isInstance(sessionHandler)) { // It may be InitialConnectSessionHandler on the first server connection - Set knownChannels = (Set) getKnownChannels.invoke(sessionHandler); - if (previousServerProtocol != -1) { - int id1_13 = ProtocolVersion.MINECRAFT_1_13.getProtocol(); - if (previousServerProtocol < id1_13 && protocolId >= id1_13) { - ArrayList newChannels = new ArrayList<>(); - for (String oldChannel : knownChannels) { - String transformed = InventoryPackets.getNewPluginChannelId(oldChannel); - if (transformed != null) { - newChannels.add(transformed); - } + if (protocolId <= ProtocolVersion.MINECRAFT_1_8.getProtocol()) { // 1.8 doesn't have BossBar packet + if (storage.getBossbar() != null) { + for (UUID uuid : storage.getBossbar()) { + PacketWrapper wrapper = new PacketWrapper(0x0C, null, user); + wrapper.write(Type.UUID, uuid); + wrapper.write(Type.VAR_INT, 1); // remove + wrapper.send(Protocol1_9To1_8.class, true, true); } - knownChannels.clear(); - knownChannels.addAll(newChannels); - } else if (previousServerProtocol >= id1_13 && protocolId < id1_13) { - ArrayList newChannels = new ArrayList<>(); - for (String oldChannel : knownChannels) { - String transformed = InventoryPackets.getOldPluginChannelId(oldChannel); - if (transformed != null) { - newChannels.add(transformed); - } - } - knownChannels.clear(); - knownChannels.addAll(newChannels); + storage.getBossbar().clear(); } } + + ProtocolInfo info = user.get(ProtocolInfo.class); + int previousServerProtocol = info.getServerProtocolVersion(); + + // Refresh the pipes + List> protocols = ProtocolRegistry.getProtocolPath(info.getProtocolVersion(), protocolId); + ProtocolPipeline pipeline = user.get(ProtocolInfo.class).getPipeline(); + user.clearStoredObjects(); + pipeline.cleanPipes(); + if (protocols == null) { + // TODO Check Bungee Supported Protocols? *shrugs* + protocolId = info.getProtocolVersion(); + } else { + for (Pair prot : protocols) { + pipeline.add(prot.getValue()); + } + } + + info.setServerProtocolVersion(protocolId); + // Add version-specific base Protocol + pipeline.add(ProtocolRegistry.getBaseProtocol(protocolId)); + + // Workaround 1.13 server change + Object sessionHandler = ReflectionUtil.invoke( + getMinecraftConnection.invoke(e.getPlayer()), + "getSessionHandler" + ); + + if (clientPlaySessionHandler.isInstance(sessionHandler)) { // It may be InitialConnectSessionHandler on the first server connection + Set knownChannels = (Set) getKnownChannels.invoke(sessionHandler); + if (previousServerProtocol != -1) { + int id1_13 = ProtocolVersion.MINECRAFT_1_13.getProtocol(); + if (previousServerProtocol < id1_13 && protocolId >= id1_13) { + ArrayList newChannels = new ArrayList<>(); + for (String oldChannel : knownChannels) { + String transformed = InventoryPackets.getNewPluginChannelId(oldChannel); + if (transformed != null) { + newChannels.add(transformed); + } + } + knownChannels.clear(); + knownChannels.addAll(newChannels); + } else if (previousServerProtocol >= id1_13 && protocolId < id1_13) { + ArrayList newChannels = new ArrayList<>(); + for (String oldChannel : knownChannels) { + String transformed = InventoryPackets.getOldPluginChannelId(oldChannel); + if (transformed != null) { + newChannels.add(transformed); + } + } + knownChannels.clear(); + knownChannels.addAll(newChannels); + } + } + } + + user.put(info); + user.put(storage); + + user.setActive(protocols != null); + + // Init all protocols TODO check if this can get moved up to the previous for loop, and doesn't require the pipeline to already exist. + for (Protocol protocol : pipeline.pipes()) { + protocol.init(user); + } + + Object connection = getMinecraftConnection.invoke(e.getPlayer()); + ProtocolVersion version = (ProtocolVersion) getNextProtocolVersion.invoke(connection); + setProtocolVersion.invoke(connection, version); } - - user.put(info); - user.put(storage); - - user.setActive(protocols != null); - - // Init all protocols TODO check if this can get moved up to the previous for loop, and doesn't require the pipeline to already exist. - for (Protocol protocol : pipeline.pipes()) { - protocol.init(user); - } - - Object connection = getMinecraftConnection.invoke(e.getPlayer()); - ProtocolVersion version = (ProtocolVersion) getNextProtocolVersion.invoke(connection); - setProtocolVersion.invoke(connection, version); } + } finally { + user.getVelocityLock().writeLock().unlock(); } - user.getVelocityLock().writeLock().unlock(); } } } From 6b58d862486beb4bbf672b7d61d75a016aab00b9 Mon Sep 17 00:00:00 2001 From: creeper123123321 Date: Wed, 1 May 2019 11:31:36 -0300 Subject: [PATCH 20/26] Make PipelineUtil.containsCause check if the instance is of the class type --- .../java/us/myles/ViaVersion/util/PipelineUtil.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/common/src/main/java/us/myles/ViaVersion/util/PipelineUtil.java b/common/src/main/java/us/myles/ViaVersion/util/PipelineUtil.java index 6be8ac0b8..bf5f63cb2 100644 --- a/common/src/main/java/us/myles/ViaVersion/util/PipelineUtil.java +++ b/common/src/main/java/us/myles/ViaVersion/util/PipelineUtil.java @@ -6,7 +6,6 @@ import io.netty.channel.ChannelPipeline; import io.netty.handler.codec.ByteToMessageDecoder; import io.netty.handler.codec.MessageToByteEncoder; import io.netty.handler.codec.MessageToMessageDecoder; -import io.netty.handler.codec.MessageToMessageEncoder; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; @@ -90,14 +89,15 @@ public class PipelineUtil { * * @param t The throwable * @param c The exception to look for - * @return True if the stack trace contained it as its cause. + * @return True if the stack trace contained it as its cause or if t is an instance of c. */ public static boolean containsCause(Throwable t, Class c) { - while (t != null) { - t = t.getCause(); - if (t != null) + do { + if (t != null) { if (c.isAssignableFrom(t.getClass())) return true; - } + t = t.getCause(); + } + } while (t != null); return false; } From ad12866bf4f81b85831e4371301056ba8c9cf4b5 Mon Sep 17 00:00:00 2001 From: creeper123123321 Date: Wed, 1 May 2019 12:52:42 -0300 Subject: [PATCH 21/26] Send set view distance on server change - not tested --- .../protocol1_14to1_13_2/storage/EntityTracker.java | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_14to1_13_2/storage/EntityTracker.java b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_14to1_13_2/storage/EntityTracker.java index 0c8768098..1cd3e2dc6 100644 --- a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_14to1_13_2/storage/EntityTracker.java +++ b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_14to1_13_2/storage/EntityTracker.java @@ -3,10 +3,14 @@ package us.myles.ViaVersion.protocols.protocol1_14to1_13_2.storage; import com.google.common.base.Optional; import lombok.Getter; import lombok.Setter; +import us.myles.ViaVersion.api.PacketWrapper; import us.myles.ViaVersion.api.data.ExternalJoinGameListener; import us.myles.ViaVersion.api.data.StoredObject; import us.myles.ViaVersion.api.data.UserConnection; import us.myles.ViaVersion.api.entities.Entity1_14Types; +import us.myles.ViaVersion.api.type.Type; +import us.myles.ViaVersion.protocols.protocol1_14to1_13_2.Protocol1_14To1_13_2; +import us.myles.ViaVersion.protocols.protocol1_14to1_13_2.packets.WorldPackets; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; @@ -97,6 +101,13 @@ public class EntityTracker extends StoredObject implements ExternalJoinGameListe public void onExternalJoinGame(int playerEntityId) { clientEntityId = playerEntityId; clientEntityTypes.put(playerEntityId, Entity1_14Types.EntityType.PLAYER); + PacketWrapper setViewDistance = new PacketWrapper(0x41, null, getUser()); + setViewDistance.write(Type.VAR_INT, WorldPackets.SERVERSIDE_VIEW_DISTANCE); + try { + setViewDistance.send(Protocol1_14To1_13_2.class, true, true); + } catch (Exception e) { + e.printStackTrace(); + } } public byte getEntityFlags(int player) { From e1b06d387230ee2a60a780985934700ead850c17 Mon Sep 17 00:00:00 2001 From: creeper123123321 Date: Wed, 1 May 2019 16:37:17 -0300 Subject: [PATCH 22/26] Add some needed tags --- .../Protocol1_14To1_13_2.java | 37 ++++++++++++++++++- 1 file changed, 35 insertions(+), 2 deletions(-) diff --git a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_14to1_13_2/Protocol1_14To1_13_2.java b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_14to1_13_2/Protocol1_14To1_13_2.java index 5db69490f..47dc71764 100644 --- a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_14to1_13_2/Protocol1_14To1_13_2.java +++ b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_14to1_13_2/Protocol1_14To1_13_2.java @@ -148,7 +148,7 @@ public class Protocol1_14To1_13_2 extends Protocol { @Override public void handle(PacketWrapper wrapper) throws Exception { int blockTagsSize = wrapper.read(Type.VAR_INT); - wrapper.write(Type.VAR_INT, blockTagsSize + 3); // block tags + wrapper.write(Type.VAR_INT, blockTagsSize + 5); // block tags for (int i = 0; i < blockTagsSize; i++) { wrapper.passthrough(Type.STRING); Integer[] blockIds = wrapper.passthrough(Type.VAR_INT_ARRAY); @@ -169,8 +169,36 @@ public class Protocol1_14To1_13_2 extends Protocol { wrapper.write(Type.VAR_INT_ARRAY, new Integer[]{ getNewBlockId(150) }); + // Fences and walls tags - used for block connections + wrapper.write(Type.STRING, "minecraft:fences"); + wrapper.write(Type.VAR_INT_ARRAY, new Integer[]{ + 216, + 217, + 218, + 219, + 220, + 221, + 227 + }); + wrapper.write(Type.STRING, "minecraft:walls"); + wrapper.write(Type.VAR_INT_ARRAY, new Integer[]{ + 245, + 246, + 247, + 248, + 249, + 250, + 251, + 252, + 253, + 254, + 255, + 256, + 257, + 258 + }); int itemTagsSize = wrapper.read(Type.VAR_INT); - wrapper.write(Type.VAR_INT, itemTagsSize + 1); // item tags + wrapper.write(Type.VAR_INT, itemTagsSize + 2); // item tags for (int i = 0; i < itemTagsSize; i++) { wrapper.passthrough(Type.STRING); Integer[] itemIds = wrapper.passthrough(Type.VAR_INT_ARRAY); @@ -183,6 +211,11 @@ public class Protocol1_14To1_13_2 extends Protocol { wrapper.write(Type.VAR_INT_ARRAY, new Integer[]{ InventoryPackets.getNewItemId(541) }); + // Arrows tag (used by bow) + wrapper.write(Type.STRING, "minecraft:arrows"); + wrapper.write(Type.VAR_INT_ARRAY, new Integer[]{ + 526, 825, 826 + }); int fluidTagsSize = wrapper.passthrough(Type.VAR_INT); // fluid tags for (int i = 0; i < fluidTagsSize; i++) { wrapper.passthrough(Type.STRING); From e249ea1f0a4b084e88f2d545e14a72019f9e0a2e Mon Sep 17 00:00:00 2001 From: creeper123123321 Date: Wed, 1 May 2019 16:54:09 -0300 Subject: [PATCH 23/26] fix tag ids - not tested --- .../Protocol1_14To1_13_2.java | 29 +++++-------------- 1 file changed, 8 insertions(+), 21 deletions(-) diff --git a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_14to1_13_2/Protocol1_14To1_13_2.java b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_14to1_13_2/Protocol1_14To1_13_2.java index 47dc71764..d572f45ea 100644 --- a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_14to1_13_2/Protocol1_14To1_13_2.java +++ b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_14to1_13_2/Protocol1_14To1_13_2.java @@ -172,30 +172,17 @@ public class Protocol1_14To1_13_2 extends Protocol { // Fences and walls tags - used for block connections wrapper.write(Type.STRING, "minecraft:fences"); wrapper.write(Type.VAR_INT_ARRAY, new Integer[]{ - 216, - 217, - 218, - 219, - 220, - 221, - 227 + 189, + 248, + 472, + 473, + 474, + 475 }); wrapper.write(Type.STRING, "minecraft:walls"); wrapper.write(Type.VAR_INT_ARRAY, new Integer[]{ - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258 + 271, + 272, }); int itemTagsSize = wrapper.read(Type.VAR_INT); wrapper.write(Type.VAR_INT, itemTagsSize + 2); // item tags From 5a2c047e7a4b3d25294510be5428adb9bdc8024f Mon Sep 17 00:00:00 2001 From: creeper123123321 Date: Sun, 5 May 2019 14:16:24 -0300 Subject: [PATCH 24/26] Register tabcompletethread once - fixes #1316 --- .../protocol1_13to1_12_2/Protocol1_13To1_12_2.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13to1_12_2/Protocol1_13To1_12_2.java b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13to1_12_2/Protocol1_13To1_12_2.java index 3c9d405af..3aac71e72 100644 --- a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13to1_12_2/Protocol1_13To1_12_2.java +++ b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13to1_12_2/Protocol1_13To1_12_2.java @@ -1144,15 +1144,15 @@ public class Protocol1_13To1_12_2 extends Protocol { userConnection.put(new BlockConnectionStorage(userConnection)); } } - if (Via.getConfig().get1_13TabCompleteDelay() > 0) { - Via.getPlatform().runRepeatingSync(new TabCompleteThread(), 1L); - } } @Override protected void register(ViaProviders providers) { providers.register(BlockEntityProvider.class, new BlockEntityProvider()); providers.register(PaintingProvider.class, new PaintingProvider()); + if (Via.getConfig().get1_13TabCompleteDelay() > 0) { + Via.getPlatform().runRepeatingSync(new TabCompleteThread(), 1L); + } } private int getNewSoundID(final int oldID) { From 46f9967dbaed9e2a2e518c283fc3edd6c2f479d1 Mon Sep 17 00:00:00 2001 From: KennyTV Date: Tue, 7 May 2019 11:48:57 +0200 Subject: [PATCH 25/26] Update text usage for latest Velocity build --- velocity/pom.xml | 2 +- .../src/main/java/us/myles/ViaVersion/VelocityPlugin.java | 8 ++++---- .../velocity/command/VelocityCommandSender.java | 4 ++-- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/velocity/pom.xml b/velocity/pom.xml index a001fcfa9..cade95e88 100644 --- a/velocity/pom.xml +++ b/velocity/pom.xml @@ -54,7 +54,7 @@ com.velocitypowered velocity-api - 1.0-SNAPSHOT + 1.0.0-SNAPSHOT provided diff --git a/velocity/src/main/java/us/myles/ViaVersion/VelocityPlugin.java b/velocity/src/main/java/us/myles/ViaVersion/VelocityPlugin.java index 94b131740..44c7ca459 100644 --- a/velocity/src/main/java/us/myles/ViaVersion/VelocityPlugin.java +++ b/velocity/src/main/java/us/myles/ViaVersion/VelocityPlugin.java @@ -11,7 +11,7 @@ import com.velocitypowered.api.plugin.annotation.DataDirectory; import com.velocitypowered.api.proxy.Player; import com.velocitypowered.api.proxy.ProxyServer; import lombok.Getter; -import net.kyori.text.serializer.ComponentSerializers; +import net.kyori.text.serializer.gson.GsonComponentSerializer; import net.md_5.bungee.api.chat.TextComponent; import net.md_5.bungee.chat.ComponentSerializer; import org.slf4j.Logger; @@ -148,7 +148,7 @@ public class VelocityPlugin implements ViaPlatform { @Override public void sendMessage(UUID uuid, String message) { PROXY.getPlayer(uuid).ifPresent(it -> it.sendMessage( - ComponentSerializers.JSON.deserialize( + GsonComponentSerializer.INSTANCE.deserialize( ComponentSerializer.toString(TextComponent.fromLegacyText(message)) // Fixes links ) )); @@ -158,8 +158,8 @@ public class VelocityPlugin implements ViaPlatform { public boolean kickPlayer(UUID uuid, String message) { return PROXY.getPlayer(uuid).map(it -> { it.disconnect( - ComponentSerializers.JSON.deserialize( - ComponentSerializer.toString(TextComponent.fromLegacyText(message)) // ComponentSerializers.LEGACY is deprecated + GsonComponentSerializer.INSTANCE.deserialize( + ComponentSerializer.toString(TextComponent.fromLegacyText(message)) ) ); return true; diff --git a/velocity/src/main/java/us/myles/ViaVersion/velocity/command/VelocityCommandSender.java b/velocity/src/main/java/us/myles/ViaVersion/velocity/command/VelocityCommandSender.java index 1a61f8b5c..0abdf161b 100644 --- a/velocity/src/main/java/us/myles/ViaVersion/velocity/command/VelocityCommandSender.java +++ b/velocity/src/main/java/us/myles/ViaVersion/velocity/command/VelocityCommandSender.java @@ -3,7 +3,7 @@ package us.myles.ViaVersion.velocity.command; import com.velocitypowered.api.command.CommandSource; import com.velocitypowered.api.proxy.Player; import lombok.AllArgsConstructor; -import net.kyori.text.serializer.ComponentSerializers; +import net.kyori.text.serializer.gson.GsonComponentSerializer; import net.md_5.bungee.api.chat.TextComponent; import net.md_5.bungee.chat.ComponentSerializer; import us.myles.ViaVersion.api.command.ViaCommandSender; @@ -22,7 +22,7 @@ public class VelocityCommandSender implements ViaCommandSender { @Override public void sendMessage(String msg) { source.sendMessage( - ComponentSerializers.JSON.deserialize( + GsonComponentSerializer.INSTANCE.deserialize( ComponentSerializer.toString(TextComponent.fromLegacyText(msg)) // Fixes links ) ); From 3b932bd6b3f59b0d4f31d0352d157d3e094065d0 Mon Sep 17 00:00:00 2001 From: Gerrygames Date: Tue, 7 May 2019 18:19:34 +0200 Subject: [PATCH 26/26] 1.14.1 pre1 --- bukkit/pom.xml | 2 +- bungee/pom.xml | 2 +- common/pom.xml | 2 +- .../api/protocol/ProtocolRegistry.java | 2 + .../api/protocol/ProtocolVersion.java | 2 + .../MetadataRewriter.java | 33 ++++++ .../Protocol1_14_1To1_14.java | 19 ++++ .../packets/EntityPackets.java | 101 ++++++++++++++++++ .../storage/EntityTracker.java | 45 ++++++++ jar/pom.xml | 2 +- pom.xml | 2 +- sponge-legacy/pom.xml | 2 +- sponge/pom.xml | 2 +- velocity/pom.xml | 2 +- 14 files changed, 210 insertions(+), 8 deletions(-) create mode 100644 common/src/main/java/us/myles/ViaVersion/protocols/protocol1_14_1to1_14/MetadataRewriter.java create mode 100644 common/src/main/java/us/myles/ViaVersion/protocols/protocol1_14_1to1_14/Protocol1_14_1To1_14.java create mode 100644 common/src/main/java/us/myles/ViaVersion/protocols/protocol1_14_1to1_14/packets/EntityPackets.java create mode 100644 common/src/main/java/us/myles/ViaVersion/protocols/protocol1_14_1to1_14/storage/EntityTracker.java diff --git a/bukkit/pom.xml b/bukkit/pom.xml index cfae64176..07f87bfb2 100644 --- a/bukkit/pom.xml +++ b/bukkit/pom.xml @@ -5,7 +5,7 @@ viaversion-parent us.myles - 2.0.2-SNAPSHOT + 2.1.0-1.14.1-pre1 4.0.0 diff --git a/bungee/pom.xml b/bungee/pom.xml index 5a9fdd1fd..d195808c6 100644 --- a/bungee/pom.xml +++ b/bungee/pom.xml @@ -5,7 +5,7 @@ viaversion-parent us.myles - 2.0.2-SNAPSHOT + 2.1.0-1.14.1-pre1 4.0.0 diff --git a/common/pom.xml b/common/pom.xml index d55c461bf..0d150ef17 100644 --- a/common/pom.xml +++ b/common/pom.xml @@ -5,7 +5,7 @@ viaversion-parent us.myles - 2.0.2-SNAPSHOT + 2.1.0-1.14.1-pre1 4.0.0 diff --git a/common/src/main/java/us/myles/ViaVersion/api/protocol/ProtocolRegistry.java b/common/src/main/java/us/myles/ViaVersion/api/protocol/ProtocolRegistry.java index c77885625..a56806bc3 100644 --- a/common/src/main/java/us/myles/ViaVersion/api/protocol/ProtocolRegistry.java +++ b/common/src/main/java/us/myles/ViaVersion/api/protocol/ProtocolRegistry.java @@ -15,6 +15,7 @@ import us.myles.ViaVersion.protocols.protocol1_12_2to1_12_1.Protocol1_12_2To1_12 import us.myles.ViaVersion.protocols.protocol1_12to1_11_1.Protocol1_12To1_11_1; import us.myles.ViaVersion.protocols.protocol1_13_2to1_13_1.Protocol1_13_2To1_13_1; import us.myles.ViaVersion.protocols.protocol1_13to1_12_2.Protocol1_13To1_12_2; +import us.myles.ViaVersion.protocols.protocol1_14_1to1_14.Protocol1_14_1To1_14; import us.myles.ViaVersion.protocols.protocol1_14to1_13_2.Protocol1_14To1_13_2; import us.myles.ViaVersion.protocols.protocol1_9_1_2to1_9_3_4.Protocol1_9_1_2To1_9_3_4; import us.myles.ViaVersion.protocols.protocol1_9_1to1_9.Protocol1_9_1To1_9; @@ -62,6 +63,7 @@ public class ProtocolRegistry { registerProtocol(new Protocol1_13_2To1_13_1(), Arrays.asList(ProtocolVersion.v1_13_2.getId()), ProtocolVersion.v1_13_1.getId()); registerProtocol(new Protocol1_14To1_13_2(), Arrays.asList(ProtocolVersion.v1_14.getId()), ProtocolVersion.v1_13_2.getId()); + registerProtocol(new Protocol1_14_1To1_14(), Arrays.asList(ProtocolVersion.v1_14_1.getId()), ProtocolVersion.v1_14.getId()); } /** diff --git a/common/src/main/java/us/myles/ViaVersion/api/protocol/ProtocolVersion.java b/common/src/main/java/us/myles/ViaVersion/api/protocol/ProtocolVersion.java index e43721e4b..5242a42f4 100644 --- a/common/src/main/java/us/myles/ViaVersion/api/protocol/ProtocolVersion.java +++ b/common/src/main/java/us/myles/ViaVersion/api/protocol/ProtocolVersion.java @@ -36,6 +36,7 @@ public class ProtocolVersion { public static final ProtocolVersion v1_13_1; public static final ProtocolVersion v1_13_2; public static final ProtocolVersion v1_14; + public static final ProtocolVersion v1_14_1; public static final ProtocolVersion unknown; private final int id; @@ -68,6 +69,7 @@ public class ProtocolVersion { register(v1_13_1 = new ProtocolVersion(401, "1.13.1")); register(v1_13_2 = new ProtocolVersion(404, "1.13.2")); register(v1_14 = new ProtocolVersion(477, "1.14")); + register(v1_14_1 = new ProtocolVersion(478, "1.14.1")); register(unknown = new ProtocolVersion(-1, "UNKNOWN")); } diff --git a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_14_1to1_14/MetadataRewriter.java b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_14_1to1_14/MetadataRewriter.java new file mode 100644 index 000000000..f8724e2d5 --- /dev/null +++ b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_14_1to1_14/MetadataRewriter.java @@ -0,0 +1,33 @@ +package us.myles.ViaVersion.protocols.protocol1_14_1to1_14; + +import us.myles.ViaVersion.api.Via; +import us.myles.ViaVersion.api.data.UserConnection; +import us.myles.ViaVersion.api.entities.Entity1_14Types; +import us.myles.ViaVersion.api.minecraft.metadata.Metadata; + +import java.util.ArrayList; +import java.util.List; + +public class MetadataRewriter { + + public static void handleMetadata(int entityId, Entity1_14Types.EntityType type, List metadatas, UserConnection connection) { + if (type == null) return; + + for (Metadata metadata : new ArrayList<>(metadatas)) { + try { + if (type.is(Entity1_14Types.EntityType.VILLAGER) || type.is(Entity1_14Types.EntityType.WANDERING_TRADER)) { + if (metadata.getId() >= 15) { + metadata.setId(metadata.getId() + 1); + } + } + } catch (Exception e) { + metadatas.remove(metadata); + if (!Via.getConfig().isSuppressMetadataErrors() || Via.getManager().isDebug()) { + Via.getPlatform().getLogger().warning("An error occurred with entity metadata handler"); + Via.getPlatform().getLogger().warning("Metadata: " + metadata); + e.printStackTrace(); + } + } + } + } +} diff --git a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_14_1to1_14/Protocol1_14_1To1_14.java b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_14_1to1_14/Protocol1_14_1To1_14.java new file mode 100644 index 000000000..77b4182ef --- /dev/null +++ b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_14_1to1_14/Protocol1_14_1To1_14.java @@ -0,0 +1,19 @@ +package us.myles.ViaVersion.protocols.protocol1_14_1to1_14; + +import us.myles.ViaVersion.api.data.UserConnection; +import us.myles.ViaVersion.api.protocol.Protocol; +import us.myles.ViaVersion.protocols.protocol1_14_1to1_14.packets.EntityPackets; +import us.myles.ViaVersion.protocols.protocol1_14_1to1_14.storage.EntityTracker; + +public class Protocol1_14_1To1_14 extends Protocol { + + @Override + protected void registerPackets() { + EntityPackets.register(this); + } + + @Override + public void init(UserConnection userConnection) { + userConnection.put(new EntityTracker(userConnection)); + } +} diff --git a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_14_1to1_14/packets/EntityPackets.java b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_14_1to1_14/packets/EntityPackets.java new file mode 100644 index 000000000..7d7373909 --- /dev/null +++ b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_14_1to1_14/packets/EntityPackets.java @@ -0,0 +1,101 @@ +package us.myles.ViaVersion.protocols.protocol1_14_1to1_14.packets; + +import com.google.common.base.Optional; +import us.myles.ViaVersion.api.PacketWrapper; +import us.myles.ViaVersion.api.entities.Entity1_14Types; +import us.myles.ViaVersion.api.protocol.Protocol; +import us.myles.ViaVersion.api.remapper.PacketHandler; +import us.myles.ViaVersion.api.remapper.PacketRemapper; +import us.myles.ViaVersion.api.type.Type; +import us.myles.ViaVersion.api.type.types.version.Types1_14; +import us.myles.ViaVersion.packets.State; +import us.myles.ViaVersion.protocols.protocol1_14_1to1_14.MetadataRewriter; +import us.myles.ViaVersion.protocols.protocol1_14_1to1_14.storage.EntityTracker; + +public class EntityPackets { + + public static void register(Protocol protocol) { + + // Spawn Mob + protocol.registerOutgoing(State.PLAY, 0x03, 0x03, new PacketRemapper() { + @Override + public void registerMap() { + map(Type.VAR_INT); // 0 - Entity ID + map(Type.UUID); // 1 - Entity UUID + map(Type.VAR_INT); // 2 - Entity Type + map(Type.DOUBLE); // 3 - X + map(Type.DOUBLE); // 4 - Y + map(Type.DOUBLE); // 5 - Z + map(Type.BYTE); // 6 - Yaw + map(Type.BYTE); // 7 - Pitch + map(Type.BYTE); // 8 - Head Pitch + map(Type.SHORT); // 9 - Velocity X + map(Type.SHORT); // 10 - Velocity Y + map(Type.SHORT); // 11 - Velocity Z + map(Types1_14.METADATA_LIST); // 12 - Metadata + + handler(new PacketHandler() { + @Override + public void handle(PacketWrapper wrapper) throws Exception { + int entityId = wrapper.get(Type.VAR_INT, 0); + int type = wrapper.get(Type.VAR_INT, 1); + + Entity1_14Types.EntityType entType = Entity1_14Types.getTypeFromId(type); + + // Register Type ID + wrapper.user().get(EntityTracker.class).addEntity(entityId, entType); + + MetadataRewriter.handleMetadata(entityId, entType, wrapper.get(Types1_14.METADATA_LIST, 0), wrapper.user()); + } + }); + } + }); + + // Spawn Player + protocol.registerOutgoing(State.PLAY, 0x05, 0x05, new PacketRemapper() { + @Override + public void registerMap() { + map(Type.VAR_INT); // 0 - Entity ID + map(Type.UUID); // 1 - Player UUID + map(Type.DOUBLE); // 2 - X + map(Type.DOUBLE); // 3 - Y + map(Type.DOUBLE); // 4 - Z + map(Type.BYTE); // 5 - Yaw + map(Type.BYTE); // 6 - Pitch + map(Types1_14.METADATA_LIST); // 7 - Metadata + + handler(new PacketHandler() { + @Override + public void handle(PacketWrapper wrapper) throws Exception { + int entityId = wrapper.get(Type.VAR_INT, 0); + + Entity1_14Types.EntityType entType = Entity1_14Types.EntityType.PLAYER; + + // Register Type ID + wrapper.user().get(EntityTracker.class).addEntity(entityId, entType); + MetadataRewriter.handleMetadata(entityId, entType, wrapper.get(Types1_14.METADATA_LIST, 0), wrapper.user()); + } + }); + } + }); + + // Entity Metadata + protocol.registerOutgoing(State.PLAY, 0x43, 0x43, new PacketRemapper() { + @Override + public void registerMap() { + map(Type.VAR_INT); // 0 - Entity ID + map(Types1_14.METADATA_LIST); // 1 - Metadata list + + handler(new PacketHandler() { + @Override + public void handle(PacketWrapper wrapper) throws Exception { + int entityId = wrapper.get(Type.VAR_INT, 0); + + Optional type = wrapper.user().get(EntityTracker.class).get(entityId); + MetadataRewriter.handleMetadata(entityId, type.orNull(), wrapper.get(Types1_14.METADATA_LIST, 0), wrapper.user()); + } + }); + } + }); + } +} diff --git a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_14_1to1_14/storage/EntityTracker.java b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_14_1to1_14/storage/EntityTracker.java new file mode 100644 index 000000000..c28f14b49 --- /dev/null +++ b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_14_1to1_14/storage/EntityTracker.java @@ -0,0 +1,45 @@ +package us.myles.ViaVersion.protocols.protocol1_14_1to1_14.storage; + +import com.google.common.base.Optional; +import lombok.Getter; +import lombok.Setter; +import us.myles.ViaVersion.api.data.ExternalJoinGameListener; +import us.myles.ViaVersion.api.data.StoredObject; +import us.myles.ViaVersion.api.data.UserConnection; +import us.myles.ViaVersion.api.entities.Entity1_14Types; + +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; + +public class EntityTracker extends StoredObject implements ExternalJoinGameListener { + private final Map clientEntityTypes = new ConcurrentHashMap<>(); + @Getter + @Setter + private int clientEntityId; + + public EntityTracker(UserConnection user) { + super(user); + } + + public void removeEntity(int entityId) { + clientEntityTypes.remove(entityId); + } + + public void addEntity(int entityId, Entity1_14Types.EntityType type) { + clientEntityTypes.put(entityId, type); + } + + public boolean has(int entityId) { + return clientEntityTypes.containsKey(entityId); + } + + public Optional get(int id) { + return Optional.fromNullable(clientEntityTypes.get(id)); + } + + @Override + public void onExternalJoinGame(int playerEntityId) { + clientEntityId = playerEntityId; + clientEntityTypes.put(playerEntityId, Entity1_14Types.EntityType.PLAYER); + } +} diff --git a/jar/pom.xml b/jar/pom.xml index b81450cc3..92bb42d6e 100644 --- a/jar/pom.xml +++ b/jar/pom.xml @@ -5,7 +5,7 @@ viaversion-parent us.myles - 2.0.2-SNAPSHOT + 2.1.0-1.14.1-pre1 4.0.0 viaversion-jar diff --git a/pom.xml b/pom.xml index ee74971f7..4cc08776d 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ us.myles viaversion-parent - 2.0.2-SNAPSHOT + 2.1.0-1.14.1-pre1 pom viaversion-parent diff --git a/sponge-legacy/pom.xml b/sponge-legacy/pom.xml index d983cc973..e9088a97b 100644 --- a/sponge-legacy/pom.xml +++ b/sponge-legacy/pom.xml @@ -5,7 +5,7 @@ viaversion-parent us.myles - 2.0.2-SNAPSHOT + 2.1.0-1.14.1-pre1 4.0.0 diff --git a/sponge/pom.xml b/sponge/pom.xml index aad9f0855..30d56ba3d 100644 --- a/sponge/pom.xml +++ b/sponge/pom.xml @@ -5,7 +5,7 @@ viaversion-parent us.myles - 2.0.2-SNAPSHOT + 2.1.0-1.14.1-pre1 4.0.0 diff --git a/velocity/pom.xml b/velocity/pom.xml index cade95e88..431910fbe 100644 --- a/velocity/pom.xml +++ b/velocity/pom.xml @@ -5,7 +5,7 @@ viaversion-parent us.myles - 2.0.2-SNAPSHOT + 2.1.0-1.14.1-pre1 4.0.0