21w10a (kind of)

This commit is contained in:
KennyTV 2021-03-10 17:55:50 +01:00
parent ea014656bc
commit f7afe84982
No known key found for this signature in database
GPG Key ID: 6BE3B555EBC5982B
13 changed files with 22303 additions and 22780 deletions

View File

@ -7,7 +7,7 @@ plugins {
allprojects {
group = "us.myles"
version = "3.3.0-21w08b"
version = "3.3.0-21w10a"
description = "Allow newer clients to join older server versions."
}

View File

@ -4,6 +4,7 @@ import com.google.common.base.Preconditions;
import io.netty.buffer.ByteBuf;
import io.netty.channel.ChannelFuture;
import us.myles.ViaVersion.api.data.UserConnection;
import us.myles.ViaVersion.api.protocol.PacketType;
import us.myles.ViaVersion.api.protocol.Protocol;
import us.myles.ViaVersion.api.remapper.ValueCreator;
import us.myles.ViaVersion.api.type.Type;
@ -396,6 +397,16 @@ public class PacketWrapper {
}
}
/**
* Create a new packet for the target of this packet.
*
* @param packetType packet type of the new packedt
* @return The newly created packet wrapper
*/
public PacketWrapper create(PacketType packetType) {
return new PacketWrapper(packetType.ordinal(), null, user());
}
/**
* Create a new packet for the target of this packet.
*

View File

@ -6,6 +6,7 @@ import java.util.Collections;
import java.util.List;
public abstract class ViaSubCommand {
/**
* Subcommand name
*

View File

@ -54,7 +54,7 @@ public class ProtocolVersion {
public static final ProtocolVersion v1_16_2 = register(751, "1.16.2");
public static final ProtocolVersion v1_16_3 = register(753, "1.16.3");
public static final ProtocolVersion v1_16_4 = register(754, "1.16.4/5", new VersionRange("1.16", 4, 5));
public static final ProtocolVersion v1_17 = register(755, 17, "1.17");
public static final ProtocolVersion v1_17 = register(755, 18, "1.17");
public static final ProtocolVersion unknown = register(-1, "UNKNOWN");
public static ProtocolVersion register(int version, String name) {

View File

@ -107,6 +107,30 @@ public class ItemRewriter {
});
}
public void registerClickWindow1_17(ServerboundPacketType packetType, Type<Item> type) {
protocol.registerIncoming(packetType, new PacketRemapper() {
@Override
public void registerMap() {
map(Type.UNSIGNED_BYTE); // Window Id
map(Type.SHORT); // Slot
map(Type.BYTE); // Button
map(Type.VAR_INT); // Mode
handler(wrapper -> {
// Affected items
int length = wrapper.passthrough(Type.VAR_INT);
for (int i = 0; i < length; i++) {
wrapper.passthrough(Type.SHORT); // Slot
toServer.rewrite(wrapper.passthrough(type));
}
// Carried item
toServer.rewrite(wrapper.passthrough(type));
});
}
});
}
public void registerSetCooldown(ClientboundPacketType packetType) {
protocol.registerOutgoing(packetType, new PacketRemapper() {
@Override

View File

@ -16,11 +16,11 @@ import us.myles.ViaVersion.api.storage.EntityTracker;
import us.myles.ViaVersion.api.type.Type;
import us.myles.ViaVersion.api.type.types.Particle;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Logger;
public abstract class MetadataRewriter {
private static final Metadata[] EMPTY_ARRAY = new Metadata[0];
private final Class<? extends EntityTracker> entityTrackerClass;
protected final Protocol protocol;
private Int2IntMap typeMapping;
@ -33,7 +33,7 @@ public abstract class MetadataRewriter {
public final void handleMetadata(int entityId, List<Metadata> metadatas, UserConnection connection) {
EntityType type = connection.get(entityTrackerClass).getEntity(entityId);
for (Metadata metadata : new ArrayList<>(metadatas)) {
for (Metadata metadata : metadatas.toArray(EMPTY_ARRAY)) {
try {
handleMetadata(entityId, type, metadata, metadatas, connection);
} catch (Exception e) {

View File

@ -80,7 +80,7 @@ public class WorldPackets {
List<BlockChangeRecord> sectionRecord = sectionRecords[chunkY];
if (sectionRecord == null) continue;
PacketWrapper newPacket = wrapper.create(ClientboundPackets1_16_2.MULTI_BLOCK_CHANGE.ordinal());
PacketWrapper newPacket = wrapper.create(ClientboundPackets1_16_2.MULTI_BLOCK_CHANGE);
newPacket.write(Type.LONG, chunkPosition | (chunkY & 0xFFFFFL));
newPacket.write(Type.BOOLEAN, false); // Ignore light updates
newPacket.write(Type.VAR_LONG_BLOCK_CHANGE_RECORD_ARRAY, sectionRecord.toArray(EMPTY_RECORDS));

View File

@ -23,88 +23,87 @@ public enum ClientboundPackets1_17 implements ClientboundPacketType {
CLEAR_TITLES, // 0x10
TAB_COMPLETE, // 0x11
DECLARE_COMMANDS, // 0x12
WINDOW_CONFIRMATION, // 0x13
CLOSE_WINDOW, // 0x14
WINDOW_ITEMS, // 0x15
WINDOW_PROPERTY, // 0x16
SET_SLOT, // 0x17
COOLDOWN, // 0x18
PLUGIN_MESSAGE, // 0x19
NAMED_SOUND, // 0x1A
DISCONNECT, // 0x1B
ENTITY_STATUS, // 0x1C
EXPLOSION, // 0x1D
UNLOAD_CHUNK, // 0x1E
GAME_EVENT, // 0x1F
OPEN_HORSE_WINDOW, // 0x20
WORLD_BORDER_INIT, // 0x21
KEEP_ALIVE, // 0x22
CHUNK_DATA, // 0x23
EFFECT, // 0x24
SPAWN_PARTICLE, // 0x25
UPDATE_LIGHT, // 0x26
JOIN_GAME, // 0x27
MAP_DATA, // 0x28
TRADE_LIST, // 0x29
ENTITY_POSITION, // 0x2A
ENTITY_POSITION_AND_ROTATION, // 0x2B
ENTITY_ROTATION, // 0x2C
VEHICLE_MOVE, // 0x2D
OPEN_BOOK, // 0x2E
OPEN_WINDOW, // 0x2F
OPEN_SIGN_EDITOR, // 0x30
CRAFT_RECIPE_RESPONSE, // 0x31
PLAYER_ABILITIES, // 0x32
COMBAT_END, // 0x33
COMBAT_ENTER, // 0x34
COMBAT_KILL, // 0x35
PLAYER_INFO, // 0x36
FACE_PLAYER, // 0x37
PLAYER_POSITION, // 0x38
UNLOCK_RECIPES, // 0x39
DESTROY_ENTITIES, // 0x3A
REMOVE_ENTITY_EFFECT, // 0x3B
RESOURCE_PACK, // 0x3C
RESPAWN, // 0x3D
ENTITY_HEAD_LOOK, // 0x3E
MULTI_BLOCK_CHANGE, // 0x3F
SELECT_ADVANCEMENTS_TAB, // 0x40
ACTIONBAR, // 0x41
WORLD_BORDER_CENTER, // 0x42
WORLD_BORDER_LERP_SIZE, // 0x43
WORLD_BORDER_SIZE, // 0x44
WORLD_BORDER_WARNING_DELAY, // 0x45
WORLD_BORDER_WARNING_DISTANCE, // 0x46
CAMERA, // 0x47
HELD_ITEM_CHANGE, // 0x48
UPDATE_VIEW_POSITION, // 0x49
UPDATE_VIEW_DISTANCE, // 0x4A
SPAWN_POSITION, // 0x4B
DISPLAY_SCOREBOARD, // 0x4C
ENTITY_METADATA, // 0x4D
ATTACH_ENTITY, // 0x4E
ENTITY_VELOCITY, // 0x4F
ENTITY_EQUIPMENT, // 0x50
SET_EXPERIENCE, // 0x51
UPDATE_HEALTH, // 0x52
SCOREBOARD_OBJECTIVE, // 0x53
SET_PASSENGERS, // 0x54
TEAMS, // 0x55
UPDATE_SCORE, // 0x56
TITLE_SUBTITLE, // 0x57
TIME_UPDATE, // 0x58
TITLE_TEXT, // 0x59
TITLE_TIMES, // 0x5A
ENTITY_SOUND, // 0x5B
SOUND, // 0x5C
STOP_SOUND, // 0x5D
TAB_LIST, // 0x5E
NBT_QUERY, // 0x5F
COLLECT_ITEM, // 0x60
ENTITY_TELEPORT, // 0x61
ADVANCEMENTS, // 0x62
ENTITY_PROPERTIES, // 0x63
ENTITY_EFFECT, // 0x64
DECLARE_RECIPES, // 0x65
TAGS, // 0x66
CLOSE_WINDOW, // 0x13
WINDOW_ITEMS, // 0x14
WINDOW_PROPERTY, // 0x15
SET_SLOT, // 0x16
COOLDOWN, // 0x17
PLUGIN_MESSAGE, // 0x18
NAMED_SOUND, // 0x19
DISCONNECT, // 0x1A
ENTITY_STATUS, // 0x1B
EXPLOSION, // 0x1C
UNLOAD_CHUNK, // 0x1D
GAME_EVENT, // 0x1E
OPEN_HORSE_WINDOW, // 0x1F
WORLD_BORDER_INIT, // 0x20
KEEP_ALIVE, // 0x21
CHUNK_DATA, // 0x22
EFFECT, // 0x23
SPAWN_PARTICLE, // 0x24
UPDATE_LIGHT, // 0x25
JOIN_GAME, // 0x26
MAP_DATA, // 0x27
TRADE_LIST, // 0x28
ENTITY_POSITION, // 0x29
ENTITY_POSITION_AND_ROTATION, // 0x2A
ENTITY_ROTATION, // 0x2B
VEHICLE_MOVE, // 0x2C
OPEN_BOOK, // 0x2D
OPEN_WINDOW, // 0x2E
OPEN_SIGN_EDITOR, // 0x2F
CRAFT_RECIPE_RESPONSE, // 0x30
PLAYER_ABILITIES, // 0x31
COMBAT_END, // 0x32
COMBAT_ENTER, // 0x33
COMBAT_KILL, // 0x34
PLAYER_INFO, // 0x35
FACE_PLAYER, // 0x36
PLAYER_POSITION, // 0x37
UNLOCK_RECIPES, // 0x38
DESTROY_ENTITIES, // 0x39
REMOVE_ENTITY_EFFECT, // 0x3A
RESOURCE_PACK, // 0x3B
RESPAWN, // 0x3C
ENTITY_HEAD_LOOK, // 0x3D
MULTI_BLOCK_CHANGE, // 0x3E
SELECT_ADVANCEMENTS_TAB, // 0x3F
ACTIONBAR, // 0x40
WORLD_BORDER_CENTER, // 0x41
WORLD_BORDER_LERP_SIZE, // 0x42
WORLD_BORDER_SIZE, // 0x43
WORLD_BORDER_WARNING_DELAY, // 0x44
WORLD_BORDER_WARNING_DISTANCE, // 0x45
CAMERA, // 0x46
HELD_ITEM_CHANGE, // 0x47
UPDATE_VIEW_POSITION, // 0x48
UPDATE_VIEW_DISTANCE, // 0x49
SPAWN_POSITION, // 0x4A
DISPLAY_SCOREBOARD, // 0x4B
ENTITY_METADATA, // 0x4C
ATTACH_ENTITY, // 0x4D
ENTITY_VELOCITY, // 0x4E
ENTITY_EQUIPMENT, // 0x4F
SET_EXPERIENCE, // 0x50
UPDATE_HEALTH, // 0x51
SCOREBOARD_OBJECTIVE, // 0x52
SET_PASSENGERS, // 0x53
TEAMS, // 0x54
UPDATE_SCORE, // 0x55
TITLE_SUBTITLE, // 0x56
TIME_UPDATE, // 0x57
TITLE_TEXT, // 0x58
TITLE_TIMES, // 0x59
ENTITY_SOUND, // 0x5A
SOUND, // 0x5B
STOP_SOUND, // 0x5C
TAB_LIST, // 0x5D
NBT_QUERY, // 0x5E
COLLECT_ITEM, // 0x5F
ENTITY_TELEPORT, // 0x60
ADVANCEMENTS, // 0x61
ENTITY_PROPERTIES, // 0x62
ENTITY_EFFECT, // 0x63
DECLARE_RECIPES, // 0x64
TAGS, // 0x65
}

View File

@ -21,14 +21,14 @@ import us.myles.ViaVersion.protocols.protocol1_17to1_16_4.packets.WorldPackets;
import us.myles.ViaVersion.protocols.protocol1_17to1_16_4.storage.BiomeStorage;
import us.myles.ViaVersion.protocols.protocol1_17to1_16_4.storage.EntityTracker1_17;
public class Protocol1_17To1_16_4 extends Protocol<ClientboundPackets1_16_2, ClientboundPackets1_17, ServerboundPackets1_16_2, ServerboundPackets1_16_2> {
public class Protocol1_17To1_16_4 extends Protocol<ClientboundPackets1_16_2, ClientboundPackets1_17, ServerboundPackets1_16_2, ServerboundPackets1_17> {
public static final MappingData MAPPINGS = new MappingData("1.16.2", "1.17", true);
private static final String[] NEW_GAME_EVENT_TAGS = {"minecraft:ignore_vibrations_sneaking", "minecraft:vibrations"};
private TagRewriter tagRewriter;
public Protocol1_17To1_16_4() {
super(ClientboundPackets1_16_2.class, ClientboundPackets1_17.class, ServerboundPackets1_16_2.class, ServerboundPackets1_16_2.class);
super(ClientboundPackets1_16_2.class, ClientboundPackets1_17.class, ServerboundPackets1_16_2.class, ServerboundPackets1_17.class);
}
@Override
@ -170,7 +170,7 @@ public class Protocol1_17To1_16_4 extends Protocol<ClientboundPackets1_16_2, Cli
}
});
registerIncoming(ServerboundPackets1_16_2.CLIENT_SETTINGS, new PacketRemapper() {
registerIncoming(ServerboundPackets1_17.CLIENT_SETTINGS, new PacketRemapper() {
@Override
public void registerMap() {
map(Type.STRING); // Locale
@ -190,11 +190,13 @@ public class Protocol1_17To1_16_4 extends Protocol<ClientboundPackets1_16_2, Cli
protected void onMappingDataLoaded() {
tagRewriter.addEmptyTags(RegistryType.ITEM, "minecraft:candles", "minecraft:ignored_by_piglin_babies", "minecraft:piglin_food", "minecraft:freeze_immune_wearables",
"minecraft:axolotl_tempt_items", "minecraft:occludes_vibration_signals",
"minecraft:diamond_ores", "minecraft:iron_ores", "minecraft:lapis_ores", "minecraft:redstone_ores");
"minecraft:diamond_ores", "minecraft:iron_ores", "minecraft:lapis_ores", "minecraft:redstone_ores",
"minecraft:coal_ores", "minecraft:copper_ores", "minecraft:emerald_ores");
tagRewriter.addEmptyTags(RegistryType.BLOCK, "minecraft:crystal_sound_blocks", "minecraft:candle_cakes", "minecraft:candles",
"minecraft:snow_step_sound_blocks", "minecraft:inside_step_sound_blocks", "minecraft:occludes_vibration_signals", "minecraft:dripstone_replaceable_blocks",
"minecraft:azalea_log_replaceable", "minecraft:cave_vines", "minecraft:lush_plants_replaceable", "minecraft:deepslate_ore_replaceables",
"minecraft:diamond_ores", "minecraft:iron_ores", "minecraft:lapis_ores", "minecraft:redstone_ores", "minecraft:stone_ore_replaceables");
"minecraft:cave_vines", "minecraft:lush_plants_replaceable", "minecraft:deepslate_ore_replaceables", "minecraft:lush_ground_replaceable",
"minecraft:diamond_ores", "minecraft:iron_ores", "minecraft:lapis_ores", "minecraft:redstone_ores", "minecraft:stone_ore_replaceables",
"minecraft:coal_ores", "minecraft:copper_ores", "minecraft:emerald_ores");
tagRewriter.addEmptyTags(RegistryType.ENTITY, "minecraft:powder_snow_walkable_mobs", "minecraft:axolotl_always_hostiles", "minecraft:axolotl_tempted_hostiles");
tagRewriter.addTag(RegistryType.BLOCK, "minecraft:cauldrons", 261);

View File

@ -0,0 +1,54 @@
package us.myles.ViaVersion.protocols.protocol1_17to1_16_4;
import us.myles.ViaVersion.api.protocol.ServerboundPacketType;
public enum ServerboundPackets1_17 implements ServerboundPacketType {
TELEPORT_CONFIRM, // 0x00
QUERY_BLOCK_NBT, // 0x01
SET_DIFFICULTY, // 0x02
CHAT_MESSAGE, // 0x03
CLIENT_STATUS, // 0x04
CLIENT_SETTINGS, // 0x05
TAB_COMPLETE, // 0x06
CLICK_WINDOW_BUTTON, // 0x07
CLICK_WINDOW, // 0x08
CLOSE_WINDOW, // 0x09
PLUGIN_MESSAGE, // 0x0A
EDIT_BOOK, // 0x0B
ENTITY_NBT_REQUEST, // 0x0C
INTERACT_ENTITY, // 0x0D
GENERATE_JIGSAW, // 0x0E
KEEP_ALIVE, // 0x0F
LOCK_DIFFICULTY, // 0x10
PLAYER_POSITION, // 0x11
PLAYER_POSITION_AND_ROTATION, // 0x12
PLAYER_ROTATION, // 0x13
PLAYER_MOVEMENT, // 0x14
VEHICLE_MOVE, // 0x15
STEER_BOAT, // 0x16
PICK_ITEM, // 0x17
CRAFT_RECIPE_REQUEST, // 0x18
PLAYER_ABILITIES, // 0x19
PLAYER_DIGGING, // 0x1A
ENTITY_ACTION, // 0x1B
STEER_VEHICLE, // 0x1C
RECIPE_BOOK_DATA, // 0x1D
SEEN_RECIPE, // 0x1E
RENAME_ITEM, // 0x1F
RESOURCE_PACK_STATUS, // 0x20
ADVANCEMENT_TAB, // 0x21
SELECT_TRADE, // 0x22
SET_BEACON_EFFECT, // 0x23
HELD_ITEM_CHANGE, // 0x24
UPDATE_COMMAND_BLOCK, // 0x25
UPDATE_COMMAND_BLOCK_MINECART, // 0x26
CREATIVE_INVENTORY_ACTION, // 0x27
UPDATE_JIGSAW_BLOCK, // 0x28
UPDATE_STRUCTURE_BLOCK, // 0x29
UPDATE_SIGN, // 0x2A
ANIMATION, // 0x2B
SPECTATE, // 0x2C
PLAYER_BLOCK_PLACEMENT, // 0x2D
USE_ITEM, // 0x2E
}

View File

@ -1,5 +1,6 @@
package us.myles.ViaVersion.protocols.protocol1_17to1_16_4.packets;
import us.myles.ViaVersion.api.PacketWrapper;
import us.myles.ViaVersion.api.minecraft.item.Item;
import us.myles.ViaVersion.api.remapper.PacketRemapper;
import us.myles.ViaVersion.api.rewriters.ItemRewriter;
@ -8,6 +9,7 @@ import us.myles.ViaVersion.protocols.protocol1_16_2to1_16_1.ClientboundPackets1_
import us.myles.ViaVersion.protocols.protocol1_16_2to1_16_1.ServerboundPackets1_16_2;
import us.myles.ViaVersion.protocols.protocol1_16to1_15_2.data.RecipeRewriter1_16;
import us.myles.ViaVersion.protocols.protocol1_17to1_16_4.Protocol1_17To1_16_4;
import us.myles.ViaVersion.protocols.protocol1_17to1_16_4.ServerboundPackets1_17;
public class InventoryPackets {
@ -24,15 +26,60 @@ public class InventoryPackets {
new RecipeRewriter1_16(protocol, InventoryPackets::toClient).registerDefaultHandler(ClientboundPackets1_16_2.DECLARE_RECIPES);
itemRewriter.registerClickWindow(ServerboundPackets1_16_2.CLICK_WINDOW, Type.FLAT_VAR_INT_ITEM);
itemRewriter.registerCreativeInvAction(ServerboundPackets1_16_2.CREATIVE_INVENTORY_ACTION, Type.FLAT_VAR_INT_ITEM);
itemRewriter.registerCreativeInvAction(ServerboundPackets1_17.CREATIVE_INVENTORY_ACTION, Type.FLAT_VAR_INT_ITEM);
protocol.registerIncoming(ServerboundPackets1_16_2.EDIT_BOOK, new PacketRemapper() {
protocol.registerIncoming(ServerboundPackets1_17.EDIT_BOOK, new PacketRemapper() {
@Override
public void registerMap() {
handler(wrapper -> InventoryPackets.toServer(wrapper.passthrough(Type.FLAT_VAR_INT_ITEM)));
}
});
// This will likely cause desync issues
protocol.registerIncoming(ServerboundPackets1_17.CLICK_WINDOW, new PacketRemapper() {
@Override
public void registerMap() {
map(Type.UNSIGNED_BYTE); // Window Id
map(Type.SHORT); // Slot
map(Type.BYTE); // Button
create(wrapper -> wrapper.write(Type.SHORT, (short) 0)); // Action id - doesn't matter, as the sent out confirmation packet will be cancelled
map(Type.VAR_INT); // Mode
handler(wrapper -> {
// Affected items - throw them away!
int length = wrapper.read(Type.VAR_INT);
for (int i = 0; i < length; i++) {
wrapper.read(Type.SHORT); // Slot
wrapper.read(Type.FLAT_VAR_INT_ITEM);
}
// Carried item
toServer(wrapper.passthrough(Type.FLAT_VAR_INT_ITEM));
});
}
});
//TODO fix drags not working at all, try to work against desync issues with keepalive abuise
protocol.registerOutgoing(ClientboundPackets1_16_2.WINDOW_CONFIRMATION, null, new PacketRemapper() {
@Override
public void registerMap() {
handler(wrapper -> {
// Confirmation packets were removed - just instantly respond with a confirmation back
short inventoryId = wrapper.read(Type.UNSIGNED_BYTE);
short confirmationId = wrapper.read(Type.SHORT);
boolean accepted = wrapper.read(Type.BOOLEAN);
if (!accepted) {
PacketWrapper packet = wrapper.create(ServerboundPackets1_16_2.WINDOW_CONFIRMATION);
packet.write(Type.UNSIGNED_BYTE, inventoryId);
packet.write(Type.SHORT, confirmationId);
packet.write(Type.BYTE, (byte) 1); // Accept
packet.sendToServer(Protocol1_17To1_16_4.class, true, true);
}
wrapper.cancel();
});
}
});
}
public static void toClient(Item item) {

View File

@ -53,327 +53,7 @@
"5146": "minecraft:water_cauldron[level=1]",
"5147": "minecraft:water_cauldron[level=2]",
"5148": "minecraft:water_cauldron[level=3]",
"9227": "minecraft:dirt_path",
"3381": "minecraft:oak_sign[lit=false,rotation=0,waterlogged=true]",
"3382": "minecraft:oak_sign[lit=false,rotation=0,waterlogged=false]",
"3383": "minecraft:oak_sign[lit=false,rotation=1,waterlogged=true]",
"3384": "minecraft:oak_sign[lit=false,rotation=1,waterlogged=false]",
"3385": "minecraft:oak_sign[lit=false,rotation=2,waterlogged=true]",
"3386": "minecraft:oak_sign[lit=false,rotation=2,waterlogged=false]",
"3387": "minecraft:oak_sign[lit=false,rotation=3,waterlogged=true]",
"3388": "minecraft:oak_sign[lit=false,rotation=3,waterlogged=false]",
"3389": "minecraft:oak_sign[lit=false,rotation=4,waterlogged=true]",
"3390": "minecraft:oak_sign[lit=false,rotation=4,waterlogged=false]",
"3391": "minecraft:oak_sign[lit=false,rotation=5,waterlogged=true]",
"3392": "minecraft:oak_sign[lit=false,rotation=5,waterlogged=false]",
"3393": "minecraft:oak_sign[lit=false,rotation=6,waterlogged=true]",
"3394": "minecraft:oak_sign[lit=false,rotation=6,waterlogged=false]",
"3395": "minecraft:oak_sign[lit=false,rotation=7,waterlogged=true]",
"3396": "minecraft:oak_sign[lit=false,rotation=7,waterlogged=false]",
"3397": "minecraft:oak_sign[lit=false,rotation=8,waterlogged=true]",
"3398": "minecraft:oak_sign[lit=false,rotation=8,waterlogged=false]",
"3399": "minecraft:oak_sign[lit=false,rotation=9,waterlogged=true]",
"3400": "minecraft:oak_sign[lit=false,rotation=9,waterlogged=false]",
"3401": "minecraft:oak_sign[lit=false,rotation=10,waterlogged=true]",
"3402": "minecraft:oak_sign[lit=false,rotation=10,waterlogged=false]",
"3403": "minecraft:oak_sign[lit=false,rotation=11,waterlogged=true]",
"3404": "minecraft:oak_sign[lit=false,rotation=11,waterlogged=false]",
"3405": "minecraft:oak_sign[lit=false,rotation=12,waterlogged=true]",
"3406": "minecraft:oak_sign[lit=false,rotation=12,waterlogged=false]",
"3407": "minecraft:oak_sign[lit=false,rotation=13,waterlogged=true]",
"3408": "minecraft:oak_sign[lit=false,rotation=13,waterlogged=false]",
"3409": "minecraft:oak_sign[lit=false,rotation=14,waterlogged=true]",
"3410": "minecraft:oak_sign[lit=false,rotation=14,waterlogged=false]",
"3411": "minecraft:oak_sign[lit=false,rotation=15,waterlogged=true]",
"3412": "minecraft:oak_sign[lit=false,rotation=15,waterlogged=false]",
"3413": "minecraft:spruce_sign[lit=false,rotation=0,waterlogged=true]",
"3414": "minecraft:spruce_sign[lit=false,rotation=0,waterlogged=false]",
"3415": "minecraft:spruce_sign[lit=false,rotation=1,waterlogged=true]",
"3416": "minecraft:spruce_sign[lit=false,rotation=1,waterlogged=false]",
"3417": "minecraft:spruce_sign[lit=false,rotation=2,waterlogged=true]",
"3418": "minecraft:spruce_sign[lit=false,rotation=2,waterlogged=false]",
"3419": "minecraft:spruce_sign[lit=false,rotation=3,waterlogged=true]",
"3420": "minecraft:spruce_sign[lit=false,rotation=3,waterlogged=false]",
"3421": "minecraft:spruce_sign[lit=false,rotation=4,waterlogged=true]",
"3422": "minecraft:spruce_sign[lit=false,rotation=4,waterlogged=false]",
"3423": "minecraft:spruce_sign[lit=false,rotation=5,waterlogged=true]",
"3424": "minecraft:spruce_sign[lit=false,rotation=5,waterlogged=false]",
"3425": "minecraft:spruce_sign[lit=false,rotation=6,waterlogged=true]",
"3426": "minecraft:spruce_sign[lit=false,rotation=6,waterlogged=false]",
"3427": "minecraft:spruce_sign[lit=false,rotation=7,waterlogged=true]",
"3428": "minecraft:spruce_sign[lit=false,rotation=7,waterlogged=false]",
"3429": "minecraft:spruce_sign[lit=false,rotation=8,waterlogged=true]",
"3430": "minecraft:spruce_sign[lit=false,rotation=8,waterlogged=false]",
"3431": "minecraft:spruce_sign[lit=false,rotation=9,waterlogged=true]",
"3432": "minecraft:spruce_sign[lit=false,rotation=9,waterlogged=false]",
"3433": "minecraft:spruce_sign[lit=false,rotation=10,waterlogged=true]",
"3434": "minecraft:spruce_sign[lit=false,rotation=10,waterlogged=false]",
"3435": "minecraft:spruce_sign[lit=false,rotation=11,waterlogged=true]",
"3436": "minecraft:spruce_sign[lit=false,rotation=11,waterlogged=false]",
"3437": "minecraft:spruce_sign[lit=false,rotation=12,waterlogged=true]",
"3438": "minecraft:spruce_sign[lit=false,rotation=12,waterlogged=false]",
"3439": "minecraft:spruce_sign[lit=false,rotation=13,waterlogged=true]",
"3440": "minecraft:spruce_sign[lit=false,rotation=13,waterlogged=false]",
"3441": "minecraft:spruce_sign[lit=false,rotation=14,waterlogged=true]",
"3442": "minecraft:spruce_sign[lit=false,rotation=14,waterlogged=false]",
"3443": "minecraft:spruce_sign[lit=false,rotation=15,waterlogged=true]",
"3444": "minecraft:spruce_sign[lit=false,rotation=15,waterlogged=false]",
"3445": "minecraft:birch_sign[lit=false,rotation=0,waterlogged=true]",
"3446": "minecraft:birch_sign[lit=false,rotation=0,waterlogged=false]",
"3447": "minecraft:birch_sign[lit=false,rotation=1,waterlogged=true]",
"3448": "minecraft:birch_sign[lit=false,rotation=1,waterlogged=false]",
"3449": "minecraft:birch_sign[lit=false,rotation=2,waterlogged=true]",
"3450": "minecraft:birch_sign[lit=false,rotation=2,waterlogged=false]",
"3451": "minecraft:birch_sign[lit=false,rotation=3,waterlogged=true]",
"3452": "minecraft:birch_sign[lit=false,rotation=3,waterlogged=false]",
"3453": "minecraft:birch_sign[lit=false,rotation=4,waterlogged=true]",
"3454": "minecraft:birch_sign[lit=false,rotation=4,waterlogged=false]",
"3455": "minecraft:birch_sign[lit=false,rotation=5,waterlogged=true]",
"3456": "minecraft:birch_sign[lit=false,rotation=5,waterlogged=false]",
"3457": "minecraft:birch_sign[lit=false,rotation=6,waterlogged=true]",
"3458": "minecraft:birch_sign[lit=false,rotation=6,waterlogged=false]",
"3459": "minecraft:birch_sign[lit=false,rotation=7,waterlogged=true]",
"3460": "minecraft:birch_sign[lit=false,rotation=7,waterlogged=false]",
"3461": "minecraft:birch_sign[lit=false,rotation=8,waterlogged=true]",
"3462": "minecraft:birch_sign[lit=false,rotation=8,waterlogged=false]",
"3463": "minecraft:birch_sign[lit=false,rotation=9,waterlogged=true]",
"3464": "minecraft:birch_sign[lit=false,rotation=9,waterlogged=false]",
"3465": "minecraft:birch_sign[lit=false,rotation=10,waterlogged=true]",
"3466": "minecraft:birch_sign[lit=false,rotation=10,waterlogged=false]",
"3467": "minecraft:birch_sign[lit=false,rotation=11,waterlogged=true]",
"3468": "minecraft:birch_sign[lit=false,rotation=11,waterlogged=false]",
"3469": "minecraft:birch_sign[lit=false,rotation=12,waterlogged=true]",
"3470": "minecraft:birch_sign[lit=false,rotation=12,waterlogged=false]",
"3471": "minecraft:birch_sign[lit=false,rotation=13,waterlogged=true]",
"3472": "minecraft:birch_sign[lit=false,rotation=13,waterlogged=false]",
"3473": "minecraft:birch_sign[lit=false,rotation=14,waterlogged=true]",
"3474": "minecraft:birch_sign[lit=false,rotation=14,waterlogged=false]",
"3475": "minecraft:birch_sign[lit=false,rotation=15,waterlogged=true]",
"3476": "minecraft:birch_sign[lit=false,rotation=15,waterlogged=false]",
"3477": "minecraft:acacia_sign[lit=false,rotation=0,waterlogged=true]",
"3478": "minecraft:acacia_sign[lit=false,rotation=0,waterlogged=false]",
"3479": "minecraft:acacia_sign[lit=false,rotation=1,waterlogged=true]",
"3480": "minecraft:acacia_sign[lit=false,rotation=1,waterlogged=false]",
"3481": "minecraft:acacia_sign[lit=false,rotation=2,waterlogged=true]",
"3482": "minecraft:acacia_sign[lit=false,rotation=2,waterlogged=false]",
"3483": "minecraft:acacia_sign[lit=false,rotation=3,waterlogged=true]",
"3484": "minecraft:acacia_sign[lit=false,rotation=3,waterlogged=false]",
"3485": "minecraft:acacia_sign[lit=false,rotation=4,waterlogged=true]",
"3486": "minecraft:acacia_sign[lit=false,rotation=4,waterlogged=false]",
"3487": "minecraft:acacia_sign[lit=false,rotation=5,waterlogged=true]",
"3488": "minecraft:acacia_sign[lit=false,rotation=5,waterlogged=false]",
"3489": "minecraft:acacia_sign[lit=false,rotation=6,waterlogged=true]",
"3490": "minecraft:acacia_sign[lit=false,rotation=6,waterlogged=false]",
"3491": "minecraft:acacia_sign[lit=false,rotation=7,waterlogged=true]",
"3492": "minecraft:acacia_sign[lit=false,rotation=7,waterlogged=false]",
"3493": "minecraft:acacia_sign[lit=false,rotation=8,waterlogged=true]",
"3494": "minecraft:acacia_sign[lit=false,rotation=8,waterlogged=false]",
"3495": "minecraft:acacia_sign[lit=false,rotation=9,waterlogged=true]",
"3496": "minecraft:acacia_sign[lit=false,rotation=9,waterlogged=false]",
"3497": "minecraft:acacia_sign[lit=false,rotation=10,waterlogged=true]",
"3498": "minecraft:acacia_sign[lit=false,rotation=10,waterlogged=false]",
"3499": "minecraft:acacia_sign[lit=false,rotation=11,waterlogged=true]",
"3500": "minecraft:acacia_sign[lit=false,rotation=11,waterlogged=false]",
"3501": "minecraft:acacia_sign[lit=false,rotation=12,waterlogged=true]",
"3502": "minecraft:acacia_sign[lit=false,rotation=12,waterlogged=false]",
"3503": "minecraft:acacia_sign[lit=false,rotation=13,waterlogged=true]",
"3504": "minecraft:acacia_sign[lit=false,rotation=13,waterlogged=false]",
"3505": "minecraft:acacia_sign[lit=false,rotation=14,waterlogged=true]",
"3506": "minecraft:acacia_sign[lit=false,rotation=14,waterlogged=false]",
"3507": "minecraft:acacia_sign[lit=false,rotation=15,waterlogged=true]",
"3508": "minecraft:acacia_sign[lit=false,rotation=15,waterlogged=false]",
"3509": "minecraft:jungle_sign[lit=false,rotation=0,waterlogged=true]",
"3510": "minecraft:jungle_sign[lit=false,rotation=0,waterlogged=false]",
"3511": "minecraft:jungle_sign[lit=false,rotation=1,waterlogged=true]",
"3512": "minecraft:jungle_sign[lit=false,rotation=1,waterlogged=false]",
"3513": "minecraft:jungle_sign[lit=false,rotation=2,waterlogged=true]",
"3514": "minecraft:jungle_sign[lit=false,rotation=2,waterlogged=false]",
"3515": "minecraft:jungle_sign[lit=false,rotation=3,waterlogged=true]",
"3516": "minecraft:jungle_sign[lit=false,rotation=3,waterlogged=false]",
"3517": "minecraft:jungle_sign[lit=false,rotation=4,waterlogged=true]",
"3518": "minecraft:jungle_sign[lit=false,rotation=4,waterlogged=false]",
"3519": "minecraft:jungle_sign[lit=false,rotation=5,waterlogged=true]",
"3520": "minecraft:jungle_sign[lit=false,rotation=5,waterlogged=false]",
"3521": "minecraft:jungle_sign[lit=false,rotation=6,waterlogged=true]",
"3522": "minecraft:jungle_sign[lit=false,rotation=6,waterlogged=false]",
"3523": "minecraft:jungle_sign[lit=false,rotation=7,waterlogged=true]",
"3524": "minecraft:jungle_sign[lit=false,rotation=7,waterlogged=false]",
"3525": "minecraft:jungle_sign[lit=false,rotation=8,waterlogged=true]",
"3526": "minecraft:jungle_sign[lit=false,rotation=8,waterlogged=false]",
"3527": "minecraft:jungle_sign[lit=false,rotation=9,waterlogged=true]",
"3528": "minecraft:jungle_sign[lit=false,rotation=9,waterlogged=false]",
"3529": "minecraft:jungle_sign[lit=false,rotation=10,waterlogged=true]",
"3530": "minecraft:jungle_sign[lit=false,rotation=10,waterlogged=false]",
"3531": "minecraft:jungle_sign[lit=false,rotation=11,waterlogged=true]",
"3532": "minecraft:jungle_sign[lit=false,rotation=11,waterlogged=false]",
"3533": "minecraft:jungle_sign[lit=false,rotation=12,waterlogged=true]",
"3534": "minecraft:jungle_sign[lit=false,rotation=12,waterlogged=false]",
"3535": "minecraft:jungle_sign[lit=false,rotation=13,waterlogged=true]",
"3536": "minecraft:jungle_sign[lit=false,rotation=13,waterlogged=false]",
"3537": "minecraft:jungle_sign[lit=false,rotation=14,waterlogged=true]",
"3538": "minecraft:jungle_sign[lit=false,rotation=14,waterlogged=false]",
"3539": "minecraft:jungle_sign[lit=false,rotation=15,waterlogged=true]",
"3540": "minecraft:jungle_sign[lit=false,rotation=15,waterlogged=false]",
"3541": "minecraft:dark_oak_sign[lit=false,rotation=0,waterlogged=true]",
"3542": "minecraft:dark_oak_sign[lit=false,rotation=0,waterlogged=false]",
"3543": "minecraft:dark_oak_sign[lit=false,rotation=1,waterlogged=true]",
"3544": "minecraft:dark_oak_sign[lit=false,rotation=1,waterlogged=false]",
"3545": "minecraft:dark_oak_sign[lit=false,rotation=2,waterlogged=true]",
"3546": "minecraft:dark_oak_sign[lit=false,rotation=2,waterlogged=false]",
"3547": "minecraft:dark_oak_sign[lit=false,rotation=3,waterlogged=true]",
"3548": "minecraft:dark_oak_sign[lit=false,rotation=3,waterlogged=false]",
"3549": "minecraft:dark_oak_sign[lit=false,rotation=4,waterlogged=true]",
"3550": "minecraft:dark_oak_sign[lit=false,rotation=4,waterlogged=false]",
"3551": "minecraft:dark_oak_sign[lit=false,rotation=5,waterlogged=true]",
"3552": "minecraft:dark_oak_sign[lit=false,rotation=5,waterlogged=false]",
"3553": "minecraft:dark_oak_sign[lit=false,rotation=6,waterlogged=true]",
"3554": "minecraft:dark_oak_sign[lit=false,rotation=6,waterlogged=false]",
"3555": "minecraft:dark_oak_sign[lit=false,rotation=7,waterlogged=true]",
"3556": "minecraft:dark_oak_sign[lit=false,rotation=7,waterlogged=false]",
"3557": "minecraft:dark_oak_sign[lit=false,rotation=8,waterlogged=true]",
"3558": "minecraft:dark_oak_sign[lit=false,rotation=8,waterlogged=false]",
"3559": "minecraft:dark_oak_sign[lit=false,rotation=9,waterlogged=true]",
"3560": "minecraft:dark_oak_sign[lit=false,rotation=9,waterlogged=false]",
"3561": "minecraft:dark_oak_sign[lit=false,rotation=10,waterlogged=true]",
"3562": "minecraft:dark_oak_sign[lit=false,rotation=10,waterlogged=false]",
"3563": "minecraft:dark_oak_sign[lit=false,rotation=11,waterlogged=true]",
"3564": "minecraft:dark_oak_sign[lit=false,rotation=11,waterlogged=false]",
"3565": "minecraft:dark_oak_sign[lit=false,rotation=12,waterlogged=true]",
"3566": "minecraft:dark_oak_sign[lit=false,rotation=12,waterlogged=false]",
"3567": "minecraft:dark_oak_sign[lit=false,rotation=13,waterlogged=true]",
"3568": "minecraft:dark_oak_sign[lit=false,rotation=13,waterlogged=false]",
"3569": "minecraft:dark_oak_sign[lit=false,rotation=14,waterlogged=true]",
"3570": "minecraft:dark_oak_sign[lit=false,rotation=14,waterlogged=false]",
"3571": "minecraft:dark_oak_sign[lit=false,rotation=15,waterlogged=true]",
"3572": "minecraft:dark_oak_sign[lit=false,rotation=15,waterlogged=false]",
"3735": "minecraft:oak_wall_sign[facing=north,lit=false,waterlogged=true]",
"3736": "minecraft:oak_wall_sign[facing=north,lit=false,waterlogged=false]",
"3737": "minecraft:oak_wall_sign[facing=south,lit=false,waterlogged=true]",
"3738": "minecraft:oak_wall_sign[facing=south,lit=false,waterlogged=false]",
"3739": "minecraft:oak_wall_sign[facing=west,lit=false,waterlogged=true]",
"3740": "minecraft:oak_wall_sign[facing=west,lit=false,waterlogged=false]",
"3741": "minecraft:oak_wall_sign[facing=east,lit=false,waterlogged=true]",
"3742": "minecraft:oak_wall_sign[facing=east,lit=false,waterlogged=false]",
"3743": "minecraft:spruce_wall_sign[facing=north,lit=false,waterlogged=true]",
"3744": "minecraft:spruce_wall_sign[facing=north,lit=false,waterlogged=false]",
"3745": "minecraft:spruce_wall_sign[facing=south,lit=false,waterlogged=true]",
"3746": "minecraft:spruce_wall_sign[facing=south,lit=false,waterlogged=false]",
"3747": "minecraft:spruce_wall_sign[facing=west,lit=false,waterlogged=true]",
"3748": "minecraft:spruce_wall_sign[facing=west,lit=false,waterlogged=false]",
"3749": "minecraft:spruce_wall_sign[facing=east,lit=false,waterlogged=true]",
"3750": "minecraft:spruce_wall_sign[facing=east,lit=false,waterlogged=false]",
"3751": "minecraft:birch_wall_sign[facing=north,lit=false,waterlogged=true]",
"3752": "minecraft:birch_wall_sign[facing=north,lit=false,waterlogged=false]",
"3753": "minecraft:birch_wall_sign[facing=south,lit=false,waterlogged=true]",
"3754": "minecraft:birch_wall_sign[facing=south,lit=false,waterlogged=false]",
"3755": "minecraft:birch_wall_sign[facing=west,lit=false,waterlogged=true]",
"3756": "minecraft:birch_wall_sign[facing=west,lit=false,waterlogged=false]",
"3757": "minecraft:birch_wall_sign[facing=east,lit=false,waterlogged=true]",
"3758": "minecraft:birch_wall_sign[facing=east,lit=false,waterlogged=false]",
"3759": "minecraft:acacia_wall_sign[facing=north,lit=false,waterlogged=true]",
"3760": "minecraft:acacia_wall_sign[facing=north,lit=false,waterlogged=false]",
"3761": "minecraft:acacia_wall_sign[facing=south,lit=false,waterlogged=true]",
"3762": "minecraft:acacia_wall_sign[facing=south,lit=false,waterlogged=false]",
"3763": "minecraft:acacia_wall_sign[facing=west,lit=false,waterlogged=true]",
"3764": "minecraft:acacia_wall_sign[facing=west,lit=false,waterlogged=false]",
"3765": "minecraft:acacia_wall_sign[facing=east,lit=false,waterlogged=true]",
"3766": "minecraft:acacia_wall_sign[facing=east,lit=false,waterlogged=false]",
"3767": "minecraft:jungle_wall_sign[facing=north,lit=false,waterlogged=true]",
"3768": "minecraft:jungle_wall_sign[facing=north,lit=false,waterlogged=false]",
"3769": "minecraft:jungle_wall_sign[facing=south,lit=false,waterlogged=true]",
"3770": "minecraft:jungle_wall_sign[facing=south,lit=false,waterlogged=false]",
"3771": "minecraft:jungle_wall_sign[facing=west,lit=false,waterlogged=true]",
"3772": "minecraft:jungle_wall_sign[facing=west,lit=false,waterlogged=false]",
"3773": "minecraft:jungle_wall_sign[facing=east,lit=false,waterlogged=true]",
"3774": "minecraft:jungle_wall_sign[facing=east,lit=false,waterlogged=false]",
"3775": "minecraft:dark_oak_wall_sign[facing=north,lit=false,waterlogged=true]",
"3776": "minecraft:dark_oak_wall_sign[facing=north,lit=false,waterlogged=false]",
"3777": "minecraft:dark_oak_wall_sign[facing=south,lit=false,waterlogged=true]",
"3778": "minecraft:dark_oak_wall_sign[facing=south,lit=false,waterlogged=false]",
"3779": "minecraft:dark_oak_wall_sign[facing=west,lit=false,waterlogged=true]",
"3780": "minecraft:dark_oak_wall_sign[facing=west,lit=false,waterlogged=false]",
"3781": "minecraft:dark_oak_wall_sign[facing=east,lit=false,waterlogged=true]",
"3782": "minecraft:dark_oak_wall_sign[facing=east,lit=false,waterlogged=false]",
"15663": "minecraft:crimson_sign[lit=false,rotation=0,waterlogged=true]",
"15664": "minecraft:crimson_sign[lit=false,rotation=0,waterlogged=false]",
"15665": "minecraft:crimson_sign[lit=false,rotation=1,waterlogged=true]",
"15666": "minecraft:crimson_sign[lit=false,rotation=1,waterlogged=false]",
"15667": "minecraft:crimson_sign[lit=false,rotation=2,waterlogged=true]",
"15668": "minecraft:crimson_sign[lit=false,rotation=2,waterlogged=false]",
"15669": "minecraft:crimson_sign[lit=false,rotation=3,waterlogged=true]",
"15670": "minecraft:crimson_sign[lit=false,rotation=3,waterlogged=false]",
"15671": "minecraft:crimson_sign[lit=false,rotation=4,waterlogged=true]",
"15672": "minecraft:crimson_sign[lit=false,rotation=4,waterlogged=false]",
"15673": "minecraft:crimson_sign[lit=false,rotation=5,waterlogged=true]",
"15674": "minecraft:crimson_sign[lit=false,rotation=5,waterlogged=false]",
"15675": "minecraft:crimson_sign[lit=false,rotation=6,waterlogged=true]",
"15676": "minecraft:crimson_sign[lit=false,rotation=6,waterlogged=false]",
"15677": "minecraft:crimson_sign[lit=false,rotation=7,waterlogged=true]",
"15678": "minecraft:crimson_sign[lit=false,rotation=7,waterlogged=false]",
"15679": "minecraft:crimson_sign[lit=false,rotation=8,waterlogged=true]",
"15680": "minecraft:crimson_sign[lit=false,rotation=8,waterlogged=false]",
"15681": "minecraft:crimson_sign[lit=false,rotation=9,waterlogged=true]",
"15682": "minecraft:crimson_sign[lit=false,rotation=9,waterlogged=false]",
"15683": "minecraft:crimson_sign[lit=false,rotation=10,waterlogged=true]",
"15684": "minecraft:crimson_sign[lit=false,rotation=10,waterlogged=false]",
"15685": "minecraft:crimson_sign[lit=false,rotation=11,waterlogged=true]",
"15686": "minecraft:crimson_sign[lit=false,rotation=11,waterlogged=false]",
"15687": "minecraft:crimson_sign[lit=false,rotation=12,waterlogged=true]",
"15688": "minecraft:crimson_sign[lit=false,rotation=12,waterlogged=false]",
"15689": "minecraft:crimson_sign[lit=false,rotation=13,waterlogged=true]",
"15690": "minecraft:crimson_sign[lit=false,rotation=13,waterlogged=false]",
"15691": "minecraft:crimson_sign[lit=false,rotation=14,waterlogged=true]",
"15692": "minecraft:crimson_sign[lit=false,rotation=14,waterlogged=false]",
"15693": "minecraft:crimson_sign[lit=false,rotation=15,waterlogged=true]",
"15694": "minecraft:crimson_sign[lit=false,rotation=15,waterlogged=false]",
"15695": "minecraft:warped_sign[lit=false,rotation=0,waterlogged=true]",
"15696": "minecraft:warped_sign[lit=false,rotation=0,waterlogged=false]",
"15697": "minecraft:warped_sign[lit=false,rotation=1,waterlogged=true]",
"15698": "minecraft:warped_sign[lit=false,rotation=1,waterlogged=false]",
"15699": "minecraft:warped_sign[lit=false,rotation=2,waterlogged=true]",
"15700": "minecraft:warped_sign[lit=false,rotation=2,waterlogged=false]",
"15701": "minecraft:warped_sign[lit=false,rotation=3,waterlogged=true]",
"15702": "minecraft:warped_sign[lit=false,rotation=3,waterlogged=false]",
"15703": "minecraft:warped_sign[lit=false,rotation=4,waterlogged=true]",
"15704": "minecraft:warped_sign[lit=false,rotation=4,waterlogged=false]",
"15705": "minecraft:warped_sign[lit=false,rotation=5,waterlogged=true]",
"15706": "minecraft:warped_sign[lit=false,rotation=5,waterlogged=false]",
"15707": "minecraft:warped_sign[lit=false,rotation=6,waterlogged=true]",
"15708": "minecraft:warped_sign[lit=false,rotation=6,waterlogged=false]",
"15709": "minecraft:warped_sign[lit=false,rotation=7,waterlogged=true]",
"15710": "minecraft:warped_sign[lit=false,rotation=7,waterlogged=false]",
"15711": "minecraft:warped_sign[lit=false,rotation=8,waterlogged=true]",
"15712": "minecraft:warped_sign[lit=false,rotation=8,waterlogged=false]",
"15713": "minecraft:warped_sign[lit=false,rotation=9,waterlogged=true]",
"15714": "minecraft:warped_sign[lit=false,rotation=9,waterlogged=false]",
"15715": "minecraft:warped_sign[lit=false,rotation=10,waterlogged=true]",
"15716": "minecraft:warped_sign[lit=false,rotation=10,waterlogged=false]",
"15717": "minecraft:warped_sign[lit=false,rotation=11,waterlogged=true]",
"15718": "minecraft:warped_sign[lit=false,rotation=11,waterlogged=false]",
"15719": "minecraft:warped_sign[lit=false,rotation=12,waterlogged=true]",
"15720": "minecraft:warped_sign[lit=false,rotation=12,waterlogged=false]",
"15721": "minecraft:warped_sign[lit=false,rotation=13,waterlogged=true]",
"15722": "minecraft:warped_sign[lit=false,rotation=13,waterlogged=false]",
"15723": "minecraft:warped_sign[lit=false,rotation=14,waterlogged=true]",
"15724": "minecraft:warped_sign[lit=false,rotation=14,waterlogged=false]",
"15725": "minecraft:warped_sign[lit=false,rotation=15,waterlogged=true]",
"15726": "minecraft:warped_sign[lit=false,rotation=15,waterlogged=false]",
"15727": "minecraft:crimson_wall_sign[facing=north,lit=false,waterlogged=true]",
"15728": "minecraft:crimson_wall_sign[facing=north,lit=false,waterlogged=false]",
"15729": "minecraft:crimson_wall_sign[facing=south,lit=false,waterlogged=true]",
"15730": "minecraft:crimson_wall_sign[facing=south,lit=false,waterlogged=false]",
"15731": "minecraft:crimson_wall_sign[facing=west,lit=false,waterlogged=true]",
"15732": "minecraft:crimson_wall_sign[facing=west,lit=false,waterlogged=false]",
"15733": "minecraft:crimson_wall_sign[facing=east,lit=false,waterlogged=true]",
"15734": "minecraft:crimson_wall_sign[facing=east,lit=false,waterlogged=false]",
"15735": "minecraft:warped_wall_sign[facing=north,lit=false,waterlogged=true]",
"15736": "minecraft:warped_wall_sign[facing=north,lit=false,waterlogged=false]",
"15737": "minecraft:warped_wall_sign[facing=south,lit=false,waterlogged=true]",
"15738": "minecraft:warped_wall_sign[facing=south,lit=false,waterlogged=false]",
"15739": "minecraft:warped_wall_sign[facing=west,lit=false,waterlogged=true]",
"15740": "minecraft:warped_wall_sign[facing=west,lit=false,waterlogged=false]",
"15741": "minecraft:warped_wall_sign[facing=east,lit=false,waterlogged=true]",
"15742": "minecraft:warped_wall_sign[facing=east,lit=false,waterlogged=false]"
"9227": "minecraft:dirt_path"
},
"items": {
"372": "minecraft:dirt_path"