From fd4c9b5e6c02d347426096913ec4a0488aeec045 Mon Sep 17 00:00:00 2001 From: Matsv Date: Sun, 20 Jan 2019 16:08:53 +0100 Subject: [PATCH] Implement banner block entity --- .../block_entity_handlers/BannerHandler.java | 55 ++++ .../packets/BlockItemPackets1_13.java | 1 + .../BackwardsBlockEntityProvider.java | 3 +- .../storage/BackwardsBlockStorage.java | 9 +- .../data/mapping-1.12.2to1.13.json | 309 +++++++++++++++++- 5 files changed, 367 insertions(+), 10 deletions(-) create mode 100644 core/src/main/java/nl/matsv/viabackwards/protocol/protocol1_12_2to1_13/block_entity_handlers/BannerHandler.java diff --git a/core/src/main/java/nl/matsv/viabackwards/protocol/protocol1_12_2to1_13/block_entity_handlers/BannerHandler.java b/core/src/main/java/nl/matsv/viabackwards/protocol/protocol1_12_2to1_13/block_entity_handlers/BannerHandler.java new file mode 100644 index 00000000..8f4eb1de --- /dev/null +++ b/core/src/main/java/nl/matsv/viabackwards/protocol/protocol1_12_2to1_13/block_entity_handlers/BannerHandler.java @@ -0,0 +1,55 @@ +/* + * Copyright (c) 2016 Matsv + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +package nl.matsv.viabackwards.protocol.protocol1_12_2to1_13.block_entity_handlers; + +import nl.matsv.viabackwards.protocol.protocol1_12_2to1_13.providers.BackwardsBlockEntityProvider.BackwardsBlockEntityHandler; +import us.myles.ViaVersion.api.Via; +import us.myles.ViaVersion.api.data.UserConnection; +import us.myles.viaversion.libs.opennbt.tag.builtin.CompoundTag; +import us.myles.viaversion.libs.opennbt.tag.builtin.IntTag; +import us.myles.viaversion.libs.opennbt.tag.builtin.ListTag; +import us.myles.viaversion.libs.opennbt.tag.builtin.Tag; + +public class BannerHandler implements BackwardsBlockEntityHandler { + private final int WALL_BANNER_START = 7110; // 4 each + private final int WALL_BANNER_STOP = 7173; + + private final int BANNER_START = 6854; // 16 each + private final int BANNER_STOP = 7109; + + @Override + public CompoundTag transform(UserConnection user, int blockId, CompoundTag tag) { + // Normal banners + if (blockId >= BANNER_START && blockId <= BANNER_STOP) { + int color = (blockId - BANNER_START) >> 4; + tag.put(new IntTag("Base", (15 - color))); + } + // Wall banners + else if (blockId >= WALL_BANNER_START && blockId <= WALL_BANNER_STOP) { + int color = (blockId - WALL_BANNER_START) >> 2; + tag.put(new IntTag("Base", (15 - color))); + } else { + Via.getPlatform().getLogger().warning("Why does this block have the banner block entity? :(" + tag); + } + + // Invert colors + if (tag.contains("Patterns") && tag.get("Patterns") instanceof ListTag) { + for (Tag pattern : (ListTag) tag.get("Patterns")) { + if (pattern instanceof CompoundTag) { + IntTag c = ((CompoundTag) pattern).get("Color"); + c.setValue(15 - c.getValue()); // Invert color id + } + } + } + + return tag; + } +} diff --git a/core/src/main/java/nl/matsv/viabackwards/protocol/protocol1_12_2to1_13/packets/BlockItemPackets1_13.java b/core/src/main/java/nl/matsv/viabackwards/protocol/protocol1_12_2to1_13/packets/BlockItemPackets1_13.java index 97c1b064..7e38ec27 100644 --- a/core/src/main/java/nl/matsv/viabackwards/protocol/protocol1_12_2to1_13/packets/BlockItemPackets1_13.java +++ b/core/src/main/java/nl/matsv/viabackwards/protocol/protocol1_12_2to1_13/packets/BlockItemPackets1_13.java @@ -73,6 +73,7 @@ public class BlockItemPackets1_13 extends Rewriter { BackwardsBlockEntityProvider provider = Via.getManager().getProviders().get(BackwardsBlockEntityProvider.class); switch (wrapper.get(Type.UNSIGNED_BYTE, 0)) { + case 6: case 11: wrapper.set(Type.NBT, 0, provider.transform( diff --git a/core/src/main/java/nl/matsv/viabackwards/protocol/protocol1_12_2to1_13/providers/BackwardsBlockEntityProvider.java b/core/src/main/java/nl/matsv/viabackwards/protocol/protocol1_12_2to1_13/providers/BackwardsBlockEntityProvider.java index 11bb5346..ea99ae58 100644 --- a/core/src/main/java/nl/matsv/viabackwards/protocol/protocol1_12_2to1_13/providers/BackwardsBlockEntityProvider.java +++ b/core/src/main/java/nl/matsv/viabackwards/protocol/protocol1_12_2to1_13/providers/BackwardsBlockEntityProvider.java @@ -10,6 +10,7 @@ package nl.matsv.viabackwards.protocol.protocol1_12_2to1_13.providers; +import nl.matsv.viabackwards.protocol.protocol1_12_2to1_13.block_entity_handlers.BannerHandler; import nl.matsv.viabackwards.protocol.protocol1_12_2to1_13.block_entity_handlers.BedHandler; import nl.matsv.viabackwards.protocol.protocol1_12_2to1_13.block_entity_handlers.FlowerPotHandler; import nl.matsv.viabackwards.protocol.protocol1_12_2to1_13.storage.BackwardsBlockStorage; @@ -28,7 +29,7 @@ public class BackwardsBlockEntityProvider implements Provider { public BackwardsBlockEntityProvider() { handlers.put("minecraft:flower_pot", new FlowerPotHandler()); handlers.put("minecraft:bed", new BedHandler()); -// handlers.put("minecraft:banner", ); + handlers.put("minecraft:banner", new BannerHandler()); // handlers.put("minecraft:skull", ); // handlers.put("minecraft:mob_spawner", ); } diff --git a/core/src/main/java/nl/matsv/viabackwards/protocol/protocol1_12_2to1_13/storage/BackwardsBlockStorage.java b/core/src/main/java/nl/matsv/viabackwards/protocol/protocol1_12_2to1_13/storage/BackwardsBlockStorage.java index bdc56b84..d6834629 100644 --- a/core/src/main/java/nl/matsv/viabackwards/protocol/protocol1_12_2to1_13/storage/BackwardsBlockStorage.java +++ b/core/src/main/java/nl/matsv/viabackwards/protocol/protocol1_12_2to1_13/storage/BackwardsBlockStorage.java @@ -25,17 +25,16 @@ public class BackwardsBlockStorage extends StoredObject { static { // Flower pots - for (int i = 5265; i <= 5286; i++) { + for (int i = 5265; i <= 5286; i++) whitelist.add(i); - } // Add those beds for (int i = 0; i < (16 * 16); i++) whitelist.add(748 + i); - // Add the white banners -// for (int i = 0; i < 20; i++) -// whitelist.add(6854 + i); + // Add the banners + for (int i = 6854; i <= 7173; i++) + whitelist.add(i); // // Add the white wall banners // for (int i = 0; i < 4; i++) { diff --git a/core/src/main/resources/assets/viabackwards/data/mapping-1.12.2to1.13.json b/core/src/main/resources/assets/viabackwards/data/mapping-1.12.2to1.13.json index 93d4b6e3..7ae182f9 100644 --- a/core/src/main/resources/assets/viabackwards/data/mapping-1.12.2to1.13.json +++ b/core/src/main/resources/assets/viabackwards/data/mapping-1.12.2to1.13.json @@ -342,15 +342,16 @@ "minecraft:black_bed[facing=east,occupied=false,part=head]": "minecraft:red_bed[facing=east,occupied=false,part=head]", "minecraft:black_bed[facing=east,occupied=false,part=foot]": "minecraft:red_bed[facing=east,occupied=false,part=foot]", "minecraft:seagrass": "minecraft:grass", - "minecraft:tall_seagrass[half=upper]": "id:2809", //2809 / 175:9 is the upper half of every flower in 1.12.2, the lower half determines the type + "minecraft:tall_seagrass[half=upper]": "id:2809", + //2809 / 175:9 is the upper half of every flower in 1.12.2, the lower half determines the type "minecraft:tall_seagrass[half=lower]": "minecraft:tall_grass[half=lower]", "minecraft:sunflower[half=upper]": "id:2809", "minecraft:lilac[half=upper]": "id:2809", "minecraft:rose_bush[half=upper]": "id:2809", "minecraft:tall_grass[half=upper]": "id:2809", "minecraft:large_fern[half=upper]": "id:2809", - "minecraft:kelp": "minecraft:large_fern[half=lower]", - "minecraft:kelp_plant": "minecraft:sunflower[half=lower]", + "minecraft:kelp": "minecraft:large_fern[half=lower]", + "minecraft:kelp_plant": "minecraft:sunflower[half=lower]", "minecraft:piston_head[facing=north,short=true,type=normal]": "minecraft:piston_head[facing=north,short=false,type=normal]", "minecraft:piston_head[facing=north,short=true,type=sticky]": "minecraft:piston_head[facing=north,short=false,type=sticky]", "minecraft:piston_head[facing=east,short=true,type=normal]": "minecraft:piston_head[facing=east,short=false,type=normal]", @@ -4826,6 +4827,306 @@ "minecraft:void_air": "minecraft:air", "minecraft:cave_air": "minecraft:air", "minecraft:conduit": "minecraft:beacon", - "minecraft:bubble_column": "minecraft:water[level=15]" + "minecraft:bubble_column": "minecraft:water[level=15]", + "minecraft:orange_banner[rotation=0]": "minecraft:white_banner[rotation=0]", + "minecraft:orange_banner[rotation=1]": "minecraft:white_banner[rotation=1]", + "minecraft:orange_banner[rotation=2]": "minecraft:white_banner[rotation=2]", + "minecraft:orange_banner[rotation=3]": "minecraft:white_banner[rotation=3]", + "minecraft:orange_banner[rotation=4]": "minecraft:white_banner[rotation=4]", + "minecraft:orange_banner[rotation=5]": "minecraft:white_banner[rotation=5]", + "minecraft:orange_banner[rotation=6]": "minecraft:white_banner[rotation=6]", + "minecraft:orange_banner[rotation=7]": "minecraft:white_banner[rotation=7]", + "minecraft:orange_banner[rotation=8]": "minecraft:white_banner[rotation=8]", + "minecraft:orange_banner[rotation=9]": "minecraft:white_banner[rotation=9]", + "minecraft:orange_banner[rotation=10]": "minecraft:white_banner[rotation=10]", + "minecraft:orange_banner[rotation=11]": "minecraft:white_banner[rotation=11]", + "minecraft:orange_banner[rotation=12]": "minecraft:white_banner[rotation=12]", + "minecraft:orange_banner[rotation=13]": "minecraft:white_banner[rotation=13]", + "minecraft:orange_banner[rotation=14]": "minecraft:white_banner[rotation=14]", + "minecraft:orange_banner[rotation=15]": "minecraft:white_banner[rotation=15]", + "minecraft:magenta_banner[rotation=0]": "minecraft:white_banner[rotation=0]", + "minecraft:magenta_banner[rotation=1]": "minecraft:white_banner[rotation=1]", + "minecraft:magenta_banner[rotation=2]": "minecraft:white_banner[rotation=2]", + "minecraft:magenta_banner[rotation=3]": "minecraft:white_banner[rotation=3]", + "minecraft:magenta_banner[rotation=4]": "minecraft:white_banner[rotation=4]", + "minecraft:magenta_banner[rotation=5]": "minecraft:white_banner[rotation=5]", + "minecraft:magenta_banner[rotation=6]": "minecraft:white_banner[rotation=6]", + "minecraft:magenta_banner[rotation=7]": "minecraft:white_banner[rotation=7]", + "minecraft:magenta_banner[rotation=8]": "minecraft:white_banner[rotation=8]", + "minecraft:magenta_banner[rotation=9]": "minecraft:white_banner[rotation=9]", + "minecraft:magenta_banner[rotation=10]": "minecraft:white_banner[rotation=10]", + "minecraft:magenta_banner[rotation=11]": "minecraft:white_banner[rotation=11]", + "minecraft:magenta_banner[rotation=12]": "minecraft:white_banner[rotation=12]", + "minecraft:magenta_banner[rotation=13]": "minecraft:white_banner[rotation=13]", + "minecraft:magenta_banner[rotation=14]": "minecraft:white_banner[rotation=14]", + "minecraft:magenta_banner[rotation=15]": "minecraft:white_banner[rotation=15]", + "minecraft:light_blue_banner[rotation=0]": "minecraft:white_banner[rotation=0]", + "minecraft:light_blue_banner[rotation=1]": "minecraft:white_banner[rotation=1]", + "minecraft:light_blue_banner[rotation=2]": "minecraft:white_banner[rotation=2]", + "minecraft:light_blue_banner[rotation=3]": "minecraft:white_banner[rotation=3]", + "minecraft:light_blue_banner[rotation=4]": "minecraft:white_banner[rotation=4]", + "minecraft:light_blue_banner[rotation=5]": "minecraft:white_banner[rotation=5]", + "minecraft:light_blue_banner[rotation=6]": "minecraft:white_banner[rotation=6]", + "minecraft:light_blue_banner[rotation=7]": "minecraft:white_banner[rotation=7]", + "minecraft:light_blue_banner[rotation=8]": "minecraft:white_banner[rotation=8]", + "minecraft:light_blue_banner[rotation=9]": "minecraft:white_banner[rotation=9]", + "minecraft:light_blue_banner[rotation=10]": "minecraft:white_banner[rotation=10]", + "minecraft:light_blue_banner[rotation=11]": "minecraft:white_banner[rotation=11]", + "minecraft:light_blue_banner[rotation=12]": "minecraft:white_banner[rotation=12]", + "minecraft:light_blue_banner[rotation=13]": "minecraft:white_banner[rotation=13]", + "minecraft:light_blue_banner[rotation=14]": "minecraft:white_banner[rotation=14]", + "minecraft:light_blue_banner[rotation=15]": "minecraft:white_banner[rotation=15]", + "minecraft:yellow_banner[rotation=0]": "minecraft:white_banner[rotation=0]", + "minecraft:yellow_banner[rotation=1]": "minecraft:white_banner[rotation=1]", + "minecraft:yellow_banner[rotation=2]": "minecraft:white_banner[rotation=2]", + "minecraft:yellow_banner[rotation=3]": "minecraft:white_banner[rotation=3]", + "minecraft:yellow_banner[rotation=4]": "minecraft:white_banner[rotation=4]", + "minecraft:yellow_banner[rotation=5]": "minecraft:white_banner[rotation=5]", + "minecraft:yellow_banner[rotation=6]": "minecraft:white_banner[rotation=6]", + "minecraft:yellow_banner[rotation=7]": "minecraft:white_banner[rotation=7]", + "minecraft:yellow_banner[rotation=8]": "minecraft:white_banner[rotation=8]", + "minecraft:yellow_banner[rotation=9]": "minecraft:white_banner[rotation=9]", + "minecraft:yellow_banner[rotation=10]": "minecraft:white_banner[rotation=10]", + "minecraft:yellow_banner[rotation=11]": "minecraft:white_banner[rotation=11]", + "minecraft:yellow_banner[rotation=12]": "minecraft:white_banner[rotation=12]", + "minecraft:yellow_banner[rotation=13]": "minecraft:white_banner[rotation=13]", + "minecraft:yellow_banner[rotation=14]": "minecraft:white_banner[rotation=14]", + "minecraft:yellow_banner[rotation=15]": "minecraft:white_banner[rotation=15]", + "minecraft:lime_banner[rotation=0]": "minecraft:white_banner[rotation=0]", + "minecraft:lime_banner[rotation=1]": "minecraft:white_banner[rotation=1]", + "minecraft:lime_banner[rotation=2]": "minecraft:white_banner[rotation=2]", + "minecraft:lime_banner[rotation=3]": "minecraft:white_banner[rotation=3]", + "minecraft:lime_banner[rotation=4]": "minecraft:white_banner[rotation=4]", + "minecraft:lime_banner[rotation=5]": "minecraft:white_banner[rotation=5]", + "minecraft:lime_banner[rotation=6]": "minecraft:white_banner[rotation=6]", + "minecraft:lime_banner[rotation=7]": "minecraft:white_banner[rotation=7]", + "minecraft:lime_banner[rotation=8]": "minecraft:white_banner[rotation=8]", + "minecraft:lime_banner[rotation=9]": "minecraft:white_banner[rotation=9]", + "minecraft:lime_banner[rotation=10]": "minecraft:white_banner[rotation=10]", + "minecraft:lime_banner[rotation=11]": "minecraft:white_banner[rotation=11]", + "minecraft:lime_banner[rotation=12]": "minecraft:white_banner[rotation=12]", + "minecraft:lime_banner[rotation=13]": "minecraft:white_banner[rotation=13]", + "minecraft:lime_banner[rotation=14]": "minecraft:white_banner[rotation=14]", + "minecraft:lime_banner[rotation=15]": "minecraft:white_banner[rotation=15]", + "minecraft:pink_banner[rotation=0]": "minecraft:white_banner[rotation=0]", + "minecraft:pink_banner[rotation=1]": "minecraft:white_banner[rotation=1]", + "minecraft:pink_banner[rotation=2]": "minecraft:white_banner[rotation=2]", + "minecraft:pink_banner[rotation=3]": "minecraft:white_banner[rotation=3]", + "minecraft:pink_banner[rotation=4]": "minecraft:white_banner[rotation=4]", + "minecraft:pink_banner[rotation=5]": "minecraft:white_banner[rotation=5]", + "minecraft:pink_banner[rotation=6]": "minecraft:white_banner[rotation=6]", + "minecraft:pink_banner[rotation=7]": "minecraft:white_banner[rotation=7]", + "minecraft:pink_banner[rotation=8]": "minecraft:white_banner[rotation=8]", + "minecraft:pink_banner[rotation=9]": "minecraft:white_banner[rotation=9]", + "minecraft:pink_banner[rotation=10]": "minecraft:white_banner[rotation=10]", + "minecraft:pink_banner[rotation=11]": "minecraft:white_banner[rotation=11]", + "minecraft:pink_banner[rotation=12]": "minecraft:white_banner[rotation=12]", + "minecraft:pink_banner[rotation=13]": "minecraft:white_banner[rotation=13]", + "minecraft:pink_banner[rotation=14]": "minecraft:white_banner[rotation=14]", + "minecraft:pink_banner[rotation=15]": "minecraft:white_banner[rotation=15]", + "minecraft:gray_banner[rotation=0]": "minecraft:white_banner[rotation=0]", + "minecraft:gray_banner[rotation=1]": "minecraft:white_banner[rotation=1]", + "minecraft:gray_banner[rotation=2]": "minecraft:white_banner[rotation=2]", + "minecraft:gray_banner[rotation=3]": "minecraft:white_banner[rotation=3]", + "minecraft:gray_banner[rotation=4]": "minecraft:white_banner[rotation=4]", + "minecraft:gray_banner[rotation=5]": "minecraft:white_banner[rotation=5]", + "minecraft:gray_banner[rotation=6]": "minecraft:white_banner[rotation=6]", + "minecraft:gray_banner[rotation=7]": "minecraft:white_banner[rotation=7]", + "minecraft:gray_banner[rotation=8]": "minecraft:white_banner[rotation=8]", + "minecraft:gray_banner[rotation=9]": "minecraft:white_banner[rotation=9]", + "minecraft:gray_banner[rotation=10]": "minecraft:white_banner[rotation=10]", + "minecraft:gray_banner[rotation=11]": "minecraft:white_banner[rotation=11]", + "minecraft:gray_banner[rotation=12]": "minecraft:white_banner[rotation=12]", + "minecraft:gray_banner[rotation=13]": "minecraft:white_banner[rotation=13]", + "minecraft:gray_banner[rotation=14]": "minecraft:white_banner[rotation=14]", + "minecraft:gray_banner[rotation=15]": "minecraft:white_banner[rotation=15]", + "minecraft:light_gray_banner[rotation=0]": "minecraft:white_banner[rotation=0]", + "minecraft:light_gray_banner[rotation=1]": "minecraft:white_banner[rotation=1]", + "minecraft:light_gray_banner[rotation=2]": "minecraft:white_banner[rotation=2]", + "minecraft:light_gray_banner[rotation=3]": "minecraft:white_banner[rotation=3]", + "minecraft:light_gray_banner[rotation=4]": "minecraft:white_banner[rotation=4]", + "minecraft:light_gray_banner[rotation=5]": "minecraft:white_banner[rotation=5]", + "minecraft:light_gray_banner[rotation=6]": "minecraft:white_banner[rotation=6]", + "minecraft:light_gray_banner[rotation=7]": "minecraft:white_banner[rotation=7]", + "minecraft:light_gray_banner[rotation=8]": "minecraft:white_banner[rotation=8]", + "minecraft:light_gray_banner[rotation=9]": "minecraft:white_banner[rotation=9]", + "minecraft:light_gray_banner[rotation=10]": "minecraft:white_banner[rotation=10]", + "minecraft:light_gray_banner[rotation=11]": "minecraft:white_banner[rotation=11]", + "minecraft:light_gray_banner[rotation=12]": "minecraft:white_banner[rotation=12]", + "minecraft:light_gray_banner[rotation=13]": "minecraft:white_banner[rotation=13]", + "minecraft:light_gray_banner[rotation=14]": "minecraft:white_banner[rotation=14]", + "minecraft:light_gray_banner[rotation=15]": "minecraft:white_banner[rotation=15]", + "minecraft:cyan_banner[rotation=0]": "minecraft:white_banner[rotation=0]", + "minecraft:cyan_banner[rotation=1]": "minecraft:white_banner[rotation=1]", + "minecraft:cyan_banner[rotation=2]": "minecraft:white_banner[rotation=2]", + "minecraft:cyan_banner[rotation=3]": "minecraft:white_banner[rotation=3]", + "minecraft:cyan_banner[rotation=4]": "minecraft:white_banner[rotation=4]", + "minecraft:cyan_banner[rotation=5]": "minecraft:white_banner[rotation=5]", + "minecraft:cyan_banner[rotation=6]": "minecraft:white_banner[rotation=6]", + "minecraft:cyan_banner[rotation=7]": "minecraft:white_banner[rotation=7]", + "minecraft:cyan_banner[rotation=8]": "minecraft:white_banner[rotation=8]", + "minecraft:cyan_banner[rotation=9]": "minecraft:white_banner[rotation=9]", + "minecraft:cyan_banner[rotation=10]": "minecraft:white_banner[rotation=10]", + "minecraft:cyan_banner[rotation=11]": "minecraft:white_banner[rotation=11]", + "minecraft:cyan_banner[rotation=12]": "minecraft:white_banner[rotation=12]", + "minecraft:cyan_banner[rotation=13]": "minecraft:white_banner[rotation=13]", + "minecraft:cyan_banner[rotation=14]": "minecraft:white_banner[rotation=14]", + "minecraft:cyan_banner[rotation=15]": "minecraft:white_banner[rotation=15]", + "minecraft:purple_banner[rotation=0]": "minecraft:white_banner[rotation=0]", + "minecraft:purple_banner[rotation=1]": "minecraft:white_banner[rotation=1]", + "minecraft:purple_banner[rotation=2]": "minecraft:white_banner[rotation=2]", + "minecraft:purple_banner[rotation=3]": "minecraft:white_banner[rotation=3]", + "minecraft:purple_banner[rotation=4]": "minecraft:white_banner[rotation=4]", + "minecraft:purple_banner[rotation=5]": "minecraft:white_banner[rotation=5]", + "minecraft:purple_banner[rotation=6]": "minecraft:white_banner[rotation=6]", + "minecraft:purple_banner[rotation=7]": "minecraft:white_banner[rotation=7]", + "minecraft:purple_banner[rotation=8]": "minecraft:white_banner[rotation=8]", + "minecraft:purple_banner[rotation=9]": "minecraft:white_banner[rotation=9]", + "minecraft:purple_banner[rotation=10]": "minecraft:white_banner[rotation=10]", + "minecraft:purple_banner[rotation=11]": "minecraft:white_banner[rotation=11]", + "minecraft:purple_banner[rotation=12]": "minecraft:white_banner[rotation=12]", + "minecraft:purple_banner[rotation=13]": "minecraft:white_banner[rotation=13]", + "minecraft:purple_banner[rotation=14]": "minecraft:white_banner[rotation=14]", + "minecraft:purple_banner[rotation=15]": "minecraft:white_banner[rotation=15]", + "minecraft:blue_banner[rotation=0]": "minecraft:white_banner[rotation=0]", + "minecraft:blue_banner[rotation=1]": "minecraft:white_banner[rotation=1]", + "minecraft:blue_banner[rotation=2]": "minecraft:white_banner[rotation=2]", + "minecraft:blue_banner[rotation=3]": "minecraft:white_banner[rotation=3]", + "minecraft:blue_banner[rotation=4]": "minecraft:white_banner[rotation=4]", + "minecraft:blue_banner[rotation=5]": "minecraft:white_banner[rotation=5]", + "minecraft:blue_banner[rotation=6]": "minecraft:white_banner[rotation=6]", + "minecraft:blue_banner[rotation=7]": "minecraft:white_banner[rotation=7]", + "minecraft:blue_banner[rotation=8]": "minecraft:white_banner[rotation=8]", + "minecraft:blue_banner[rotation=9]": "minecraft:white_banner[rotation=9]", + "minecraft:blue_banner[rotation=10]": "minecraft:white_banner[rotation=10]", + "minecraft:blue_banner[rotation=11]": "minecraft:white_banner[rotation=11]", + "minecraft:blue_banner[rotation=12]": "minecraft:white_banner[rotation=12]", + "minecraft:blue_banner[rotation=13]": "minecraft:white_banner[rotation=13]", + "minecraft:blue_banner[rotation=14]": "minecraft:white_banner[rotation=14]", + "minecraft:blue_banner[rotation=15]": "minecraft:white_banner[rotation=15]", + "minecraft:brown_banner[rotation=0]": "minecraft:white_banner[rotation=0]", + "minecraft:brown_banner[rotation=1]": "minecraft:white_banner[rotation=1]", + "minecraft:brown_banner[rotation=2]": "minecraft:white_banner[rotation=2]", + "minecraft:brown_banner[rotation=3]": "minecraft:white_banner[rotation=3]", + "minecraft:brown_banner[rotation=4]": "minecraft:white_banner[rotation=4]", + "minecraft:brown_banner[rotation=5]": "minecraft:white_banner[rotation=5]", + "minecraft:brown_banner[rotation=6]": "minecraft:white_banner[rotation=6]", + "minecraft:brown_banner[rotation=7]": "minecraft:white_banner[rotation=7]", + "minecraft:brown_banner[rotation=8]": "minecraft:white_banner[rotation=8]", + "minecraft:brown_banner[rotation=9]": "minecraft:white_banner[rotation=9]", + "minecraft:brown_banner[rotation=10]": "minecraft:white_banner[rotation=10]", + "minecraft:brown_banner[rotation=11]": "minecraft:white_banner[rotation=11]", + "minecraft:brown_banner[rotation=12]": "minecraft:white_banner[rotation=12]", + "minecraft:brown_banner[rotation=13]": "minecraft:white_banner[rotation=13]", + "minecraft:brown_banner[rotation=14]": "minecraft:white_banner[rotation=14]", + "minecraft:brown_banner[rotation=15]": "minecraft:white_banner[rotation=15]", + "minecraft:green_banner[rotation=0]": "minecraft:white_banner[rotation=0]", + "minecraft:green_banner[rotation=1]": "minecraft:white_banner[rotation=1]", + "minecraft:green_banner[rotation=2]": "minecraft:white_banner[rotation=2]", + "minecraft:green_banner[rotation=3]": "minecraft:white_banner[rotation=3]", + "minecraft:green_banner[rotation=4]": "minecraft:white_banner[rotation=4]", + "minecraft:green_banner[rotation=5]": "minecraft:white_banner[rotation=5]", + "minecraft:green_banner[rotation=6]": "minecraft:white_banner[rotation=6]", + "minecraft:green_banner[rotation=7]": "minecraft:white_banner[rotation=7]", + "minecraft:green_banner[rotation=8]": "minecraft:white_banner[rotation=8]", + "minecraft:green_banner[rotation=9]": "minecraft:white_banner[rotation=9]", + "minecraft:green_banner[rotation=10]": "minecraft:white_banner[rotation=10]", + "minecraft:green_banner[rotation=11]": "minecraft:white_banner[rotation=11]", + "minecraft:green_banner[rotation=12]": "minecraft:white_banner[rotation=12]", + "minecraft:green_banner[rotation=13]": "minecraft:white_banner[rotation=13]", + "minecraft:green_banner[rotation=14]": "minecraft:white_banner[rotation=14]", + "minecraft:green_banner[rotation=15]": "minecraft:white_banner[rotation=15]", + "minecraft:red_banner[rotation=0]": "minecraft:white_banner[rotation=0]", + "minecraft:red_banner[rotation=1]": "minecraft:white_banner[rotation=1]", + "minecraft:red_banner[rotation=2]": "minecraft:white_banner[rotation=2]", + "minecraft:red_banner[rotation=3]": "minecraft:white_banner[rotation=3]", + "minecraft:red_banner[rotation=4]": "minecraft:white_banner[rotation=4]", + "minecraft:red_banner[rotation=5]": "minecraft:white_banner[rotation=5]", + "minecraft:red_banner[rotation=6]": "minecraft:white_banner[rotation=6]", + "minecraft:red_banner[rotation=7]": "minecraft:white_banner[rotation=7]", + "minecraft:red_banner[rotation=8]": "minecraft:white_banner[rotation=8]", + "minecraft:red_banner[rotation=9]": "minecraft:white_banner[rotation=9]", + "minecraft:red_banner[rotation=10]": "minecraft:white_banner[rotation=10]", + "minecraft:red_banner[rotation=11]": "minecraft:white_banner[rotation=11]", + "minecraft:red_banner[rotation=12]": "minecraft:white_banner[rotation=12]", + "minecraft:red_banner[rotation=13]": "minecraft:white_banner[rotation=13]", + "minecraft:red_banner[rotation=14]": "minecraft:white_banner[rotation=14]", + "minecraft:red_banner[rotation=15]": "minecraft:white_banner[rotation=15]", + "minecraft:black_banner[rotation=0]": "minecraft:white_banner[rotation=0]", + "minecraft:black_banner[rotation=1]": "minecraft:white_banner[rotation=1]", + "minecraft:black_banner[rotation=2]": "minecraft:white_banner[rotation=2]", + "minecraft:black_banner[rotation=3]": "minecraft:white_banner[rotation=3]", + "minecraft:black_banner[rotation=4]": "minecraft:white_banner[rotation=4]", + "minecraft:black_banner[rotation=5]": "minecraft:white_banner[rotation=5]", + "minecraft:black_banner[rotation=6]": "minecraft:white_banner[rotation=6]", + "minecraft:black_banner[rotation=7]": "minecraft:white_banner[rotation=7]", + "minecraft:black_banner[rotation=8]": "minecraft:white_banner[rotation=8]", + "minecraft:black_banner[rotation=9]": "minecraft:white_banner[rotation=9]", + "minecraft:black_banner[rotation=10]": "minecraft:white_banner[rotation=10]", + "minecraft:black_banner[rotation=11]": "minecraft:white_banner[rotation=11]", + "minecraft:black_banner[rotation=12]": "minecraft:white_banner[rotation=12]", + "minecraft:black_banner[rotation=13]": "minecraft:white_banner[rotation=13]", + "minecraft:black_banner[rotation=14]": "minecraft:white_banner[rotation=14]", + "minecraft:black_banner[rotation=15]": "minecraft:white_banner[rotation=15]", + "minecraft:orange_wall_banner[facing=north]": "minecraft:white_wall_banner[facing=north]", + "minecraft:orange_wall_banner[facing=south]": "minecraft:white_wall_banner[facing=south]", + "minecraft:orange_wall_banner[facing=west]": "minecraft:white_wall_banner[facing=west]", + "minecraft:orange_wall_banner[facing=east]": "minecraft:white_wall_banner[facing=east]", + "minecraft:magenta_wall_banner[facing=north]": "minecraft:white_wall_banner[facing=north]", + "minecraft:magenta_wall_banner[facing=south]": "minecraft:white_wall_banner[facing=south]", + "minecraft:magenta_wall_banner[facing=west]": "minecraft:white_wall_banner[facing=west]", + "minecraft:magenta_wall_banner[facing=east]": "minecraft:white_wall_banner[facing=east]", + "minecraft:light_blue_wall_banner[facing=north]": "minecraft:white_wall_banner[facing=north]", + "minecraft:light_blue_wall_banner[facing=south]": "minecraft:white_wall_banner[facing=south]", + "minecraft:light_blue_wall_banner[facing=west]": "minecraft:white_wall_banner[facing=west]", + "minecraft:light_blue_wall_banner[facing=east]": "minecraft:white_wall_banner[facing=east]", + "minecraft:yellow_wall_banner[facing=north]": "minecraft:white_wall_banner[facing=north]", + "minecraft:yellow_wall_banner[facing=south]": "minecraft:white_wall_banner[facing=south]", + "minecraft:yellow_wall_banner[facing=west]": "minecraft:white_wall_banner[facing=west]", + "minecraft:yellow_wall_banner[facing=east]": "minecraft:white_wall_banner[facing=east]", + "minecraft:lime_wall_banner[facing=north]": "minecraft:white_wall_banner[facing=north]", + "minecraft:lime_wall_banner[facing=south]": "minecraft:white_wall_banner[facing=south]", + "minecraft:lime_wall_banner[facing=west]": "minecraft:white_wall_banner[facing=west]", + "minecraft:lime_wall_banner[facing=east]": "minecraft:white_wall_banner[facing=east]", + "minecraft:pink_wall_banner[facing=north]": "minecraft:white_wall_banner[facing=north]", + "minecraft:pink_wall_banner[facing=south]": "minecraft:white_wall_banner[facing=south]", + "minecraft:pink_wall_banner[facing=west]": "minecraft:white_wall_banner[facing=west]", + "minecraft:pink_wall_banner[facing=east]": "minecraft:white_wall_banner[facing=east]", + "minecraft:gray_wall_banner[facing=north]": "minecraft:white_wall_banner[facing=north]", + "minecraft:gray_wall_banner[facing=south]": "minecraft:white_wall_banner[facing=south]", + "minecraft:gray_wall_banner[facing=west]": "minecraft:white_wall_banner[facing=west]", + "minecraft:gray_wall_banner[facing=east]": "minecraft:white_wall_banner[facing=east]", + "minecraft:light_gray_wall_banner[facing=north]": "minecraft:white_wall_banner[facing=north]", + "minecraft:light_gray_wall_banner[facing=south]": "minecraft:white_wall_banner[facing=south]", + "minecraft:light_gray_wall_banner[facing=west]": "minecraft:white_wall_banner[facing=west]", + "minecraft:light_gray_wall_banner[facing=east]": "minecraft:white_wall_banner[facing=east]", + "minecraft:cyan_wall_banner[facing=north]": "minecraft:white_wall_banner[facing=north]", + "minecraft:cyan_wall_banner[facing=south]": "minecraft:white_wall_banner[facing=south]", + "minecraft:cyan_wall_banner[facing=west]": "minecraft:white_wall_banner[facing=west]", + "minecraft:cyan_wall_banner[facing=east]": "minecraft:white_wall_banner[facing=east]", + "minecraft:purple_wall_banner[facing=north]": "minecraft:white_wall_banner[facing=north]", + "minecraft:purple_wall_banner[facing=south]": "minecraft:white_wall_banner[facing=south]", + "minecraft:purple_wall_banner[facing=west]": "minecraft:white_wall_banner[facing=west]", + "minecraft:purple_wall_banner[facing=east]": "minecraft:white_wall_banner[facing=east]", + "minecraft:blue_wall_banner[facing=north]": "minecraft:white_wall_banner[facing=north]", + "minecraft:blue_wall_banner[facing=south]": "minecraft:white_wall_banner[facing=south]", + "minecraft:blue_wall_banner[facing=west]": "minecraft:white_wall_banner[facing=west]", + "minecraft:blue_wall_banner[facing=east]": "minecraft:white_wall_banner[facing=east]", + "minecraft:brown_wall_banner[facing=north]": "minecraft:white_wall_banner[facing=north]", + "minecraft:brown_wall_banner[facing=south]": "minecraft:white_wall_banner[facing=south]", + "minecraft:brown_wall_banner[facing=west]": "minecraft:white_wall_banner[facing=west]", + "minecraft:brown_wall_banner[facing=east]": "minecraft:white_wall_banner[facing=east]", + "minecraft:green_wall_banner[facing=north]": "minecraft:white_wall_banner[facing=north]", + "minecraft:green_wall_banner[facing=south]": "minecraft:white_wall_banner[facing=south]", + "minecraft:green_wall_banner[facing=west]": "minecraft:white_wall_banner[facing=west]", + "minecraft:green_wall_banner[facing=east]": "minecraft:white_wall_banner[facing=east]", + "minecraft:red_wall_banner[facing=north]": "minecraft:white_wall_banner[facing=north]", + "minecraft:red_wall_banner[facing=south]": "minecraft:white_wall_banner[facing=south]", + "minecraft:red_wall_banner[facing=west]": "minecraft:white_wall_banner[facing=west]", + "minecraft:red_wall_banner[facing=east]": "minecraft:white_wall_banner[facing=east]", + "minecraft:black_wall_banner[facing=north]": "minecraft:white_wall_banner[facing=north]", + "minecraft:black_wall_banner[facing=south]": "minecraft:white_wall_banner[facing=south]", + "minecraft:black_wall_banner[facing=west]": "minecraft:white_wall_banner[facing=west]", + "minecraft:black_wall_banner[facing=east]": "minecraft:white_wall_banner[facing=east]" } } \ No newline at end of file